.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}:root{--bg:#0a0e13;--panel:#10151ceb;--panel-solid:#10151c;--border:#ffffff14;--text:#e8edf3;--muted:#8b96a5;--accent:#4fa3ff;--good:#2ecc71;--warn:#f1c40f;--bad:#e74c3c;--radius:10px;--font:Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overflow:hidden}#root{position:fixed;inset:0}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px}button{font:inherit;color:inherit}.map{position:absolute;inset:0}.map canvas{position:absolute;top:0;left:0}.loading{flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;inset:0}.loading h1{letter-spacing:-.02em;margin:0;font-size:28px;font-weight:700}.loading p{color:var(--muted);margin:0}.progress{background:#ffffff14;border-radius:3px;width:min(360px,80vw);height:6px;overflow:hidden}.progress>div{background:var(--accent);height:100%;transition:width .2s}.error{color:var(--bad);text-align:center;max-width:520px}.attribution{color:var(--muted);pointer-events:none;z-index:5;background:#0a0e13b3;border-radius:4px;padding:2px 6px;font-size:11px;position:absolute;bottom:6px;right:8px}.loading.overlay{z-index:20;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0a0e13b8}.spinner{border:3px solid #ffffff26;border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{border:1px solid var(--border);cursor:pointer;background:#ffffff0f;border-radius:8px;width:38px;height:38px;font-size:18px}.icon-btn:hover{background:#ffffff1f}.icon-btn.small{width:28px;height:28px;font-size:14px}.btn{border:1px solid var(--border);cursor:pointer;background:#ffffff14;border-radius:8px;padding:7px 12px}.btn:hover{background:#ffffff24}.btn.on{background:var(--accent);border-color:var(--accent);color:#fff}.link{color:var(--muted);cursor:pointer;background:0 0;border:none;text-decoration:underline}.topbar{z-index:10;background:var(--panel);border:1px solid var(--border);border-radius:14px;align-items:center;gap:10px;padding:8px 12px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000059}.play-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:50%;width:44px;height:44px;font-size:16px}.clock{flex-direction:column;align-items:center;min-width:88px;display:flex}.clock .time{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:30px;font-weight:700;line-height:1}.clock .day{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.speeds{background:#ffffff0d;border-radius:8px;gap:2px;padding:2px;display:flex}.speeds button{cursor:pointer;color:var(--muted);font-variant-numeric:tabular-nums;background:0 0;border:none;border-radius:6px;padding:5px 7px;font-size:13px}.speeds button.on{color:var(--text);background:#ffffff24}.actual{color:var(--muted);min-width:110px;font-size:12px}.actual.lag{color:var(--warn)}.score{color:#10151c;white-space:nowrap;border-radius:8px;padding:6px 10px;font-weight:700}.topbar.mini{border-radius:26px;flex-wrap:nowrap;gap:8px;width:auto;padding:5px 6px 5px 5px}.topbar.mini .play-btn{width:36px;height:36px;font-size:13px}.topbar.mini .clock{min-width:0}.topbar.mini .clock .time{font-size:22px}.panel{z-index:9;background:var(--panel);border:1px solid var(--border);scrollbar-width:thin;border-radius:14px;width:340px;padding:12px 14px;position:absolute;top:12px;bottom:12px;overflow-y:auto;box-shadow:0 6px 24px #00000059}.panel.left{left:12px}.panel.right{right:12px}.panel-title{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:15px;font-weight:700;display:flex}.panel h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:16px 0 8px;font-size:13px}.panel h3.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none}.panel h4{color:var(--muted);margin:14px 0 6px;font-size:13px;font-weight:600}.panel-tab{z-index:9;background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:8px 12px;position:absolute;top:80px}.panel-tab.left{left:12px}.panel-tab.right{right:12px}.muted{color:var(--muted)}.small-note{color:var(--muted);margin-top:10px;font-size:12px;line-height:1.4}.param{margin:10px 0 14px}.param-head{justify-content:space-between;gap:8px;font-size:13px;display:flex}.param-label{font-weight:600}.param-val{color:var(--accent);font-variant-numeric:tabular-nums;text-align:right}.param input[type=range]{width:100%;accent-color:var(--accent);margin:6px 0 2px}.ends{color:var(--muted);justify-content:space-between;font-size:11px;display:flex}.hint{color:var(--muted);margin-top:3px;font-size:12px;line-height:1.35}.detail{color:var(--text);margin-top:4px;font-size:12px;line-height:1.35}.badge{color:var(--muted);margin-left:6px;font-size:11px;display:inline-block}.badge.pending{color:var(--warn)}.seg{gap:4px;margin-top:6px;display:flex}.seg button{border:1px solid var(--border);cursor:pointer;background:#ffffff0f;border-radius:6px;flex:1;padding:5px 0}.seg button.on{background:var(--accent);border-color:var(--accent)}.restart-banner{z-index:2;background:#3a2f0b;border:1px solid #6b5412;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex;position:sticky;top:-12px}.restart-banner button{background:var(--warn);color:#10151c;cursor:pointer;white-space:nowrap;border:none;border-radius:7px;padding:6px 10px;font-weight:700}.presets{grid-template-columns:1fr 1fr;gap:6px;display:grid}.preset{text-align:left;border:1px solid var(--border);cursor:pointer;background:#ffffff0d;border-radius:10px;flex-direction:column;gap:3px;padding:8px;display:flex}.preset b{font-size:13px}.preset span{color:var(--muted);font-size:11px;line-height:1.3}.preset:hover{background:#ffffff1a}.preset.on{border-color:var(--accent);background:#4fa3ff26}.toggle{cursor:pointer;align-items:flex-start;gap:8px;margin:6px 0;font-size:13px;display:flex}.toggle input{accent-color:var(--accent);margin-top:3px}.toggle small{color:var(--muted);font-size:11px;display:block}.legend-note{color:var(--muted);font-size:11px}.headline{background:#4fa3ff14;border:1px solid #4fa3ff40;border-radius:12px;padding:10px 12px}.big{letter-spacing:-.03em;font-size:44px;font-weight:800;line-height:1}.big small{color:var(--muted);font-size:18px;font-weight:600}.big-caption{color:var(--text);margin-top:4px;font-size:13px;line-height:1.35}.by-mode{flex-wrap:wrap;gap:10px;margin-top:6px;font-size:12px;display:flex}.kpis{grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px;display:grid}.kpi{text-align:center;background:#ffffff0a;border-radius:10px;padding:8px}.kpi-v{font-variant-numeric:tabular-nums;font-size:20px;font-weight:700}.kpi-l{color:var(--muted);font-size:11px;line-height:1.25}.warn{background:#e74c3c26;border:1px solid #e74c3c80;border-radius:10px;margin-top:10px;padding:8px 10px;font-size:12px;line-height:1.35}.shares{color:#10151c;border-radius:8px;height:26px;font-size:11px;font-weight:700;display:flex;overflow:hidden}.shares>div{white-space:nowrap;justify-content:center;align-items:center;transition:width .4s;display:flex;overflow:hidden}.chart{width:100%}.chart-legend{color:var(--muted);gap:10px;font-size:11px;display:flex}.toplist ol{margin:0;padding-left:20px;font-size:13px}.toplist li{cursor:pointer;padding:2px 0}.toplist li:hover .tl-label{text-decoration:underline}.toplist li{display:list-item}.tl-label small{color:var(--muted)}.tl-val{float:right;font-variant-numeric:tabular-nums;color:var(--warn)}.runs ul{margin:8px 0;padding:0;font-size:12px;list-style:none}.runs li{margin:4px 0}.compare{background:#ffffff0a;border-radius:10px;padding:8px 10px;font-size:12px;line-height:1.6}.good{color:var(--good)}.bad{color:var(--bad)}.bars{align-items:flex-end;gap:1px;height:64px;margin-bottom:14px;display:flex}.bar{flex-direction:column;flex:1;justify-content:flex-end;height:100%;display:flex;position:relative}.bar>div{border-radius:2px 2px 0 0;min-height:1px}.bar span{color:var(--muted);font-size:9px;position:absolute;bottom:-14px;left:0}.feed{z-index:8;flex-direction:column;gap:4px;width:min(520px,100vw - 32px);display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.feed-item{text-align:left;background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:6px 10px;font-size:13px;animation:.4s fadein}.feed-item:first-child{border-color:#ffffff40}.feed-item.gridlock{border-color:#e74c3c99}.feed-icon{margin-right:6px}@keyframes fadein{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.card{z-index:11;background:var(--panel-solid);border:1px solid var(--border);border-radius:14px;width:340px;max-height:calc(100vh - 300px);padding:12px 14px;position:absolute;top:84px;right:364px;overflow-y:auto;box-shadow:0 10px 30px #00000073}.card .close{position:absolute;top:10px;right:10px}.card h2{margin:2px 0 4px;font-size:19px}.card-kicker{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.card-sub{color:var(--muted);font-size:13px}.card dl{grid-template-columns:auto 1fr;gap:3px 12px;margin:10px 0;font-size:13px;display:grid}.card dt{color:var(--muted)}.card dd{margin:0}.dot{border-radius:50%;width:10px;height:10px;display:inline-block}.plan{border-collapse:collapse;width:100%;margin:6px 0 10px;font-size:12px}.plan th{text-align:left;color:var(--muted);border-bottom:1px solid var(--border);padding:3px 2px;font-weight:500}.plan td{border-bottom:1px solid #ffffff0a;padding:3px 2px}.plan tr.now td{color:var(--accent)}.plan tr.planned td{color:var(--muted)}.onboarding{z-index:30;background:var(--panel-solid);border:1px solid #4fa3ff80;border-radius:16px;width:min(420px,100vw - 32px);padding:18px 20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 20px 60px #0009}.onboarding h2{margin:4px 0 8px;font-size:20px}.onboarding p{color:var(--text);margin:0 0 14px;line-height:1.45}.onb-step{color:var(--muted);font-size:12px}.onb-actions{justify-content:space-between;align-items:center;display:flex}@media (width<=1100px){.panel{width:300px}.card{width:300px;right:324px}}@media (width<=820px){.panel{border-radius:14px 14px 0 0;width:auto;height:45vh;top:auto;bottom:0;left:0!important;right:0!important}.card{width:auto;max-height:40vh;inset:auto 8px 46vh}.topbar{flex-wrap:wrap;justify-content:center;width:calc(100vw - 16px);top:6px}.actual{display:none}.feed{bottom:70px}.feed-item:nth-child(n+3){display:none}.panel-tab{top:auto;bottom:16px}}
