/**
 * CREATE-ACCOUNT-MODERN.CSS — Page de création de compte (production)
 * ======================================================================
 *
 * Feuille de style DÉDIÉE à web/create_account.php, chargée uniquement
 * par cette page. Toutes les règles sont scopées sous .account-modern
 * pour garantir zéro effet de bord sur le reste du site.
 *
 * IMPORTANT : cette page reste connectée au script de validation en
 * temps réel includes/javascript/create_account.js.php, qui manipule
 * directement les éléments #bordureXxxClient (ajout/retrait de la
 * classe globale .bordureRouge en cas d'erreur) et #xxxClientValidity
 * (icône de validation). Ces id/éléments sont donc conservés tels
 * quels dans le HTML ; le style ci-dessous habille des conteneurs
 * AUTOUR d'eux plutôt que ces éléments directement, pour ne jamais
 * interférer avec ce mécanisme.
 *
 * Design system repris de privacy-modern.css / login-modern.css.
 *
 * @version 1.0.0
 */

.account-modern {
    --color-primary:        #e8194f;
    --color-primary-dark:   #c01640;
    --color-accent:         #1a73e8;

    --color-bg:             #f5f5f7;
    --color-surface:        #ffffff;
    --color-surface-alt:    #fafafa;

    --color-text-primary:   #1d1d1f;
    --color-text-secondary: #6e6e73;
    --color-text-muted:     #999999;
    --color-text-inverse:   #ffffff;

    --color-border:         #e0e0e0;
    --color-border-light:   #f0f0f0;
    --color-danger:         #bb0808;

    --font-size-xs:  0.75rem;
    --font-size-sm:  0.8125rem;
    --font-size-base:0.875rem;
    --font-size-md:  1rem;
    --font-size-lg:  1.125rem;
    --font-size-2xl: 1.75rem;

    --space-xs:  0.25rem;
    --space-sm:  0.5rem;
    --space-md:  1rem;
    --space-lg:  1.5rem;
    --space-xl:  2rem;
    --space-2xl: 3rem;

    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 12px;
    --radius-full: 9999px;

    --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);

    --transition-fast: 150ms ease;

    font-family: 'Segoe UI', Arial, -apple-system, BlinkMacSystemFont, sans-serif;
}

.account-modern, .account-modern *, .account-modern *::before, .account-modern *::after {
    box-sizing: border-box;
}

.account-modern p { margin: 0; }

/* ---------- Titre ---------- */
.account-modern h1 {
    background: none !important;
    margin: 0 auto var(--space-md) !important;
    padding: 0 !important;
    text-align: center;
    font-size: var(--font-size-2xl);
    font-weight: 700;
    color: var(--color-text-primary);
    letter-spacing: -0.01em;
}

/* ---------- Bandeau "déjà un compte ?" ---------- */
.account-modern .account-notice {
    max-width: 760px;
    margin: 0 auto var(--space-xl);
    background: rgba(26, 115, 232, 0.07);
    border: 1px solid rgba(26, 115, 232, 0.18);
    border-radius: var(--radius-md);
    padding: var(--space-md) var(--space-lg);
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
    text-align: center;
}

.account-modern .account-notice a {
    color: var(--color-accent);
    font-weight: 600;
    text-decoration: none;
}

.account-modern .account-notice a:hover { text-decoration: underline; }
.account-modern .account-notice p { display: inline; }

/* ---------- Messages d'erreur (messageStack) ---------- */
.account-modern .account-messages { max-width: 1100px; margin: 0 auto var(--space-lg); }

/* ---------- Ligne 1 : 3 colonnes (chaque colonne peut empiler plusieurs blocs) ---------- */
.account-modern .account-row {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-lg);
    align-items: stretch;
}

.account-modern .account-row + .account-row {
    margin-top: var(--space-lg);
}

/* Ligne 2 : mot de passe + validation (CGV/reCAPTCHA) côte à côte, alignés à gauche */
.account-modern .account-row--single {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    max-width: 820px;
    margin-left: 0;
    margin-right: auto;
}

