:root{
--ink:#14213D;--ink2:#2E4A7D;--red:#D7263D;--red2:#A61B2E;--gold:#E0A526;
--bg:#FAF7F2;--card:#FFFFFF;--muted:#5A6275;--line:#E6E0D6;--tint:#EEF3FB;
--ok:#16794A;--teal:#0B7A75;--warn:#9A6200;
--glow:radial-gradient(1200px 500px at 85% -10%,rgba(215,38,61,.08),transparent 60%),radial-gradient(900px 500px at -10% 10%,rgba(46,74,125,.10),transparent 60%);
}
.dark{
--ink:#E8EDF7;--ink2:#9DB4E0;--red:#FF5C72;--red2:#FF8A9A;--gold:#F2C14E;
--bg:#0B1222;--card:#131C31;--muted:#A3ACC0;--line:#24314F;--tint:#18233D;
--ok:#4FD69A;--teal:#4FD1C9;--warn:#F2C46B;
--glow:radial-gradient(1200px 500px at 85% -10%,rgba(255,92,114,.10),transparent 60%),radial-gradient(900px 500px at -10% 10%,rgba(79,209,201,.07),transparent 60%);
}
html,body{background:var(--bg);color:var(--ink);font-family:'IBM Plex Sans',system-ui,sans-serif;overflow-x:hidden}
body{background-image:var(--glow);background-attachment:fixed}
.disp{font-family:'Fraunces',serif}
h1.disp{background:linear-gradient(100deg,var(--ink) 55%,var(--red) 120%);-webkit-background-clip:text;background-clip:text;color:transparent}
.num{font-variant-numeric:tabular-nums}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 2px rgba(20,33,61,.04),0 6px 20px -12px rgba(20,33,61,.18);transition:box-shadow .2s,border-color .2s}
.card:hover{border-color:color-mix(in srgb,var(--ink2) 35%,var(--line))}
.assess{background:var(--tint);border:1px dashed var(--ink2);border-radius:12px}
.muted{color:var(--muted)}
.btn{border:1px solid var(--line);border-radius:10px;padding:.4rem .75rem;background:var(--card);color:var(--ink);font-weight:500;transition:border-color .15s,background .15s,transform .1s}
.btn:hover{border-color:var(--ink2);background:var(--tint)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-p{background:linear-gradient(180deg,var(--red),var(--red2));color:#fff;border-color:var(--red2);box-shadow:0 4px 14px -6px var(--red)}
.btn-p:hover{background:linear-gradient(180deg,var(--red2),var(--red2));border-color:var(--red2)}
.dark .btn-p{background:var(--red);color:#1a0b0e;border-color:var(--red)}
.chip{display:inline-flex;align-items:center;gap:.3rem;border:1px solid var(--line);border-radius:999px;padding:.15rem .6rem;font-size:.8rem;background:var(--card);color:var(--ink);transition:background .15s,border-color .15s}
.chip:hover{border-color:var(--ink2)}
.chip.on{background:var(--ink2);color:#fff;border-color:var(--ink2)}
.dark .chip.on{color:#0B1222}
.lbl{display:inline-block;font-size:.68rem;border-radius:6px;padding:0 .35rem;border:1px solid currentColor;white-space:nowrap;vertical-align:middle;background:color-mix(in srgb,currentColor 8%,transparent)}
.l-reg{color:var(--ink2)}.l-cur{color:var(--teal)}.l-rule{color:var(--muted)}.l-you{color:var(--ok)}.l-ai{color:var(--warn);border-style:dashed}.l-na{color:var(--muted);opacity:.8}
.rule{height:3px;background:linear-gradient(90deg,var(--red) 0 50%,#fff 50% 100%);border-top:1px solid var(--line)}
*:focus-visible{outline:3px solid var(--gold);outline-offset:2px;border-radius:6px}
input,textarea,select{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:.45rem .6rem}
input:focus,textarea:focus,select:focus{border-color:var(--ink2)}
input[type=range]{padding:0;accent-color:var(--red)}
.skel{background:linear-gradient(90deg,var(--line),var(--tint),var(--line));background-size:200% 100%;animation:sk 1.2s infinite;border-radius:8px}
@keyframes sk{to{background-position:-200% 0}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.drawer{position:fixed;top:0;right:0;height:100%;width:min(560px,100%);background:var(--card);border-left:1px solid var(--line);z-index:50;overflow-y:auto;box-shadow:-10px 0 30px rgba(0,0,0,.18)}
.pop{position:fixed;z-index:70;max-width:320px;background:var(--card);border:1px solid var(--ink2);border-radius:10px;padding:.7rem;font-size:.8rem;box-shadow:0 8px 24px rgba(0,0,0,.2)}
#dossier{display:none}
@media print{body *{visibility:hidden}#dossier,#dossier *{visibility:visible}#dossier{display:block;position:absolute;left:0;top:0;width:100%;color:#000;background:#fff;font-size:11px;padding:16px}}