:root { --fg:#1d2433; --muted:#6b7280; --line:#e5e7eb; --bg:#f7f8fa; --accent:#1f6feb; --bad:#b42318; --ok:#067647; }
* { box-sizing: border-box; }
body { margin:0; font:14px/1.45 system-ui, sans-serif; color:var(--fg); background:var(--bg); }
.top { display:flex; gap:24px; align-items:center; padding:10px 20px; background:#fff; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.top nav a { margin-right:14px; color:var(--fg); text-decoration:none; }
.top .right { margin-left:auto; display:flex; gap:10px; align-items:center; }
.top .on { font-weight:700; }
main { padding:20px; max-width:1400px; margin:0 auto; }
.card { background:#fff; border:1px solid var(--line); border-radius:8px; padding:16px; margin-bottom:16px; }
.narrow { max-width:380px; margin:60px auto; }
.cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(160px,1fr)); gap:12px; }
.stat .n { font-size:24px; font-weight:600; } .stat .l { color:var(--muted); }
table { width:100%; border-collapse:collapse; } th, td { text-align:left; padding:6px 8px; border-bottom:1px solid var(--line); vertical-align:top; }
th { color:var(--muted); font-weight:500; } td.num, th.num { text-align:right; }
label { display:block; margin:8px 0; } input, select { padding:6px; border:1px solid var(--line); border-radius:6px; }
button { padding:6px 12px; border:0; border-radius:6px; background:var(--accent); color:#fff; cursor:pointer; }
button.link { background:none; color:var(--accent); padding:0; } button.danger { background:var(--bad); }
.inline { display:inline; } .muted { color:var(--muted); } .error { color:var(--bad); } .ok { color:var(--ok); }
.filters { display:flex; flex-wrap:wrap; gap:8px; align-items:end; }
.chart { height:320px; }
pre.log { background:#0d1117; color:#e6edf3; padding:12px; border-radius:6px; max-height:420px; overflow:auto; font-size:12px; }
.badge { display:inline-block; padding:1px 6px; border-radius:10px; background:var(--line); font-size:12px; }
iframe.viewer { width:100%; height:80vh; border:1px solid var(--line); border-radius:6px; background:#fff; }
.notice { background:#fff8e1; border:1px solid #f5d67a; border-radius:8px; padding:10px 14px; }
.periods { display:flex; gap:10px; margin-bottom:8px; } .periods a[aria-current="page"] { font-weight:700; color:var(--fg); text-decoration:none; }
details > summary { cursor:pointer; font-weight:600; }
