:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.viz-root{--surface-1:#fcfcfb;--page:#f9f9f7;--text-primary:#0b0b0b;--text-secondary:#52514e;--text-muted:#898781;--grid:#e1e0d9;--axis:#c3c2b7;--border:#0b0b0b1a;--series-overall:#2a78d6;--series-class:#1baf7a;--series-section:#4a3aa7;--series-speed:#eda100;--series-gap:#eb6834;--good:#006300;--error:#b3261e;background:var(--page);color:var(--text-primary)}@media (prefers-color-scheme:dark){.viz-root{--surface-1:#1a1a19;--page:#0d0d0d;--text-primary:#fff;--text-secondary:#c3c2b7;--text-muted:#898781;--grid:#2c2c2a;--axis:#383835;--border:#ffffff1a;--series-overall:#3987e5;--series-class:#199e70;--series-section:#9085e9;--series-speed:#c98500;--series-gap:#d95926;--good:#0ca30c;--error:#ff6b60}}.viz-root *{box-sizing:border-box}.wrap{max-width:1100px;margin:0 auto;padding:32px 20px 64px}.masthead{margin-bottom:24px}.eyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 6px;font-size:13px}h1{margin:0 0 6px;font-size:28px;font-weight:650}.subhead{color:var(--text-secondary);margin:0;font-size:15px}.subhead b{color:var(--text-primary);font-weight:600}.back-link{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;margin-bottom:16px;padding:0;font-size:13px}.back-link:hover{color:var(--text-primary)}.stat-row{grid-template-columns:repeat(4,1fr);gap:12px;margin:24px 0 28px;display:grid}.stat-tile{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.stat-label{color:var(--text-muted);margin:0 0 6px;font-size:12px}.stat-value{margin:0;font-size:24px;font-weight:650}.stat-value small{color:var(--text-secondary);font-size:14px;font-weight:500}.stat-sub{color:var(--text-secondary);margin:4px 0 0;font-size:12px}.grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.card{background:var(--surface-1);border:1px solid var(--border);border-radius:10px;padding:18px 18px 12px;position:relative}.card.full{grid-column:1/-1}.card h2{margin:0 0 2px;font-size:15px;font-weight:650}.card-sub{color:var(--text-secondary);margin:0 0 10px;font-size:12.5px}.card svg{width:100%;height:auto;display:block;overflow:visible}.legend{flex-wrap:wrap;gap:16px;margin:0 0 8px;display:flex}.legend-item{color:var(--text-secondary);align-items:center;gap:6px;font-size:12.5px;display:flex}.legend-key{border-radius:1px;width:14px;height:2px;display:inline-block}.tick-label{fill:var(--text-muted);font-size:10.5px}.axis-line{stroke:var(--axis);stroke-width:1px}.grid-line{stroke:var(--grid);stroke-width:1px}.end-label{fill:var(--text-primary);font-size:12px;font-weight:650}.tooltip{pointer-events:none;z-index:5;background:var(--surface-1);border:1px solid var(--border);color:var(--text-secondary);opacity:0;white-space:nowrap;border-radius:8px;padding:8px 10px;font-size:12px;transition:opacity 80ms;position:absolute;box-shadow:0 4px 16px #00000029}.tooltip.show{opacity:1}.tooltip .tt-title{color:var(--text-muted);margin-bottom:4px;font-size:11.5px}.tooltip .tt-row{align-items:center;gap:6px;display:flex}.tooltip .tt-key{border-radius:1px;width:10px;height:2px;display:inline-block}.tooltip .tt-val{color:var(--text-primary);margin-left:auto;padding-left:10px;font-weight:650}.hit{fill:#0000;cursor:crosshair}.crosshair{stroke:var(--axis);stroke-width:1px;pointer-events:none}.pt{transition:r 80ms}.bar{cursor:pointer}.bar:hover,.bar:focus{filter:brightness(1.08)}.bar:focus{outline:none}details.table-toggle{margin-top:20px}details.table-toggle>summary{cursor:pointer;color:var(--text-secondary);padding:10px 2px;font-size:13px;font-weight:600;list-style:none}details.table-toggle>summary::-webkit-details-marker{display:none}details.table-toggle>summary:before{content:"▸ ";color:var(--text-muted)}details.table-toggle[open]>summary:before{content:"▾ "}table.data-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:12.5px}table.data-table th,table.data-table td{text-align:right;border-bottom:1px solid var(--grid);font-variant-numeric:tabular-nums;padding:7px 10px}table.data-table th:first-child,table.data-table td:first-child{text-align:left;font-variant-numeric:normal}table.data-table th{color:var(--text-muted);font-size:11.5px;font-weight:600}.race-form{gap:8px;margin:16px 0;display:flex}.race-form input,[data-slot=participantInput]{border:1px solid var(--border);background:var(--surface-1);color:var(--text-primary);border-radius:8px;flex:1;padding:10px 12px;font-size:14px}.race-form button{background:var(--series-overall);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:600}.notice{color:var(--text-secondary);background:var(--surface-1);border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:10px;margin:0 0 16px;padding:10px 12px;font-size:13px;display:flex}.notice[hidden]{display:none}.notice p{flex:1;margin:0}.notice button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:15px;line-height:1}.notice button:hover{color:var(--text-primary)}.form-error{color:var(--error);margin:8px 0;font-size:13px}.participant-list{border:1px solid var(--border);border-radius:8px;max-height:360px;margin:12px 0 0;padding:0;list-style:none;overflow-y:auto}.participant-list li{border-bottom:1px solid var(--grid)}.participant-list li:last-child{border-bottom:none}.participant-list button{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:none;padding:10px 12px;font-size:13.5px;display:block}.participant-list button:hover{background:var(--grid)}@media (width<=720px){.stat-row{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}}
