/* 个股工作台：全屏、桌面级行情布局。页面功能仍复用 tech.html 的原有数据与分析逻辑。 */
:root { --wb-red:#ff3b30; --wb-green:#00a870; --wb-ink:#20242b; --wb-muted:#73777f; --wb-line:#edf0f3; }
body.stock-workbench-page { margin:0; min-width:1024px; height:100vh; overflow:hidden; color:var(--wb-ink); background:#f5f6f8; font-size:14px; }
.wb-page-title { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0; }
.stock-workbench, .stock-workbench button, .stock-workbench input, .stock-workbench select { font-family:"PingFang SC","Microsoft YaHei UI",system-ui,sans-serif; }
.stock-workbench { height:100vh; display:grid; grid-template-rows:72px 58px 48px minmax(0,1fr) 38px; background:#fff; }

.wb-topbar { display:flex; align-items:center; gap:28px; padding:0 22px; border-bottom:8px solid #f5f6f8; background:#fff; }
.wb-brand { display:flex; align-items:center; gap:9px; min-width:142px; color:#272b31; }
.wb-brand img { width:38px; height:38px; object-fit:contain; }
.wb-brand strong { font-size:23px; letter-spacing:-1px; }
.wb-market-nav { display:flex; align-items:center; gap:34px; height:100%; white-space:nowrap; }
.wb-market-nav a,.wb-market-nav button { border:0; background:none; color:#44484f; font-size:17px; cursor:pointer; padding:22px 0 18px; }
.wb-market-nav .active { color:#16191e; font-weight:700; }
.wb-watch-picker { position:relative; display:flex; align-items:center; height:100%; }
.wb-watch-picker > button { display:flex; align-items:center; gap:7px; }
.wb-watch-picker > button[aria-expanded="true"] .wb-caret { transform:rotate(180deg); }
.wb-watch-menu { position:absolute; z-index:60; top:calc(100% - 7px); left:-16px; width:286px; max-height:min(470px,70vh); overflow:hidden; border:1px solid #dfe4ea; border-radius:10px; background:#fff; box-shadow:0 14px 38px rgba(25,32,45,.18); }
.wb-watch-menu[hidden] { display:none; }
.wb-watch-head { height:42px; display:flex; align-items:center; justify-content:space-between; padding:0 14px; border-bottom:1px solid #edf0f3; }
.wb-watch-head b { color:#262b32; font-size:13px; }
.wb-market-nav .wb-watch-head a { padding:0; color:#536dfe; font-size:12px; }
.wb-watch-list { max-height:400px; overflow:auto; padding:5px 0; }
.wb-market-nav .wb-watch-item { width:100%; height:48px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 14px; text-align:left; }
.wb-market-nav .wb-watch-item:hover { background:#f5f7fa; }
.wb-watch-item > span { min-width:0; display:flex; align-items:baseline; gap:8px; }
.wb-watch-item b { overflow:hidden; color:#242931; font-size:14px; text-overflow:ellipsis; }
.wb-watch-item em { color:#9299a3; font-size:11px; font-style:normal; }
.wb-watch-item small { max-width:76px; overflow:hidden; color:#9299a3; font-size:11px; text-overflow:ellipsis; }
.wb-watch-loading,.wb-watch-empty { padding:24px 14px; color:#858c96; font-size:12px; text-align:center; }
.wb-watch-empty a { display:block; margin-top:8px; padding:0 !important; color:#536dfe !important; font-size:12px !important; }
.wb-watch-empty small { display:block; margin-top:6px; }
.wb-search { position:relative; flex:1; max-width:380px; min-width:220px; margin-left:8px; }
.wb-search input { width:100%; height:42px; padding:0 44px; border:1px solid transparent; border-radius:9px; outline:none; background:#f5f6f8; color:#272b31; }
.wb-search input:focus { background:#fff; border-color:#cfd4da; box-shadow:0 0 0 3px rgba(31,111,235,.08); }
.wb-search-icon { position:absolute; left:15px; top:5px; z-index:2; font-size:25px; color:#8b9098; transform:rotate(-18deg); }
.wb-search .ac-panel { top:48px; }
.wb-ask { display:inline-flex; align-items:center; gap:7px; border:0; background:none; color:#4962e5; font-size:16px; font-weight:700; cursor:pointer; white-space:nowrap; }
.wb-ask .wb-ask-avatar { display:inline-flex; align-items:center; justify-content:center; width:34px; height:30px; overflow:hidden; }
.wb-ask .wb-ask-avatar img { display:block; width:34px; height:25px; object-fit:contain; }
.wb-return,.wb-login { height:42px; display:inline-flex; align-items:center; justify-content:center; padding:0 21px; border:1px solid #aeb3ba; border-radius:9px; color:#363a40; font-size:15px; white-space:nowrap; }
.wb-return { margin-left:auto; }
.wb-login { border-color:#ff4d55; color:#f3343e; font-weight:700; min-width:88px; }

.wb-quote { position:relative; display:flex; align-items:center; min-width:0; padding:0 28px 0 38px; border-bottom:1px solid var(--wb-line); background:#fff; overflow:visible; }
.wb-stock-summary { flex:0 0 auto; display:flex; align-items:center; gap:18px; min-width:0; white-space:nowrap; }
.wb-stock-id { display:flex; align-items:center; line-height:1.25; }
.wb-stock-id strong { font-size:19px; margin-right:9px; }
.wb-stock-id span { color:#71767d; font-size:14px; }
.wb-stock-id em { display:inline-block; margin-left:7px; padding:0 4px; border:1px solid #cfd3d8; border-radius:3px; color:#8a8e94; font-size:10px; font-style:normal; }
.wb-main-price { display:flex; align-items:baseline; gap:9px; margin:0; padding-left:18px; border-left:1px solid #edf0f3; }
.wb-main-price b { font-size:22px; line-height:1.1; color:var(--wb-green); }
.wb-main-price span { font-size:13px; font-weight:650; color:var(--wb-green); }
.wb-main-price.up b,.wb-main-price.up span { color:var(--wb-red); }
.wb-main-price.down b,.wb-main-price.down span { color:var(--wb-green); }
.wb-quote-grid { flex:1 1 auto; min-width:0; display:flex; align-items:center; justify-content:center; gap:clamp(12px,1.35vw,28px); margin-left:clamp(22px,2.5vw,54px); }
.wb-quote-grid span { display:flex; align-items:baseline; gap:5px; white-space:nowrap; }
.wb-quote-grid i { width:auto; color:#858a92; font-size:12px; font-style:normal; }
.wb-quote-grid b { color:#353940; font-weight:650; }
.wb-quote-grid .up { color:var(--wb-red); }.wb-quote-grid .down { color:var(--wb-green); }
.wb-quote-tools { flex:0 0 auto; margin-left:18px; display:flex; align-items:center; gap:10px; white-space:nowrap; }
.wb-quote-tools button { display:flex; align-items:center; gap:7px; height:34px; padding:0 5px; border:0; border-radius:6px; background:#fff; color:#20242b; font-size:14px; cursor:pointer; }
.wb-quote-tools button:hover,.wb-quote-tools button.active { background:#f4f5f7; }
.wb-quote-tools .fx { font:italic 25px Georgia,serif; line-height:1; }
.wb-caret { color:#16191e; font-size:10px; }
.wb-candle-icon { position:relative; display:inline-flex; align-items:center; gap:5px; height:25px; padding:0 3px; }
.wb-candle-icon i { position:relative; width:7px; height:17px; background:#17191d; }
.wb-candle-icon i::before { content:""; position:absolute; left:3px; top:-5px; width:1px; height:27px; background:#17191d; }
.wb-candle-icon i:nth-child(2) { height:13px; }
.wb-kline-picker { position:relative; }
.wb-kline-picker [data-kline-trigger][aria-expanded="true"] .wb-caret { transform:rotate(180deg); }
.wb-kline-menu { position:absolute; z-index:20; top:calc(100% + 8px); right:-8px; width:210px; padding:10px 0; border:1px solid #e1e4e8; border-radius:8px; background:#fff; box-shadow:0 10px 28px rgba(25,32,45,.16); }
.wb-kline-menu[hidden] { display:none; }
.wb-quote-tools .wb-kline-menu button { width:100%; height:48px; padding:0 18px; border-radius:0; gap:14px; font-size:15px; }
.wb-kline-menu button:hover { background:#f5f6f8; }
.wb-kline-menu button > span:nth-child(2) { flex:1; text-align:left; }
.wb-kline-menu button b { visibility:hidden; font-size:22px; font-weight:500; }
.wb-kline-menu button.selected b { visibility:visible; }
.wb-style-icon { position:relative; flex:0 0 28px; width:28px; height:27px; }
.wb-style-icon:not(.line):not(.area) { display:flex; align-items:center; justify-content:center; gap:5px; }
.wb-style-icon i { position:relative; width:7px; height:18px; border:2px solid #15171a; background:#15171a; }
.wb-style-icon i::before { content:""; position:absolute; left:2px; top:-7px; width:1px; height:28px; background:#15171a; }
.wb-style-icon i:nth-child(2) { height:14px; }
.wb-style-icon.hollow i { background:#fff; }
.wb-style-icon.up-hollow i:first-child,.wb-style-icon.down-hollow i:nth-child(2) { background:#fff; }
.wb-style-icon.line::before,.wb-style-icon.area::before { content:""; position:absolute; inset:4px 1px 5px; border-left:2px solid #15171a; border-top:2px solid #15171a; transform:skewY(-43deg) rotate(5deg); }
.wb-style-icon.area { background:linear-gradient(145deg,transparent 48%,rgba(80,90,105,.18) 49%); }

.wb-periodbar { display:flex; align-items:center; padding:0 88px 0 76px; border-bottom:1px solid var(--wb-line); background:#fff; }
.wb-periods { display:flex; align-items:stretch; gap:24px; height:100%; }
.wb-periods .tab { position:relative; flex:none; display:flex; align-items:center; padding:2px 0 0; border-radius:0; background:none; box-shadow:none; color:#30343a; font-size:15px; font-weight:500; white-space:nowrap; }
.wb-periods .tab.active { color:#171a1f; font-weight:700; }
.wb-periods .tab.active::after { content:""; position:absolute; left:6px; right:6px; bottom:3px; height:3px; border-radius:2px; background:#ff3b43; }
.wb-periods .tab.pending { color:#777c83; }
.wb-replay-picker { position:relative; flex:0 0 auto; align-self:stretch; display:flex; align-items:center; margin-left:22px; padding-left:20px; border-left:1px solid #e8ebef; }
.wb-replay-trigger { height:36px; display:flex; align-items:center; gap:7px; padding:0 9px; border:0; border-radius:7px; background:#fff; color:#686e77; font-size:15px; cursor:pointer; white-space:nowrap; }
.wb-replay-trigger:hover,.wb-replay-trigger.active,.wb-replay-trigger[aria-expanded="true"] { background:#f1f3f6; color:#20242b; }
.wb-replay-trigger svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.wb-replay-popover { position:absolute; z-index:40; top:calc(100% + 7px); left:0; width:286px; padding:14px; border:1px solid #dde2e8; border-radius:8px; background:#fff; box-shadow:0 12px 32px rgba(25,32,45,.18); }
.wb-replay-popover[hidden],.wb-replay-running[hidden],.wb-replay-setup[hidden] { display:none; }
.wb-replay-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:13px; }
.wb-replay-head strong { color:#22272e; font-size:15px; }
.wb-replay-head button { width:28px; height:28px; padding:0; border:0; border-radius:5px; background:#fff; color:#7a818b; font-size:22px; cursor:pointer; }
.wb-replay-head button:hover { background:#f1f3f6; }
.wb-replay-setup { display:grid; gap:9px; }
.wb-replay-label { color:#737a84; font-size:12px; }
.wb-replay-pick-hint { display:flex; align-items:center; gap:10px; padding:11px; border:1px solid #cfd7ff; border-radius:6px; background:#f5f7ff; }
.wb-replay-pick-hint > span { flex:0 0 28px; width:28px; height:28px; display:grid; place-items:center; border:1px solid #7f92f7; border-radius:50%; color:#536dfe; font-size:20px; line-height:1; }
.wb-replay-pick-hint div { min-width:0; display:grid; gap:2px; }
.wb-replay-pick-hint strong { color:#344bc7; font-size:13px; }
.wb-replay-pick-hint small { color:#70798a; font-size:11px; }
.wb-replay-speeds { display:grid; grid-template-columns:repeat(4,1fr); gap:5px; }
.wb-replay-speeds button { height:32px; padding:0; border:1px solid #dde2e8; border-radius:5px; background:#fff; color:#525963; cursor:pointer; }
.wb-replay-speeds button.active { border-color:#536dfe; background:#eef1ff; color:#4058dc; font-weight:700; }
.wb-chart-cell.replay-picking .wb-chart-canvas { cursor:crosshair; }
.wb-chart-cell.replay-picking { box-shadow:inset 0 0 0 2px rgba(83,109,254,.5); }
.wb-replay-status { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:12px; }
.wb-replay-status strong { color:#242a31; font-size:14px; }
.wb-replay-status span { color:#8a919b; font-size:12px; }
.wb-replay-controls { display:grid; grid-template-columns:36px 40px 36px minmax(54px,1fr); gap:6px; }
.wb-replay-controls button { height:36px; min-width:0; padding:0; border:1px solid #dce1e7; border-radius:6px; background:#fff; color:#40464f; font:inherit; cursor:pointer; }
.wb-replay-controls button { font-size:20px; }
.wb-replay-controls button.primary { border-color:#536dfe; background:#536dfe; color:#fff; font-size:14px; }
.wb-replay-controls button.exit { font-size:12px; }
.wb-replay-controls button:disabled { opacity:.35; cursor:not-allowed; }
.wb-replay-runtime-speed { display:grid; gap:7px; margin-top:13px; padding-top:12px; border-top:1px solid #edf0f3; }
.wb-view-actions { display:flex; align-items:center; gap:7px; margin-left:auto; }
.wb-view-actions > button,.wb-layout-picker > button { height:36px; display:flex; align-items:center; gap:7px; padding:0 11px; border:0; border-radius:7px; background:#fff; color:#30343a; font-size:14px; cursor:pointer; }
.wb-view-actions > button:hover,.wb-layout-picker > button:hover,.wb-layout-picker > button[aria-expanded="true"] { background:#f1f3f6; }
.wb-member-locked { color:#98a1ad!important; }
.wb-member-locked::after { content:"\1f512"; margin-left:3px; font-size:9px; filter:grayscale(1); }
.wb-grid-icon.layout-icon { flex:0 0 20px; width:20px; height:20px; }
.wb-layout-picker { position:relative; }
.wb-layout-picker > button[aria-expanded="true"] .wb-caret { transform:rotate(180deg); }
.wb-layout-menu { position:absolute; z-index:30; top:calc(100% + 7px); right:0; width:152px; padding:7px 0; border:1px solid #e0e4e9; border-radius:8px; background:#fff; box-shadow:0 10px 28px rgba(25,32,45,.16); }
.wb-layout-menu[hidden] { display:none; }
.wb-layout-menu button { width:100%; height:44px; display:flex; align-items:center; gap:12px; padding:0 14px; border:0; background:#fff; color:#4a5260; font-size:15px; cursor:pointer; }
.wb-layout-menu button:hover,.wb-layout-menu button.selected { background:#f4f5f7; }
.wb-layout-menu button > span:nth-child(2) { flex:1; text-align:left; }
.wb-layout-menu button b { visibility:hidden; color:#0a9b86; font-size:18px; }
.wb-layout-menu button.selected b { visibility:visible; }
.layout-icon { position:relative; width:24px; height:24px; border:1.5px solid #596170; }
.layout-icon.cols::after { content:""; position:absolute; top:0; bottom:0; left:50%; border-left:1.5px solid #596170; }
.layout-icon.rows::after { content:""; position:absolute; left:0; right:0; top:50%; border-top:1.5px solid #596170; }
.layout-icon.four::before,.layout-icon.four::after { content:""; position:absolute; background:#596170; }.layout-icon.four::before { top:0; bottom:0; left:50%; width:1.5px; }.layout-icon.four::after { left:0; right:0; top:50%; height:1.5px; }

/* 抽屉内容不能撑高隐式行，否则概念列表关闭后双图仍会超出可视区。 */
.wb-stage { position:relative; display:grid; grid-template-rows:minmax(0,1fr); grid-template-columns:62px minmax(0,1fr) 70px; min-height:0; overflow:hidden; }
.wb-draw-tools,.wb-right-rail { z-index:4; display:flex; flex-direction:column; align-items:center; background:#fff; }
.wb-draw-tools { border-right:1px solid var(--wb-line); padding:9px 0; gap:6px; }
.wb-draw-tools button { flex:0 0 auto; width:38px; height:38px; display:grid; place-items:center; padding:0; border:0; border-radius:7px; background:#fff; color:#474c53; font-size:20px; cursor:pointer; }
.wb-draw-tools button:hover,.wb-draw-tools button.active { background:#eceef1; color:#111; }
.wb-draw-tools .wb-line-trigger { position:relative; }
.wb-draw-tools .wb-line-trigger > span { display:flex; align-items:center; justify-content:center; }
.wb-draw-tools .wb-line-trigger i { display:none; }
.wb-draw-tools .wb-tool-icon { width:27px; height:27px; stroke-width:1.8; }
.wb-draw-tools .wb-crosshair-icon { width:29px; height:29px; stroke-width:1.65; }
.wb-tool-separator { flex:0 0 auto; width:28px; height:1px; margin:2px 0; background:#dfe2e5; }
.wb-line-menu { position:absolute; z-index:30; top:9px; left:54px; width:218px; max-height:calc(100% - 18px); overflow:auto; padding:8px 0; border:1px solid #e1e4e8; border-radius:10px; background:#fff; box-shadow:0 14px 36px rgba(21,29,42,.18); }
.wb-line-menu[hidden] { display:none; }
.wb-line-menu button { width:100%; height:48px; display:flex; align-items:center; gap:15px; padding:0 18px; border:0; background:#fff; color:#252a31; cursor:pointer; }
.wb-line-menu button:hover,.wb-line-menu button.selected { background:#f1f2f4; }
.wb-line-menu button span { width:34px; color:#4c525a; font:500 22px/1 ui-monospace,SFMono-Regular,monospace; text-align:center; }
.wb-tool-icon { width:28px; height:28px; display:block; overflow:visible; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.wb-tool-icon circle { fill:#fff; }
.wb-line-menu button b { font-size:15px; font-weight:600; }
.wb-line-menu button.selected::after { content:"✓"; margin-left:auto; color:#111; font-size:19px; }
.wb-cycle-menu { top:112px; }
.wb-cycle-menu button span { font-size:19px; letter-spacing:-4px; }
.wb-delete-menu { position:absolute; z-index:40; width:286px; max-height:calc(100% - 16px); overflow:auto; padding:7px 0; border:1px solid #dfe3e8; border-radius:9px; background:#fff; box-shadow:0 14px 38px rgba(23,31,44,.2); }
.wb-delete-menu[hidden] { display:none; }
.wb-delete-menu::before { position:absolute; top:18px; left:-7px; width:12px; height:12px; border-bottom:1px solid #dfe3e8; border-left:1px solid #dfe3e8; background:#fff; content:""; transform:rotate(45deg); }
.wb-delete-menu button { width:100%; height:44px; display:grid; grid-template-columns:28px minmax(0,1fr) 28px; align-items:center; gap:10px; padding:0 14px; border:0; background:#fff; color:#252a31; font:inherit; text-align:left; cursor:pointer; }
.wb-delete-menu button:hover { background:#f3f4f6; }
.wb-delete-menu button:disabled { color:#a5abb3; cursor:default; }
.wb-delete-menu button:disabled:hover { background:#fff; }
.wb-delete-menu button span { color:#656d78; font-size:18px; text-align:center; }
.wb-delete-menu button b { overflow:hidden; font-size:14px; font-weight:500; text-overflow:ellipsis; white-space:nowrap; }
.wb-delete-menu button small { color:#8a929d; font-size:12px; text-align:right; }
.wb-delete-menu button.danger:not(:disabled):hover { color:#d9363e; background:#fff4f4; }
.wb-delete-separator { display:block; height:1px; margin:6px 0; background:#e5e8ec; }
.wb-chart-context { position:absolute; z-index:60; width:210px; overflow:hidden; padding:6px; border:1px solid #dfe3e8; border-radius:10px; background:#fff; box-shadow:0 14px 38px rgba(23,31,44,.2); }
.wb-chart-context[hidden] { display:none; }
.wb-chart-context button { width:100%; height:42px; display:flex; align-items:center; gap:12px; padding:0 12px; border:0; border-radius:7px; background:#fff; color:#252a31; font-size:14px; text-align:left; cursor:pointer; }
.wb-chart-context button:hover { background:#f1f2f4; }
.wb-chart-context button span { width:25px; color:#555d68; font-size:18px; text-align:center; }
.wb-chart-context button b { font-weight:500; }
.wb-right-rail { border-left:1px solid var(--wb-line); padding-top:2px; }
.wb-right-rail button { width:100%; min-height:55px; border:0; border-left:3px solid transparent; background:#fff; color:#555a61; font-size:15px; cursor:pointer; }
.wb-right-rail button:hover,.wb-right-rail button.active { color:#f23741; background:#fafafa; border-left-color:#ff3b43; }
.wb-right-rail small { font-size:11px; }
.wb-right-rail .wb-beta-tag { display:block; width:max-content; margin:3px auto 0; padding:1px 4px; border-radius:4px; background:#fff0f1; color:#e33a44; font-size:9px; line-height:1.35; }
.wb-chart-panel { position:relative; min-width:0; min-height:0; overflow:hidden; background:#fff; }
.wb-chart-panel .chart-box { position:absolute; inset:0; height:100%; margin:0; }
.wb-chart-grid { height:100%; display:grid; min-width:0; min-height:0; background:#eef1f4; gap:1px; }
.wb-chart-grid.layout-single { grid-template-columns:1fr; grid-template-rows:1fr; }
.wb-chart-grid.layout-1x2 { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:1fr; }
.wb-chart-grid.layout-2x1 { grid-template-columns:1fr; grid-template-rows:repeat(2,minmax(0,1fr)); }
.wb-chart-grid.layout-2x2 { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(2,minmax(0,1fr)); }
.wb-chart-cell { position:relative; min-width:0; min-height:0; overflow:hidden; background:#fff; }
.wb-chart-cell.selected { z-index:1; }
.wb-chart-cell.selected::after { content:""; position:absolute; z-index:10; inset:0; box-sizing:border-box; border:1px solid #536dfe; pointer-events:none; }
.wb-chart-cell.selected .wb-pane-toolbar { padding-left:12px; border-bottom-color:#cfd7ff; background:rgba(247,249,255,.97); }
.wb-chart-cell.selected .wb-pane-toolbar::before { content:""; flex:0 0 auto; width:5px; height:5px; border-radius:50%; background:#536dfe; box-shadow:0 0 0 3px rgba(83,109,254,.13); }
.wb-chart-canvas { position:absolute; inset:34px 0 30px; width:100%; height:auto !important; min-height:0; }
.wb-chip-panel { position:absolute; z-index:8; top:34px; right:0; bottom:30px; width:228px; overflow:hidden; border-left:1px solid #e1e5ea; background:rgba(255,255,255,.97); color:#3f4650; }
.wb-chip-panel[hidden] { display:none; }
.wb-chart-grid:not(.layout-single) .wb-chip-panel { width:min(210px,42%); }
.wb-chart-grid:not(.layout-single) .wb-chip-chart svg { width:calc(100% - 20px); }
.wb-chip-chart { position:absolute; inset:0; overflow:hidden; }
.wb-chip-chart header { position:absolute; z-index:2; top:5px; right:9px; left:9px; display:flex; align-items:center; justify-content:space-between; color:#606873; font-size:10px; }
.wb-chip-chart header b { color:#30363d; font-size:12px; }
.wb-chip-chart svg { position:absolute; top:0; left:10px; width:156px; height:100%; overflow:visible; }
.wb-chip-stats { position:absolute; z-index:3; top:auto; right:0; bottom:0; left:0; padding:8px 10px 7px; border-top:1px solid #e2e6eb; background:#fff; box-shadow:0 -5px 12px rgba(255,255,255,.92); }
.wb-chip-legend { display:flex; align-items:center; gap:12px; margin-bottom:6px; color:#717984; font-size:10px; }
.wb-chip-legend span { display:flex; align-items:center; gap:4px; }.wb-chip-legend i { width:7px; height:7px; display:block; }
.wb-chip-legend i.profit { background:#e25555; }.wb-chip-legend i.trapped { background:#18a878; }
.wb-chip-legend em { margin-left:auto; color:#9299a3; font-size:9px; font-style:normal; }
.wb-chip-stats dl { display:grid; gap:3px; margin:0; }
.wb-chip-stats dl div { display:flex; align-items:center; justify-content:space-between; gap:8px; }
.wb-chip-stats dt { color:#757d88; font-size:10px; }.wb-chip-stats dd { margin:0; color:#2e343b; font-size:11px; font-weight:750; font-variant-numeric:tabular-nums; }
.wb-chip-range-tabs { display:grid; grid-template-columns:1fr 1fr; gap:3px; margin:6px 0; padding:2px; border-radius:5px; background:#f1f3f6; }
.wb-chip-range-tabs button { height:23px; border:0; border-radius:4px; color:#6f7680; background:transparent; font:700 10px/1 inherit; cursor:pointer; }
.wb-chip-range-tabs button.active { color:#252a31; background:#fff; box-shadow:0 1px 3px rgba(20,29,43,.1); }
.wb-time-axis { position:absolute; z-index:8; left:0; right:0; height:30px; overflow:hidden; border-top:1px solid #e5e9ef; background:#fff; color:#475569; pointer-events:none; }
.wb-time-axis-labels { position:absolute; inset:0; }
.wb-time-axis-labels span { position:absolute; top:7px; font-size:10px; line-height:16px; white-space:nowrap; transform:translateX(-50%); }
.wb-crosshair-date { position:absolute; z-index:9; min-width:max-content; padding:5px 8px; border-radius:4px; background:#111827; color:#fff; font-size:11px; line-height:16px; white-space:nowrap; transform:translateX(-50%); pointer-events:none; box-shadow:0 2px 7px rgba(15,23,42,.18); }
.wb-crosshair-date[hidden] { display:none; }
.wb-pane-toolbar { position:absolute; z-index:4; top:0; left:0; right:0; height:34px; display:flex; align-items:center; gap:8px; padding:0 10px; border-bottom:1px solid #edf0f3; background:rgba(255,255,255,.96); }
.wb-pane-search { position:relative; width:185px; }
.wb-pane-search input { width:100%; height:26px; padding:0 8px; border:1px solid transparent; border-radius:5px; background:transparent; color:#2b3139; font-size:13px; font-weight:650; outline:none; }
.wb-pane-search input:hover,.wb-pane-search input:focus { border-color:#dbe0e6; background:#f7f8fa; }
.wb-pane-search .ac-panel { top:30px; min-width:260px; }
.wb-pane-toolbar small { overflow:hidden; color:#9299a3; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.wb-intraday-back { flex:0 0 auto; height:24px; margin-left:auto; padding:0 9px; border:1px solid #d8dfea; border-radius:6px; background:#fff; color:#3559c7; font-size:11px; cursor:pointer; }
.wb-intraday-back:hover { border-color:#9eb0ee; background:#f2f5ff; }
.wb-intraday-back[hidden] { display:none; }
.wb-chart-panel .chart-mask { background:rgba(255,255,255,.84); }
.wb-drawing-layer { position:absolute; inset:0; pointer-events:none; z-index:7; }
.wb-drawing-layer.is-drawing { pointer-events:auto; cursor:crosshair; }
.wb-drawing-layer > svg { position:absolute; inset:0; width:100%; height:100%; overflow:hidden; pointer-events:none; }
.wb-drawing-shape { pointer-events:stroke; cursor:pointer; }
.wb-drawing-shape:not(.wb-rectangle-shape) { fill:none; }
.wb-drawing-hit { fill:none; stroke:transparent; stroke-width:14; pointer-events:stroke; cursor:pointer; }
.wb-rectangle-shape { pointer-events:all; }
.wb-rectangle-hit { fill:transparent; stroke:transparent; stroke-width:14; pointer-events:all; cursor:pointer; }
.wb-drawing-text { pointer-events:all; cursor:text; user-select:none; }
.wb-interval-label { font-family:"PingFang SC","Microsoft YaHei UI",sans-serif; pointer-events:none; }
.wb-interval-close { pointer-events:all; cursor:pointer; }
.wb-drawing-handle { fill:#fff; pointer-events:auto; cursor:move; }
.wb-draw-stylebar { position:absolute; z-index:4; top:12px; left:50%; display:flex; align-items:center; gap:3px; height:44px; padding:0 8px; border:1px solid #e3e3e3; border-radius:13px; background:#fff; box-shadow:0 4px 10px rgba(0,0,0,.14); transform:translateX(-50%); pointer-events:auto; }
.wb-draw-stylebar[hidden] { display:none; }
.wb-draw-stylebar > button[hidden] { display:none; }
.wb-style-grip { width:24px; height:32px; display:grid; place-items:center; color:#090909; cursor:grab; }
.wb-style-grip svg { width:14px; height:25px; fill:currentColor; }
.wb-draw-stylebar > button { position:relative; min-width:40px; height:38px; display:flex; align-items:center; justify-content:center; gap:9px; padding:0 8px; border:0; border-radius:7px; background:#fff; color:#090909; font-size:22px; cursor:pointer; }
.wb-draw-stylebar > button:hover,.wb-draw-stylebar > button.active { background:#eceef1; }
.wb-draw-stylebar > button b { font-size:15px; font-weight:500; }
.wb-draw-stylebar > button > svg { width:25px; height:25px; overflow:visible; fill:none; stroke:currentColor; stroke-width:2.15; stroke-linecap:round; stroke-linejoin:round; }
.wb-draw-stylebar > .wb-style-color { width:42px; padding:0 6px; }
.wb-style-color .wb-color-indicator { position:absolute; right:2px; bottom:-3px; left:2px; height:4px; border-radius:0; box-shadow:none; }
.wb-draw-stylebar > button > i.wb-fill-swatch { width:23px; height:23px; display:block; border:2px solid #fff; border-radius:5px; background-color:rgba(41,98,255,.18); background-image:linear-gradient(45deg,#d7dbe1 25%,transparent 25%),linear-gradient(-45deg,#d7dbe1 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#d7dbe1 75%),linear-gradient(-45deg,transparent 75%,#d7dbe1 75%); background-position:0 0,0 5px,5px -5px,-5px 0; background-size:10px 10px; box-shadow:0 0 0 1px #c9ced5; }
.wb-style-gear { width:27px!important; height:27px!important; }
.wb-style-lock,.wb-style-trash { width:26px!important; height:26px!important; }
.wb-style-line { width:34px; height:0; display:block; border-top:2px solid currentColor; }
.wb-style-popover { position:absolute; z-index:5; top:56px; padding:14px; border:1px solid #e1e4e8; border-radius:13px; background:#fff; box-shadow:0 12px 34px rgba(23,31,44,.18); }
.wb-style-popover[hidden] { display:none; }
.wb-color-popover { left:28px; width:276px; display:grid; grid-template-columns:repeat(8,1fr); gap:9px; }
.wb-fill-popover { left:74px; }
.wb-fontsize-popover { left:118px; }
.wb-color-popover button { aspect-ratio:1; border:2px solid transparent; border-radius:7px; cursor:pointer; }
.wb-color-popover button.selected { border-color:#111; box-shadow:inset 0 0 0 2px #fff; }
.wb-color-popover button.transparent { position:relative; background:repeating-conic-gradient(#e3e6ea 0 25%,#fff 0 50%) 50%/10px 10px; }
.wb-color-popover button.transparent::after { content:""; position:absolute; inset:5px; border-top:2px solid #e5484d; transform:rotate(-45deg); transform-origin:center; }
.wb-width-popover,.wb-dash-popover { left:72px; width:150px; padding:7px; }
.wb-width-popover button,.wb-dash-popover button { width:100%; height:44px; display:flex; align-items:center; gap:14px; padding:0 12px; border:0; border-radius:7px; background:#fff; color:#252a31; font-size:14px; cursor:pointer; }
.wb-width-popover button:hover,.wb-width-popover button.selected,.wb-dash-popover button:hover,.wb-dash-popover button.selected { background:#f0f1f3; }
.wb-width-popover button span,.wb-dash-popover button span { width:48px; border-top-color:#111; }
.wb-width-popover button b,.wb-dash-popover button b { margin-left:auto; font-size:16px; }
.wb-advanced-popover { right:0; width:338px; padding:18px; color:#191d22; }
.wb-advanced-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.wb-advanced-head b { font-size:19px; }.wb-advanced-head button { border:0; background:none; font-size:27px; cursor:pointer; }
.wb-advanced-row { display:grid; grid-template-columns:64px 1fr 1fr; align-items:center; gap:9px; margin-bottom:16px; }
.wb-advanced-row label,.wb-advanced-check { display:flex; align-items:center; gap:7px; min-height:38px; }
.wb-advanced-check { margin:5px 0; }
.wb-advanced-popover input { width:18px; height:18px; accent-color:#111; }
.wb-advanced-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:20px; }
.wb-advanced-actions button { min-width:72px; height:36px; border:0; border-radius:18px; background:#f0f1f3; font-weight:650; cursor:pointer; }
.wb-advanced-actions button:last-child { background:#111; color:#fff; }
.wb-text-editor { position:absolute; z-index:6; min-width:150px; max-width:360px; height:38px; padding:6px 9px; border:2px solid #2962ff; border-radius:4px; outline:none; resize:none; overflow:hidden; background:rgba(255,255,255,.94); color:#2962ff; font:500 14px/22px "PingFang SC","Microsoft YaHei UI",sans-serif; pointer-events:auto; box-shadow:0 5px 18px rgba(30,49,90,.16); }
.wb-text-editor[hidden] { display:none; }

.wb-drawer { position:absolute; z-index:8; top:0; right:70px; bottom:0; width:min(430px,42vw); height:100%; min-height:0; display:flex; flex-direction:column; overflow:hidden; border-left:1px solid #dfe3e8; background:#fff; box-shadow:-16px 0 38px rgba(29,37,51,.12); transform:translateX(calc(100% + 72px)); transition:transform .2s ease; }
.wb-drawer.open { transform:translateX(0); }
.wb-drawer.backtest-open { width:calc(100% - 70px); }
.wb-drawer-head { flex:0 0 55px; height:55px; display:flex; align-items:center; justify-content:space-between; padding:0 18px; border-bottom:1px solid var(--wb-line); }
.wb-drawer-head strong { font-size:16px; }.wb-drawer-head button { border:0; background:none; font-size:28px; color:#878b92; cursor:pointer; }
.wb-drawer-body { min-height:0; flex:1 1 auto; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; touch-action:pan-y; -webkit-overflow-scrolling:touch; padding:18px; scrollbar-gutter:stable; }
.wb-drawer-pane { display:none; }.wb-drawer-pane.active { display:block; }
.wb-drawer.backtest-open .wb-drawer-body { padding:0; overflow:hidden; }
.wb-backtest-pane.active { height:100%; }
.wb-backtest-pane iframe { display:block; width:100%; height:100%; border:0; background:#f5f7fa; }
.wb-drawer .card,.wb-drawer .panel { border:0; padding:0; box-shadow:none; transform:none; }
.wb-drawer .cat-head { gap:0; flex-wrap:nowrap; overflow:auto; }.wb-drawer .cat-tab { padding:8px 9px; }
.wb-drawer .cat-body { gap:7px; }.wb-drawer .ind-chip { border-radius:6px; padding:6px 9px; }
.wb-drawer .screen-head { align-items:flex-start; }.wb-drawer .screen-body.open { display:block; }
.wb-drawer .screen-table { font-size:11px; }.wb-drawer .ai-head { display:block; }.wb-drawer .ai-head h3 { margin:0 0 5px; }
.wb-ai-run { width:100%; margin:14px 0; }.wb-drawer #aiBody { margin-top:12px; }
/* AI 结果生活在窄抽屉中，不能按整个浏览器宽度决定栏数。 */
.wb-drawer .verdict { gap:18px; }
.wb-drawer .vd-top { grid-template-columns:104px minmax(0,1fr); gap:12px; align-items:stretch; }
.wb-drawer .vd-dir { min-width:0; display:flex; flex-direction:column; justify-content:center; padding:14px 10px; }
.wb-drawer .vd-sum { min-width:0; overflow-wrap:anywhere; }
.wb-drawer .mode-tag { display:block; width:max-content; max-width:100%; margin:8px 0 0; white-space:normal; }
.wb-drawer .sig-grid,.wb-drawer .lv-grid,.wb-drawer .adv { grid-template-columns:minmax(0,1fr); }
.wb-drawer .sig-col { min-width:0; }
.wb-drawer .sig { min-width:0; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:start; }
.wb-drawer .sig > span:not(.sn):not(.sw) { min-width:0; overflow-wrap:anywhere; }
.wb-drawer .sig .sw { margin-left:0; }
@media(min-width:761px) {
  .wb-stage { grid-template-columns:62px minmax(0,1fr) 0 70px; }
  .wb-stage.wb-drawer-open,.wb-stage.wb-indicator-open { grid-template-columns:62px minmax(0,1fr) min(430px,42vw) 70px; }
  .wb-stage.wb-drawer-open.wb-drawer-wide { grid-template-columns:62px minmax(0,1fr) min(680px,52vw) 70px; }
  .wb-draw-tools { grid-column:1; grid-row:1; }
  .wb-chart-panel { grid-column:2; grid-row:1; }
  .wb-right-rail { grid-column:4; grid-row:1; }
  .wb-drawer { position:relative; z-index:8; grid-column:3; grid-row:1; top:auto; right:auto; bottom:auto; width:100%; min-width:0; opacity:0; visibility:hidden; transform:none; box-shadow:none; transition:opacity .12s ease,visibility 0s linear .2s; }
  .wb-drawer.open { opacity:1; visibility:visible; transform:none; transition-delay:.08s,0s; }
  .wb-drawer.backtest-open { width:100%; }
}
.wb-indicator-backdrop[hidden] { display:none; }
.wb-indicator-backdrop { position:fixed; z-index:30; inset:0; display:grid; place-items:center; padding:24px; background:rgba(18,22,28,.46); backdrop-filter:blur(2px); }
.wb-indicator-dialog { width:min(760px,calc(100vw - 48px)); height:min(620px,calc(100vh - 48px)); display:grid; grid-template-rows:auto auto minmax(0,1fr) auto; overflow:hidden; border-radius:24px; background:#fff; box-shadow:0 28px 80px rgba(12,20,32,.28); color:#171a1f; }
.wb-indicator-head { display:flex; align-items:center; justify-content:space-between; padding:24px 28px 18px; }
.wb-indicator-head strong { font-size:24px; font-weight:750; }
.wb-indicator-head button { position:relative; width:38px; height:38px; border:0; background:none; font-size:0; cursor:pointer; }
.wb-indicator-head button::before,.wb-indicator-head button::after { content:""; position:absolute; left:8px; top:18px; width:23px; height:2px; border-radius:2px; background:#15181d; transform:rotate(45deg); }
.wb-indicator-head button::after { transform:rotate(-45deg); }
.wb-indicator-search { position:relative; display:block; margin:0 28px 20px; }
.wb-indicator-search span { position:absolute; left:18px; top:50%; width:16px; height:16px; border:2px solid #33383e; border-radius:50%; transform:translateY(-58%); }
.wb-indicator-search span::after { content:""; position:absolute; right:-6px; bottom:-4px; width:7px; height:2px; border-radius:2px; background:#33383e; transform:rotate(45deg); }
.wb-indicator-search input { width:100%; height:48px; box-sizing:border-box; border:0; border-radius:24px; outline:none; padding:0 20px 0 52px; background:#f2f3f5; color:#20242a; font:14px/1.2 inherit; }
.wb-indicator-search input::placeholder { color:#969ba3; }
.wb-indicator-main { min-height:0; display:grid; grid-template-columns:180px minmax(0,1fr); border-top:1px solid #f0f1f3; }
.wb-indicator-dialog .cat-head { display:block; overflow-y:auto; padding:12px; border:0; background:#fafafa; }
.wb-indicator-dialog .cat-tab { display:flex; align-items:center; min-height:46px; box-sizing:border-box; margin:2px 0; padding:0 14px; border:0; border-radius:9px; color:#626871; }
.wb-indicator-dialog .cat-tab.active { border:0; background:#eceef1; color:#171a1f; }
.wb-indicator-dialog .cat-tab .cnt { margin-left:auto; }
.wb-indicator-dialog .cat-tab .on-dot { flex:0 0 auto; margin-left:7px; }
.wb-indicator-results { min-width:0; overflow:auto; padding:6px 24px 16px; }
.wb-indicator-dialog .cat-body { display:block; padding:0; }
.wb-indicator-dialog .ind-chip { width:100%; min-height:64px; box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:10px 4px; border:0; border-bottom:1px solid #f1f2f4; border-radius:0; background:#fff; color:#171a1f; }
.wb-indicator-dialog .ind-chip:hover { border-color:#f1f2f4; background:#fafbfc; }
.wb-indicator-dialog .ind-chip > span { min-width:0; display:grid; gap:5px; text-align:left; }
.wb-indicator-dialog .ind-chip b { overflow:hidden; font-size:15px; font-weight:550; text-overflow:ellipsis; white-space:nowrap; }
.wb-indicator-dialog .ind-chip small { color:#878d96; font-size:12px; font-weight:400; }
.wb-indicator-dialog .ind-chip > i { flex:0 0 auto; width:20px; height:20px; box-sizing:border-box; display:grid; place-items:center; border:1.5px solid #8b9097; border-radius:4px; }
.wb-indicator-dialog .ind-chip.on { border-color:#f1f2f4; background:#fff; color:#171a1f; font-weight:400; }
.wb-indicator-dialog .ind-chip.on > i { border-color:#15181d; background:#15181d; }
.wb-indicator-dialog .ind-chip.on > i::after { content:""; width:8px; height:4px; border-left:2px solid #fff; border-bottom:2px solid #fff; transform:translateY(-1px) rotate(-45deg); }
.wb-indicator-dialog .ind-chip.fixed { cursor:default; }
.wb-indicator-dialog .ind-chip.pending { border-style:solid; opacity:.48; }
.wb-indicator-dialog > .sel-bar { min-height:48px; box-sizing:border-box; margin:0; padding:9px 28px; border-top:1px solid #eceef1; background:#fff; }
.wb-indicator-dialog .sel-pill { display:none; }
.wb-indicator-dialog #clearAll { margin-left:auto !important; }
.wb-indicator-empty { padding:64px 20px; color:#9298a1; text-align:center; }
@media(min-width:761px) {
  .wb-indicator-backdrop { position:fixed; top:178px; right:70px; bottom:38px; left:auto; width:min(430px,42vw); padding:0; background:#fff; backdrop-filter:none; place-items:stretch; border-left:1px solid #dfe3e8; }
  .wb-indicator-dialog { width:100%; height:100%; border-radius:0; box-shadow:none; grid-template-rows:auto auto minmax(0,1fr) auto; }
  .wb-indicator-head { padding:14px 16px 10px; }
  .wb-indicator-head strong { font-size:17px; }
  .wb-indicator-head button { width:32px; height:32px; }
  .wb-indicator-head button::before,.wb-indicator-head button::after { top:15px; width:19px; }
  .wb-indicator-search { margin:0 14px 12px; }
  .wb-indicator-search input { height:40px; padding-left:44px; }
  .wb-indicator-search span { left:14px; width:14px; height:14px; }
  .wb-indicator-main { grid-template-columns:118px minmax(0,1fr); }
  .wb-indicator-dialog .cat-head { padding:7px; }
  .wb-indicator-dialog .cat-tab { min-height:40px; padding:0 9px; font-size:12px; }
  .wb-indicator-dialog .cat-tab .cnt { display:none; }
  .wb-indicator-results { padding:4px 12px 10px; }
  .wb-indicator-dialog .ind-chip { min-height:54px; gap:8px; padding:8px 2px; }
  .wb-indicator-dialog .ind-chip b { font-size:13px; }
  .wb-indicator-dialog .ind-chip small { font-size:10px; }
  .wb-indicator-dialog > .sel-bar { padding:8px 14px; }
}
.wb-pane-empty { padding:28px 8px; text-align:center; color:#7b8087; }.wb-pane-empty b { display:block; color:#282c32; font-size:18px; }.wb-pane-empty p { margin:12px auto 18px; line-height:1.8; }.wb-pane-empty span { display:inline-block; padding:5px 12px; border-radius:99px; background:#f2f4f6; font-size:12px; }
.wb-concept-summary { margin-bottom:16px; padding:2px 2px 15px; border-bottom:1px solid var(--wb-line); }
.wb-concept-summary strong { display:block; color:#20242b; font-size:18px; }
.wb-concept-summary > span { display:block; margin-top:6px; color:#7b818a; font-size:12px; }
.wb-concept-summary p { margin:8px 0 0; color:#9298a1; font-size:11px; line-height:1.6; }
.wb-concept-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.wb-concept-card { min-width:0; min-height:54px; display:flex; align-items:center; gap:8px; padding:7px 10px; overflow:hidden; border:1px solid #e5e8ec; border-radius:9px; background:#fff; color:#252a31; text-align:left; cursor:pointer; }
.wb-concept-card:hover { border-color:#9fb0ed; background:#f5f7ff; box-shadow:0 4px 12px rgba(46,67,130,.08); }
.wb-concept-card.primary { border-color:#f4b9bd; box-shadow:0 0 0 2px rgba(255,59,67,.05); }
.wb-concept-index { flex:0 0 22px; height:22px; border-radius:50%; background:#e9ecf0; color:#737982; font:700 11px/22px system-ui; text-align:center; }
.wb-concept-card.primary .wb-concept-index { background:#ff3b43; color:#fff; }
.wb-concept-name { min-width:0; flex:1; overflow:hidden; font-size:13px; font-weight:650; text-overflow:ellipsis; white-space:nowrap; }
.wb-concept-card > b { flex:0 0 auto; padding:2px 5px; border-radius:4px; background:#ff3b43; color:#fff; font-size:9px; }
.wb-concept-card > i { display:none; color:#536dfe; font-size:10px; font-style:normal; }
.wb-concept-card:hover > b { display:none; }.wb-concept-card:hover > i { display:block; }
.wb-news-loading,.wb-news-empty { padding:42px 14px; color:#858b94; text-align:center; line-height:1.8; }
.wb-news-empty a { color:#536dfe; font-weight:700; }
.wb-news-summary { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:13px; }
.wb-news-summary > div { min-width:0; }
.wb-news-summary b { display:block; overflow:hidden; color:#20242b; font-size:18px; text-overflow:ellipsis; white-space:nowrap; }
.wb-news-summary span { display:block; margin-top:3px; color:#8b9199; font-size:12px; }
.wb-news-summary em { flex:0 0 auto; padding:5px 10px; border-radius:99px; background:#f1f3f6; color:#626a75; font-size:12px; font-style:normal; }
.wb-news-filters { position:sticky; z-index:2; top:-18px; display:flex; gap:7px; overflow-x:auto; margin:0 -18px 12px; padding:10px 18px; border-bottom:1px solid #edf0f3; background:rgba(255,255,255,.96); scrollbar-width:none; }
.wb-news-filters::-webkit-scrollbar { display:none; }
.wb-news-filters button { flex:0 0 auto; height:30px; padding:0 10px; border:1px solid #e3e6ea; border-radius:16px; background:#fff; color:#606771; font-size:12px; cursor:pointer; }
.wb-news-filters button.active { border-color:#ff5a64; background:#fff1f2; color:#ed3c48; font-weight:700; }
.wb-news-filters small { margin-left:4px; opacity:.65; font-size:10px; }
.wb-news-list { display:grid; gap:10px; }
.wb-news-item { padding:13px 14px; border:1px solid #e8ebef; border-radius:10px; background:#fff; }
.wb-news-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; color:#959ba4; font-size:11px; }
.wb-news-meta span { padding:2px 7px; border-radius:4px; background:#f2f4f7; color:#626a75; }
.wb-news-meta span[data-category="公告"] { background:#fff1ed; color:#e65a31; }
.wb-news-meta span[data-category="大宗商品映射"] { background:#fff7df; color:#a76b00; }
.wb-news-meta span[data-category="研报"] { background:#f2efff; color:#6c54c7; }
.wb-news-meta span[data-category="互动"] { background:#eaf8fb; color:#197b91; }
.wb-news-item h3 { margin:9px 0 6px; color:#252a31; font-size:14px; line-height:1.55; }
.wb-news-item p { display:-webkit-box; overflow:hidden; margin:0; color:#666d77; font-size:12px; line-height:1.7; -webkit-box-orient:vertical; -webkit-line-clamp:4; }
.wb-news-insight { margin-top:9px; padding:8px 9px; border-left:3px solid #aeb4bc; border-radius:3px; background:#f7f8fa; color:#666d77; font-size:11.5px; line-height:1.6; }
.wb-news-insight b { margin-right:7px; color:#5e6670; }
.wb-news-insight.positive { border-left-color:#e25555; background:#fff5f5; }.wb-news-insight.positive b { color:#d94747; }
.wb-news-insight.risk { border-left-color:#18a878; background:#f1fbf7; }.wb-news-insight.risk b { color:#118b62; }
.wb-news-source { display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; color:#969ca5; font-size:11px; }
.wb-news-source a { color:#536dfe; text-decoration:none; }.wb-news-source a:hover { text-decoration:underline; }

/* 个股资金：日主力资金与交易所龙虎榜保持两套口径，不在视觉上混成一个指标。 */
.wb-capital-loading,.wb-capital-empty { padding:42px 14px; color:#858b94; text-align:center; line-height:1.8; }
.wb-capital-loading .spin { vertical-align:-2px; }
.wb-capital-empty b { display:block; color:#343941; font-size:15px; }.wb-capital-empty p { margin:7px auto 0; max-width:380px; font-size:12px; }
.wb-capital-head { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:13px; }
.wb-capital-head > div { min-width:0; }.wb-capital-head b { display:block; overflow:hidden; color:#20242b; font-size:18px; text-overflow:ellipsis; white-space:nowrap; }
.wb-capital-head span { display:block; margin-top:3px; color:#8b9199; font-size:12px; }.wb-capital-head em { color:#8b9199; font-size:11px; font-style:normal; white-space:nowrap; }
.wb-capital-tabs { position:sticky; z-index:3; top:-18px; display:flex; margin:0 -18px 14px; padding:9px 18px; border-bottom:1px solid #edf0f3; background:rgba(255,255,255,.96); }
.wb-capital-tabs button { position:relative; height:34px; padding:0 16px; border:0; border-radius:17px; background:transparent; color:#69717b; font-size:13px; cursor:pointer; }
.wb-capital-tabs button.active { background:#f0f2ff; color:#536dfe; font-weight:700; }.wb-capital-tabs i { display:inline-flex; align-items:center; justify-content:center; min-width:17px; height:17px; margin-left:5px; padding:0 4px; border-radius:9px; background:#eceff3; color:#79818c; font-size:9px; font-style:normal; }
.wb-capital-tabs button.active i { background:#dfe3ff; color:#536dfe; }
.wb-capital-pane { display:none; }.wb-capital-pane.active { display:block; }
.wb-capital-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.wb-capital-kpis > div { min-width:0; padding:11px 10px; border:1px solid #eaedf1; border-radius:10px; background:#fafbfc; }
.wb-capital-kpis span,.wb-capital-kpis small { display:block; overflow:hidden; color:#9298a1; font-size:10.5px; text-overflow:ellipsis; white-space:nowrap; }
.wb-capital-kpis b { display:block; overflow:hidden; margin:5px 0 3px; color:#343941; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }
.wb-capital .up { color:#e25555!important; }.wb-capital .down { color:#18a878!important; }.wb-capital .flat { color:#727983!important; }
.wb-capital-chart { width:100%; height:224px; margin-top:12px; }
.wb-capital-legend { display:flex; justify-content:center; gap:18px; margin:-4px 0 8px; color:#8b9199; font-size:10px; }
.wb-capital-legend span { display:flex; align-items:center; gap:5px; }.wb-capital-legend i { width:9px; height:9px; border-radius:2px; background:#e25555; }.wb-capital-legend span:nth-child(2) i { width:12px; height:2px; border-radius:0; background:#6875d8; }
.wb-capital-days { border-top:1px solid #edf0f3; }.wb-capital-days > div { display:grid; grid-template-columns:48px 54px minmax(76px,1fr) 52px; align-items:center; gap:7px; min-height:36px; border-bottom:1px solid #f0f2f4; font-size:11.5px; }
.wb-capital-days time { color:#858c96; }.wb-capital-days span { text-align:right; }.wb-capital-days b { text-align:right; }.wb-capital-days small { color:#959ba4; text-align:right; }
.wb-capital-note { margin:13px 0 0; padding:9px 10px; border-radius:7px; background:#f6f7f9; color:#9298a1; font-size:10.5px; line-height:1.65; }
.wb-capital-lhb-list { display:grid; gap:10px; }.wb-capital-lhb { overflow:hidden; border:1px solid #e7eaee; border-radius:10px; background:#fff; }
.wb-capital-lhb summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 13px; cursor:pointer; list-style:none; }.wb-capital-lhb summary::-webkit-details-marker { display:none; }
.wb-capital-lhb summary span { min-width:0; }.wb-capital-lhb summary b { margin-right:8px; color:#343941; }.wb-capital-lhb summary small { color:#7f8690; font-size:11px; }.wb-capital-lhb summary strong { flex:0 0 auto; font-size:14px; }
.wb-capital-lhb[open] summary { border-bottom:1px solid #edf0f3; background:#fafbfc; }
.wb-capital-lhb-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; padding:10px 12px; background:#f0f2f4; }
.wb-capital-lhb-metrics span { padding:7px 5px; background:#fff; color:#969ca5; font-size:9.5px; text-align:center; }.wb-capital-lhb-metrics b { display:block; overflow:hidden; margin-top:4px; color:#3e444c; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.wb-capital-seat-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:4px 12px 12px; }
.wb-capital-seats { min-width:0; }.wb-capital-seats h5 { margin:8px 0 4px; color:#59616b; font-size:11px; }.wb-capital-seats > div { display:flex; align-items:center; justify-content:space-between; gap:7px; min-height:30px; border-bottom:1px solid #f0f2f4; font-size:10px; }
.wb-capital-seats > div > span { min-width:0; overflow:hidden; color:#555d67; text-overflow:ellipsis; white-space:nowrap; }.wb-capital-seats > div > span > b { display:inline-flex; align-items:center; justify-content:center; width:15px; height:15px; margin-right:4px; border-radius:50%; background:#f0f2f5; color:#7d858f; font-size:8px; }
.wb-capital-seats strong { flex:0 0 auto; font-size:10px; }.wb-capital-seats em,.wb-capital-seats i { margin-left:3px; padding:1px 3px; border-radius:3px; background:#f1efff; color:#6d58bd; font-size:8px; font-style:normal; }.wb-capital-seats i { background:#fff2e8; color:#b56d2e; }
.wb-capital-seats p { margin:0; color:#9aa0a8; font-size:10px; }.wb-capital-alert { margin:0 12px 12px; padding:7px 9px; border-left:3px solid #eea544; background:#fff8eb; color:#9a6824; font-size:10.5px; }
@media (max-width:720px) { .wb-capital-seat-grid { grid-template-columns:1fr; }.wb-capital-kpis b { font-size:13px; } }

.wb-ticker { display:flex; align-items:stretch; overflow:hidden; padding:0 20px; border-top:1px solid var(--wb-line); background:#fff; white-space:nowrap; }
.wb-ticker > button { flex:1 1 auto; min-width:max-content; padding:0 18px; border:0; border-right:1px solid #eceef1; background:#fff; color:#484d54; font:inherit; font-size:12px; cursor:pointer; }
.wb-ticker > button:hover,.wb-ticker > button.is-active { background:#f3f6f9; color:#171b20; }
.wb-ticker b { color:#444a51; font-weight:500; }.wb-ticker em { font-style:normal; }.wb-ticker .up { color:var(--wb-red); }.wb-ticker .down { color:var(--wb-green); }
.wb-ticker-popover[hidden] { display:none; }
.wb-ticker-popover { position:fixed; z-index:30; bottom:40px; left:var(--popover-left,50%); width:min(560px,calc(100vw - 44px)); transform:translateX(-50%); }
.wb-ticker-popover::after { position:absolute; bottom:-7px; left:var(--arrow-left,50%); width:13px; height:13px; border-right:1px solid #d8e2ec; border-bottom:1px solid #d8e2ec; background:#fff; content:""; transform:translateX(-50%) rotate(45deg); }
.wb-ticker-popover > section { overflow:hidden; border:1px solid #d8e2ec; border-radius:14px; background:#fff; box-shadow:0 16px 38px rgba(20,48,77,.18); }
.wb-ticker-popover header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:11px 14px 9px; border-bottom:1px solid #e8edf2; }
.wb-ticker-popover header span { display:block; color:#8592a0; font-size:10px; font-weight:800; letter-spacing:.08em; }
.wb-ticker-popover header h2 { margin:2px 0 0; color:#19232d; font-size:17px; }
.wb-ticker-popover header button { width:28px; height:28px; border:0; border-radius:8px; background:#f0f4f8; color:#718398; font-size:19px; cursor:pointer; }
.wb-ticker-popover-quote { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; padding:10px 14px 4px; }
.wb-ticker-popover-quote > div { display:flex; align-items:baseline; gap:12px; }.wb-ticker-popover-quote strong { font-size:24px; line-height:1; font-variant-numeric:tabular-nums; }
.wb-ticker-popover-quote em { font-size:13px; font-style:normal; font-weight:850; }.wb-ticker-popover-quote > span { color:#8592a0; font-size:11px; text-align:right; }
.wb-ticker-popover .up { color:var(--wb-red); }.wb-ticker-popover .down { color:var(--wb-green); }.wb-ticker-popover .flat { color:#7c8fa3; }
.wb-ticker-chart { height:220px; margin:0 5px; }.wb-ticker-chart-loading,.wb-ticker-chart-empty { height:100%; display:grid; place-items:center; align-content:center; gap:10px; color:#8592a0; font-size:11px; }
.wb-ticker-chart-loading i { width:28px; height:28px; border:3px solid #dce6f0; border-top-color:#536dfe; border-radius:50%; animation:spin .8s linear infinite; }

.stock-workbench-page .tipcard { z-index:10020; }
.stock-workbench-page .toast { z-index:10030; }
.stock-workbench-page .locked-preview { position:absolute; z-index:6; right:20px; top:18px; display:flex; align-items:center; gap:10px; padding:8px 12px; border:1px solid #f0d3d5; border-radius:8px; background:rgba(255,250,250,.96); color:#8f474c; font-size:12px; }
.stock-workbench-page .locked-preview a { color:#f03a43; font-weight:700; }

@media(max-width:1500px){
  .wb-quote { padding-left:24px; padding-right:22px; }
  .wb-quote-grid span:nth-child(4),.wb-quote-grid span:nth-child(5),.wb-quote-grid span:nth-child(6),.wb-quote-grid span:nth-child(8) { display:none; }
}

@media(max-width:1180px){
  body.stock-workbench-page { min-width:0; overflow:auto; }
  .stock-workbench { min-width:980px; }
  .wb-market-nav { gap:18px; }.wb-market-nav button:nth-last-child(-n+2) { display:none; }
  .wb-topbar { gap:16px; }.wb-return { display:none; }
  .wb-stock-summary { gap:12px; }.wb-main-price { padding-left:12px; }
  .wb-quote-grid span:nth-child(7),.wb-quote-grid span:nth-child(9) { display:none; }
}
@media(max-width:760px){
  body.stock-workbench-page { min-width:0; overflow:hidden; }
  .stock-workbench { min-width:0; grid-template-rows:58px 64px 44px minmax(0,1fr) 32px; }
  .wb-topbar { padding:0 10px; gap:10px; border-bottom-width:4px; }.wb-brand { min-width:auto; }.wb-brand img { width:32px;height:32px; }.wb-brand strong,.wb-market-nav,.wb-ask,.wb-return { display:none; }
  .wb-return { display:inline-flex; height:38px; padding:0 10px; font-size:12px; }
  .wb-search { min-width:0; max-width:none; margin:0; }.wb-search input { height:38px; padding-left:35px; }.wb-search-icon { left:10px;top:4px; }
  .wb-login { min-width:56px; height:38px; padding:0 12px; }
  .wb-quote { padding:0 12px; overflow:hidden; }.wb-stock-summary { width:100%; justify-content:space-between; gap:8px; }.wb-stock-id { display:block; }.wb-stock-id strong { display:block;font-size:17px; }.wb-main-price { gap:7px; padding-left:10px; }.wb-main-price b { font-size:20px; }.wb-main-price span { font-size:12px; }.wb-quote-grid,.wb-quote-tools { display:none; }
  .wb-periodbar { padding:0 10px; overflow:visible; }.wb-periods { min-width:0; gap:20px; overflow:auto; }.wb-periods .tab:nth-child(n+7),.wb-layout-picker #layoutLabel { display:none; }
  .wb-replay-picker { margin-left:8px; padding-left:8px; }.wb-replay-trigger { padding:0 7px; }.wb-replay-trigger span { display:none; }.wb-replay-popover { position:fixed; top:168px; left:10px; width:calc(100vw - 20px); }
  .wb-stage { grid-template-columns:minmax(0,1fr) 52px; }.wb-draw-tools { display:none; }.wb-right-rail button { min-height:48px;font-size:13px; }
  .wb-drawer { right:52px; width:calc(100vw - 52px); }
  .wb-drawer.backtest-open { width:calc(100vw - 52px); }
  .wb-drawer .vd-top { grid-template-columns:minmax(0,1fr); }
  .wb-indicator-backdrop { padding:10px; }
  .wb-indicator-dialog { width:100%; height:min(640px,calc(100vh - 20px)); border-radius:18px; }
  .wb-indicator-head { padding:18px 18px 12px; }.wb-indicator-head strong { font-size:20px; }
  .wb-indicator-search { margin:0 18px 14px; }
  .wb-indicator-main { grid-template-columns:116px minmax(0,1fr); }
  .wb-indicator-dialog .cat-head { padding:8px; }.wb-indicator-dialog .cat-tab { min-height:42px; padding:0 9px; font-size:12px; }
  .wb-indicator-dialog .cat-tab .cnt { display:none; }.wb-indicator-results { padding:4px 14px 12px; }
  .wb-indicator-dialog > .sel-bar { padding:8px 18px; }
  .wb-ticker { padding:0; overflow-x:auto; }.wb-ticker > button { padding:0 12px; }
  .wb-ticker-popover { bottom:36px; width:calc(100vw - 20px); }.wb-ticker-chart { height:210px; margin:0; }
}
