:root{--bg:#0a1120;--panel:#0f182b;--panel-2:#131e35;--line:#1d2a45;--line-soft:#172338;--fg:#e4eaf4;--muted:#8592aa;--dim:#5d6a82;--accent:#3b82f6;--accent-2:#60a5fa;--up:#22c55e;--down:#ef4444;--warn:#f59e0b;--font-ui:"Be Vietnam Pro",system-ui,-apple-system,"Segoe UI",sans-serif;--font-num:"JetBrains Mono",ui-monospace,Menlo,monospace;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--fg);font:14px/1.5 var(--font-ui);-webkit-font-smoothing:antialiased}body,html{max-width:100%}.app,body,html{overflow-x:clip}a{color:inherit;text-decoration:none}.num{font-family:var(--font-num);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.up{color:var(--up)}.down{color:var(--down)}.muted{color:var(--muted)}.dim{color:var(--dim)}.panel{border:1px solid var(--line);border-radius:12px;min-width:0}.chip,.panel{background:var(--panel)}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}.chip.on{border-color:var(--accent)}.btn,.chip.on{background:var(--accent);color:#fff}.btn{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:8px;padding:9px 16px;font:500 14px var(--font-ui);cursor:pointer}.btn.ghost{background:transparent}.btn.ghost,input,select{border:1px solid var(--line);color:var(--fg)}input,select{background:var(--bg);border-radius:8px;padding:8px 10px;font:500 13.5px var(--font-ui)}input:focus,select:focus{outline:none;border-color:var(--accent)}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}.app{display:grid;grid-template-columns:232px 1fr;grid-template-rows:56px 1fr;grid-template-areas:"brand header" "side content";min-height:100vh}.brand{grid-area:brand;display:flex;align-items:center;gap:10px;padding:0 12px;background:var(--bg);border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:6;overflow:hidden}.brand img{height:30px;width:auto;max-width:100%;object-fit:contain}.brand-mark{width:30px;height:30px;border-radius:8px;flex:none;background:linear-gradient(135deg,var(--up),var(--accent));display:grid;place-items:center;color:#fff;font-weight:800;font-size:15px}.brand-name{display:flex;flex-direction:column;line-height:1.05}.brand-name b{font-size:14.5px;font-weight:800;letter-spacing:.01em}.brand-name span{font-size:9.5px;letter-spacing:.22em;color:var(--muted)}.topbar{grid-area:header;gap:16px;padding:0 18px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 72%,var(--bg));position:-webkit-sticky;position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.topbar,.topsearch{display:flex;align-items:center}.topsearch{flex:1 1;max-width:500px;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:8px 12px;color:var(--muted)}.topsearch input{flex:1 1;background:transparent;border:0;padding:0;color:var(--fg);font-size:13.5px}.topsearch input:focus{outline:none}.topsearch kbd{font:11px var(--font-num);border:1px solid var(--line);border-radius:5px;padding:1px 6px;color:var(--dim)}.topnav{display:flex;align-items:center;gap:4px;margin-left:auto}.topnav a{padding:7px 11px;border-radius:7px;font-size:13px;font-weight:500;color:var(--muted);white-space:nowrap}.topnav a:hover{color:var(--fg);background:var(--panel-2)}.topnav a.on{color:var(--fg);font-weight:600}.iconbtn{position:relative;width:36px;height:36px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;font-size:15px}.iconbtn:hover{color:var(--fg);background:var(--panel-2)}.iconbtn .dot{position:absolute;top:-5px;right:-5px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--down);font:700 10px var(--font-num);place-items:center;border:2px solid var(--panel)}.avatar,.iconbtn .dot{color:#fff;display:grid}.avatar{width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,#7c6cf0,#a855f7);place-items:center;font-weight:700;font-size:14px}.side{grid-area:side;background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:1px;padding:12px 10px;position:-webkit-sticky;position:sticky;top:56px;height:calc(100vh - 56px);overflow-y:auto}.navi,.side{display:flex}.navi{align-items:center;gap:11px;padding:9px 11px;border-radius:8px;color:var(--muted);font-size:13.5px;font-weight:500}.navi:hover{background:var(--panel-2);color:var(--fg)}.navi.on{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent-2)}.navi.soon{opacity:.45;cursor:default}.navi .ico{width:18px;display:inline-flex;align-items:center;justify-content:center;opacity:.85}.navi .cnt{margin-left:auto;min-width:20px;height:18px;padding:0 6px;border-radius:6px;background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--accent-2);font:600 11px var(--font-num);display:grid;place-items:center}.navi .cnt.warn{background:color-mix(in srgb,var(--warn) 22%,transparent);color:var(--warn)}.navlabel{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding:16px 11px 7px}.watch{display:flex;justify-content:space-between;align-items:center;padding:6px 11px;font-size:12.5px;border-radius:7px}.watch:hover{background:var(--panel-2)}.main{min-width:0;display:flex;flex-direction:column}.content{grid-area:content;padding:20px 22px;min-width:0}.pilot-badge{font-size:11px;letter-spacing:.06em;color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);padding:3px 9px;border-radius:999px}@media (max-width:920px){.topnav{display:none}}.mtopbar{display:none}@media (max-width:820px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr;grid-template-areas:"mtop" "content"}.brand,.side,.topbar{display:none}.content{padding:14px 14px calc(72px + env(safe-area-inset-bottom))}.mtopbar{grid-area:mtop;display:block;position:-webkit-sticky;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--panel) 92%,#000);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mtop-row{gap:8px;height:54px;padding:0 10px 0 12px}.mt-brand,.mtop-row{display:flex;align-items:center}.mt-brand img{height:26px;width:auto}.mt-back{background:none;border:0;color:var(--fg);line-height:1;cursor:pointer;padding:0;width:30px;margin-left:-6px;display:inline-flex;align-items:center;justify-content:center}.mt-title{font-size:16.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.mt-acts{display:flex;align-items:center;gap:4px;margin-left:auto;min-width:0}.mt-acts .btn{padding:7px 11px;font-size:12.5px;max-width:128px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mt-ic{position:relative;width:38px;height:38px;display:grid;place-items:center;background:none;border:0;color:var(--muted);font-size:18px;cursor:pointer}.mt-ic:active{color:var(--fg)}.mt-ic .dot{position:absolute;top:3px;right:2px;min-width:15px;height:15px;padding:0 3px;border-radius:999px;background:var(--down);color:#fff;font:700 9px var(--font-num);display:grid;place-items:center;border:1.5px solid var(--panel)}.mt-search{display:flex;align-items:center;gap:8px;padding:0 12px 10px}.mt-search input{flex:1 1;min-width:0;background:var(--bg)}.mt-search button{flex:none;background:var(--accent);color:#fff;border:0;border-radius:8px;padding:9px 16px;font:500 13.5px var(--font-ui);cursor:pointer}}.only-mobile{display:none}@media (max-width:820px){.only-desktop{display:none!important}.only-mobile{display:block}}.tab-scrim,.tab-sheet,.tabbar{display:none}@media (max-width:820px){.tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:60;background:color-mix(in srgb,var(--panel) 95%,#000);border-top:1px solid var(--line);padding:7px 4px calc(7px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tabbar a,.tabbar button{position:relative;display:flex;flex-direction:column;gap:3px;font:500 10px var(--font-ui);color:var(--muted);background:none;border:0;cursor:pointer;padding:2px 0}.tabbar .ic,.tabbar a,.tabbar button{align-items:center;justify-content:center}.tabbar .ic{line-height:1;display:inline-flex}.tabbar .on{color:var(--accent-2)}.tabbar .tb-dot{position:absolute;top:-1px;right:22%;min-width:15px;height:15px;padding:0 4px;border-radius:999px;background:var(--down);color:#fff;font:700 9px var(--font-num);display:grid;place-items:center;border:1.5px solid var(--panel)}.tab-scrim{inset:0;z-index:70;background:rgba(3,8,18,.55)}.tab-scrim,.tab-sheet{display:block;position:fixed}.tab-sheet{left:0;right:0;bottom:0;z-index:71;background:var(--panel);border-top-left-radius:16px;border-top-right-radius:16px;border-top:1px solid var(--line);padding:8px 14px calc(16px + env(safe-area-inset-bottom));max-height:78vh;overflow-y:auto}.tab-sheet .grab{width:38px;height:4px;border-radius:3px;background:var(--line);margin:6px auto 12px}.sheet-nav{display:flex;align-items:center;gap:12px;padding:12px 8px;border-radius:10px;color:var(--fg);font-size:15px}.sheet-nav:active,.sheet-nav:hover{background:var(--panel-2)}.sheet-nav .ic{width:22px;display:inline-flex;align-items:center;justify-content:center;opacity:.85}}.hoverable:hover{background:var(--panel-2)}@media (max-width:820px){.cmp-grid,.opp-grid{grid-template-columns:1fr!important}}.grid-strip{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:10px;gap:10px;margin-bottom:14px}.idx{padding:10px 12px}.idx .lab{font-size:11px;color:var(--muted);margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.idx .val{font:700 19px var(--font-num);line-height:1}.idx .sub{font-size:10px;color:var(--dim);margin-top:3px}.idx .rowb{display:flex;align-items:center;justify-content:space-between;gap:8px}.idx .chg{font:600 12px var(--font-num)}.ptitle{font-size:12.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--fg)}.tabs{display:inline-flex;gap:2px;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:2px}.tabs button{background:transparent;border:0;color:var(--muted);font:500 12px var(--font-ui);padding:5px 10px;border-radius:6px;cursor:pointer}.tabs button.on{background:var(--accent);color:#fff}.seg{display:inline-flex;gap:2px;flex-wrap:wrap}.seg button{background:transparent;border:0;color:var(--muted);font:500 13px var(--font-ui);padding:6px 11px;border-radius:7px;cursor:pointer}.seg button.on{background:var(--panel-2);color:var(--fg);font-weight:600}.rate{font:700 10.5px var(--font-ui);padding:3px 8px;border-radius:6px;letter-spacing:.02em;display:inline-block}.rate.buy{background:color-mix(in srgb,var(--up) 18%,transparent);color:var(--up)}.rate.strong{background:var(--up);color:#052310}.rate.hold{background:var(--panel-2);color:var(--muted)}.rate.risk{background:color-mix(in srgb,var(--down) 18%,transparent);color:var(--down)}.dt{width:100%;border-collapse:collapse;font-size:13px}.dt th{text-align:left;font-weight:500;color:var(--muted);padding:9px 10px;border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;background:var(--panel);z-index:1}.dt td,.dt th{white-space:nowrap}.dt td{padding:8px 10px;border-bottom:1px solid var(--line-soft)}.dt tbody tr{cursor:pointer}.dt tbody tr:hover{background:var(--panel-2)}.dt tbody tr.sel{background:color-mix(in srgb,var(--accent) 12%,transparent)}.liqbars{display:inline-flex;gap:2px;align-items:flex-end;height:15px}.liqbars i{width:3px;border-radius:1px;display:block}.kv{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid var(--line-soft);font-size:13px}.kv .k{color:var(--muted)}.board-main{grid-template-columns:minmax(0,1.52fr) 336px;grid-gap:14px;margin-bottom:14px}.board-main,.panels3{display:grid;gap:14px}.panels3{grid-template-columns:repeat(3,1fr);grid-gap:14px}.scrolly{overflow:auto;min-width:0}@media (max-width:1180px){.grid-strip{grid-template-columns:repeat(4,1fr)!important}}@media (max-width:1100px){.board-main,.panels3{grid-template-columns:1fr}}@media (max-width:820px){.grid-strip{grid-template-columns:repeat(2,1fr)!important}}.mapwrap{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:14px;gap:14px}.filterbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.panels4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px}.leaflet-container{background:#0a1120;font-family:var(--font-ui)}.leaflet-tooltip{background:var(--panel);border:1px solid var(--line);color:var(--fg);box-shadow:0 2px 10px rgba(0,0,0,.4);font-size:12px}.leaflet-tooltip:before{display:none}.leaflet-tooltip.surr-tip{font-size:10.5px;padding:2px 7px;font-weight:500}.leaflet-bar a{background:var(--panel);color:var(--fg);border-color:var(--line)}.leaflet-bar a:hover{background:var(--panel-2)}@media (max-width:1100px){.mapwrap{grid-template-columns:1fr}.panels4{grid-template-columns:repeat(2,1fr)}}.map-metrics-m{display:none}@media (max-width:820px){.panels4{grid-template-columns:1fr}.mapbox{height:420px!important}.map-legend{left:8px!important;right:8px;bottom:8px}.map-metrics-m{position:absolute;left:8px;right:8px;top:8px;z-index:500;display:flex;gap:6px;overflow-x:auto;padding:7px;background:color-mix(in srgb,var(--panel) 93%,#000);border:1px solid var(--line);border-radius:10px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.map-metrics-m::-webkit-scrollbar{display:none}.map-metrics-m button{flex:none;background:var(--bg);border:1px solid var(--line);color:var(--muted);font:500 12px var(--font-ui);padding:6px 11px;border-radius:999px;cursor:pointer;white-space:nowrap}.map-metrics-m button.on{background:var(--accent);border-color:var(--accent);color:#fff}}.statcards{display:grid;grid-template-columns:repeat(6,1fr);grid-gap:10px;gap:10px;margin-bottom:14px}.statcards .panel{padding:11px 13px}.alert-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);grid-gap:14px;gap:14px;align-items:start}.alert-item{display:flex;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line-soft);cursor:pointer}.alert-item:hover{background:var(--panel-2)}.alert-item.sel{background:color-mix(in srgb,var(--accent) 10%,transparent);box-shadow:inset 3px 0 0 var(--accent)}.badge2{font:600 10.5px var(--font-ui);padding:2px 8px;border-radius:6px;display:inline-block}.grouphd{font-size:12px;font-weight:600;color:var(--muted);padding:12px 14px 6px}.detail-stat{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:10px 12px}.info-grid{display:grid;grid-template-columns:auto 1fr;grid-gap:7px 10px;gap:7px 10px;font-size:12.5px}.info-grid .k{color:var(--muted)}@media (max-width:1100px){.statcards{grid-template-columns:repeat(3,1fr)!important}.alert-grid{grid-template-columns:1fr}}@media (max-width:820px){.statcards{grid-template-columns:repeat(2,1fr)!important}.alert-item{gap:10px;padding:11px 12px}.alert-item>input[type=checkbox]{display:none}.alert-detail{position:static!important}}.cmp-grid2{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-gap:14px;gap:14px;align-items:start}@media (max-width:1000px){.cmp-grid2{grid-template-columns:1fr}.cmp-cards{grid-template-columns:repeat(2,1fr)!important}}.wl-bottom{display:grid;grid-template-columns:1.1fr 1.3fr 1fr;grid-gap:14px;gap:14px;align-items:start}@media (max-width:1100px){.wl-bottom{grid-template-columns:1fr}}.opp-grid2{display:grid;grid-template-columns:minmax(0,1fr) 320px;grid-gap:14px;gap:14px;align-items:start}@media (max-width:1100px){.opp-grid2{grid-template-columns:1fr}}.prof-head{display:grid;grid-template-columns:210px minmax(0,1fr) 300px;grid-gap:14px;gap:14px;margin-bottom:14px;align-items:stretch}.prof-sub{display:grid;grid-template-columns:1fr auto;grid-gap:6px 14px;gap:6px 14px;align-items:center}.subscore{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:4px 0}.prof-2{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-gap:14px;gap:14px;margin-bottom:14px;align-items:start}@media (max-width:1100px){.prof-2,.prof-head{grid-template-columns:1fr}}.opp-frow2{display:grid;grid-template-columns:1.5fr 1fr;grid-gap:20px;gap:20px}.opp-frow4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:20px;gap:20px}@media (max-width:920px){.opp-frow4{grid-template-columns:repeat(2,1fr)}}@media (max-width:680px){.opp-frow2,.opp-frow4{grid-template-columns:1fr;gap:12px}}.dt-wide{min-width:720px}.opp-cards,.pf-cards,.subdiv-cards,.wl-cards{display:none}@media (max-width:820px){.opp-cards,.pf-cards,.subdiv-cards,.wl-cards{display:grid;grid-gap:10px;gap:10px}.subdiv-cards{padding:10px}.opp-card{padding:12px;display:grid;grid-gap:10px;gap:10px;color:var(--fg)}.opp-card:active{background:var(--panel-2)}.oc-head{display:flex;align-items:center;gap:10px}.oc-ico{width:34px;height:34px;border-radius:7px;flex:none;background:linear-gradient(135deg,var(--accent),var(--panel-2));display:grid;place-items:center;font-size:15px}.oc-name{min-width:0;flex:1 1}.oc-title{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.oc-head .rate{flex:none}.oc-stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px 8px;gap:10px 8px;border-top:1px solid var(--line-soft);padding-top:10px}.oc-k{font-size:10px;color:var(--muted);margin-bottom:2px}}.cmp-mcards{display:none}@media (max-width:820px){.cmp-mcards{display:grid;grid-gap:12px;gap:12px}.cmp-chartgrid{grid-template-columns:repeat(2,1fr)!important}}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));grid-gap:12px;gap:12px}@media print{.brand,.mtopbar,.no-print,.side,.tabbar,.topnav{display:none!important}.app{display:block!important;padding:0!important}.rpt{max-width:none;margin:0}.rpt .panel{page-break-inside:avoid;break-inside:avoid}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}}@page{margin:14mm}