@import url("assets/tokens.css?v=20260906-tokens-1");
:root{--ink:var(--gf-ink);--ivory:var(--gf-ivory);--paper:var(--gf-paper);--oxblood:var(--gf-oxblood);--line:var(--gf-amber-11);--slate:var(--gf-muted);--slate-text:var(--gf-muted);--serif:"Source Serif 4",Georgia,serif;--sans:"Inter",Arial,sans;--mono:"IBM Plex Mono",monospace}*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font:14px/1.6 var(--sans)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.auth-layout{min-height:100vh;display:grid;grid-template-columns:minmax(430px,.9fr) minmax(520px,1.1fr)}.auth-brand-panel{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow:hidden;padding:45px clamp(34px,5vw,78px);color:var(--gf-white-t);background:var(--ink)}.auth-brand-panel::before{content:"";position:absolute;width:470px;height:470px;right:-270px;top:22%;border:1px solid rgba(255,255,255,.12);border-radius:50%;box-shadow:0 0 0 75px rgba(255,255,255,.018),0 0 0 150px rgba(255,255,255,.012)}.auth-brand-panel::after{content:"";position:absolute;inset:0;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.35) 1px,transparent 1px);background-size:36px 36px;mask-image:linear-gradient(90deg,transparent,var(--gf-black))}.auth-brand,.auth-promise,.auth-legal{position:relative;z-index:1}.auth-brand{display:inline-flex;align-items:center;gap:12px;align-self:flex-start}.auth-brand img{width:52px;height:52px}.auth-brand>span{font:500 24px/1 var(--serif)}.auth-brand b{font-weight:700}.auth-brand small{display:block;margin-top:7px;color:var(--gf-blue-11-t);font:600 12px var(--sans);letter-spacing:1.4px}.auth-promise{max-width:620px;margin:auto 0}.auth-index{color:var(--gf-amber-25-t);font:500 12px var(--mono);letter-spacing:1.2px}.auth-promise h1{margin:22px 0 24px;font:600 clamp(47px,5vw,69px)/.98 var(--serif);letter-spacing:-2.7px}.auth-promise h1 em{color:var(--gf-red-10-t);font-style:normal;font-weight:500}.auth-promise>p{max-width:560px;color:var(--gf-blue-08-t);font-size:14px}.auth-promise ul{display:grid;gap:0;margin:36px 0 0;padding:0;border-top:1px solid rgba(255,255,255,.2);list-style:none}.auth-promise li{display:flex;gap:18px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.15);font:600 13px var(--serif)}.auth-promise li i{color:var(--gf-amber-25-t);font:500 12px var(--mono);font-style:normal}.auth-legal{margin:30px 0 0;color:var(--gf-blue-11-t);font-size:12px;line-height:1.6}.auth-form-panel{display:grid;place-items:center;padding:48px;background:var(--paper)}.auth-form-wrap{width:min(460px,100%)}.signup-wrap{width:min(590px,100%)}.back-link{display:inline-block;margin-bottom:45px;color:var(--slate-text);font-size:12px}.back-link:hover{color:var(--oxblood)}.form-kicker{display:flex;align-items:center;gap:8px;color:var(--oxblood);font:500 12px var(--mono);letter-spacing:1.2px}.form-kicker i{width:6px;height:6px;background:var(--oxblood);border-radius:50%}.auth-form-wrap h2{margin:15px 0 5px;font:600 46px/1 var(--serif);letter-spacing:-1.6px}.form-intro{margin:0 0 25px;color:var(--slate-text)}.prototype-note{display:grid;gap:2px;margin-bottom:24px;padding:12px 14px;color:var(--slate-text);background:var(--gf-ivory);border-left:3px solid var(--gf-gold);border-radius:0 10px 10px 0;font-size:12px;line-height:1.5}.prototype-note strong{color:var(--ink);font-size:13px}.auth-form{display:grid;gap:10px}.auth-form label{margin-top:4px;color:var(--gf-blue-32-t);font-size:12px;font-weight:700}.auth-form input,.auth-form select{width:100%;height:50px;padding:0 15px;color:var(--ink);background:var(--gf-white);border:1px solid var(--gf-neutral-01);border-radius:10px;outline:none;transition:border .2s,box-shadow .2s}.auth-form input:focus,.auth-form select:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(11,30,50,.08)}.auth-form input.invalid,.auth-form select.invalid{border-color:var(--oxblood)}.label-row{display:flex;align-items:center;justify-content:space-between}.label-row a{color:var(--oxblood);font-size:var(--gf-fs-min);font-weight:600}.password-field{position:relative}.password-field input{padding-right:98px}.password-field button{position:absolute;right:8px;top:6px;height:38px;padding:0 12px;color:var(--slate-text);background:var(--gf-ivory);border:0;border-radius:7px;font-size:12px;font-weight:700;cursor:pointer}.check-row{display:flex;align-items:center;gap:12px;min-height:44px;margin:9px 0 4px;padding:4px 0;font-weight:500}.check-row input{width:22px;height:22px;flex:0 0 auto;margin:0;accent-color:var(--oxblood);cursor:pointer}.check-row label{margin:0;min-height:44px;display:block;padding:12px 0;color:var(--ink);font-size:13px;font-weight:500;line-height:1.5;cursor:pointer}.check-row a{color:var(--oxblood);font-weight:700;text-decoration:underline}.forgot-row{margin:6px 0 0;text-align:right}.forgot-row a{display:inline-block;min-height:24px;color:var(--oxblood);font-size:13px;font-weight:600;text-decoration:underline}.auth-submit{min-height:52px;display:flex;align-items:center;justify-content:space-between;margin-top:4px;padding:0 17px;color:var(--gf-white-t);background:var(--ink);border:0;border-radius:11px;font-size:13px;font-weight:700;cursor:pointer}.auth-submit:hover{background:var(--oxblood)}.auth-submit span{font-size:18px}.form-error{margin:0;padding:9px 11px;color:var(--oxblood);background:var(--gf-red-02);border-radius:7px;font-size:12px;line-height:1.5}.form-separator{height:35px;display:flex;align-items:center;justify-content:center;color:var(--slate-text);font-size:12px}.form-separator::before,.form-separator::after{content:"";height:1px;flex:1;background:var(--line)}.form-separator span{padding:0 12px}.demo-access{min-height:48px;display:grid;place-items:center;border:1px solid var(--gf-blue-10);border-radius:11px;font-size:12px;font-weight:700}.demo-access:hover{background:var(--ivory)}.signup-link{text-align:center;color:var(--slate-text);font-size:12px}.signup-link a{color:var(--oxblood);font-weight:700}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-grid>div{display:grid;gap:10px}.signup-zero{display:flex;align-items:center;gap:19px;margin-top:35px;padding-top:25px;border-top:1px solid rgba(255,255,255,.2)}.signup-zero strong{color:var(--gf-white-t);font:600 62px/.8 var(--serif)}.signup-zero span{color:var(--gf-blue-09-t);font-size:12px}.auth-dialog{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:20px;background:rgba(5,16,27,.75);backdrop-filter:blur(6px)}.auth-dialog[hidden]{display:none}.auth-dialog section{width:min(460px,100%);position:relative;padding:38px;background:var(--paper);border-top:5px solid var(--oxblood);border-radius:20px;box-shadow:0 35px 80px rgba(0,0,0,.3)}.auth-dialog section>span{color:var(--oxblood);font:500 12px var(--mono);letter-spacing:1px}.auth-dialog h2{margin:15px 0 8px;font:600 31px var(--serif)}.auth-dialog p{color:var(--slate-text)}.dialog-close{position:absolute;right:12px;top:8px;width:44px;height:44px;color:var(--slate-text);background:none;border:0;font-size:26px;cursor:pointer}.dialog-confirm{width:100%;min-height:47px;margin-top:10px;color:var(--gf-white-t);background:var(--ink);border:0;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer}@media(max-width:900px){.auth-layout{grid-template-columns:1fr}.auth-brand-panel{min-height:430px;padding:32px}.auth-promise{margin:75px 0 35px}.auth-promise h1{font-size:48px}.auth-promise ul{display:none}.auth-form-panel{padding:55px 24px}.back-link{margin-bottom:35px}}@media(max-width:560px){.auth-brand-panel{min-height:360px;padding:25px 20px}.auth-brand img{width:44px;height:44px}.auth-promise{margin:55px 0 20px}.auth-promise h1{font-size:39px;letter-spacing:-1.8px}.auth-promise>p{font-size:12px}.auth-form-panel{padding:42px 18px}.auth-form-wrap h2{font-size:39px}.field-grid{grid-template-columns:1fr}.signup-layout .auth-brand-panel{min-height:390px}}
/* P5c : l'inscription n'ouvre plus de session. La page de connexion et le
   formulaire d'inscription doivent dire, dans les memes termes et sans
   distinguer une adresse libre d'une adresse deja prise, qu'un lien de
   validation a ete envoye. */
.verify-notice{display:grid;gap:8px;margin:0 0 22px;padding:16px 18px;color:var(--ink);background:var(--gf-white);border:1px solid var(--line);border-left:4px solid var(--oxblood);border-radius:0 12px 12px 0}
.verify-notice[hidden]{display:none}
.verify-notice-kicker{color:var(--oxblood);font:600 12px var(--mono);letter-spacing:.9px}
.verify-notice strong{font:600 19px var(--serif)}
.verify-notice p{margin:0;color:var(--gf-blue-40-t);font-size:13px;line-height:1.6}
.verify-notice-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:2px}
.verify-notice-actions button,.verify-notice-link{min-height:44px;display:inline-flex;align-items:center;padding:0 16px;color:var(--gf-white-t);background:var(--ink);border:0;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;text-decoration:none}
.verify-notice-actions button:hover,.verify-notice-link:hover{background:var(--oxblood)}
.verify-notice-actions button[disabled]{background:var(--gf-blue-32);cursor:progress}
.verify-notice-status{margin:0;padding:9px 11px;background:var(--gf-green-01);border-radius:8px;color:var(--gf-blue-44-t);font-size:13px}
.verify-notice-status.is-error{color:var(--oxblood);background:var(--gf-red-02)}
