:root{--bg:#f4f7f5;--card:#fff;--ink:#17261f;--muted:#5d6f66;--line:#d9e3dd;--accent:#1f8a5b;--accent-ink:#fff;--warn:#b7791f;--bad:#c0392b;--good:#1f8a5b;--ec:#2a6fb0;--ph:#c2602a}
@media (prefers-color-scheme:dark){:root{--bg:#101815;--card:#18231e;--ink:#e4efe9;--muted:#93a89c;--line:#2a3a33;--accent:#3ab984;--accent-ink:#06150e;--warn:#e0a84a;--bad:#ef7a6c;--good:#47c593;--ec:#6fb0ee;--ph:#ee9a66}}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}
.top{background:var(--card);border-bottom:1px solid var(--line);padding:12px 20px 0;position:sticky;top:0;z-index:5}
.brand{display:flex;align-items:center;gap:10px;color:var(--accent)}
.brand h1{margin:0;font-size:20px;color:var(--ink)}
.tag{color:var(--muted);font-size:13px}
nav{display:flex;gap:4px;margin-top:8px;overflow-x:auto}
nav button{border:0;background:none;padding:10px 16px;font:inherit;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent}
nav button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}
main{max-width:1100px;margin:0 auto;padding:20px}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-bottom:16px}
.card h2{margin:0 0 10px;font-size:16px}
.card h3{margin:14px 0 6px;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
label{display:block;font-size:13px;color:var(--muted);margin-bottom:8px}
input,select,textarea,button{font:inherit}
input,select,textarea{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink)}
input:focus-visible,select:focus-visible,button:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.row{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
button.btn{background:var(--accent);color:var(--accent-ink);border:0;border-radius:6px;padding:8px 14px;cursor:pointer;font-weight:600}
button.btn.alt{background:none;color:var(--ink);border:1px solid var(--line)}
button.link{background:none;border:0;color:var(--bad);cursor:pointer}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--line)}
th{font-size:12px;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.03em}
td.n,th.n{text-align:right;font-variant-numeric:tabular-nums}
td input{padding:3px 6px;text-align:right}
.chk{display:flex;gap:8px;align-items:flex-start;font-size:14px;color:var(--ink);margin-bottom:4px}
.chk input{width:auto;margin-top:4px}
.pill{display:inline-block;border-radius:999px;padding:1px 9px;font-size:12px;font-weight:600;border:1px solid currentColor}
.ok{color:var(--good)}.warn{color:var(--warn)}.fail,.bad{color:var(--bad)}
.stat{display:flex;gap:22px;flex-wrap:wrap;margin:6px 0 4px}
.stat div{min-width:90px}.stat b{display:block;font-size:22px;font-variant-numeric:tabular-nums}.stat span{font-size:12px;color:var(--muted)}
.note{color:var(--muted);font-size:13px}
.alert{border-left:4px solid var(--warn);padding:6px 10px;background:var(--bg);margin:8px 0;font-size:14px}
.alert.bad{border-color:var(--bad)}
details summary{cursor:pointer;color:var(--muted)}
svg .grid{stroke:var(--line);stroke-width:1}svg .axis{fill:var(--muted);font-size:11px}
svg .line{fill:none;stroke-width:2}svg .line.ec{stroke:var(--ec)}svg .line.ph{stroke:var(--ph)}
svg .dot.ec{fill:var(--ec)}svg .dot.ph{fill:var(--ph)}svg .axis.ec{fill:var(--ec)}svg .axis.ph{fill:var(--ph)}
.chart svg{width:100%;height:auto}
footer{max-width:1100px;margin:0 auto;padding:10px 20px 30px;color:var(--muted);font-size:12px}
.bar{height:8px;border-radius:4px;background:var(--line);overflow:hidden;min-width:60px}.bar i{display:block;height:100%;background:var(--accent)}
#sheet{display:none}
@media print{
  .top,footer,main>section,.noprint{display:none!important}
  body{background:#fff;color:#000}
  #sheet{display:block!important;font-size:13px}
  #sheet table{margin-bottom:14px}
  #sheet h2{margin:0}
}
