:root{--bg: #f4f3ef;--surface: #fcfcfb;--line: #e2e0da;--text: #0b0b0b;--text-2: #52514e;--muted: #7a7873;--accent: #2f7a3a;--accent-ink: #fff;--series: #2a78d6;--series-on: #1c5cab;--s1: #2a78d6;--s2: #eb6834;--s3: #1baf7a;--zone: rgba(11, 11, 11, .04);--good: #0ca30c;--warn: #b97800;--bad: #d03b3b;--radius: 10px;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #121211;--surface: #1a1a19;--line: #2f2f2c;--text: #fff;--text-2: #c3c2b7;--muted: #8f8d85;--accent: #4fa65b;--accent-ink: #0b0b0b;--series: #3987e5;--series-on: #86b6ef;--s1: #3987e5;--s2: #d95926;--s3: #199e70;--zone: rgba(255, 255, 255, .05);--warn: #fab219;--bad: #e66767;color-scheme:dark}}:root[data-theme=dark]{--bg: #121211;--surface: #1a1a19;--line: #2f2f2c;--text: #fff;--text-2: #c3c2b7;--muted: #8f8d85;--accent: #4fa65b;--accent-ink: #0b0b0b;--series: #3987e5;--series-on: #86b6ef;--s1: #3987e5;--s2: #d95926;--s3: #199e70;--zone: rgba(255, 255, 255, .05);--warn: #fab219;--bad: #e66767;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 system-ui,-apple-system,Segoe UI,sans-serif}main{max-width:1100px;margin:0 auto;padding:16px}main.narrow{max-width:440px;padding-top:12vh}h1{font-size:22px;margin:8px 0 16px}h2{font-size:16px;margin:0 0 12px}a{color:var(--accent);text-decoration:none}code,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}.small{font-size:13px}.muted{color:var(--muted)}.err{color:var(--bad)}.warn{color:var(--warn)}.right{text-align:right}.top{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap}.top .brand{font-weight:700;color:var(--text)}.top nav{display:flex;gap:16px;align-items:center}.top nav a{color:var(--text-2)}.top nav a.on{color:var(--text);font-weight:600}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px;display:block;color:inherit}.card.hl{border-color:var(--accent)}.card.inst:hover{border-color:var(--text-2)}.narrow .card{display:flex;flex-direction:column;gap:10px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:16px}.grid .card{margin:0}dl{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:10px 0 0;font-size:14px}dt{color:var(--muted)}dd{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row{display:flex;gap:8px;align-items:center}.row.between{justify-content:space-between}.row.wrap{flex-wrap:wrap}.row select{max-width:100%}h1,h2{overflow-wrap:anywhere}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-bottom:16px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px;display:flex;flex-direction:column;min-width:0}.tile span{color:var(--muted);font-size:13px}.tile b{font-size:20px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile small{color:var(--text-2);font-size:12px}.pill{font-size:12px;padding:2px 8px;border-radius:99px;border:1px solid currentColor;white-space:nowrap}.pill.ok{color:var(--good)}.pill.late{color:var(--warn)}.pill.gone,.pill.off{color:var(--bad)}.pill.never{color:var(--muted)}.pill.ok:before{content:"● "}.pill.late:before{content:"◐ "}.pill.gone:before,.pill.off:before{content:"○ "}input,select{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text);min-width:0}.row input{flex:1 1 200px}button{font:inherit;padding:8px 14px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.big{padding:12px;font-size:16px}button.danger{color:var(--bad)}button.link{background:none;border:none;padding:0;color:var(--accent)}button.link.danger{color:var(--bad)}pre.codes{background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:12px;font-size:15px;overflow-x:auto;-webkit-user-select:all;user-select:all}table{width:100%;border-collapse:collapse;margin-bottom:12px}td,th{padding:6px 4px;border-bottom:1px solid var(--line);text-align:left}.chart svg{display:block;margin-top:8px;max-width:100%}.chart .grid{stroke:var(--line);stroke-width:1}.chart .axis{fill:var(--muted);font-size:11px}.chart .bar{fill:var(--series)}.chart .bar.on{fill:var(--series-on)}.confirm{display:flex;flex-direction:column;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);flex:1 1 100%}.card .card.hl{margin:12px 0 0}.warns{list-style:none;margin:8px 0 0;padding:0;font-size:13px}.warns li{color:var(--text-2)}.warns li:before{content:"⚠ "}.warns li.bad:before{color:var(--bad)}.warns li.warn:before{color:var(--warn)}.banner{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;padding:10px 14px;margin-bottom:16px;border:1px solid var(--line);border-left:3px solid var(--bad);border-radius:8px;background:var(--surface)}.banner.warn{border-left-color:var(--warn)}.st-tabs{display:flex;gap:4px;overflow-x:auto;padding-bottom:4px;margin-bottom:12px;border-bottom:1px solid var(--line)}.st-tabs a{padding:6px 10px;border-radius:8px 8px 0 0;color:var(--text-2);white-space:nowrap}.st-tabs a.on{color:var(--text);font-weight:600;box-shadow:inset 0 -2px 0 var(--accent)}.st-bar{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:8px}.chips{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.chips button{border:none;border-radius:0;padding:6px 12px;white-space:nowrap;background:var(--surface);color:var(--text-2)}.chips button+button{border-left:1px solid var(--line)}.chips button.on{background:var(--bg);color:var(--text);font-weight:600}.st-busy{opacity:.55;transition:opacity .2s}.fig{position:relative}.fig h2{margin-bottom:4px}.fig .hint{color:var(--muted);font-size:13px;margin:0 0 4px}.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:13px;color:var(--text-2);margin:4px 0}.legend i{display:inline-block;width:14px;height:2px;border-radius:1px;vertical-align:middle;margin-right:6px}.lc{position:relative}.lc svg{display:block;margin-top:4px;max-width:100%;touch-action:pan-y}.lc .grid{stroke:var(--line);stroke-width:1}.lc .axis{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.lc .zone{fill:var(--zone)}.lc .cross{stroke:var(--text-2);stroke-width:1}.lc .ring{stroke:var(--surface);stroke-width:2}.tip{position:absolute;top:0;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:12px;box-shadow:0 2px 8px #0000001f;white-space:nowrap;z-index:2}.tip div{display:flex;align-items:center;gap:6px}.tip i{display:inline-block;width:10px;height:2px;border-radius:1px}.tip b{font-variant-numeric:tabular-nums}.tip span{color:var(--muted)}table.num td.r,table.num th.r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tbl-wrap{overflow-x:auto}.empty{text-align:center;padding:32px 16px;color:var(--muted)}.empty b{display:block;color:var(--text);font-size:16px;margin-bottom:4px}.tile.warn{border-color:var(--warn)}
