:root{--bg:#f6f7f9;--fg:#1c2330;--muted:#5b6575;--card:#fff;--line:#dde1e7;--accent:#1f5fbf}
@media (prefers-color-scheme:dark){:root{--bg:#14171c;--fg:#e6e9ee;--muted:#9aa3b2;--card:#1d2128;--line:#2e343d;--accent:#6ea2ff}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.5 system-ui,Segoe UI,sans-serif}
main{max-width:960px;margin:0 auto;padding:32px 16px}
h1{margin:0 0 4px}.muted{color:var(--muted)}
a{color:var(--accent)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-top:24px}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;text-decoration:none;color:inherit}
.card:hover{border-color:var(--accent)}
.card h2{margin:0 0 6px;font-size:17px;color:var(--accent)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px;margin-top:16px}
label{font-weight:600;margin-right:6px}
select,input,button{font:inherit;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--fg)}
button.primary{background:var(--accent);color:#fff;border-color:var(--accent);cursor:pointer}
button:disabled{opacity:.5;cursor:default}
.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{border-bottom:1px solid var(--line);padding:5px 8px;text-align:left}
td.n,th.n{text-align:right}
tr.grp td{font-weight:700}
tr.tot td{font-weight:700;border-top:2px solid var(--fg)}
.tables{display:grid;grid-template-columns:1fr 1.4fr;gap:16px}
@media (max-width:720px){.tables{grid-template-columns:1fr}}
.warn{color:#b35c00;font-weight:600}
.scroll{overflow-x:auto}
