:root{
  --bg:#f6f7f9; --panel:#fff; --ink:#1a1d21; --muted:#6b7280; --line:#dfe3e8;
  --accent:#1f5fa9; --ok:#137a4a; --okbg:#e7f5ee; --warn:#8a5a00; --warnbg:#fff5e0;
  --bad:#a11b1b; --badbg:#fdeaea;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#14171b; --panel:#1c2026; --ink:#e6e8eb; --muted:#9aa3ad; --line:#2c323a;
    --accent:#6fa8e6; --ok:#4cc38a; --okbg:#12301f; --warn:#e3b341; --warnbg:#33280d;
    --bad:#f0736a; --badbg:#3a1a1a;}
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
main{max-width:1080px;margin:0 auto;padding:24px 20px 60px}
h1{font-size:26px;margin:.2em 0 .5em}
h2{font-size:19px;margin:1.6em 0 .5em;padding-bottom:6px;border-bottom:1px solid var(--line)}
h3{font-size:16px;margin:1.4em 0 .4em}
a{color:var(--accent)}
nav{display:flex;gap:18px;align-items:center;padding:12px 20px;background:var(--panel);
  border-bottom:1px solid var(--line);flex-wrap:wrap}
nav a{text-decoration:none;font-size:14px}
nav .brand{font-weight:700;color:var(--ink);margin-right:10px}
nav .spacer{flex:1}
nav .who{color:var(--muted);font-size:13px}
footer{max-width:1080px;margin:0 auto;padding:18px 20px 40px;color:var(--muted);
  font-size:13px;border-top:1px solid var(--line)}
.muted{color:var(--muted)}
.small{font-size:12px}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
.crumbs{color:var(--muted);font-size:13px;margin:0 0 4px}
.hint{color:var(--muted);font-size:13px;margin:10px 0 0}
.bad{color:var(--bad)}
table{width:100%;border-collapse:collapse;margin:10px 0;background:var(--panel);
  border:1px solid var(--line);border-radius:8px;overflow:hidden}
th,td{text-align:left;padding:8px 11px;border-bottom:1px solid var(--line);
  vertical-align:top}
th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);
  font-weight:600;background:color-mix(in srgb,var(--panel) 92%,var(--ink))}
tr:last-child td{border-bottom:none}
tr.dim{opacity:.5}
td.src{font-size:12px;max-width:280px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:16px;margin:10px 0}
.card label{display:block;margin-bottom:10px;font-size:13px;color:var(--muted)}
.card .row{display:flex;gap:14px;flex-wrap:wrap}
.card .row label{flex:1;min-width:180px}
input,select,textarea{width:100%;margin-top:4px;padding:8px 10px;font:inherit;
  color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px}
textarea{font-size:14px}
button{padding:9px 18px;font:inherit;font-weight:600;color:#fff;background:var(--accent);
  border:none;border-radius:6px;cursor:pointer}
button:disabled{opacity:.45;cursor:not-allowed}
button.link{background:none;color:var(--accent);font-weight:400;padding:0;
  text-decoration:underline;font-size:13px}
form.card p:last-child{margin-bottom:0}
.login{max-width:380px;margin:14vh auto;background:var(--panel);padding:28px;
  border:1px solid var(--line);border-radius:12px}
.login h1{font-size:20px}
.login input{margin-bottom:12px}
.v{display:inline-block;padding:2px 9px;border-radius:20px;font-size:12px;font-weight:600}
.v-ok{background:var(--okbg);color:var(--ok)}
.v-warn{background:var(--warnbg);color:var(--warn)}
.v-fail{background:var(--badbg);color:var(--bad)}
.verdict{padding:14px 16px;border-radius:10px;margin:12px 0;font-size:15px;
  border:1px solid transparent}
.verdict.v-ok{background:var(--okbg);color:var(--ok);border-color:var(--ok)}
.verdict.v-warn{background:var(--warnbg);color:var(--warn);border-color:var(--warn)}
.verdict.v-fail{background:var(--badbg);color:var(--bad);border-color:var(--bad)}
.checks td.st{width:120px;font-size:12px;font-weight:600;white-space:nowrap}
.checks tr.c-ok td.st{color:var(--ok)}
.checks tr.c-warn td.st{color:var(--warn)}
.checks tr.c-fail td.st{color:var(--bad)}
.checks tr.c-warn{background:color-mix(in srgb,var(--warnbg) 45%,transparent)}
.checks tr.c-fail{background:color-mix(in srgb,var(--badbg) 45%,transparent)}
.checks .det{color:var(--muted);font-size:13px;margin-top:3px}
.checks .ref{margin-left:8px;font-family:ui-monospace,monospace;font-size:11px}
.s{display:inline-block;padding:1px 8px;border-radius:4px;font-size:11px;
  font-family:ui-monospace,monospace}
.s-normative{background:var(--okbg);color:var(--ok)}
.s-reference{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}
.s-estimate{background:var(--warnbg);color:var(--warn)}
.legend{font-size:12px;color:var(--muted);margin:8px 0 4px}
.quote{border-left:3px solid var(--accent);padding:2px 0 2px 14px;margin:12px 0;
  color:var(--ink)}
.figs{display:flex;gap:16px;flex-wrap:wrap}
.figs figure{margin:0;flex:1;min-width:300px}
.figs img{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff}
.figs figcaption{color:var(--muted);font-size:12px;margin-top:5px}
.dl{display:inline-block;margin-right:10px;font-family:ui-monospace,monospace;
  font-size:12px}
.running{padding:12px 14px;background:var(--panel);border:1px solid var(--line);
  border-radius:8px}
.issued{padding:14px;background:var(--warnbg);color:var(--warn);border-radius:8px;
  border:1px solid var(--warn);margin:10px 0}
.issued code{display:block;margin-top:8px;padding:9px;background:var(--panel);
  color:var(--ink);border-radius:6px;font-size:13px;word-break:break-all}
pre.err{background:var(--panel);border:1px solid var(--line);border-radius:8px;
  padding:12px;overflow:auto;font-size:12px}
@media (max-width:640px){
  table{display:block;overflow-x:auto}
  main{padding:16px 14px 40px}
}
.btn{display:inline-block;padding:9px 16px;background:var(--accent);color:#fff;
  text-decoration:none;border-radius:6px;font-weight:600;font-size:14px;margin-right:10px}
.btn:hover{filter:brightness(1.08)}
.rng{background:var(--warnbg);color:var(--warn);padding:1px 5px;border-radius:4px}
.det{font-size:12px;margin-top:2px}