@media (max-width: 640px) {
    .account-modern .account-row--single {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 1000px) {
    .account-modern .account-row {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 640px) {
    .account-modern .account-row {
        grid-template-columns: 1fr;
    }
    .account-modern .account-row--single {
        max-width: none;
    }
}

.account-modern .account-col {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
}

/* Le dernier bloc de chaque colonne s'étire pour égaliser la hauteur
   des 3 colonnes de la ligne 1, quel que soit le nombre de champs. */
.account-modern .account-col > .account-card:last-child {
    flex: 1;
}

.account-modern .account-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: var(--space-md) var(--space-lg);
}

.account-modern .account-card__header {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-bottom: var(--space-sm);
    padding-bottom: var(--space-xs);
    border-bottom: 2px solid var(--color-primary);
}

.account-modern .account-card__header .fieldRequired {
    color: var(--color-danger);
    font-weight: 700;
    margin-left: auto;
    font-size: var(--font-size-base);
}

.account-modern .account-card__icon {
    width: 32px;
    height: 32px;
    flex: none;
    border-radius: var(--radius-full);
    background: rgba(232, 25, 79, 0.08);
    color: var(--color-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
}

.account-modern .account-card__header h2 {
    margin: 0;
    font-size: var(--font-size-md);
    font-weight: 700;
    color: var(--color-text-primary);
}

/* ---------- Champs ---------- */
.account-modern .account-field {
    margin-bottom: var(--space-sm);
}

.account-modern .account-field:last-child { margin-bottom: 0; }

.account-modern .account-field > label {
    display: block;
    font-size: var(--font-size-xs);
    font-weight: 700;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 2px;
}

.account-modern .account-field__input {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-xs);
}

.account-modern .account-field__input .main {
    flex: 1;
    min-width: 0;
    font-family: inherit;
}

.account-modern .account-field__input .main.bordureRouge {
    flex: 1;
}

.account-modern .account-field input[type="text"],
.account-modern .account-field input[type="password"],
.account-modern .account-field input[type="tel"],
.account-modern .account-field select {
    width: 100%;
    padding: 0.55rem 0.7rem;
    font-size: var(--font-size-base);
    font-family: inherit;
    color: var(--color-text-primary);
    background: var(--color-surface-alt);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
}

.account-modern .account-field input[type="text"]:focus,
.account-modern .account-field input[type="password"]:focus,
.account-modern .account-field select:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(232, 25, 79, 0.12);
}

.account-modern .account-field img[alt=""] {
    flex: none;
    cursor: help;
    opacity: 0.6;
}

.account-modern .account-field .fieldRequired {
    color: var(--color-danger);
    font-weight: 700;
}

.account-modern .account-field [id$="Validity"] {
    flex: none;
    display: inline-flex;
    align-items: center;
}

/* Quand testChampClient() injecte un message d'erreur (un <div> en plus de
   l'icone), on lui donne toute la ligne pour rester lisible plutôt que de
   forcer champ + radios + erreur sur une seule ligne (ce qui faisait
   passer les groupes de boutons radio sur 2 lignes). */
.account-modern .account-field [id$="Validity"]:has(div) {
    flex-basis: 100%;
    order: 3;
}

.account-modern .account-field [id$="Validity"] div {
    font-size: var(--font-size-xs);
    margin-top: 2px !important;
}

.account-modern .account-radio-group {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-xs) var(--space-md);
    font-size: var(--font-size-base);
}

.account-modern .account-required-legend {
    max-width: 1200px;
    margin: 0 auto var(--space-xs);
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}

.account-modern .account-missing-hint {
    max-width: 1200px;
    margin: 0 auto var(--space-md);
    padding: var(--space-sm) var(--space-md);
    background: rgba(187, 8, 8, 0.06);
    border: 1px solid rgba(187, 8, 8, 0.25);
    border-radius: var(--radius-sm);
    color: var(--color-danger);
    font-size: var(--font-size-xs);
    font-weight: 600;
}

/* ---------- Bloc CGV / recaptcha / bouton ---------- */
.account-modern .account-submit {
    max-width: 1200px;
    margin: var(--space-xl) auto 0;
    background: var(--color-surface);
    border: 1px solid var(--color-border-light);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    padding: var(--space-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-md);
    text-align: center;
}

.account-modern .account-submit__terms {
    font-size: var(--font-size-sm);
    color: var(--color-text-secondary);
}

.account-modern .account-submit__terms a {
    color: var(--color-primary);
    font-weight: 600;
}

/* tep_draw_button(..., 'primary') est transformé en bouton jQuery UI
   avec la classe .ui-priority-primary — on le restyle directement
   plutôt que de le remplacer, pour conserver id="tdb1" et tout hook JS
   existant (désactivation pendant la validation recaptcha, etc.). */
.account-modern .ui-priority-primary,
.account-modern .ui-priority-primary.ui-state-hover {
    background: var(--color-primary) !important;
    background-image: none !important;
    border: none !important;
    color: var(--color-text-inverse) !important;
    border-radius: var(--radius-md) !important;
    font-weight: 700 !important;
    font-size: var(--font-size-md) !important;
    padding: var(--space-md) var(--space-2xl) !important;
}

.account-modern .ui-priority-primary:hover {
    background: var(--color-primary-dark) !important;
}

.account-modern .ui-priority-primary .ui-icon {
    background-image: none !important;
}
