
:root{--bg:#f4f6f8;--fg:#17202b;--muted:#64748b;--card:#fff;--line:#e3e8ee;--accent:#0f9f94;--accent2:#d97706;
--gold:#d39b0a;--silver:#8a97a8;--bronze:#b0632a;--bad:#dc2626;--good:#16a34a;--shadow:0 1px 2px rgba(16,24,40,.06),0 1px 3px rgba(16,24,40,.08)}
@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--fg:#e6edf3;--muted:#8b98a9;--card:#161b22;--line:#262f3b;--accent:#2dd4bf;
--accent2:#fbbf24;--gold:#fbbf24;--silver:#cbd5e1;--bronze:#e0915a;--shadow:none}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1120px;margin:0 auto;padding-inline:16px}
header.top{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
header.top .wrap{display:flex;align-items:center;gap:24px;flex-wrap:wrap;min-height:56px}
.brand{font-weight:800;font-size:19px;color:var(--fg);display:flex;align-items:center;gap:10px;letter-spacing:-.01em}
.pulse{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent);animation:p 2s infinite}
@keyframes p{0%{box-shadow:0 0 0 0 rgba(45,212,191,.6)}70%{box-shadow:0 0 0 9px rgba(45,212,191,0)}100%{box-shadow:0 0 0 0 rgba(45,212,191,0)}}
nav{display:flex;gap:4px;flex-wrap:wrap}nav a{color:var(--muted);padding:6px 11px;border-radius:8px;font-weight:600;font-size:14px}
nav a:hover{background:var(--bg);text-decoration:none}nav a.on{color:var(--fg);background:var(--bg)}
main{padding-block:22px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow)}
.stat .label{color:var(--muted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.stat .value{font-size:24px;font-weight:800;margin-top:2px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.stat .sub{color:var(--muted);font-size:13px;margin-top:2px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:var(--shadow);min-width:0}
.card h2{font-size:16px;margin:0 0 12px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:0 16px;align-items:start}.cols>.card{margin-bottom:16px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.grid .card{margin:0}
.tw{overflow-x:auto}table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
th,td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}
th{color:var(--muted);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.04em}
table.sort th{cursor:pointer;user-select:none}table.sort th:hover{color:var(--fg)}
th.asc::after{content:" \25B2"}th.desc::after{content:" \25BC"}
.nick{font-weight:650}.dur{font-variant-numeric:tabular-nums}.live{color:var(--good);font-weight:650}
.muted,.note,.empty{color:var(--muted)}.note{font-size:13px;margin:0 0 10px}.empty{margin:0}
.medal{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:800;color:#fff}
.m1{background:var(--gold)}.m2{background:var(--silver)}.m3{background:var(--bronze)}.pos{color:var(--muted);padding-left:6px}
.banner{background:color-mix(in srgb,var(--accent2) 14%,var(--card));border:1px solid color-mix(in srgb,var(--accent2) 45%,transparent);
border-radius:12px;padding:12px 16px;margin-bottom:16px}
.badges{display:flex;flex-wrap:wrap;gap:8px}
.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:700;border:1px solid}
.badge.gold{color:var(--gold);border-color:var(--gold);background:color-mix(in srgb,var(--gold) 12%,transparent)}
.badge.silver{color:var(--silver);border-color:var(--silver);background:color-mix(in srgb,var(--silver) 12%,transparent)}
.badge.bronze{color:var(--bronze);border-color:var(--bronze);background:color-mix(in srgb,var(--bronze) 12%,transparent)}
.badge.off{opacity:.3;filter:grayscale(1)}
.here{color:var(--good);font-weight:700}.warn{color:var(--accent2);font-weight:700}
svg.steps .line{fill:none;stroke:var(--accent);stroke-width:2.5}svg.steps .area{fill:var(--accent);fill-opacity:.12}svg.steps .dot{fill:var(--bad)}.dq{color:var(--bad);font-weight:700}
svg.chart,svg.heat{width:100%;height:auto;display:block}svg.heat{max-width:760px}svg.chart{max-height:240px}svg .bar{fill:var(--accent)}svg .bar:hover{fill:var(--accent2)}
svg .grid{stroke:var(--line);stroke-width:1}svg .axis{fill:var(--muted);font-size:10px}svg .hc{fill:var(--accent)}
ul.feed{list-style:none;margin:0;padding:0}ul.feed li{padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}
ul.feed li:last-child{border:0}ul.feed time{color:var(--muted);font-size:12px;margin-right:6px;font-variant-numeric:tabular-nums}
ul.feed li.ev-record::before{content:"\2605 ";color:var(--gold)}ul.feed li.ev-badge::before{content:"\2726 ";color:#9b59d0}
ul.feed li.ev-roundwin::before,ul.feed li.ev-champion::before{content:"\265B ";color:var(--gold)}
ul.nicks{columns:2;margin:0;padding-left:18px}
details.round{border-bottom:1px solid var(--line);padding:8px 0}details.round:last-child{border:0}
details.round summary{cursor:pointer}details.round .tw{margin-top:8px}details.cancelled summary,details.nowinner summary{color:var(--muted)}
.phead{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-bottom:12px}.phead h1{margin:0;font-size:30px;letter-spacing:-.02em}
.phead p{flex-basis:100%;margin:0}
footer{color:var(--muted);font-size:13px;padding-block:8px 32px}
@media (max-width:600px){.stat .value{font-size:20px}th,td{padding:6px 7px}ul.nicks{columns:1}}
