:root { --bg:#f6f7f9; --fg:#1b1f24; --muted:#5b6470; --card:#fff; --line:#d9dde3; --accent:#1f5fbf; --err:#b42318; }
@media (prefers-color-scheme: dark) {
  :root { --bg:#14171a; --fg:#e8eaed; --muted:#9aa3ad; --card:#1d2125; --line:#343a40; --accent:#6ea8ff; --err:#ff8a80; }
}
* { box-sizing: border-box; }
body { margin:0; font:16px/1.45 system-ui, sans-serif; background:var(--bg); color:var(--fg); }
.top { display:flex; gap:1rem; align-items:center; padding:.75rem 1rem; background:var(--card); border-bottom:1px solid var(--line); }
.grow { flex:1; color:var(--muted); }
main { max-width:860px; margin:1rem auto; padding:0 1rem; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:1rem 1.25rem; }
.narrow { max-width:380px; margin:3rem auto; }
h1 { font-size:1.3rem; margin:.2rem 0 1rem; } h2 { font-size:1.15rem; }
label { display:block; margin:.75rem 0; } input[type=email],input[type=password],input[type=text],input[type=number],textarea {
  width:100%; padding:.55rem; border:1px solid var(--line); border-radius:6px; background:var(--bg); color:var(--fg); font:inherit; }
button { padding:.55rem 1rem; border:0; border-radius:6px; background:var(--accent); color:#fff; font:inherit; cursor:pointer; }
button.secondary { background:transparent; color:var(--fg); border:1px solid var(--line); }
button.link { background:none; color:var(--accent); padding:.2rem 0; }
button:disabled { opacity:.5; cursor:not-allowed; }
.row { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:1rem; }
.list { list-style:none; padding:0; margin:0; } .list li { padding:.6rem 0; border-top:1px solid var(--line); display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.list li:first-child { border-top:0; }
table { width:100%; border-collapse:collapse; } th,td { text-align:left; padding:.5rem .4rem; border-top:1px solid var(--line); }
.muted { color:var(--muted); } .error { color:var(--err); min-height:1.2em; }
.opt { display:block; padding:.55rem .7rem; border:1px solid var(--line); border-radius:6px; margin:.35rem 0; cursor:pointer; }
.scale { display:flex; gap:.5rem; flex-wrap:wrap; } .scale label { margin:0; }
@media (max-width:560px) { th:nth-child(2), td:nth-child(2) { display:none; } }
nav a { color:var(--accent); text-decoration:none; margin-right:1rem; } nav a[aria-current="page"] { font-weight:600; text-decoration:underline; }
select { padding:.5rem; border:1px solid var(--line); border-radius:6px; background:var(--bg); color:var(--fg); font:inherit; max-width:100%; }
.filters { align-items:flex-end; margin-top:0; } .filters label { margin:0; }
#report .card { margin-top:1rem; }
.cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(130px, 1fr)); gap:.75rem; }
.stat { border:1px solid var(--line); border-radius:8px; padding:.6rem .8rem; } .stat b { display:block; font-size:1.5rem; } .stat span { color:var(--muted); font-size:.9rem; }
.bar { background:var(--line); border-radius:4px; height:.7rem; min-width:80px; overflow:hidden; } .bar > i { display:block; height:100%; background:var(--accent); }
.qrow { display:grid; grid-template-columns:minmax(120px, 1fr) 4.5rem 4rem minmax(80px, 1fr); gap:.5rem; align-items:center; padding:.25rem 0; }
.qblock { margin:1rem 0 1.5rem; } .qblock h3 { font-size:1rem; margin:.2rem 0; } .num { text-align:right; font-variant-numeric:tabular-nums; }
.btn { display:inline-block; padding:.5rem .9rem; border-radius:6px; background:var(--accent); color:#fff; text-decoration:none; margin-right:.6rem; }
th.num { text-align:right; }
