:root{--bg:#f5f6f8;--card:#fff;--ink:#16202c;--mute:#5d6875;--line:#dde2e8;--brand:#1f3a5f;--accent:#d9661f;--ok:#1d7a46;--warn:#a86400;--bad:#b42318;--chip:#eef1f5}
@media (prefers-color-scheme:dark){:root{--bg:#11161d;--card:#1a212b;--ink:#e8edf3;--mute:#9aa6b4;--line:#2c3542;--brand:#8fb3e0;--accent:#f08a46;--ok:#4cc38a;--warn:#e0a446;--bad:#f07167;--chip:#242d39}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
header{background:var(--brand);color:#fff;padding:14px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
@media (prefers-color-scheme:dark){header{background:#1d2a3b}}
header h1{font-size:18px;margin:0;font-weight:650}
header .who{margin-left:auto;font-size:13px;opacity:.9}
header a{color:#fff}
nav{display:flex;gap:4px;padding:8px 16px 0;flex-wrap:wrap;border-bottom:1px solid var(--line);background:var(--card)}
nav button{border:0;background:none;padding:10px 12px;font:inherit;color:var(--mute);cursor:pointer;border-bottom:3px solid transparent}
nav button.on{color:var(--ink);border-bottom-color:var(--accent);font-weight:600}
nav .n{display:inline-block;min-width:20px;padding:0 6px;margin-left:4px;border-radius:10px;background:var(--accent);color:#fff;font-size:12px;text-align:center}
main{padding:16px;max-width:1200px;margin:0 auto}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin-bottom:14px}
.card h2{font-size:16px;margin:0 0 4px}
.card p.sub{margin:0 0 10px;color:var(--mute);font-size:13px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:14px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:12px 14px}
.tile .k{font-size:12px;color:var(--mute)}
.tile .v{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:12px;color:var(--mute);font-weight:600;white-space:nowrap}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
input,select,textarea{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:5px 7px;max-width:100%}
input.sm{width:80px}input.md{width:130px}textarea{width:100%;min-height:54px}
.chip{display:inline-block;padding:1px 8px;border-radius:10px;background:var(--chip);font-size:12px;white-space:nowrap}
.chip.ok{color:var(--ok)}.chip.warn{color:var(--warn)}.chip.bad{color:var(--bad)}
.mute{color:var(--mute)}.small{font-size:12px}
.saved{color:var(--ok);font-size:12px;margin-left:6px}
.item{border-top:1px solid var(--line);padding:10px 0}.item:first-of-type{border-top:0}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:6px;padding:5px 10px;font:inherit;cursor:pointer}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}
.diff{color:var(--bad)}
ul.std{margin:6px 0 0;padding-left:20px}
.login{max-width:360px;margin:12vh auto;padding:0 16px}
.login .card{padding:22px}
.login input{width:100%;margin:6px 0 12px;padding:9px}
.login .btn{width:100%;padding:10px}
@media (max-width:640px){main{padding:10px}th,td{padding:6px 5px}.tile .v{font-size:19px}}
