/* Connexion : sobre, comme le panel. Une seule couleur d'accent (boutons principaux, focus). */
.auth-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,440px);gap:clamp(28px,6vw,96px);align-items:stretch;padding:clamp(8px,2vh,24px) 0}
.auth-lead h1{font-size:clamp(2.1rem,4.6vw,3.3rem);margin-top:14px}
.auth-points{display:grid;gap:10px;margin:0;padding:0;list-style:none;max-width:54ch}
.auth-points li{display:flex;gap:12px;align-items:flex-start;padding:13px 16px;background:var(--pub-card);border:1px solid var(--pub-line);border-radius:var(--r-ctl);font-size:.88rem;line-height:1.5;color:var(--pub-muted)}
.auth-points b{display:block;margin-bottom:2px;color:var(--important);font-size:.94rem}
.auth-points .ico{flex:none;display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--pub-line);border-radius:var(--r-ctl);background:var(--pub-soft);color:var(--pub-text)}
.auth-points .ico svg{width:16px;height:16px}
.auth-card{padding:22px;background:var(--pub-card);border:1px solid var(--pub-line);border-radius:var(--r-panel);}
.auth-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}
.auth-brand{display:inline-flex;align-items:center;gap:9px;color:var(--important);font-weight:800;font-size:1rem;text-decoration:none}
.auth-brand img{width:auto;height:28px;object-fit:contain}
.auth-lock{padding:2px 8px;border:1px solid var(--pub-line);border-radius:4px;color:var(--pub-muted);font-size:.66rem;font-weight:800;letter-spacing:.06em}
.auth-card h2{margin:0 0 12px;font-size:1.2rem}
.stack{display:grid;gap:12px}
.field{display:grid;gap:5px;color:var(--pub-text);font-size:.8rem;font-weight:600}
.ui-input{width:100%;height:42px;padding:0 12px;border:1px solid var(--pub-line);border-radius:var(--r-ctl);background:var(--bg-soft,var(--pub-soft));color:var(--pub-text);font:400 .92rem/1.2 var(--font-ui);transition:border-color .15s,box-shadow .15s}
.ui-input::placeholder{color:var(--pub-muted);opacity:.7}
.ui-input:focus{border-color:var(--t-fg);outline:2px solid color-mix(in srgb,var(--t-fg) 55%,transparent);outline-offset:1px}
.pw{position:relative}.pw .ui-input{padding-right:44px}
.pw-toggle{position:absolute;top:0;right:0;width:42px;height:42px;display:grid;place-items:center;border:0;background:none;color:var(--pub-muted);cursor:pointer;border-radius:var(--r-ctl)}
.pw-toggle:hover{color:var(--pub-text)}.pw-toggle svg{width:18px;height:18px}.pw-toggle .off{display:none}.pw-toggle[aria-pressed=true] .on{display:none}.pw-toggle[aria-pressed=true] .off{display:block}
.precision-button{height:42px;border:0;border-radius:var(--r-ctl);background:var(--t-fg);color:var(--btn-ink);font:700 .88rem var(--font-ui);cursor:pointer;transition:filter .15s}
.precision-button:hover{background:color-mix(in srgb,var(--t-fg) 86%,var(--t-bg))}.precision-button:disabled{opacity:.6;cursor:progress}
.error{min-height:0;margin:0;color:var(--danger);font-size:.82rem;font-weight:600}.error a{color:inherit;text-decoration:underline}
.auth-divider{display:flex;align-items:center;gap:12px;margin:16px 0 10px;color:var(--pub-muted);font-size:.74rem;font-weight:600}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--border-subtle)}
.auth-alt-methods{display:grid;gap:6px}
.auth-alt-button,.auth-alt-link{display:flex;align-items:center;justify-content:flex-start;gap:11px;height:42px;padding:0 13px;border:1px solid var(--pub-line);border-radius:var(--r-ctl);background:var(--pub-card);color:var(--pub-text);font:600 .85rem var(--font-ui);text-align:left;text-decoration:none;cursor:pointer;transition:border-color .15s,background .15s}
.auth-alt-button:hover,.auth-alt-link:hover{border-color:var(--pub-muted);background:var(--pub-soft)}
.auth-alt-button svg,.auth-alt-link svg{flex:none;width:18px;height:18px}
.auth-invite{display:flex;justify-content:center;gap:6px;padding:11px;border:1px dashed var(--pub-line);border-radius:var(--r-ctl);color:var(--pub-text);font-size:.84rem;font-weight:600;text-decoration:none}
.auth-invite:hover{background:var(--pub-soft)}
.login-legal-links{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:14px;font-size:.76rem}
.login-legal-links a,.login-legal-links button{all:unset;cursor:pointer;color:var(--pub-muted);font-weight:600}
.login-legal-links a:hover,.login-legal-links button:hover{color:var(--pub-text);text-decoration:underline}
.login-legal-links :focus-visible{outline:2px solid var(--primary);outline-offset:3px}
.auth-alt-dialog{width:min(430px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;overflow:auto;border:1px solid var(--pub-line);border-radius:var(--r-panel);background:var(--pub-card);color:var(--pub-text);}
.auth-alt-dialog::backdrop{background:rgba(8,12,28,.55);backdrop-filter:blur(4px)}
.auth-alt-form{position:relative;display:grid;gap:14px;padding:28px clamp(18px,5vw,26px) 22px}
.auth-alt-form h2{margin:0;font-size:1.2rem}.auth-alt-copy{margin:0;color:var(--pub-muted);font-size:.88rem}.auth-alt-copy strong{color:var(--pub-text);overflow-wrap:anywhere}
.auth-alt-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:1px solid var(--pub-line);border-radius:var(--r-ctl);background:var(--pub-soft);color:var(--pub-text);font-size:1.1rem;cursor:pointer}
.auth-alt-back,.auth-alt-resend{justify-self:start;padding:4px 0;border:0;background:none;color:var(--pub-text);font:600 .8rem var(--font-ui);cursor:pointer;text-decoration:underline}
.auth-alt-resend{justify-self:center}.auth-alt-resend:disabled{color:var(--pub-muted);cursor:not-allowed;text-decoration:none}
.auth-alt-digits{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(5px,2vw,8px)}
.auth-alt-digit{width:100%;min-width:0;height:clamp(44px,12vw,52px);border:1px solid var(--pub-line);border-radius:var(--r-ctl);background:var(--bg-soft,var(--pub-soft));color:var(--pub-text);font:600 1.15rem var(--font-ui);text-align:center}
.auth-alt-digit:focus{outline:none;border-color:var(--t-fg);outline:2px solid color-mix(in srgb,var(--t-fg) 55%,transparent);outline-offset:1px}
@media(max-width:900px){.auth-grid{grid-template-columns:1fr;gap:28px;padding:28px 0 48px}.auth-points{display:none}.auth-lead .lead{font-size:.98rem}}

