@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2)format("woff2"),url(./barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2)format("woff2"),url(./barlow-condensed-latin-ext-500-normal-B1RE8WP7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-condensed-latin-500-normal-BgYH2mbd.woff2)format("woff2"),url(./barlow-condensed-latin-500-normal-HIEiP5Ov.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2)format("woff2"),url(./barlow-condensed-vietnamese-600-normal-CNlPk46_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2"),url(./barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(./barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#141517;--stage:#1b1c1e;--panel:#1e1f22;--panel-2:#232428;--line:#2c2e33;--line-2:#37393f;--text:#e9eaec;--text-2:#b9bcc2;--text-3:#858990;--text-4:#5f636a;--accent:#3d7be0;--num:"Barlow Condensed", "DIN Alternate", "Bahnschrift", "Arial Narrow", sans-serif;--sans:-apple-system, "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", system-ui, sans-serif;--fs:clamp(12px, .7vw, 15px);--side-w:clamp(300px, 18.6vw, 400px);--gap:8px;--ease:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--sans);font-size:var(--fs);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}button,textarea{font:inherit;color:inherit}#app{grid-template-columns:1fr var(--side-w);gap:var(--gap);height:100vh;padding:var(--gap);display:grid}#stage{background:var(--stage);border-radius:6px;min-width:0;position:relative;overflow:hidden}#gl-host{z-index:0;isolation:isolate;transition:opacity .26s;position:absolute;inset:0}#gl-host.switching{opacity:0}#gl-host .gl,#gl-host .labels,#gl-host .deck-host{position:absolute;inset:0;width:100%!important;height:100%!important}#gl-host .labels{pointer-events:auto;touch-action:none}#gl-host .labels>*{pointer-events:none}.loading{color:var(--text-3);opacity:0;pointer-events:none;font-size:.82em;transition:opacity .2s;position:absolute;top:45%;left:50%;transform:translate(-50%)}#gl-host.switching+.loading{opacity:1;transition-delay:.6s}.vignette{pointer-events:none;background:radial-gradient(120% 90% at 50% 45%,#0000 55%,#0a0a0c8c 100%);position:absolute;inset:0}.stage-head{pointer-events:none;position:absolute;top:1.6em;left:1.7em}.stage-head h1{letter-spacing:.01em;margin:0;font-size:1.42em;font-weight:600}.stage-head p{color:var(--text-3);margin:.5em 0 0;font-size:.78em}.switch{border:1px solid var(--line-2);pointer-events:auto;background:#1b1c1fdb;border-radius:6px;flex-wrap:wrap;align-items:center;gap:2px;width:max-content;max-width:100%;margin-top:1em;padding:3px;display:flex}.switch:empty{display:none}.switch .lab{color:var(--text-3);padding:0 .7em 0 .6em;font-size:.8em}.switch button{color:var(--text-2);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:0;border-radius:4px;padding:.55em 1em;font-size:.86em}.switch button:hover{color:var(--text);background:#2a2c31}.switch button.on{color:#fff;background:#3361b8}.toc{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto;background:#1b1c1fd6;border:1px solid #ffffff0f;border-radius:6px;width:13.5em;margin-top:.8em}:lang(en) .toc{width:17em}.toc-head{width:100%;color:var(--text);cursor:pointer;background:0 0;border:0;align-items:center;gap:.6em;padding:.75em .9em;font-size:.86em;font-weight:600;display:flex}.toc-head .cnt{color:var(--text-3);font-weight:400}.toc-head .chev{border-right:1.5px solid var(--text-3);border-bottom:1.5px solid var(--text-3);width:.45em;height:.45em;transition:transform .2s var(--ease);margin-left:auto;transform:rotate(-45deg)}.toc.open .toc-head .chev{transform:rotate(45deg)}.toc-list{max-height:calc(100vh - var(--bottom-h) - 17em);scrollbar-width:thin;scrollbar-color:#34363b transparent;padding:0 .4em .5em;display:none;overflow-y:auto}.toc.open .toc-list{display:block}.toc h5{color:var(--text-4);letter-spacing:.04em;margin:.8em .6em .3em;font-size:.74em;font-weight:500}.toc-list button{width:100%;color:var(--text-2);text-align:left;cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:0;border-radius:4px;align-items:center;gap:.6em;padding:.5em .55em;font-size:.86em;display:flex}.toc-list button .n{width:1.5em;font-family:var(--num);color:var(--text-4);font-weight:600}.toc-list button .t{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.toc-list button .v{color:var(--text-3);background:#2a2c31;border-radius:3px;padding:.1em .45em;font-size:.86em}.toc-list button:hover{color:var(--text);background:#26282c}.toc-list button.on{color:#fff;background:#263552;box-shadow:inset 2px 0 #4a86e8}.toc-list button.on .n{color:#9fbbef}.toc-list button.on .v{color:#cfdcf5;background:#33466b}.stage-tools{align-items:center;gap:.5em;display:flex;position:absolute;top:.8em;right:.8em}.tool{border:1px solid var(--line);height:2.2em;color:var(--text-2);cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);background:#242529e6;border-radius:4px;align-items:center;gap:.45em;padding:0 .8em;font-size:.78em;display:inline-flex}.tool:hover{color:var(--text);background:#2c2e33}.tool svg{width:1.25em;height:1.25em}.tool.icon{justify-content:center;width:2.2em;padding:0}.pager{color:var(--text-3);font-variant-numeric:tabular-nums;align-items:center;gap:.2em;font-size:.78em;display:flex}.pager button{width:1.8em;height:2.2em;color:var(--text-3);cursor:pointer;background:0 0;border:0;font-size:1.2em}.pager button:hover{color:var(--text)}.toast{color:var(--text-3);opacity:0;white-space:nowrap;pointer-events:none;font-size:.72em;transition:opacity .2s;position:absolute;top:2.9em;right:0}.toast.on{opacity:1}.looks-pop{z-index:5;border:1px solid var(--line-2);min-width:11em;animation:pop-in .16s var(--ease);background:#1d1e21f7;border-radius:6px;padding:.45em;position:absolute;box-shadow:0 12px 28px #00000073}@keyframes pop-in{0%{opacity:0;transform:translate(-4px)}}.looks-pop .pop-head{color:var(--text-3);padding:.35em .6em .5em;font-size:.76em}.looks-pop button{width:100%;color:var(--text-2);text-align:left;cursor:pointer;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:0;border-radius:4px;align-items:center;gap:.6em;padding:.55em .65em;font-size:.86em;display:flex}.looks-pop button .n{width:1.5em;height:1.5em;font-family:var(--num);color:var(--text-3);background:#2a2c31;border-radius:50%;place-items:center;font-size:.9em;font-weight:600;display:grid}.looks-pop button:hover{color:var(--text);background:#2a2c31}.looks-pop button.on{color:#fff;background:#263552}.looks-pop button.on .n{color:#fff;background:#3361b8}.toc-list button .v:after{content:" ›"}.tool.on{color:var(--text);background:#2c2e33}.stage-foot{right:.8em;bottom:calc(var(--bottom-h) + 1.4em);pointer-events:none;align-items:flex-end;gap:.6em;display:flex;position:absolute}.legend,.overlay-stat{color:var(--text-2);background:#1e1f22db;border:1px solid #ffffff08;border-radius:4px;min-width:13em;padding:.9em 1em;font-size:.72em}.legend:empty{display:none}.legend h6,.overlay-stat h6{color:var(--text-3);margin:0 0 .8em;font-size:1em;font-weight:400}.legend .items{gap:.75em;display:grid}.legend .item{align-items:center;gap:.6em;display:flex}.legend .sym{border:2px solid;border-radius:50%;flex:none;width:.8em;height:.8em}.legend .sym.dot{background:currentColor;border:0;width:.6em;height:.6em}.legend .sym.line{background:currentColor;border:0;border-radius:1px;width:.9em;height:2px}.legend .grad{gap:.8em;height:7.4em;display:flex}.legend .grad .bar{border-radius:1px;width:.45em}.legend .grad .ticks{font-family:var(--num);color:var(--text-3);flex-direction:column;justify-content:space-between;font-size:.95em;display:flex}.legend .block+.block{margin-top:1.2em}.overlay-stat .row{gap:2.6em;display:flex}.overlay-stat .k{color:var(--text-3);margin-bottom:.4em}.overlay-stat .v{font-family:var(--num);color:var(--text);font-size:2.1em;font-weight:600}.bottom{--h:var(--bottom-h);height:var(--bottom-h);grid-template-columns:repeat(3,1fr);gap:.6em;display:grid;position:absolute;bottom:.6em;left:.6em;right:.6em}#stage{--bottom-h:clamp(118px, 15.5vh, 170px)}.card{background:#1f2023f5;border-radius:4px;flex-direction:column;min-width:0;padding:.95em 1.1em .5em;display:flex;position:relative}.card h4{color:var(--text);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.82em;font-weight:500;overflow:hidden}.card .chart{flex:1;min-height:0}.hud-debug{left:1.1em;bottom:calc(var(--bottom-h) + 1.2em);color:#9a9da3;pointer-events:none;background:#161719db;border-radius:3px;padding:.6em .8em;font:.68em/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;position:absolute}.lbl{white-space:nowrap;pointer-events:none;text-shadow:0 1px 3px #000000e6;transition:opacity .3s}.lbl.city{color:#e3e6ea;font-size:.78em;transform:translateY(-1.2em)}.lbl.city.hub{color:#fff;font-weight:600}.lbl.value{font-family:var(--num);color:#f2f3f5;font-size:.95em;font-weight:600;transform:translateY(-.9em)}.lbl.node{color:#c9ccd2;font-size:.74em;transform:translateY(-1.3em)}.lbl.node.hot{color:#fff;font-weight:600}.lbl.en{color:#c5c9cf;font-size:.72em;transform:translateY(-1.4em)}.lbl.faint{color:#c8cdd473;letter-spacing:.04em;font-size:.66em}#side{background:var(--panel);border:1px solid #25262a;border-radius:6px;flex-direction:column;min-height:0;display:flex}.side-head{justify-content:flex-end;padding:.8em .9em 0;display:flex}.lang{background:#191a1c;border-radius:4px;padding:2px;display:flex}.lang button{color:var(--text-3);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:.4em .75em;font-size:.7em}.lang button:hover{color:var(--text)}.lang button.on{color:var(--text);background:#2c2e33}.thread{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#34363b transparent;flex:1;min-height:0;padding:.6em 1.1em 1em;overflow-y:auto}.msg-user{justify-content:flex-end;margin:1.6em 0 1.4em;display:flex}.msg-user span{color:var(--text);background:#2a2c30;border-radius:4px;padding:.65em .95em;font-size:.86em}.answer h3{margin:0 0 .9em;font-size:.9em;font-weight:600}.answer p{color:var(--text-2);margin:0 0 1em;font-size:.86em;line-height:1.75}.answer .sec{color:var(--text);margin:1.4em 0 .6em;font-size:.86em;font-weight:600}.answer .unit{color:var(--text-3);margin:-.2em 0 .4em;font-size:.7em}.kpis{grid-template-columns:repeat(3,1fr);gap:.6em;margin-bottom:.4em;display:grid}.kpis.col{grid-template-columns:1fr;gap:1em}.kpi .k{color:var(--text-2);font-size:.72em;line-height:1.35}.kpi .v{font-family:var(--num);letter-spacing:.01em;color:var(--text);margin-top:.3em;font-size:1.95em;font-weight:600}.kpi .v small{color:var(--text-3);margin-left:.3em;font-size:.48em;font-weight:500}.side-chart{height:12.5em}.side-chart.tall{height:14em}.legend-inline{color:var(--text-2);gap:1.4em;margin:.2em 0 .3em;font-size:.7em;display:flex}.legend-inline i{vertical-align:middle;border-radius:1px;width:.75em;height:2px;margin-right:.45em;display:inline-block}.caption{color:var(--text-3);margin-top:.4em;font-size:.68em}.restyle{justify-content:flex-end;margin:1.4em 0 .4em;display:flex}.btn{border:1px solid var(--line-2);color:var(--text);cursor:pointer;transition:background .15s var(--ease);background:#26282c;border-radius:4px;padding:.6em .95em;font-size:.8em}.btn:hover{background:#2f3136}.followups{justify-items:start;gap:.5em;margin-top:1.2em;display:grid}.followups button{border:1px solid var(--line-2);color:var(--text);cursor:pointer;background:#222327;border-radius:4px;gap:.6em;padding:.6em .85em;font-size:.8em;font-weight:600;display:inline-flex}.followups button:before{content:"↳";color:var(--text-3);font-weight:400}.followups button:hover{background:#2a2c31}.avatar{background:radial-gradient(circle at 35% 30%,#c9d3ff,#6c7bd6 55%,#3b438e);border-radius:50%;width:2.6em;height:2.6em;margin:1.6em 0 1.2em;position:relative;box-shadow:0 0 18px #8296ff59}.avatar:before,.avatar:after{content:"";background:#fff;border-radius:.2em;width:.28em;height:.62em;position:absolute;top:.85em}.avatar:before{left:.92em}.avatar:after{right:.92em}.hbars{gap:.35em;font-size:.72em;display:grid}.hbars .row{grid-template-columns:4.6em 1fr 3.2em;align-items:center;gap:.6em;display:grid}.hbars .lab{color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.hbars .track{background:#34363c;border-radius:2px;height:3px;position:relative}.hbars .fill{transform-origin:0;transition:transform .9s var(--ease);border-radius:2px;position:absolute;inset:0}.hbars .val{font-family:var(--num);text-align:right;font-size:1.15em;font-weight:600}.hbars .axis{font-family:var(--num);color:var(--text-3);justify-content:space-between;margin-left:5.2em;margin-right:3.8em;font-size:.95em;display:flex}.card .hbars{flex:1;align-content:center;gap:.22em;font-size:.7em}.funnel{gap:.75em;font-size:.72em;display:grid}.funnel .row{grid-template-columns:3em 1fr 3em;align-items:center;gap:.5em;display:grid}.funnel .bar{height:1.7em;font-family:var(--num);color:#fff;border:1px solid;justify-self:center;place-items:center;font-size:1.05em;font-weight:600;display:grid}.funnel .pct{text-align:right;font-family:var(--num);color:var(--text-2)}.ring-kpi{grid-template-columns:auto 1fr 1fr;align-items:center;gap:1.2em;display:grid}.ring-kpi svg{width:5.6em;height:5.6em}.levels .head{justify-content:space-between;align-items:flex-end;display:flex}.levels .badge{color:#5fe08f;background:#1d5a36;border-radius:3px;padding:.2em .5em;font-size:.72em}.levels .segs{grid-template-columns:repeat(4,1fr);gap:2px;margin-top:.8em;display:grid}.levels .segs i{background:#34363c;height:.4em}.levels .segs i.on{background:#3ccf6e}.levels .segs i.cur{background:#34d3c0}.levels .names{color:var(--text-3);text-align:center;grid-template-columns:repeat(4,1fr);margin-top:.4em;font-size:.7em;display:grid}.composer{border:1px solid var(--line-2);background:#1b1c1f;border-radius:4px;margin:.8em;padding:.8em .9em;position:relative}.composer textarea{resize:none;background:0 0;border:0;outline:0;width:100%;font-size:.86em;line-height:1.6}.composer textarea::placeholder{color:var(--text-3)}.composer button{color:#fff;cursor:pointer;background:#3b73c9;border:0;border-radius:3px;margin-left:auto;padding:.5em 1.1em;font-size:.8em;display:block}.composer button:hover{background:#4682dd}.typing:after{content:"▍";color:var(--text-3);margin-left:2px;animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}@media (width<=900px){#app{grid-template-rows:62vh 1fr;grid-template-columns:1fr;height:auto;min-height:100vh}html,body{overflow:auto}.bottom{display:none}#stage{--bottom-h:0px}.tool span{display:none}.stage-head{max-width:62%}.toc{width:12em}}@media (prefers-reduced-motion:reduce){#gl-host,.hbars .fill{transition:none}}body.embed #stage{--bottom-h:0px;border-radius:0;position:fixed;inset:0}
