/* Shared visual tokens. Keep this block in sync with access-test/ui.css (tested). */
:root{
 --ui-bg:#090e17;--ui-base:#101720;--ui-panel:#202b39;--ui-floating:#293747;
 --ui-field:#101720;--ui-hover:#293747;--ui-active:#293747;
 --ui-border:#70849a;--ui-border-soft:#3b4a5c;--ui-text:#f2f5fa;--ui-muted:#b7c3d2;
 --ui-accent:#78bcc7;--ui-action:#f0ad64;--ui-action-hover:#ffc58a;--ui-action-text:#15100a;--ui-selected:#4b3524;--ui-focus:#f2f5fa;
 --ui-brand:#f2bd4f;--ui-success:#98d7b9;--ui-danger:#ffaaa2;--ui-warning:#e5c38b;
 --ui-font:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;--ui-mono:Consolas,"Cascadia Code",monospace;
 --ui-size-label:12px;--ui-size-readout:11px;--ui-size-title:13px;--ui-weight-label:500;--ui-weight-title:600;
 --ui-radius-control:4px;--ui-radius-panel:6px;--ui-shadow:0 10px 30px #0009,0 1px 3px #0006;--ui-backdrop:#050b14ad;
 --ui-space-1:4px;--ui-space-2:8px;--ui-space-3:12px;--ui-space-4:16px;--ui-space-6:24px;
}
/* End shared visual tokens. */
@font-face{font-family:Inter;src:url("/auth/InterVariable.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

body{background:radial-gradient(ellipse at 75% 0,rgba(152,101,245,.11),transparent 55%),var(--fond)}
.carte{max-width:440px;border-radius:4px;border-top:2px solid var(--ui-action);box-shadow:0 16px 70px #0005}
.brand{font-size:22px;font-weight:750;letter-spacing:1px;color:var(--texte);margin-bottom:3px}
.signature{font:11px var(--ui-mono);letter-spacing:2px;color:var(--sourd);margin-bottom:22px}.signature b{color:var(--ui-action)}
.test-note{border:1px solid #675580;border-left:3px solid var(--ui-action);background:#a589ed0b;padding:10px 12px;color:#cdbbf0;font-size:12px;margin-bottom:20px}
.test-note code{color:#eee1ff;overflow-wrap:anywhere}
button{background:#1b2b3b;min-height:38px}button.or{background:var(--ui-action);color:#08131c}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--ui-action);outline-offset:3px}
.etat.ok,.pastille.approuve{color:var(--ui-action)}.etat.err{color:#ff7b66}
.logo{display:none}a{color:#8fddf0}header{flex-wrap:wrap}header .droite{flex-wrap:wrap}
td{border-color:#233545}tr:hover td{background:#172536}
#devCode{display:block;color:#f4d875;font:700 24px var(--ui-mono);letter-spacing:4px;margin-top:8px}
[hidden]{display:none!important}
.field-help{font-size:12px;color:var(--sourd);line-height:1.5;margin:8px 0;overflow-wrap:anywhere}
input:disabled{opacity:.7}button:disabled{opacity:.55;cursor:default}
.community{margin-top:22px;padding-top:18px;border-top:1px solid var(--bord)}
.community h2,#ebookAdminTitle{font-size:14px;color:var(--texte);font-weight:650;letter-spacing:.3px;margin:0 0 10px}
.community #ebookToggle{margin-top:0;border-color:var(--ui-border);background:var(--ui-selected)}
.community-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.community-links a{display:flex;align-items:center;justify-content:center;min-height:40px;padding:8px;border:1px solid var(--bord);border-radius:4px;font-size:12px;text-decoration:none;text-align:center}
.community-links a[href]:hover{border-color:var(--ui-action);background:var(--ui-selected)}
.community-links a[aria-disabled=true]{color:var(--sourd);opacity:.6;cursor:default}
#ebookForm{padding:0 0 4px}#ebookStatus:empty{display:none}
.access-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:36px;width:100%;max-width:1040px;margin:24px auto}
.access-layout .carte{max-width:none;min-width:0;scroll-margin-top:20px}
.access-offers{min-width:0;padding:8px 0}
.offer-eyebrow{font:11px/1.5 var(--ui-mono);letter-spacing:1.8px;color:var(--ui-action);margin-bottom:12px}
#offersTitle{font-size:clamp(28px,3.4vw,40px);line-height:1.12;letter-spacing:-1px;color:var(--texte);margin:0 0 14px}
.offers-intro{color:var(--sourd);font-size:14px;max-width:440px;margin-bottom:24px}
.offer{padding:20px;margin:0 0 16px;border:1px solid var(--bord);border-left:3px solid var(--ui-action);border-radius:4px;background:linear-gradient(120deg,#52d5ed09,transparent 75%),var(--ui-panel)}
.offer-monthly{border-left-color:var(--ui-action);background:linear-gradient(120deg,#a589ed0c,transparent 75%),var(--ui-panel)}
.offer-heading{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.offer h2{font-size:16px;font-weight:650;margin:0}
.offer-badge{font:10px/1.6 var(--ui-mono);padding:3px 7px;color:var(--sourd);border:1px solid var(--bord);border-radius:4px}
.offer-price{font-size:30px;font-weight:750;letter-spacing:-.5px;margin-top:12px;color:var(--ui-action)}
.offer-monthly .offer-price{color:var(--ui-text)}
.offer-price span{font-size:13px;font-weight:450;letter-spacing:0;color:var(--texte)}
.offer-caption{font-size:12px;color:var(--sourd);margin-bottom:14px}
.offer-conditions{padding-left:18px;font-size:13px;line-height:1.6;display:grid;gap:6px;margin-bottom:16px}
.offer-conditions li::marker{color:var(--ui-action)}
.offer-description{font-size:13px;margin-bottom:16px}
.offer-action{display:flex;align-items:center;justify-content:center;min-height:42px;padding:10px 12px;border:1px solid var(--ui-border);border-radius:4px;background:var(--ui-selected);color:var(--ui-text);font-size:13px;font-weight:650;text-decoration:none;text-align:center;overflow-wrap:anywhere}
.offer-monthly .offer-action{border-color:var(--ui-border);background:var(--ui-selected);color:var(--ui-text)}
.offer-action[href]:hover{background:var(--ui-hover);border-color:#79dced}
.offer-monthly .offer-action[href]:hover{background:var(--ui-hover);border-color:var(--ui-action)}
.offer-action[aria-disabled=true]{opacity:.55;cursor:default}
.offer-secondary{display:inline-block;padding:6px 0;font-size:12px;text-underline-offset:3px}
.offer-validation{font-size:12px;line-height:1.6;color:var(--sourd);padding:0 4px;margin-top:18px}
.offer-validation strong{color:var(--texte)}
.offer-risk{padding:0 4px;font-size:11px}
.access-form-title{font-size:16px;text-align:center;margin:0 0 8px}
@media(max-width:820px){.access-layout{grid-template-columns:minmax(0,1fr);max-width:520px;gap:16px;margin:8px auto}.access-offers{padding:0}.offers-intro{margin-bottom:20px}}
@media(max-width:600px){body{padding:12px}.carte{padding:22px}header .droite{margin-left:0}}
@media(max-width:640px){
 body:not(.access-page) header{flex-wrap:wrap;gap:10px}body:not(.access-page) header .droite{width:100%;flex-wrap:wrap}
 body:not(.access-page) :is(input,select,button){min-height:44px;font-size:16px}body:not(.access-page) .panneau{min-width:0;max-width:100%;overscroll-behavior-x:contain}
 body:not(.access-page) .cartes{grid-template-columns:repeat(2,minmax(0,1fr))}body:not(.access-page) main{min-width:0}
}
/* Shared controls with the terminal; public page retains its editorial layout. */
:root{--fond:var(--ui-bg);--carte:var(--ui-panel);--bord:var(--ui-border);--or:var(--ui-action);--texte:var(--ui-text);--sourd:var(--ui-muted);--vert:var(--ui-success);--orange:var(--ui-warning);--rouge:var(--ui-danger);color-scheme:dark}
body{background:var(--ui-bg);font-family:var(--ui-font)}
body :is(button,input,select,textarea){border-radius:4px;border-color:var(--ui-border);background:var(--ui-field);color:var(--ui-text);font-family:var(--ui-font)}
body :is(input,textarea)::placeholder{color:var(--ui-muted);opacity:1}
body button{min-height:32px}
body :is(button,input,select,textarea,a,summary):focus-visible{outline:2px solid var(--ui-focus);outline-offset:3px}
body button:hover:not(:disabled){border-color:var(--ui-accent);background:var(--ui-hover)}
body button.or{color:var(--ui-action-text);background:var(--ui-action);border-color:var(--ui-action);font-weight:600}
body button.or:hover:not(:disabled){background:var(--ui-action-hover);border-color:var(--ui-action-hover);color:var(--ui-action-text)}
body :is(.carte,.stat,.panneau){border-radius:6px;box-shadow:var(--ui-shadow);border-color:var(--ui-border)}
body .etat.ok,body .pastille.approuve{color:var(--ui-success)}
body .etat.err{color:var(--ui-danger)}
body button.confirme{background:#462c34;color:var(--ui-danger);border-color:var(--ui-danger)}
body .signature b{color:var(--ui-brand)}
body header h1{color:var(--ui-text)}
@media(max-width:650px){body:not(.access-page){padding:12px}body :is(button,input,select){min-height:44px}body input{font-size:16px}}
