:root{color-scheme:dark;--bg-0: #0a0e14;--bg-1: #11161f;--bg-2: #161d28;--bg-3: #1d2632;--line: #2a3340;--ink: #e6ebf2;--ink-dim: #8a93a3;--ink-faint: #5d6473;--accent: #ffd166;--red-deep: #8b0d12;--green-deep: #0a5e26}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg-0);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-feature-settings:"tnum" 1,"kern" 1;-webkit-font-smoothing:antialiased}body{overflow-x:hidden;min-height:100vh}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1000;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.04 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");opacity:.5;mix-blend-mode:overlay}.chart-section{height:100vh;padding:0;display:grid;grid-template-rows:44px 36px 1fr;gap:0;overflow:hidden}.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:0 16px;background:var(--bg-1);border-bottom:1px solid var(--line)}.topbar .logo{display:flex;align-items:center;gap:10px;justify-self:start;color:var(--ink);font-weight:600;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;white-space:nowrap}.topbar .logo .dot{width:10px;height:10px;border-radius:1px;background:linear-gradient(135deg,#f5222d,#f5222d 50%,#fff 50%,#1e7e34)}.topbar-center{display:flex;align-items:center;gap:10px;justify-self:center}.topbar-right{display:flex;align-items:center;gap:10px;justify-self:end}.topbar-divider{width:1px;height:14px;background:var(--line)}#auth-area{display:flex;align-items:center}.login-btn{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink);background:var(--bg-2);border:1px solid var(--line);padding:5px 14px;border-radius:3px;cursor:pointer;font-family:inherit;transition:background .15s,border-color .15s;display:inline-flex;align-items:center;gap:6px}.login-btn svg{flex-shrink:0}.apikey-btn svg{color:var(--accent)}.login-btn:hover{background:var(--bg-3);border-color:var(--accent)}.search{position:relative}.search input{width:160px;padding:7px 12px 7px 30px;background:var(--bg-2);border:1px solid var(--line);border-radius:4px;color:var(--ink);font-size:12px;font-family:inherit;outline:none;transition:border-color .15s,background .15s,width .15s}.search input:focus{border-color:var(--accent);background:var(--bg-3);width:200px}.search:before{content:"⌕";position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-faint);font-size:14px;pointer-events:none}.search input:focus+.kbd,.search input:not(:placeholder-shown)+.kbd{display:none}.kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:10px;color:var(--ink-faint);padding:1px 5px;border:1px solid var(--line);border-radius:2px;pointer-events:none}.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:320px;overflow-y:auto;background:var(--bg-2);border:1px solid var(--line);border-radius:4px;box-shadow:0 12px 32px #00000080;z-index:100;display:none}.search-results.show{display:block}.search-results .item{padding:8px 12px;font-size:12px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04);display:flex;justify-content:space-between;gap:12px}.search-results .item:last-child{border-bottom:0}.search-results .item:hover,.search-results .item.focused{background:var(--bg-3)}.search-results .item .name{color:var(--ink)}.search-results .item .ind{color:var(--ink-faint);font-size:11px}.search-results .empty{padding:12px;color:var(--ink-faint);font-size:12px;text-align:center}.sub-toolbar{display:flex;align-items:center;justify-content:center;gap:16px;padding:0 16px;background:var(--bg-1);border-bottom:1px solid var(--line)}.market-stats{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--ink-dim);letter-spacing:.5px;font-variant-numeric:tabular-nums}.market-stats strong{color:var(--ink);font-weight:600}.market-stats strong.up{color:#f5222d}.market-stats strong.down{color:#1e7e34}.market-stats .sep{color:var(--ink-faint);margin:0 -4px}.market-stats .stat-hint{color:var(--ink-faint);white-space:nowrap}.chart-stage{position:relative;height:100%;overflow-y:auto;overflow-x:hidden;background:#101014;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--bg-3) transparent}.chart-stage::-webkit-scrollbar{width:8px;height:8px}.chart-stage::-webkit-scrollbar-thumb{background:var(--bg-3);border-radius:4px}.chart-stage::-webkit-scrollbar-thumb:hover{background:var(--line)}.chart-stage::-webkit-scrollbar-track{background:transparent}#chart{width:100%;height:140vh;touch-action:pan-y}.chart-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;background:#101014}.chart-loading.done{opacity:0;transition:opacity .3s;pointer-events:none}.cl-mosaic{position:absolute;top:0;left:0;right:0;display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:54px;gap:2px;padding:2px;-webkit-mask-image:linear-gradient(#000 30%,transparent 92%);mask-image:linear-gradient(#000 30%,transparent 92%)}.cl-mosaic i{background:#e6ebf20b;border-radius:2px;animation:cl-pulse 1.8s ease-in-out infinite alternate}.cl-mosaic i:nth-child(2n){background:#e6ebf211}.cl-mosaic i:nth-child(3n){background:#e6ebf208;animation-delay:.3s}.cl-mosaic i:nth-child(4n){animation-delay:.6s}@keyframes cl-pulse{0%{opacity:.45}to{opacity:1}}.cl-tip{display:flex;align-items:center;justify-content:center;gap:10px;font-size:12px;letter-spacing:.5px;color:var(--ink-dim)}.chart-loading .cl-tip{position:absolute;top:calc(50vh - 40px);left:0;right:0}.cl-spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:cl-spin .8s linear infinite}@keyframes cl-spin{to{transform:rotate(360deg)}}.stage-loading{position:absolute;left:0;right:0;z-index:4;display:flex;align-items:center;justify-content:center;background:#101014b8}.load-fail-toast{position:fixed;top:52px;left:50%;transform:translate(-50%) translateY(-8px);background:var(--bg-3);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:8px 16px;font-size:12px;letter-spacing:.5px;box-shadow:0 4px 16px #0000002e;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:300}.load-fail-toast.show{opacity:1;transform:translate(-50%) translateY(0)}@media (prefers-reduced-motion: reduce){.cl-mosaic i,.cl-spin{animation:none}}.site-footer{padding:20px 24px;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;font-size:11px;color:var(--ink-faint);letter-spacing:.3px;background:var(--bg-0);border-top:1px solid var(--line)}.site-footer a{color:var(--ink-dim);text-decoration:none;transition:color .15s}.site-footer a:hover{color:var(--accent)}.site-footer .sep{color:var(--line)}.chart-stage[data-view=sectors]{overflow-y:hidden}.chart-stage[data-view=sectors] #chart{height:100%}@media (min-width: 768px) and (max-width: 1080px){.topbar{gap:10px;padding:0 12px}.topbar-center{gap:8px}.search input{width:140px}.search input:focus{width:170px}}@media (max-width: 767px){.chart-section{grid-template-rows:auto auto 1fr}.topbar{display:flex;flex-wrap:wrap;padding:8px 12px;gap:8px;height:auto;align-items:center}.topbar-center{order:3;flex:1 1 100%;gap:8px}.topbar-right{margin-left:auto;gap:6px}.topbar .logo{font-size:10px;gap:8px;letter-spacing:1px}.login-btn{padding:4px 10px;font-size:10px}.topbar-center .search{flex:1 1 auto;min-width:0}.topbar-center .date-nav{flex:0 0 auto}.topbar-center .search input,.topbar-center .search input:focus{width:100%}.market-stats{gap:6px;font-size:10px;flex-wrap:wrap;justify-content:center}.chart-stage{padding-bottom:72px}@media (max-width: 359px){.topbar .logo{font-size:0;gap:0}}}.date-nav{display:flex;align-items:center;gap:0;background:var(--bg-2);border:1px solid var(--line);border-radius:4px;height:26px;overflow:hidden}.date-nav-btn{background:transparent;border:0;color:var(--ink-dim);width:22px;height:100%;font-size:14px;line-height:1;cursor:pointer;font-family:inherit;transition:background .15s,color .15s}.date-nav-btn:hover:not(:disabled){background:var(--bg-3);color:var(--accent)}.date-nav-btn:disabled{opacity:.3;cursor:not-allowed}.date-nav-cur{font-size:12px;color:var(--ink);padding:0 8px;min-width:128px;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.5px;border-left:1px solid var(--line);border-right:1px solid var(--line);height:100%;display:flex;align-items:center;justify-content:center}.date-nav-cur .close-tag{font-style:normal;font-size:10px;color:var(--ink-dim);background:var(--bg-3);border-radius:3px;padding:1px 4px;margin-left:4px;line-height:1.4;white-space:nowrap}.date-nav-cur .close-tag.today{color:var(--accent)}@media (max-width: 767px){.date-nav-cur{min-width:100px;font-size:11px;padding:0 6px}.date-nav-cur .close-tag{font-size:9px;padding:0 3px;margin-left:3px}}.date-limit-toast{position:fixed;top:52px;left:50%;transform:translate(-50%) translateY(-8px);background:var(--bg-3);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:8px 16px;font-size:12px;letter-spacing:.5px;box-shadow:0 4px 16px #0000002e;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;z-index:300}.date-limit-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.view-toggle{display:flex;align-items:center}.vt-btn{display:flex;align-items:center;gap:5px;height:26px;padding:0 8px;background:var(--bg-2);border:1px solid var(--line);border-radius:4px;color:var(--ink-dim);font-size:12px;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.vt-btn:hover{background:var(--bg-3);color:var(--ink);border-color:var(--accent)}.vt-btn.active{color:var(--ink);border-color:var(--accent);background:var(--bg-3)}.vt-btn.active svg{color:var(--accent)}.vt-btn svg{color:var(--ink-faint);flex-shrink:0}@media (min-width: 768px) and (max-width: 1080px){.vt-btn{padding:0 6px;gap:4px}}@media (max-width: 767px){.view-toggle{flex:0 0 auto}.vt-btn{padding:0 7px;gap:0}.vt-label{display:none}}.paywall-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.paywall-modal{position:relative;background:var(--bg-1);border:1px solid var(--line);border-radius:8px;padding:36px 32px 28px;max-width:520px;width:90%;box-shadow:0 0 0 8px var(--bg-0),0 30px 80px #0009;color:var(--ink)}.paywall-modal h2{margin:0 0 8px;font-size:22px;letter-spacing:1px}.paywall-lede{color:var(--ink-dim);font-size:13px;margin:0 0 20px}.paywall-plans{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.paywall-plan{background:var(--bg-2);border:1px solid var(--line);border-radius:6px;padding:14px 12px;cursor:pointer;font-family:inherit;color:var(--ink);text-align:center;transition:border-color .15s,transform .1s}.paywall-plan:hover{border-color:var(--accent);transform:translateY(-1px)}.paywall-plan .plan-name{font-size:12px;color:var(--ink-dim);letter-spacing:1px}.paywall-plan .plan-price{font-size:22px;font-weight:600;margin:6px 0;color:var(--accent)}.paywall-plan .plan-action{font-size:11px;color:var(--ink-faint)}.paywall-qr{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:16px;background:var(--bg-2);border:1px solid var(--line);border-radius:6px;font-size:12px}.qr-placeholder{text-align:center;padding:8px;background:var(--bg-0);border:1px solid var(--line);border-radius:4px}.qr-placeholder .qr-img{font-size:36px;margin:8px 0}.qr-placeholder .qr-label{font-size:10px;letter-spacing:1px;color:var(--accent)}.qr-placeholder .qr-hint{font-size:9px;color:var(--ink-faint);line-height:1.4}.qr-instruction p{margin:4px 0;color:var(--ink-dim)}.qr-instruction .muted{color:var(--ink-faint);font-size:11px;margin-top:8px}.paywall-close{position:absolute;top:8px;right:12px;background:transparent;border:0;color:var(--ink-dim);font-size:28px;cursor:pointer;line-height:1;padding:4px 8px;font-family:inherit}.paywall-close:hover{color:var(--ink)}.paywall-success{text-align:center}.paywall-success h3{color:var(--accent);margin:0 0 8px}.paywall-success .muted{color:var(--ink-faint);font-size:11px;margin:8px 0 12px}.paywall-reload{background:var(--accent);color:#000;border:0;border-radius:4px;padding:8px 16px;font-weight:600;cursor:pointer;font-family:inherit}.fab{position:fixed;right:24px;bottom:24px;width:56px;height:56px;padding:0;border:0;border-radius:50%;background:var(--accent);cursor:pointer;font-family:inherit;line-height:1;filter:drop-shadow(0 4px 10px rgba(0,0,0,.5)) drop-shadow(0 0 6px rgba(255,209,102,.25));transition:transform .2s ease,filter .2s ease;z-index:1100;user-select:none;-webkit-user-select:none;touch-action:none}.fab img{width:calc(100% - 6px);height:calc(100% - 6px);margin:3px;border-radius:50%;pointer-events:none}.fab:after{content:"";position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;border-radius:50%}.fab.fab-dragged{right:auto;bottom:auto}.fab:hover{transform:scale(1.06);filter:drop-shadow(0 6px 14px rgba(0,0,0,.5)) drop-shadow(0 0 12px rgba(255,209,102,.5))}.fab:active{transform:scale(.95)}.fab.fab-dragging{transition:none;cursor:grabbing}.fab.fab-dragging:hover{transform:scale(1.06)}.export-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px}.export-modal{background:var(--bg-1);border:1px solid var(--line);border-radius:8px;box-shadow:0 20px 60px #0009;max-width:100%;height:100%;max-height:100%;display:flex;flex-direction:column;overflow:hidden}.export-modal-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line)}.export-modal-title{font-size:13px;font-weight:600;letter-spacing:.5px;color:var(--ink)}.export-modal-close{background:transparent;border:0;color:var(--ink-faint);cursor:pointer;font-size:18px;line-height:1;padding:4px 8px;border-radius:3px;font-family:inherit}.export-modal-close:hover{background:var(--bg-3);color:var(--ink)}.export-preview{flex:1;min-height:0;overflow:auto;padding:20px;background:var(--bg-0);display:flex}.export-preview img{max-width:100%;max-height:100%;object-fit:contain;margin:auto;border:1px solid var(--line);border-radius:4px}.export-loading{color:var(--ink-dim);font-size:13px;display:flex;align-items:center;gap:10px}.export-loading:before{content:"";width:14px;height:14px;border:2px solid var(--ink-faint);border-top-color:var(--accent);border-radius:50%;animation:export-spin .8s linear infinite}@keyframes export-spin{to{transform:rotate(360deg)}}.export-modal-footer{padding:14px 20px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:center;gap:16px}.export-download-btn.login-gate{background:transparent;color:var(--accent);border:1px solid rgba(255,209,102,.5)}.export-download-btn.login-gate:hover{background:#ffd16614}.export-download-btn{background:var(--accent);color:var(--bg-0);border:0;padding:8px 20px;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;border-radius:4px;cursor:pointer;font-family:inherit;transition:opacity .15s}.export-download-btn:hover{opacity:.85}.export-download-btn:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 767px){.export-overlay{padding:0}.export-modal{border-radius:0;width:100%;height:100%;max-width:100%;max-height:100%}.export-modal-footer{flex-wrap:wrap;gap:10px}.export-download-btn{margin-left:0;flex:1}.fab{width:60px;height:60px;right:20px;bottom:20px}}.apikeys-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;z-index:2100;display:flex;align-items:center;justify-content:center;padding:24px}.apikeys-modal{background:var(--bg-1);border:1px solid var(--line);border-radius:8px;box-shadow:0 20px 60px #0009;width:560px;max-width:100%;max-height:90vh;overflow:auto;display:flex;flex-direction:column}.apikeys-header{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--line)}.apikeys-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:.5px;color:var(--ink)}.apikeys-title svg{color:var(--accent);flex-shrink:0}.apikeys-close{background:transparent;border:0;color:var(--ink-faint);cursor:pointer;font-size:18px;line-height:1;padding:4px 8px;border-radius:3px;font-family:inherit}.apikeys-close:hover{background:var(--bg-3);color:var(--ink)}.apikeys-body{padding:16px 20px 20px;display:flex;flex-direction:column;gap:14px}.apikeys-intro{margin:0;font-size:13px;line-height:1.8;color:var(--ink)}.apikeys-content{display:flex;flex-direction:column;gap:10px}.apikeys-empty{color:var(--ink-dim);font-size:13px;padding:10px 0;text-align:center}.apikeys-loading{color:var(--ink-dim);font-size:13px}.apikeys-error{color:#e66;font-size:13px}.apikey-list{display:flex;flex-direction:column;gap:6px}.apikey-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--bg-2);border:1px solid var(--line);border-radius:4px}.apikey-row.revoked{opacity:.55}.apikey-main{display:flex;flex-direction:column;gap:4px;min-width:0}.apikey-prefix{font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:12px;color:var(--ink)}.apikey-meta{font-size:11px;color:var(--ink-faint)}.apikey-dead{font-size:11px;color:var(--ink-faint);white-space:nowrap}.apikey-revoke{background:transparent;border:1px solid var(--line);color:var(--ink-dim);font-size:11px;padding:5px 10px;border-radius:3px;cursor:pointer;font-family:inherit;white-space:nowrap}.apikey-revoke:hover{color:var(--ink);border-color:var(--ink-faint)}.apikey-revoke.armed{color:#ff6b6b;border-color:#ff6b6b}.apikey-revoke:disabled{opacity:.5;cursor:not-allowed}.apikey-newtoken{padding:12px;border:1px solid rgba(255,209,102,.4);background:#ffd1660f;border-radius:4px;display:flex;flex-direction:column;gap:8px}.apikey-warn{font-size:12px;color:var(--accent)}.apikey-plaintext{font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:11px;color:var(--ink);word-break:break-all}.apikeys-copy-token{align-self:flex-start;background:var(--accent);color:var(--bg-0);border:0;padding:6px 14px;font-size:12px;font-weight:600;border-radius:3px;cursor:pointer;font-family:inherit}.apikey-token-hint{font-size:11px;color:var(--ink-faint);line-height:1.6}.apikey-token-hint code{font-family:SF Mono,Cascadia Code,Consolas,monospace;color:var(--ink-dim)}.apikeys-primary{align-self:flex-start;background:var(--accent);color:var(--bg-0);border:0;padding:8px 20px;font-size:13px;font-weight:600;letter-spacing:1px;border-radius:4px;cursor:pointer;font-family:inherit;transition:opacity .15s}.apikeys-primary:hover{opacity:.85}.apikeys-primary:disabled{opacity:.5;cursor:not-allowed}.apikeys-step{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:10px}.apikeys-step-title{font-size:12px;font-weight:600;color:var(--ink);letter-spacing:.5px}.apikeys-step-sub{font-weight:400;font-size:11px;color:var(--ink-faint);margin-left:6px}.apikeys-cmd{margin:0;background:var(--bg-0);border:1px solid var(--line);border-radius:4px;padding:10px 12px;font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:11px;color:var(--ink-dim);white-space:pre-wrap;word-break:break-all}.apikeys-copy-prompt{align-self:flex-start;background:var(--accent);color:var(--bg-0);border:0;padding:8px 20px;font-size:13px;font-weight:600;letter-spacing:1px;border-radius:4px;cursor:pointer;font-family:inherit;transition:opacity .15s}.apikeys-copy-prompt:hover{opacity:.85}@media (max-width: 767px){.apikeys-overlay{padding:0}.apikeys-modal{width:100%;height:100%;max-height:100%;border-radius:0}}
