/* 价值链分析：样式首版由 data/vca/tools/port_mockup.py 从交互稿 v4 移入（2026-10-07），此后以本文件为准 */
.yh-store-search { max-width:100%; padding:6px; margin:8px 0; }
.yh-table-scroll { max-width:100%; overflow-x:auto; }
.yh-table-scroll td { white-space:nowrap; }
.yh-table-scroll th[scope=row] { text-align:left; }
.disclosure-content{position:absolute;inset:0;overflow:auto;padding:4px 4px 16px}
.disclosure-note{margin:0 0 12px}
.disclosure-chart-title{margin:6px 0 0;font-size:13px}
.disclosure-chart{display:flex;gap:6px;overflow:auto;margin:0 0 12px}
.financial-history .disclosure-point{flex:1 1 0;min-width:0;grid-template-rows:auto clamp(130px,40vh,320px) auto}
.disclosure-point{display:grid;grid-template-rows:auto 100px auto;align-items:start;flex:1 0 78px;padding:0 4px 4px;border:0;border-radius:5px;background:transparent;color:var(--text);cursor:pointer}
.disclosure-plot{position:relative;width:100%;height:100%;display:block}
.disclosure-plot::after{content:"";position:absolute;left:0;right:0;bottom:var(--zero);border-bottom:1px solid var(--line)}
.disclosure-plot i{position:absolute;left:20%;right:20%;border-radius:4px 4px 0 0;background:var(--zc);transform-origin:50% 100%}
.disclosure-point-label{font-size:11px;text-align:center;white-space:normal;overflow-wrap:anywhere}
.disclosure-point-value{font-size:12px;font-weight:600;text-align:center;font-variant-numeric:tabular-nums}
.disclosure-chart-fit .disclosure-point{flex:1 1 0;min-width:0;padding-inline:2px}
.disclosure-chart-fit .disclosure-point-value{font-size:clamp(9px,3vw,12px)}
.disclosure-point[aria-pressed=true],.disclosure-cell[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}
.disclosure-cell{border:0;border-radius:4px;padding:1px 4px;background:transparent;color:var(--text);cursor:pointer;font-variant-numeric:tabular-nums}
.disclosure-cell:hover{text-decoration:underline}
.disclosure-value{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums}
.disclosure-explanations{margin:0;padding-left:20px}
.disclosure-explanations li{margin-bottom:12px}
.operating-title{margin:14px 0 5px;font-size:16px}
#funnelHint a{white-space:nowrap}
.operating-metrics:not([hidden]){display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}
.operating-metric{display:grid;gap:3px;padding:8px 10px;border:1px solid var(--line);border-inline-start:3px solid var(--metric-color);border-radius:8px;background:var(--bg);color:var(--text);text-align:left;font:inherit;cursor:pointer}
.operating-metric:hover,.operating-metric:focus-visible{border-color:var(--metric-color)}
.operating-metric strong{font-size:clamp(17px,2vw,24px);font-variant-numeric:tabular-nums;line-height:1.15}
.operating-metric small{display:flex;flex-wrap:wrap;gap:2px 6px;font-size:11px;color:var(--muted)}
.operating-metric small b{color:var(--text);font-variant-numeric:tabular-nums}
.operating-gap{position:absolute;display:flex;align-items:center;padding:0 8px;border:1px dashed var(--line);border-radius:4px;background:var(--na)}
.cell .operating-formula{color:inherit;opacity:.72}
.rem .operating-subtotal{white-space:normal}
button.rlab{font-family:inherit;border:0;background:transparent;color:var(--text);cursor:zoom-in}
button.rlab:hover{text-decoration:underline}
.disclosure-entries{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:8px}
.disclosure-entry{display:grid;gap:5px;padding:10px 12px;text-align:left;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:8px;cursor:pointer;font:inherit}
.disclosure-entry:hover,.disclosure-entry:focus-visible{border-color:var(--accent)}
.disclosure-entry small{color:var(--muted)}
@media(max-width:1000px){.disclosure-zoom .zviz{min-height:0}.disclosure-zoom .disclosure-content{position:static}}
:root{--bg:#f5f6f8;--panel:#fff;--line:#dde1e7;--text:#1b1f24;--muted:#66727f;--accent:#1f6feb;--accent-soft:#e7f0ff;--ok:#177245;--ok-soft:#e6f4ec;--warn:#b4551a;--warn-soft:#fdf0e3;--neg:#c2332f;--pos:#177245;
--c1:#2a78d6;--c2:#eb6834;--c3:#1baf7a;--c4:#eda100;--c5:#e87ba4;--c6:#008300;--c7:#4a3aa7;--c8:#e34948;--ink:#2c2c2a;--oth:#b4b2a9;--na:#e6e4dc;--tbd:#d3d1c7;--inflow:#d3d1c7;--dash:#52514e;--shadow:0 6px 24px rgba(15,23,42,.16);color-scheme:light}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#14171b;--panel:#1b1f24;--line:#2c333b;--text:#e6e9ed;--muted:#9aa7b4;--accent:#5a9bff;--accent-soft:#1b2c47;--ok:#59c08b;--ok-soft:#173327;--warn:#e9a267;--warn-soft:#34261a;--neg:#ff7b72;--pos:#59c08b;
--c1:#3987e5;--c2:#d95926;--c3:#199e70;--c4:#c98500;--c5:#d55181;--c6:#008300;--c7:#9085e9;--c8:#e66767;--ink:#f1efe8;--oth:#5f5e5a;--na:#2c2c2a;--tbd:#444441;--inflow:#444441;--dash:#c3c2b7;--shadow:0 6px 24px rgba(0,0,0,.5);color-scheme:dark}}
:root[data-theme="dark"]{--bg:#14171b;--panel:#1b1f24;--line:#2c333b;--text:#e6e9ed;--muted:#9aa7b4;--accent:#5a9bff;--accent-soft:#1b2c47;--ok:#59c08b;--ok-soft:#173327;--warn:#e9a267;--warn-soft:#34261a;--neg:#ff7b72;--pos:#59c08b;
--c1:#3987e5;--c2:#d95926;--c3:#199e70;--c4:#c98500;--c5:#d55181;--c6:#008300;--c7:#9085e9;--c8:#e66767;--ink:#f1efe8;--oth:#5f5e5a;--na:#2c2c2a;--tbd:#444441;--inflow:#444441;--dash:#c3c2b7;--shadow:0 6px 24px rgba(0,0,0,.5);color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--text);font:14px/1.6 "PingFang SC","Microsoft YaHei","Segoe UI",system-ui,sans-serif}
body.zoomed{overflow:hidden}
a{color:var(--accent);text-decoration:none}
button{font:inherit}
header.top{display:flex;align-items:center;gap:10px 18px;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap}
.brand{font-weight:600;white-space:nowrap}.brand small{font-weight:400;color:var(--muted);margin-left:6px;font-size:12px}
header nav{display:flex;gap:4px 14px;flex:1;flex-wrap:wrap}
header nav a{color:var(--muted)}header nav a.on{color:var(--text);font-weight:600}
header nav a.ext::after{content:" ↗";font-size:.85em}
.badge{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;background:var(--warn-soft);color:var(--warn)}
.wrap{max-width:1320px;margin:0 auto;padding:16px 20px 40px}
.seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}
.seg button{font-size:13px;padding:5px 12px;border:0;background:transparent;color:var(--muted);cursor:pointer}
.seg button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.seg button:disabled{opacity:.45;cursor:default}
.row{display:flex;gap:8px 10px;flex-wrap:wrap;align-items:center}
.muted{color:var(--muted)}.small{font-size:12.5px}
.legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12.5px;color:var(--muted);margin:10px 0 8px}
.legend span{display:inline-flex;align-items:center;gap:5px;cursor:default;padding:1px 4px;border-radius:4px}
.legend span:hover{background:var(--accent-soft);color:var(--text)}
.sw{width:11px;height:11px;border-radius:2px;display:inline-block}
.sw.dash{background:transparent;border:1.5px dashed var(--dash)}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}
.kpis[hidden],.legend[hidden]{display:none}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;min-width:0}
.kpi .v{font-size:22px;font-weight:600;font-variant-numeric:tabular-nums}
.market{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:14px}
.market .items{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.mi{border:1px solid var(--line);border-radius:8px;padding:6px 10px;min-width:120px;max-width:100%}
.mi.dashed{border-style:dashed;border-color:var(--dash)}
.mi .v{font-weight:600}
.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;min-width:0}
.st{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.st.pub,.st.sample{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.st.der,.st.asm,.st.tp{border:1px dashed var(--dash)}
.st.demo{background:var(--warn-soft);color:var(--warn);border:1px dashed var(--warn)}
.st.none{background:var(--na);color:var(--muted)}
.hint{font-size:12.5px;color:var(--muted)}
/* ---------- 漏斗 ---------- */
.stage{position:relative;user-select:none}
.cell{position:absolute;border-radius:4px;overflow:hidden;cursor:zoom-in;transition:filter .18s,box-shadow .18s,opacity .25s;outline-offset:-1.3px}
.cell:hover,.cell:focus-visible{filter:brightness(1.07) saturate(1.05);box-shadow:var(--shadow);z-index:3;outline:none}
.cell.dash{outline:1.3px dashed var(--dash)}
.cell .lb{position:absolute;left:8px;right:22px;top:5px;font-size:12px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.cell .sub{position:absolute;left:8px;right:8px;top:23px;font-size:11px;line-height:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);pointer-events:none}
.cell .ex{position:absolute;right:5px;top:3px;font-size:12px;opacity:0;transition:opacity .18s;pointer-events:none}
.cell:hover .ex{opacity:.9}
.stage.hl .cell{opacity:.18}.stage.hl .cell.on{opacity:1}
.rlab{position:absolute;text-align:right;border-radius:6px;padding:2px 4px;line-height:1.35}
.rlab b{display:block;font-size:13px}.rlab span{font-size:12px;color:var(--muted)}
.rlab.thin{white-space:nowrap;font-size:12px}
.mk{position:absolute;font-size:12px;line-height:15px;white-space:nowrap}
.mk b{font-weight:600}.mk .m2{color:var(--muted);display:block}
.mkl{position:absolute;height:1px;background:var(--muted);opacity:.6}
.zdiv{position:absolute;height:22px;border-radius:5px;background:var(--bg);color:var(--muted);font-size:12px;display:flex;align-items:center;justify-content:center}
/* ---------- 展开层 ---------- */
.zoom{position:fixed;inset:0;z-index:60;--zc:#888;--zt:#fff}
.zoom .zsurf{position:absolute;inset:0;background:color-mix(in srgb,var(--zc) 8%,var(--bg))}
.zoom .zshell{position:absolute;inset:0;background:var(--zc)}
.zoom .zc{position:absolute;inset:0;display:flex;flex-direction:column}
.zbar{height:54px;flex:none;display:flex;align-items:center;gap:10px;padding:0 16px;color:var(--zt)}
.zbar button{background:rgba(255,255,255,.18);color:inherit;border:0;border-radius:8px;height:34px;min-width:34px;padding:0 10px;cursor:pointer;font-size:15px}
.zbar button:hover{background:rgba(255,255,255,.3)}
.crumbs{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:2px 6px;font-size:13.5px;min-width:0;overflow:hidden}
.crumbs a{color:inherit;opacity:.82;cursor:pointer;white-space:nowrap}.crumbs a:hover{opacity:1;text-decoration:underline}
.crumbs .sep{opacity:.55}.crumbs .cur{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zhead{flex:none;display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 24px;padding:16px 24px 6px}
.zhead h2{margin:0;font-size:26px;line-height:1.25;font-weight:650;transform-origin:0 0}
.zhead .amt{font-size:38px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.1}
.zhead .amt small{font-size:15px;font-weight:500;color:var(--muted);margin:0 4px}
.zchips{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:4px 24px 10px;font-size:13px;color:var(--muted)}
.zbody{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;padding:6px 24px 20px}
.zmain{display:flex;flex-direction:column;min-height:0;min-width:0}
.ztabs{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.ztabs button{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:4px 14px;cursor:pointer;font-size:13px}
.ztabs button.on{background:var(--zc);border-color:var(--zc);color:var(--zt);font-weight:600}
.zviz{position:relative;flex:1;min-height:260px;border-radius:12px}
.zside{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;overflow:auto;min-height:0}
.zside h4{margin:0 0 6px;font-size:14px}
.zside .askhint{margin-top:10px}
.zside dl{margin:0}.zside dt{color:var(--muted);font-size:12.5px;margin-top:10px}.zside dd{margin:2px 0 0}
.zside ul{margin:2px 0 0;padding-left:18px}
.zside .metric{display:flex;justify-content:space-between;gap:8px;border-top:1px dashed var(--line);padding-top:6px;margin-top:6px}
.zside .metric b{font-variant-numeric:tabular-nums}
.zside .back{font-size:12.5px;cursor:pointer;color:var(--accent);display:inline-block;margin-bottom:6px}
button.primary{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:6px 14px;cursor:pointer;margin-top:12px}
pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);padding:8px;border-radius:6px;font-size:12px;margin:6px 0 0}
.tile{position:absolute;border-radius:7px;overflow:hidden;padding:9px 11px;cursor:default;transition:box-shadow .18s,filter .18s}
.tile.go{cursor:zoom-in}.tile.pick{cursor:pointer}
.tile:hover{box-shadow:var(--shadow);filter:brightness(1.05);z-index:2}
.tile.sel{outline:2.5px solid var(--accent);outline-offset:-2.5px}
.tile.dash{outline:1.5px dashed var(--dash);outline-offset:-1.5px}
.tile .tn{font-size:13.5px;font-weight:600;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile .ta{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap}
.tile .tp{font-size:12px;opacity:.75}
.tile .tx{position:absolute;right:8px;top:7px;font-size:13px;opacity:.75}
.tile.big .tn{font-size:16px}.tile.big .ta{font-size:15px}
.grp{position:absolute;border-radius:9px;overflow:hidden}
.grp .gh{position:absolute;left:10px;right:10px;top:4px;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:zoom-in}
.grp .gh:hover{text-decoration:underline}
.hbar{position:absolute;bottom:0;border-radius:6px 6px 2px 2px;transform-origin:50% 100%}
.hval{position:absolute;font-size:12px;font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap}
.hyr{position:absolute;bottom:-24px;font-size:12px;color:var(--muted);text-align:center}
.hpct{position:absolute;bottom:-42px;font-size:11.5px;color:var(--muted);text-align:center}
.hnote{position:absolute;left:0;right:0;top:0;font-size:12.5px;color:var(--muted)}
/* 历年的断档和半年期（10-12 侨银）：断档处一格虚线框写原因，不插值；半年期一组前面一条分隔线 */
.hgap{position:absolute;display:flex;align-items:center;justify-content:center;text-align:center;font-size:11.5px;line-height:1.35;color:var(--muted);border:1.5px dashed var(--dash);border-radius:6px;padding:4px;box-sizing:border-box;overflow:hidden}
.hsep{position:absolute;border-left:1px solid var(--line);padding:2px 0 0 6px;font-size:11.5px;line-height:1.35;color:var(--muted);box-sizing:border-box;overflow:hidden}
.hbar.half{outline:1.5px dashed var(--dash);outline-offset:-1.5px}
.hflag{color:var(--warn);white-space:nowrap}
.otab{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.otab th,.otab td{padding:6px 8px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.otab th{color:var(--muted);font-weight:500;font-size:12.5px}
.otab td.n{text-align:right;font-variant-numeric:tabular-nums}
.otab .gmb{display:inline-block;height:8px;border-radius:2px;vertical-align:middle;margin-right:6px}
.osum{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.osum div{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:12.5px}
.osum b{font-size:15px;font-variant-numeric:tabular-nums}
.empty{position:absolute;inset:0;border-radius:12px;border:1.5px dashed var(--dash);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:24px;color:var(--muted)}
.empty b{color:var(--text);font-size:15px}
.tip{position:fixed;pointer-events:none;display:none;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font-size:12px;line-height:1.5;width:max-content;max-width:min(300px,calc(100vw - 16px));overflow-wrap:anywhere;z-index:90;box-shadow:var(--shadow)}
details.notes{margin-top:16px}details.notes summary{cursor:pointer;color:var(--muted)}details.notes li{margin:4px 0}
@media (max-width:1000px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.zbody{display:block;overflow:auto}.zviz{min-height:58vh}.zside{overflow:visible;margin-top:16px}}
@media (max-width:560px){.wrap{padding:12px 16px 32px}header.top{padding:8px 16px}header nav{order:3;flex-basis:100%}.badge{display:none}.kpi .v{font-size:17px}.card{padding:10px}.zhead{padding:12px 16px 4px}.zhead h2{font-size:20px}.zhead .amt{font-size:28px}.zchips{padding:4px 16px 8px}.zbody{padding:6px 16px 16px}}
/* ---------- 市场带（英科医疗：全球一次性手套） ---------- */
:root{--mkt:#16855f}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--mkt:#2fb487}}
:root[data-theme="dark"]{--mkt:#2fb487}
.market.go{cursor:zoom-in;transition:box-shadow .18s,border-color .18s}
.market.go:hover{box-shadow:var(--shadow);border-color:var(--mkt)}
.market .row{display:flex;align-items:baseline;gap:6px 10px;flex-wrap:wrap}
.market .mx{margin-left:auto;font-size:12.5px;color:var(--mkt);white-space:nowrap}
.mline{position:relative;height:22px;margin:18px 0 6px;border-radius:5px;background:var(--na)}
.mseg{position:absolute;top:0;bottom:0;overflow:hidden;white-space:nowrap;font-size:12px;line-height:22px;padding:0 6px;box-shadow:inset -1.5px 0 0 var(--panel)}
.mseg.us{font-weight:600}
.mline .mseg:first-child{border-radius:5px 0 0 5px}
.mtick{position:absolute;top:-8px;width:2px;height:38px;background:var(--text);border-radius:1px}
.mtick span{position:absolute;top:-16px;left:-2px;font-size:11px;color:var(--muted);white-space:nowrap}
.mcap{font-size:12.5px;color:var(--muted)}
.mcap b{color:var(--text);font-variant-numeric:tabular-nums;font-weight:600}
.mcol{position:absolute;border-radius:5px 5px 0 0;cursor:pointer;transition:filter .15s}
.mcol:hover{filter:brightness(1.08)}
.mcol.sel{outline:2.5px solid var(--accent);outline-offset:2px}
.mcapl{position:absolute;width:2px;background:var(--text);transform-origin:50% 100%;pointer-events:none}
.mcapt{position:absolute;height:2px;width:20px;background:var(--text);pointer-events:none}
.mlab{position:absolute;font-size:12px;text-align:center;white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums}
.mlab.n{color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis}
.mlab.m{color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis}
.mlab.u{font-weight:700;font-size:13px}
.mgrid{position:absolute;left:0;right:0;height:1px;background:var(--line)}
.mgl{position:absolute;left:0;font-size:11px;color:var(--muted);transform:translateY(-100%)}
.mttl{position:absolute;left:0;top:0;font-size:13px;color:var(--muted)}
.mleg{position:absolute;right:0;top:0;font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;justify-content:flex-end}
.mleg i{display:inline-block;vertical-align:middle;margin-right:4px}
.mline2{position:absolute;left:0;right:0;border-radius:5px;background:var(--na);overflow:hidden}
.mline2 .mseg{font-size:11.5px}
.mlcap{position:absolute;left:0;font-size:12px;color:var(--muted)}
.mhead{position:absolute;left:0;right:0;top:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.mhead button{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:8px;padding:4px 12px;cursor:pointer;font-size:12.5px}
.mhead button.on{border-color:var(--mkt);color:var(--mkt);font-weight:600;background:color-mix(in srgb,var(--mkt) 10%,var(--panel))}
.mscope{font-size:12.5px;color:var(--muted)}
.mleg2{position:absolute;left:0;right:0;top:4px;font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center}
.mleg2 i{display:inline-block;vertical-align:middle;margin-right:4px}
.mleg2 b{color:var(--text)}
.mleg2 em{font-style:normal;border:1px solid var(--line);border-radius:999px;padding:0 6px;margin-right:2px;color:var(--text)}
.mlab.sh{font-weight:700;font-size:14px;line-height:1.15}
.mlab.sh small{display:block;font-size:10.5px;font-weight:500;color:var(--muted)}
.mlab.ut{font-size:10.5px;color:var(--muted);border:1px solid var(--line);border-radius:999px;line-height:16px;padding:0 2px;white-space:nowrap;overflow:hidden;text-overflow:clip;letter-spacing:-.2px}
.mpctr{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}
.mpctr b{font-size:30px;line-height:1.1;color:var(--mkt);font-variant-numeric:tabular-nums}
.mpctr small{font-size:12px;color:var(--muted)}
.mplab{position:absolute;font-size:12px;line-height:1.35;white-space:nowrap;pointer-events:none}
.mplab b{display:block;font-size:12.5px}
.mplab span{font-weight:700;font-size:14px;margin-right:6px;font-variant-numeric:tabular-nums}
.mplab em{font-style:normal;color:var(--muted);font-variant-numeric:tabular-nums}
.mplab.us b,.mplab.us span{color:var(--mkt)}
.mplist{position:absolute;left:0;right:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px;font-size:12px}
.mplist div{display:flex;align-items:center;gap:6px;min-width:0}
.mplist i{width:10px;height:10px;border-radius:2px;flex:none}
.mplist span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mplist .us b,.mplist .us span{color:var(--mkt)}
.mpnote{position:absolute;left:0;bottom:0;font-size:12px;color:var(--muted)}
a.term{color:var(--accent);font-weight:600;text-decoration:underline dotted;text-underline-offset:2px;cursor:pointer;white-space:nowrap}
a.term:hover{text-decoration-style:solid}
.mk .tag{font-style:italic}
.pqbox{position:absolute;inset:0;overflow:auto}
.pqf{font-size:15px;margin:2px 0 10px;display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline}
.pqt td{vertical-align:middle}.pqt td.op{color:var(--muted);text-align:center;width:18px}
.pqt tr.go{cursor:zoom-in}.pqt tr.go:hover td{background:var(--accent-soft)}
.pqt td.go2{color:var(--muted);width:20px}
.pqt th.r{text-align:right}
.pqb{display:inline-block;height:8px;border-radius:2px;margin-right:8px;vertical-align:middle;opacity:.85}
.pqt tr.pqtot td{font-weight:600;border-top:1.5px solid var(--line)}
.pqn{margin-top:8px}
a.st{cursor:pointer;text-decoration:none}a.st:hover{text-decoration:underline;text-underline-offset:2px}
a.stl{color:inherit;text-decoration:underline dotted;text-underline-offset:2px;cursor:pointer}
.prov{position:fixed;display:none;z-index:200;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);padding:14px 16px 12px;overflow:auto;font-size:13px;line-height:1.55}
.prov.sheet{left:8px!important;right:8px;bottom:8px;top:auto!important;width:auto!important;max-height:72vh}
.prov h4{margin:0 24px 4px 0;font-size:14px}.prov .px{position:absolute;right:8px;top:6px;border:0;background:none;font-size:20px;line-height:1;color:var(--muted);cursor:pointer}
.prov .pback{display:inline-block;margin-bottom:6px;font-size:12px}.prov .pval b{font-size:18px}.prov .pmean{margin-top:4px}
.prov dl{margin:6px 0 0}.prov dt{color:var(--muted);font-size:12px;margin-top:10px}.prov dd{margin:2px 0 0}.prov ul{margin:2px 0 0;padding-left:18px}
table.pin{border-collapse:collapse;width:100%;font-size:12.5px}table.pin td{padding:3px 4px;border-bottom:1px solid var(--line);vertical-align:top}table.pin td.n{text-align:right;white-space:nowrap}
.zdiv.out{background:transparent;border-top:1.5px dashed var(--dash);border-radius:0;height:auto;padding-top:5px;justify-content:flex-start;white-space:normal;line-height:1.4}
a.maplink{position:absolute;font-size:12.5px}
.ksub{margin:2px 0 4px;line-height:1.35}
.mapt td.wrap{white-space:normal;min-width:240px;font-size:12.5px;color:var(--muted)}.mapt tr.g0 td{border-top:1.5px solid var(--line)}.mapt td{vertical-align:top}
.mapsum{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:12px}.mapt tr.gh td{background:var(--bg);border-top:1.5px solid var(--line)}.mapt tr.gi td:first-child{padding-left:20px}.mapt .mparts{white-space:normal;max-width:420px;margin:2px 0}.mapeq{margin-top:8px}
.stp{position:absolute;width:0;border-left:1.5px dashed var(--dash);opacity:.55;pointer-events:none}
.zmain{position:relative}.zscale{position:absolute;right:0;top:0;z-index:2}.zscale button{padding:3px 10px;font-size:12.5px}
.rleg{position:absolute;display:flex;flex-wrap:wrap;align-content:safe center;gap:1px 12px;font-size:12px;line-height:15px;overflow:hidden;color:var(--text)}
.rleg.l{justify-content:flex-end;text-align:right}.rleg{pointer-events:none}.rleg .li{white-space:nowrap}
.rleg i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px}.rleg b{font-weight:600;font-variant-numeric:tabular-nums}
.cell .lb.w2{white-space:normal;line-height:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:clip}
.stage .cell{transition:filter .18s,box-shadow .18s,opacity .25s,left .24s ease,top .24s ease,width .24s ease,height .24s ease}
.stage .cell.hov{z-index:6;box-shadow:var(--shadow)}
.rem{position:absolute;cursor:zoom-in;border-radius:4px;background:color-mix(in srgb,var(--accent) 13%,var(--bg));transition:opacity .2s;overflow:hidden}
.rem .lb{position:absolute;left:8px;right:8px;top:5px;font-size:12px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.rem.fade,.rleg.fade{opacity:0;pointer-events:none}.rleg{transition:opacity .2s}
svg.ldr{position:absolute;overflow:visible;pointer-events:none}svg.ldr line{stroke:var(--dash);stroke-width:1;stroke-dasharray:3 2;opacity:.6}
.rem:hover{background:color-mix(in srgb,var(--accent) 22%,var(--bg))}.rem:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.rgap{position:absolute;cursor:zoom-in;border-radius:4px;transition:background .15s}.rgap.hot{background:color-mix(in srgb,var(--accent) 9%,transparent)}
.rem.hot{background:color-mix(in srgb,var(--accent) 22%,var(--bg))}
.stage.rowx{cursor:zoom-in}.rowgo{position:absolute;z-index:7;cursor:zoom-in;font-size:12px;line-height:22px;padding:0 10px;border-radius:999px;background:var(--accent);color:#fff;white-space:nowrap;box-shadow:var(--shadow)}

/* ---- 应用里才有的：加载中、出错 ---- */
.vca-loading{padding:40px 0;color:var(--muted);text-align:center}
.vca-err{color:#c0392b;padding:24px 0}

/* ---- 卡片视图（IT 系统、工厂清单）与侧栏详情 ---- */
.cardsv{position:absolute;inset:0;overflow:auto;padding:4px 2px}
.csec{margin:0 0 14px}.cgh{font-size:12px;color:var(--muted);margin:0 0 6px;font-weight:600;letter-spacing:.02em}
.crow{display:flex;flex-wrap:wrap;gap:8px}
.cnote{margin:0 0 12px;line-height:1.5;max-width:980px}
.vcard{flex:0 1 210px;min-width:160px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:8px 10px;cursor:pointer;display:flex;flex-direction:column;gap:2px;font-size:13px;line-height:1.35}
.vcard span{color:var(--muted);font-size:12px}.vcard .ca{color:var(--text);font-weight:600}
.vcard.dash{border-style:dashed}.vcard:hover,.vcard.sel{border-color:var(--accent);box-shadow:var(--shadow)}
/* 金额构成下钻：同一尺度比较金额，出处随选中项更新。 */
.composition-zoom {
  --composition-paper:light-dark(#f8f9fa,#1c2421);
  --composition-ink:light-dark(#213b34,#e5eee7);
  --composition-muted:light-dark(#536861,#afc1b8);
  --composition-surface:light-dark(#edf1e9,#293530);
  --composition-focus:light-dark(#14675d,#87c7b8);
  --composition-color-1:light-dark(#176e63,#3f9283);
  --composition-color-2:light-dark(#b7cd75,#d0df85);
  --composition-color-3:light-dark(#315789,#557bb9);
  --composition-color-4:light-dark(#e2a66b,#f6ae6d);
  color:var(--composition-ink);
}
.composition-zoom :is(.zsurf,.zshell) {background:var(--composition-paper)}
.composition-zoom .zc {overflow:auto}
.composition-zoom .zbar {
  height:auto;
  min-height:54px;
  padding-block:6px;
  color:var(--composition-ink);
  border-bottom:1px solid var(--line);
}
.composition-zoom .zbar button {background:transparent}
.composition-zoom .zbar button:hover {background:var(--composition-surface)}
.composition-zoom :is(.zhead,.zchips,.zbody) {
  width:100%;
  max-width:1180px;
  margin-inline:auto;
}
.composition-zoom .zhead {padding-top:clamp(16px,2.2vw,22px)}
.composition-zoom .zhead .amt {color:var(--composition-focus)}
.composition-zoom .zbody {
  flex:none;
  align-items:start;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:clamp(16px,2.5vw,30px);
  padding-top:12px;
  padding-bottom:72px;
}
.composition-zoom .ztabs:has(button:only-child) {display:none}
.composition-zoom .zviz {min-height:0;container:composition / inline-size}
.composition-zoom .zside {
  border:0;
  border-inline-start:1px solid var(--line);
  border-radius:0;
  background:transparent;
  padding-block:0;
  overflow-wrap:anywhere;
}
.zside .composition-side-back {
  border:0;
  padding:0;
  background:transparent;
  font-family:inherit;
}
.composition-heading {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:3px 12px;
  margin-bottom:6px;
}
.composition-heading h3 {margin:0;font-size:17px;font-weight:650}
.composition-heading > span {font-size:12px;color:var(--composition-muted)}
.composition-parts {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  padding:0;
  margin:0;
  list-style:none;
}
@container composition (max-width:450px) {
  .composition-parts {grid-template-columns:repeat(2,minmax(0,1fr))}
}
.composition-part {display:flex;flex-direction:column;min-width:0}
.composition-item.vcard {
  flex:1;
  gap:6px;
  width:100%;
  min-width:0;
  padding:14px 12px;
  border:0;
  background:var(--composition-surface);
  color:var(--composition-ink);
  text-align:start;
  box-shadow:none;
}
.composition-item.vcard:hover {background:color-mix(in srgb,var(--composition-focus) 12%,var(--composition-surface))}
.composition-item.vcard.sel,.composition-zoom :is(button,a):focus-visible {
  outline:2px solid var(--composition-focus);
  outline-offset:2px;
}
.composition-item .composition-name {
  display:flex;
  align-items:baseline;
  gap:6px;
  width:100%;
  min-height:1.4em;
  color:inherit;
  font-size:14px;
  font-weight:600;
  overflow-wrap:anywhere;
}
.composition-name i {
  flex:none;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--composition-color);
}
.composition-item .composition-name span {font:inherit;color:inherit}
.composition-name .composition-arrow {margin-inline-start:auto}
.composition-item[aria-expanded="true"] .composition-arrow {transform:rotate(180deg)}
.composition-item .composition-amount {
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:1px 5px;
  color:inherit;
  line-height:1.1;
  font-variant-numeric:tabular-nums;
}
.composition-amount b {font-size:clamp(24px,3.2vw,34px);font-weight:600}
.composition-amount small,.composition-item .composition-share {
  color:var(--composition-muted);
  font-size:12px;
  white-space:nowrap;
}
.composition-item .composition-share {font-variant-numeric:tabular-nums}
.composition-status {margin:5px 0 0 4px}
.composition-status .st.demo {border-color:transparent}
.composition-status .st:hover {text-decoration:underline;text-underline-offset:2px}
.composition-band {
  display:flex;
  height:14px;
  margin-top:12px;
  overflow:hidden;
  border-radius:99px;
  background:var(--composition-surface);
}
.composition-band > span {flex:0 1 0}
.composition-chart {
  --composition-axis:50px;
  --composition-name-height:34px;
  --composition-plot-top:12px;
  --composition-x-label:calc(var(--composition-name-height) + var(--composition-status-space,0px));
  --composition-slot:calc((100% - var(--composition-axis)) / var(--composition-columns));
  --composition-focus-left:calc(var(--composition-axis) + var(--composition-slot) * var(--composition-focus-index,0));
}
.composition-chart.has-status {--composition-status-space:25px}
.composition-chart.is-scrollable {
  position:relative;
  --composition-name-height:46px;
  --composition-plot-top:68px;
}
.composition-chart.is-financial {--composition-axis:68px;--composition-plot-top:58px}
.composition-scroll {
  margin-inline-start:var(--composition-axis);
  overflow-x:auto;
}
.composition-scroll .composition-plot {
  min-width:calc(var(--composition-columns) * 88px);
  margin-inline-start:0;
}
.composition-scroll .composition-column,.composition-column-source {grid-row:1}
.composition-scroll .composition-column.vcard {outline-offset:-2px}
.composition-scroll .composition-column-value b {font-size:clamp(16px,1.6vw,22px)}
.composition-axis {
  position:absolute;
  inset-block-start:0;
  inset-inline-start:0;
  width:var(--composition-axis);
  height:calc(var(--composition-plot-top) + var(--composition-plot-height) + var(--composition-x-label));
  pointer-events:none;
}
.composition-axis .composition-tick {height:1px;border:0}
.composition-axis .composition-tick span {inset-inline-end:9px}
.composition-plot {
  position:relative;
  display:grid;
  grid-template-columns:repeat(var(--composition-columns),minmax(0,1fr));
  height:calc(var(--composition-plot-top) + var(--composition-plot-height) + var(--composition-x-label));
  margin-inline-start:var(--composition-axis);
}
.composition-tick,.composition-guide {
  position:absolute;
  inset-inline:0;
  pointer-events:none;
}
.composition-tick {
  bottom:calc(var(--composition-x-label) + var(--composition-tick-height));
  border-top:1px solid var(--line);
}
.composition-tick span {
  position:absolute;
  inset-inline-end:calc(100% + 9px);
  transform:translateY(-55%);
  color:var(--composition-muted);
  font-size:12px;
  font-variant-numeric:tabular-nums;
}
.composition-guide {
  bottom:calc(var(--composition-x-label) + var(--composition-guide-height,0px) - 1px);
  border-top:1px dashed var(--composition-focus);
  z-index:2;
}
.composition-column.vcard {
  position:relative;
  display:block;
  min-width:0;
  padding:0;
  border-radius:12px;
  background:transparent;
  text-align:center;
}
.composition-column.vcard:hover,.composition-column.vcard[aria-expanded="true"] {
  background:color-mix(in srgb,var(--composition-focus) 7%,transparent);
}
.composition-column.vcard[aria-expanded="true"] {border-radius:12px 12px 0 0}
.composition-column.vcard[aria-expanded="true"].sel:not(:focus-visible) {outline:0}
.composition-column[aria-expanded="true"]::after {
  content:"";
  position:absolute;
  inset:0;
  border:1px dashed var(--composition-focus);
  border-bottom:0;
  border-radius:12px 12px 0 0;
  pointer-events:none;
  z-index:2;
}
.composition-scroll .composition-column[aria-expanded="true"]::after {
  border-bottom:1px dashed var(--composition-focus);
  border-radius:12px;
}
.composition-column .composition-column-name {
  position:absolute;
  inset-inline:4px;
  bottom:calc(3px + var(--composition-status-space,0px));
  min-height:calc(var(--composition-name-height) - 7px);
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  color:var(--composition-ink);
  font-size:13px;
  font-weight:600;
  overflow-wrap:anywhere;
}
.composition-column-status {
  position:absolute;
  inset-inline:0;
  bottom:2px;
}
.composition-column-status .st {color:var(--composition-muted)}
.composition-scroll .composition-column-name > span:first-child {
  display:-webkit-box;
  overflow:hidden;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
}
.composition-column-source {
  z-index:3;
  align-self:end;
  justify-self:center;
  max-width:calc(100% - 8px);
  margin-bottom:2px;
}
.composition-column-source .st {display:block;overflow:hidden;text-overflow:ellipsis}
.composition-column-name .composition-arrow {margin:0}
.composition-bar {
  position:absolute;
  bottom:var(--composition-x-label);
  left:50%;
  width:min(56%,78px);
  height:var(--composition-bar-height);
  transform:translateX(-50%);
  border-radius:8px 8px 0 0;
  background:var(--composition-color);
  transition:opacity .16s ease;
}
.composition-chart.is-expanded .composition-column:not([aria-expanded="true"]) .composition-bar {opacity:.65}
.composition-column .composition-column-value {
  position:absolute;
  inset-inline:2px;
  bottom:calc(var(--composition-x-label) + var(--composition-bar-height) + 7px);
  z-index:3;
  color:var(--composition-ink);
  line-height:1.2;
  font-variant-numeric:tabular-nums;
}
.composition-column-value b {font-size:clamp(16px,2.1vw,26px);font-weight:700}
.composition-column-value small {font-size:11px}
.composition-column-value > span {
  display:block;
  margin-top:3px;
  color:var(--composition-muted);
  font-size:12px;
}
.composition-column.has-callout .composition-column-value {
  bottom:calc(var(--composition-x-label) + var(--composition-bar-height) + 23px);
  transform:translateX(7px);
}
.composition-leader {
  position:absolute;
  bottom:calc(var(--composition-x-label) + var(--composition-bar-height));
  left:50%;
  width:14px;
  height:18px;
  border-top:1px solid var(--composition-muted);
  border-left:1px solid var(--composition-muted);
}
.composition-drawer {
  position:relative;
  padding:11px 16px;
  border:1px dashed var(--composition-focus);
  border-top:0;
  border-radius:0 0 12px 12px;
  background:var(--composition-surface);
}
.composition-drawer::before,.composition-drawer::after {
  content:"";
  position:absolute;
  top:0;
  border-top:1px dashed var(--composition-focus);
}
.composition-drawer::before {inset-inline-start:-1px;width:calc(var(--composition-focus-left) + 1px)}
.composition-drawer::after {inset-inline-end:-1px;inset-inline-start:calc(var(--composition-focus-left) + var(--composition-slot) - 2px)}
.composition-chart.is-scrollable .composition-drawer {
  margin-top:8px;
  border-top:1px dashed var(--composition-focus);
  border-radius:12px;
}
.composition-chart.is-scrollable .composition-drawer::before,
.composition-chart.is-scrollable .composition-drawer::after {content:none}
.composition-drawer-heading {
  display:flex;
  justify-content:space-between;
  align-items:start;
  gap:8px 16px;
  margin-bottom:5px;
}
.composition-drawer-heading h3 {margin:0;font-size:15px;font-weight:650}
.composition-drawer-heading p {margin:2px 0 0;font-size:12px;color:var(--composition-muted)}
.composition-drawer-close {
  flex:none;
  border:0;
  border-radius:5px;
  padding:4px 6px;
  color:var(--composition-focus);
  background:transparent;
  cursor:pointer;
}
.composition-drawer-close:hover {text-decoration:underline}
.composition-ingredients {list-style:none;margin:0;padding:0}
.composition-ingredient-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:4px 8px;
}
.composition-ingredient-row + .composition-ingredient-row {margin-top:4px}
.composition-ingredient.vcard {
  display:grid;
  grid-template-columns:minmax(0,11rem) minmax(90px,7rem) 5ch minmax(0,1fr);
  align-items:center;
  gap:6px 10px;
  min-width:0;
  min-height:36px;
  padding:6px 8px;
  border:0;
  border-radius:5px;
  background:transparent;
  color:var(--composition-ink);
  text-align:start;
  box-shadow:none;
}
.composition-ingredient.vcard:is(:hover,.sel) {
  background:color-mix(in srgb,var(--composition-focus) 12%,var(--composition-surface));
}
.composition-ingredient .composition-ingredient-name {
  color:inherit;
  font-size:13px;
  font-weight:600;
  overflow-wrap:anywhere;
}
.composition-ingredient-amount,.composition-ingredient-share {
  text-align:end;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.composition-ingredient .composition-ingredient-track {
  height:6px;
  border-radius:99px;
  background:color-mix(in srgb,var(--composition-focus) 14%,var(--composition-surface));
  overflow:hidden;
}
.composition-ingredient-track i {
  display:block;
  height:100%;
  border-radius:inherit;
  background:var(--composition-focus);
}
.composition-ingredient-row .composition-status {margin:0}
.composition-drawer.amounts-only .composition-ingredient.vcard {
  grid-template-columns:minmax(0,1fr) auto;
}
@container composition (max-width:550px) {
  .composition-chart {--composition-axis:32px;--composition-name-height:46px}
  .composition-chart.is-financial {--composition-axis:58px}
  .composition-tick span {inset-inline-end:calc(100% + 5px);font-size:11px}
  .composition-axis .composition-tick span {inset-inline-end:5px}
  .composition-column .composition-column-name {inset-inline:2px;font-size:11px}
  .composition-column-value small {display:block}
  .composition-column.has-callout .composition-column-value {transform:none}
  .composition-drawer {padding-inline:10px}
  .composition-ingredient-row {grid-template-columns:minmax(0,1fr);gap:0}
  .composition-ingredient.vcard {grid-template-columns:minmax(0,1fr) 84px 5ch}
  .composition-ingredient .composition-ingredient-track {grid-column:1 / -1}
  .composition-ingredient-row .composition-status {margin:0 8px 5px}
}
@container composition (max-width:340px) {
  .composition-chart:lang(en) {--composition-name-height:64px}
}
@media (max-width:1000px) {
  .composition-zoom .zside {margin-top:20px}
}
@media (max-width:560px) {
  .composition-zoom .zside {border-inline-start:0;border-top:1px solid var(--line);padding:14px 0 0}
}
.zside dl.info{margin:8px 0;display:grid;grid-template-columns:auto 1fr;gap:4px 10px;font-size:12.5px}
.zside dl.info dt{color:var(--muted);white-space:nowrap}.zside dl.info dd{margin:0}

/* ---- 公司下拉菜单（10-07：伊利、蒙牛、英科医疗、AdventureWorks，默认英科医疗） ---- */
.cosel{position:relative;display:inline-flex}
.cosel select{-webkit-appearance:none;appearance:none;font:inherit;font-size:14px;font-weight:600;line-height:20px;color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:5px 32px 5px 12px;cursor:pointer;min-width:8.5em}
.cosel select:hover{border-color:var(--accent)}
.cosel select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.cosel::after{content:'';position:absolute;right:13px;top:50%;width:6px;height:6px;margin-top:-5px;border-right:1.5px solid var(--muted);border-bottom:1.5px solid var(--muted);transform:rotate(45deg);pointer-events:none}
/* ---- 问NI：右下角悬浮按钮、悬浮窗、按住 Ctrl 时的高亮框 ---- */
.askfab{position:fixed;right:20px;bottom:20px;z-index:120;display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 18px 0 14px;border:0;border-radius:999px;background:var(--accent);color:#fff;font:inherit;font-size:14px;font-weight:600;box-shadow:var(--shadow);cursor:pointer}
.askfab svg{width:20px;height:20px}
.askfab:hover{filter:brightness(1.08)}
.askfab:focus-visible{outline:2px solid var(--text);outline-offset:2px}
.askfab.hide{display:none}
.askpanel{position:fixed;right:16px;bottom:16px;z-index:120;width:min(500px,calc(100vw - 32px));height:min(760px,calc(100vh - 32px));display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.askpanel.wide{width:min(1000px,calc(100vw - 32px));height:min(900px,calc(100vh - 32px))}
.askpanel[hidden]{display:none}
.askpanel.dragging iframe{pointer-events:none}
.askbar{display:flex;align-items:center;gap:8px;padding:7px 8px 7px 12px;background:var(--panel);border-bottom:1px solid var(--line);cursor:move;user-select:none;flex-wrap:wrap}
.askbar b{font-size:14px}
.askbar .seg button{padding:3px 10px;font-size:12.5px}
.askbar .sp{flex:1}
.askbar .ab{border:0;background:transparent;color:var(--muted);font:inherit;font-size:13px;height:28px;min-width:28px;padding:0 8px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.askbar .ab:hover{background:var(--accent-soft);color:var(--accent)}
.askpanel iframe{flex:1;width:100%;min-height:0;border:0;background:var(--bg)}
.askhint{font-size:12px;color:var(--muted);padding:6px 12px;border-top:1px solid var(--line);background:var(--panel)}
.askhi{position:fixed;display:none;pointer-events:none;z-index:110;border:2px solid var(--accent);border-radius:8px;background:color-mix(in srgb,var(--accent) 10%,transparent)}
.askhi span{position:absolute;left:-2px;bottom:100%;margin-bottom:4px;max-width:min(460px,80vw);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;line-height:22px;padding:0 9px;border-radius:6px;background:var(--accent);color:#fff;box-shadow:var(--shadow)}
.askhi.below span{bottom:auto;top:100%;margin:4px 0 0}
body.asking,body.asking *{cursor:help !important}
@media (max-width:560px){.askpanel,.askpanel.wide{left:0;right:0;bottom:0;width:100%;height:88vh;border-radius:14px 14px 0 0}.askbar{cursor:default}.askfab{right:14px;bottom:14px}}

/* ---------- 地域分布（10-13 侨银原型）：省份方格图；颜色是一个色相的 5 档（蓝，按 dataviz 校验过：浅色端对底色 ≥ 2:1），0 条是灰色加斜纹 ---------- */
:root{--geo1:#86b6ef;--geo2:#5598e7;--geo3:#2a78d6;--geo4:#1c5cab;--geo5:#0d366b}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--geo1:#184f95;--geo2:#256abf;--geo3:#3987e5;--geo4:#6da7ec;--geo5:#b7d3f6}}
:root[data-theme="dark"]{--geo1:#184f95;--geo2:#256abf;--geo3:#3987e5;--geo4:#6da7ec;--geo5:#b7d3f6}
.geo{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:14px;display:flex;gap:10px 18px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.geo[hidden]{display:none}
.geo.go{cursor:zoom-in;transition:box-shadow .18s,border-color .18s}.geo.go:hover{box-shadow:var(--shadow);border-color:var(--accent)}
.geo .gtext{flex:1 1 300px;min-width:0}.geo .row{display:flex;align-items:baseline;gap:6px 10px;flex-wrap:wrap}
.geo .mx{margin-left:auto;font-size:12.5px;color:var(--accent);white-space:nowrap}
@media (max-width:560px){.geo .mx{white-space:normal;min-width:0}}
.gmini{flex:none}
.ggrid{position:relative;max-width:100%}
.gtile{position:absolute;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.15;font-size:12px;cursor:pointer;overflow:hidden;text-align:center;transition:box-shadow .15s}
.ggrid.mini .gtile{border-radius:2px;cursor:inherit}
.gtile b{font-weight:600;font-size:12.5px;white-space:nowrap}.gtile span{font-variant-numeric:tabular-nums;font-size:12px}
.gtile.zero,.gleg i.zero{background-color:var(--na);background-image:repeating-linear-gradient(135deg,transparent 0 4px,color-mix(in srgb,var(--muted) 40%,transparent) 4px 5px)}
.gtile:hover,.gtile:focus-visible{box-shadow:0 0 0 2px var(--text);outline:none;z-index:2}
.gbox{position:absolute;inset:0;overflow:auto;padding:2px}
.gfocus{margin:8px 0 4px;min-height:1.4em;color:var(--text)}
.gleg{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;margin:4px 0}.gleg i{display:inline-block;width:14px;height:12px;border-radius:2px;margin-right:4px;vertical-align:middle}
.goff{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.gopen{border:1px dashed var(--dash);background:var(--panel);color:var(--text);border-radius:8px;padding:4px 10px;cursor:pointer;font-size:12.5px}.gopen:hover{border-color:var(--accent)}
.greg{display:flex;flex-direction:column;gap:6px;margin:6px 0}
.greg .gr{display:grid;grid-template-columns:64px minmax(0,1fr);gap:2px 8px;align-items:center;font-size:12.5px}
.greg .gr i{height:8px;border-radius:0 4px 4px 0;background:var(--c1)}.greg .gr b{grid-column:2;font-weight:500;font-variant-numeric:tabular-nums}
/* ---------- 行业与竞争（10-13 侨银原型） ---------- */
.ibox{position:absolute;inset:0;overflow:auto;padding:2px 2px 12px}
.ittl{margin:12px 0 2px;font-size:13.5px}
.ileg{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--muted);margin:2px 0 4px}.ileg i{display:inline-block;width:12px;height:10px;margin-right:4px;vertical-align:middle;border-radius:2px}
.ileg .sw1{background:var(--c1)}.ileg .sw2{background:var(--c2);height:3px;width:14px}.ileg .sw1.dot{width:10px;height:10px;border-radius:50%}
.ileg .sw2.dash{background:none;border-top:2px dashed var(--c2);height:0;border-radius:0}.ileg .swr{background:none;border:1.5px dashed var(--dash)}
svg.isvg{display:block;max-width:100%;height:auto;overflow:visible}
svg .igrid{stroke:var(--line);stroke-width:1}svg .ibase{stroke:var(--muted);stroke-width:1}
svg .itick{fill:var(--muted);font-size:11px}svg .ilab{fill:var(--text);font-size:12px;font-weight:600}
svg .ib1{fill:var(--c1)}svg .ib1.read{fill:color-mix(in srgb,var(--c1) 45%,var(--panel));stroke:var(--dash);stroke-dasharray:3 2;stroke-width:1}
svg .il2{fill:none;stroke:var(--c2);stroke-width:2}svg .il2.dash{stroke-dasharray:6 4}
svg .im2{fill:var(--c2);stroke:var(--panel);stroke-width:2;cursor:pointer}svg .im2.hollow{fill:var(--panel);stroke:var(--c2);stroke-width:2}
svg .im1{fill:var(--c1);stroke:var(--panel);stroke-width:2;cursor:pointer}
svg .ihit{fill:transparent;cursor:pointer}
.ifl{display:inline-block;font-size:11.5px;line-height:17px;padding:0 6px;border-radius:999px;border:1px solid var(--warn);color:var(--warn);margin-left:4px;white-space:nowrap}
.ifm{color:var(--warn);font-size:10px;margin-left:1px}
.inote{margin:8px 0;line-height:1.5;max-width:980px}
.inotes ul{margin:4px 0;padding-left:18px}.inotes li{margin:2px 0}
.iscroll{overflow-x:auto;max-width:100%}
.ipeer td.wrap{white-space:normal;min-width:120px;max-width:200px}
.otab tr.us td{background:var(--accent-soft)}
.icell{cursor:pointer}td.icell:hover,div.icell:hover,tr.icell:hover td{background:var(--accent-soft)}.icell.sel,tr.icell.sel td{outline:2px solid var(--accent);outline-offset:-2px}
.ihead{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:2px 0 6px;font-size:13.5px}
.iyr button{padding:3px 12px;font-size:12.5px}
.itop{display:flex;flex-direction:column;gap:3px;margin:4px 0;max-width:900px}
.itr{display:flex;align-items:center;gap:6px 10px;font-size:12.5px;padding:3px 6px;border-radius:6px;min-width:0}
.itr .rk{flex:none;width:20px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.itr .nm{flex:none;width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.itr .bar{flex:1 1 60px;min-width:30px;height:10px;background:var(--bg);border-radius:0 4px 4px 0;overflow:hidden}.itr .bar i{display:block;height:100%;background:var(--oth);border-radius:0 4px 4px 0}
.itr.us .bar i{background:var(--c1)}.itr.us .nm{font-weight:600}
.itr .iv{flex:none;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}
.ilink{margin-top:8px;border:1px solid var(--line);background:var(--panel);color:var(--accent);border-radius:8px;padding:5px 12px;cursor:pointer}
.ibars{display:flex;align-items:flex-end;gap:10px;margin-top:8px;flex-wrap:wrap}.ibars svg .ib1{fill:var(--c1)}.ibars svg .read{fill:color-mix(in srgb,var(--c1) 45%,var(--panel))}
@media (max-width:560px){.itr .nm{width:96px}.itr .muted.small{display:none}}

.rank-other{color:var(--text);font-size:11px;box-shadow:none}
.rank-line .mseg{padding-inline:0;text-align:center}
.market-color-key{display:flex;flex-wrap:wrap;gap:4px 12px;list-style:none;padding:0;margin:8px 0 0;font-size:12px}
.market-color-key li{display:inline-flex;align-items:center;gap:5px}
.market-color-key i{width:9px;height:9px;border-radius:2px}
.market-color-key .us{font-weight:700}
.rank-head .mscope{font-variant-numeric:tabular-nums}
.rank-back{background:none;border:0;padding:0;font:inherit;text-align:left}
@media(max-width:560px){.rank-head .mscope{flex-basis:100%}}
.rank-market .mcol:focus-visible,.rank-market circle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
