:root{--bg:#fff;--panel:#f6f7f9;--fg:#1a1a1a;--muted:#62666d;--line:#e1e3e6;--accent:#1f5fbf;--accent-fg:#fff;--ok:#1e7d3a;--warn:#9a6100;--bad:#b3261e;color:var(--fg);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:14px}@media (prefers-color-scheme:dark){:root{--bg:#141518;--panel:#1c1e22;--fg:#e9eaec;--muted:#9ba0a8;--line:#30333a;--accent:#6ea0ec;--accent-fg:#0d1117;--ok:#5cc27a;--warn:#e0a940;--bad:#ef7a72}}*{box-sizing:border-box}body{margin:0}a{color:var(--accent)}.shell{grid-template-columns:200px 1fr;min-height:100vh;display:grid}nav.side{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:2px;padding:16px 12px;display:flex}nav.side .brand{margin:0 8px 12px;font-size:16px;font-weight:700}nav.side a{color:var(--fg);border-radius:6px;padding:6px 8px;text-decoration:none}nav.side a.active{background:var(--line);font-weight:600}nav.side .who{color:var(--muted);margin-top:auto;padding:8px;font-size:12px}main{max-width:1300px;padding:20px 28px}h1{margin:0 0 4px;font-size:20px}h2{margin:24px 0 8px;font-size:15px}.muted{color:var(--muted);font-size:13px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px}.cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:12px 0;display:grid}.card .big{font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.table-wrap{border:1px solid var(--line);border-radius:8px;margin-top:8px;overflow:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%}th,td{border-bottom:1px solid var(--line);text-align:left;white-space:nowrap;vertical-align:top;padding:6px 10px}thead th{background:var(--panel);color:var(--muted);font-size:12px;font-weight:600;position:sticky;top:0}td.num,th.num{text-align:right}tbody tr:hover{background:color-mix(in srgb, var(--panel) 60%, transparent)}button,.btn{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--fg);cursor:pointer;border-radius:6px;padding:6px 12px;text-decoration:none;display:inline-block}button.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}button.danger{color:var(--bad)}button:disabled{opacity:.5;cursor:default}input,select,textarea{font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:6px;padding:5px 8px}label.field{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.form{flex-wrap:wrap;align-items:flex-end;gap:12px;margin:8px 0;display:flex}.badge{border:1px solid var(--line);border-radius:10px;padding:1px 7px;font-size:12px;display:inline-block}.badge.ok{color:var(--ok);border-color:var(--ok)}.badge.warn{color:var(--warn);border-color:var(--warn)}.badge.bad{color:var(--bad);border-color:var(--bad)}.error{color:var(--bad);margin:8px 0}.notice{border-left:3px solid var(--warn);background:var(--panel);margin:8px 0;padding:6px 10px}main.solo{max-width:860px;margin:0 auto}.portal h1{margin-top:16px}.login{flex-direction:column;gap:12px;max-width:340px;margin:12vh auto;display:flex}@media (width<=760px){.shell{grid-template-columns:1fr}nav.side{border-right:none;border-bottom:1px solid var(--line);flex-flow:wrap}nav.side .who{margin-top:0}main{padding:16px}}
