/* /sign-in-v4/ — CONNEXION ÉPURÉE (Kevin 02/11/2026 : « ça fait beaucoup trop de choses » ; PRODUIT, lot ㉑).
   Une seule carte centrée : titre court, bouton Google, « ou », e-mail + lien magique, case marketing d'une ligne, lien « code d'invitation » replié.
   Plus de panneau de gauche, de lien de retour, de « Add to Chrome » ni de long paragraphe. Les couleurs de la marque B viennent de assets/marque-b/sign-in-b.css. */
:root{color-scheme:light;--field:#f1f4f5;--ink:#16212e;--muted:#65727e;--signal:#e11d48;--line:#dce3e6;--font:DM Sans,Inter,system-ui,sans-serif;--serif:Merriweather,Georgia,serif;font-family:var(--font);color:var(--ink);background:var(--field)}
*{box-sizing:border-box}html{min-width:320px}body{margin:0;min-height:100svh;display:flex;flex-direction:column;background:radial-gradient(ellipse 800px 600px at 75% 12%,#fff 0%,transparent 70%),var(--field);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #e11d4880;outline-offset:3px}[hidden]{display:none!important}
.masthead{width:min(calc(100% - 48px),1480px);margin-inline:auto;display:flex;justify-content:center;align-items:center;min-height:88px}.brand{font:800 31px/1 var(--serif);letter-spacing:-2px}.brand span,.dot{color:var(--signal)}.brand span{font-family:Arial,sans-serif;margin-left:4px}
main{flex:1;width:min(calc(100% - 48px),460px);margin:0 auto;display:flex;align-items:center;justify-content:center;padding:8px 0 90px}
.entry{width:100%;padding:36px 36px 26px;border:1px solid #e0e5e8;border-radius:20px;background:#fff;box-shadow:0 22px 58px #16212e0e,0 3px 8px #16212e05}
h1{font:800 28px/1.2 var(--serif);letter-spacing:-.03em;margin:0 0 22px;text-align:center}
label{display:block;font-size:13px;font-weight:700;margin-bottom:8px}
input:not([type=checkbox]){width:100%;height:50px;padding:0 15px;border:1px solid #cad4dc;border-radius:9px;background:#fff;color:var(--ink);box-shadow:0 1px 2px #16212e04}input::placeholder{color:#8d99a2}input[aria-invalid=true]{border-color:#b82a4c}
.primary{width:100%;min-height:52px;margin-top:18px;padding:13px 17px;border:0;border-radius:9px;background:var(--ink);color:#fff;font-size:14px;font-weight:700;display:flex;justify-content:space-between;align-items:center;cursor:pointer;box-shadow:0 8px 18px #16212e1c}.primary:hover,.secondary:hover{background:#293747}.primary:disabled,.secondary:disabled{cursor:wait;opacity:.65}.primary>span:last-child{font-size:22px;line-height:1;color:#ff879e}
.error{color:#af2345;font-size:12px;line-height:1.6;margin:9px 0 0}
/* Continue with Google : le bouton statique (toujours là) a la forme du bouton officiel « outline / large » de Google Identity Services, qui le remplace quand il s'est rendu. */
.google-entry{display:flex;justify-content:center;min-height:44px}
.google-fallback{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:400px;min-height:44px;padding:0 14px;border:1px solid #747775;border-radius:6px;background:#fff;color:#1f1f1f;font-size:15px;font-weight:600;letter-spacing:.01em;cursor:pointer;box-shadow:0 1px 2px #16212e12;transition:background .15s,box-shadow .15s}
.google-fallback svg{width:19px;height:19px;flex:none}.google-fallback:hover{background:#f5f7fb;box-shadow:0 2px 6px #16212e1a}.google-fallback[aria-busy=true]{cursor:wait;opacity:.7}
.google-gsi{display:flex;justify-content:center;width:100%;line-height:0}.google-gsi iframe{margin:0!important}
.or{display:flex;align-items:center;gap:14px;margin:18px 0;color:var(--muted);font-size:13px}.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.magic-line{margin:9px 0 0;font-size:13px;line-height:1.5;color:var(--muted)}
.consent-choice{display:flex;align-items:center;gap:10px;margin-top:16px}.consent-choice input{flex:none;width:17px;height:17px;margin:0;padding:0;accent-color:var(--signal);cursor:pointer}.consent-choice{align-items:flex-start}.consent-choice input{margin-top:1px}.consent-choice label{margin:0;font-size:13px;font-weight:500;line-height:1.4;color:var(--ink);cursor:pointer}.consent-remind{color:var(--muted)}
.confirmation{background:#f7f9fa;border:1px solid #dce3e6;border-radius:14px;padding:24px}.mail-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:18px;border-radius:11px;background:#e8f1ed;color:#3d7862;font-size:22px}h2{font-size:19px;letter-spacing:-.035em;margin:0 0 10px}.confirmation p{color:var(--muted);font-size:13px;line-height:1.65;margin:0 0 11px}.confirmation .submitted-email{display:inline-block;padding:7px 10px;border:1px solid #dce3e6;border-radius:6px;background:#fff;font-weight:700;color:var(--ink);overflow-wrap:anywhere}.confirmation .link-note{font-size:11px}.confirmation-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:18px}.secondary{border:0;border-radius:8px;background:var(--ink);color:#fff;padding:10px 13px;font-size:12px;font-weight:700;cursor:pointer}.secondary span{color:#ff879e;margin-left:9px}.text-button{border:0;background:none;padding:10px;font-size:12px;color:var(--ink);font-weight:700;cursor:pointer}.text-button:hover{text-decoration:underline;text-underline-offset:3px}.confirmation .resend-status{margin:12px 0 0}.resend-status[data-error=true]{color:#af2345}
.status{font-size:13px;line-height:1.65;padding:13px 15px;border-radius:9px;border:1px solid var(--line);background:#f7f9fa;margin:0 0 20px}.status[data-invitation=ouverte]{border-color:#8dbda9;color:#2f5e4d}.status[data-invitation=refus]{border-color:#e2a6b8;color:#aa2148}
/* Code d'invitation compact (Kevin 02/11, PRODUIT) : un lien discret qui déplie un seul champ et son bouton ; replié par défaut. */
.invite{margin-top:14px;text-align:center}
.invite-toggle{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 0;border:0;background:none;color:var(--muted);font:600 12px/1.4 var(--font);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.invite-toggle::after{content:"\25BE";font-size:10px;transition:transform .15s}
.invite-toggle[aria-expanded=true]::after{transform:rotate(180deg)}
.invite-toggle:hover{color:var(--ink)}
.invite-toggle:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:4px}
.invite-panel{margin-top:10px;text-align:left}
.invite-panel form{display:grid;gap:10px}
.invite-panel label{margin:0}
html:root footer{border-top:0}footer{width:min(calc(100% - 48px),460px);margin:0 auto;padding:6px 0 28px;font-size:12px;color:var(--muted)}footer nav{display:flex;justify-content:center;gap:22px}footer a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
@media(max-width:600px){.masthead{min-height:68px}.brand{font-size:25px}main,footer{width:calc(100% - 32px)}main{align-items:flex-start;padding:4px 0 28px}.entry{padding:26px 20px 20px;border-radius:16px}h1{font-size:26px;margin-bottom:18px}.confirmation{padding:18px}.confirmation-actions{align-items:stretch}.secondary,.text-button{width:100%;text-align:left}}
@media(prefers-reduced-motion:no-preference){.primary,.secondary{transition:background .15s,color .15s}}

/* ── Thème sombre (Kevin/LEAD 02/11 23:31 UTC ; PRODUIT) : le même choix que le workspace (clé locale uck_ws_theme lue par theme.js, sinon prefers-color-scheme).
   CSS seulement : ni mise en page, ni mots, ni JS de langue ou de Google. Palette = celle du compte (workspace-v4/v31/account.css : --accent #A4B6FF, --bg #13182B,
   --surface #1C233A, --soft #293452, --ink #EDF0FF, --muted #B4BDD8, --border #3C4765, --quiet #202941) ; --edge #6B7899 (contour des champs, 3,5:1), vert #8FD1B4 et rose #A8596F
   dérivés de la même famille. Tout est sous html[data-theme=dark] body.signin-presence : la page de consentement connect-v4, qui charge aussi cette feuille, ne bouge pas. ── */
html:root[data-theme=dark]{color-scheme:dark;--field:#13182B;--ink:#EDF0FF;--muted:#B4BDD8;--signal:#A4B6FF;--line:#3C4765}
html:root[data-theme=dark] body.signin-presence :focus-visible{outline-color:#A4B6FF}
html:root[data-theme=dark] body.signin-presence input::placeholder{color:#A3ADCB;opacity:1}
html:root[data-theme=dark] body.signin-presence input:not([type=checkbox]){background:#13182B;color:#EDF0FF;border-color:#6B7899}
html:root[data-theme=dark] body.signin-presence input[aria-invalid=true]{border-color:#A4B6FF}
html:root[data-theme=dark] body.signin-presence .error,html:root[data-theme=dark] body.signin-presence .resend-status[data-error=true],html:root[data-theme=dark] body.signin-presence .status[data-invitation=refus]{color:#A4B6FF}
html:root[data-theme=dark] body.signin-presence .status{background:#202941;border-color:#3C4765}
html:root[data-theme=dark] body.signin-presence .status[data-invitation=ouverte]{border-color:#4F8C74;color:#8FD1B4}
html:root[data-theme=dark] body.signin-presence .status[data-invitation=refus]{border-color:#A8596F}
html:root[data-theme=dark] body.signin-presence .confirmation{background:#202941;border-color:#3C4765}
html:root[data-theme=dark] body.signin-presence .mail-icon{background:#293452;color:#8FD1B4}
html:root[data-theme=dark] body.signin-presence .confirmation .submitted-email{background:#13182B;border-color:#3C4765;color:#EDF0FF}
html:root[data-theme=dark] body.signin-presence .secondary{background:#4458AC;color:#fff}
html:root[data-theme=dark] body.signin-presence .secondary:hover{background:#33458D}
html:root[data-theme=dark] body.signin-presence .secondary span{color:#E4EE99!important}
html:root[data-theme=dark] body.signin-presence .primary:hover{background:#33458D!important}
