:root{--fg:#1a1a1a;--muted:#666;--bg:#fff;--line:#ddd;--accent:#0b57d0;--warn:#8a5a00;--warnbg:#fff6e0}
@media (prefers-color-scheme:dark){:root{--fg:#e6e6e6;--muted:#9a9a9a;--bg:#141414;--line:#333;--accent:#8ab4f8;--warn:#f0c060;--warnbg:#2a2210}}
*{box-sizing:border-box}
body{margin:0;font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--fg);background:var(--bg);font-variant-numeric:tabular-nums}
header,main,footer{max-width:62rem;margin:0 auto;padding:0 1rem}
header{display:flex;justify-content:space-between;align-items:baseline;padding-top:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}
header .home{font-weight:700;color:var(--fg);text-decoration:none}
nav a{margin-left:1rem}
a{color:var(--accent)}
footer{color:var(--muted);font-size:.85rem;border-top:1px solid var(--line);margin-top:3rem;padding-top:1rem;padding-bottom:2rem}
.lede{font-size:1.1rem;max-width:46rem}
.small,.meta,.line{color:var(--muted);font-size:.9rem}
.dev{background:var(--warnbg);color:var(--warn);padding:.4rem .6rem;border-radius:4px;font-size:.9rem}
.scroll{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th,td{text-align:left;padding:.35rem .6rem;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:top}
th{font-weight:600;font-size:.85rem;color:var(--muted)}
.n{text-align:right}
table.apps td:nth-child(n+2):nth-child(-n+6){text-align:right}
.sortable th{cursor:pointer;user-select:none}
.sortable th[aria-sort=ascending]::after{content:" ▲"}.sortable th[aria-sort=descending]::after{content:" ▼"}
table td.none{color:var(--muted);text-align:left}
dl.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.6rem 1.5rem;margin:1rem 0}
dl.stats div{border-left:3px solid var(--line);padding-left:.6rem}
dt{color:var(--muted);font-size:.85rem}dd{margin:0;font-size:1.3rem;font-weight:600}
code{font-size:.85em}.dig{word-break:break-all;white-space:normal}
pre{background:rgba(127,127,127,.1);padding:.8rem;overflow-x:auto;font-size:.85rem}
svg.hist{width:100%;max-width:600px;height:auto}
svg.hist polyline{stroke:var(--accent);stroke-width:2}svg.hist circle{fill:var(--accent)}
svg.hist text{fill:var(--muted);font-size:11px}
h1{margin-bottom:.2rem}h2{margin-top:2rem;font-size:1.15rem}
td.img{white-space:normal;word-break:break-all;min-width:16rem}td.img .dig{color:var(--muted)}
