:root{--bg:#0f1419;--panel:#171e26;--line:#2a3441;--text:#e6edf3;--muted:#8b98a5;--accent:#4aa3ff;--warn:#f0b429;--bad:#ff6b6b;--good:#3ecf8e}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line);background:#121920}
.brand{font-weight:700;font-size:18px}.sub{color:var(--muted);font-weight:400;font-size:13px;margin-left:6px}
.badges{display:flex;gap:6px;flex-wrap:wrap}.badge{border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:12px;color:var(--muted)}.badge.live{border-color:#1f6b45;color:#3ecf8e}.badge.warn{border-color:#6b5310;color:var(--warn)}
main{padding:16px 20px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:14px;max-width:1500px;margin:0 auto}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.panel h2{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.full{grid-column:1/-1}.muted{color:var(--muted)}
.casehead{display:flex;gap:24px;flex-wrap:wrap;align-items:flex-start}.casehead .id{font-size:22px;font-weight:700}.trigger{font-style:italic;color:#c9d4df;max-width:640px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:13px}.kv dt{color:var(--muted)}.kv dd{margin:0}
.verdict{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.pill{font-weight:700;border-radius:6px;padding:4px 10px;text-transform:uppercase;font-size:13px}.pill.uncertain{background:#3b3212;color:var(--warn)}.pill.fraud{background:#3d1a1a;color:var(--bad)}.pill.legitimate{background:#10321f;color:var(--good)}
.meter{width:220px;height:10px;background:#0b1015;border-radius:5px;overflow:hidden;border:1px solid var(--line)}.meter>div{height:100%;background:linear-gradient(90deg,var(--good),var(--warn),var(--bad))}
ol.steps{margin:0;padding-left:20px}ol.steps li{margin:0 0 8px}.q{font-weight:600}.ref{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--accent)}
.factor{display:flex;gap:8px;margin:0 0 8px}.factor .dir{flex:0 0 auto;font-size:11px;font-weight:700;border-radius:4px;padding:1px 6px;height:fit-content}.dir.supports_fraud{background:#3d1a1a;color:var(--bad)}.dir.supports_legitimate{background:#10321f;color:var(--good)}
table{width:100%;border-collapse:collapse;font-size:13px}th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:600}
.route{font-weight:700;font-family:ui-monospace,Menlo,monospace}.route.auto{color:var(--good)}.route.L1,.route.L2{color:var(--warn)}.new{color:var(--accent);font-weight:700;font-size:11px;margin-left:4px}
.status{font-size:12px}.cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
svg text{fill:var(--text);font-size:11px}svg .edge{stroke:#3b4a5c;stroke-width:1.2}svg .elabel{fill:var(--muted);font-size:9px}
.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:6px}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:-1px}
ul.lim{margin:0;padding-left:18px}ul.lim li{margin-bottom:4px;color:#c9d4df}
@media (max-width:1000px){main{grid-template-columns:1fr}.cols{grid-template-columns:1fr}}

.cases{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px 20px;border-bottom:1px solid var(--line)}.cases a{padding:2px 8px;border:1px solid var(--line);border-radius:6px;color:inherit;text-decoration:none;font-size:13px}.cases a.on{border-color:#4aa3ff;color:#4aa3ff}.cases sup{color:#3ecf8e;font-size:9px;margin-left:2px}
.pb{width:100%;margin-top:10px;display:flex;gap:12px;align-items:center}
.pb button{background:#2563eb;color:#fff;border:0;border-radius:6px;padding:7px 14px;font-weight:600;cursor:pointer}
.playing .pb button{opacity:.5;pointer-events:none}
.pb-hidden{display:none}
.pb-off{opacity:0}
.steps li,.factor,.gnode,.gedge{transition:opacity .6s ease}
.pb-now{background:rgba(37,99,235,.18);border-radius:6px}
.meter>div{transition:width 1.4s ease}
#pb-status code{color:#9ecbff}
.playing section.panel:has(svg){align-self:start;position:sticky;top:8px}
