
:root{--paper:#f3f5f8;--card:#fff;--ink:#18283e;--muted:#56637a;--line:#dce3ed;--model:#1261a6;--count:#768393;--count-ink:#5b6878;--final:#16816b;--final-ink:#0f6a58;--tv:#ad6a21;--band:#cfe3f5}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.45 system-ui,-apple-system,Arial,sans-serif;font-variant-numeric:tabular-nums}button,select,input{font:inherit}button,select{border:1px solid var(--line);border-radius:7px;background:white;padding:7px 11px;color:var(--ink)}button{cursor:pointer}button:hover{background:#edf4fa}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,tr:focus-visible{outline:3px solid #f1ac45;outline-offset:2px}a{color:var(--model)}header{padding:18px max(18px,calc((100vw - 1380px)/2));background:#15283e;color:white;display:flex;align-items:center;justify-content:space-between;gap:14px}h1{font-size:23px;line-height:1.15;margin:0 0 5px}header small{color:#c2d4e5}main{max-width:1420px;margin:auto;padding:18px 20px 55px}.timeline{position:sticky;top:0;z-index:20;background:#fffef9;box-shadow:0 3px 14px #162c4419;border-bottom:1px solid var(--line);padding:10px max(18px,calc((100vw - 1380px)/2))}.progressTop{display:flex;justify-content:space-between;gap:18px;align-items:center}.progressNumber{font-size:25px;font-weight:750;line-height:1.2}.progressSub,.muted,small{color:var(--muted)}.progressNumber span{color:var(--model)}#clock{font-weight:650;text-align:end}.badge{font-size:11px;font-weight:700;letter-spacing:.04em;padding:3px 7px;border-radius:4px;background:#e4edf5;display:inline-block}.synthetic{background:#fff1ce;color:#805b04}.timelineRow{direction:ltr;display:flex;gap:9px;align-items:center;margin-top:8px}#timeline{width:100%;accent-color:var(--model);min-width:40px;direction:ltr}.timestamp{direction:ltr;font-size:12px;color:var(--muted)}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:14px}.toolbar label{display:flex;align-items:center;gap:7px}.card{background:var(--card);border:1px solid var(--line);border-radius:11px;margin-bottom:18px;padding:18px;box-shadow:0 2px 5px #21384f04}.card h2{margin:0;font-size:20px}.cardTitle{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px}.grid .card{min-width:0}.notice{padding:11px 14px;background:#eaf1f8;border-inline-start:3px solid var(--model);border-radius:5px;margin-bottom:15px;font-size:13px}.notice.warn{background:#fff6df;border-color:#cd943a}.note{font-size:12px;color:var(--muted);margin-top:9px}.scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{font-size:11px;letter-spacing:.03em;text-transform:uppercase;text-align:end;color:var(--muted);font-weight:650;border-bottom:2px solid var(--line);white-space:nowrap;padding:9px 9px}td{padding:10px 9px;border-bottom:1px solid #edf0f5;text-align:end;vertical-align:middle}td:first-child,th:first-child{text-align:start}tbody tr{cursor:pointer}tbody tr:hover{background:#f2f6fb}tr.selected{background:#eaf2fa}.name{font-weight:650;display:block}.code{font-size:11px;color:var(--muted)}.model{color:var(--model);font-weight:750;font-size:17px}.count{color:var(--count-ink)}.final{color:var(--final-ink)}.tv{color:var(--tv)}.rangeText{direction:ltr;unicode-bidi:isolate;font-size:11px;font-weight:400;white-space:nowrap;display:block}.members{font-size:11px;max-width:350px;line-height:1.45;color:var(--muted);margin-top:3px}.mini{height:22px;width:140px;display:block}.plot{display:block;width:100%;height:290px;direction:ltr}.hist{height:180px}.legend{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;margin-top:8px}.legend span{color:var(--ink)}.legend span:before{content:'';display:inline-block;width:17px;height:3px;margin-inline-end:5px;background:var(--c,currentColor);vertical-align:middle}.detailsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.prob{font-size:12px;margin-top:5px;color:var(--muted)}details>summary{cursor:pointer;font-weight:600;padding:4px 0}.options{margin-top:12px;display:flex;gap:14px;flex-wrap:wrap}.options label{display:inline-flex;align-items:center;gap:5px}.sourceList{font-size:12px;display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.search{padding:7px;border:1px solid var(--line);border-radius:6px;width:165px}.empty{padding:25px;color:var(--muted);text-align:center}.foot{font-size:12px;color:var(--muted)}.rowWrap{white-space:nowrap}.kpi{font-size:20px;font-weight:750;color:var(--model)}#blocTable .members{min-width:180px}.pill{padding:5px 9px;border-radius:5px;background:#eaf2fa;font-size:12px}.plotHead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px}.plotHead h3{margin:0;font-size:17px}[hidden]{display:none!important}@media(max-width:1000px){.grid{grid-template-columns:1fr}.detailsGrid{grid-template-columns:1fr}main{padding:14px}.plot{height:270px}.hist{height:180px}}@media(max-width:600px){header{padding:13px 15px}h1{font-size:19px}.timeline{padding:9px 12px}.progressNumber{font-size:21px}.progressTop{gap:8px}.progressSub{font-size:11px}#clock{font-size:12px}.timelineRow button{padding:6px 9px}main{padding:10px}.card{padding:12px;margin-bottom:12px}.toolbar{gap:8px;font-size:13px}.toolbar select{max-width:145px;padding:7px}.rangeCell{display:none}td{padding:9px 7px}.model{font-size:16px}.cardTitle h2{font-size:18px}.plot{height:250px}.hist{height:170px}.timestamp{direction:ltr;font-size:10px}.members{max-width:210px}.search{width:120px}.progressNumber span{display:inline-block}#progressDen{max-width:205px}#eventNote{font-size:12px}}

/* Playback demo additions; original table and chart visual language retained. */
:root{color-scheme:light}html{scroll-behavior:smooth}button,select,input{touch-action:manipulation}header{min-height:106px}.eyebrow{display:inline-block;margin-bottom:7px;font-size:11px;font-weight:700;color:#a9cfec;letter-spacing:.04em}.brand small{display:block;max-width:850px}header>button{flex-shrink:0;background:#ffffff12;color:#f6faff;border-color:#ffffff40}.timeline{padding-block:12px}.clockBlock{text-align:end;min-width:135px}.modelTime{font-size:11px;color:var(--muted);margin-top:3px}.timelineRow{margin-top:12px;gap:8px}.timelineRow button{height:36px;min-width:38px}.primaryPlay{background:var(--model);color:white;border-color:var(--model);min-width:74px!important;font-weight:650}.primaryPlay:hover{background:#0e528e;color:white}.primaryPlay[aria-pressed=true]{background:#143e64}.restart{font-size:20px;padding:1px 9px}.timelineRow input{flex:1}.playbackMeta{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;color:var(--muted);margin-top:9px}.playbackMeta>span:first-child{font-weight:650;color:var(--model)}.replayExplanation{margin:0 0 14px;color:var(--muted);font-size:12px}.smoothControl{border-inline-start:1px solid var(--line);padding-inline-start:10px}.smoothControl input{accent-color:var(--model)}#speed{direction:ltr;min-width:65px}.toolbar{align-items:center}.card{border-radius:12px}.loadStatus{max-width:1380px;margin:16px auto;padding:16px 20px;background:white;border:1px solid var(--line);border-radius:10px;display:flex;gap:12px;align-items:center;color:var(--muted)}.loadingDot{height:9px;width:9px;background:var(--model);border-radius:50%;animation:loadingPulse 1.2s ease-in-out infinite}.loadStatus.error .loadingDot{background:#b46b20;animation:none}.loadStatus button{margin-inline-start:auto}#reportMain[aria-busy=true]{opacity:.4;pointer-events:none}button:disabled,select:disabled{cursor:default;opacity:.5}#timeline:focus-visible{outline-offset:6px}.checkpoint-updated .model{animation:checkpointFlash .38s ease-out}.checkpoint-updated .kpi{animation:checkpointFlash .38s ease-out}.checkpoint-updated .hist{animation:checkpointFade .2s ease-out}@keyframes checkpointFlash{0%{background:#d3e9fb}100%{background:transparent}}@keyframes checkpointFade{0%{opacity:.6}100%{opacity:1}}@keyframes loadingPulse{50%{opacity:.35}}.foot{max-width:1100px;line-height:1.6}#datasetInfo{font-size:11px}canvas{contain:layout paint}.timelineRow button:hover{transform:translateY(-1px)}@media(max-width:600px){header{min-height:105px;gap:10px}.eyebrow{font-size:10px}header h1{font-size:18px}.brand small{font-size:11px}.clockBlock{min-width:110px}#clock{font-size:12px}.modelTime{font-size:10px}.timeline{padding-block:9px}.timelineRow{gap:6px;flex-wrap:wrap}.timelineRow input{order:5;flex-basis:100%;margin:4px 0;height:20px}.timelineRow button{height:32px}.playbackMeta{font-size:10px;align-items:start;gap:8px}.playbackMeta>span:last-child{max-width:58%;text-align:end}.toolbar{gap:9px;font-size:12px}.smoothControl{border:0;padding-inline-start:0}.replayExplanation{font-size:11px}.loadStatus{margin:10px;border-radius:8px;padding:12px}.countHeadline{font-size:21px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.timelineRow button:hover{transform:none}}

/* Continuous display values retain a stable numeric width. */
#countHeadline,.recordedCount,.count,.model,.prob,.kpi{font-variant-numeric:tabular-nums}.recordedCount{font-size:11px;line-height:1.5;color:var(--muted);margin-top:3px;min-height:1.5em}.recordedCount:empty{display:none}.motionBadge{font-size:10px;font-weight:500;color:var(--muted);white-space:nowrap}.checkpoint-updated[data-unit="seats"] .model,.checkpoint-updated[data-unit="seats"] .count{animation:checkpointFade .28s ease-out}.scroll tbody tr{transition:background-color .18s ease}.mini{overflow:visible}@media(max-width:600px){.recordedCount{font-size:10px;max-width:230px}}@media(prefers-reduced-motion:reduce){.checkpoint-updated[data-unit="seats"] .model,.checkpoint-updated[data-unit="seats"] .count{animation:none}}

/* Keep the historical clock legible alongside the live display count. */
#clock{font-size:21px;line-height:1.3}.progressNumber{font-size:29px}@media(max-width:600px){#clock{font-size:16px}.progressNumber{font-size:23px}.clockBlock{min-width:112px}}
