:root{--bg:#f6f7f9;--card:#fff;--ink:#1c2430;--mute:#6b7685;--line:#e2e6ec;--acc:#1a5fb4;--ok:#1b7f3b;--warn:#a15c00;--err:#b3261e}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
header.top{background:#fff;border-bottom:1px solid var(--line);padding:0 20px;display:flex;gap:22px;align-items:center;height:52px}
header.top b{font-size:16px}
header.top a{color:var(--mute);text-decoration:none;padding:15px 2px;border-bottom:2px solid transparent}
header.top a.on,header.top a:hover{color:var(--ink);border-color:var(--acc)}
main{max-width:1180px;margin:20px auto;padding:0 16px}
h1{font-size:20px;margin:0 0 14px}
h2{font-size:16px;margin:0 0 10px}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px 16px}
.card .v{font-size:26px;font-weight:650}
.card .l{color:var(--mute);font-size:13px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:14px 16px;margin-bottom:16px;overflow-x:auto}
table{border-collapse:collapse;width:100%}
th,td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top;font-size:14px}
th{color:var(--mute);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.03em}
td.num,th.num{text-align:right}
.pill{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;background:#eef1f5;color:var(--mute)}
.pill.ok{background:#e3f4e8;color:var(--ok)}.pill.err{background:#fbe6e4;color:var(--err)}.pill.warn{background:#fdf0dc;color:var(--warn)}
.muted{color:var(--mute)}.small{font-size:12px}
form.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;align-items:end}
form.filters label{display:flex;flex-direction:column;font-size:12px;color:var(--mute);gap:2px}
input,select,button{font:inherit;padding:6px 9px;border:1px solid #c9d0da;border-radius:6px;background:#fff}
button{cursor:pointer;background:var(--acc);color:#fff;border-color:var(--acc)}
button.sec{background:#fff;color:var(--ink);border-color:#c9d0da}
button.danger{background:#fff;color:var(--err);border-color:#e3b3af}
.flash{padding:9px 12px;border-radius:6px;margin-bottom:14px}
.flash.ok{background:#e3f4e8;color:var(--ok)}.flash.err{background:#fbe6e4;color:var(--err)}.flash.warn{background:#fdf0dc;color:var(--warn)}
.item{padding:10px 0;border-bottom:1px solid var(--line)}
.item a.t{color:var(--ink);font-weight:600;text-decoration:none}.item a.t:hover{color:var(--acc)}
.item .s{color:#3d4756;font-size:14px;margin:2px 0}
.pager{display:flex;gap:10px;align-items:center;margin-top:14px}
.pager a{padding:6px 12px;border:1px solid #c9d0da;border-radius:6px;text-decoration:none;color:var(--ink);background:#fff}
td form{display:inline-block;margin:0 2px 2px 0}
td input[type=text]{width:120px}td input[type=number]{width:70px}
svg text{font-size:10px;fill:#6b7685}
svg rect.bar{fill:#1a5fb4}svg rect.bar:hover{fill:#0f3f7c}
.chips{margin:3px 0}.chip{display:inline-block;font-size:11px;padding:0 7px;margin:0 4px 2px 0;border-radius:9px;background:#e6eefb;color:#1a4f9a;cursor:help}
.chip.flag{background:#fdf0dc;color:var(--warn)}
td.tree{white-space:nowrap}
.cand-sum{font-size:12px;color:#3d4756;word-break:break-word}