/* Bouton « Retour à l'accueil » : en haut de la colonne gauche, aligné sur le haut de la carte de connexion */
.auth-back{display:inline-flex;align-items:center;gap:8px;height:38px;margin-bottom:clamp(24px,5vh,44px);padding:0 14px;border:1px solid var(--border);border-radius:var(--r-ctl);background:transparent;color:var(--text);font:700 .82rem var(--font-body);text-decoration:none;transition:background .15s,border-color .15s}
.auth-back:hover{background:var(--tint-hover);border-color:color-mix(in srgb,var(--t-fg) 30%,var(--t-bg))}
.auth-back:focus-visible{outline:2px solid color-mix(in srgb,var(--t-fg) 55%,transparent);outline-offset:2px}
@media(max-width:900px){.auth-back{margin-bottom:24px}}

/* Erreur vide : hauteur nulle, et on annule l'écart de la grille pour ne pas laisser un trou avant les « autres moyens » */
.stack>.error:empty{margin-top:-12px}
.stack>.error:not(:empty){padding-top:2px}

/* Colonne de gauche : tout le bloc (retour, titre, texte, points) est centré verticalement face à la carte */
.auth-lead{display:flex;flex-direction:column;justify-content:center;min-width:0}
.auth-lead .auth-back{align-self:flex-start}
.auth-lead .auth-points{margin-top:36px}
