:root{--bg: #f6f7f9;--surface: #ffffff;--text: #1f2933;--muted: #6b7280;--border: #d9dde3;--accent: #2563eb;--danger: #c2410c;--warn-bg: #fef3c7;--ok: #15803d;font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:var(--text);background:var(--bg)}@media (prefers-color-scheme: dark){:root{--bg: #111418;--surface: #1b2027;--text: #e5e7eb;--muted: #9ca3af;--border: #2d343e;--accent: #60a5fa;--danger: #fb923c;--warn-bg: #3b2f0b;--ok: #4ade80}}*{box-sizing:border-box}body{margin:0;background:var(--bg)}.topbar{display:flex;gap:16px;align-items:center;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.topbar nav{display:flex;gap:12px}.topbar a{color:var(--muted);text-decoration:none}.topbar a.active{color:var(--accent);font-weight:600}.spacer{flex:1}.content{padding:16px;max-width:1400px;margin:0 auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:16px}.login{display:grid;place-items:center;min-height:100vh;padding:16px}.login form{display:grid;gap:12px;width:min(360px,100%)}label{display:grid;gap:4px;font-size:14px}input,select,button{font:inherit;padding:6px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text)}button{cursor:pointer;background:var(--accent);color:#fff;border-color:var(--accent)}button.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}button.danger{background:var(--danger);border-color:var(--danger)}button.link{background:none;border:none;color:var(--accent);padding:0}button:disabled{opacity:.5;cursor:default}.error{color:var(--danger)}.muted{color:var(--muted)}.small{font-size:12px}.toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:end;margin-bottom:12px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;background:var(--surface)}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);white-space:nowrap;font-size:14px}td.mono{font-family:Consolas,monospace}tr.stale{background:var(--warn-bg)}.progress{width:120px;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--ok)}.badge{display:inline-block;padding:1px 6px;border-radius:4px;border:1px solid var(--border);font-size:12px}.grid-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
