:root{--bg: #0b0e14;--surface: #121722;--surface-2: #1a2130;--border: #273043;--border-strong: #36415a;--text-1: #e8ecf3;--text-2: #a3adbf;--text-3: #7d889c;--up: #2ebd85;--down: #f6465d;--mcap: #8b9cff;--btc: #f7931a;--ev-s: #ff7a3d;--ev-a: #ffae33;--ev-b: #e6c36a;--ev-c: #9aa6b8;--warn: #f5b841;--cyc: #b48cff;--pred: #ffd166;--info: #5cc8f2;--danger: #ff6b6b;--link: #7fb2ff;--focus: #7fb2ff;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", system-ui, sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text-1);font:14px/1.5 var(--font);-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit}a{color:var(--link)}.num{font-family:var(--mono);font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}.wrap{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.up{color:var(--up)}.down{color:var(--down)}.toolbar{flex:none;display:flex;align-items:center;gap:6px;height:44px;padding:0 10px;border-bottom:1px solid var(--border);background:var(--surface);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;white-space:nowrap}.toolbar::-webkit-scrollbar{display:none}.brand{display:flex;align-items:center;gap:6px;flex:none;margin-right:4px}.logo{width:22px;height:22px;border-radius:6px;background:var(--btc);color:#0b0e14;display:grid;place-items:center;font-weight:800;font-size:13px}h1{font-size:14px;margin:0;font-weight:700}.sep{width:1px;height:20px;background:var(--border);flex:none}.grp{display:flex;align-items:center;gap:4px;flex:none}.grp[hidden]{display:none}.pill{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 8px;border-radius:999px;border:1px solid var(--border);color:var(--text-3);font-size:11px;white-space:nowrap;flex:none}.pill .dot{width:6px;height:6px;border-radius:50%;background:var(--up)}.pill.stale{border-color:#5a4a1e;color:var(--warn)}.pill.stale .dot{background:var(--warn)}.pill.offline .dot{background:var(--text-3)}.seg{display:inline-flex;flex:none;white-space:nowrap;background:var(--bg);border:1px solid var(--border);border-radius:7px;padding:2px}.seg button{border:0;background:none;height:26px;min-width:32px;padding:0 8px;border-radius:5px;color:var(--text-2);cursor:pointer;font-size:12px}.seg button:hover{color:var(--text-1)}.seg button[aria-pressed=true]{background:var(--surface-2);color:var(--text-1);box-shadow:inset 0 0 0 1px var(--border-strong);font-weight:600}.chip{height:28px;padding:0 8px;border-radius:7px;border:1px solid var(--border);background:var(--bg);color:var(--text-2);cursor:pointer;display:inline-flex;align-items:center;gap:5px;font-size:12px;flex:none}.chip[aria-pressed=true]{color:var(--text-1);border-color:var(--border-strong);background:var(--surface-2)}.chip[aria-pressed=false]{opacity:.5}#listBtn[aria-pressed=false]{opacity:1}.chip .sw{width:8px;height:8px;border-radius:50%}.chip .sw.cev{border-radius:0;clip-path:polygon(50% 0,100% 100%,0 100%)}.chip .sw.pred{height:2px;width:12px;border-radius:0;background:repeating-linear-gradient(90deg,var(--pred) 0 3px,transparent 3px 5px)!important}.chip .sw.cyc{border-radius:2px;background:linear-gradient(90deg,var(--up) 50%,var(--down) 50%)!important}.chip.sev{padding:0 7px;font-weight:700}.spacer{flex:1;min-width:8px}.body{flex:1;min-height:0;display:flex;position:relative}.chart-card{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;background:var(--surface);overflow:hidden}.plot{position:relative;flex:1;min-height:0}#chart{position:absolute;inset:0}.legend{position:absolute;left:8px;top:6px;right:80px;z-index:4;display:flex;gap:2px 12px;flex-wrap:wrap;align-items:baseline;font-size:12px;color:var(--text-2);pointer-events:none;text-shadow:0 0 4px var(--surface),0 0 2px var(--surface)}.legend b{color:var(--text-1);font-weight:600}.legend .sym{color:var(--text-1);font-weight:700;font-size:13px}.legend .k{color:var(--text-3)}.legend .mc{color:var(--mcap)}.legend .pd{color:var(--pred)}.pred-tag{position:absolute;z-index:4;left:8px;top:28px;font-size:11px;color:var(--pred);text-decoration:none;background:#121722d9;border:1px dashed color-mix(in srgb,var(--pred) 60%,transparent);border-radius:6px;padding:2px 8px;display:inline-flex;align-items:center;gap:6px}.pred-tag[hidden]{display:none}.pred-tag i{width:14px;height:0;border-top:2px dashed var(--pred)}.attr{position:absolute;left:8px;bottom:34px;z-index:4;font-size:10px;color:var(--text-3);opacity:.75}.attr a{color:var(--text-3)}.band{position:absolute;top:0;pointer-events:none;border-left:1px dashed rgba(255,255,255,.08)}.band.bull{background:linear-gradient(180deg,#2ebd8517,#2ebd8505)}.band.bear{background:linear-gradient(180deg,#f6465d1a,#f6465d05)}.band.ongoing{background:repeating-linear-gradient(135deg,#f6465d12 0 6px,#f6465d05 6px 12px)}.band.proj{background:#2ebd8509;border:1.5px dashed rgba(46,189,133,.55);border-bottom:none;border-top:none}.projmark{position:absolute;top:0;pointer-events:none;border-left:1.5px dashed rgba(246,70,93,.75)}.projmark.top{border-left-color:#2ebd85d9}.projmark span{position:absolute;top:6px;left:4px;font-size:11px;white-space:nowrap;color:var(--text, #ddd);opacity:.8;font-family:var(--mono)}.band .bl{position:absolute;left:50%;bottom:8px;transform:translate(-50%);font-size:12px;font-weight:700;white-space:nowrap;font-family:var(--mono);text-shadow:0 0 4px var(--surface)}.lane{position:relative;flex:none;height:58px;border-bottom:1px dashed var(--border);background:linear-gradient(180deg,rgba(255,122,61,.04),transparent)}.lane[hidden]{display:none}.lane[data-rows="1"]{height:30px}.lane[data-rows="3"]{height:76px}.lane .row-lbl{position:absolute;right:0;font-size:11px;color:var(--text-3);text-align:center;pointer-events:none}.lane .row-lbl.cy{color:var(--cyc)}.lane .rowline{position:absolute;left:0;height:1px;background:#ffffff0a}.mk{position:absolute;transform:translate(-50%,-50%);border:0;padding:0;background:none;cursor:pointer;display:grid;place-items:center;min-width:24px;min-height:24px}.mk .g{display:block;border-radius:50%;background:var(--c);box-shadow:0 0 0 2px var(--surface),0 0 10px color-mix(in srgb,var(--c) 55%,transparent);transition:transform .12s}.mk.ins .g{border-radius:3px;transform:rotate(45deg)}.mk:hover .g{transform:scale(1.18)}.mk.ins:hover .g{transform:rotate(45deg) scale(1.18)}.mk[aria-pressed=true] .g{box-shadow:0 0 0 2px var(--surface),0 0 0 4px #fff,0 0 14px var(--c)}.mk.dev:after{content:"";position:absolute;inset:-2px;border-radius:50%;border:1.5px dashed var(--c);animation:pulse 1.6s ease-out infinite}@keyframes pulse{0%{transform:scale(.8);opacity:1}to{transform:scale(1.7);opacity:0}}@media(prefers-reduced-motion:reduce){.mk.dev:after{animation:none;opacity:.8}}.mk .lab{position:absolute;left:calc(50% + 12px);top:50%;transform:translateY(-50%);font-size:11px;font-weight:700;color:var(--c);white-space:nowrap;pointer-events:none;font-family:var(--mono)}.cl{position:absolute;transform:translate(-50%,-50%);height:24px;min-width:24px;padding:0 7px;border-radius:999px;border:1.5px solid var(--c);background:color-mix(in srgb,var(--c) 18%,var(--surface));color:var(--text-1);font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;gap:4px;font-family:var(--mono)}.cl:hover,.cl[aria-expanded=true]{background:color-mix(in srgb,var(--c) 32%,var(--surface))}.cl .pl{font-family:var(--font);font-weight:500;color:var(--text-2);font-size:11px}.guide{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed var(--c, #fff);pointer-events:none;opacity:.9}.guide.faint{opacity:.22;border-left-style:solid}.layer{position:absolute;left:0;right:0;pointer-events:none;z-index:3}.tip{position:absolute;z-index:6;pointer-events:none;background:#0f1420;border:1px solid var(--border-strong);border-radius:8px;padding:8px 10px;font-size:12px;box-shadow:0 8px 24px #00000080;white-space:nowrap}.tip b{font-size:13px}.pop{position:absolute;z-index:7;width:300px;background:#0f1420;border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:0 12px 32px #0009;padding:6px}.pop h4{margin:6px 8px 4px;font-size:12px;color:var(--text-2);font-weight:500}.pop .row{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;padding:8px;border-radius:6px;cursor:pointer;text-align:left;min-height:40px}.pop .row:hover{background:var(--surface-2)}.pop .row .x{flex:1;min-width:0}.pop .zoom{width:100%;margin-top:4px;height:36px;border-radius:6px;border:1px solid var(--border);background:var(--surface);cursor:pointer;color:var(--text-1)}.panel{display:none;flex-direction:column;width:360px;flex:none;background:var(--surface);border-left:1px solid var(--border);overflow:auto;z-index:12}.panel.open{display:flex}.ph .px{border:0;background:none;color:var(--text-2);cursor:pointer;width:32px;height:32px;font-size:16px}.ph.sub{border-top:1px solid var(--border)}.panel-foot{padding:10px 14px 16px;color:var(--text-3);font-size:11px;line-height:1.7;border-top:1px solid var(--border)}.ph{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border)}.ph h2{font-size:15px;margin:0}.ph .cnt{color:var(--text-3);font-weight:400;font-size:12px;margin-left:6px}.list{overflow:auto;padding:6px}.item{display:grid;grid-template-columns:20px 1fr auto;gap:2px 10px;align-items:center;width:100%;text-align:left;border:1px solid transparent;background:none;border-radius:8px;padding:10px;cursor:pointer;min-height:56px}.item:hover{background:var(--surface-2)}.item[aria-current=true]{background:var(--surface-2);border-color:var(--border-strong)}.item .dotc{grid-row:span 2;justify-self:center;width:10px;height:10px;border-radius:50%;background:var(--c)}.item.ins .dotc{border-radius:2px;transform:rotate(45deg)}.item .nm{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item .ls{font-family:var(--mono);font-weight:700;color:var(--c);text-align:right}.item .dt{color:var(--text-3);font-size:12px;grid-column:2/4;display:flex;gap:8px}.item.dim{opacity:.4}.badge{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:4px;font-size:11px;font-weight:700;white-space:nowrap}.b-sev{color:#140b04;background:var(--c)}.b-type{background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.b-dev{background:#2a1d08;color:var(--warn);border:1px solid #5a4a1e}.b-single{background:#1b2230;color:var(--text-2);border:1px dashed var(--border-strong)}.detail{padding:14px 16px 16px;overflow:auto}.back{border:0;background:none;color:var(--text-2);cursor:pointer;padding:6px 0;font-size:13px}.detail .bd{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 10px}.detail h3{margin:0;font-size:20px;line-height:28px}.detail .ttl{color:var(--text-2);margin:2px 0 12px}.kv{display:grid;grid-template-columns:72px 1fr;gap:8px 12px;font-size:13px;margin-bottom:12px}.kv dt{color:var(--text-3)}.kv dd{margin:0}.loss{font-size:26px;font-weight:800;font-family:var(--mono);color:var(--c);line-height:32px}.basis{font-size:12px;color:var(--text-3)}.react{background:var(--surface-2);border-radius:8px;padding:10px 12px;font-size:13px;margin:12px 0}.react .h{color:var(--text-3);font-size:12px;margin-bottom:4px}.summary{color:var(--text-1);font-size:14px;line-height:1.7;margin:0 0 12px}.src h5{margin:0 0 6px;font-size:12px;color:var(--text-3);font-weight:500}.src a{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid var(--border);border-radius:8px;text-decoration:none;margin-bottom:6px;color:var(--text-1);font-size:13px}.src a:hover{border-color:var(--link)}.src a .pub{color:var(--link);font-weight:600;flex:none}.src a .t{color:var(--text-2);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.src .via{font-size:11px;color:var(--warn);flex:none}.nav2{display:flex;gap:8px;margin-top:12px}.nav2 button{flex:1;height:40px;border-radius:8px;border:1px solid var(--border);background:var(--surface);cursor:pointer}.nav2 button:disabled{opacity:.4;cursor:not-allowed}.devnote{border:1px solid #5a4a1e;background:#1f1a0c;color:var(--warn);border-radius:8px;padding:8px 10px;font-size:12px;margin-bottom:12px}.state{position:absolute;inset:0;z-index:8;display:grid;place-items:center;background:#0b0e14b8;text-align:center;padding:24px}.state .box{max-width:340px}.state h3{margin:8px 0 4px;font-size:16px}.state p{margin:0 0 12px;color:var(--text-2);font-size:13px}.state .btn{height:36px;padding:0 16px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface-2);cursor:pointer}.skel{position:absolute;inset:0;z-index:8;background:var(--surface);padding:16px}.skel div{background:linear-gradient(90deg,var(--surface-2),#222a3b,var(--surface-2));background-size:200% 100%;animation:sh 1.2s linear infinite;border-radius:6px}@keyframes sh{to{background-position:-200% 0}}.banner{display:flex;gap:10px;align-items:center;padding:8px 14px;font-size:13px;border-bottom:1px solid var(--border)}.banner.warn{background:#1f1a0c;color:var(--warn)}.banner.off{background:#151a24;color:var(--text-2)}.banner button{margin-left:auto;height:28px;border-radius:6px;border:1px solid currentColor;background:none;color:inherit;cursor:pointer;padding:0 10px}.empty-lane{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--text-3);font-size:12px}.empty-lane button{border:0;background:none;color:var(--link);cursor:pointer;font-size:12px}.scrim{position:fixed;inset:0;background:#00000080;z-index:40}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;max-height:78vh;background:var(--surface);border-top-left-radius:16px;border-top-right-radius:16px;border-top:1px solid var(--border-strong);display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}.sheet .grab{width:36px;height:4px;border-radius:2px;background:var(--border-strong);margin:8px auto 0}.sheet .sx{position:absolute;right:8px;top:6px;width:44px;height:44px;border:0;background:none;color:var(--text-2);font-size:20px;cursor:pointer}.hidden{display:none!important}@media(max-width:1199px){.panel{position:absolute;right:0;top:0;bottom:0;width:min(380px,100%);box-shadow:-12px 0 32px #00000080}.panel .detail{display:none}}@media(max-width:767px){.toolbar{padding:0 8px;gap:5px}.brand h1,.pill.fresh,.sep{display:none}.seg button{height:32px;min-width:36px;padding:0 7px}.chip{height:34px}.toolbar{height:46px}.legend{right:64px;gap:0 8px;font-size:11px}.legend .opt{display:none}.pred-tag{top:42px}.band .bl{font-size:11px}.lane{height:64px}.lane[data-rows="1"]{height:36px}.lane[data-rows="3"]{height:92px}.attr{display:none}}.plot .layer{top:0;bottom:0}.sheet{overscroll-behavior:contain}.sheet .detail{overflow:visible}.sheet .sx{z-index:2;background:var(--surface);border-radius:8px}.sheet .bd{padding-right:38px}.mk:focus-visible .g{transform:scale(1.18)}@media(max-width:767px){.mk{min-width:32px;min-height:32px}.toolbar{min-height:44px}.seg button,.chip{position:relative}.seg button:after,.chip:after{content:"";position:absolute;inset:-4px 0}.sheet .pop .row{min-height:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.sheet:focus{outline:none}@media(max-width:767px){.mk{min-width:44px;min-height:44px}.mk.dev:after{inset:auto;width:28px;height:28px}.cl:after{content:"";position:absolute;inset:-10px -5px}.pop .zoom:after{content:"";position:absolute;inset:-4px 0}.pop .zoom{position:relative}}#assetNotice[hidden]{display:none}.mk.cy .g{width:13px;height:12px;border-radius:0;clip-path:polygon(50% 0,100% 100%,0 100%);box-shadow:none;background:var(--cyc)}.mk.cy[aria-pressed=true] .g{background:#fff}.cl.cy{border-style:dashed}.pop .row .tri{clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:0!important}.item.cy .dotc{border-radius:0;clip-path:polygon(50% 0,100% 100%,0 100%)}.badge.b-cyc{background:color-mix(in srgb,var(--cyc) 22%,var(--surface));color:var(--cyc);border:1px solid color-mix(in srgb,var(--cyc) 50%,transparent)}.chip.ind{font-weight:600;color:var(--text-1)}.chip.ind .fx{font-style:italic;font-family:Georgia,serif;color:var(--link)}.chip.ind .n{min-width:16px;height:16px;border-radius:8px;background:var(--surface-2);color:var(--text-2);font-size:10px;display:inline-grid;place-items:center;padding:0 4px}.chip.ind[aria-expanded=true]{border-color:var(--link)}.ind-menu{position:fixed;z-index:30;width:300px;max-width:calc(100vw - 8px);max-height:calc(100dvh - 60px);overflow:auto;background:#0f1420;border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 16px 40px #0009;padding:6px}.ind-menu[hidden]{display:none}.ind-menu .mg{font-size:11px;color:var(--text-3);padding:8px 8px 2px}.ind-menu .mi{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;text-align:left;padding:7px 8px;border-radius:6px;cursor:pointer;min-height:40px}.ind-menu .mi:hover{background:var(--surface-2)}.ind-menu .mi .x{display:flex;flex-direction:column;min-width:0;flex:1}.ind-menu .mi .x b{font-size:13px;font-weight:600}.ind-menu .mi .x span{font-size:11px;color:var(--text-3)}.ind-menu .ck{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--border-strong);flex:none;display:grid;place-items:center;font-size:11px}.ind-menu .mi[aria-checked=true] .ck{background:var(--link);border-color:var(--link);color:#0b0e14}.ind-menu .mi[aria-checked=true] .ck:after{content:"✓";font-weight:800}.sw{width:12px;height:12px;flex:none;display:inline-block}.sw.sec{background:var(--ev-s);border-radius:50%}.sw.cev{background:var(--cyc);clip-path:polygon(50% 0,100% 100%,0 100%)}.sw.cyc{background:linear-gradient(90deg,var(--up) 50%,var(--down) 50%);border-radius:2px}.sw.halv{width:2px;margin:0 5px;background:var(--btc)}.sw.win{background:repeating-linear-gradient(135deg,#ff7aa8b3 0 3px,#4fd1c5b3 3px 6px);border-radius:2px}.sw.ma200w{height:2px;background:#5cc8f2}.sw.pi{height:4px;background:linear-gradient(180deg,#ff9f43 0 50%,#a3e635 50%)}.sw.pred{height:0;border-top:2px dashed var(--pred)}.halv{position:absolute;top:0;width:0;border-left:1.5px solid color-mix(in srgb,var(--btc) 75%,transparent);pointer-events:none}.halv.proj{border-left-style:dashed}.halv span{position:absolute;top:50px;left:4px;font-size:11px;color:var(--btc);white-space:nowrap;background:#121722cc;padding:0 4px;border-radius:3px}.win{position:absolute;top:0;pointer-events:none}.win.top{background:repeating-linear-gradient(135deg,#ff7aa829 0 5px,#ff7aa80d 5px 10px);border-left:1px solid rgba(255,122,168,.45);border-right:1px solid rgba(255,122,168,.45)}.win.bottom{background:repeating-linear-gradient(45deg,#4fd1c529 0 5px,#4fd1c50d 5px 10px);border-left:1px solid rgba(79,209,197,.45);border-right:1px solid rgba(79,209,197,.45)}.win span{position:absolute;top:72px;left:50%;transform:translate(-50%);font-size:10px;white-space:nowrap;color:var(--text-2)}.win.top span{color:#ff7aa8}.win.bottom span{color:#4fd1c5}
