
:root{--bg:#f6f7f9;--card:#ffffff;--ink:#14171c;--ink2:#4a5260;--line:#e3e6eb;--accent:#2f56c9;--ok:#16794a;--okbg:#e5f4ec;--warn:#946200;--warnbg:#fdf2d6;--bad:#b42318;--badbg:#fde8e6;--muted:#5d6573;--mutedbg:#eef0f3;--code:#eef1f6}
@media (prefers-color-scheme:dark){:root{--bg:#0f1216;--card:#171b21;--ink:#e8ebf0;--ink2:#a3abb8;--line:#272d36;--accent:#8aa8ff;--ok:#4fc48a;--okbg:#14301f;--warn:#f0b84a;--warnbg:#3a2b0c;--bad:#ff7a6b;--badbg:#3d1714;--muted:#a3abb8;--mutedbg:#232831;--code:#1f242c}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
code{font:13px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--code);padding:1px 5px;border-radius:4px;overflow-wrap:anywhere}
pre{background:var(--code);padding:12px;border-radius:8px;overflow-x:auto}pre code{padding:0;background:none}
.wrap{max-width:980px;margin:0 auto;padding:0 16px 40px}
.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:16px 0 12px}
.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:17px;color:var(--ink);letter-spacing:-.01em}
.brand svg{color:var(--accent)}
nav{display:flex;gap:14px;font-size:14px;flex-wrap:wrap}nav a{color:var(--ink2)}
h1{font-size:24px;line-height:1.2;margin:0 0 4px;letter-spacing:-.02em}
h2{font-size:18px;margin:0 0 10px;letter-spacing:-.01em}
h3{font-size:14px;margin:16px 0 6px;color:var(--ink2);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
section{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px;margin:0 0 14px}
.sh{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin-bottom:8px}.sh h2{margin:0}
.dim,small{color:var(--ink2)}small{display:block;font-size:13px}
.status{display:flex;gap:14px;align-items:flex-start;border-width:1px;padding:18px 16px}
.status .dot{flex:0 0 14px;height:14px;border-radius:50%;margin-top:7px;background:var(--muted);box-shadow:0 0 0 5px var(--mutedbg)}
.status.ok .dot{background:var(--ok);box-shadow:0 0 0 5px var(--okbg)}
.status.attention .dot{background:var(--bad);box-shadow:0 0 0 5px var(--badbg)}
.status.degraded .dot{background:var(--warn);box-shadow:0 0 0 5px var(--warnbg)}
.status p{margin:2px 0}.status .meta{font-size:13px;color:var(--ink2);margin-top:6px}
.market{margin:-4px 2px 14px;font-size:13.5px;color:var(--ink2)}
.market:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:7px;vertical-align:1px;background:var(--muted)}
.market.open:before{background:var(--ok)}
.issues ul{margin:0;padding:0;list-style:none}.issues li{padding:6px 0;border-top:1px solid var(--line)}.issues li:first-child{border-top:0}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:none;border:0;padding:0}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px}
.stat span{display:block;font-size:12.5px;color:var(--ink2)}.stat b{display:block;font-size:22px;letter-spacing:-.02em;margin:2px 0}
.stat.ok b{color:var(--ok)}.stat.muted b{color:var(--ink2);font-size:18px;padding:3px 0}.stat.warn b{color:var(--warn)}.stat.bad b{color:var(--bad)}
.pill{display:inline-block;font-size:12px;font-weight:600;line-height:1;padding:5px 8px;border-radius:999px;background:var(--mutedbg);color:var(--muted);white-space:nowrap}
.pill.ok{background:var(--okbg);color:var(--ok)}.pill.warn{background:var(--warnbg);color:var(--warn)}.pill.bad{background:var(--badbg);color:var(--bad)}
.rows{list-style:none;margin:0;padding:0}
.rows.feeds{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rows.feeds li{display:grid;grid-template-columns:1fr auto;grid-template-areas:"sym st" "age age";gap:4px 6px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px 10px}
.rows.feeds li.stale,.rows.feeds li.invalid{border-color:var(--bad);background:var(--badbg)}.rows.feeds li.paused{border-color:var(--warn);background:var(--warnbg)}
.rows li.hdr{display:none}
.rows .sym{grid-area:sym;min-width:0}.rows .sym b{font-size:15px}
.rows .px,.rows .tm,.rows .p{display:none}
.rows .st{grid-area:st;justify-self:end}
.rows .st .pill{font-size:11px;padding:4px 7px}
.rows .age{grid-area:age;font-size:12.5px;color:var(--ink2)}.rows .age b{font-weight:600;color:var(--ink)}.rows .age small{display:inline;font-size:12.5px}.rows .age small.tm{display:none}.rows .age small.m24{display:block;margin-top:1px}
.rows .why{grid-column:1/-1;font-size:12.5px;color:var(--bad);line-height:1.35}.rows .why.ca{color:var(--warn)}
.note{font-size:13px;color:var(--ink2);margin:10px 0 0}
.kv{margin:0}.kv div{display:grid;grid-template-columns:1fr;padding:8px 0;border-top:1px solid var(--line)}.kv div:first-child{border-top:0}
.kv dt{font-size:12.5px;color:var(--ink2)}.kv dd{margin:0}
.list{list-style:none;margin:0;padding:0}.list li{padding:8px 0;border-top:1px solid var(--line)}.list li:first-child{border-top:0}
.list .d{color:var(--ink2);font-size:13px;margin-right:8px;font-variant-numeric:tabular-nums}
.ca li{display:grid;grid-template-columns:auto 1fr auto;gap:0 10px;align-items:baseline}.ca li span:nth-child(3){grid-column:2/3;font-size:13.5px}.ca .tx{grid-row:1;grid-column:3;font-size:13px}
.empty{color:var(--ink2);margin:4px 0}
.timeline{list-style:none;margin:0;padding:0}.timeline li{padding:10px 0 10px 14px;border-left:2px solid var(--line);margin-left:4px}.timeline li.open{border-left-color:var(--bad)}
.timeline li.mon{border-left:2px dashed var(--muted)}.timeline li.mon b{font-weight:600;color:var(--ink2)}
.alerts small{margin-top:2px}
details summary{cursor:pointer;color:var(--accent);font-weight:600;padding:6px 0}
.chips{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:6px}
.chips li{border:1px solid var(--line);border-radius:8px;padding:6px 8px;font-size:13px}.chips li a{font-weight:600}.chips li small{font-size:11.5px}
.chips li.p{border-color:var(--warn);background:var(--warnbg)}.chips li.u{opacity:.7}
.prose p{margin:0 0 10px}.prose p:last-child{margin:0}
.ep{padding:10px 0;border-top:1px solid var(--line)}.ep:first-of-type{border-top:0}.ep p{margin:4px 0 0;font-size:14px;color:var(--ink2)}
footer{font-size:13px;color:var(--ink2);padding:8px 2px}footer p{margin:0 0 8px}
@media (min-width:720px){
 h1{font-size:28px}
 .stats{grid-template-columns:repeat(4,1fr)}
 section{padding:20px}
 .rows.feeds{display:block}
 .rows.feeds li,.rows li.hdr{display:grid;grid-template-columns:minmax(150px,1.4fr) 110px minmax(170px,1.5fr) 72px 72px 72px;grid-template-areas:none;align-items:center;gap:0 12px;border:0;border-top:1px solid var(--line);border-radius:0;padding:9px 4px}
 .rows.feeds li.stale,.rows.feeds li.invalid,.rows.feeds li.paused{border-left:3px solid var(--bad);padding-left:8px}
 .rows li.hdr{font-size:12px;color:var(--ink2);text-transform:uppercase;letter-spacing:.04em;padding:4px 4px 8px;border-top:0}
 .rows.feeds li>span{grid-area:auto}
 .rows.feeds li>span.why{grid-column:1/-1}
 .rows .px{display:inline;margin-left:8px;font-size:13px}
 .rows .age small.tm{display:inline;margin-left:8px}.rows .age small.m24{display:none}
 .rows .st{justify-self:start}
 .rows .p{display:block;text-align:right;font-variant-numeric:tabular-nums;font-size:13.5px;color:var(--ink2)}
 .rows li.hdr span:nth-child(n+4){text-align:right}
 .rows .why{grid-column:1/-1;padding-top:4px}
 .kv div{grid-template-columns:220px 1fr;gap:12px}
}
