:root{--bg:#0f1115;--panel:#171a21;--line:#262b36;--fg:#e6e9ef;--dim:#8b93a7;--accent:#7c5cff;--gold:#f5c518}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:14px/1.5 -apple-system,Segoe UI,Roboto,sans-serif}
.wrap{max-width:1200px;margin:0 auto;padding:24px}
h1{font-size:22px;margin:0 0 4px}
h2{font-size:16px;margin:28px 0 10px;color:var(--dim);text-transform:uppercase;letter-spacing:.05em}
.meta{color:var(--dim);margin-bottom:18px}
.live-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:#3aa56b;margin-right:6px;vertical-align:middle;animation:pulse 1.6s infinite}
.live-dot.stale{background:#b04545;animation:none}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:9px 11px}
.cnum{font-size:17px;font-weight:700}
.clbl{color:var(--dim);font-size:11px;margin-top:1px}
.chart{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px}
.linechart{width:100%;height:auto;display:block}
.linechart .grid{stroke:var(--line);stroke-width:1}
.linechart .vgrid{stroke:var(--line);stroke-width:1;opacity:.18}
.linechart .vgrid.tick{opacity:.5}
.linechart .yl{fill:var(--dim);font-size:11px;text-anchor:end}
.linechart .xl{fill:var(--dim);font-size:11px;text-anchor:middle}
.linechart .area{fill:rgba(124,92,255,.15);stroke:none}
.linechart .line{fill:none;stroke:#7c5cff;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.linechart .dot{fill:#7c5cff;stroke:#0f1115;stroke-width:1.5}
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;margin:0 -2px}
table{width:100%;border-collapse:collapse;background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
th{background:#1d212b;cursor:pointer;user-select:none;white-space:nowrap;position:sticky;top:0}
th:hover{color:#fff}
th::after{content:" \2195";color:var(--dim);font-size:11px}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
td.c{text-align:center;color:var(--gold)}
.name{font-weight:600}
.sub,.dim{color:var(--dim);font-size:12px;font-weight:400}
.badges{color:var(--dim);font-size:12px;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tag{display:inline-block;font-size:11px;padding:1px 6px;border-radius:6px;margin:1px 2px;background:#2a2f3b}
.tag.f{background:#1f3a2e;color:#7ee2a8}
.tag.s{background:#3a2f1f;color:#f5c518}
.tag.fr{background:#2a2440;color:#b6a3ff}
.tag.v{background:#1f2c3a;color:#7cc0ff}
.active-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#3aa56b;margin-right:6px;vertical-align:middle;animation:apulse 1.8s infinite}
@keyframes apulse{0%{box-shadow:0 0 0 0 rgba(58,165,107,.5)}70%{box-shadow:0 0 0 5px rgba(58,165,107,0)}100%{box-shadow:0 0 0 0 rgba(58,165,107,0)}}
tr.active>td.name{color:#cfeede}
td.exp{text-align:center;width:34px}
.expbtn{cursor:pointer;background:#2a2f3b;color:var(--fg);border:1px solid var(--line);border-radius:6px;width:22px;height:22px;line-height:1;font-size:14px;padding:0}
.expbtn:hover{background:#343a48}
tr.detail>td{background:#10131a}
.visits{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12px}
.vlbl{color:var(--fg);font-weight:600;margin-right:2px}
.visit{background:#1d212b;border:1px solid var(--line);border-radius:6px;padding:2px 8px;color:var(--dim);font-variant-numeric:tabular-nums}
.poll{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px;margin-bottom:12px}
.poll h3{margin:0 0 4px;font-size:15px}
.poll-meta{color:var(--dim);font-size:12px;margin:0 0 10px}
.poll-opt{position:relative;padding:6px 10px;margin:4px 0;border-radius:6px;background:#10131a;overflow:hidden}
.poll-bar{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#3a2f6e,#7c5cff55)}
.poll-lbl,.poll-votes{position:relative}
.poll-votes{float:right;color:var(--dim)}
.note{color:var(--dim);font-size:12px;margin-top:8px}
.bd2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:760px){
  .bd2{grid-template-columns:1fr}
  .wrap{padding:14px}
  body{font-size:13px}
  h1{font-size:19px}
  h2{font-size:14px;margin:22px 0 8px}
  th,td{padding:6px 8px}
  .cards{grid-template-columns:repeat(auto-fit,minmax(94px,1fr))}
  .cnum{font-size:16px}
  table{min-width:680px}            /* keep columns readable; the wrap scrolls */
  .badges{max-width:120px}
  .minis{flex-wrap:wrap}
}
@media(max-width:430px){
  .cards{grid-template-columns:1fr 1fr}
}
.bd{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px}
.bd h3{margin:0 0 12px;font-size:14px}
.splitbar{display:flex;height:18px;border-radius:6px;overflow:hidden;background:#10131a}
.seg.f{background:#3aa56b}
.seg.n{background:#3a3f4d}
.legend{display:flex;gap:16px;margin-top:8px;font-size:12px;color:var(--dim)}
.legend b{color:var(--fg)}
.dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px}
.dot.f{background:#3aa56b}
.dot.n{background:#3a3f4d}
.minis{display:flex;gap:10px;margin-top:12px}
.mini{flex:1;background:#10131a;border-radius:8px;padding:8px;text-align:center}
.mini b{display:block;font-size:18px}
.mini span{color:var(--dim);font-size:11px}
.wrow{display:flex;align-items:center;gap:8px;margin:6px 0}
.wlbl{width:78px;color:var(--dim);font-size:12px;flex:none}
.wbar-wrap{flex:1;background:#10131a;border-radius:6px;overflow:hidden;height:16px}
.wbar{height:100%;background:linear-gradient(90deg,#3a2f6e,#7c5cff)}
.wn{width:36px;text-align:right;font-variant-numeric:tabular-nums}
.empty{color:var(--dim);padding:40px;text-align:center}
