:root { --bg:#f5f6f8; --card:#fff; --ink:#1b2430; --muted:#5d6b7c; --line:#d8dee6; --brand:#1f3864; --warn:#9a3412; --bad:#b42318; }
* { box-sizing: border-box; }
body { margin:0; font:14px/1.45 system-ui, -apple-system, "Segoe UI", Arial, sans-serif; color:var(--ink); background:var(--bg); }
header { display:flex; align-items:center; gap:16px; padding:12px 20px; background:var(--brand); color:#fff; }
header h1 { font-size:18px; margin:0; flex:0 0 auto; }
header .muted { color:#c9d4e6; flex:1 1 auto; }
header form { margin:0; }
main { padding:16px 20px 40px; max-width:1500px; margin:0 auto; }
h2 { font-size:17px; margin:18px 0 10px; }
h3 { font-size:14px; margin:20px 0 6px; }
.muted { color:var(--muted); }
.filters { display:flex; flex-wrap:wrap; gap:12px; align-items:flex-end; background:var(--card); border:1px solid var(--line); border-radius:8px; padding:12px; }
label { display:flex; flex-direction:column; gap:4px; font-size:12px; color:var(--muted); }
select, input { font:inherit; color:var(--ink); padding:6px 8px; border:1px solid var(--line); border-radius:6px; background:#fff; min-width:140px; }
button, .btn { font:inherit; cursor:pointer; padding:7px 14px; border-radius:6px; border:1px solid var(--brand); background:var(--brand); color:#fff; text-decoration:none; display:inline-block; }
.btn { background:#fff; color:var(--brand); }
.btn.off { opacity:.45; pointer-events:none; }
button.link { background:transparent; border-color:transparent; color:#fff; text-decoration:underline; padding:4px; }
.msg { background:#fff7ed; border:1px solid #fed7aa; color:var(--warn); padding:8px 12px; border-radius:6px; }
.tiles { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:10px; }
.tile { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:10px 12px; }
.tile b { display:block; font-size:22px; }
.tile span { color:var(--muted); font-size:12px; }
.tile small { color:var(--muted); }
.downloads { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:16px 0 4px; }
.scroll { overflow:auto; background:var(--card); border:1px solid var(--line); border-radius:8px; max-height:560px; }
table { border-collapse:collapse; width:100%; font-variant-numeric:tabular-nums; }
th, td { padding:6px 10px; border-bottom:1px solid var(--line); text-align:right; white-space:nowrap; }
th:first-child, td:first-child { text-align:left; }
th { position:sticky; top:0; background:#eef2f8; font-weight:600; }
td.hi { color:var(--bad); font-weight:600; }
td a { color:var(--brand); }
body.login { display:flex; min-height:100vh; align-items:center; justify-content:center; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:24px; width:320px; display:flex; flex-direction:column; gap:12px; }
.card h1 { font-size:18px; margin:0 0 4px; }
