/* Pages d'authentification (connexion, mot de passe oublié, réinitialisation) — 16/09/2026.
   Même charte que l'application (index.html) : fond sombre, or/champagne, Cormorant Garamond + DM Sans, logo /static/logo.png. */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500&display=swap');
@import url('theme.css');   /* variables de couleur et de polices : charte commune (16/09/2026) */
@import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:opsz,wght@6..12,400;6..12,500;6..12,600&display=swap');   /* DA 3 (05/10/2026) */
*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:300;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;overflow-x:hidden;overflow-y:auto}
/* Rendu « DA 2 » (17/09/2026, décision de Victor) : plus de halos, carte plate à filet fin, coins 3 px, champs et bouton rectangulaires — comme l'application et l'espace client. */
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.wrap{position:relative;z-index:1;width:min(420px,100%)}
.brand{text-align:center;margin-bottom:26px}
.brand img{height:84px;width:auto;display:inline-block;filter:brightness(1.35) sepia(.25) saturate(.9)}
:root[data-theme=light] .brand img{filter:brightness(.62) sepia(.35) saturate(1.1)}   /* mode clair (16/09/2026) : les pages de connexion suivent le thème mémorisé sur le poste */
.brand .tag{margin-top:10px;font-size:11px;letter-spacing:.36em;text-transform:uppercase;color:var(--ink-3)}
.rule{width:44px;height:1px;margin:18px auto 0;background:var(--champagne)}

.card{background:transparent;border:1px solid rgba(var(--fg-rgb),.10);border-radius:3px;padding:32px 32px 28px}
h1{font-family:var(--serif);font-weight:500;font-size:26px;letter-spacing:.02em;color:var(--ink);text-align:center}
.sub{text-align:center;font-size:12.5px;color:var(--ink-2);margin:6px 0 24px;line-height:1.5}
p.txt{font-size:13.5px;color:var(--ink-2);line-height:1.6;margin:0 0 14px}
p.txt b{color:var(--ink);font-weight:400}

label{display:block;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-3);margin:16px 0 8px}
.fld{position:relative}
input{width:100%;padding:12px 14px;background:transparent;border:1px solid rgba(var(--fg-rgb),.10);border-radius:3px;color:var(--ink);font:400 15px var(--sans);
  outline:none;transition:border-color .2s,box-shadow .2s,background .2s;-webkit-appearance:none}
input::placeholder{color:rgba(var(--ink2-rgb),.45)}
input:focus{border-color:var(--champagne);box-shadow:none;background:transparent}
input:-webkit-autofill{-webkit-text-fill-color:var(--ink);box-shadow:0 0 0 1000px var(--autofill-bg) inset;transition:background-color 9999s}
.fld input[type=password],.fld input[data-pw]{padding-right:46px}
.eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;background:none;color:var(--ink-3);cursor:pointer;border-radius:3px;display:flex;align-items:center;justify-content:center}
.eye:hover{color:var(--champagne);background:rgba(var(--gold-rgb),.08)}
.eye svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.hint{font-size:11.5px;color:var(--ink-3);margin-top:8px;line-height:1.5}
.hint.bad{color:var(--auth-bad)}.hint.good{color:var(--auth-good)}

button.go,a.go{display:block;text-align:center;text-decoration:none;margin-top:26px;width:100%;padding:14px 14px 15px;border:1px solid var(--champagne);border-radius:3px;background:var(--champagne);color:var(--on-gold);
  font:500 12px var(--sans);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;transition:background .2s}
button.go:hover,a.go:hover{background:var(--gold-hover)}
button.go:active{transform:none}
button.go:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}

.links{margin-top:18px;text-align:center;font-size:12.5px}
.links a{color:var(--ink-2);text-decoration:none;border-bottom:1px solid rgba(var(--gold-rgb),.35);padding-bottom:1px;transition:color .2s,border-color .2s}
.links a:hover{color:var(--champagne);border-color:var(--champagne)}

.err,.ok{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;border-radius:3px;font-size:13px;margin:4px 0 6px;line-height:1.45}
.err{background:rgba(var(--neg-rgb),.1);border:1px solid rgba(var(--neg-rgb),.35);color:var(--auth-bad)}
.ok{background:rgba(var(--pos-rgb),.1);border:1px solid rgba(var(--pos-rgb),.35);color:var(--auth-ok-ink)}
.err::before,.ok::before{content:'';flex:none;width:8px;height:8px;border-radius:50%;margin-top:5px}
.err::before{background:var(--neg)}
.ok::before{background:var(--pos)}

.steps{list-style:none;margin:6px 0 4px;display:grid;gap:8px}
.steps li{display:flex;gap:10px;font-size:13px;color:var(--ink-2);line-height:1.5}
.steps li i{flex:none;width:20px;height:20px;border-radius:50%;border:1px solid rgba(var(--gold-rgb),.5);color:var(--champagne);font:500 11px var(--sans);font-style:normal;display:flex;align-items:center;justify-content:center;margin-top:1px}
@media (max-width:480px){.card{padding:26px 22px 24px}.brand img{height:78px}}
/* audit 15/10/2026 : le titre en serif ajoute ~7 px de vide au-dessus de ses majuscules — la carte est rééquilibrée haut / bas */
.card{padding-top:26px;padding-bottom:34px}
@media (max-width:480px){.card{padding-top:20px;padding-bottom:30px}}

/* ---- DA 3 (05/10/2026, lot 1) : page de connexion du prototype « Connexion.dc.html » — active seulement avec <html data-da3> (choix par poste) ---- */
[data-da3] body{font-family:'Avenir Next','Avenir','Nunito Sans',system-ui,sans-serif;font-weight:400}
[data-da3] .brand img{height:72px;filter:brightness(1.35) sepia(.25) saturate(.9)}
:root[data-theme=light][data-da3] .brand img{filter:brightness(.5) sepia(.6) saturate(1.3)}
[data-da3] .brand .tag{font-size:10px;letter-spacing:.34em;margin-top:14px}
[data-da3] .rule{background:rgba(var(--gold-rgb),.5);margin:18px auto 30px}
[data-da3] .card{width:100%;max-width:400px;background:var(--bg2);border:1px solid rgba(var(--gold-rgb),.22);border-radius:10px;padding:34px 32px 30px}
[data-da3] .card{padding-top:25px;padding-bottom:37px}   /* audit 15/10/2026 : carte de connexion de la nouvelle interface équilibrée haut / bas (titre en serif) */
[data-da3] h1{font-size:32px;font-weight:400;letter-spacing:0}
[data-da3] .card .sub{font-size:13px;color:var(--ink-2);margin:4px 0 26px}
[data-da3] label{letter-spacing:.26em;margin:0 0 8px}
[data-da3] .fld{margin-bottom:16px}
[data-da3] .fld input{height:46px;border-radius:6px;border:1px solid rgba(var(--fg-rgb),.12);background:var(--auth-input);font-size:14px;font-family:inherit}
[data-da3] .fld input:focus{border-color:var(--champagne)}
[data-da3] .go{height:46px;border-radius:6px;background:var(--champagne);color:var(--on-gold);font-size:12.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;border:0;font-family:inherit;margin-top:8px}
[data-da3] .go:hover{background:var(--gold-hover);color:var(--on-gold)}
[data-da3] .links{margin-top:18px}
[data-da3] .links a{font-size:12.5px;color:var(--ink-2);border-bottom:1px solid rgba(var(--gold-rgb),.5);padding-bottom:2px;text-decoration:none}
