/* AstroAlma - Bloc « profil de naissance » autonome (pages sans le style principal)
 * Généré à partir des règles du bloc dans assets/style.css (formulaire du thème astral) : même rendu.
 * Variables du thème « ciel de nuit » limitées au bloc. */
.aa-bloc-profils {
    --astro-primary: #E8C27A; --astro-secondary: #E8C27A; --astro-success: #8EDC9A; --astro-error: #FF8A80;
    --astro-card: #1B2250; --astro-text: #EDE9FF; --astro-text-light: #B4AED6; --astro-border: #2E3A72;
    --astro-shadow-lg: none; --astro-radius: 24px; --astro-radius-sm: 18px;
    --font-size-base: 16px; --font-size-sm: 14px; --font-size-xs: 12px;
    --aa-bg: #0F0F29; --aa-surface: #1B2250; --aa-surface-2: #1D1839; --aa-line: #2E3A72; --aa-text: #EDE9FF; --aa-muted: #B4AED6;
    --aa-placeholder: #9C96C2; --aa-gold: #E8C27A; --aa-danger: #FF8A80; --aa-success: #8EDC9A;
    --aa-radius: 24px; --aa-radius-sm: 18px; --aa-field-radius: 14px;
    --aa-font-title: 'Cormorant Garamond', 'Cormorant', Georgia, serif; --aa-font-text: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
    font-family: var(--aa-font-text); color: var(--aa-text); text-align: left;
}
.aa-bloc-profils *, .aa-bloc-profils *::before, .aa-bloc-profils *::after { box-sizing: border-box; }
.astroalma-profil { padding: 1.25rem 1.5rem; border-bottom: 1px solid var(--astro-border); }
.astroalma-profil:last-child { border-bottom: none; }
.profil-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; }
.profil-number { font-weight: 600; color: var(--astro-primary); font-size: var(--font-size-base); text-transform: uppercase; letter-spacing: 0.5px; }
.profil-fields { display: flex; flex-direction: column; gap: 0.875rem; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.field-group { display: flex; flex-direction: column; gap: 0.3rem; }
.field-group label { font-weight: 500; font-size: var(--font-size-sm); color: var(--astro-text); }
.field-required { color: var(--astro-error); margin-left: 2px; }
.field-group input, .field-group select { padding: 0.6rem 0.875rem; border: 1px solid var(--astro-border); border-radius: var(--astro-radius-sm); font-size: var(--font-size-sm); transition: border-color 0.2s, box-shadow 0.2s; background: var(--astro-card); }
.field-group input:focus, .field-group select:focus { outline: none; border-color: var(--astro-primary); box-shadow: 0 0 0 2px rgba(92, 107, 192, 0.12); }
.field-group input.error, .field-group input.field-error { border-color: var(--astro-error); background-color: rgba(239, 68, 68, 0.05); }
.field-group input.selected { border-color: var(--astro-success); background-color: rgba(16, 185, 129, 0.05); }
.field-optional-group { background: linear-gradient(135deg, rgba(99, 102, 241, 0.05), rgba(139, 92, 246, 0.05)); padding: 1.25rem; border-radius: var(--astro-radius-sm); border: 1px dashed var(--astro-border); }
.optional-header { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.5rem; }
.optional-label { font-weight: 600; color: var(--astro-secondary); font-size: var(--font-size-base); }
.optional-badge { background: var(--astro-secondary); color: white; padding: 0.25rem 0.75rem; border-radius: 20px; font-size: var(--font-size-xs); font-weight: 600; }
.optional-hint { color: var(--astro-text-light); font-size: var(--font-size-sm); margin: 0 0 1rem 0; }
.city-autocomplete-wrapper { position: relative; }
.city-suggestions { position: absolute; top: 100%; left: 0; right: 0; background: var(--astro-card); border: 2px solid var(--astro-primary); border-top: none; border-radius: 0 0 var(--astro-radius-sm) var(--astro-radius-sm); box-shadow: var(--astro-shadow-lg); max-height: 280px; overflow-y: auto; z-index: 100; display: none; }
.city-suggestion { padding: 1rem 1.25rem; cursor: pointer; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--astro-border); transition: background 0.15s; font-size: var(--font-size-base); }
.city-suggestion:last-child { border-bottom: none; }
.city-suggestion:hover, .city-suggestion.active { background: rgba(99, 102, 241, 0.1); }
.city-name-display { font-weight: 600; }
.city-country { font-size: var(--font-size-sm); color: var(--astro-text-light); }
.city-loading, .city-no-result, .city-error { padding: 1.25rem; text-align: center; color: var(--astro-text-light); font-size: var(--font-size-base); }
.city-error { color: var(--astro-error); }
@media (max-width: 768px) {
  .astroalma-profil { padding: 1.5rem; }
  .field-row { grid-template-columns: 1fr; }
  .optional-header { flex-direction: column; align-items: flex-start; gap: 0.5rem; }
}
.saved-profiles-selector { background: linear-gradient(135deg, #e8f4fd 0%, #d4e9f7 100%); border: 2px solid var(--astro-primary); border-radius: 12px; padding: 1rem 1.25rem; margin-bottom: 1.5rem; position: relative; }
.saved-profiles-selector::before { content: ''; position: absolute; top: -8px; left: 20px; width: 16px; height: 16px; background: linear-gradient(135deg, #e8f4fd 0%, #d4e9f7 100%); border-left: 2px solid var(--astro-primary); border-top: 2px solid var(--astro-primary); transform: rotate(45deg); }
.saved-profiles-label { display: block; font-weight: 600; color: var(--astro-primary); margin-bottom: 0.75rem; font-size: 0.95rem; }
.saved-profiles-icon { margin-right: 0.5rem; }
.saved-profiles-dropdown { display: flex; gap: 0.5rem; align-items: center; }
.saved-profiles-select { flex: 1; padding: 0.75rem 1rem; border: 2px solid #dee2e6; border-radius: 8px; font-size: 1rem; background: #fff; cursor: pointer; transition: all 0.2s; }
.saved-profiles-select:hover { border-color: var(--astro-primary); }
.saved-profiles-select:focus { outline: none; border-color: var(--astro-primary); box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.2); }
.saved-profiles-select option { padding: 0.5rem; }
.saved-profiles-clear { width: 40px; height: 40px; border: 2px solid #dee2e6; border-radius: 8px; background: #fff; color: #6c757d; font-size: 1.1rem; cursor: pointer; transition: all 0.2s; display: flex; align-items: center; justify-content: center; }
.saved-profiles-clear:hover { border-color: #dc3545; color: #dc3545; background: #fff5f5; }
.save-profile-container { display: flex; align-items: center; gap: 1rem; margin: 1rem 0; padding: 0.75rem 1rem; background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%); border-radius: 8px; border: 1px dashed #dee2e6; }
.save-profile-label { display: flex; align-items: center; gap: 0.5rem; cursor: pointer; flex: 1; margin: 0; font-size: 0.95rem; color: #495057; }
.save-profile-checkbox { width: 18px; height: 18px; accent-color: var(--astro-primary); cursor: pointer; }
.save-profile-text { user-select: none; }
.save-profile-label:hover .save-profile-text { color: var(--astro-primary); }
.delete-saved-profile { padding: 0.5rem 0.75rem; border: none; border-radius: 6px; background: #fff; color: #dc3545; font-size: 1rem; cursor: pointer; transition: all 0.2s; border: 1px solid #dc3545; }
.delete-saved-profile:hover { background: #dc3545; color: #fff; }
.astroalma-profil.profile-loaded { animation: profileLoaded 0.5s ease; }
@media (max-width: 576px) {
  .saved-profiles-selector { padding: 0.875rem 1rem; }
  .saved-profiles-dropdown { flex-direction: column; }
  .saved-profiles-select { width: 100%; }
  .saved-profiles-clear { width: 100%; height: auto; padding: 0.5rem; }
  .save-profile-container { flex-direction: column; align-items: flex-start; gap: 0.75rem; }
  .delete-saved-profile { width: 100%; }
}
.aa-dark .astroalma-profil { background: var(--aa-surface); border: 1px solid var(--aa-line); border-radius: var(--aa-radius); padding: 1.5rem; margin-bottom: 1rem; }
.aa-dark .astroalma-profil:last-child { border-bottom: 1px solid var(--aa-line); }
.aa-dark .profil-number { font-family: var(--aa-font-title); font-weight: 500; font-size: 1.4rem; color: var(--aa-text); text-transform: none; letter-spacing: 0.01em; }
.aa-dark .profil-optional-badge { background: transparent !important; color: var(--aa-muted) !important; border: 1px solid var(--aa-line); }
.aa-dark .field-group label { color: var(--aa-text); font-weight: 600; font-size: 0.9rem; }
.aa-dark .field-required { color: var(--aa-gold); }
.aa-dark .field-group input:not([type="range"]):not([type="checkbox"]):not([type="radio"]), .aa-dark .field-group select, .aa-dark .field-group textarea, .aa-dark .saved-profiles-select { background: var(--aa-bg) !important; color: var(--aa-text) !important; border: 1px solid var(--aa-line) !important; border-radius: var(--aa-field-radius) !important; padding: 0.8rem 1rem !important; font-family: var(--aa-font-text) !important; font-size: 16px !important; box-shadow: none; color-scheme: dark; }
.aa-dark .field-group input::placeholder { color: var(--aa-placeholder); opacity: 1; }
.aa-dark .field-group input:not([type="range"]):not([type="checkbox"]):not([type="radio"]):focus, .aa-dark .field-group select:focus, .aa-dark .saved-profiles-select:focus { outline: none; border-color: var(--aa-gold) !important; box-shadow: 0 0 0 3px rgba(232, 194, 122, 0.28) !important; }
.aa-dark .field-group select option { background: var(--aa-surface); color: var(--aa-text); }
.aa-dark .field-group input.field-error, .aa-dark .field-group input.error { border-color: var(--aa-danger) !important; background-color: var(--aa-bg) !important; }
.aa-dark .field-group input.selected { border-color: var(--aa-gold) !important; background-color: var(--aa-bg) !important; }
.aa-dark .field-optional-group { background: rgba(232, 194, 122, 0.04); border: 1px dashed var(--aa-line); border-radius: var(--aa-radius-sm); }
.aa-dark .optional-label { color: var(--aa-text); font-family: var(--aa-font-title); font-size: 1.2rem; font-weight: 500; }
.aa-dark .optional-badge { background: transparent; color: var(--aa-gold); border: 1px solid var(--aa-gold); border-radius: 999px; }
.aa-dark .optional-hint { color: var(--aa-muted); }
.aa-dark .city-suggestions { background: var(--aa-surface); border: 1px solid var(--aa-gold); border-radius: 0 0 var(--aa-field-radius) var(--aa-field-radius); }
.aa-dark .city-suggestion { border-bottom-color: var(--aa-line); color: var(--aa-text); }
.aa-dark .city-suggestion:hover, .aa-dark .city-suggestion.active { background: rgba(232, 194, 122, 0.12); }
.aa-dark .city-country, .aa-dark .city-loading, .aa-dark .city-no-result { color: var(--aa-muted); }
.aa-dark .saved-profiles-selector, .aa-dark .saved-profiles-selector::before { background: var(--aa-surface-2); border-color: var(--aa-line); }
.aa-dark .saved-profiles-selector { border-width: 1px; border-radius: var(--aa-radius-sm); }
.aa-dark .saved-profiles-label { color: var(--aa-text); }
.aa-dark .saved-profiles-clear, .aa-dark .delete-saved-profile { background: transparent; color: var(--aa-danger); border: 1px solid var(--aa-line); border-radius: 12px; }
.aa-dark .saved-profiles-clear:hover, .aa-dark .delete-saved-profile:hover { background: transparent; color: var(--aa-danger); border-color: var(--aa-danger); }
.aa-dark .save-profile-container { background: transparent; border: 1px dashed var(--aa-line); border-radius: var(--aa-field-radius); }
.aa-dark .save-profile-label, .aa-dark .save-profile-label:hover .save-profile-text { color: var(--aa-muted); }
.aa-dark .save-profile-checkbox { accent-color: var(--aa-gold); }
@media (max-width: 767px) {
  .aa-dark .astroalma-profil { padding: 1.25rem !important; }
}
.aa-dark .astroalma-profil { position: relative; background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015)); border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 12px 30px -20px rgba(0, 0, 0, 0.7); transition: border-color 0.25s, box-shadow 0.25s; }
.aa-dark .astroalma-profil:focus-within { border-color: rgba(232, 194, 122, 0.35); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 0 0 4px rgba(232, 194, 122, 0.06), 0 16px 40px -24px rgba(232, 194, 122, 0.4); }
.aa-dark .astroalma-profil input[type="text"], .aa-dark .astroalma-profil input[type="email"], .aa-dark .astroalma-profil input[type="time"], .aa-dark .astroalma-profil select { background-color: rgba(8, 6, 20, 0.55); border-color: rgba(255, 255, 255, 0.10); transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s; }
.aa-dark .astroalma-profil input:focus, .aa-dark .astroalma-profil select:focus { border-color: rgba(232, 194, 122, 0.7); background-color: rgba(8, 6, 20, 0.75); box-shadow: 0 0 0 4px rgba(232, 194, 122, 0.12); }

@keyframes profileLoaded {
    0% { background-color: transparent; }
    50% { background-color: rgba(102, 126, 234, 0.1); }
    100% { background-color: transparent; }
}
/* Ajustements hors du formulaire principal (thèmes et blocs qui stylent label, input, button) */
.aa-bloc-profils .astroalma-profil { text-align: left; }
.aa-bloc-profils .field-group label { display: block; margin: 0; }
.aa-bloc-profils label.save-profile-label { display: flex; margin: 0; }
.aa-bloc-profils .save-profile-checkbox { width: 18px !important; height: 18px !important; min-height: 0 !important; margin: 0; flex: none; }
.aa-bloc-profils .field-group input:not([type="checkbox"]) { width: 100%; min-height: 48px; margin: 0; }
.aa-bloc-profils .saved-profiles-select { width: 100%; min-height: 48px; margin: 0; }
.aa-bloc-profils .city-suggestions { z-index: 60; }
.aa-bloc-profils .optional-hint, .aa-bloc-profils p { margin: 0 0 1rem 0; }
.aa-bloc-profils .delete-saved-profile, .aa-bloc-profils .saved-profiles-clear { padding: 0.4rem 0.8rem; line-height: 1; min-height: 0; box-shadow: none; text-transform: none; letter-spacing: 0; font-weight: 400; }
.aa-bloc-profils .city-suggestion { font-size: 15px; padding: 0.8rem 1rem; gap: 10px; }
.aa-bloc-profils .city-loading, .aa-bloc-profils .city-no-result, .aa-bloc-profils .city-error { padding: 0.8rem 1rem; font-size: 14px; color: var(--aa-muted); }
@media (max-width: 576px) { .aa-bloc-profils .field-row { grid-template-columns: 1fr; } .aa-bloc-profils.aa-dark .astroalma-profil { padding: 1.1rem !important; } }
