@import url("./shell/shell.css");@import url("./features/content-operations/overview.css");@import url("./features/commerce-operations/journey.css");@import url("./features/operating-compass/overview.css");@import url("./features/operating-compass/channel-conversion.css");@import url("./features/operating-compass/period.css");@import url("./features/live-operations/live-operations.css");@import url("./features/ai-platform/employee-directory.css");
/* ============ 设计系统 2026-07-07「电商后台」：1:1 对标抖店——小字号高密度、小圆角、无边框白卡+微投影、
   通体单一品牌蓝做交互色、浅蓝灰画布。上一代「曙光」的大圆角/大留白/渐变按钮全部收敛。 ============ */
:root{
  /* 中性色与主色对标字节系设计规范（Semi/Arco 口径）：文字 = #1C1F23 透明度阶梯；主蓝 = #336FFF 家族 */
  --bg-primary:#f6f7f9; --bg-secondary:#fff;
  --surface-0:#fff; --surface:var(--surface-0); --surface-1:#f7f8fa; --surface-2:#f0f2f5; --surface-raised:#fff; --surface-subtle:#f7f8fa;
  --border:rgba(28,31,35,.08); --border-subtle:rgba(28,31,35,.05); --border-strong:rgba(28,31,35,.13);
  --ring:rgba(51,111,255,.22);
  --text:#1c1f23; --text-2:rgba(28,31,35,.78); --text-3:rgba(28,31,35,.6); --muted:rgba(28,31,35,.4);
  --brand-rgb:51,111,255;
  --primary:#336fff; --primary-light:#e8f0ff; --primary-dark:#2258e6;
  --grad-primary:linear-gradient(135deg,#5b8cff 0%,#336fff 100%);
  /* 按钮不再用粉蓝渐变：主按钮 = 实心品牌蓝（电商后台惯例，登录大按钮同源） */
  --grad-btn:linear-gradient(135deg,#4d80ff,#2258e6);
  --grad-btn-h:linear-gradient(135deg,#336fff,#1c4cd6);
  --btn-ink:#1f2937;
  --btn-bd:rgba(91,131,223,.55);
  --grad-danger:linear-gradient(135deg,#ef4444 0%,#dc2626 100%);
  --success:#10b981; --ok:#16a34a; --warning:#f59e0b; --danger:#e85c8a;
  /* 圆角刻度（抖店档）：3/4/6/8/10 + 胶囊——卡片 6、按钮/输入 4，整体更「方正企业级」 */
  --r-2xs:3px; --r-xs:4px; --r-sm:6px; --r-md:8px; --r-lg:10px; --r-pill:999px;
  /* 阴影体系：白卡不描边，用极淡真投影浮在浅蓝灰画布上（抖店卡片质感）；大投影只给浮层 */
  --shadow-xs:0 1px 2px rgba(23,28,52,.05);
  --shadow-sm:0 1px 3px rgba(23,28,52,.07);
  --shadow-md:0 4px 14px rgba(23,28,52,.10);
  --shadow-lg:0 18px 44px rgba(23,28,52,.14);
  --shadow-xl:0 28px 64px rgba(23,28,52,.16);
  /* 间距刻度（4px base） */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px; --space-6:24px; --space-7:32px;
  --topbar-h:48px; --sidebar-w:200px; --sidebar-cw:66px;
  /* 应用壳（抖店模型）：流式自适应 + 最宽上限——顶栏内容/侧栏/内容区锚在同一个居中容器上，
     侧栏与内容永远只隔 14px。1880 上限 = 主流 1080p/2K 基本铺满只留窄边，仅超宽屏开始两侧留白 */
  --shell-max:1880px;
  --shell-x:max(12px,calc((100vw - var(--shell-max)) / 2));
}
/* 微信小店经营工作台：所有页面共用同一组密度、表格与状态语义。 */
.ws-toolbar{display:flex;align-items:end;gap:8px;flex-wrap:wrap;margin:-4px 0 14px;padding:10px 12px;background:var(--surface-subtle);border:1px solid var(--border);border-radius:14px}
.ws-toolbar label{display:flex;flex-direction:column;gap:3px;color:var(--muted);font-size:.68rem}
.ws-toolbar input,.ws-toolbar select{height:34px;min-width:128px;padding:0 9px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--text);font-size:.76rem}
.ws-toolbar>input,.ws-toolbar>select{height:34px;min-width:138px;padding:0 9px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--text);font-size:.76rem}
.ops-range{align-items:center;margin-top:0}.ops-range-presets{display:flex;gap:5px;flex-wrap:wrap}.ops-range-note{flex:1;min-width:260px;color:var(--muted);font-size:.68rem;line-height:1.45;text-align:right}
.ws-boundary{display:flex;gap:10px;align-items:flex-start;margin:0 0 12px;padding:10px 13px;border:1px solid #c9dcff;border-radius:12px;background:#f5f9ff;font-size:.75rem;line-height:1.55;color:var(--text-2)}
.ws-boundary b{flex:none;color:#2457a6}.ws-boundary.warn{border-color:#f5d5a3;background:#fffaf1}.ws-boundary.warn b{color:#a15b05}
.ws-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin-bottom:12px}
.ws-kpis article{min-height:94px;padding:12px 13px;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 4px 14px rgba(15,23,42,.03)}
.ws-kpis article>span{display:block;color:var(--muted);font-size:.7rem}.ws-kpis article>b{display:block;margin:6px 0 3px;font-size:1.28rem;line-height:1.15}.ws-kpis article>small{display:block;color:var(--muted);font-size:.66rem;line-height:1.35}
.ws-kpis article.warn{background:#fffaf2;border-color:#f1d5a8}.ws-kpis article.danger{background:#fff6f5;border-color:#f0c3be}.ws-kpis article.accent{background:linear-gradient(135deg,#f3f8ff,#f8f6ff);border-color:#bfd2ff}.ws-kpis article.blocked{background:#f8fafc;color:#64748b}
.ws-reconcile{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:12px;margin:-3px 0 14px;padding:12px 14px;border:1px solid var(--border);border-radius:14px;background:#fff}
.ws-reconcile>div{display:flex;min-width:0;flex-direction:column;gap:3px}.ws-reconcile span,.ws-reconcile small{color:var(--muted);font-size:.65rem}.ws-reconcile b{font-size:.95rem}.ws-reconcile>i{color:#94a3b8;font-style:normal}.ws-reconcile>div:last-child{padding-left:13px;border-left:1px solid var(--border)}.ws-reconcile>div:last-child.ok b{color:#08775a}.ws-reconcile>div:last-child.warn b{color:#a15b05}
.ws-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ws-panel{padding:14px;margin-bottom:12px;min-width:0}.ws-panel.ws-span2{grid-column:span 2}
.ws-panel>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.ws-panel>header>div{display:flex;flex-direction:column;gap:2px}.ws-panel>header b{font-size:.9rem}.ws-panel>header small{font-size:.67rem;color:var(--muted);font-weight:400}
.ws-table{width:100%;border-collapse:collapse;font-size:.72rem}.ws-table th{position:sticky;top:0;z-index:1;padding:7px 8px;background:#f8fafc;color:var(--muted);font-size:.66rem;text-align:left;white-space:nowrap}.ws-table td{padding:8px;border-top:1px solid var(--border);vertical-align:middle;line-height:1.35}.ws-table tbody tr:hover{background:#f8fbff}.ws-table .mono,.ws-table td.mono{font:600 .65rem ui-monospace,SFMono-Regular,Menlo,monospace;white-space:nowrap}.ws-sub{display:block;margin-top:2px;color:var(--muted);font:500 .6rem ui-monospace,monospace}
.ws-state{display:inline-flex;padding:2px 7px;border-radius:999px;font-size:.62rem;font-weight:700;white-space:nowrap}.ws-state.ok{color:#08775a;background:#e7f8f2}.ws-state.danger{color:#b42318;background:#fff0ee}.ws-state.warn{color:#9a5a08;background:#fff5df}.ws-state.muted{color:#64748b;background:#eef2f6}
.ws-bars{display:flex;flex-direction:column;gap:8px}.ws-bars>div{display:grid;grid-template-columns:minmax(58px,110px) 1fr minmax(70px,100px);align-items:center;gap:8px;font-size:.7rem}.ws-bars>div>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}.ws-bars i{height:9px;overflow:hidden;border-radius:999px;background:#edf1f6;cursor:help}.ws-bars i:hover,.ws-bars i:focus{box-shadow:0 0 0 2px color-mix(in srgb,var(--primary) 18%,transparent);outline:none}.ws-bars u{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3d6bf2,#6d5ce8);text-decoration:none}.ws-bars b{text-align:right;font-size:.7rem}
.ws-health{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:7px}.ws-health>div{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--border);border-radius:10px;background:#fff}.ws-health i{width:8px;height:8px;border-radius:50%;background:#94a3b8;flex:none}.ws-health i.ok{background:#10a37f}.ws-health i.manual{background:#d68a16}.ws-health i.stale,.ws-health i.blocked{background:#dc5a4f}.ws-health span{display:flex;flex:1;min-width:0;flex-direction:column}.ws-health b{font-size:.72rem}.ws-health small{font-size:.62rem;color:var(--muted)}.ws-health em{font-size:.65rem;color:var(--text-2);font-style:normal;white-space:nowrap}
.ws-chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ws-chart-panel{overflow:hidden}.ws-chart-wide{margin-bottom:12px}.ws-month-chart{display:block;width:100%;height:auto;overflow:visible}.ws-month-chart .grid{stroke:var(--border);stroke-width:1}.ws-month-chart .axis{fill:var(--muted);font-size:11px}.ws-month-chart .axis.month{font-weight:600}.ws-month-chart .value{fill:var(--text);font-size:11px;font-weight:700}.ws-month-chart rect{shape-rendering:geometricPrecision}.ws-month-chart [data-tip]{cursor:crosshair;transition:filter .12s,opacity .12s}.ws-month-chart [data-tip]:hover,.ws-month-chart [data-tip]:focus{filter:drop-shadow(0 2px 5px color-mix(in srgb,var(--primary) 28%,transparent));opacity:.86;outline:none}.ws-month-chart .series-live{fill:var(--primary)}.ws-month-chart .series-short{fill:var(--success)}.ws-month-chart .series-other{fill:#a9b4c5}.ws-month-chart .series-diagnostic{fill:var(--warning)}.ws-month-chart .series-wecom{fill:var(--primary)}.ws-month-chart .series-wecom.lower_bound{fill:color-mix(in srgb,var(--primary) 42%,transparent);stroke:var(--primary);stroke-width:2;stroke-dasharray:5 3}.ws-month-chart .partial{stroke:var(--text-2);stroke-width:1.5;stroke-dasharray:4 3;opacity:.72}.ws-month-chart .line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}.ws-month-chart .line.primary,.ws-month-chart .point.primary{stroke:var(--primary)}.ws-month-chart .line.paid,.ws-month-chart .point.paid{stroke:var(--success)}.ws-month-chart .line.zero,.ws-month-chart .point.zero{stroke:var(--text-3)}.ws-month-chart .line.short,.ws-month-chart .point.short{stroke:var(--success)}.ws-month-chart .line.diagnostic,.ws-month-chart .point.diagnostic{stroke:var(--warning)}.ws-month-chart .line.dash{stroke-dasharray:7 5}.ws-month-chart .point{fill:var(--surface-0);stroke-width:3}.ws-month-chart .waterfall.total{fill:var(--primary)}.ws-month-chart .waterfall.positive{fill:var(--success)}.ws-month-chart .waterfall.negative{fill:var(--danger)}.ws-month-chart .connector{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}.ws-chart-legend{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:-4px;color:var(--text-2);font-size:.66rem}.ws-chart-legend span{display:inline-flex;align-items:center;gap:5px}.ws-chart-legend i{width:9px;height:9px;border-radius:3px;background:var(--primary)}.ws-chart-legend i.live{background:var(--primary)}.ws-chart-legend i.short{background:var(--success)}.ws-chart-legend i.other{background:#a9b4c5}.ws-chart-legend i.primary{background:var(--primary)}.ws-chart-legend i.paid{background:var(--success)}.ws-chart-legend i.zero{background:var(--text-3)}.ws-chart-legend i.diagnostic{background:var(--warning)}.ws-chart-legend i.wecom{background:var(--primary)}.ws-chart-legend i.wecom.lower{background:color-mix(in srgb,var(--primary) 42%,transparent);border:1px dashed var(--primary)}.ws-chart-empty{display:grid;min-height:220px;place-items:center;color:var(--muted);font-size:.74rem}.ws-scope-switch{display:flex;gap:3px;padding:3px;border:1px solid var(--border);border-radius:9px;background:var(--surface-subtle)}.ws-scope-switch button{border:0;border-radius:6px;padding:5px 9px;background:transparent;color:var(--text-2);font:inherit;font-size:.66rem;font-weight:700;cursor:pointer}.ws-scope-switch button.on{background:var(--primary);color:#fff}.ws-growth-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}.ws-growth-insights>div{min-width:0;padding:11px 12px;border-left:3px solid var(--primary);background:var(--surface-subtle)}.ws-growth-insights span,.ws-growth-insights b,.ws-growth-insights small{display:block}.ws-growth-insights span{font-size:.61rem;font-weight:800;letter-spacing:.06em;color:var(--primary)}.ws-growth-insights b{margin-top:4px;font-size:.8rem;line-height:1.4}.ws-growth-insights small{margin-top:3px;color:var(--muted);font-size:.63rem;line-height:1.5}.ws-data-proof{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-2px 0 10px;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-subtle);font-size:.65rem;color:var(--text-2)}.ws-data-proof b{color:var(--text)}.ws-data-proof span{padding-left:8px;border-left:1px solid var(--border)}.ws-data-proof.warn{border-color:#f5d5a3;background:#fffaf1}.ws-operating-table{padding-bottom:10px}.ws-operating-table .tablebox{max-width:100%;border:1px solid var(--border);box-shadow:none}.ws-operating-table table{min-width:3200px}.ws-operating-table th,.ws-operating-table td{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.ws-operating-table th:first-child,.ws-operating-table td:first-child{text-align:left;position:sticky;left:0;z-index:2;background:var(--surface-0);box-shadow:1px 0 0 var(--border)}.ws-operating-table thead th:first-child{z-index:4;background:var(--surface-1)}.ws-operating-table .ws-table-groups th{top:0;z-index:3;text-align:center;color:var(--text-2);background:color-mix(in srgb,var(--primary) 7%,var(--surface-1))}.ws-operating-table .ws-table-groups+tr th{top:29px}.ws-month-cell small{display:block;margin-top:2px;color:var(--warning);font-size:.58rem}.ws-table-foot{padding:9px 2px 0;color:var(--muted);font-size:.63rem;line-height:1.55}.ws-content-drill>div{padding:12px}.ws-content-drill>summary>span{white-space:nowrap}.ws-content-drill .card:last-child{margin-bottom:0}.ws-operating-table+.ws-content-drill{margin-top:0}
@media(max-width:960px){.ws-chart-grid{grid-template-columns:1fr}.ws-growth-insights{grid-template-columns:1fr}.ws-month-chart{min-width:640px}.ws-chart-panel{overflow:auto}.ws-chart-panel>header{position:sticky;left:0}.ws-chart-legend{min-width:640px}}
.ws-daily-short-video{overflow:hidden}.ws-daily-short-video>header{align-items:flex-start}.ws-daily-short-video>header small{max-width:860px;line-height:1.55}.ws-daily-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 14px 12px}.ws-daily-kpis article{min-width:0;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle)}.ws-daily-kpis article.warn{border-color:#f2c781;background:#fffaf1}.ws-daily-kpis span,.ws-daily-kpis b,.ws-daily-kpis small{display:block}.ws-daily-kpis span{color:var(--muted);font-size:.64rem;font-weight:700}.ws-daily-kpis b{margin-top:4px;font-size:1.08rem;font-variant-numeric:tabular-nums}.ws-daily-kpis small{margin-top:3px;color:var(--muted);font-size:.62rem;line-height:1.45}.ws-daily-chart-scroll{overflow-x:auto;padding:0 10px}.ws-daily-chart{min-width:920px}.ws-daily-chart .axis.day{font-size:9px}.ws-daily-incomplete{fill:color-mix(in srgb,var(--warning) 8%,transparent)}.ws-daily-paid{fill:color-mix(in srgb,var(--primary) 20%,var(--surface-0));stroke:color-mix(in srgb,var(--primary) 34%,transparent);stroke-width:1}.ws-daily-retained{fill:color-mix(in srgb,var(--primary) 72%,#ffffff)}.ws-daily-refunded{fill:var(--warning)}.ws-daily-paid-line{fill:none;stroke:var(--primary);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.ws-daily-point{fill:var(--surface-0);stroke:var(--primary);stroke-width:2}.ws-daily-point.zero{fill:var(--surface-0);stroke:var(--text-3)}.ws-daily-hit{fill:transparent;pointer-events:all;cursor:crosshair}.ws-daily-hit:hover,.ws-daily-hit:focus{fill:color-mix(in srgb,var(--primary) 7%,transparent);outline:none;stroke:color-mix(in srgb,var(--primary) 45%,transparent);stroke-width:1}.ws-daily-value{fill:var(--text);font-size:9px;font-weight:700;pointer-events:none}.ws-daily-legend{margin:0 10px 12px;min-width:0}.ws-chart-legend i.daily-paid{width:18px;height:2px;border-radius:0;background:var(--primary)}.ws-chart-legend i.daily-retained{background:color-mix(in srgb,var(--primary) 72%,#ffffff)}.ws-chart-legend i.daily-refunded{background:var(--warning)}.ws-daily-table-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 14px 7px}.ws-daily-table-title b{font-size:.76rem}.ws-daily-table-title span{color:var(--muted);font-size:.63rem}.ws-daily-table{max-height:390px;margin:0 14px;border:1px solid var(--border);box-shadow:none}.ws-daily-table table{min-width:850px}.ws-daily-table thead{position:sticky;top:0;z-index:2;background:var(--surface-1)}.ws-daily-table th,.ws-daily-table td{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.ws-daily-table th:first-child,.ws-daily-table td:first-child{text-align:left}.ws-daily-table td:first-child small{margin-left:6px;color:var(--warning);font-size:.58rem}.ws-daily-table tr.zero{color:var(--muted)}.ws-daily-table tr.zero td:first-child b{color:var(--text-2)}.ws-daily-boundary{display:flex;gap:8px;margin:10px 14px 14px;padding:9px 11px;border-radius:9px;background:var(--surface-subtle);color:var(--text-2);font-size:.66rem;line-height:1.6}.ws-daily-boundary b{flex:none;color:var(--text)}.ws-daily-boundary span{min-width:0}
@media(max-width:760px){.ws-daily-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ws-daily-table-title{align-items:flex-start;flex-direction:column;gap:2px}.ws-daily-boundary{display:block}.ws-daily-boundary b{display:block;margin-bottom:3px}}
.ws-operating-table table{min-width:4800px}
.ws-gap-list{display:flex;gap:7px;flex-wrap:wrap}.ws-gap-list span{padding:7px 9px;border:1px dashed #d3a34d;border-radius:9px;background:#fffaf0;color:#8a570d;font-size:.7rem}
.ws-diagnosis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-bottom:12px}.ws-diagnosis article{padding:14px;border:1px solid var(--border);border-radius:14px;background:#fff}.ws-diagnosis article>span{display:inline-flex;padding:2px 7px;border-radius:999px;background:#eef2f7;color:#64748b;font-size:.62rem;font-weight:700}.ws-diagnosis article h3{margin:10px 0 4px;font-size:.87rem}.ws-diagnosis article>b{font-size:1.2rem}.ws-diagnosis article p{margin:8px 0 0;color:var(--text-2);font-size:.7rem;line-height:1.55}.ws-diagnosis article.warning{border-color:#f0d19d;background:#fffaf2}.ws-diagnosis article.danger{border-color:#efc2bd;background:#fff6f5}.ws-diagnosis article.blocked{border-color:#cbd5e1;background:#f8fafc}.ws-diagnosis article.ok{border-color:#b8e1d6;background:#f3fbf8}
.ws-pager{display:flex;justify-content:flex-end;align-items:center;gap:7px;padding-top:10px}.ws-pager span{margin-right:auto;color:var(--muted);font-size:.68rem}.ws-pager button{padding:5px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text-2);font-size:.68rem;cursor:pointer}.ws-pager button:disabled{opacity:.4;cursor:not-allowed}.ws-empty{padding:2rem 1rem;color:var(--muted)}
@media(max-width:900px){.ws-grid{grid-template-columns:1fr}.ws-panel.ws-span2{grid-column:auto}.ws-toolbar{align-items:stretch}.ws-toolbar label,.ws-toolbar label input,.ws-toolbar>input,.ws-toolbar>select{min-width:0;flex:1}.ops-range-note{min-width:100%;text-align:left}.ws-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ws-reconcile{grid-template-columns:1fr 1fr}.ws-reconcile>i{display:none}.ws-reconcile>div:last-child{grid-column:1/-1;padding:10px 0 0;border-top:1px solid var(--border);border-left:0}.ops-update-grid{grid-template-columns:1fr}}
@media(max-width:600px){.ws-kpis{grid-template-columns:1fr 1fr}.ws-kpis article{min-height:84px;padding:10px}.ws-kpis article>b{font-size:1.08rem}.ws-toolbar .btn{flex:1}.ws-boundary{flex-direction:column;gap:3px}.ws-diagnosis{grid-template-columns:1fr}.ws-health{grid-template-columns:1fr}}
*{margin:0;box-sizing:border-box} button{font:inherit;cursor:pointer}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;
     background:var(--bg-primary);
     color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;
     font-size:13px}  /* 抖店密度：基准 13px，全站信息密度上一档 */
/* 画布层②：极淡静态色晕（比上一版再淡一半）——抖店画布近乎纯净，氛围只能隐约可感 */
body::before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(640px 420px at 88% -6%,rgba(51,111,255,.035),transparent 68%),
    radial-gradient(560px 400px at -4% 42%,rgba(56,178,214,.025),transparent 66%)}
body.gate-on::before{display:none}
/* 画布层③：左下角静态等距方块插画（抖店同款位置），垫在内容下面、不抢焦点 */
body::after{content:"";position:fixed;left:calc(var(--shell-x) + var(--sidebar-w) + 48px);bottom:0;width:560px;height:280px;
  z-index:0;pointer-events:none;opacity:.45;
  background:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 520 260"%3E%3Cg%3E%3Cpolygon points="120,200 200,160 280,200 200,240" fill="%23e4eaf5"/%3E%3Cpolygon points="120,200 200,240 200,260 120,220" fill="%23d8e1f0"/%3E%3Cpolygon points="280,200 200,240 200,260 280,220" fill="%23dde5f2"/%3E%3Cpolygon points="230,150 290,120 350,150 290,180" fill="%23e9eef8"/%3E%3Cpolygon points="230,150 290,180 290,204 230,174" fill="%23dce4f2"/%3E%3Cpolygon points="350,150 290,180 290,204 350,174" fill="%23e2e9f5"/%3E%3Cpolygon points="330,215 380,190 430,215 380,240" fill="%23e9eef8"/%3E%3Cpolygon points="330,215 380,240 380,258 330,233" fill="%23dce4f2"/%3E%3Cpolygon points="430,215 380,240 380,258 430,233" fill="%23e2e9f5"/%3E%3C/g%3E%3C/svg%3E') no-repeat bottom left/contain}
body.gate-on::after{display:none}
@media(max-width:992px){body::after{display:none}}
/* ---- 极光氛围背景（aurora）：只留登录页。工作页一律纯净底色——氛围光斑叠在数据页上是「眼花缭乱」主因之一 ---- */
.aurora{display:none;position:fixed;inset:-22%;z-index:0;pointer-events:none;filter:blur(110px);opacity:.4}
body.gate-on .aurora{display:block}
.aurora i{position:absolute;border-radius:50%;will-change:transform}
.aurora i:nth-child(1){width:54vw;height:54vw;left:-12%;top:-14%;
  background:radial-gradient(circle,#c9d8ff 0%,transparent 64%);animation:aur1 34s ease-in-out infinite alternate}
.aurora i:nth-child(2){width:46vw;height:46vw;right:-12%;top:4%;
  background:radial-gradient(circle,#cfe6ff 0%,transparent 62%);animation:aur2 28s ease-in-out infinite alternate}
.aurora i:nth-child(3){width:48vw;height:48vw;left:22%;bottom:-20%;
  background:radial-gradient(circle,#c9eef0 0%,transparent 62%);animation:aur3 38s ease-in-out infinite alternate}
.aurora i:nth-child(4){width:28vw;height:28vw;right:18%;bottom:-4%;
  background:radial-gradient(circle,#ffe2d6 0%,transparent 58%);animation:aur1 30s 4s ease-in-out infinite alternate-reverse}
@keyframes aur1{to{transform:translate(9vw,7vh) scale(1.18)}}
@keyframes aur2{to{transform:translate(-8vw,10vh) scale(.9)}}
@keyframes aur3{to{transform:translate(7vw,-8vh) scale(1.12)}}
.topbar,.sidebar,.main,.modal,.toast-container{position:relative;z-index:1}
/* ---- 滚动入场（IntersectionObserver 驱动） ---- */
.reveal{opacity:0;transform:translateY(22px);
  transition:opacity .6s cubic-bezier(.2,.8,.3,1),transform .6s cubic-bezier(.2,.8,.3,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .aurora i{animation:none}
}
a{color:var(--primary);text-decoration:none;transition:color .2s}
a:hover{color:var(--primary-dark)}
/* 滚动条：细、中性灰、不打扰——默认隐形，只有「正在滚动」或「悬停可滚动区域」才淡出一条浅灰，
   停下来/鼠标移开 ~0.9s 自动隐藏（配合下方 JS 给 <html> 加 .scrolling）。不再是显眼的品牌蓝粗条。 */
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:transparent;border-radius:8px;border:2px solid transparent;
  background-clip:content-box;transition:background .35s ease}
:hover::-webkit-scrollbar-thumb{background:rgba(146,158,178,.34);background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:rgba(110,122,142,.6);background-clip:content-box}
html.scrolling::-webkit-scrollbar-thumb,html.scrolling ::-webkit-scrollbar-thumb{
  background:rgba(146,158,178,.42);background-clip:content-box}
*{scrollbar-width:thin;scrollbar-color:transparent transparent}
:hover,html.scrolling,html.scrolling *{scrollbar-color:rgba(146,158,178,.38) transparent}
/* ---- 顶栏（玻璃拟态） ---- */
/* 顶栏：透明融入画布（不再是实心 bar），交互元素 hover 才浮白卡 */
/* 顶栏：内容与应用壳左右对齐（品牌和侧栏同一条左线）；默认融入画布、悬停才浮出白底（抖店行为） */
.topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-h);background:transparent;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:0 var(--shell-x);z-index:1100;
  transition:background .3s ease,box-shadow .3s ease}
.topbar:hover{background:#fff;box-shadow:0 2px 14px rgba(23,28,52,.07)}
.tb-left,.tb-right{display:flex;align-items:center;gap:16px;flex-shrink:0}
.tb-nav{flex:1;min-width:0;display:flex;align-items:center;gap:14px;margin-left:14px}
/* 顶栏功能搜索（抖店同位）：浅灰胶囊输入框 + 下拉直达 */
.tb-search{position:relative;display:flex;align-items:center;gap:7px;flex:0 1 320px;min-width:180px;
  background:rgba(21,25,43,.05);border-radius:999px;padding:5px 14px;color:var(--muted)}
.tb-search input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:.8rem;color:var(--text);outline:0}
.tb-search input::placeholder{color:var(--muted)}
.tb-search:focus-within{background:#fff;box-shadow:0 0 0 1.5px rgba(var(--brand-rgb),.35)}
.tb-search-drop{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border-radius:8px;
  box-shadow:var(--shadow-lg);padding:5px;z-index:1200;max-height:320px;overflow:auto}
.tsd-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 10px;
  width:100%;border:0;background:transparent;text-align:left;border-radius:6px;font-size:.82rem;color:var(--text);cursor:pointer}
.tsd-item:hover{background:var(--surface-subtle)}
.tsd-item span{font-size:.7rem;color:var(--muted)}
/* 折叠按钮已移除：左侧菜单始终展开 */
.brand{font-size:1rem;font-weight:700;color:var(--text);display:inline-flex;align-items:center;gap:8px;letter-spacing:-.2px;white-space:nowrap;flex-shrink:0}
.brand .mark{width:26px;height:26px;flex:0 0 26px;border-radius:6px;
  background:linear-gradient(140deg,#fff4ec,#ffe7d8);
  display:flex;align-items:center;justify-content:center;
  box-shadow:inset 0 0 0 1px rgba(240,85,46,.12);user-select:none}
.brand .mark svg{width:17px;height:17px}
/* 公司名挂在产品名旁（产品名 | 商家，电商后台惯例） */
.brand-co{font-size:.76rem;font-weight:500;color:var(--muted);margin-left:10px;padding-left:12px;
  border-left:1px solid var(--border);white-space:nowrap}
.tb-user{display:inline-flex;align-items:center;gap:8px;background:transparent;
  border:0;border-radius:999px;padding:3px 10px 3px 3px;font:inherit;
  color:var(--text-2);font-size:12px;transition:background .15s}
.tb-user:hover{background:rgba(21,25,43,.05)}
.tb-user .ava{width:24px;height:24px;border-radius:50%;background:var(--grad-primary);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:600;font-size:11px}

/* ---- 侧边栏（玻璃面板 + 指示条 + 折叠） ---- */
/* 侧栏：画布上的浮动白卡片（脱边、小圆角、无阴影只极淡描边），紧凑 */
/* 侧栏（floating 变体·抖店/Linear 同款）：不贴边——四周留 12px 呼吸位、圆角+微投影浮在画布上。
   高度只包到菜单内容为止（bottom:auto）：当前域就几项时不再拖一条全高空白卡。 */
.sidebar{position:fixed;top:calc(var(--topbar-h) + 12px);left:var(--shell-x);bottom:auto;width:var(--sidebar-w);
  max-height:calc(100vh - var(--topbar-h) - 24px);
  background:#fff;border:none;border-radius:10px;box-shadow:var(--shadow-xs);
  overflow-y:auto;overflow-x:hidden;
  transition:transform .25s ease;z-index:1050}
.sidebar::-webkit-scrollbar{width:6px}
.sidebar::-webkit-scrollbar-thumb{background:rgba(152,160,179,.3);border-radius:6px;border:0}
.sidebar-menu{padding:6px 0 18px}
/* 侧栏（抖店结构）：全量菜单常驻，域=可折叠分组——组头「图标+域名+箭头」可点收起，
   组间细分隔线、组内双列小字。当前域组名高亮且强制展开（renderNav 控制）。 */
.menu-section{display:block}
.menu-sec-h{display:flex;align-items:center;gap:6px;margin:2px 6px 0;padding:8px 8px 5px;cursor:pointer;
  width:calc(100% - 12px);background:transparent;text-align:left;font:inherit;
  border-right:0;border-bottom:0;border-left:0;border-top:1px solid var(--border-subtle);border-radius:6px;user-select:none}
.menu-section:first-child .menu-sec-h{border-top:0}
.menu-sec-h:hover{background:var(--surface-subtle)}
.menu-sec-h .gi{display:flex;align-items:center;color:var(--muted);opacity:.85}
.menu-sec-h .ms-nm{flex:1;min-width:0;font-size:.74rem;font-weight:600;letter-spacing:.04em;
  color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-section.cur .menu-sec-h .ms-nm,.menu-section.cur .menu-sec-h .gi{color:var(--primary-dark);opacity:1}
.menu-sec-h .chev{display:flex;align-items:center;color:var(--muted);opacity:.65;transition:transform .18s}
.menu-section.fold .menu-sec-h .chev{transform:rotate(-90deg)}
.menu-section.fold .menu-grid{display:none}
.menu-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px 2px;padding:2px 10px 4px;margin-bottom:2px}
.menu-link{position:relative;display:flex;align-items:center;padding:.32rem .45rem;
  color:var(--text-2);border:0;text-align:left;font-size:.78rem;border-radius:4px;
  background:transparent;transition:all .12s;white-space:nowrap;overflow:hidden}
.menu-link:hover{color:var(--text);background:rgba(21,25,43,.05)}
/* 选中：扁平浅蓝填充 + 蓝字（去渐变/柔光，干净克制） */
.menu-link.active{color:var(--primary-dark);font-weight:700;background:rgba(var(--brand-rgb),.12)}
.menu-link .ic{display:none;min-width:20px;align-items:center;justify-content:center;color:var(--muted)}
.menu-link .txt{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis}
.menu-link .short{display:none;font-size:.6rem;font-weight:600;letter-spacing:.4px;color:inherit}
.menu-link .mbadge{flex:0 0 auto;margin-left:5px;position:static}
/* 折叠成窄图标栏：单列、图标 + 短名 */
body.nav-collapsed .sidebar{width:var(--sidebar-cw)}
body.nav-collapsed .menu-sec-h{justify-content:center;padding:.4rem 0;margin:6px 6px 2px}
body.nav-collapsed .menu-sec-h .ms-nm{display:none}
body.nav-collapsed .menu-grid{grid-template-columns:1fr;padding:0 6px;gap:2px}
body.nav-collapsed .menu-link{flex-direction:column;gap:3px;padding:.5rem .1rem;justify-content:center}
body.nav-collapsed .menu-link .ic{display:flex}
body.nav-collapsed .menu-link .txt{display:none}
body.nav-collapsed .menu-link .short{display:block}
body.nav-collapsed .menu-link.active::before{display:none}
body.nav-collapsed .menu-link .mbadge{position:absolute;margin:0;top:3px;right:5px;min-width:15px;height:15px;font-size:.56rem;padding:0 4px}

/* ---- 主区 ---- */
/* 主区：锚在应用壳内、紧贴侧栏（恒定 14px 缝，与显示器宽度无关）；右缘与壳右线对齐 */
.main{position:relative;z-index:1;
  margin:var(--topbar-h) 0 0 calc(var(--shell-x) + var(--sidebar-w) + 14px);
  /* 留出悬浮助手的高度，避免长列表最后一行的编辑/归档按钮被挡住。 */
  padding:16px var(--shell-x) 112px 0;
  min-height:calc(100vh - var(--topbar-h))}
/* 驾驶舱三栏（抖店首页式）：主内容 + 右侧辅助栏（待办/缺口/快捷入口） */
.ck-wrap{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:16px;align-items:start}
.ck-rail{position:sticky;top:calc(var(--topbar-h) + 16px);display:flex;flex-direction:column;gap:12px;min-width:0}
.rail-card{background:#fff;border:none;box-shadow:var(--shadow-xs);border-radius:var(--r-sm);padding:13px 15px}
.rc-h{font-size:.84rem;font-weight:800;display:flex;align-items:center;gap:6px;margin-bottom:10px;color:var(--text)}
.rc-list{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.rc-links{display:flex;flex-direction:column;gap:2px}
.rc-links a{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:8px;
  font-size:.8rem;color:var(--text-2);cursor:pointer;transition:background .12s}
.rc-links a:hover{background:var(--surface-subtle);color:var(--text)}
.rc-links a svg{flex:0 0 auto;color:var(--muted)}
@media(max-width:1280px){
  .ck-wrap{grid-template-columns:1fr}
  .ck-rail{position:static;flex-direction:row;flex-wrap:wrap}
  .ck-rail .rail-card{flex:1 1 240px}
}
body.nav-collapsed .main{margin-left:calc(var(--sidebar-cw) + 12px)}
.main.enter{animation:fadeInUp .4s ease}
@keyframes fadeInUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
/* ---- 页面头 + 工具栏（渐变发丝线收尾，比纯灰线更有层次） ---- */
.page-header{position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  margin-bottom:var(--space-6)}
.page-header::after{display:none}
.page-header h1{font-size:1.2rem;font-weight:700;margin:0;letter-spacing:-.3px;line-height:1.3;
  display:flex;align-items:center;gap:8px}
.page-header h1 .hic{width:28px;height:28px;border-radius:6px;flex-shrink:0;
  background:var(--surface-subtle);
  display:inline-flex;align-items:center;justify-content:center;color:var(--text-2);
  box-shadow:inset 0 0 0 1px var(--border)}
.page-header h1 .hic svg{width:16px;height:16px}
.page-header p{margin:3px 0 0;color:var(--text-3);font-size:.8rem}
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* ---- Bento 总览网格（2026：非对称卡片拼图 + 大数字 + 玻璃质感） ---- */
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.bcell{position:relative;overflow:hidden;background:#fff;
  border:none;border-radius:var(--r-sm);padding:12px 14px;cursor:pointer;
  box-shadow:var(--shadow-xs);
  transition:transform .2s cubic-bezier(.2,.8,.3,1),box-shadow .2s;
  display:flex;flex-direction:column;gap:3px;min-height:64px}
.bcell:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}
/* hero/淡彩卡（2026-07-07 降噪）：全部回归白底细灰边——彩色只留给状态信号，不做装饰。
   原 hero 的旋转全息光斑(conic-gradient 动画)与 t1-t4 四色水彩晕染是「眼花缭乱」的主因，一并摘除。 */
.bcell.hero{justify-content:center;gap:5px}
.bcell.wide{grid-column:span 4;cursor:default}
.bcell.half{grid-column:span 2;cursor:default}
.bcell.t1,.bcell.t2,.bcell.t3,.bcell.t4{background:#fff;justify-content:center}
.bk{font-size:.72rem;font-weight:600;color:var(--text-2);display:flex;align-items:center;gap:6px;letter-spacing:.02em}
.bnum{font-size:1.5rem;font-weight:800;letter-spacing:-.4px;line-height:1.1;color:var(--text);font-variant-numeric:tabular-nums;
  display:flex;align-items:baseline;gap:5px}
.bnum i{font-style:normal;font-size:.8rem;font-weight:600;color:var(--muted);letter-spacing:0}
.bcell.hero .bnum{font-size:1.9rem;letter-spacing:-.6px}
.bnum.grad{color:var(--primary-dark)}  /* 关键数字用实心品牌蓝，不再渐变填充 */
.bsub{font-size:.72rem;color:var(--muted);line-height:1.6}
.bcell.hero .bsub{font-size:.8rem}
.bcell.hero .btn{align-self:flex-start;margin-top:6px;padding:.6rem 1.5rem;border-radius:var(--r-md);font-size:.92rem}
.bwarns{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}
.bwarn{display:inline-flex;align-items:center;gap:6px;font-size:.74rem;font-weight:600;
  padding:5px 12px;border-radius:var(--r-md);background:rgba(245,158,11,.1);color:#b45309;cursor:pointer;
  transition:transform .15s}
.bwarn:hover{transform:translateY(-1px)}
.bwarn.okay{background:rgba(16,185,129,.1);color:#047857;cursor:default}
/* 从今日总览跳转后，高亮定位到的目标（卡片/表格行/环节），1.9s 后自动消退 */
@keyframes navFlash{0%{background:rgba(var(--brand-rgb),.22)}70%{background:rgba(var(--brand-rgb),.10)}100%{background:transparent}}
.nav-flash,tr.nav-flash>td{animation:navFlash 1.9s ease-out}
.bcell.nav-flash{outline:2px solid rgba(var(--brand-rgb),.55);outline-offset:-2px}
.schedrow.nav-flash{outline:2px solid rgba(var(--brand-rgb),.55);outline-offset:-2px;border-radius:10px}
/* ---- 产线开关：暂停横幅 + iOS 式开关 + 批量操作条 ---- */
.pausebar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding:11px 16px;
  border-radius:var(--r-md);font-weight:600;font-size:.86rem;
  background:rgba(245,158,11,.12);color:#92400e;border:1px solid rgba(245,158,11,.32)}
.pausebar.paused{background:rgba(232,92,138,.12);color:#9d174d;border-color:rgba(232,92,138,.34)}
.pausebar a{font-weight:700}
.ctrlbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;margin-bottom:14px;
  border-radius:var(--r-md);border:1px solid var(--border);background:#fff;box-shadow:var(--shadow-sm)}
.ctrlbar.paused{border-color:rgba(232,92,138,.4);background:linear-gradient(135deg,#fff,#fff2f7)}
.tgl{display:inline-flex;align-items:center;border:0;background:transparent;padding:0;cursor:pointer;vertical-align:middle}
.tgl .track{width:40px;height:23px;border-radius:999px;background:var(--border-strong);position:relative;transition:background .2s}
.tgl .track::after{content:"";position:absolute;top:2.5px;left:2.5px;width:18px;height:18px;border-radius:50%;
  background:#fff;box-shadow:0 1px 3px rgba(23,28,52,.3);transition:transform .22s cubic-bezier(.2,.8,.3,1)}
.tgl.on .track{background:var(--success)}
.tgl.on .track::after{transform:translateX(17px)}
.tgl[disabled]{opacity:.45;cursor:default}
.batchbar{position:sticky;top:calc(var(--topbar-h) + 6px);z-index:20;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin-bottom:12px;padding:10px 16px;border-radius:var(--r-md);color:var(--text);font-size:.86rem;font-weight:600;
  background:rgba(var(--brand-rgb),.12);border:1px solid rgba(var(--brand-rgb),.3);backdrop-filter:blur(8px)}
.batchbar .btn{margin:0}
.selchk{width:16px;height:16px;cursor:pointer;accent-color:var(--primary);vertical-align:middle}
@media(max-width:1380px){
  .bento{grid-template-columns:repeat(3,1fr)}
  .bcell.wide,.bcell.half{grid-column:span 3}
}
@media(max-width:992px){
  .bento{grid-template-columns:repeat(2,1fr)}
  .bcell.wide,.bcell.half{grid-column:span 2}
  .bcell.hero .bnum{font-size:2.2rem}
}
@media(max-width:480px){
  .bento{grid-template-columns:1fr 1fr;gap:9px}
  .bcell{padding:11px 13px;min-height:68px}
}
/* ---- 指标卡 ---- */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.stat-card{position:relative;background:var(--surface-0);border-radius:var(--r-sm);
  padding:13px 16px;box-shadow:var(--shadow-sm);
  transition:transform .25s,box-shadow .25s;overflow:hidden}
.stat-card::before{content:'';position:absolute;inset:0;background:var(--grad-primary);opacity:0;transition:opacity .25s}
.stat-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md)}
.stat-card:hover::before{opacity:.08}
.stat-card>*{position:relative;z-index:1}
.stat-label{margin:0 0 .35rem;font-size:.75rem;color:var(--text-2);font-weight:500}
.stat-value{margin:0;font-size:1.3rem;font-weight:700;line-height:1.2}
.stat-trend{font-size:.72rem;margin-top:.35rem;color:var(--muted)}
/* ---- 卡片 / 面板 ---- */
.card{background:var(--surface-0);border-radius:var(--r-sm);
  box-shadow:var(--shadow-sm);margin-bottom:var(--space-4);overflow:hidden;transition:transform .2s,box-shadow .2s}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.card.static:hover{transform:none}
.card-header{background:transparent;
  padding:14px 18px 8px;font-weight:800;font-size:.98rem;
  display:flex;align-items:center;justify-content:space-between;gap:12px}
.card-body{padding:12px 18px 16px}
/* ---- 按钮体系 ---- */
.btn{border-radius:var(--r-xs);font-weight:500;letter-spacing:.1px;padding:.4rem .8rem;font-size:.85rem;
  line-height:1.4;border:1px solid transparent;transition:background .15s,box-shadow .15s;
  display:inline-flex;align-items:center;gap:6px;justify-content:center;color:var(--text-2);background:transparent}
.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(var(--brand-rgb),.15)}
.btn:active{transform:scale(.97);transition-duration:.08s}
.btn-sm{padding:.28rem .6rem;font-size:.78rem}
.btn-primary{background:var(--primary);color:#fff;border:none;font-weight:600}
.btn-primary:hover{background:var(--primary-dark)}
/* 今日总览 hero 的「去发布」主 CTA：实蓝+白字，从浅蓝卡片上清晰跳出，不再粉蓝渐变+深字糊在一起 */
.bcell.hero .btn-primary{font-weight:700}
/* 成品库列表里：被扔掉/没过审的稿，原因直接显示在标题下，不用逐个点开 */
.rowreason{margin-top:5px;font-size:.72rem;line-height:1.55;color:#b4452f;white-space:normal;
  background:rgba(232,92,46,.08);border:1px solid rgba(232,92,46,.16);border-radius:var(--r-xs);padding:4px 8px}
/* AI 员工 · 出图版式库 */
.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:14px;margin-top:6px}
.tpl-card{background:var(--surface-0);border-radius:var(--r-sm);overflow:hidden;display:flex;flex-direction:column;
  box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s}
.tpl-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.tpl-thumb{aspect-ratio:3/4;background:#f4f6fa;overflow:hidden;border-bottom:1px solid var(--border)}
.tpl-thumb img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
.tpl-b{padding:12px 13px 14px;display:flex;flex-direction:column;gap:5px}
.tpl-nm{font-weight:800;font-size:.92rem;color:var(--text);display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.tpl-kind{font-size:.62rem;font-weight:700;color:var(--primary);background:rgba(var(--brand-rgb),.1);border-radius:6px;padding:2px 7px}
.tpl-ds{font-size:.72rem;color:var(--text-2);line-height:1.55}
.tpl-when{font-size:.7rem;color:var(--muted);display:flex;align-items:center;gap:5px;line-height:1.5}
.tpl-use{margin-top:2px;font-size:.74rem;color:var(--text-2);font-weight:600}
.tpl-use b{color:var(--primary);font-size:1rem}
.tpl-badge{display:inline-block;font-size:.66rem;font-weight:800;letter-spacing:.5px;color:#9333ea;
  background:rgba(147,51,234,.1);border:1px solid rgba(147,51,234,.22);border-radius:6px;padding:2px 9px}
.tpl-foot{margin-top:13px;font-size:.72rem;color:var(--muted);line-height:1.6}
.btn-outline{border:none;color:var(--text-2);background:var(--surface-1);box-shadow:var(--shadow-xs)}
.btn-outline:hover{background:var(--surface-2);color:var(--text);box-shadow:var(--shadow-sm)}
.btn-light{background:rgba(23,28,52,.06);color:var(--text-2);border:none}
.btn-light:hover{background:rgba(23,28,52,.12)}
.btn-success{background:var(--primary);color:#fff;border:none;font-weight:600}
.btn-success:hover{background:var(--primary-dark)}
.btn-danger-soft{background:rgba(244,63,94,.08);color:var(--danger);border:none}
.btn-danger-soft:hover{background:rgba(244,63,94,.16)}

/* ---- 表格 ---- */
.tablebox{background:var(--surface-0);border-radius:var(--r-sm);
  box-shadow:var(--shadow-sm);overflow:auto}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:.85rem}
thead th{background:var(--surface-1);
  font-size:.74rem;font-weight:600;letter-spacing:.04em;color:var(--text-3);
  padding:.58rem .8rem;white-space:nowrap;text-align:left;position:sticky;top:0}
tbody td{padding:.6rem .8rem;font-size:.85rem;vertical-align:middle;border-bottom:1px solid var(--border-subtle)}
tbody tr{transition:background .2s}
tbody tr:hover{background:rgba(var(--brand-rgb),.035)}
tbody tr:last-child td{border-bottom:0}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.uava{width:34px;height:34px;border-radius:10px;background:rgba(var(--brand-rgb),.1);color:var(--primary);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;flex:0 0 34px}
.pill{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .62rem;font-size:.72rem;font-weight:600;letter-spacing:.2px}
.pill.gold{background:linear-gradient(120deg,#fef3c7,#fde68a);color:#92400e}
.pill.gray{background:#f1f3f8;color:#5b6378}
.dotst{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600}
.dotst::before{content:"";width:7px;height:7px;border-radius:50%}
.dotst.on{color:#15803d}.dotst.on::before{background:#22c55e;box-shadow:0 0 0 3px rgba(34,197,94,.14)}
.dotst.off{color:#9aa1b5}.dotst.off::before{background:#c3c9d6}
.quota{width:52px;height:5px;border-radius:3px;background:#eceff5;overflow:hidden;display:inline-block}
.quota i{display:block;height:100%;border-radius:3px;background:var(--grad-primary)}
/* ---- 翻页器 ---- */
.pager{display:flex;align-items:center;gap:6px;justify-content:center;padding:16px 0 6px;flex-wrap:wrap}
.pbtn{border:1px solid rgba(152,160,179,.25);background:#fff;border-radius:var(--r-xs);padding:.36rem .7rem;
  font-size:.8rem;font-weight:600;color:var(--text-2);cursor:pointer;transition:all .15s}
.pbtn:hover:not(:disabled){border-color:rgba(var(--brand-rgb),.45);color:var(--primary)}
.pbtn.on{background:var(--grad-primary);color:#fff;border-color:transparent}
.pbtn:disabled{opacity:.35;cursor:default}
.pdot{color:var(--muted);padding:0 2px}
.pinfo{font-size:.74rem;color:var(--muted);margin-left:8px}
/* ---- 聊天记录：统计概览 + 可查表格 ---- */
.mstats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.mstat{flex:1 1 0;min-width:92px;background:#fff;border:none;box-shadow:var(--shadow-xs);border-radius:var(--r-sm);
  padding:11px 15px;box-shadow:0 1px 2px rgba(23,28,52,.03)}
.mstat .v{font-size:1.42rem;font-weight:800;line-height:1.1;color:var(--text);font-variant-numeric:tabular-nums}
.mstat .v.warn{color:var(--danger)}
.mstat .k{font-size:.72rem;color:var(--muted);margin-top:3px}
.mtypes{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.mtype{font-size:.74rem;background:var(--surface-subtle);border:1px solid var(--border);
  border-radius:999px;padding:3px 11px;color:var(--text-2)}
.mtype b{color:var(--text);font-weight:700;margin-left:4px;font-variant-numeric:tabular-nums}
.rdot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:middle}
.cust-name{cursor:pointer;border:0;background:none;color:inherit;font:inherit;border-radius:6px;padding:1px 4px;transition:background .15s}
.cust-name:hover{background:rgba(var(--brand-rgb),.1);color:var(--primary)}
.cust-name .ed{font-style:normal;font-size:.7rem;color:var(--muted);margin-left:4px;opacity:0;transition:opacity .15s}
.cust-name:hover .ed{opacity:1}
.msgtable td{vertical-align:middle}
.mcontent{max-width:460px}
.mcontent img{height:42px;border-radius:6px;vertical-align:middle;margin-right:7px;cursor:zoom-in;border:1px solid var(--border)}
.mc-hint{color:var(--muted);font-size:.76rem}
.mvoice{display:inline-flex;align-items:center;gap:6px;vertical-align:middle}
.mvoice audio{height:32px;max-width:190px}
.mdl{color:var(--muted);text-decoration:none;font-size:.9rem;padding:2px 4px;border-radius:6px}
.mdl:hover{color:var(--primary);background:rgba(var(--brand-rgb),.1)}
.mbtn{border:1px solid var(--border);background:#fff;color:var(--text-2);
  border-radius:8px;padding:5px 11px;font-size:.78rem;font-weight:600;cursor:pointer;transition:.15s}
.mbtn:hover{background:var(--surface-subtle);color:var(--text);border-color:var(--border-strong)}
.mfile{display:inline-flex;align-items:center;gap:8px;text-decoration:none;background:var(--surface-subtle);
  border:1px solid var(--border);border-radius:10px;padding:6px 11px;max-width:300px;transition:.15s}
.mfile:hover{border-color:rgba(var(--brand-rgb),.4);background:rgba(var(--brand-rgb),.05)}
.mfile .fic{font-size:1.1rem;flex:0 0 auto}
.mfile .fnm{font-size:.78rem;color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mfile .dl{font-size:.72rem;color:var(--primary);flex:0 0 auto;font-weight:600}
@media(max-width:768px){.mcontent{max-width:180px}}
/* ---- AI 员工档案：实现网络 + 技能矩阵 + 最优解 ---- */
.emp-scene{font-size:.86rem;color:var(--text-2);margin-bottom:14px;line-height:1.6}
.emp-net{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--surface-subtle);
  border:1px solid var(--border);border-radius:var(--r-md);padding:13px 15px;margin-bottom:16px}
.emp-net .nio{flex:1;min-width:130px}
.emp-net .nio .nk{font-size:.66rem;color:var(--muted);margin-bottom:3px}
.emp-net .nio .nv{font-size:.78rem;color:var(--text-2);line-height:1.45}
.emp-net .nself{background:var(--grad-primary);color:#fff;border-radius:var(--r-sm);padding:7px 13px;
  font-weight:700;font-size:.82rem;white-space:nowrap;box-shadow:0 4px 12px rgba(var(--brand-rgb),.28)}
.emp-net .narr{color:var(--primary);font-size:17px;font-weight:700}
.emp-flow{margin:4px 0 16px;padding:0;list-style:none;counter-reset:f}
.emp-flow li{position:relative;padding:5px 0 5px 28px;font-size:.8rem;color:var(--text-2);line-height:1.6;counter-increment:f}
.emp-flow li::before{content:counter(f);position:absolute;left:0;top:4px;width:19px;height:19px;border-radius:50%;
  background:rgba(var(--brand-rgb),.12);color:var(--primary);font-size:.66rem;font-weight:700;
  display:flex;align-items:center;justify-content:center}
.emp-skills{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;margin:4px 0 16px}
.emp-skill{background:#fff;border:1px solid var(--border);border-radius:var(--r-sm);padding:10px 12px}
.emp-skill .sn{font-size:.79rem;font-weight:700;color:var(--text);margin-bottom:4px}
.emp-skill .sd{font-size:.72rem;color:var(--muted);line-height:1.5}
.emp-best{background:linear-gradient(135deg,rgba(var(--brand-rgb),.08),rgba(14,165,233,.06));
  border:1px solid rgba(var(--brand-rgb),.2);border-radius:var(--r-md);padding:11px 15px;margin-bottom:16px;
  font-size:.8rem;color:var(--text);line-height:1.6}
.emp-best b{color:var(--primary)}
.msgwrap{display:flex;flex-direction:column;gap:14px;max-width:840px;background:#fff;border:1px solid rgba(152,160,179,.14);
  border-radius:var(--r-md);padding:22px 24px;box-shadow:0 2px 10px rgba(23,28,52,.04)}
.msg-day{text-align:center;font-size:.72rem;color:var(--muted);margin:12px 0 2px;font-weight:600;position:relative}
.msg-day::before,.msg-day::after{content:"";position:absolute;top:50%;width:60px;height:1px;background:rgba(152,160,179,.25)}
.msg-day::before{left:calc(50% - 110px)}.msg-day::after{right:calc(50% - 110px)}
.msg-sys{align-self:center;text-align:center;font-size:.7rem;color:#9aa1b5;background:#f1f3f8;border-radius:999px;padding:.22rem .85rem}
.msg{display:flex;gap:10px;max-width:82%;align-items:flex-start}
.msg.me{align-self:flex-end;flex-direction:row-reverse}
.msg-ava{width:36px;height:36px;border-radius:var(--r-md);flex:0 0 36px;display:flex;align-items:center;justify-content:center;
  font-size:.8rem;font-weight:700;color:#fff;letter-spacing:.5px;box-shadow:0 2px 6px rgba(23,28,52,.12)}
.msg-col{display:flex;flex-direction:column;gap:4px;align-items:flex-start;min-width:0}
.msg.me .msg-col{align-items:flex-end}
.msg-meta{font-size:.68rem;color:var(--muted);padding:0 4px}
.msg-bubble{background:#f6f7fb;border:1px solid rgba(152,160,179,.14);border-radius:4px 14px 14px 14px;
  padding:.55rem .85rem;font-size:.86rem;line-height:1.7;box-shadow:0 1px 2px rgba(23,28,52,.04);word-break:break-word}
.msg.me .msg-bubble{background:linear-gradient(135deg,#eef1ff,#e9edff);border-color:rgba(var(--brand-rgb),.22);border-radius:14px 4px 14px 14px}
.msg-bubble.media{padding:5px;background:#fff;line-height:0}
.msg-bubble.media img{max-width:240px;max-height:280px;border-radius:10px;display:block;cursor:zoom-in}
.msg-bubble.media video{max-width:280px;max-height:240px;border-radius:10px;display:block}
.msg-bubble audio{width:250px;height:38px;display:block}
.msg-aihint{font-size:.72rem;color:var(--muted);line-height:1.55;padding:6px 8px 4px;max-width:240px}
.msg-file{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);min-width:190px}
.msg-file .fic{width:38px;height:38px;border-radius:10px;background:rgba(var(--brand-rgb),.1);display:flex;
  align-items:center;justify-content:center;font-size:1.1rem;flex:0 0 38px}
.msg-file .fname{font-size:.8rem;font-weight:600;line-height:1.4;word-break:break-all}
.msg-file .fhint{font-size:.68rem;color:var(--muted)}
.fsel{border:1px solid rgba(152,160,179,.22);background:rgba(255,255,255,.75);border-radius:var(--r-pill);
  padding:.38rem .8rem;font-size:.8rem;color:var(--text-2);outline:none;cursor:pointer;flex:0 0 auto;width:auto}

/* ---- 徽章 / 状态 ---- */
.badge{border-radius:999px;padding:.24rem .62rem;font-weight:600;font-size:.74rem;letter-spacing:.1px;white-space:nowrap;
  display:inline-flex;align-items:center;gap:4px}
.bg-pri{background:#eef0f5;color:#434a5e;box-shadow:none}
.bg-cat{background:#f3f4f6;color:#374151;font-weight:600}
.bg-ok{background:rgba(16,185,129,.14);color:#047857}
.bg-grn{background:rgba(16,185,129,.16);color:#047857}
.bg-warn{background:rgba(245,158,11,.16);color:#b45309}
.bg-bad{background:rgba(244,63,94,.18);color:#be123c}
.bg-mut{background:rgba(152,160,179,.2);color:#334155}
/* 可行性小徽标：1-2 红 / 3 黄 / 4-5 绿，悬停看评审理由 */
.vchip{display:inline-block;padding:.16rem .5rem;border-radius:999px;font-size:.74rem;font-weight:700;cursor:help}
.vchip.v1,.vchip.v2{background:rgba(244,63,94,.16);color:#be123c}
.vchip.v3{background:rgba(245,158,11,.18);color:#b45309}
.vchip.v4,.vchip.v5{background:rgba(16,185,129,.16);color:#047857}
.vchip.vna{background:#f3f4f6;color:#9aa1b0;font-weight:600}
.tag{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--r-2xs);
  background:var(--surface-2);color:var(--text-2);font-size:.78rem}

/* ---- 待发台：高密度小卡网格（封面+标题+账号），操作全部在预览弹窗内 ---- */
.plat-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--r-md);
  font-size:.72rem;font-weight:700;color:#fff}
.qgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(182px,1fr));gap:16px}
@keyframes qIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
/* ---- 发布台·昨日内容待反馈条（一键三按钮，闭环第一步） ---- */
.fbstrip{background:linear-gradient(135deg,rgba(95,176,255,.1),rgba(14,165,233,.09));
  border:1px solid rgba(var(--brand-rgb),.16);border-radius:var(--r-md);padding:13px 14px 11px;margin-bottom:16px}
.fbhead{font-size:.8rem;font-weight:700;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.fbhead span{font-weight:500;font-size:.68rem;color:var(--muted)}
.fbrow{display:flex;gap:10px;overflow-x:auto;padding-bottom:2px}
.fbcard{flex:0 0 234px;background:#fff;border:1px solid var(--border);border-radius:var(--r-md);
  padding:10px 12px;box-shadow:var(--shadow-sm);transition:all .3s}
.fbt{font-size:.78rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fba{font-size:.66rem;color:var(--muted);margin:2px 0 8px}
.fbbtns{display:flex;gap:6px}
.fbbtns button{flex:1;border:1px solid var(--border);background:var(--surface-subtle);border-radius:var(--r-xs);
  padding:5px 0;font-size:.72rem;transition:all .18s;white-space:nowrap;cursor:pointer}
.fbbtns button:hover{transform:translateY(-1px);border-color:rgba(var(--brand-rgb),.4);background:#fff;box-shadow:var(--shadow-sm)}
/* 表现回填·区间 chips（曝光/阅读 + 互动），替代粗粒度三按钮 */
.fbgrp{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.fbk{font-size:.72rem;color:var(--muted);flex:0 0 78px}
.fbchips{display:flex;gap:6px;flex-wrap:wrap}
.fbchip{border:1px solid var(--border);background:var(--surface-subtle);border-radius:var(--r-xs);
  padding:5px 11px;font-size:.73rem;cursor:pointer;transition:all .15s;white-space:nowrap}
.fbchip:hover{transform:translateY(-1px);border-color:rgba(var(--brand-rgb),.4);background:#fff;box-shadow:var(--shadow-sm)}
.fbchip.on{background:var(--primary);color:#fff;border-color:var(--primary);font-weight:700}
.fbnote{font-size:.7rem;color:var(--muted);margin:8px 0 0;line-height:1.5}

.qcard{background:#fff;border-radius:var(--r-md);overflow:hidden;cursor:pointer;
  border:1px solid rgba(152,160,179,.14);box-shadow:0 1px 3px rgba(23,28,52,.05);
  display:flex;flex-direction:column;transition:transform .25s cubic-bezier(.2,.8,.3,1),box-shadow .25s,border-color .25s;
  animation:qIn .45s cubic-bezier(.2,.8,.3,1) both}
.qcard:hover{transform:translateY(-4px);border-color:rgba(152,160,179,.28);
  box-shadow:0 16px 36px rgba(23,28,52,.12)}
.qgrid.still .qcard{animation:none}
.qcover{position:relative;aspect-ratio:3/4;background:linear-gradient(160deg,#f2f4f8,#e8ebf2);overflow:hidden}
.qcover img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.2,.8,.3,1)}
.qcard:hover .qcover img{transform:scale(1.05)}
.qcover::after{content:"";position:absolute;inset:auto 0 0;height:34%;pointer-events:none;
  background:linear-gradient(to top,rgba(23,28,52,.32),transparent)}
.qnoimg{width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  color:var(--muted);font-size:.72rem}
/* 发布台卡片：AI 传播潜力分（封面左下）+ 生成时间（标题下） */
.qscore{position:absolute;left:9px;bottom:9px;z-index:3;display:inline-flex;align-items:center;gap:3px;
  background:rgba(20,18,16,.6);color:#ffd54a;font-size:.66rem;font-weight:800;padding:3px 8px;border-radius:8px;backdrop-filter:blur(4px)}
.qmeta{padding:3px 13px 0;font-size:.67rem;color:var(--muted)}
/* 卡片悬浮快捷操作（复制 / 已发） */
.qquick{position:absolute;top:8px;left:8px;right:8px;z-index:3;display:flex;gap:6px;justify-content:flex-end;
  opacity:0;transform:translateY(-4px);transition:opacity .18s,transform .18s}
.qcard:hover .qquick{opacity:1;transform:none}
.qqbtn{border:none;border-radius:var(--r-xs);padding:5px 10px;font-size:.7rem;font-weight:700;cursor:pointer;
  background:rgba(255,255,255,.92);color:var(--text-2);box-shadow:0 2px 8px rgba(23,28,52,.18);backdrop-filter:blur(6px)}
.qqbtn:hover{background:#fff;color:var(--primary)}
.qqbtn.done{background:linear-gradient(135deg,#5b8cff,#336fff);color:#fff}
.qqbtn.done:hover{filter:brightness(1.06)}
@media(hover:none){.qquick{opacity:1;transform:none}}
/* 发布进度条 */
.pubprog{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:linear-gradient(135deg,#fff,var(--surface-subtle));
  border:1px solid var(--border);border-radius:var(--r-sm);padding:12px 18px;margin-bottom:14px}
.pubprog .pp-ic{font-size:1.2rem}
.pubprog .pp-txt{font-size:.92rem;color:var(--text)}
.pubprog .pp-txt b{color:var(--text);font-size:1.1rem;font-variant-numeric:tabular-nums}
.pubprog .pp-tip{font-size:.74rem;color:var(--muted);margin-left:auto}
/* 玻璃拟态角标：平台（右下，与左下的热度分错开避免重叠）/ 图数（右上）/ 质检警示 */
.qplat{position:absolute;bottom:8px;right:8px;z-index:2;display:inline-flex;align-items:center;gap:5px;
  padding:3px 9px;border-radius:var(--r-pill);font-size:.64rem;font-weight:600;color:#fff;
  background:rgba(23,28,52,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  border:.5px solid rgba(255,255,255,.25)}
.qplat i{width:6px;height:6px;border-radius:50%;display:inline-block}
.qn{position:absolute;top:8px;right:8px;z-index:2;color:#fff;font-size:.62rem;font-weight:500;
  padding:2px 8px;border-radius:10px;background:rgba(23,28,52,.35);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:.5px solid rgba(255,255,255,.2)}
.qwarn{position:absolute;top:8px;left:8px;z-index:2;background:rgba(245,158,11,.9);color:#fff;
  font-size:.62rem;font-weight:600;padding:2.5px 9px;border-radius:10px;
  backdrop-filter:blur(6px);box-shadow:0 2px 8px rgba(245,158,11,.35)}
.qtitle{padding:10px 12px 0;font-size:.82rem;font-weight:600;line-height:1.5;color:var(--text);
  letter-spacing:.1px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;min-height:2.5em}
.qfoot{display:flex;align-items:center;gap:6px;padding:8px 12px 11px;font-size:.7rem;color:var(--muted)}
.qfoot .qava{width:17px;height:17px;border-radius:50%;flex-shrink:0;display:inline-flex;
  align-items:center;justify-content:center;color:#fff;font-size:.58rem;font-weight:700}
.qfoot .qacc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;color:var(--text-2)}
.qfoot .qst{display:inline-flex;align-items:center;gap:4px;font-weight:600;flex-shrink:0;font-size:.66rem}
.qfoot .qst i{width:6px;height:6px;border-radius:50%;display:inline-block}
.qfoot .qst.ok{color:#059669}.qfoot .qst.ok i{background:#10b981;box-shadow:0 0 0 3px rgba(16,185,129,.15)}
.qfoot .qst.tk{color:#b45309}.qfoot .qst.tk i{background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.15)}
.ftab .dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px}
.imgwrap{position:relative;flex-shrink:0}
.img-deg{position:absolute;top:7px;left:7px;background:rgba(152,160,179,.85);color:#fff;
  font-size:.62rem;padding:2px 7px;border-radius:10px;z-index:2}
/* 真机预览（弹层内手机壳） */
.phone{width:375px;max-width:100%;margin:0 auto;border-radius:18px;overflow:hidden;
  border:1px solid rgba(152,160,179,.35);box-shadow:var(--shadow-md);background:#fff}
.phone .pv{margin:0;border:0;border-radius:0}
/* ---- 平台仿真预览（真实 UI 复刻：小红书笔记详情页 / 抖音图文 / 视频号图片动态） ---- */
.pv{margin:10px 12px 0;border-radius:var(--r-md);overflow:hidden;border:1px solid rgba(152,160,179,.22);background:#fff}
.pv svg{display:block;flex-shrink:0}
/* 图集通用 */
.pv-gal{position:relative}
.pv-gallery{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;background:#000;scroll-behavior:smooth;cursor:grab;user-select:none;-webkit-user-select:none}
.pv-gallery.grabbing{cursor:grabbing;scroll-behavior:auto}
.pv-gallery::-webkit-scrollbar{display:none}
.pv-gallery .imgwrap{scroll-snap-align:center;flex:0 0 100%}
/* 图片自适应原始比例（与真实 App 一致，不强裁） */
.pv-gallery img{width:100%;height:auto;display:block;border:0;border-radius:0 !important;cursor:inherit;-webkit-user-drag:none}
/* 切图箭头：默认隐藏，鼠标移到图上才出现（更像手机）+ 加大点击区 + z-index 高于装饰侧栏 */
.pv-nav{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;
  border:0;background:rgba(0,0,0,.46);color:#fff;font-size:22px;display:flex;align-items:center;
  justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s,background .2s,transform .15s;z-index:6;
  backdrop-filter:blur(4px);padding-bottom:3px;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.pv-gal:hover .pv-nav{opacity:1;pointer-events:auto}
.pv-nav:hover{background:rgba(0,0,0,.72);transform:translateY(-50%) scale(1.08)}
.pv-nav:active{transform:translateY(-50%) scale(.94)}
.pv-nav.prev{left:9px}.pv-nav.next{right:9px}
@media(hover:none){.pv-nav{opacity:.95;pointer-events:auto}}
.pv-pageno{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.35);color:#fff;font-size:11px;
  padding:2px 9px;border-radius:10px;z-index:2;backdrop-filter:blur(2px);font-weight:500}
.pv-dots{position:absolute;bottom:9px;left:50%;transform:translateX(-50%);display:flex;gap:4px;z-index:2}
.pv-dots span{width:5px;height:5px;border-radius:50%;background:rgba(190,190,190,.8);cursor:pointer;
  transition:.25s;box-shadow:0 1px 2px rgba(0,0,0,.25);position:relative}
.pv-dots span::before{content:"";position:absolute;inset:-8px}   /* 扩大圆点点击热区 */
.pv-dots span.on{background:#FF2442;transform:scale(1.25)}
.pv-segs{position:absolute;top:8px;left:10px;right:10px;display:flex;gap:4px;z-index:2}
.pv-segs i{flex:1;height:2.5px;border-radius:2px;background:rgba(255,255,255,.4);transition:background .25s;
  box-shadow:0 0 3px rgba(0,0,0,.45);cursor:pointer;position:relative}
.pv-segs i::before{content:"";position:absolute;inset:-9px 0}   /* 抖音顶部进度条加大点击热区 */
.pv-segs i.on{background:#fff}
/* —— 小红书：笔记详情页 —— */
.pv-xhs-nav{display:flex;align-items:center;gap:9px;padding:9px 12px;color:#333}
.pv-ava{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:13px;font-weight:700;flex-shrink:0}
.pv-name{font-size:13.5px;color:#333}
.pv-follow{margin-left:auto;border:1px solid #FF2442;color:#FF2442;background:#fff;border-radius:var(--r-pill);
  padding:3.5px 17px;font-size:12.5px;font-weight:500;pointer-events:none}
.pv-xhs .pv-body{padding:12px 14px 10px}
.pv-xhs .pv-title{font-size:16px;font-weight:600;color:#333;line-height:1.5;margin-bottom:7px}
/* 详情页正文全文显示（真实 App 点进帖子后没有折叠） */
.pv-text{font-size:14px;color:#333;line-height:1.8;white-space:pre-wrap}
.pv-tags{margin-top:2px;font-size:14px;color:#13386C;line-height:1.8}
.pv-time{margin-top:10px;font-size:12px;color:#999}
.pv-bar{display:flex;align-items:center;gap:13px;padding:8px 12px;border-top:.5px solid #ededed;color:#333}
.pv-bar .write{flex:1;background:#f5f5f5;border-radius:var(--r-pill);padding:7px 14px;font-size:13px;color:#999;min-width:0}
.pv-bar .act{display:inline-flex;align-items:center;gap:3px;font-size:12.5px;color:#333;font-weight:500}
/* —— 抖音：图文 —— */
.pv-dy{background:#161823;position:relative}
.pv-dy .pv-gallery{background:#161823}
.pv-dy-mark{position:absolute;bottom:10px;left:10px;background:rgba(0,0,0,.4);color:rgba(255,255,255,.92);
  font-size:10.5px;padding:2.5px 8px;border-radius:4px;z-index:2;display:inline-flex;align-items:center;gap:4px;backdrop-filter:blur(2px)}
/* 抖音右侧互动栏是装饰（假的赞/评/藏/转）：pointer-events:none → 不再挡住"下一张"箭头的点击 */
.pv-dy-side{position:absolute;right:9px;bottom:12px;display:flex;flex-direction:column;align-items:center;
  gap:15px;z-index:3;color:#fff;pointer-events:none}
.pv-dy-side .it{display:flex;flex-direction:column;align-items:center;gap:2px;
  filter:drop-shadow(0 1px 2.5px rgba(0,0,0,.65)) drop-shadow(0 0 7px rgba(0,0,0,.4))}
.pv-dy-side .it b{font-size:10.5px;font-weight:600}
.pv-dy-ava{position:relative;width:42px;height:46px;margin-bottom:-2px}
.pv-dy-ava .pv-ava{width:42px;height:42px;border:1.5px solid #fff;font-size:16px}
.pv-dy-ava .plus{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:17px;height:17px;
  border-radius:50%;background:#FE2C55;color:#fff;font-size:13px;line-height:15px;text-align:center;font-weight:700}
.pv-dy-body{position:relative;padding:12px 14px 12px}
.pv-dy-name{font-size:15px;font-weight:700;color:#fff;margin-bottom:6px}
.pv-dy .pv-text{color:rgba(255,255,255,.95);font-size:13.5px}
.pv-dy .pv-tags{color:#fff;font-weight:600;font-size:13.5px}
.pv-dy-music{display:flex;align-items:center;gap:6px;color:rgba(255,255,255,.95);font-size:12.5px;
  margin-top:9px;overflow:hidden;white-space:nowrap}
/* —— 视频号：沉浸式图文 feed（顶部 关注/朋友/推荐 tab + 黑底图集 + 底部白色信息面板） —— */
.pv-sph{background:#000;position:relative}
.pv-sph .pv-gallery{background:#000}
.pv-sph-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:center;gap:30px;
  padding:11px 0 14px;z-index:3;font-size:15px;color:rgba(255,255,255,.75);
  text-shadow:0 1px 5px rgba(0,0,0,.55);background:linear-gradient(180deg,rgba(0,0,0,.34),transparent)}
.pv-sph-top .on{color:#fff;font-weight:700;position:relative}
.pv-sph-top .on::after{content:'';position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);
  width:24px;height:3px;background:#fff;border-radius:2px}
.pv-sph-panel{background:#fff;padding:11px 14px 12px}
.pv-sph-panel .pv-text{font-size:14.5px;color:#1a1a1a;line-height:1.7}
.pv-sph-panel .pv-tags{font-size:14px;color:#576b95}
.pv-sph-foot{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:10px;
  border-top:.5px solid #ececec}
.pv-sph-foot .pv-ava{width:26px;height:26px;font-size:11px}
.pv-sph-name{font-size:14px;font-weight:600;color:#1a1a1a}
.pv-sph-foot .acts{margin-left:auto;display:flex;gap:17px;color:#444;align-items:center}
/* 复制按钮组 */
.copyrow{display:flex;gap:8px;padding:11px 14px 0;flex-wrap:wrap;align-items:center}
.copyrow .btn{flex:1;white-space:nowrap}
.copyrow .hint{font-size:.68rem;color:var(--muted)}
.copyrow .hint.over{color:var(--danger);font-weight:700}
/* 弹层底部操作区：工具行 + 提示行 + 决策行 */
/* 预览弹窗底部操作区（清透分层：信息 → 工具 → 决策） */
.pv-info{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.pv-info .hint{font-size:.7rem;color:var(--text-2);background:rgba(152,160,179,.12);border-radius:999px;padding:2px 10px}
.pv-info .hint.over{color:var(--danger);background:rgba(244,63,94,.12);font-weight:700}
.pv-info .altrow{flex-basis:100%;display:flex;flex-wrap:wrap;gap:7px;align-items:center;
  margin-top:6px;padding-top:8px;border-top:1px solid var(--border)}
.pv-info .altlbl{font-size:.72rem;font-weight:600;color:var(--text-2)}
.pv-info .alt{font-size:.74rem;background:#fff;border:1px solid var(--border);border-radius:8px;padding:5px 11px;
  cursor:pointer;color:var(--text-2);white-space:normal;line-height:1.5;text-align:left;transition:.15s}
.pv-info .alt:hover{border-color:rgba(var(--brand-rgb),.45);color:var(--primary);background:rgba(var(--brand-rgb),.04)}
.pv-tools{display:flex;gap:8px}
.btn-tool{flex:1;background:rgba(var(--brand-rgb),.07);border:none;color:var(--text-2);border-radius:var(--r-sm);
  padding:.6rem .5rem;font-size:.82rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px;
  cursor:pointer;transition:all .18s;white-space:nowrap}
.btn-tool:hover{background:rgba(var(--brand-rgb),.14);color:var(--primary);transform:translateY(-1px)}
.btn-tool .tic{font-size:1rem;line-height:1}
.pv-acts{display:flex;gap:8px;align-items:center;margin-top:2px}
.pv-acts .pub{flex:1;border:none;border-radius:var(--r-md);padding:.74rem;font-size:.92rem;font-weight:700;color:#fff;cursor:pointer;
  background:linear-gradient(135deg,#5b8cff,#336fff);box-shadow:0 8px 20px -6px rgba(51,111,255,.55);transition:.18s}
.pv-acts .pub:hover{transform:translateY(-1px);background:linear-gradient(135deg,#4d80ff,#2258e6);box-shadow:0 12px 26px -6px rgba(51,111,255,.62)}
.pv-acts .sec{border:none;background:rgba(152,160,179,.13);color:var(--text-2);border-radius:var(--r-md);
  padding:.74rem 1.05rem;font-size:.84rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:.15s}
.pv-acts .sec:hover{background:rgba(152,160,179,.22);color:var(--text)}
.pv-acts .dgr{border:none;background:none;color:var(--muted);font-size:.8rem;cursor:pointer;padding:.74rem .5rem;transition:.15s}
.pv-acts .dgr:hover{color:var(--danger)}
.qc{margin:2px 14px 0;font-size:.76rem;border-radius:var(--r-xs);padding:8px 10px;
  background:var(--surface-subtle);color:var(--text-2);border:1px solid rgba(152,160,179,.15)}
.qc.bad{background:rgba(244,63,94,.07);color:#be123c;border-color:rgba(244,63,94,.2)}
.dguide{padding:0 14px 11px;font-size:.68rem;color:var(--muted);display:flex;align-items:center;gap:5px}
/* ---- AI 节点工作台：流水线流程图 ---- */
/* AI 员工金字塔：结论先行（塔尖一句话）→ 自上而下 4 步 → 每步的员工 */
.pyr-top{text-align:center;background:linear-gradient(135deg,rgba(95,176,255,.14),rgba(139,92,246,.1));
  border:1px solid var(--border);border-radius:var(--r-md);padding:22px 20px;margin-bottom:6px}
.pyr-top-k{font-size:.74rem;color:var(--muted);letter-spacing:2px}
.pyr-top-v{font-size:1.36rem;font-weight:800;color:var(--text);margin:7px 0;line-height:1.45}
.pyr-top-v b{background:var(--grad-primary);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.pyr-top-s{font-size:.78rem;color:var(--text-2)}
.pyr-down{text-align:center;color:var(--primary);font-size:.8rem;font-weight:700;padding:7px 0}
.pyr-down span{color:var(--text-2);font-weight:400}
.pyr-step{display:flex;gap:16px;background:var(--surface-0);border-radius:var(--r-md);
  padding:var(--space-6);box-shadow:var(--shadow-sm)}
.ps-no{flex:0 0 44px;width:44px;height:44px;border-radius:var(--r-md);background:var(--grad-primary);color:#fff;
  font-size:1.5rem;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(var(--brand-rgb),.3)}
.ps-body{flex:1;min-width:0}
.ps-title{font-size:1.06rem;font-weight:800;color:var(--text)}
.ps-desc{font-size:.84rem;color:var(--text-2);margin:3px 0 13px;line-height:1.6}
.ps-nodes{display:flex;flex-wrap:wrap;gap:12px}
@media(max-width:680px){.pyr-step{flex-direction:column;gap:10px}.ps-no{width:38px;height:38px;flex-basis:38px;font-size:1.2rem}}
/* ---- AI 员工：Agent 控制台（流程条 + 分步 Agent 卡）---- */
.flow-rail{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
  background:linear-gradient(135deg,rgba(95,176,255,.1),rgba(139,92,246,.08));
  border:1px solid var(--border);border-radius:var(--r-md);padding:12px 16px;margin-bottom:16px}
.flow-rail>svg{color:rgba(var(--brand-rgb),.5);flex:0 0 auto}
.fr-chip{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:650;color:var(--text-2);
  background:#fff;border:1px solid var(--border);border-radius:10px;padding:6px 12px}
.fr-chip.mid{background:rgba(var(--brand-rgb),.1);color:var(--primary-dark);border:none}
.estep-flow{display:flex;align-items:center;justify-content:center;gap:7px;font-size:.74rem;color:var(--muted);padding:9px 0}
.estep-flow svg{color:hsl(var(--tone,220) 62% 58%)}
.estep-flow b{color:var(--text);font-weight:650}
.estep{background:var(--surface-0);border-radius:var(--r-md);
  padding:var(--space-6);box-shadow:var(--shadow-sm)}
.estep-head{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.estep-no{flex:0 0 38px;width:38px;height:38px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;
  background:hsl(var(--tone,220) 85% 95%);color:hsl(var(--tone,220) 64% 45%);border:1px solid hsl(var(--tone,220) 70% 88%)}
.estep-tt{min-width:0;flex:1}
.estep-tt .nm{font-size:1.02rem;font-weight:800;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.estep-tt .nm .sx{font-size:.68rem;font-weight:700;color:hsl(var(--tone,220) 58% 48%);
  background:hsl(var(--tone,220) 85% 96%);border:1px solid hsl(var(--tone,220) 70% 90%);border-radius:6px;padding:2px 8px}
.estep-tt .ds{font-size:.78rem;color:var(--text-2);line-height:1.55;margin-top:3px}
.estep-out{display:inline-flex;align-items:center;gap:5px;font-size:.71rem;font-weight:600;white-space:nowrap;
  color:hsl(var(--tone,220) 52% 44%);background:hsl(var(--tone,220) 85% 97%);
  border:1px solid hsl(var(--tone,220) 70% 91%);border-radius:var(--r-xs);padding:5px 10px}
.emp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.acard{position:relative;display:flex;flex-direction:column;gap:10px;overflow:hidden;cursor:pointer;
  background:var(--surface-0);border-radius:var(--r-sm);padding:var(--space-5) var(--space-5) var(--space-4) var(--space-6);
  box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s}
.acard::before{content:"";position:absolute;top:0;bottom:0;left:0;width:4px;background:hsl(var(--tone,220) 75% 62%)}
.acard:hover{transform:translateY(-3px);
  box-shadow:0 14px 30px hsl(var(--tone,220) 55% 50% / .18)}
.acard.tech{cursor:default;background:var(--surface-1)}
.acard.tech:hover{transform:none;box-shadow:var(--shadow-sm)}
.acard-top{display:flex;gap:11px;align-items:flex-start}
.acard-ava{flex:0 0 40px;width:40px;height:40px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;
  background:hsl(var(--tone,220) 85% 96%);color:hsl(var(--tone,220) 66% 46%);border:1px solid hsl(var(--tone,220) 70% 89%)}
.acard-id{min-width:0;flex:1}
.acard-name{font-size:.92rem;font-weight:750;color:var(--text);line-height:1.25}
.acard-role{font-size:.74rem;color:var(--muted);line-height:1.5;margin-top:3px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.acard-skills{display:flex;flex-wrap:wrap;gap:5px}
.askill{font-size:.66rem;font-weight:600;white-space:nowrap;color:hsl(var(--tone,220) 52% 42%);
  background:hsl(var(--tone,220) 80% 96%);border:1px solid hsl(var(--tone,220) 70% 90%);border-radius:var(--r-xs);padding:2px 7px}
.askill.more{color:var(--muted);background:var(--surface-subtle);border-color:var(--border)}
.acard-foot{display:flex;align-items:center;gap:6px;font-size:.68rem;color:var(--muted);
  border-top:1px dashed rgba(152,160,179,.22);padding-top:9px;margin-top:auto}
.acard-foot .abrain{display:inline-flex;align-items:center;gap:4px;font-weight:600;color:var(--text-2)}
.acard-foot .abrain svg{opacity:.65}
.acard-foot .sep{margin-left:auto;font-variant-numeric:tabular-nums}
.lgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:14px}
.lcard{position:relative;background:var(--surface-0);border-radius:var(--r-sm);box-shadow:var(--shadow-xs);
  padding:17px;cursor:pointer;overflow:hidden;transition:transform .18s,box-shadow .18s;
  border:none}  /* 白卡不描边：极淡投影浮在画布上（抖店质感）；色相只留图标处一点 */
.lcard:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}
.lcard-top{display:flex;align-items:center;gap:13px;margin-bottom:11px}
.lcard-ic{flex:0 0 46px;width:46px;height:46px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;
  background:hsl(var(--tone,220) 85% 95%);color:hsl(var(--tone,220) 64% 46%)}
.lcard-h{flex:1;min-width:0}
.lcard-nm{font-size:1.06rem;font-weight:800;color:var(--text)}
.lcard-ct{font-size:.74rem;color:var(--muted);margin-top:2px}
.lcard-go{color:hsl(var(--tone,220) 60% 58%);opacity:.45;transition:.18s}
.lcard:hover .lcard-go{opacity:1;transform:translateX(3px)}
.lcard-ds{font-size:.78rem;color:var(--text-2);line-height:1.55;margin-bottom:12px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}
.lcard-emps{display:flex;flex-wrap:wrap;gap:6px}
.lemp{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;color:var(--text-2);
  background:var(--surface-1);border-radius:var(--r-pill);padding:4px 11px 4px 9px}
.lemp svg{color:var(--muted);opacity:.85}  /* 降噪：员工 chip 图标统一中性灰，45 个彩色小图标太闹 */
.lemp i{font-style:normal}
.lemp.more{font-weight:700;color:hsl(var(--tone,220) 52% 42%);background:hsl(var(--tone,220) 80% 96%)}
.lflow{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin:2px 0 16px;padding:11px 15px;
  background:hsl(var(--tone,220) 80% 97%);border-radius:var(--r-sm)}
.lf-s{font-size:.8rem;font-weight:700;color:hsl(var(--tone,220) 58% 42%)}
.lf-ar{color:hsl(var(--tone,220) 50% 70%);display:inline-flex;align-items:center}
/* 员工档案弹窗 */
.emp-hero{display:flex;gap:12px;align-items:center;margin-bottom:15px}
.emp-hero-ava{flex:0 0 46px;width:46px;height:46px;border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;
  background:hsl(var(--tone,220) 85% 95%);color:hsl(var(--tone,220) 64% 45%);border:1px solid hsl(var(--tone,220) 70% 88%)}
.emp-hero-nm{font-size:1.06rem;font-weight:800;color:var(--text);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.emp-hero-ver{font-size:.64rem;font-weight:600;color:#047857;background:rgba(16,185,129,.12);border-radius:6px;padding:2px 7px}
.emp-hero-rl{font-size:.8rem;color:var(--text-2);line-height:1.5;margin-top:3px}
.emp-net .nio .nk{display:inline-flex;align-items:center;gap:4px}
.emp-net .narr{display:inline-flex;align-items:center}
.emp-best{display:flex;gap:7px;align-items:flex-start}
.emp-best svg{flex:0 0 auto;margin-top:1px;color:var(--primary)}
.pp-box{margin:10px 0 4px;border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}
.pp-head{display:flex;gap:6px;align-items:center;font-size:.7rem;color:var(--muted);line-height:1.5;
  padding:8px 11px;background:var(--surface-subtle);border-bottom:1px solid var(--border)}
.pp-head svg{flex:0 0 auto}
.pp-body{font-size:.74rem;line-height:1.65;white-space:pre-wrap;word-break:break-word;padding:12px;
  max-height:360px;overflow:auto;color:var(--text-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.pp-var{background:rgba(244,63,94,.12);color:#be123c;border-radius:4px;padding:0 3px;font-weight:600;white-space:normal}
/* 筛选 tabs + 搜索 */
.ftabs{display:flex;gap:2px;flex-wrap:wrap;margin-bottom:18px;align-items:center;
  border-bottom:1px solid var(--border)}
.ftab{border:none;background:none;border-radius:0;padding:.52rem .9rem .64rem;font-size:.86rem;font-weight:500;
  color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}
.ftab:hover{color:var(--text)}
.ftab.on{color:var(--text);font-weight:650;border-bottom-color:var(--text)}
.ftab .n{font-size:.72rem;color:var(--muted);margin-left:5px;font-weight:500;font-variant-numeric:tabular-nums}
.ftab.on .n{color:var(--text-2)}
.fsearch{margin-left:auto;max-width:240px;margin-bottom:8px}
.ftabs .fsel{margin-bottom:8px}
/* 聊天记录·更多筛选面板 */
.msg-adv{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:-8px 0 16px;padding:11px 13px;
  background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--r-md)}
.msg-adv .fsel{margin:0}
.msg-adv-date{font-size:.8rem;color:var(--text-2);display:inline-flex;align-items:center;gap:6px}
.msg-adv-date input[type=date]{font:inherit;padding:5px 8px;border:1px solid var(--border);border-radius:8px;color:var(--text);background:#fff}
/* 健康条 */
.health{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 0}
.hpill{display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid var(--border);
  border-radius:var(--r-pill);padding:7px 16px;font-size:.8rem;color:var(--text-2);font-weight:600;
  transition:.15s;cursor:pointer}
.hpill:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.hpill b{font-size:.95rem;color:var(--text)}
.hpill .dot{width:8px;height:8px;border-radius:50%}
.empty-state{padding:3rem 1.5rem;text-align:center;color:var(--muted);background:var(--bg-secondary);
  border:1px solid rgba(152,160,179,.2);border-radius:var(--r-sm)}
/* 产线流程条（运营视角） */
.flow{display:flex;align-items:stretch;gap:0;flex-wrap:wrap;padding:4px 0}
.flow .fstep{flex:1;min-width:104px;text-align:center;position:relative;padding:10px 6px;
  border-radius:var(--r-xs);transition:.15s;cursor:pointer}
.flow .fstep:hover{background:rgba(var(--brand-rgb),.06)}
.flow .fstep .fv{font-size:1.25rem;font-weight:700;line-height:1.3}
.flow .fstep .fl{font-size:.74rem;color:var(--text-2);margin-top:2px;font-weight:600}
.flow .fstep .fd{font-size:.66rem;color:var(--muted);margin-top:2px}
.flow .farr{display:flex;align-items:center;color:var(--border-strong);font-size:18px;padding:0 2px}
.empty-state .eic{font-size:2.6rem;display:block;margin-bottom:.8rem;color:rgba(var(--brand-rgb),.35)}
/* ---- 表单 ---- */
input,select,textarea{width:100%;border-radius:var(--r-xs);border:1px solid rgba(152,160,179,.45);
  background:var(--bg-secondary);padding:.5rem .75rem;font:inherit;font-size:.875rem;color:var(--text);
  transition:border-color .2s,box-shadow .2s}
input:focus,select:focus,textarea:focus{outline:0;border-color:rgba(var(--brand-rgb),.7);
  box-shadow:0 0 0 .24rem rgba(var(--brand-rgb),.15);background:#fff}
textarea{min-height:220px;font-family:'Menlo','Fira Code',Consolas,monospace;line-height:1.6;font-size:.8rem}
.flabel{font-weight:500;color:var(--text-2);font-size:.8rem;margin:12px 0 5px}
/* ---- Modal（自定义内容弹层） ---- */
.modal{position:fixed;inset:0;background:rgba(0,0,0,.6);display:none;align-items:flex-start;
  justify-content:center;z-index:1300;padding:calc(var(--topbar-h) + 20px) 20px 20px;animation:uiFadeIn .2s ease}
.modal.show{display:flex}
.modal .box{background:#fff;border-radius:var(--r-md);border:1px solid var(--border);
  max-width:720px;width:100%;max-height:calc(100vh - var(--topbar-h) - 60px);
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:var(--shadow-lg);animation:uiScaleIn .3s ease}
/* 窄版：发布预览只放一张 3:4 手机图，720 太空，收到贴合手机宽 */
.modal .box.narrow{max-width:468px}
/* 宽版：成品详情 = 左手机预览 + 右判断/详情 */
.modal .box.wide{max-width:860px}
/* ---- 图片放大遮罩（独立顶层，盖在弹窗之上，自己关自己） ---- */
.lightbox{position:fixed;inset:0;z-index:1500;background:rgba(0,0,0,.9);display:flex;align-items:center;
  justify-content:center;padding:26px;opacity:0;transition:opacity .2s;cursor:zoom-out;
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.lightbox.show{opacity:1}
.lightbox .lb-img{max-width:95vw;max-height:90vh;border-radius:10px;object-fit:contain;cursor:default;
  box-shadow:0 16px 60px rgba(0,0,0,.6);animation:uiScaleIn .25s ease}
.lightbox .lb-x{position:absolute;top:18px;right:22px;width:44px;height:44px;border-radius:50%;border:0;
  background:rgba(255,255,255,.16);color:#fff;font-size:27px;line-height:1;cursor:pointer;
  backdrop-filter:blur(6px);transition:.18s}
.lightbox .lb-x:hover{background:rgba(255,255,255,.32);transform:rotate(90deg)}
.lightbox .lb-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;
  border:0;background:rgba(255,255,255,.16);color:#fff;font-size:32px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;backdrop-filter:blur(6px);transition:.18s;padding-bottom:4px}
.lightbox .lb-nav:hover{background:rgba(255,255,255,.34)}
.lightbox .lb-nav.prev{left:22px}.lightbox .lb-nav.next{right:22px}
.lightbox .lb-count{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.92);
  font-size:13.5px;background:rgba(0,0,0,.42);padding:5px 15px;border-radius:var(--r-pill);backdrop-filter:blur(4px)}
@media(max-width:680px){.lightbox{padding:12px}.lightbox .lb-nav{width:44px;height:44px;font-size:26px}
  .lightbox .lb-nav.prev{left:10px}.lightbox .lb-nav.next{right:10px}.lightbox .lb-x{top:12px;right:14px}}
/* ---- 成品库详情：手机预览优先 + 一眼判断能不能发 ---- */
.dwrap{display:flex;gap:22px;align-items:flex-start;flex-wrap:wrap}
.dphone{flex:0 0 auto;width:375px;max-width:100%;margin:0 auto}
.dphone-cap{font-size:.74rem;color:var(--muted);text-align:center;margin-bottom:9px;font-weight:600}
.dside{flex:1;min-width:264px}
.dv-bar{border-radius:var(--r-md);padding:12px 15px;font-size:.88rem;font-weight:650;line-height:1.55;display:flex;gap:8px;align-items:flex-start}
.dv-bar.ok{background:rgba(16,185,129,.1);color:#047857;border:1px solid rgba(16,185,129,.28)}
.dv-bar.warn{background:rgba(245,158,11,.11);color:#b45309;border:1px solid rgba(245,158,11,.3)}
.dv-bar.bad{background:rgba(244,63,94,.08);color:#be123c;border:1px solid rgba(244,63,94,.26)}
.dhints{display:flex;gap:7px;flex-wrap:wrap;margin:11px 0 2px}
.dhints .hint{font-size:.72rem;color:var(--text-2);background:rgba(152,160,179,.13);border-radius:999px;padding:3px 11px}
.dhints .hint.over{color:var(--danger);background:rgba(244,63,94,.12);font-weight:700}
.dv-fb{margin:14px 0 2px}
.dsec{border:1px solid var(--border);border-radius:var(--r-md);margin-top:9px;background:var(--surface-subtle);overflow:hidden}
.dsec>summary{cursor:pointer;padding:10px 13px;font-size:.82rem;font-weight:650;color:var(--text-2);
  list-style:none;display:flex;align-items:center;gap:8px;user-select:none;transition:color .15s}
.dsec>summary::-webkit-details-marker{display:none}
.dsec>summary::before{content:"▸";color:var(--muted);font-size:.7rem;transition:transform .15s}
.dsec>summary:hover{color:var(--text)}
.dsec[open]>summary{color:var(--text);border-bottom:1px solid var(--border)}
.dsec[open]>summary::before{transform:rotate(90deg)}
.dsec-b{padding:12px 13px;font-size:.84rem}
@media(max-width:820px){.dwrap{gap:14px}.dphone{flex-basis:100%}}
/* ---- 历史存量挖掘控制台 ---- */
.bf-funnel{display:flex;align-items:flex-end;gap:5px;flex-wrap:wrap;background:var(--surface-subtle);
  border:1px solid var(--border);border-radius:var(--r-md);padding:14px 16px;margin-bottom:12px}
.bf-step{text-align:center;min-width:54px}
.bf-step .bf-n{font-size:1.3rem;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.bf-step .bf-l{font-size:.72rem;color:var(--text-2);font-weight:600}
.bf-step .bf-s{font-size:.58rem;color:var(--muted);margin-top:1px;max-width:88px;line-height:1.3}
.bf-arr{color:var(--border-strong);font-size:15px;padding:0 2px 5px}
.bf-recov{font-size:.8rem;color:var(--text-2);background:rgba(245,158,11,.08);
  border:1px solid rgba(245,158,11,.22);border-radius:10px;padding:9px 13px;margin-bottom:14px;line-height:1.7}
.bf-recov b{color:#b45309}
.bf-acts{display:grid;grid-template-columns:repeat(auto-fit,minmax(208px,1fr));gap:12px}
.bf-card{border-radius:var(--r-sm);padding:14px 15px;background:var(--surface-0);box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;gap:8px}
.bf-card .bf-t{font-size:.9rem;font-weight:700;color:var(--text)}
.bf-card .bf-d{font-size:.74rem;color:var(--text-2);line-height:1.6;flex:1}
.bf-card .bf-cap{font-size:.74rem;color:var(--muted);display:flex;align-items:center;gap:5px}
.bf-card .bf-go{width:100%}
.bf-idle{font-size:.78rem;color:var(--muted);text-align:center;padding:16px;margin-top:14px;
  border-top:1px dashed var(--border)}
.bf-prog{margin-top:16px;border-top:1px solid var(--border);padding-top:14px}
.bf-prog-h{font-size:.84rem;margin-bottom:8px}
.bf-run{color:#047857;font-weight:700;font-size:.72rem;background:rgba(16,185,129,.12);padding:1px 8px;border-radius:8px}
.bf-done{color:var(--muted);font-weight:700;font-size:.72rem;background:rgba(152,160,179,.15);padding:1px 8px;border-radius:8px}
.bf-bar{height:8px;border-radius:6px;background:rgba(152,160,179,.18);overflow:hidden}
.bf-bar i{display:block;height:100%;background:var(--grad-primary);transition:width .4s}
.bf-meta{font-size:.74rem;color:var(--text-2);margin:7px 0 9px;font-variant-numeric:tabular-nums}
.bf-samp{margin-top:12px}
.bf-samp-h{font-size:.82rem;font-weight:700;color:var(--text);margin-bottom:8px}
.bf-row{display:flex;gap:8px;align-items:center;font-size:.74rem;padding:5px 0;border-bottom:1px dashed var(--border)}
.bf-row.hit{background:rgba(16,185,129,.06)}
.bf-row .bf-sc{flex:0 0 80px;color:var(--text-2);font-weight:600}
.bf-row .bf-pa{flex:0 0 56px;color:var(--muted)}
.bf-row .bf-dg{flex:1;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bf-row .bf-tag{flex:0 0 auto;color:#047857;font-weight:700}

/* ---- 真实故事卡：结构化（场景+画像+吸引力 / 故事 / 能写成 / 金句 / 产出） ---- */
.mscard{background:var(--surface-0);border-radius:var(--r-sm);padding:var(--space-5) var(--space-6);
  display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-sm);
  transition:transform .25s cubic-bezier(.2,.8,.3,1),box-shadow .25s}
.mscard:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:rgba(152,160,179,.28)}
.ms-head{display:flex;align-items:flex-start;gap:10px}
.ms-title{flex:1;min-width:0;font-size:.95rem;font-weight:700;color:var(--text);line-height:1.45;cursor:pointer;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;transition:color .15s}
.ms-title:hover{color:var(--primary-dark)}
.ms-who{font-size:.72rem;color:var(--muted);font-weight:500;margin-top:-3px}
.ms-story{font-size:.8rem;line-height:1.8;color:var(--text-2);cursor:pointer;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.ms-story.open{-webkit-line-clamp:unset;display:block}
.ms-story.empty{color:var(--muted);cursor:default}
.ms-angles{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ms-lead{font-size:.7rem;color:var(--muted);font-weight:600}
.ms-quote{font-size:.78rem;line-height:1.65;color:var(--text-2);border-left:3px solid rgba(var(--brand-rgb),.4);
  background:rgba(var(--brand-rgb),.05);border-radius:0 7px 7px 0;padding:6px 11px}
.ms-foot{display:flex;align-items:center;gap:8px;margin-top:2px;padding-top:10px;border-top:1px solid var(--border)}
.ms-prod{font-size:.76rem;font-weight:600;cursor:pointer;transition:.15s}
.ms-prod.used{color:var(--ok)}.ms-prod.used:hover{color:#15803d}
.ms-prod.unused{color:var(--muted)}.ms-prod.unused:hover{color:var(--text-2)}
.ms-foot .sp{flex:1}
.ms-del{border:none;background:none;color:var(--muted);font-size:.74rem;cursor:pointer;padding:4px 8px;border-radius:8px}
.ms-del:hover{color:var(--danger);background:rgba(244,63,94,.08)}
/* 详情弹窗 */
.mat-meta{font-size:.74rem;color:var(--muted);margin-bottom:8px}
.mat-h{font-size:1.02rem;font-weight:700;line-height:1.5;color:var(--text)}
.mat-narr{font-size:.82rem;line-height:1.95;white-space:pre-wrap;color:var(--text)}
.mat-empty{font-size:.78rem;color:var(--muted);margin-top:12px}
.mat-tl-row{display:flex;gap:10px;font-size:.78rem;line-height:1.8;margin:3px 0;color:var(--text-2)}
.mat-tl-row .w{flex:0 0 58px;color:var(--muted);font-weight:600}

/* ---- 聊天记录：消息内容渲染（引用/图片/合并转发/链接/视频号）+ 数据分析 ---- */
.mc-reply{display:flex;flex-direction:column;gap:3px}
.mc-quoted{font-size:.72rem;color:var(--text-2);border-left:2.5px solid rgba(var(--brand-rgb),.45);
  padding:2px 0 2px 8px;line-height:1.5;max-width:440px;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;background:rgba(var(--brand-rgb),.05);border-radius:0 4px 4px 0}
.mc-rtext{color:var(--text);line-height:1.6}
.mc-img{display:inline-flex;align-items:center;gap:8px}
.mc-img img{height:44px;width:44px;object-fit:cover;border-radius:8px;border:1px solid var(--border);cursor:zoom-in;flex-shrink:0}
.mc-tag{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;color:var(--text-2);
  background:var(--surface-subtle);border:1px solid var(--border);border-radius:8px;padding:3px 9px;
  max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-vtext{color:var(--text-2);font-size:.78rem;margin-left:8px}
.mc-fwd{display:inline-block;border:1px solid var(--border);border-radius:10px;padding:6px 11px;cursor:pointer;
  background:var(--surface-subtle);font-size:.78rem;color:var(--text-2);max-width:460px;transition:.15s}
.mc-fwd:hover{border-color:rgba(var(--brand-rgb),.45);color:var(--primary)}
.mc-fwd-b{font-size:.72rem;color:var(--muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-link{display:inline-flex;align-items:center;gap:6px;color:var(--primary);font-size:.8rem;text-decoration:none;max-width:440px}
.mc-link b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mc-link span{color:var(--muted);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* 视频号分享：企微存档只给「频道名+描述+类型」无可播放链接，故完整呈现文字内容 */
.mc-sph{display:inline-flex;flex-direction:column;gap:4px;max-width:460px;border:1px solid var(--border);
  border-left:3px solid #FA9D3B;border-radius:10px;padding:7px 11px;background:var(--surface-subtle)}
.mc-sph-hd{display:flex;align-items:center;gap:5px;font-size:.76rem;color:var(--text-2)}
.mc-sph-hd b{color:#FA9D3B;font-weight:700}
.mc-sph-name{color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px}
.mc-sph-kind{margin-left:auto;font-size:.66rem;color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:0 6px;flex-shrink:0}
.mc-sph-desc{font-size:.78rem;color:var(--text-2);font-family:inherit;text-align:left;border:0;background:none;padding:0;line-height:1.55;white-space:pre-wrap;word-break:break-word;
  cursor:pointer;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.mc-sph-desc.open{-webkit-line-clamp:unset}
.mc-sph-foot{font-size:.68rem;color:var(--muted);margin-top:3px}
.mc-inlink{color:var(--primary);text-decoration:underline;word-break:break-all}
.mc-inlink:hover{opacity:.8}
.mc-clip{cursor:pointer;border:0;background:none;color:inherit;font:inherit;text-align:left;padding:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mc-clip.open{-webkit-line-clamp:unset;display:inline}
.an-kw{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px;align-items:center}
.an-kw .w{cursor:pointer;border:0;font:inherit;border-radius:999px;padding:5px 13px;background:rgba(var(--brand-rgb),.08);
  color:var(--primary);font-weight:600;line-height:1.2;transition:.15s}
.an-kw .w:hover{background:rgba(var(--brand-rgb),.2);transform:translateY(-1px)}
.an-kw .w b{color:var(--muted);font-weight:500;font-size:.7em;margin-left:5px}
.an-trend{display:flex;align-items:flex-end;gap:5px;height:96px;margin-top:6px;padding:14px 2px 0}
.an-trend .bar{flex:1;background:linear-gradient(180deg,rgba(var(--brand-rgb),.6),rgba(var(--brand-rgb),.22));
  border-radius:4px 4px 0 0;min-height:3px;position:relative;transition:.15s}
.an-trend .bar:hover{filter:brightness(1.12)}
.an-trend .bar:hover::after{content:attr(data-v);position:absolute;top:-19px;left:50%;transform:translateX(-50%);
  font-size:.66rem;color:var(--text-2);white-space:nowrap;background:#fff;padding:1px 6px;border-radius:6px;box-shadow:var(--shadow-sm)}
.an-trend-x{display:flex;gap:5px}
.an-trend-x span{flex:1;text-align:center;font-size:.6rem;color:var(--muted);overflow:hidden}
/* 聊天记录·数据分析看板 */
/* 挖掘漏斗 */
.fnl{display:flex;align-items:stretch;justify-content:space-between;gap:4px;flex-wrap:wrap;padding:8px 0 2px}
.fnl .st{flex:1;min-width:80px;text-align:center;background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--r-md);padding:11px 6px}
.fnl .st .n{font-size:1.45rem;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.05}
.fnl .st .l{font-size:.78rem;color:var(--text);font-weight:650;margin-top:4px}
.fnl .st .d{font-size:.64rem;color:var(--muted);margin-top:1px}
.fnl .ar{display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--border-strong);font-size:1rem;min-width:26px;flex:0 0 auto}
.fnl .ar i{font-size:.62rem;font-style:normal;color:var(--primary);font-weight:700;margin-top:1px}
.fn-insight{font-size:.8rem;color:var(--text-2);margin:12px 2px 0;line-height:1.6}
.fn-insight b{color:var(--primary);font-weight:700}
/* 客户故事贡献·未贡献原因行 */
.cc-row{margin-bottom:10px}
.cc-row .cc-top{display:flex;align-items:center;gap:10px}
.cc-row .cc-l{flex:0 0 168px;font-size:.82rem;color:var(--text);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc-row .cc-bar{flex:1;height:14px;background:var(--surface-subtle);border-radius:6px;overflow:hidden}
.cc-row .cc-bar i{display:block;height:100%;background:linear-gradient(90deg,rgba(var(--brand-rgb),.55),rgba(var(--brand-rgb),.3))}
.cc-row .cc-n{flex:0 0 auto;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);min-width:38px;text-align:right}
.cc-row .cc-h{font-size:.68rem;color:var(--muted);margin:3px 0 0 178px}
@media(max-width:768px){.cc-row .cc-h{margin-left:0}.cc-row .cc-l{flex-basis:120px}}
/* 选题冷热体检 */
.tr-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(184px,1fr));gap:10px;margin-bottom:4px}
.tr-b{border:1px solid var(--border);border-radius:var(--r-md);padding:11px 13px;background:var(--surface-subtle)}
.tr-b.hot{border-color:rgba(224,57,43,.28);background:rgba(224,57,43,.05)}
.tr-b.warn{border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.06)}
.tr-b.cold{border-color:rgba(51,111,255,.25);background:rgba(51,111,255,.05)}
.tr-b .tr-h{display:flex;align-items:baseline;gap:8px}
.tr-b .tr-n{font-size:1.5rem;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;line-height:1}
.tr-b .tr-l{font-size:.82rem;font-weight:650;color:var(--text)}
.tr-b .tr-d{font-size:.68rem;color:var(--muted);margin-top:5px;line-height:1.5}
.tr-sub{font-size:.78rem;font-weight:650;color:var(--text);margin:14px 2px 6px}
.tr-empty{font-size:.82rem;color:var(--text-2);line-height:1.95;background:var(--surface-subtle);border:1px dashed var(--border-strong);border-radius:var(--r-md);padding:18px 20px}
.tr-empty b{color:var(--text)}
.mtabbar{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border)}
.mtab{border:none;background:none;padding:.6rem 1.05rem .72rem;font-size:.92rem;font-weight:600;color:var(--muted);
  border-bottom:2.5px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:7px;cursor:pointer;transition:.15s}
.mtab:hover{color:var(--text-2)}
.mtab.on{color:var(--primary);border-bottom-color:var(--primary)}
.anrange{display:flex;gap:7px;margin-bottom:14px}
.anrange button{border:1px solid var(--border);background:#fff;border-radius:999px;padding:4px 15px;font-size:.78rem;color:var(--text-2);cursor:pointer;transition:.15s}
.anrange button:hover{border-color:rgba(var(--brand-rgb),.4)}
.anrange button.on{background:rgba(var(--brand-rgb),.1);color:var(--primary);border-color:rgba(var(--brand-rgb),.35);font-weight:600}
.dkpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(138px,1fr));gap:12px;margin-bottom:14px}
.dkpi{background:var(--surface-0);border-radius:var(--r-sm);padding:var(--space-5) var(--space-6);box-shadow:var(--shadow-sm)}
.dkpi .v{font-size:1.55rem;font-weight:800;color:var(--text);line-height:1.1;font-variant-numeric:tabular-nums}
.dkpi .k{font-size:.76rem;color:var(--text-2);margin-top:4px}
.dkpi .s{font-size:.66rem;color:var(--muted);margin-top:1px}
.dpanel{background:var(--surface-0);border-radius:var(--r-sm);padding:var(--space-5) var(--space-6);margin-bottom:14px;box-shadow:var(--shadow-sm)}
.dpanel h4{font-size:.86rem;font-weight:700;color:var(--text);margin:0 0 13px;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.dpanel h4 .leg{font-size:.7rem;font-weight:400;color:var(--muted);display:inline-flex;align-items:center;gap:4px;margin-left:auto}
.dpanel h4 .leg i{width:10px;height:10px;border-radius:3px;display:inline-block}
.dpanel h4 .leg .lc{background:rgba(var(--brand-rgb),.72)}
.dpanel h4 .leg .ls{background:rgba(var(--brand-rgb),.3);margin-left:8px}
.dgrid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:880px){.dgrid2{grid-template-columns:1fr}}
.dtrend{display:flex;align-items:flex-end;gap:3px;height:132px;padding-top:10px}
.dcol{flex:1;min-width:0;display:flex;flex-direction:column-reverse;border-radius:3px 3px 0 0;overflow:hidden;min-height:2px;background:rgba(var(--brand-rgb),.08);transition:filter .15s}
.dcol:hover{filter:brightness(1.06)}
.dcol .c{background:rgba(var(--brand-rgb),.72);width:100%}
.dcol .s{background:rgba(var(--brand-rgb),.3);width:100%}
.htrend{display:flex;align-items:flex-end;gap:2px;height:100px;padding-top:8px}
.hcol{flex:1;background:linear-gradient(180deg,rgba(var(--brand-rgb),.55),rgba(var(--brand-rgb),.2));border-radius:3px 3px 0 0;min-height:2px;transition:filter .15s}
.hcol:hover{filter:brightness(1.12)}
.hbar{display:flex;align-items:center;gap:9px;margin:6px 0;font-size:.78rem}
.hbar[onclick],.hbar[data-customer-action]{cursor:pointer}
.hbar[onclick]:hover .hb-t i,.hbar[data-customer-action]:hover .hb-t i{filter:brightness(1.1)}
.hbar[onclick]:hover .hb-l,.hbar[data-customer-action]:hover .hb-l{color:var(--primary)}
.hb-l{flex:0 0 110px;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb-t{flex:1;background:var(--surface-subtle);border-radius:6px;height:15px;overflow:hidden}
.hb-t i{display:block;height:100%;background:linear-gradient(90deg,rgba(var(--brand-rgb),.66),rgba(var(--brand-rgb),.32));border-radius:6px;transition:width .35s}
.hb-n{flex:0 0 auto;color:var(--text);font-weight:600;font-variant-numeric:tabular-nums;min-width:42px;text-align:right}
.hbar:hover{background:rgba(var(--brand-rgb),.06);border-radius:6px}
/* 通用即时浮层提示（fixed，不被父容器裁剪） */
#gtip{position:fixed;left:0;top:0;z-index:9999;max-width:min(380px,calc(100vw - 20px));padding:9px 12px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:rgba(21,27,45,.96);box-shadow:0 12px 32px rgba(10,18,36,.3);color:#fff;font-size:.68rem;font-variant-numeric:tabular-nums;line-height:1.65;opacity:0;pointer-events:none;white-space:pre-line;transition:opacity .1s;backdrop-filter:blur(8px)}
.metric-help{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;border:1px solid var(--border);border-radius:50%;margin-left:4px;flex:none;color:var(--muted);font-size:.62rem;line-height:1;cursor:help;transition:color .12s,border-color .12s,background .12s}
.metric-help:hover,.metric-help:focus-visible{color:var(--primary);border-color:rgba(var(--brand-rgb),.45);background:rgba(var(--brand-rgb),.08)}
.metric-help:focus-visible{outline:2px solid rgba(var(--brand-rgb),.22);outline-offset:2px}
/* 星期×时段热力图 */
.heatmap{overflow-x:auto;padding-bottom:2px}
.hm-row{display:flex;align-items:center;gap:2px;margin:2px 0;min-width:540px}
.hm-d{flex:0 0 30px;font-size:.64rem;color:var(--muted);text-align:right;padding-right:5px}
.hm-c{flex:1;min-width:13px;height:16px;border-radius:2px;cursor:default;transition:transform .1s}
.hm-c:hover{transform:scale(1.2);outline:1.5px solid var(--primary);position:relative;z-index:1}
.hm-h{flex:1;min-width:13px;font-size:.56rem;color:var(--muted);text-align:center}
/* 响应时效 KPI 行 */
.rstat{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:12px}
.rstat .v{font-size:1.3rem;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}
.rstat .k{font-size:.68rem;color:var(--muted);margin-top:2px}
/* 被晾着的客户 */
.cold-n{font-size:1.5rem;font-weight:800;color:#e8590c;margin-bottom:6px}
.cold-n span{font-size:.76rem;font-weight:400;color:var(--text-2)}
.cold-row{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;padding:5px 0;border-top:1px solid var(--border);color:var(--text-2)}
.cold-row span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cold-row .t{flex:0 0 auto;color:var(--muted);font-size:.72rem}
.anempty{color:var(--muted);font-size:.78rem}
/* 弹窗打开时锁住背景页滚动（滚到弹窗底部不再带动外层页面） */
body.modal-open{overflow:hidden}
/* 标题固定顶部，内容区独立滚动，操作栏固定底部（清透冷白，与系统统一） */
.modal .box-h{flex-shrink:0;background:rgba(252,253,255,.92);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
  padding:1rem 1.3rem;font-weight:700;display:flex;justify-content:space-between;align-items:center}
.modal .box-h .x{border:0;background:none;font-size:20px;color:var(--muted);width:30px;height:30px;
  border-radius:50%;transition:.2s}
.modal .box-h .x:hover{background:rgba(152,160,179,.15);color:var(--text)}
.modal .box-b{padding:1.2rem 1.3rem;overflow-y:auto;flex:1;min-height:0;overscroll-behavior:contain;background:var(--surface-subtle)}
.modal .box-f{flex-shrink:0;background:rgba(252,253,255,.96);backdrop-filter:blur(12px);
  border-top:1px solid var(--border);
  padding:.9rem 1.3rem 1rem;display:flex;flex-direction:column;gap:10px}
.modal .box-f .copyrow{padding:0}
.modal .box-f .ops{display:flex;gap:8px;align-items:center}
.modal .box-f .ops .btn{flex:1;white-space:nowrap}
.modal .box-f .ops .btn-success{flex:2}
.modal img{max-width:100%;border-radius:var(--r-sm)}
@keyframes uiFadeIn{from{opacity:0}to{opacity:1}}
@keyframes uiScaleIn{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}

/* ---- 确认对话框 ---- */
.confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;
  justify-content:center;z-index:1400;animation:uiFadeIn .2s ease;padding:20px}
.confirm-dialog{background:#fff;border-radius:var(--r-md);padding:30px;max-width:430px;width:100%;animation:uiScaleIn .3s ease}
.confirm-icon{width:60px;height:60px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:26px;margin:0 auto 18px}
.confirm-dialog.warning .confirm-icon{background:linear-gradient(135deg,#fef3c7,#fed7aa);color:#f59e0b}
.confirm-dialog.danger .confirm-icon{background:linear-gradient(135deg,#fee2e2,#fecaca);color:#ef4444}
.confirm-dialog.info .confirm-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe);color:#336fff}
.confirm-title{text-align:center;font-size:19px;font-weight:600;margin-bottom:10px;color:#111827}
.confirm-msg{text-align:center;color:#6b7280;margin-bottom:18px;line-height:1.6;font-size:14px}
.confirm-input{margin-bottom:20px}
.confirm-btns{display:flex;gap:12px}
.confirm-btn{flex:1;padding:11px 22px;border:none;border-radius:8px;font-size:14.5px;font-weight:500;transition:all .3s}
.cb-cancel{background:#f3f4f6;color:#374151}
.cb-cancel:hover{background:#e5e7eb}
.cb-confirm{background:var(--grad-primary);color:#fff}
.cb-confirm:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(var(--brand-rgb),.3)}
.cb-danger{background:var(--grad-danger)}
.cb-danger:hover{transform:translateY(-2px);box-shadow:0 5px 15px rgba(239,68,68,.3)}

/* ---- Toast（右上角卡片式） ---- */
.toast-container{position:fixed;top:calc(var(--topbar-h) + 14px);right:20px;z-index:1500;pointer-events:none}
.umenu{position:fixed;top:calc(var(--topbar-h) + 8px);right:14px;z-index:1600;background:var(--surface-raised);
  border-radius:var(--r-sm);box-shadow:var(--shadow-lg);
  min-width:218px;overflow:hidden;animation:fadeUp .18s}
.umenu .um-head{padding:14px 16px 10px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:3px}
.umenu .um-head b{font-size:.92rem}
.umenu .um-head span{font-size:.74rem;color:var(--muted)}
.umenu button{all:unset;display:block;width:100%;box-sizing:border-box;padding:11px 16px;font-size:.84rem;cursor:pointer;color:var(--text)}
.umenu button:hover{background:var(--surface-subtle)}
.umenu button.danger{color:#dc2626}
.ui-toast{background:#fff;border-radius:10px;padding:14px 18px;margin-bottom:10px;
  box-shadow:0 10px 40px rgba(0,0,0,.15);display:flex;align-items:center;gap:12px;
  min-width:290px;max-width:400px;pointer-events:all;animation:toastIn .3s ease-out;border-left:4px solid #336fff}
@keyframes toastIn{from{transform:translateX(110%);opacity:0}to{transform:none;opacity:1}}
.ui-toast.hiding{animation:toastOut .3s ease-in forwards}
@keyframes toastOut{to{transform:translateX(110%);opacity:0}}
.ui-toast .tic{font-size:20px;flex-shrink:0}
.ui-toast .tt{font-weight:600;font-size:14px;color:#111827}
.ui-toast .tm{font-size:12.5px;color:#6b7280}
.ui-toast .tx{background:none;border:none;font-size:18px;color:#9ca3af;flex-shrink:0;padding:0 2px}
.ui-toast.success{border-left-color:#10b981}.ui-toast.success .tic{color:#10b981}
.ui-toast.error{border-left-color:#ef4444}.ui-toast.error .tic{color:#ef4444}
.ui-toast.warning{border-left-color:#f59e0b}.ui-toast.warning .tic{color:#f59e0b}
.ui-toast.info{border-left-color:#336fff}.ui-toast.info .tic{color:#336fff}

/* ---- Loading 遮罩 ---- */
.loading-overlay{position:fixed;inset:0;background:rgba(0,0,0,.62);display:flex;align-items:center;
  justify-content:center;z-index:1450;animation:uiFadeIn .2s ease}
.loading-card{background:#fff;padding:36px 44px;border-radius:var(--r-md);text-align:center;min-width:280px}
.spinner{width:54px;height:54px;border:4px solid #e5e7eb;border-top-color:var(--primary);border-radius:50%;
  animation:spin .8s linear infinite;margin:0 auto 18px}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-text{color:#374151;font-size:15px;font-weight:500}
.loading-sub{color:#9ca3af;font-size:13px;margin-top:6px}

.skeleton{background:linear-gradient(90deg,#eceff5 25%,#f7f9fc 50%,#eceff5 75%);background-size:200% 100%;
  animation:shimmer 1.3s infinite;border-radius:var(--r-sm);height:120px;margin-bottom:12px}
@keyframes shimmer{to{background-position:-200% 0}}
/* ---- 骨架屏：形状匹配最终布局，扫光质感 ---- */
.sk{position:relative;overflow:hidden;background:#eaedf4;border-radius:var(--r-md)}
.sk::after{content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);animation:skSweep 1.15s infinite}
@keyframes skSweep{to{transform:translateX(100%)}}

/* ---- 登录场景「曙光之门」：流体光场 + 噪点 + 玻璃卡 + 视差 ---- */
.gate{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;overflow:hidden;
  background:linear-gradient(180deg,#edf1fc 0%,#eef3fc 52%,#edf6f8 100%)}
.gate-sky{position:absolute;inset:-14%;filter:blur(72px) saturate(1.2)}
.gate-sky .gp{position:absolute;inset:0;transition:transform .4s cubic-bezier(.2,.8,.3,1)}
.gp1{transform:translate(calc(var(--px,0)*28px),calc(var(--py,0)*22px))}
.gp2{transform:translate(calc(var(--px,0)*-46px),calc(var(--py,0)*-34px))}
.gate-sky b{position:absolute;border-radius:50%}
.gp1 b:nth-child(1){width:46vw;height:46vw;left:-6%;top:-10%;
  background:radial-gradient(circle,#6ea8ff 0%,transparent 62%);animation:aur1 26s ease-in-out infinite alternate}
.gp1 b:nth-child(2){width:40vw;height:40vw;right:-8%;top:14%;
  background:radial-gradient(circle,#86c8ff 0%,transparent 60%);animation:aur2 31s ease-in-out infinite alternate}
.gp1 b:nth-child(3){width:38vw;height:38vw;left:30%;bottom:-16%;
  background:radial-gradient(circle,#7fdfd4 0%,transparent 60%);animation:aur3 36s ease-in-out infinite alternate}
.gp2 b:nth-child(1){width:30vw;height:30vw;left:16%;top:34%;
  background:radial-gradient(circle,#ff9ad5 0%,transparent 58%);animation:aur2 24s 2s ease-in-out infinite alternate-reverse}
.gp2 b:nth-child(2){width:22vw;height:22vw;right:24%;bottom:6%;
  background:radial-gradient(circle,#ffc09a 0%,transparent 56%);animation:aur1 29s 1s ease-in-out infinite alternate-reverse}
.gate::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes gIn{from{opacity:0;transform:translateY(26px) scale(.95)}to{opacity:1;transform:none}}
.gate-card{position:relative;width:min(404px,calc(100vw - 44px));border-radius:var(--r-lg);padding:40px 36px 32px;
  background:rgba(255,255,255,.56);backdrop-filter:blur(28px) saturate(1.5);-webkit-backdrop-filter:blur(28px) saturate(1.5);
  border:1px solid rgba(255,255,255,.78);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 30px 80px rgba(48,54,105,.2),0 10px 28px rgba(48,54,105,.08);
  animation:gIn .7s cubic-bezier(.2,.8,.25,1) both .12s;will-change:transform}
.gate-card.shake{animation:gateShake .4s}
@keyframes gateShake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.gate-mark{width:54px;height:54px;border-radius:var(--r-lg);
  background:linear-gradient(140deg,#fff4ec,#ffe7d8);
  display:flex;align-items:center;justify-content:center;margin-bottom:16px;user-select:none;
  box-shadow:0 10px 28px rgba(240,85,46,.3),inset 0 0 0 1px rgba(240,85,46,.12);animation:markGlow 3.2s ease-in-out infinite}
@keyframes markGlow{50%{box-shadow:0 12px 40px rgba(240,85,46,.6)}}
.gate-h{font-size:23px;font-weight:800;letter-spacing:-.5px;line-height:1.3;color:var(--text)}
.gate-sub{min-height:22px;color:var(--text-2);font-size:13.5px;margin:6px 0 22px}
.gate-sub::after{content:"";display:inline-block;width:2px;height:13px;background:var(--primary);
  margin-left:3px;vertical-align:-2px;animation:caret 1s steps(2) infinite}
@keyframes caret{50%{opacity:0}}
.gate input{width:100%;background:rgba(255,255,255,.7);border:1px solid rgba(150,158,190,.35);border-radius:var(--r-md);
  padding:13px 16px;font-size:15px;color:var(--text);transition:all .25s;outline:none}
.gate input:focus{border-color:var(--primary);background:#fff;
  box-shadow:0 0 0 4px rgba(var(--brand-rgb),.15),0 6px 22px rgba(var(--brand-rgb),.12)}
.gate-btn{width:100%;margin-top:13px;padding:13px;border:none;border-radius:var(--r-md);color:var(--btn-ink);font-size:15px;font-weight:600;
  background:var(--grad-btn);letter-spacing:1px;
  box-shadow:0 10px 26px rgba(96,130,210,.26),inset 0 1px 0 rgba(255,255,255,.55);transition:all .35s}
.gate-btn:hover{background:var(--grad-btn-h);transform:translateY(-2px);box-shadow:0 14px 34px rgba(96,130,210,.34)}
.gate-btn:active{transform:scale(.985)}
.gate-btn:disabled{opacity:.7;cursor:wait;transform:none}
.gate-foot{margin-top:16px;font-size:12px;color:var(--muted);text-align:center}
body.gate-on .topbar,body.gate-on .sidebar,body.gate-on .bottombar{display:none}
body.gate-on .main{margin:0;padding:0}
@media(prefers-reduced-motion:reduce){.gate-sky b,.gate-mark{animation:none}}
.login{max-width:340px;margin:16vh auto}
.row{display:flex;gap:10px;align-items:center}
.grid{display:grid;gap:14px}

@media(max-width:992px){
  /* 窄屏：顶栏域 Tab 收起（底栏+抽屉承担导航），抽屉里恢复全量分组清单 */
  .tb-nav{display:none}
  .brand-co{display:none}
  .menu-section{display:block}
  /* 窄屏：浮动卡还原成贴边全高抽屉，默认收起 */
  .sidebar{top:var(--topbar-h);left:0;bottom:0;max-height:none;border-radius:0;box-shadow:none;transform:translateX(-100%)}
  body.nav-open .sidebar{transform:none;box-shadow:var(--shadow-lg)}
  .main,body.nav-collapsed .main{margin-left:0;padding:14px 14px}
  .topbar{background:#fff;box-shadow:0 1px 0 var(--border-subtle)}  /* 触屏无 hover：顶栏恢复常驻白底 */
  .page-header{flex-direction:column;align-items:stretch}
}
/* ---- 看板：批量任务调度行 ---- */
.schedlist{display:flex;flex-direction:column;gap:2px;padding:.4rem .6rem}
.schedrow{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;cursor:pointer;
  font-size:.78rem;color:var(--text-2);transition:background .15s}
.schedrow:hover{background:var(--surface-subtle)}
.schedrow b{color:var(--text);min-width:120px;font-size:.8rem}
.schedrow .sfreq{color:var(--muted);min-width:110px}
.schedrow .slast{flex:1}
.schedrow .snext{color:var(--primary);font-weight:500}
.schedrow .dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}

/* ---- 手机端（待发台/弹窗为主要操作场景） ---- */
@media(max-width:640px){
  .qgrid{grid-template-columns:repeat(2,1fr);gap:9px}
  .modal{padding:10px}
  .modal .box{max-height:calc(100vh - 20px);border-radius:var(--r-md)}
  .modal .box-b{padding:.9rem .8rem}
  .phone{width:100%;border-radius:var(--r-md)}
  .modal .box-f{padding:.6rem .8rem}
  .modal .box-f .ops .btn{min-height:42px}
  .flow{flex-wrap:wrap}
  .stats{grid-template-columns:repeat(2,1fr)}
  .topbar{padding:0 10px}
  .brand span:last-child{font-size:.95rem}
  .ftabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
  .ftab{flex-shrink:0}
}
/* 移动端卡片列表：替代窄屏被挤压的表格（桌面默认隐藏，仅 ≤768 显示） */
.mcards{display:none}
.mcard{background:var(--surface-0);border-radius:var(--r-sm);padding:14px 16px;
  box-shadow:var(--shadow-sm);transition:transform .12s}
.mcard:active{transform:scale(.99)}
.mcard-t{font-size:.95rem;font-weight:700;color:var(--text);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mcard-sub{font-size:.74rem;color:var(--muted);margin-top:4px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mcard-when{font-size:.74rem;color:var(--text-2);margin-top:8px}
.mcard-reason{margin-top:7px}
.mcard-go{font-size:.74rem;color:var(--primary);font-weight:600;white-space:nowrap}
.mchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;align-items:center}
.mchip{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:600;padding:3px 9px;
  border-radius:999px;background:var(--surface-subtle);color:var(--text-2);max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mchip.k{background:rgba(var(--brand-rgb),.1);color:var(--primary)}
.mcard-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:11px;padding-top:10px;border-top:1px solid var(--border)}
.mcard-foot-l{font-size:.72rem;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mcard-foot .btn{margin:0;flex-shrink:0}
.mcard-sub.two{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
/* 聊天记录：紧凑消息卡（比记录卡更轻） */
.mmsg{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);padding:10px 13px}
.mmsg-h{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.mmsg-h .rdot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.mmsg-who{font-weight:600;font-size:.82rem;color:var(--text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mmsg-t{font-size:.7rem;color:var(--muted);flex-shrink:0}
.mmsg-c{font-size:.85rem;color:var(--text-2);line-height:1.55;word-break:break-word}
/* 平台分组：账号页按平台分小节 + 发布台平台行 */
.plat-sec{margin-bottom:18px}
.plat-sec-h{display:flex;align-items:center;gap:8px;font-size:.92rem;font-weight:800;color:var(--text);margin:2px 0 11px}
.plat-sec-h .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.plat-sec-h .n{font-size:.7rem;font-weight:600;color:var(--muted);background:var(--surface-subtle);border-radius:999px;padding:1px 9px}
.ftabs.platrow{margin-bottom:7px}
/* 窄屏：能卡片化的表格隐藏改用卡片；其余表格给最小宽度横滑兜底 */
@media(max-width:768px){
  .tablebox{-webkit-overflow-scrolling:touch}
  .tablebox table{min-width:640px}
  .tablebox.narrow table{min-width:0}
  .tablebox.has-cards{display:none}
  .mcards{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}
}
/* ---- 待办角标 + 手机底部导航（拇指可达，发布动线一步到位） ---- */
.mbadge{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ff4d4f;color:#fff;
  font-size:.66rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;
  box-shadow:0 1px 3px rgba(255,77,79,.35)}
.mbadge[hidden]{display:none}  /* hidden 需显式压过上面的 display:inline-flex，否则 0 篇时仍露一个空红点 */
.bottombar{display:none}
@media(max-width:992px){
  .menu-toggle{display:none}
  .bottombar{position:fixed;left:0;right:0;bottom:0;z-index:1100;display:flex;
    background:rgba(255,253,250,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
    border-top:1px solid var(--border);padding:6px 6px calc(6px + env(safe-area-inset-bottom));
    box-shadow:0 -10px 30px rgba(23,28,52,.08)}
  .bb-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:0;
    font-size:.66rem;color:var(--text-2);padding:5px 0 3px;border-radius:var(--r-md);font-weight:600;transition:transform .15s}
  .bb-item .bic{position:relative;display:flex;align-items:center;justify-content:center;height:22px}
  .bb-item .bic svg{width:21px;height:21px}
  .bb-item.on{color:var(--text);font-weight:700}
  .bb-item:active{transform:scale(.92)}
  .bb-item .mbadge.bb{position:absolute;top:-5px;right:-15px;min-width:16px;height:16px;font-size:.58rem}
  .main{padding-bottom:calc(154px + env(safe-area-inset-bottom))}
}
/* 手机抽屉导航：点击遮罩关闭 */
.nav-mask{display:none;position:fixed;inset:0;top:var(--topbar-h);background:rgba(23,28,52,.35);z-index:1040}
body.nav-open .nav-mask{display:block}
/* 工作日志：今日成绩单漏斗 + 健康灯 + 重点切换 */
.funnel{display:flex;align-items:stretch;flex-wrap:wrap;gap:0}
.funnel .fcell{flex:1;min-width:90px;text-align:center;padding:14px 6px;background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--r-md)}
.funnel .fnum{font-size:1.7rem;font-weight:800;color:var(--text);line-height:1.05}
.funnel .flab{font-size:.74rem;color:var(--text-2);margin-top:5px}
.funnel .farrow{display:flex;align-items:center;justify-content:center;color:var(--muted);padding:0 7px;font-size:1rem}
.run-schedule{padding:0;overflow:hidden}
.run-schedule>summary{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;list-style:none}
.run-schedule>summary::-webkit-details-marker{display:none}
.run-schedule>summary span{display:flex;flex-direction:column;gap:3px;min-width:0}
.run-schedule>summary b{font-size:.9rem}
.run-schedule>summary small{font-size:.72rem;color:var(--muted);font-weight:400}
.run-schedule>summary em{margin-left:auto;font-size:.72rem;color:var(--primary);font-style:normal;white-space:nowrap}
.run-schedule[open]>summary{border-bottom:1px solid var(--border)}
.run-schedule[open]>summary em::after{content:" · 收起"}

/* ============ 经营罗盘 · 经营模型（2026-07-18 v3） ============ */
.bm3-shell{background:#fff;border-radius:10px;box-shadow:var(--shadow-xs);overflow:hidden}
.bm3-objective{display:grid;grid-template-columns:86px minmax(0,1fr);gap:6px 14px;padding:19px 22px;background:#172033;color:#fff}.bm3-objective>span{grid-row:1/3;color:rgba(255,255,255,.55);font-size:.72rem;letter-spacing:.06em}.bm3-objective>div{display:flex;align-items:baseline;gap:12px;min-width:0}.bm3-objective b{font-size:1.34rem}.bm3-objective i{font-style:normal;color:rgba(255,255,255,.48)}.bm3-objective code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.83rem;color:#fff;white-space:normal;line-height:1.7}.bm3-objective small{grid-column:2;color:rgba(255,255,255,.56);font-size:.7rem}
.bm3-constraints{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:10px 22px;border-bottom:1px solid var(--border)}.bm3-constraints>b{font-size:.7rem;color:var(--muted);margin-right:3px}.bm3-constraints code{font-size:.68rem;color:var(--text-2);background:var(--surface-subtle);padding:4px 7px;border-radius:4px}
.bm3-workbench{display:grid;grid-template-columns:265px minmax(0,1fr);border-bottom:1px solid var(--border)}.bm3-inputs{padding:17px 18px;border-right:1px solid var(--border)}.bm3-block-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.bm3-block-title span{font-size:.78rem;font-weight:700}.bm3-block-title small{font-size:.65rem;color:var(--muted);text-align:right}.bm3-inputs label{display:grid;grid-template-columns:minmax(0,1fr) 82px;align-items:center;gap:4px 8px;padding:7px 0;border-bottom:1px solid var(--border);font-size:.7rem;color:var(--text-2)}.bm3-inputs label:last-child{border-bottom:0}.bm3-inputs input{width:82px;height:30px;border:1px solid var(--border-strong);border-radius:4px;background:#fff;color:var(--text);padding:4px 7px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.bm3-inputs em{grid-column:1/3;font-style:normal;font-size:.61rem;color:var(--muted)}
.bm3-system{display:grid;grid-template-columns:minmax(145px,1.1fr) 18px minmax(145px,1.1fr) 18px minmax(145px,1fr) 18px minmax(145px,1fr);align-items:stretch;padding:17px 18px;gap:5px}.bm3-system>i{align-self:center;text-align:center;font-style:normal;color:var(--muted)}.bm3-node{min-width:0;padding:12px 11px;background:var(--surface-subtle);border-top:3px solid var(--border-strong)}.bm3-node.acquisition{border-top-color:var(--primary)}.bm3-node.conversion{border-top-color:var(--warning)}.bm3-node.value{border-top-style:dashed}.bm3-node.result{background:#f5f6f8}.bm3-node>span,.bm3-node>small,.bm3-node>em{display:block}.bm3-node>span{font-size:.65rem;color:var(--primary);font-weight:700;margin-bottom:10px}.bm3-node code{display:block;font-size:.64rem;color:var(--text-2);line-height:1.7;overflow-wrap:anywhere}.bm3-node p{font-size:.62rem;color:var(--muted);line-height:1.55;margin-top:4px}.bm3-node>b{display:block;font-size:1.2rem;margin:15px 0 3px;font-variant-numeric:tabular-nums}.bm3-node>small{font-size:.63rem;color:var(--muted)}.bm3-node>em{font-style:normal;font-size:.61rem;color:var(--text-2);line-height:1.6;margin-top:8px}.bm3-node>em strong{font-variant-numeric:tabular-nums}
.bm3-calibration{padding:17px 22px}.bm3-bench{max-width:850px}.bm3-bench-row{display:grid;grid-template-columns:40px minmax(160px,1fr) 90px 76px;align-items:center;gap:10px;min-height:31px}.bm3-bench-row>span{font-size:.67rem;color:var(--muted)}.bm3-bench-row>div{height:8px;background:var(--surface-2);border-radius:999px;overflow:hidden}.bm3-bar{display:block;height:100%;width:0;background:#aab2c2;border-radius:999px;transition:width .18s ease}.bm3-bench-row b{font-size:.68rem;text-align:right;font-variant-numeric:tabular-nums}.bm3-bench-row small{font-size:.63rem;color:var(--muted);text-align:right}.bm3-bench-row.target{margin-top:3px;padding-top:5px;border-top:1px solid var(--border)}.bm3-bench-row.target .bm3-bar{background:var(--primary)}.bm3-bench-row.target b{color:var(--primary-dark)}
.bm3-solve{display:grid;grid-template-columns:repeat(3,1fr);margin-top:14px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.bm3-solve>div{padding:12px 16px;border-right:1px solid var(--border)}.bm3-solve>div:last-child{border-right:0}.bm3-solve span,.bm3-solve small{display:block}.bm3-solve span{font-size:.65rem;color:var(--muted)}.bm3-solve b{display:block;font-size:1.04rem;margin:5px 0;font-variant-numeric:tabular-nums}.bm3-solve small{font-size:.63rem;color:var(--warning)}.bm3-solve small.ok{color:var(--ok)}
.bm3-boundary{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:11px 22px;background:var(--surface-subtle);font-size:.68rem;line-height:1.65;color:var(--text-2)}.bm3-boundary b{color:var(--warning);white-space:nowrap}
@media(max-width:1280px){.bm3-workbench{grid-template-columns:235px minmax(0,1fr)}.bm3-system{grid-template-columns:1fr 16px 1fr}.bm3-system>i:nth-of-type(2){display:none}.bm3-node.value,.bm3-node.result{margin-top:8px}.bm3-node.value{grid-column:1}.bm3-node.result{grid-column:3}}
@media(max-width:860px){.bm3-workbench{grid-template-columns:1fr}.bm3-inputs{border-right:0;border-bottom:1px solid var(--border)}.bm3-inputs{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.bm3-inputs .bm3-block-title{grid-column:1/3}.bm3-system{grid-template-columns:1fr}.bm3-system>i{transform:rotate(90deg)}.bm3-node.value,.bm3-node.result{grid-column:auto;margin-top:0}.bm3-solve{grid-template-columns:1fr}.bm3-solve>div{border-right:0;border-bottom:1px solid var(--border)}.bm3-solve>div:last-child{border-bottom:0}}
@media(max-width:560px){.bm3-objective{grid-template-columns:1fr}.bm3-objective>span,.bm3-objective small{grid-column:1;grid-row:auto}.bm3-objective>div{display:block}.bm3-objective i{margin:0 6px}.bm3-objective code{display:block;margin-top:8px}.bm3-inputs{grid-template-columns:1fr}.bm3-inputs .bm3-block-title{grid-column:1}.bm3-bench-row{grid-template-columns:35px minmax(100px,1fr) 82px}.bm3-bench-row small{display:none}.bm3-boundary{grid-template-columns:1fr}.bm3-boundary b{white-space:normal}}
@media(prefers-reduced-motion:reduce){.bm3-bar{transition:none}}

/* ============ 经营罗盘 · 可版本化经营模型（2026-07-18 v4） ============ */
.bm4-shell{background:#fff;border-radius:10px;box-shadow:var(--shadow-xs);overflow:hidden}.bm4-savebar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;border-bottom:1px solid var(--border);background:var(--surface-subtle)}.bm4-savebar>div{display:grid;grid-template-columns:auto minmax(190px,320px) minmax(220px,1fr);align-items:center;gap:8px;flex:1}.bm4-savebar span{font-size:.68rem;color:var(--muted);font-weight:700}.bm4-savebar input{height:32px;border:1px solid var(--border-strong);border-radius:5px;background:#fff;padding:5px 9px;color:var(--text);font-size:.72rem;min-width:0}
.bm4-objective{display:grid;grid-template-columns:100px minmax(0,1fr);gap:5px 14px;padding:19px 22px;background:#172033;color:#fff}.bm4-objective>span{grid-row:1/3;color:rgba(255,255,255,.55);font-size:.7rem;letter-spacing:.06em}.bm4-objective>div{display:flex;align-items:baseline;gap:11px;min-width:0}.bm4-objective b{font-size:1.25rem;white-space:nowrap}.bm4-objective i{font-style:normal;color:rgba(255,255,255,.48)}.bm4-objective code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.76rem;color:#fff;white-space:normal;line-height:1.75}.bm4-objective small{grid-column:2;color:rgba(255,255,255,.58);font-size:.68rem}
.bm4-main{display:grid;grid-template-columns:minmax(300px,38%) minmax(0,1fr);border-bottom:1px solid var(--border)}.bm4-params,.bm4-results,.bm4-products,.bm4-calibration,.bm4-versions-section{padding:17px 20px}.bm4-params{border-right:1px solid var(--border);display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.bm4-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:11px}.bm4-title>b,.bm4-title>div>b{font-size:.78rem}.bm4-title small{display:block;font-size:.62rem;color:var(--muted);font-weight:400;margin-top:2px}.bm4-title>span{font-size:.64rem;color:var(--muted)}.bm4-params>.bm4-title{grid-column:1/3}.bm4-params label{display:grid;grid-template-columns:minmax(0,1fr) 84px;align-items:center;gap:3px 7px;padding:7px 0;border-bottom:1px solid var(--border);font-size:.68rem;color:var(--text-2)}.bm4-params input{width:84px;height:29px;border:1px solid var(--border-strong);border-radius:4px;padding:3px 6px;text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.bm4-params em{grid-column:1/3;font-size:.58rem;color:var(--muted);font-style:normal}
.bm4-kpis{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border)}.bm4-kpis>div{padding:12px 13px;min-height:86px;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.bm4-kpis>div:nth-child(3n){border-right:0}.bm4-kpis>div:nth-last-child(-n+3){border-bottom:0}.bm4-kpis>div.hero{background:#f4f7fb}.bm4-kpis span,.bm4-kpis small{display:block}.bm4-kpis span{font-size:.61rem;color:var(--muted)}.bm4-kpis b{display:block;font-size:1.02rem;margin:6px 0 4px;font-variant-numeric:tabular-nums}.bm4-kpis .hero b{color:var(--primary);font-size:1.13rem}.bm4-kpis b.negative{color:var(--danger)}.bm4-kpis small{font-size:.58rem;color:var(--text-3)}.bm4-constraints{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}.bm4-constraints>span{font-size:.62rem;color:var(--muted);font-weight:700}.bm4-constraints code{font-size:.61rem;background:var(--surface-subtle);padding:4px 7px;border-radius:4px;color:var(--text-2)}
.bm4-products{border-bottom:1px solid var(--border)}.bm4-products>.bm4-title{align-items:center}.bm4-table-scroll,.bm4-compare-scroll{overflow-x:auto}.bm4-products table,.bm4-compare-table{width:100%;border-collapse:collapse;min-width:1050px}.bm4-products th{padding:7px 6px;text-align:left;font-size:.59rem;color:var(--muted);font-weight:600;border-bottom:1px solid var(--border);white-space:nowrap}.bm4-products td{padding:7px 6px;border-bottom:1px solid var(--border);vertical-align:middle;font-size:.65rem}.bm4-products tbody tr:last-child td{border-bottom:0}.bm4-products input,.bm4-products select{height:29px;border:1px solid var(--border-strong);border-radius:4px;background:#fff;font-size:.64rem;padding:3px 5px}.bm4-p-name{width:118px}.bm4-p-source{width:144px;display:block}.bm4-p-base{width:82px;margin-top:4px}.bm4-p-base:disabled{display:none}.bm4-products td:nth-child(n+3):nth-child(-n+7) input{width:72px;text-align:right}.bm4-products td small{display:block;font-size:.54rem;color:var(--muted);margin-top:3px}.bm4-p-net,.bm4-p-revenue{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.bm4-icon-btn{width:28px;height:28px;border:0;background:transparent;color:var(--muted);cursor:pointer;border-radius:4px}.bm4-icon-btn:hover{background:var(--danger-light);color:var(--danger)}.bm4-source-note{margin-top:9px;font-size:.61rem;color:var(--text-2);line-height:1.6;background:var(--surface-subtle);padding:7px 9px}.bm4-source-note b{color:var(--text)}
.bm4-calibration{border-bottom:1px solid var(--border)}.bm4-bench{max-width:900px}.bm4-bench-row{display:grid;grid-template-columns:48px minmax(150px,1fr) 95px 78px;align-items:center;gap:10px;min-height:30px}.bm4-bench-row>span{font-size:.65rem;color:var(--muted)}.bm4-bench-row>div{height:7px;background:var(--surface-2);border-radius:999px;overflow:hidden}.bm4-bar{display:block;height:100%;width:0;background:#aab2c2;border-radius:999px;transition:width .18s ease}.bm4-bench-row b{font-size:.65rem;text-align:right}.bm4-bench-row small{font-size:.61rem;color:var(--muted);text-align:right}.bm4-bench-row.target{border-top:1px solid var(--border);margin-top:4px;padding-top:5px}.bm4-bench-row.target .bm4-bar{background:var(--primary)}.bm4-bench-row.target b{color:var(--primary-dark)}.bm4-solve{display:grid;grid-template-columns:repeat(3,1fr);margin-top:13px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.bm4-solve>div{padding:10px 14px;border-right:1px solid var(--border)}.bm4-solve>div:last-child{border-right:0}.bm4-solve span,.bm4-solve small{display:block;font-size:.61rem;color:var(--muted)}.bm4-solve b{display:block;font-size:.94rem;margin:4px 0}.bm4-solve small{color:var(--warning)}.bm4-solve small.ok{color:var(--ok)}
.bm4-versions-section{border-bottom:1px solid var(--border)}.bm4-versions{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}.bm4-version{position:relative;border:1px solid var(--border);padding:11px 12px;background:#fff;min-height:132px}.bm4-version.active{border-color:var(--primary);box-shadow:inset 3px 0 0 var(--primary)}.bm4-version>b,.bm4-version>small{display:block;padding-right:72px}.bm4-version>b{font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bm4-version>small{font-size:.57rem;color:var(--muted);margin-top:3px}.bm4-check{position:absolute;right:9px;top:9px;font-size:.58rem;color:var(--text-2);display:flex;gap:4px;align-items:center}.bm4-version>div{display:flex;gap:5px;flex-wrap:wrap;margin-top:14px}.bm4-version>div span{font-size:.58rem;background:var(--surface-subtle);padding:3px 5px}.bm4-version footer{display:flex;gap:10px;margin-top:11px}.bm4-version footer button{border:0;background:transparent;color:var(--primary);font-size:.61rem;padding:0;cursor:pointer}.bm4-version footer button.danger{color:var(--muted)}.bm4-version-empty,.bm4-compare-empty{font-size:.65rem;color:var(--muted);padding:14px;background:var(--surface-subtle)}.bm4-compare{margin-top:12px}.bm4-compare-table{min-width:650px}.bm4-compare-table th,.bm4-compare-table td{padding:8px 10px;border:1px solid var(--border);font-size:.65rem;text-align:right;white-space:nowrap}.bm4-compare-table thead th{background:#172033;color:#fff;text-align:center}.bm4-compare-table thead th:first-child,.bm4-compare-table tbody th{text-align:left}.bm4-compare-table tbody th{background:var(--surface-subtle);font-weight:600}
.bm4-boundary{display:grid;grid-template-columns:auto 1fr;gap:11px;padding:11px 20px;background:var(--surface-subtle);font-size:.65rem;line-height:1.7;color:var(--text-2)}.bm4-boundary b{color:var(--warning);white-space:nowrap}
@media(max-width:1100px){.bm4-main{grid-template-columns:1fr}.bm4-params{border-right:0;border-bottom:1px solid var(--border)}.bm4-kpis{grid-template-columns:repeat(4,1fr)}.bm4-kpis>div:nth-child(3n){border-right:1px solid var(--border)}.bm4-kpis>div:nth-child(4n){border-right:0}.bm4-kpis>div:nth-last-child(-n+3){border-bottom:1px solid var(--border)}.bm4-kpis>div:last-child{border-bottom:0}}
@media(max-width:760px){.bm4-savebar{align-items:stretch}.bm4-savebar>div{grid-template-columns:1fr}.bm4-savebar>div>span{display:none}.bm4-savebar{flex-direction:column}.bm4-objective{grid-template-columns:1fr}.bm4-objective>span,.bm4-objective small{grid-column:1;grid-row:auto}.bm4-objective>div{display:block}.bm4-objective i{margin:0 5px}.bm4-objective code{display:block;margin-top:7px}.bm4-kpis{grid-template-columns:1fr 1fr}.bm4-kpis>div,.bm4-kpis>div:nth-child(3n),.bm4-kpis>div:nth-child(4n){border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.bm4-kpis>div:nth-child(2n){border-right:0}.bm4-kpis>div:last-child{border-bottom:0}.bm4-solve{grid-template-columns:1fr}.bm4-solve>div{border-right:0;border-bottom:1px solid var(--border)}.bm4-solve>div:last-child{border-bottom:0}}
@media(max-width:540px){.bm4-params{grid-template-columns:1fr}.bm4-params>.bm4-title{grid-column:1}.bm4-kpis{grid-template-columns:1fr}.bm4-kpis>div,.bm4-kpis>div:nth-child(2n){border-right:0}.bm4-bench-row{grid-template-columns:38px minmax(90px,1fr) 84px}.bm4-bench-row small{display:none}.bm4-boundary{grid-template-columns:1fr}.bm4-boundary b{white-space:normal}}
@media(prefers-reduced-motion:reduce){.bm4-bar{transition:none}}

/* 经营模型 v2：多获客路线、价格弹性、容量与 cohort 分支 */
.bm4-presets{display:grid;grid-template-columns:minmax(180px,1.2fr) repeat(4,minmax(155px,1fr));gap:0;border-bottom:1px solid var(--border);background:#fff}.bm4-presets>div,.bm4-presets>button{min-height:66px;padding:12px 16px;border:0;border-right:1px solid var(--border);background:#fff;text-align:left}.bm4-presets>button:last-child{border-right:0}.bm4-presets>div{background:var(--surface-subtle)}.bm4-presets b,.bm4-presets span,.bm4-presets small{display:block}.bm4-presets b{font-size:.72rem;color:var(--text)}.bm4-presets span,.bm4-presets small{margin-top:4px;font-size:.59rem;line-height:1.45;color:var(--muted)}.bm4-presets>button{cursor:pointer;transition:background .15s}.bm4-presets>button:hover{background:var(--primary-light)}.bm4-presets>button:hover b{color:var(--primary-dark)}
.bm4-optimizer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:9px 20px;border-bottom:1px solid var(--border);background:#f8fafc}.bm4-optimizer>div{display:flex;align-items:baseline;gap:12px;min-width:0}.bm4-optimizer b{font-size:.67rem;white-space:nowrap}.bm4-optimizer span,.bm4-optimizer small{font-size:.6rem;color:var(--muted);line-height:1.5}.bm4-optimizer small{white-space:nowrap}
.bm4-table-section{padding:17px 20px}.bm4-table-section .bm4-title{align-items:center}.bm4-table-section table{width:100%;border-collapse:collapse}.bm4-route-table{min-width:1840px!important}.bm4-product-table{min-width:1280px!important}.bm4-table-section th{padding:7px 6px;text-align:left;font-size:.58rem;color:var(--muted);font-weight:600;border-bottom:1px solid var(--border);white-space:nowrap}.bm4-table-section td{padding:7px 6px;border-bottom:1px solid var(--border);vertical-align:middle;font-size:.63rem}.bm4-table-section tbody tr:last-child td{border-bottom:0}.bm4-table-section input,.bm4-table-section select{height:28px;border:1px solid var(--border-strong);border-radius:4px;background:#fff;color:var(--text);font-size:.62rem;padding:3px 5px}.bm4-table-section input[type=number]{width:78px;text-align:right;font-variant-numeric:tabular-nums}.bm4-table-section .bm4-name{width:132px;text-align:left}.bm4-route-row .bm4-r-type{display:block;width:132px;margin-top:4px}.bm4-p-sourceproduct,.bm4-p-group{display:block;width:144px!important;margin-top:4px;text-align:left!important}.bm4-p-sourceproduct:disabled{display:none}.bm4-stack{display:grid;gap:3px;min-width:91px}.bm4-stack small{display:flex!important;align-items:center;gap:4px;white-space:nowrap}.bm4-stack>b{font-size:.59rem;color:var(--primary);font-variant-numeric:tabular-nums}.bm4-route-row td:nth-last-child(-n+4),.bm4-product-row td:nth-last-child(-n+4){font-variant-numeric:tabular-nums;white-space:nowrap}.bm4-route-row td>small,.bm4-product-row td>small{display:block;font-size:.54rem;color:var(--muted);margin-top:3px}.bm4-r-leads small{display:block;font-size:.53rem;color:var(--muted);margin-top:3px}.bm4-r-contrib,.bm4-p-revenue,.bm4-p-net{font-weight:700}.bm4-r-contrib.negative,.bm4-kpis b.negative{color:var(--danger)}
.bm4-feasible{display:inline-flex;align-items:center;padding:4px 7px;border-radius:4px;font-size:.61rem;font-weight:700}.bm4-feasible.ok{color:var(--ok);background:#eefbf3}.bm4-feasible.bad{color:var(--danger);background:#fff0f5}.bm4-constraints:empty{display:none}.bm4-constraints code{border-left:2px solid var(--danger);color:var(--danger)}.bm4-constraints code.ok{border-left-color:var(--ok);color:var(--ok)}
.bm4-compliance{margin-top:7px;padding:8px 10px;border-left:3px solid var(--warning);background:#fffaf0;font-size:.6rem;line-height:1.65;color:var(--text-2)}.bm4-compliance b{color:var(--warning)}
.bm4-opt-results{border-bottom:1px solid var(--border);background:#fff}.bm4-opt-empty{padding:10px 20px;font-size:.61rem;color:var(--muted)}.bm4-opt-empty.bad{color:var(--danger)}.bm4-opt-summary{display:flex;align-items:baseline;gap:12px;padding:9px 20px;background:var(--surface-subtle);border-bottom:1px solid var(--border)}.bm4-opt-summary b{font-size:.68rem}.bm4-opt-summary span,.bm4-opt-summary small{font-size:.59rem;color:var(--muted)}.bm4-opt-summary small{margin-left:auto}.bm4-opt-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:10px 20px}.bm4-opt-cards article{position:relative;border:1px solid var(--border);border-left:3px solid var(--warning);padding:10px 11px}.bm4-opt-cards article.ok{border-left-color:var(--ok)}.bm4-opt-cards header{display:flex;justify-content:space-between;gap:8px}.bm4-opt-cards header b{font-size:.67rem}.bm4-opt-cards header span{font-size:.57rem;color:var(--muted)}.bm4-opt-cards article>div{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:9px 0}.bm4-opt-cards article>div span{font-size:.56rem;color:var(--muted)}.bm4-opt-cards article>div b{display:block;color:var(--text);font-size:.66rem;margin-top:2px}.bm4-opt-cards article>small{display:block;min-height:28px;padding-right:70px;font-size:.52rem;line-height:1.45;color:var(--muted)}.bm4-opt-cards article>button{position:absolute;right:10px;bottom:10px;border:0;background:transparent;color:var(--primary);font-size:.58rem;cursor:pointer}.bm4-opt-warnings{display:grid;gap:3px;padding:0 20px 10px}.bm4-opt-warnings span{font-size:.55rem;color:var(--warning)}
@media(max-width:1050px){.bm4-presets{grid-template-columns:1fr 1fr}.bm4-presets>*:nth-child(2n){border-right:0}.bm4-presets>*{border-bottom:1px solid var(--border)}.bm4-presets>*:last-child{border-bottom:0}.bm4-optimizer{align-items:flex-start}.bm4-optimizer>div{display:block}.bm4-optimizer span{display:block;margin-top:3px}.bm4-opt-cards{grid-template-columns:1fr}.bm4-opt-summary{align-items:flex-start;flex-wrap:wrap}.bm4-opt-summary small{margin-left:0}}
@media(max-width:650px){.bm4-presets{grid-template-columns:1fr}.bm4-presets>*{border-right:0!important;border-bottom:1px solid var(--border)}.bm4-presets>*:last-child{border-bottom:0}.bm4-optimizer{display:block}.bm4-optimizer small{display:block;margin-top:4px;white-space:normal}.bm4-table-section{padding:14px 12px}}

/* ============ 经营模型 · 业务全景决策沙盘（2026-07-18 v3） ============ */
.bm4-shell{display:flex;flex-direction:column;gap:14px;background:transparent;border-radius:0;box-shadow:none;overflow:visible}.bm4-savebar{position:static;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px;background:var(--surface-subtle);border:1px solid var(--border);border-radius:10px;box-shadow:none}.bm4-savebar>div{display:grid;grid-template-columns:auto minmax(190px,300px) minmax(210px,1fr) auto;align-items:center;gap:9px;flex:1}.bm4-savebar span{font-size:.7rem;color:var(--muted);font-weight:750;letter-spacing:.02em}.bm4-savebar input{height:34px;border:1px solid var(--border-strong);border-radius:7px;background:#fff;padding:5px 10px;color:var(--text);font-size:.76rem;min-width:0;outline:0}.bm4-savebar input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--ring)}.bm4-period{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:.66rem;white-space:nowrap}.bm4-period input{width:116px!important;padding:4px 6px!important;font-size:.67rem!important}

/* CSS 2.5D：保留空间感，不引入 WebGL 依赖，也不牺牲数字可读性 */
.bm5-panorama{position:relative;isolation:isolate;overflow:hidden;padding:25px 26px 16px;border-radius:16px;color:#f7fbff;background:radial-gradient(900px 340px at 12% -15%,rgba(53,119,255,.34),transparent 64%),radial-gradient(600px 300px at 92% 105%,rgba(23,198,166,.17),transparent 70%),linear-gradient(145deg,#0a1426 0%,#0b1729 52%,#07111e 100%);box-shadow:0 20px 50px rgba(10,20,38,.18)}.bm5-panorama::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.22;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(to bottom,#000,transparent 88%)}.bm5-panorama>header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;position:relative;z-index:2}.bm5-panorama>header>div:first-child{max-width:690px}.bm5-panorama>header span,.bm4-title>div>span{display:block;font-size:.6rem;font-weight:800;letter-spacing:.16em;color:#79a4ff}.bm5-panorama h2{font-size:1.55rem;line-height:1.2;margin:4px 0 6px;letter-spacing:-.03em}.bm5-panorama>header p{font-size:.75rem;line-height:1.75;color:rgba(233,241,255,.63)}.bm5-statuses{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap;max-width:560px}.bm5-status{display:flex!important;align-items:center;gap:6px;padding:5px 9px;border:1px solid rgba(255,255,255,.09);border-radius:999px;background:rgba(255,255,255,.055);font-size:.62rem!important;color:rgba(239,246,255,.68)!important;letter-spacing:0!important;backdrop-filter:blur(10px)}.bm5-status i{width:6px;height:6px;border-radius:50%;background:#ffb254;box-shadow:0 0 10px rgba(255,178,84,.7)}.bm5-status.ok i{background:#39d8b0;box-shadow:0 0 10px rgba(57,216,176,.75)}.bm5-status b{color:#fff;font-size:.64rem;margin-left:2px}
.bm5-scene{position:relative;min-height:250px;margin:14px -10px 0;padding:25px 10px 20px;perspective:1200px}.bm5-scene::before{content:"";position:absolute;left:4%;right:4%;bottom:-112px;height:280px;transform:rotateX(64deg);transform-origin:center top;background-image:linear-gradient(rgba(92,142,255,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(92,142,255,.15) 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(ellipse at center,#000 4%,transparent 72%)}.bm5-scene-orbit{position:absolute;width:520px;height:180px;left:50%;top:52%;transform:translate(-50%,-50%) rotate(-8deg);border:1px solid rgba(87,150,255,.18);border-radius:50%;box-shadow:0 0 80px rgba(49,104,255,.08),inset 0 0 70px rgba(44,98,220,.06)}.bm5-flow-scroll{position:relative;z-index:2;overflow-x:auto;padding:10px 4px 22px;scrollbar-color:rgba(144,174,224,.35) transparent}.bm5-flow{display:flex;align-items:center;min-width:max-content;transform-style:preserve-3d;padding:3px 8px}.bm5-flow-node{position:relative;width:230px;min-height:166px;padding:15px 15px 13px;border:1px solid rgba(147,177,228,.18);border-radius:13px;background:linear-gradient(145deg,rgba(32,51,79,.88),rgba(13,27,47,.92));box-shadow:0 16px 28px rgba(0,5,15,.28),inset 0 1px 0 rgba(255,255,255,.05);backdrop-filter:blur(14px);transform:translateZ(18px);transition:transform .25s,border-color .25s,box-shadow .25s}.bm5-flow-node:hover{transform:translateY(-5px) translateZ(26px);border-color:rgba(121,164,255,.55);box-shadow:0 24px 36px rgba(0,5,15,.35),0 0 30px rgba(51,111,255,.12)}.bm5-flow-node::after{content:"";position:absolute;left:15px;right:15px;bottom:-7px;height:7px;border-radius:0 0 8px 8px;background:linear-gradient(90deg,rgba(42,86,168,.25),rgba(22,45,82,.08));transform:skewX(-42deg);transform-origin:top}.bm5-flow-node>span{font-size:.53rem;color:#7faaff;font-weight:800;letter-spacing:.1em}.bm5-flow-node h4{font-size:.78rem;color:rgba(240,246,255,.72);font-weight:650;margin:11px 0 5px}.bm5-flow-node>strong{display:block;color:#fff;font-size:1.28rem;line-height:1.25;font-variant-numeric:tabular-nums;white-space:nowrap}.bm5-flow-node>p{font-size:.57rem;color:rgba(233,241,255,.5);margin-top:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bm5-flow-node ul{list-style:none;display:grid;gap:4px;margin-top:7px}.bm5-flow-node li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 7px;padding-top:4px;border-top:1px solid rgba(255,255,255,.06);font-size:.55rem}.bm5-flow-node li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:rgba(238,245,255,.66)}.bm5-flow-node li b{font-size:.56rem;color:#fff;white-space:nowrap}.bm5-flow-node li small{grid-column:1/3;color:rgba(233,241,255,.38)}.bm5-flow-node.acquisition{border-color:rgba(255,178,84,.3);background:linear-gradient(145deg,rgba(70,52,40,.82),rgba(27,31,42,.94));transform:translateY(-8px) translateZ(24px)}.bm5-flow-node.acquisition>span{color:#ffc36f}.bm5-flow-node.products{width:250px;transform:translateY(7px) translateZ(14px)}.bm5-flow-node.outcome{width:215px;border-color:rgba(57,216,176,.42);background:linear-gradient(145deg,rgba(21,76,69,.82),rgba(12,38,44,.95));transform:translateY(-8px) translateZ(28px);box-shadow:0 18px 36px rgba(0,5,15,.32),0 0 34px rgba(57,216,176,.1)}.bm5-flow-node.outcome>span{color:#55e0bd}.bm5-flow-node.outcome>strong{color:#70f0cf}.bm5-flow-node.outcome.negative{border-color:rgba(255,105,135,.4);background:linear-gradient(145deg,rgba(78,32,52,.84),rgba(36,21,36,.95))}.bm5-flow-node.outcome.negative>span,.bm5-flow-node.outcome.negative>strong{color:#ff91aa}.bm5-flow-link{position:relative;width:48px;height:2px;flex:0 0 48px;background:linear-gradient(90deg,rgba(101,147,237,.2),rgba(101,147,237,.65),rgba(101,147,237,.2))}.bm5-flow-link::after{content:"";position:absolute;right:-1px;top:-3px;width:7px;height:7px;border-top:1px solid #78a5ff;border-right:1px solid #78a5ff;transform:rotate(45deg)}.bm5-flow-link i{position:absolute;width:5px;height:5px;top:-1.5px;left:0;border-radius:50%;background:#84b1ff;box-shadow:0 0 12px #5f98ff;animation:bm5flow 2.4s linear infinite}.bm5-flow-link:nth-of-type(2n) i{animation-delay:-.8s}@keyframes bm5flow{to{transform:translateX(45px);opacity:.15}}.bm5-panorama>footer{position:relative;z-index:2;display:flex;align-items:center;gap:14px;padding-top:11px;border-top:1px solid rgba(255,255,255,.07);font-size:.59rem;color:rgba(233,241,255,.43)}.bm5-panorama>footer>span{display:flex;align-items:center;gap:6px;white-space:nowrap}.bm5-panorama>footer>span i{width:6px;height:6px;border-radius:50%;background:#7aa7ff}.bm5-panorama>footer p{margin-left:auto;text-align:right}

/* 决策杆与结果 */
.bm4-main.bm5-decision-grid{display:grid;grid-template-columns:minmax(520px,46%) minmax(0,1fr);gap:14px;border:0}.bm5-controls,.bm5-results,.bm5-levers-section,.bm4-presets,.bm4-optimizer,.bm4-opt-results,.bm5-method,.bm4-table-section,.bm4-calibration,.bm4-versions-section{background:#fff;border:0!important;border-radius:14px;box-shadow:var(--shadow-xs)}.bm4-params.bm5-controls{display:block;padding:21px 22px;border:0}.bm5-results{padding:21px 22px}.bm4-title{margin-bottom:15px}.bm4-title>div>b,.bm4-title>b{display:block;font-size:.96rem;line-height:1.35;margin-top:2px;letter-spacing:-.01em}.bm4-title small{font-size:.66rem;line-height:1.6}.bm5-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px 14px}.bm5-control{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;gap:4px 8px!important;padding:9px 0!important;border-bottom:1px solid var(--border)!important;font-size:.67rem!important;color:var(--text-2)}.bm5-control>span{align-self:center;font-weight:650}.bm5-control>div{display:flex;align-items:center;gap:4px}.bm5-number{width:80px!important;height:29px!important;border:1px solid var(--border-strong)!important;border-radius:6px!important;background:#fff;padding:3px 6px!important;text-align:right;font-weight:750;font-size:.72rem;outline:0}.bm5-number:focus{border-color:var(--primary)!important;box-shadow:0 0 0 3px var(--ring)}.bm5-control em{font-style:normal;font-size:.55rem;color:var(--muted);white-space:nowrap}.bm5-range{grid-column:1/3;width:100%!important;height:4px!important;appearance:none;-webkit-appearance:none;border:0!important;border-radius:99px!important;background:linear-gradient(90deg,var(--primary) 0 var(--fill,0%),#dce3ee var(--fill,0%) 100%)!important;padding:0!important;cursor:pointer}.bm5-range::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:#fff;border:3px solid var(--primary);box-shadow:0 2px 7px rgba(33,72,160,.25)}.bm5-range::-moz-range-thumb{width:11px;height:11px;border-radius:50%;background:#fff;border:3px solid var(--primary);box-shadow:0 2px 7px rgba(33,72,160,.25)}.bm5-control>small{grid-column:1/3;font-size:.55rem;color:var(--muted);line-height:1.4}.bm5-more-costs{margin-top:11px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.bm5-more-costs summary{display:flex;align-items:center;gap:8px;padding:10px 13px;cursor:pointer;font-size:.69rem;font-weight:700;list-style:none}.bm5-more-costs summary::-webkit-details-marker{display:none}.bm5-more-costs summary::after{content:"+";margin-left:auto;color:var(--muted);font-size:.9rem}.bm5-more-costs[open] summary::after{content:"−"}.bm5-more-costs summary span{font-size:.58rem;color:var(--muted);font-weight:400}.bm5-more-costs>div{display:grid;grid-template-columns:1fr 1fr;padding:0 13px 9px;gap:0 14px}.bm5-more-costs label{display:grid;grid-template-columns:minmax(0,1fr) 84px;align-items:center;gap:3px 7px;padding:8px 0;border-bottom:1px solid var(--border);font-size:.66rem}.bm5-more-costs input{width:84px;height:29px;border:1px solid var(--border-strong);border-radius:6px;padding:3px 6px;text-align:right;font-weight:700}.bm5-more-costs em{grid-column:1/3;font-size:.56rem;color:var(--muted);font-style:normal}
.bm5-results .bm4-kpis{display:grid;grid-template-columns:repeat(4,minmax(112px,1fr));gap:8px;border:0}.bm5-results .bm4-kpis>div,.bm5-results .bm4-kpis>div:nth-child(3n),.bm5-results .bm4-kpis>div:nth-child(4n),.bm5-results .bm4-kpis>div:nth-last-child(-n+3){min-height:90px;padding:12px 13px;border:1px solid var(--border)!important;border-radius:9px;background:var(--surface-subtle)}.bm5-results .bm4-kpis>div.hero{background:linear-gradient(145deg,#eef4ff,#f5f8ff);border-color:rgba(51,111,255,.16)!important}.bm5-results .bm4-kpis span{font-size:.62rem}.bm5-results .bm4-kpis b{font-size:1.13rem;margin:7px 0 4px}.bm5-results .bm4-kpis .hero b{font-size:1.2rem}.bm5-insight{position:relative;margin-top:12px;padding:15px 112px 15px 16px;border-radius:11px;overflow:hidden;background:#f5f8ff;border:1px solid rgba(51,111,255,.12)}.bm5-insight::after{content:"";position:absolute;right:24px;top:50%;width:56px;height:56px;transform:translateY(-50%);border-radius:18px;background:radial-gradient(circle at 34% 32%,rgba(255,255,255,.9) 0 8%,transparent 9%),linear-gradient(145deg,rgba(51,111,255,.18),rgba(51,111,255,.04));box-shadow:inset -8px -8px 20px rgba(51,111,255,.08),0 10px 25px rgba(51,111,255,.1)}.bm5-insight>span{display:block;font-size:.56rem;font-weight:800;letter-spacing:.12em;color:var(--primary);text-transform:uppercase}.bm5-insight h3{font-size:.92rem;margin:2px 0 4px}.bm5-insight p{font-size:.67rem;line-height:1.65;color:var(--text-2);max-width:740px}.bm5-insight button{position:relative;z-index:2;margin-top:9px;border:0;border-radius:6px;background:var(--primary);color:#fff;padding:6px 10px;font-size:.64rem;font-weight:700}.bm5-insight.warning{background:#fff9ef;border-color:rgba(245,158,11,.22)}.bm5-insight.warning>span{color:#c97b07}.bm5-insight.warning::after{background:linear-gradient(145deg,rgba(245,158,11,.2),rgba(245,158,11,.05))}.bm5-insight.danger{background:#fff5f7;border-color:rgba(232,92,138,.2)}.bm5-insight.danger>span{color:var(--danger)}.bm5-insight.danger::after{background:linear-gradient(145deg,rgba(232,92,138,.2),rgba(232,92,138,.04))}.bm5-insight.success{background:#f1fbf7;border-color:rgba(16,185,129,.18)}.bm5-insight.success>span{color:#0b9c6e}.bm5-insight.success::after{background:linear-gradient(145deg,rgba(16,185,129,.2),rgba(16,185,129,.04))}
.bm5-levers-section{padding:20px 22px}.bm5-levers{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.bm5-lever{position:relative;display:flex;flex-direction:column;align-items:flex-start;min-height:105px;padding:12px 13px;border:1px solid var(--border);border-radius:10px;background:#fff;text-align:left;transition:transform .16s,box-shadow .16s,border-color .16s}.bm5-lever:hover{transform:translateY(-2px);border-color:rgba(51,111,255,.24);box-shadow:0 10px 24px rgba(23,28,52,.07)}.bm5-lever span{font-size:.61rem;color:var(--muted)}.bm5-lever b{font-size:.88rem;margin:5px 0 2px}.bm5-lever small{font-size:.57rem;color:var(--text-3);line-height:1.45}.bm5-lever i{margin-top:auto;padding-top:8px;font-size:.55rem;color:var(--primary);font-style:normal}

/* 情景、优化器与高级模型细节退居第二层 */
.bm4-presets{display:grid;grid-template-columns:minmax(180px,1.2fr) repeat(4,minmax(155px,1fr));gap:8px;padding:14px;background:#fff}.bm4-presets>div,.bm4-presets>button{min-height:74px;padding:11px 13px;border:1px solid var(--border)!important;border-radius:10px;background:var(--surface-subtle);text-align:left}.bm4-presets>div{background:linear-gradient(145deg,#eef4ff,#f7f9ff)}.bm4-presets>button:hover{background:var(--primary-light);border-color:rgba(51,111,255,.2)!important}.bm4-optimizer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 18px;background:#fff}.bm4-optimizer>div{display:block}.bm4-optimizer b{font-size:.77rem}.bm4-optimizer span{display:block;margin-top:3px;font-size:.63rem}.bm4-opt-results{overflow:hidden}.bm4-opt-empty{padding:10px 18px}.bm4-opt-cards{padding:12px 18px}.bm4-opt-cards article{border-radius:9px}.bm5-method{display:block;padding:17px 20px;color:var(--text);background:#fff}.bm5-method summary{display:flex;align-items:center;gap:12px;cursor:pointer;list-style:none}.bm5-method summary::-webkit-details-marker{display:none}.bm5-method summary span{font-size:.82rem;font-weight:750}.bm5-method summary small{font-size:.62rem;color:var(--muted)}.bm5-method summary::after{content:"+";margin-left:auto;color:var(--muted);font-size:1rem}.bm5-method[open] summary::after{content:"−"}.bm4-objective.bm5-method>div{display:flex;align-items:baseline;gap:10px;margin-top:14px;padding:13px 15px;border-radius:9px;background:#101a2c;color:#fff}.bm4-objective.bm5-method>div b{font-size:1.08rem;white-space:nowrap}.bm4-objective.bm5-method>div i{font-style:normal;color:rgba(255,255,255,.45)}.bm4-objective.bm5-method>div code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.68rem;line-height:1.7}.bm5-method>p{margin-top:8px;font-size:.62rem;color:var(--muted);line-height:1.6}.bm4-table-section,.bm4-calibration,.bm4-versions-section{padding:19px 20px;border-bottom:0}.bm4-table-section thead{background:var(--surface-subtle)}.bm4-table-section th{padding:9px 7px}.bm4-table-section td{padding:9px 7px}.bm4-source-note{border-radius:7px;padding:8px 10px}.bm4-compliance{border-radius:7px}.bm4-boundary{display:grid;grid-template-columns:auto 1fr;gap:11px;padding:12px 16px;background:rgba(255,255,255,.6);border:1px dashed var(--border-strong);border-radius:10px;font-size:.65rem;line-height:1.7;color:var(--text-2)}

@media(max-width:1280px){.bm4-main.bm5-decision-grid{grid-template-columns:minmax(450px,46%) minmax(0,1fr)}.bm5-results .bm4-kpis{grid-template-columns:repeat(3,minmax(108px,1fr))}.bm5-levers{grid-template-columns:1fr 1fr}.bm4-presets{grid-template-columns:1fr 1fr}.bm4-presets>*{border:1px solid var(--border)!important}}
@media(max-width:1080px){.bm4-main.bm5-decision-grid{grid-template-columns:1fr}.bm5-control-grid{grid-template-columns:1fr 1fr}.bm5-results .bm4-kpis{grid-template-columns:repeat(4,minmax(105px,1fr))}}
@media(max-width:760px){.bm4-shell{gap:10px}.bm4-savebar{position:static;align-items:stretch;flex-direction:column}.bm4-savebar>div{grid-template-columns:1fr}.bm4-savebar>div>span{display:block}.bm5-panorama{padding:20px 16px 12px;border-radius:12px}.bm5-panorama>header{flex-direction:column;gap:12px}.bm5-statuses{justify-content:flex-start}.bm5-scene{margin-left:-6px;margin-right:-6px}.bm5-panorama>footer{align-items:flex-start;flex-direction:column;gap:3px}.bm5-panorama>footer p{margin-left:0;text-align:left}.bm4-params.bm5-controls,.bm5-results,.bm5-levers-section,.bm5-method,.bm4-table-section,.bm4-calibration,.bm4-versions-section{padding:17px 15px;border-radius:11px}.bm5-results .bm4-kpis{grid-template-columns:1fr 1fr}.bm5-insight{padding-right:76px}.bm5-insight::after{right:15px;width:42px;height:42px;border-radius:13px}.bm5-levers{grid-template-columns:1fr 1fr}.bm4-objective.bm5-method>div{display:block}.bm4-objective.bm5-method>div i{margin-left:6px}.bm4-objective.bm5-method>div code{display:block;margin-top:8px}.bm4-presets{grid-template-columns:1fr}.bm4-optimizer{align-items:flex-start;display:block}.bm4-optimizer button{margin-top:10px}}
@media(max-width:540px){.bm5-control-grid,.bm5-more-costs>div{grid-template-columns:1fr}.bm5-results .bm4-kpis{grid-template-columns:1fr 1fr}.bm5-levers{grid-template-columns:1fr}.bm5-insight{padding:14px}.bm5-insight::after{display:none}.bm5-flow-node{width:210px;min-height:158px}.bm5-flow-node.products{width:225px}.bm5-flow-link{width:35px;flex-basis:35px}.bm5-flow-link i{animation-name:none}.bm4-boundary{grid-template-columns:1fr}.bm4-boundary b{white-space:normal}}
@media(prefers-reduced-motion:reduce){.bm5-flow-link i{animation:none}.bm5-flow-node,.bm5-lever{transition:none}}

/* ============ 经营模型 · 方案比选优先（2026-07-18 v6） ============ */
.bm6-lab{overflow:hidden;background:#fff;border:1px solid rgba(28,31,35,.07);border-radius:14px;box-shadow:var(--shadow-xs)}
.bm6-lab>header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:22px 24px 17px;background:linear-gradient(145deg,#f4f7ff 0%,#fff 58%,#f3fbf8 100%);border-bottom:1px solid var(--border)}
.bm6-lab>header>div:first-child{max-width:820px}.bm6-lab>header>div:first-child>span{display:block;font-size:.59rem;font-weight:800;letter-spacing:.16em;color:var(--primary)}.bm6-lab h2{font-size:1.3rem;letter-spacing:-.025em;margin:4px 0 5px}.bm6-lab>header p{font-size:.72rem;line-height:1.7;color:var(--text-2)}
.bm6-lab-meta{display:flex;flex-direction:column;align-items:flex-end;gap:5px;min-width:230px;padding-top:2px}.bm6-lab-meta b{font-size:.75rem;color:var(--primary-dark)}.bm6-lab-meta span{font-size:.62rem;color:var(--muted)}
.bm6-scenarios{display:flex;gap:9px;overflow-x:auto;padding:14px 18px 16px;scroll-snap-type:x proximity;scrollbar-color:#cbd5e1 transparent;background:#fff}
.bm6-scenario{position:relative;flex:0 0 248px;scroll-snap-align:start;display:flex;flex-direction:column;min-height:205px;padding:13px 14px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle);transition:border-color .16s,box-shadow .16s,transform .16s}
.bm6-scenario:hover{transform:translateY(-1px);box-shadow:0 9px 24px rgba(23,28,52,.06)}.bm6-scenario.selected{border-color:rgba(51,111,255,.38);box-shadow:inset 0 0 0 1px rgba(51,111,255,.08)}.bm6-scenario.current{background:linear-gradient(145deg,#eef4ff,#f8faff);border-color:rgba(51,111,255,.45)}
.bm6-scenario>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.bm6-scenario>header>span{font-size:.55rem;font-weight:800;letter-spacing:.08em;color:var(--primary)}.bm6-scenario>header label{display:flex;align-items:center;gap:3px;font-size:.56rem;color:var(--muted);cursor:pointer}.bm6-scenario>header input{accent-color:var(--primary)}
.bm6-scenario h3{font-size:.86rem;margin:8px 0 4px}.bm6-scenario>p{min-height:36px;font-size:.58rem;line-height:1.55;color:var(--muted)}
.bm6-scenario-kpis{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.bm6-scenario-kpis span{padding:6px 7px;border-radius:6px;background:#fff;font-size:.53rem;color:var(--muted)}.bm6-scenario-kpis b{display:block;margin-top:2px;font-size:.68rem;color:var(--text);font-variant-numeric:tabular-nums}
.bm6-scenario footer{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:10px}.bm6-scenario footer>span{font-size:.53rem;color:var(--muted)}.bm6-scenario footer>span.ok{color:var(--ok)}.bm6-scenario footer>span.bad{color:var(--danger)}.bm6-scenario footer button{border:0;background:transparent;color:var(--primary);font-size:.57rem;font-weight:700;cursor:pointer}.bm6-actions{display:flex;align-items:center;gap:5px;flex:0 0 auto}.bm6-actions .bm6-delete{display:inline-flex;align-items:center;gap:2px;color:var(--danger)}.bm6-actions .bm6-delete:hover{background:rgba(244,63,94,.08);border-radius:5px}.bm6-editing{padding:3px 6px;border-radius:5px;background:rgba(51,111,255,.09);color:var(--primary)!important;font-weight:700}
.bm6-comparison{border-top:1px solid var(--border)}.bm6-comparison>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;background:#fbfcfe}.bm6-comparison>header b,.bm6-comparison>header small{display:block}.bm6-comparison>header b{font-size:.82rem}.bm6-comparison>header small{margin-top:3px;font-size:.59rem;color:var(--muted)}.bm6-comparison>header>span{font-size:.62rem;color:var(--primary);font-weight:700}
.bm6-full-compare{border-top:1px solid var(--border)}.bm6-full-compare>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;list-style:none;background:#fbfcfe}.bm6-full-compare>summary::-webkit-details-marker{display:none}.bm6-full-compare>summary b,.bm6-full-compare>summary small{display:block}.bm6-full-compare>summary b{font-size:.78rem}.bm6-full-compare>summary small{margin-top:3px;font-size:.58rem;color:var(--muted)}.bm6-full-compare>summary>span{font-size:.61rem;color:var(--primary);font-weight:700;white-space:nowrap}.bm6-full-compare>summary::after{content:"＋";color:var(--primary);font-size:.9rem;font-weight:700}.bm6-full-compare[open]>summary::after{content:"－"}.bm6-full-compare>.bm6-comparison{border-top:1px solid var(--border)}
.bm6-compare-scroll{overflow:auto;max-width:100%;border-top:1px solid var(--border);scrollbar-color:#cbd5e1 transparent}.bm6-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:.62rem}.bm6-table th,.bm6-table td{min-width:182px;padding:9px 11px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);vertical-align:top;background:#fff}.bm6-table th:first-child,.bm6-table td:first-child{position:sticky;left:0;z-index:2;min-width:168px;width:168px;background:#f8fafc;font-weight:700;color:var(--text-2);box-shadow:1px 0 0 var(--border)}.bm6-table thead th{position:sticky;top:0;z-index:3;height:82px;text-align:left;background:#f8fafc}.bm6-table thead th:first-child{z-index:4}.bm6-table thead th.current,.bm6-table td.current{background:#f3f7ff}.bm6-table thead span,.bm6-table thead b,.bm6-table thead small{display:block}.bm6-table thead span{font-size:.53rem;font-weight:800;letter-spacing:.08em;color:var(--primary)}.bm6-table thead b{font-size:.7rem;margin:4px 0 2px}.bm6-table thead small{font-size:.54rem;color:var(--muted)}.bm6-table thead button{margin-top:6px;border:0;background:transparent;color:var(--primary);padding:0;font-size:.54rem;font-weight:700;cursor:pointer}
.bm6-table tr.strong td{font-weight:750}.bm6-table tr.hero td{font-size:.72rem;font-weight:800;color:var(--primary-dark);background:#f8fbff}.bm6-table tr.bm6-group th{position:static;min-width:0;padding:7px 11px;background:#edf2f8;color:var(--text);font-size:.58rem;letter-spacing:.06em;box-shadow:none}.bm6-state{display:inline-flex;padding:3px 6px;border-radius:5px;font-size:.55rem;font-weight:700}.bm6-state.ok{color:#087f5b;background:#eaf9f2}.bm6-state.warn{color:#a86607;background:#fff7e7}.bm6-state.bad{color:var(--danger);background:#fff0f4}.bm6-table tr.detail td>div{padding:3px 0;border-bottom:1px dashed var(--border)}.bm6-table tr.detail td>div:last-child{border-bottom:0}.bm6-table tr.detail td b,.bm6-table tr.detail td span{display:block}.bm6-table tr.detail td b{font-size:.59rem}.bm6-table tr.detail td span{margin-top:2px;font-size:.53rem;line-height:1.45;color:var(--muted)}.bm6-violations{display:grid;gap:3px}.bm6-violations span{padding-left:7px;border-left:2px solid var(--danger);font-size:.55rem;color:var(--danger)}.bm6-empty{padding:22px;text-align:center;font-size:.68rem;color:var(--muted)}
.bm6-advanced{overflow:hidden;background:rgba(255,255,255,.74);border:1px solid var(--border);border-radius:12px}.bm6-advanced>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 18px;cursor:pointer;list-style:none}.bm6-advanced>summary::-webkit-details-marker{display:none}.bm6-advanced>summary>div>span,.bm6-advanced>summary>div>b,.bm6-advanced>summary>div>small{display:block}.bm6-advanced>summary>div>span{font-size:.54rem;font-weight:800;letter-spacing:.14em;color:var(--primary)}.bm6-advanced>summary>div>b{font-size:.82rem;margin-top:2px}.bm6-advanced>summary>div>small{margin-top:3px;font-size:.59rem;color:var(--muted)}.bm6-advanced>summary>span{font-size:.62rem;color:var(--primary);font-weight:700}.bm6-advanced>summary>span::after{content:" ＋"}.bm6-advanced[open]>summary>span::after{content:" －"}.bm6-advanced-body{display:grid;gap:10px;padding:0 10px 10px;border-top:1px solid var(--border);background:#f5f7fa}.bm6-advanced-body>.bm4-optimizer{margin-top:10px}
@media(max-width:760px){.bm6-lab>header{flex-direction:column;padding:18px 16px 14px}.bm6-lab-meta{align-items:flex-start;min-width:0}.bm6-scenarios{padding:11px 12px 14px}.bm6-scenario{flex-basis:238px}.bm6-comparison>header{align-items:flex-start;flex-direction:column;gap:5px;padding:12px 14px}.bm6-full-compare>summary{grid-template-columns:minmax(0,1fr) auto;padding:12px 14px}.bm6-full-compare>summary>span{grid-column:1/2}.bm6-full-compare>summary::after{grid-column:2;grid-row:1/3}.bm6-table th,.bm6-table td{min-width:168px}.bm6-table th:first-child,.bm6-table td:first-child{min-width:132px;width:132px}.bm6-advanced>summary{padding:13px 14px}.bm6-advanced>summary>div>small{max-width:260px}.bm6-advanced-body{padding:0 6px 6px}}
@media(max-width:540px){.bm6-lab h2{font-size:1.12rem}.bm6-scenario{flex-basis:225px}.bm6-scenario-kpis{grid-template-columns:1fr 1fr}.bm6-table th,.bm6-table td{min-width:158px;padding:8px 9px}.bm6-table th:first-child,.bm6-table td:first-child{min-width:118px;width:118px}.bm6-advanced>summary>span{white-space:nowrap}}

/* ============ 经营模型 · 当前主链 + 未来第二曲线业务版图（2026-07-18 v7） ============ */
.bm7-panorama{position:relative;isolation:isolate;overflow:hidden;padding:25px 26px 17px;border-radius:14px;color:#f7fbff;background:radial-gradient(920px 420px at 8% -15%,rgba(53,119,255,.32),transparent 62%),radial-gradient(780px 420px at 96% 108%,rgba(127,87,255,.18),transparent 68%),linear-gradient(145deg,#0a1426 0%,#0b1729 54%,#07111e 100%);box-shadow:0 18px 48px rgba(10,20,38,.17)}
.bm7-panorama::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.2;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:34px 34px;mask-image:linear-gradient(to bottom,#000,transparent 95%)}
.bm7-panorama>header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.bm7-panorama>header>div:first-child{max-width:760px}.bm7-panorama>header>div:first-child>span{display:block;font-size:.58rem;font-weight:800;letter-spacing:.16em;color:#80a9ff}.bm7-panorama h2{font-size:1.5rem;line-height:1.2;letter-spacing:-.03em;margin:4px 0 6px}.bm7-panorama>header p{font-size:.72rem;line-height:1.7;color:rgba(233,241,255,.64)}
.bm7-map-host{min-width:0;margin-top:18px}.bm7-chain{display:flex;align-items:center;gap:0;min-width:0;overflow-x:auto;padding:10px 4px 18px;scroll-snap-type:x proximity;scrollbar-color:rgba(144,174,224,.34) transparent;perspective:1600px}
.bm7-stage{position:relative;flex:1 0 220px;min-width:220px;max-width:280px;min-height:330px;padding:15px;border:1px solid rgba(148,178,228,.2);border-radius:11px;background:linear-gradient(145deg,rgba(34,52,80,.9),rgba(14,28,48,.94));box-shadow:0 17px 32px rgba(0,5,15,.25),inset 0 1px 0 rgba(255,255,255,.055);scroll-snap-align:start;transform:translateZ(12px);transform-style:preserve-3d;transition:transform .2s,border-color .2s,box-shadow .2s}
.bm7-stage:nth-of-type(2),.bm7-stage:nth-of-type(4){transform:translateY(7px) translateZ(7px)}.bm7-stage:hover{transform:translateY(-3px) translateZ(19px);border-color:rgba(128,169,255,.44);box-shadow:0 23px 40px rgba(0,5,15,.31),0 0 28px rgba(71,120,225,.1)}
.bm7-stage>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.bm7-stage>header>span{font-size:.53rem;font-weight:800;letter-spacing:.09em;color:#89adf7}.bm7-stage>header em{padding:3px 6px;border:1px solid currentColor;border-radius:999px;font-size:.49rem;font-style:normal;white-space:nowrap}.bm7-stage>header em.live{color:#5ce4bd}.bm7-stage>header em.building{color:#7facff}.bm7-stage>header em.test{color:#ffc26c}.bm7-stage>header em.future{color:#c4a5ff}
.bm7-stage h3{min-height:38px;margin:10px 0 9px;font-size:.83rem;line-height:1.45;color:#fff}.bm7-metric{display:grid;gap:2px;min-height:76px;padding:10px 11px;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:rgba(4,12,24,.28)}.bm7-metric strong{font-size:1.14rem;line-height:1.2;color:#fff;font-variant-numeric:tabular-nums}.bm7-metric span{font-size:.57rem;color:rgba(238,245,255,.67)}.bm7-metric small{font-size:.52rem;color:rgba(233,241,255,.4)}.bm7-metric.text strong{font-size:.82rem;margin-bottom:3px}
.bm7-options{display:grid;gap:5px;margin-top:9px}.bm7-option{display:grid;grid-template-columns:7px minmax(0,1fr);gap:7px;align-items:start;padding:7px 8px;border:1px solid rgba(255,255,255,.065);border-radius:7px;background:rgba(255,255,255,.035)}.bm7-option>i{width:6px;height:6px;margin-top:4px;border-radius:50%;background:#94a3b8;box-shadow:0 0 9px rgba(148,163,184,.45)}.bm7-option>span,.bm7-option b,.bm7-option small{display:block;min-width:0}.bm7-option b{font-size:.57rem;line-height:1.35;color:rgba(248,251,255,.88)}.bm7-option small{margin-top:1px;font-size:.49rem;line-height:1.35;color:rgba(233,241,255,.43)}.bm7-option.live>i{background:#43ddb2;box-shadow:0 0 9px rgba(67,221,178,.65)}.bm7-option.building>i{background:#72a3ff;box-shadow:0 0 9px rgba(114,163,255,.62)}.bm7-option.test>i{background:#ffb95b;box-shadow:0 0 9px rgba(255,185,91,.62)}.bm7-option.future>i{background:#b38bff;box-shadow:0 0 9px rgba(179,139,255,.62)}.bm7-option.frozen{opacity:.52}.bm7-option.frozen>i{background:#7b8492;box-shadow:none}
.bm7-arrow{position:relative;flex:0 0 38px;height:2px;background:linear-gradient(90deg,rgba(105,150,238,.16),rgba(105,150,238,.66),rgba(105,150,238,.16))}.bm7-arrow::after{content:"";position:absolute;right:-1px;top:-3px;width:7px;height:7px;border-top:1px solid #7ca8ff;border-right:1px solid #7ca8ff;transform:rotate(45deg)}.bm7-arrow i{position:absolute;left:0;top:-1.5px;width:5px;height:5px;border-radius:50%;background:#88b4ff;box-shadow:0 0 11px #669fff;animation:bm7flow 2.5s linear infinite}@keyframes bm7flow{to{transform:translateX(35px);opacity:.16}}
.bm7-flywheel{position:relative;display:flex;align-items:center;gap:11px;margin:4px 4px 13px;padding:10px 13px;overflow:hidden;border:1px solid rgba(72,216,181,.17);border-radius:8px;background:linear-gradient(90deg,rgba(31,126,110,.16),rgba(43,88,154,.1));font-size:.58rem}.bm7-flywheel b{color:#5ce4bd;white-space:nowrap}.bm7-flywheel span{color:rgba(233,241,255,.62)}.bm7-flywheel i{position:absolute;right:0;bottom:0;width:38%;height:2px;background:linear-gradient(90deg,transparent,#54dbb7);opacity:.62}
.bm7-runway{margin:0 4px;padding:13px;border:1px solid rgba(180,153,255,.18);border-radius:10px;background:linear-gradient(145deg,rgba(62,44,107,.18),rgba(12,28,47,.36))}.bm7-runway>header{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:10px}.bm7-runway>header span,.bm7-runway>header b{display:block}.bm7-runway>header span{font-size:.49rem;font-weight:800;letter-spacing:.13em;color:#bea4ff}.bm7-runway>header b{margin-top:2px;font-size:.76rem}.bm7-runway>header p{max-width:620px;font-size:.54rem;line-height:1.5;text-align:right;color:rgba(233,241,255,.43)}.bm7-runway>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.bm7-runway .bm7-option{min-height:55px;background:rgba(255,255,255,.04)}
.bm7-legend{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:13px;padding-top:11px;border-top:1px solid rgba(255,255,255,.07)}.bm7-legend>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.bm7-legend span{display:flex;align-items:center;gap:5px;font-size:.52rem;color:rgba(233,241,255,.5)}.bm7-legend span i{width:6px;height:6px;border-radius:50%;background:#94a3b8}.bm7-legend span.live i{background:#43ddb2}.bm7-legend span.building i{background:#72a3ff}.bm7-legend span.test i{background:#ffb95b}.bm7-legend span.future i{background:#b38bff}.bm7-legend span.frozen i{background:#7b8492}.bm7-legend p{font-size:.53rem;text-align:right;color:rgba(233,241,255,.4)}
@media(max-width:1080px){.bm7-stage{flex-basis:230px}.bm7-runway>div{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.bm7-panorama{padding:20px 15px 13px;border-radius:12px}.bm7-panorama>header{flex-direction:column;gap:12px}.bm7-map-host{margin-top:10px}.bm7-chain{margin-right:-5px;padding-bottom:14px}.bm7-stage{flex:0 0 220px;min-width:220px;min-height:322px}.bm7-arrow{flex-basis:28px}.bm7-runway>header,.bm7-legend{align-items:flex-start;flex-direction:column}.bm7-runway>header p,.bm7-legend p{text-align:left}.bm7-runway>div{grid-template-columns:1fr 1fr}}
@media(max-width:540px){.bm7-runway>div{grid-template-columns:1fr}.bm7-flywheel{align-items:flex-start;flex-direction:column;gap:3px}.bm7-legend>div{gap:8px 11px}}
@media(prefers-reduced-motion:reduce){.bm7-arrow i{animation:none}.bm7-stage{transition:none}}

.fnote{font-size:.82rem;color:var(--text-2);margin-top:12px;padding:9px 12px;background:var(--surface-subtle);border-radius:var(--r-xs)}
.hdot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}
.hdot.ok{background:var(--ok)}
.hdot.bad{background:var(--danger)}
.seg{display:inline-flex;background:var(--surface-1);border-radius:var(--r-pill);padding:3px;gap:2px}
.segbtn{border:0;background:transparent;border-radius:var(--r-pill);padding:6px 14px;font-size:.78rem;cursor:pointer;color:var(--text-2);transition:.15s}
.segbtn.on{background:var(--surface-0);color:var(--primary);font-weight:600;box-shadow:var(--shadow-sm)}

/* ============ 圆角再收敛：历史遗留的大弧度卡片统一改为克制小圆角（大卡 10 / 卡片 8），弱化「AI 感」 ============ */
/* 注：手机仿真预览(.phone/.pv*)刻意复刻平台原生 UI，保持原样不动；胶囊/徽章(999px)亦保持不变 */
.bcell,.ctrlbar,.fbstrip,.qcard{border-radius:10px}
.pausebar,.batchbar,.mstat,.emp-net,.fbcard,.flow-rail,.bf-funnel,.mmsg{border-radius:8px}
.emp-best,.pp-box,.funnel .fcell{border-radius:8px}
.ps-no,.lcard-ic,.emp-hero-ava{border-radius:8px}
.bcell.hero .btn{border-radius:8px}
.confirm-dialog,.loading-card{border-radius:10px}
.gate-card{border-radius:var(--r-md)}

/* ============ 口播台 · 热点新闻信息流（2026-07 重设计：原题为主角、配色克制、留白呼吸） ============
   层级：原始标题(加大加粗) > 中立还原(灰) > 出处/时间(小灰字)；强调色只给「出口播稿」CTA 与高分标记。 */
.sc-stat{display:flex;align-items:baseline;gap:6px;cursor:pointer;padding:4px 10px;border-radius:var(--r-xs);transition:background .15s}
.sc-stat:hover{background:var(--surface-1)}
.sc-stat.on{background:var(--surface-2)}
.sc-stat b{font-size:1.35rem;font-weight:750;color:var(--text);font-variant-numeric:tabular-nums;line-height:1}
.sc-stat span{font-size:.75rem;color:var(--muted)}
.hot-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.hotscan{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px;padding:11px 16px;
  background:var(--primary-light);border-radius:var(--r-sm);font-size:.8rem;color:var(--primary-dark)}
.hotscan .bar{flex:0 0 160px;height:5px;background:rgba(255,255,255,.7);border-radius:99px;overflow:hidden;display:block}
.hotscan .bar i{display:block;height:100%;background:var(--primary);border-radius:99px;transition:width .4s}
.spin{width:13px;height:13px;border-radius:50%;border:2px solid var(--primary);border-top-color:transparent;
  display:inline-block;animation:hcspin .8s linear infinite;flex:0 0 auto}
.spin.sm{width:9px;height:9px;border-width:1.5px}
@keyframes hcspin{to{transform:rotate(360deg)}}
.hotgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px;align-items:start}
.hotcard{display:flex;flex-direction:column;gap:10px;background:var(--surface-0);border-radius:var(--r-md);
  padding:18px 20px 14px;box-shadow:0 1px 2px rgba(23,28,52,.05);transition:box-shadow .18s}
.hotcard:hover{box-shadow:0 6px 20px rgba(23,28,52,.08)}
.hotcard.open{grid-column:1/-1}   /* 展开素材包时铺满整行，读原文不憋屈 */
.hotcard-meta{display:flex;align-items:center;gap:6px;font-size:.72rem;color:var(--muted);min-height:20px}
.hc-src{font-weight:600;color:var(--text-3);max-width:14em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hc-dot{opacity:.55}
.hc-pending{display:inline-flex;align-items:center;gap:5px;margin-left:6px;color:var(--muted);font-size:.7rem}
.hc-score{margin-left:auto;flex:0 0 auto;font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums;
  color:var(--text-3);background:var(--surface-2);border-radius:6px;padding:2px 7px;cursor:help}
.hc-score.hi{color:var(--primary-dark);background:var(--primary-light)}
.hotcard-title{font-size:1.02rem;font-weight:750;color:var(--text);line-height:1.5}
.hotcard-sum{font-size:.82rem;color:var(--text-2);line-height:1.7;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hotcard-foot{display:flex;align-items:center;gap:6px;padding-top:10px;margin-top:auto;border-top:1px solid var(--border-subtle)}
.hc-ghost{border:none;background:transparent;color:var(--text-3);font-size:.76rem;padding:5px 9px;border-radius:var(--r-xs);
  cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:.15s;white-space:nowrap}
.hc-ghost:hover{background:var(--surface-1);color:var(--text)}
.hc-ghost.mut{color:var(--muted)}
/* 素材包展开区：浅底收纳，AI 附加信息不抢原始信息的戏 */
.hotpack{background:var(--surface-1);border-radius:var(--r-sm);padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.hp-sec{min-width:0}
.hp-h{font-size:.7rem;font-weight:700;letter-spacing:.05em;color:var(--text-3);margin-bottom:6px}
.hp-full{font-size:.84rem;color:var(--text);line-height:1.8;white-space:pre-wrap;max-height:300px;overflow:auto;
  background:var(--surface-0);border-radius:var(--r-xs);padding:12px 14px}
.hp-empty{font-size:.78rem;color:var(--muted)}
.hp-think{font-size:.82rem;color:var(--text-2);line-height:1.75;white-space:pre-wrap}
.hp-list{margin:0;padding-left:16px;font-size:.78rem;line-height:1.9;color:var(--text-2)}
.hp-list a{color:var(--text-2)}
.hp-list a:hover{color:var(--primary)}
.hp-site{color:var(--muted);font-size:.72rem;margin-left:6px}
.hp-tag{display:inline-block;font-size:.66rem;color:var(--text-3);background:var(--surface-2);border-radius:5px;padding:1px 6px;margin-right:6px;vertical-align:1px}
.hp-acts{display:flex;gap:4px;padding-top:8px;border-top:1px solid var(--border-subtle)}

/* ============ 口播台：选题卡网格 + 正式口播页（清爽无边框、低 AI 感，对齐图文发布台密度） ============ */
.scgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:12px}
.sccard{position:relative;display:flex;flex-direction:column;gap:9px;min-height:148px;cursor:pointer;
  background:var(--surface-0);border-radius:10px;padding:14px 15px;
  box-shadow:0 1px 2px rgba(23,28,52,.05);transition:transform .18s,box-shadow .18s}
.sccard:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(23,28,52,.10)}
.sccard-top{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.sc-dang{font-size:.67rem;font-weight:700;color:var(--primary-dark);background:rgba(var(--brand-rgb),.1);border-radius:6px;padding:2px 8px;white-space:nowrap}
.sc-st{font-size:.65rem;font-weight:700;border-radius:6px;padding:2px 8px;white-space:nowrap}
.sc-st.draft{background:rgba(245,158,11,.15);color:#b45309}
.sc-st.recorded{background:rgba(51,111,255,.13);color:var(--primary-dark)}
.sc-st.published{background:rgba(16,185,129,.15);color:#047857}
.sc-st.discarded{background:var(--surface-2);color:var(--muted)}
.sc-ap{margin-left:auto;font-size:.67rem;font-weight:800;color:#92400e;background:#fde68a;border-radius:6px;padding:2px 7px;display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.sc-warn{font-size:.65rem;font-weight:700;color:#b45309;background:rgba(245,158,11,.15);border-radius:6px;padding:2px 7px}
.sccard-title{font-size:.97rem;font-weight:800;color:var(--text);line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sccard-gist{font-size:.81rem;color:var(--text-2);line-height:1.65;flex:1;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.sccard-src{display:flex;align-items:center;gap:4px;font-size:.7rem;color:var(--muted);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sccard-src svg{flex:0 0 auto;opacity:.8}
.sccard-foot{display:flex;align-items:center;gap:8px;padding-top:9px;border-top:1px solid var(--border-subtle)}
.sc-meta{font-size:.71rem;color:var(--muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-go{flex:0 0 auto;border:none;background:var(--primary);color:#fff;border-radius:var(--r-xs);padding:5px 11px;
  font-size:.73rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:.15s}
.sc-go:hover{background:var(--primary-dark)}
.sc-go.ghost{background:var(--surface-2);color:var(--text-2)}
.sc-go.ghost:hover{color:var(--text)}
/* 正式口播页：点开卡片后的详情 */
.sc-actbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.sc-badges{display:inline-flex;align-items:center;gap:6px;margin-left:auto}
.sc-d-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(248px,1fr);gap:16px;align-items:start}
@media(max-width:880px){.sc-d-grid{grid-template-columns:1fr}}
.sc-panel{background:var(--surface-0);border-radius:10px;padding:18px 20px;box-shadow:0 1px 3px rgba(23,28,52,.05);margin-bottom:14px}
.sc-d-side .sc-panel{padding:15px 16px}
.sc-panel-h{display:flex;align-items:center;gap:7px;font-size:.72rem;font-weight:700;letter-spacing:.04em;color:var(--text-3);margin-bottom:12px}
.sc-script{white-space:pre-wrap;line-height:1.65;font-size:1.04rem;color:var(--text);max-width:40em}
.sc-tp{margin:0;padding-left:20px;line-height:1.95;font-size:.9rem;color:var(--text-2)}
.sc-tp li{margin-bottom:5px}
.sc-cover-main{font-size:1.04rem;font-weight:800;color:var(--text);line-height:1.4;margin-bottom:4px}
.sc-kv{font-size:.83rem;line-height:1.7;color:var(--text-2)}
.sc-kv b{color:var(--text)}
.sc-src{display:inline-block;font-size:.83rem;color:var(--primary);text-decoration:none;word-break:break-all}
.sc-src:hover{color:var(--primary-dark)}

/* ============ AI 助手（面向全系统的悬浮助手·参考抖店小助手的轻盈风格） ============ */
#ctrlWrap{--ca:#f3859a;--ca2:#ffbcc7;position:fixed;right:22px;bottom:22px;z-index:1200;display:flex;flex-direction:column;align-items:flex-end}
#ctrlWrap.over-tp{z-index:10001;bottom:64px}
/* 浮球（现代克制版）：扁平品牌渐变 + 柔和分层阴影；入场轻微浮起 + 仅 2 次的注意脉冲环，
   不再无限漂浮（无限动效显廉价/像弹窗广告）。尊重 prefers-reduced-motion。 */
.ctrl-fab{position:relative;width:58px;height:58px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:none;cursor:pointer;color:#fff;background:linear-gradient(150deg,#ffccd5 0%,#fba6b4 53%,#f58da0 100%);box-shadow:0 6px 16px rgba(245,140,160,.32),0 16px 36px rgba(245,140,160,.22);transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s;animation:ctrlFabIn .42s cubic-bezier(.2,.9,.3,1) both}
.ctrl-fab::before{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid rgba(255,255,255,.32);pointer-events:none}
.ctrl-fab .fab-ping{position:absolute;inset:0;border-radius:50%;border:2px solid rgba(245,140,160,.5);opacity:0;animation:ctrlFabPing 1.7s ease-out .6s 2;pointer-events:none}
.ctrl-fab-orb{position:relative;display:inline-flex}
.ctrl-fab svg{width:27px;height:27px;filter:drop-shadow(0 1px 1.5px rgba(180,80,100,.26))}
.ctrl-fab:hover{transform:translateY(-2px) scale(1.04);box-shadow:0 10px 22px rgba(245,140,160,.34),0 22px 46px rgba(245,140,160,.26)}
.ctrl-fab:active{transform:scale(.97)}
@keyframes ctrlFabIn{from{opacity:0;transform:translateY(12px) scale(.8)}to{opacity:1;transform:none}}
@keyframes ctrlFabPing{0%{transform:scale(1);opacity:.5}80%,100%{transform:scale(1.75);opacity:0}}
/* 角色提示气泡（一次/会话、可关、低压力）—— 2026 现代 launcher 范式：一句话说明“能帮你干嘛”，降低空面板焦虑 */
.ctrl-teaser{position:absolute;right:2px;bottom:72px;width:236px;max-width:calc(100vw - 44px);background:#fff;color:#3c3860;font-size:.85rem;line-height:1.55;padding:11px 30px 11px 14px;border-radius:16px 16px 4px 16px;box-shadow:0 14px 34px rgba(80,50,120,.18);border:1px solid #fbe6ea;cursor:pointer;animation:ctrlTeaserIn .35s ease both}
.ctrl-teaser::after{content:"";position:absolute;right:22px;bottom:-7px;width:13px;height:13px;background:#fff;border-right:1px solid #fbe6ea;border-bottom:1px solid #fbe6ea;transform:rotate(45deg)}
.ctrl-teaser .tz{position:absolute;top:6px;right:7px;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;color:#b8b3cc;border-radius:6px}
.ctrl-teaser .tz:hover{background:#f3f0fb;color:#7a7498}
@keyframes ctrlTeaserIn{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){.ctrl-fab{animation:none}.ctrl-fab .fab-ping{display:none}.ctrl-teaser{animation:none}}
#ctrlWrap.open .ctrl-fab{display:none}            /* 开启时隐藏 FAB：修复「关闭点不了」+ 现代小助手范式 */
.ctrl-panel{display:none}
#ctrlWrap.open .ctrl-panel{display:flex}
/* 自适应尺寸：默认随屏幕宽度伸缩（更宽），并可由用户拖拽左上角手柄调整(存 localStorage) */
.ctrl-panel{position:relative;width:clamp(440px,40vw,780px);max-width:calc(100vw - 24px);height:min(820px,calc(100vh - 76px));min-height:460px;max-height:calc(100vh - 16px);background:linear-gradient(180deg,#fdf2f4 0%,#fef8f9 18%,#fffcfd 46%);border:1px solid #fbe6ea;border-radius:20px;box-shadow:0 26px 64px rgba(170,90,110,.20);flex-direction:column;overflow:hidden;transform-origin:bottom right;animation:uiScaleIn .16s ease}
/* 左上角拖拽手柄（面板锚定右下，故从左上往外拖即放大）*/
.ctrl-resize{position:absolute;top:0;left:0;width:20px;height:20px;cursor:nwse-resize;z-index:8;touch-action:none}
.ctrl-resize::before{content:"";position:absolute;top:6px;left:6px;width:8px;height:8px;border-top:2px solid var(--ca2);border-left:2px solid var(--ca2);border-radius:3px 0 0 0;opacity:.55;transition:opacity .15s}
.ctrl-resize:hover::before{opacity:1}
.ctrl-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px 12px}
.ctrl-h-l{display:flex;align-items:center;gap:10px;min-width:0}
.ctrl-ava{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r-sm);background:linear-gradient(135deg,var(--ca2),var(--ca));color:#fff;box-shadow:0 6px 16px rgba(245,140,160,.38);flex:0 0 auto}
.ctrl-h-tt{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.ctrl-h-tt b{font-size:1rem;color:#231d3d;letter-spacing:.2px}
.ctrl-on-sub{font-size:.74rem;color:#8b82b5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:230px}
.ctrl-h-r{display:flex;align-items:center;gap:4px;flex:0 0 auto}
.ctrl-htxt{border:none;background:none;color:#8b82b5;cursor:pointer;font-size:.82rem;line-height:1;padding:5px 8px;border-radius:8px}
.ctrl-htxt:hover{background:rgba(245,140,160,.1);color:var(--ca)}
.ctrl-iconbtn{border:none;background:none;color:#a39ec4;cursor:pointer;width:30px;height:30px;border-radius:var(--r-xs);display:inline-flex;align-items:center;justify-content:center}
.ctrl-iconbtn:hover{background:rgba(245,140,160,.12);color:var(--ca)}
.ctrl-iconbtn svg{width:16px;height:16px}
.ctrl-meta{margin:0 14px 8px;padding:9px 12px;border-radius:10px;background:rgba(245,140,160,.07);font-size:.74rem;color:#6a648a;line-height:1.6}
.ctrl-meta code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.7rem;background:#fff;padding:1px 5px;border-radius:5px;color:var(--ca);border:1px solid #f7dde2}
.ctrl-body{flex:1;overflow-y:auto;padding:6px 14px 14px;display:flex;flex-direction:column;gap:10px}
.ctrl-card{background:#fff;border:1px solid #fbe6ea;border-radius:var(--r-md);padding:14px 16px;box-shadow:0 6px 18px rgba(170,70,90,.06)}
.ctrl-welcome{font-size:.9rem;line-height:1.75;color:#403a5e}
.ctrl-sugs-h{font-size:.76rem;font-weight:700;color:#9088b8;margin:4px 2px 0}
.ctrl-sug{display:flex;align-items:center;gap:11px;width:100%;background:#fff;border:1px solid #fbe6ea;border-radius:var(--r-md);padding:12px 14px;cursor:pointer;box-shadow:0 4px 14px rgba(170,70,90,.05);transition:transform .12s,box-shadow .12s,border-color .12s}
.ctrl-sug:hover{transform:translateY(-1px);border-color:#f2b3c0;box-shadow:0 8px 20px rgba(245,140,160,.14)}
.ctrl-sug-i{display:inline-flex;color:var(--ca);flex:0 0 auto}
.ctrl-sug-t{flex:1;font-size:.88rem;color:#33304d;text-align:left}
.ctrl-sug-b{flex:0 0 auto;font-size:.76rem;color:var(--ca);border:1px solid #f5c9d2;border-radius:var(--r-md);padding:3px 13px;transition:background .12s,color .12s,border-color .12s}
.ctrl-sug:hover .ctrl-sug-b{background:var(--ca);color:#fff;border-color:var(--ca)}
.ctrl-rules{display:flex;flex-direction:column;gap:6px}
.ctrl-rules-h{font-size:.74rem;font-weight:700;color:#9088b8;margin-top:2px}
.ctrl-rule{font-size:.8rem;line-height:1.5;color:#5d5780;background:#fff;border:1px solid #fbe6ea;border-radius:var(--r-sm);padding:9px 11px;display:flex;gap:8px;justify-content:space-between;align-items:flex-start}
.ctrl-rule b{color:#332e52}
.ctrl-rule a{color:var(--ca);cursor:pointer;white-space:nowrap;font-size:.78rem}
.ctrl-msg{font-size:.88rem;line-height:1.65;padding:10px 13px;border-radius:var(--r-md);max-width:90%;word-break:break-word}
.ctrl-msg.me{align-self:flex-end;background:linear-gradient(135deg,var(--ca),var(--ca2));color:#fff;border-bottom-right-radius:5px;box-shadow:0 4px 12px rgba(245,140,160,.28)}
.ctrl-msg.ai{align-self:flex-start;background:#fff;color:#3a3556;border:1px solid #fbe6ea;border-bottom-left-radius:5px;box-shadow:0 4px 14px rgba(170,70,90,.05)}
.ctrl-wait{color:#9088b8}
.ctrl-prop{margin:8px 0;padding:10px 12px;border-radius:var(--r-sm);background:rgba(245,140,160,.07);border:1px dashed var(--ca);font-size:.85rem;line-height:1.6;color:#3a3556}
.ctrl-prop-act{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ctrl-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ctrl-chip{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;padding:4px 9px;border-radius:8px;background:#eaf7ee;color:#1f7a3d}
.ctrl-chip svg{flex:0 0 auto}
.ctrl-chip.bad{background:#fdecec;color:#b4322e}
.ctrl-chip a{color:inherit;text-decoration:underline;cursor:pointer;margin-left:4px;opacity:.85}
.ctrl-actrow{margin-top:8px}
.ctrl-detail{display:inline-flex;align-items:center;gap:5px;border:1px solid #f5c9d2;background:#fff;color:var(--ca);font-size:.78rem;padding:5px 12px;border-radius:var(--r-md);cursor:pointer;transition:background .12s,color .12s}
.ctrl-detail:hover{background:var(--ca);color:#fff;border-color:var(--ca)}
.ctrl-detail svg{width:13px;height:13px}
/* 看改了什么 · 前后对比 */
.ctrl-diff{font-size:.86rem;line-height:1.75;max-height:62vh;overflow:auto}
.ctrl-diff-lg{display:flex;gap:10px;margin-bottom:10px}
.ctrl-diff-lg .lg{font-size:.74rem;padding:2px 9px;border-radius:7px}
.lg.add{background:#e7f7ec;color:#1f7a3d}.lg.del{background:#fdeaea;color:#b4322e}
.dl{display:flex;gap:8px;padding:3px 9px;border-radius:6px;white-space:pre-wrap;word-break:break-word;color:var(--text-2)}
.dl .ds{flex:0 0 16px;color:#c4c0d4;user-select:none}
.dl.add{background:#eef9f1}.dl.add .ds{color:#1f7a3d}.dl.add .dt{color:#176235}
.dl.del{background:#fdeeee}.dl.del .ds{color:#b4322e}.dl.del .dt{color:#9a2b27;text-decoration:line-through;opacity:.85}
.ctrl-mode{font-size:.66rem;background:rgba(255,255,255,.28);padding:1px 6px;border-radius:6px;margin-left:6px}
.ctrl-foot{padding:0 14px 12px}
.ctrl-remember{display:flex;align-items:center;gap:6px;padding:0 2px 9px;font-size:.78rem;color:#7a739e;cursor:pointer;user-select:none}
.ctrl-remember input{accent-color:var(--ca);width:15px;height:15px;min-height:0;border:none;border-radius:4px;flex:0 0 auto}
.ctrl-input{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid #f7dde2;border-radius:16px;padding:5px 6px 5px 14px;box-shadow:0 6px 18px rgba(170,70,90,.07)}
/* 单行高度必须容下一整行（box-sizing:border-box 下 height 含 padding）：34 - 12padding = 22 内容 ≥ 行高 20，避免文字被裁/偏位 */
.ctrl-input textarea{flex:1;resize:none;border:none!important;padding:6px 0;font:inherit;font-family:inherit!important;font-size:.9rem;line-height:1.4;outline:none;background:none;color:#33304d;min-height:0!important;height:34px;max-height:120px;box-sizing:border-box}
.ctrl-input textarea:focus{border:none!important;box-shadow:none!important}
.ctrl-input textarea::placeholder{color:#a8a2c6}
.ctrl-send{flex:0 0 auto;width:38px;height:38px;border:none;border-radius:50%;cursor:pointer;background:linear-gradient(135deg,var(--ca),var(--ca2));color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 5px 14px rgba(245,140,160,.4);transition:transform .12s}
.ctrl-send:hover{transform:scale(1.06)}
.ctrl-send svg{fill:#fff}
.ctrl-send.stopping{background:linear-gradient(135deg,#f0859a,#d76e86)}
/* 工具条：模型切换 / 思考档位 / 清空 */
.ctrl-tools{display:flex;align-items:center;gap:7px;padding:0 14px 8px;flex-wrap:wrap}
.ctrl-dd{position:relative}
.ctrl-dd-btn{display:inline-flex;align-items:center;gap:5px;max-width:232px;border:1px solid #f7dde2;background:#fff;color:#5b4a52;font-size:.78rem;padding:5px 8px 5px 11px;border-radius:10px;cursor:pointer;font-family:inherit;line-height:1.35}
.ctrl-dd-btn .dd-cur{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ctrl-dd-btn:hover{border-color:var(--ca)}
.ctrl-dd-btn svg{opacity:.5;flex:0 0 auto}
.ctrl-dd-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:6;min-width:236px;max-width:320px;background:#fff;border:1px solid #f7dde2;border-radius:var(--r-md);box-shadow:0 16px 40px rgba(170,70,90,.22);padding:5px;display:flex;flex-direction:column;gap:2px}
.ctrl-dd-menu[hidden]{display:none}   /* 关键：默认隐藏（display:flex 会盖掉 [hidden] 的 UA display:none，必须显式声明） */
.ctrl-dd-opt{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:none;background:none;cursor:pointer;padding:8px 10px;border-radius:var(--r-xs);font-family:inherit}
.ctrl-dd-opt:hover{background:#fdf3f4}
.ctrl-dd-opt.on{background:#fdeef1}
.ctrl-dd-opt .dd-main{flex:1;display:flex;flex-direction:column;gap:1px;min-width:0}
.ctrl-dd-opt .dd-name{font-size:.82rem;color:#33304d;font-weight:600;white-space:nowrap}
.ctrl-dd-opt .dd-note{font-size:.7rem;color:#a6868f}
.ctrl-dd-opt .dd-ck{flex:0 0 auto;color:var(--ca);display:inline-flex}
.ctrl-tbtn{margin-left:auto;border:1px solid #f7dde2;background:#fff;color:#8b82b5;width:30px;height:30px;border-radius:var(--r-xs);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.ctrl-tbtn:hover{background:#fbeaf0;color:#c0397a;border-color:#f3c9da}
/* 流式光标 + 历史抬头 */
.ctrl-cursor{display:inline-block;width:7px;height:1.05em;vertical-align:-2px;margin-left:2px;border-radius:2px;background:var(--ca);animation:ctrlBlink 1s steps(2) infinite}
@keyframes ctrlBlink{50%{opacity:0}}
.ctrl-txt{white-space:normal}
/* AI 回复 · Markdown 全面渲染 */
.ctrl-msg.ai p{margin:0 0 6px}
.ctrl-msg.ai p:last-child{margin-bottom:0}
.ctrl-msg.ai strong{font-weight:700;color:#2a2542}
.ctrl-msg.ai em{font-style:italic}
.ctrl-msg.ai code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82em;background:#f6eef1;padding:1px 5px;border-radius:5px;color:#a64a6b}
.ctrl-msg.ai pre.md-pre{background:#2b2740;color:#f2eefe;border-radius:10px;padding:10px 12px;overflow:auto;margin:6px 0}
.ctrl-msg.ai pre.md-pre code{background:none;color:inherit;padding:0;font-size:.8rem}
.ctrl-msg.ai .md-h{font-weight:700;color:#2a2542;margin:7px 0 4px;line-height:1.4}
.ctrl-msg.ai .md-h1{font-size:1.04rem}.ctrl-msg.ai .md-h2{font-size:1rem}.ctrl-msg.ai .md-h3{font-size:.94rem}.ctrl-msg.ai .md-h4{font-size:.9rem}
.ctrl-msg.ai .md-list{margin:4px 0 6px;padding-left:20px}
.ctrl-msg.ai .md-list li{margin:2px 0}
.ctrl-msg.ai blockquote.md-q{margin:6px 0;padding:5px 12px;border-left:3px solid var(--ca);background:rgba(245,140,160,.12);color:#5d5780;border-radius:0 8px 8px 0}
.ctrl-msg.ai a{color:var(--ca);text-decoration:underline;word-break:break-all}
/* 快捷输入 [[…]]：点一下填进输入框 */
.ctrl-qi{display:inline-flex;align-items:center;gap:3px;margin:3px 4px 1px 0;padding:3px 11px;border-radius:var(--r-md);background:#fff;border:1px solid var(--ca2);color:var(--ca);cursor:pointer;font-size:.82rem;line-height:1.5;transition:background .12s,color .12s,box-shadow .12s;vertical-align:middle}
.ctrl-qi::before{content:"+";font-weight:700;opacity:.65}
.ctrl-qi:hover{background:var(--ca);color:#fff;border-color:var(--ca);box-shadow:0 3px 10px rgba(245,140,160,.4)}
.ctrl-qi:active{transform:translateY(1px)}
.ctrl-hist-h{font-size:.72rem;color:#a39ec4;text-align:center;margin:2px 0 6px}
.ctrl-hist-h a{color:var(--ca);cursor:pointer}
/* 思考状态 + 调用工具的流式步骤 */
.ctrl-status{display:flex;align-items:center;gap:7px;font-size:.82rem;color:#9b8fa6;padding:3px 2px 0}
.ctrl-status .st-spin{color:var(--ca)}
.ctrl-steps{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.ctrl-step{display:flex;align-items:flex-start;gap:8px;font-size:.84rem;line-height:1.5;padding:8px 11px;border-radius:var(--r-sm);background:#fff;border:1px solid #fbe6ea}
.ctrl-step .st-ic{flex:0 0 16px;height:19px;display:inline-flex;align-items:center;justify-content:center}
.ctrl-step .st-tx{min-width:0;flex:1}
.ctrl-step .st-tx b{font-weight:600;color:#33304d}
.ctrl-step .st-tx i{display:block;font-style:normal;color:#9088a0;font-size:.77rem;margin-top:2px;white-space:pre-wrap;word-break:break-word}
.ctrl-step .st-tx a{color:var(--ca);cursor:pointer;margin-left:4px;font-size:.8rem}
.ctrl-step.running{color:#6a648a;border-style:dashed}
.ctrl-step.running .st-ic{color:var(--ca)}
.ctrl-step.ok{border-color:#d8efe0;background:#f5fbf7}
.ctrl-step.ok .st-ic{color:#1f9d57}
.ctrl-step.bad{border-color:#f6d6d4;background:#fdf4f3}
.ctrl-step.bad .st-ic{color:#d4443e}
.st-spin{width:13px;height:13px;border:2px solid currentColor;border-right-color:transparent!important;border-radius:50%;display:inline-block;animation:ctrlSpin .7s linear infinite;flex:0 0 auto}
@keyframes ctrlSpin{to{transform:rotate(360deg)}}
/* 深度思考 · 折叠的思考过程（流式） */
.ctrl-think{margin:0 0 8px;border:1px solid var(--ca2);border-radius:var(--r-md);background:rgba(245,140,160,.06);overflow:hidden}
.ctrl-think-h{display:flex;align-items:center;gap:7px;padding:7px 11px;cursor:pointer;font-size:.8rem;color:#8a7d86;list-style:none;user-select:none}
.ctrl-think-h::-webkit-details-marker{display:none}
.ctrl-think .tk-spin{color:var(--ca)}
.ctrl-think .tk-lb{flex:1}
.ctrl-think .tk-chev{display:inline-flex;color:#b8a9b0;transition:transform .15s}
.ctrl-think[open] .tk-chev{transform:rotate(180deg)}
.ctrl-think-body{padding:0 12px 10px;font-size:.78rem;line-height:1.7;color:#9a8e96;white-space:pre-wrap;word-break:break-word;max-height:220px;overflow-y:auto}
@media (prefers-reduced-motion: reduce){.st-spin{animation:none}}
@media (prefers-reduced-motion: reduce){.ctrl-cursor{animation:none}}
@media(max-width:880px){#ctrlWrap{right:14px;bottom:78px}#ctrlWrap.over-tp{bottom:78px}.ctrl-panel{width:calc(100vw - 24px)!important;height:72vh!important}.ctrl-resize{display:none}}
/* 逐字稿内联编辑 */
.sc-edit-btn{margin-left:auto;border:1px solid var(--border);background:var(--surface-0);color:var(--primary);font-size:.72rem;padding:2px 10px;border-radius:var(--r-xs);cursor:pointer}
.sc-edit-btn:hover{background:var(--surface-1,#f6f7fb)}
.sc-edit{width:100%;min-height:200px;resize:vertical;border:1px solid var(--primary);border-radius:10px;padding:12px 14px;font:inherit;font-size:1.02rem;line-height:1.7;outline:none;background:var(--surface-0);color:var(--text);white-space:pre-wrap}
.sc-edit-act{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}
.sc-edit-tip{font-size:.76rem;color:var(--text-3)}
/* ============ 对内知识（L2/L3 密级人审台）· ik- 前缀，2026-07-08 ============ */
.ik-b-l2{background:rgba(59,130,246,.15);color:#1d4ed8}
.ik-b-l3{background:rgba(245,158,11,.16);color:#b45309}
.ik-txt{font-size:.78rem;color:var(--text-2);line-height:1.6;white-space:pre-wrap;word-break:break-word;cursor:pointer}
.ik-txt.clip{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ik-done,.ik-done td{background:rgba(16,185,129,.13)!important;color:#047857;transition:background .35s}
.ik-two{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-start}
.ik-two>.rail-card{flex:1 1 380px;min-width:0}
.ik-hit{border:1px solid var(--border);border-radius:10px;padding:8px 10px;margin:6px 0;background:var(--surface-0,#fff)}
.ik-spin{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:var(--primary);border-radius:50%;margin:0 auto 10px;animation:ctrlSpin .8s linear infinite}
@media (prefers-reduced-motion: reduce){.ik-spin{animation:none}}

/* ============ 经营实况 / 计划与实际偏差（全业务事实优先） ============ */
.decision-viewbar{display:flex;align-items:center;gap:14px;margin:0 0 10px;padding:0;border:0;border-bottom:1px solid var(--border);border-radius:0;background:transparent}
.decision-tabs{display:flex;align-items:center;gap:3px;flex-wrap:wrap}
.decision-tabs button,.hub-tabs button{position:relative;border:0;border-radius:6px;background:transparent;color:var(--text-2);font-family:inherit;font-size:.7rem;font-weight:650;line-height:1.2;cursor:pointer;padding:9px 12px;transition:background .15s,color .15s,box-shadow .15s}
.decision-tabs button:hover,.hub-tabs button:hover{background:color-mix(in srgb,var(--surface) 80%,transparent);color:var(--text)}
.decision-tabs button.on,.hub-tabs button.on{background:transparent;color:var(--primary-dark);box-shadow:none}.decision-tabs button.on:after{content:"";position:absolute;right:10px;bottom:-1px;left:10px;height:2px;border-radius:2px;background:var(--primary)}
.decision-view-meta{display:flex;align-items:center;gap:10px;margin-left:auto;padding-right:3px}.decision-view-meta>span{display:flex;max-width:310px;flex-direction:column;gap:1px;color:var(--text-2);font-size:.64rem;text-align:right}.decision-view-meta>span small{color:var(--muted);font-size:.54rem;font-weight:800;letter-spacing:.06em}.ops-data-status{flex:none;padding:7px 10px;border:1px solid var(--border);border-radius:10px;background:var(--surface);color:var(--text-2);font:650 .66rem/1.2 inherit;cursor:pointer}.ops-data-status:before{content:"";display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:var(--muted)}.ops-data-status:hover,.ops-data-status.on{border-color:var(--primary);color:var(--primary-dark);background:color-mix(in srgb,var(--surface) 92%,var(--primary) 8%)}.ops-data-status.on:before{background:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}
.ops-dashboard-view{display:grid;gap:0}.ops-dashboard-view>.card.static,.ops-dashboard-view>.ops-source-unavailable{box-shadow:var(--shadow-xs)}
.hub-tabs{display:flex;align-items:center;gap:4px;width:max-content;max-width:100%;margin:0 0 14px;padding:4px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle);overflow:auto}
.hub-tabs button{white-space:nowrap}
.ops-boundary{display:flex;gap:10px;align-items:flex-start;margin:0 0 12px;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle);font-size:.78rem;line-height:1.65;color:var(--text-2)}
.ops-boundary b{flex:0 0 auto;color:var(--text)}
.ops-stage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ops-stage{min-width:0;padding:11px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle);cursor:pointer;transition:border-color .15s,background .15s}
.ops-stage:hover{border-color:var(--primary);background:var(--surface-0)}
.ops-stage>div{display:flex;align-items:center;gap:6px;justify-content:space-between}
.ops-stage b{font-size:.75rem;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-stage strong{display:block;margin-top:8px;font-size:1rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-stage small{display:block;margin-top:3px;font-size:.66rem;line-height:1.45;color:var(--muted);min-height:1.9em}
.ops-state{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:999px;padding:2px 7px;font-size:.62rem;font-weight:700;white-space:nowrap}
.ops-state.ok{color:#047857;background:rgba(16,185,129,.13)}
.ops-state.partial{color:#b45309;background:rgba(245,158,11,.14)}
.ops-state.blocked{color:var(--muted);background:var(--surface-2)}
.ops-health-count{font-size:.72rem;color:var(--muted)}
.ops-channel-accounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:10px}
.ops-channel-accounts>section{padding:10px;border:1px solid var(--border);border-radius:12px;background:var(--surface-1)}
.ops-channel-accounts>section>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.ops-channel-accounts>section>header span,.ops-channel-accounts>section>footer{color:var(--muted);font-size:.68rem}
.ops-channel-accounts>section>footer{margin-top:7px;line-height:1.55}
.ops-health-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ops-health-grid>div{display:grid;grid-template-columns:1fr auto;gap:3px 8px;align-items:center;padding:8px 10px;border:1px solid var(--border);border-radius:8px}
.ops-health-grid>div>span:first-child{font-size:.75rem;font-weight:700;color:var(--text)}
.ops-health-grid small{grid-column:1/-1;font-size:.65rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ops-section-title{display:flex;align-items:baseline;gap:9px;margin:18px 2px 8px}
.ops-section-title b{font-size:.94rem}
.ops-section-title span{font-size:.7rem;color:var(--muted)}
.ops-growth-decision-entry{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0 6px;padding:15px 17px;border:1px solid color-mix(in srgb,var(--primary) 34%,var(--border));border-radius:12px;background:linear-gradient(110deg,color-mix(in srgb,var(--primary) 8%,var(--surface-0)),var(--surface-0));box-shadow:0 8px 22px rgba(var(--brand-rgb),.06)}
.ops-growth-decision-entry>div{display:flex;min-width:0;flex-direction:column;gap:3px}
.ops-growth-decision-entry span{font-size:.58rem;font-weight:800;letter-spacing:.1em;color:var(--primary)}
.ops-growth-decision-entry b{font-size:.94rem;color:var(--text)}
.ops-growth-decision-entry small{font-size:.68rem;line-height:1.45;color:var(--muted)}
.ops-growth-decision-entry button{flex:0 0 auto;white-space:nowrap}
.ops-drilldown{margin-top:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-0);overflow:hidden}
.ops-drilldown>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;cursor:pointer;list-style:none}
.ops-drilldown>summary::-webkit-details-marker{display:none}
.ops-drilldown>summary>div{display:flex;flex-direction:column;gap:2px}
.ops-drilldown>summary b{font-size:.88rem}
.ops-drilldown>summary small,.ops-drilldown>summary>span{font-size:.7rem;color:var(--muted)}
.ops-drilldown[open]>summary{border-bottom:1px solid var(--border)}
.ops-drilldown>div{padding:12px}
.ops-drilldown>div>.card:last-child{margin-bottom:0!important}
.ops-variance-card{padding:0!important;overflow:hidden}
.ops-variance-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px}
.ops-variance-head>div{display:flex;flex-direction:column;gap:2px}
.ops-variance-head span{font-size:.62rem;letter-spacing:.12em;color:var(--muted)}
.ops-variance-head b{font-size:1rem}
.ops-variance-head small{font-size:.7rem;color:var(--muted)}
.ops-variance-card .tablebox{border-radius:0;border-left:0;border-right:0;border-bottom:0;margin:0}
.ops-variance-card td.negative{color:var(--danger);font-weight:700}
.ops-variance-next{margin-top:12px;border:1px solid var(--border);border-radius:10px;padding:12px 14px}
.ops-variance-next>div{display:flex;gap:10px;align-items:flex-start}
.ops-variance-next b{flex:0 0 auto;font-size:.78rem}
.ops-variance-next span{font-size:.75rem;line-height:1.65;color:var(--text-2)}
@media(max-width:960px){.ops-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ops-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.decision-viewbar{align-items:flex-start;flex-direction:column}.decision-tabs{width:100%}.decision-tabs button{flex:1;min-width:88px}.ops-stage-grid,.ops-health-grid,.ops-channel-accounts{grid-template-columns:1fr}.ops-section-title,.ops-boundary,.ops-variance-next>div,.ops-growth-decision-entry{align-items:flex-start;flex-direction:column}.ops-growth-decision-entry button{width:100%}.ops-stage small{min-height:0}.ops-variance-head{align-items:flex-start;flex-direction:column}}

/* ============ 经营推演 v3 · 策略指导层（目标→选择→动作→切换） ============ */
.bm8-command{overflow:hidden;padding:24px;border:1px solid rgba(117,159,235,.22);border-radius:16px;color:#f7fbff;background:radial-gradient(720px 320px at 0 -20%,rgba(54,116,243,.34),transparent 62%),radial-gradient(620px 300px at 100% 115%,rgba(34,197,156,.15),transparent 66%),linear-gradient(142deg,#0c1729,#0a1423 58%,#08111d);box-shadow:0 18px 46px rgba(10,20,38,.15)}
.bm8-command>header,.bm8-execution>header{display:flex;align-items:flex-start;justify-content:space-between;gap:22px}.bm8-command>header>div:first-child>span,.bm8-execution>header>div>span{display:block;font-size:.56rem;font-weight:800;letter-spacing:.15em;color:#7fa8ff}.bm8-command h2,.bm8-execution h2{margin:4px 0 5px;font-size:1.32rem;line-height:1.25;letter-spacing:-.025em}.bm8-command>header p{max-width:670px;font-size:.7rem;line-height:1.65;color:rgba(235,242,253,.6)}
.bm8-focus{display:flex;gap:4px;padding:4px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.04)}.bm8-focus button{min-width:112px;padding:8px 10px;border:0;border-radius:7px;color:rgba(238,245,255,.68);background:transparent;text-align:left;cursor:pointer}.bm8-focus button b,.bm8-focus button small{display:block}.bm8-focus button b{font-size:.65rem}.bm8-focus button small{margin-top:2px;font-size:.49rem;line-height:1.35;color:rgba(238,245,255,.4)}.bm8-focus button.on{color:#fff;background:rgba(76,130,239,.3);box-shadow:inset 0 0 0 1px rgba(126,168,255,.24)}.bm8-focus button.on small{color:rgba(241,246,255,.7)}
.bm8-command-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(310px,.65fr);gap:12px;margin-top:18px}.bm8-recommend,.bm8-pacing{min-width:0;padding:18px;border:1px solid rgba(255,255,255,.09);border-radius:12px;background:rgba(255,255,255,.045)}.bm8-badges{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}.bm8-badges span{padding:4px 8px;border-radius:999px;font-size:.54rem;font-weight:700;color:rgba(239,245,255,.68);background:rgba(255,255,255,.07)}.bm8-badges span.ok{color:#69e5bf;background:rgba(48,211,161,.12)}.bm8-badges span.watch,.bm8-badges span.future{color:#ffd078;background:rgba(255,190,89,.12)}.bm8-badges span.danger,.bm8-badges span.blocked{color:#ff9d9d;background:rgba(255,96,96,.13)}.bm8-recommend>small{display:block;font-size:.56rem;font-weight:800;letter-spacing:.08em;color:#84acff}.bm8-recommend h3{margin:5px 0 7px;font-size:1.36rem;line-height:1.25;letter-spacing:-.02em}.bm8-recommend>p{max-width:780px;font-size:.7rem;line-height:1.7;color:rgba(235,242,253,.66)}
.bm8-logic{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:15px}.bm8-logic>span{display:grid;grid-template-columns:22px minmax(0,1fr);gap:2px 6px;min-width:0;padding:9px;border:1px solid rgba(255,255,255,.07);border-radius:8px;background:rgba(0,0,0,.12)}.bm8-logic i{grid-row:1/3;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;font-size:.54rem;font-style:normal;font-weight:800;color:#99baff;background:rgba(85,133,232,.18)}.bm8-logic b{font-size:.55rem;color:rgba(238,245,255,.5)}.bm8-logic em{min-width:0;overflow:hidden;font-size:.62rem;font-style:normal;font-weight:700;color:#fff;text-overflow:ellipsis;white-space:nowrap}.bm8-recommend-actions{display:flex;align-items:center;gap:8px;margin-top:15px}.bm8-recommend-actions button{padding:8px 12px;border:1px solid rgba(127,168,255,.32);border-radius:8px;color:#eaf1ff;background:rgba(66,113,214,.16);font:inherit;font-size:.62rem;font-weight:700;cursor:pointer}.bm8-recommend-actions button.bm8-adopt{border-color:#75a0ff;background:#376fdc;color:#fff}.bm8-adopted{font-size:.61rem;font-weight:700;color:#65dfba}
.bm8-pacing>header{display:flex;align-items:center;justify-content:space-between;gap:10px}.bm8-pacing>header>span{font-size:.62rem;font-weight:700;color:rgba(238,245,255,.7)}.bm8-pacing>header>b{font-size:.57rem}.bm8-pacing>header>b.ok{color:#65dfba}.bm8-pacing>header>b.watch,.bm8-pacing>header>b.future{color:#ffd078}.bm8-pacing>header>b.danger,.bm8-pacing>header>b.blocked{color:#ff9d9d}.bm8-progress{position:relative;height:7px;margin:15px 0 17px;border-radius:999px;background:rgba(255,255,255,.09)}.bm8-progress i{position:absolute;inset:0 auto 0 0;max-width:100%;border-radius:inherit;background:linear-gradient(90deg,#3d75e8,#42d2aa)}.bm8-progress em{position:absolute;top:-4px;width:2px;height:15px;background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.13)}.bm8-pacing-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.bm8-pacing-grid>span{padding:9px;border:1px solid rgba(255,255,255,.065);border-radius:8px;background:rgba(0,0,0,.1)}.bm8-pacing-grid small,.bm8-pacing-grid b,.bm8-pacing-grid em{display:block}.bm8-pacing-grid small{font-size:.52rem;color:rgba(238,245,255,.43)}.bm8-pacing-grid b{margin-top:2px;font-size:.92rem}.bm8-pacing-grid em{font-size:.5rem;font-style:normal;color:rgba(238,245,255,.4)}.bm8-pacing>p{margin-top:12px;padding-top:10px;border-top:1px solid rgba(255,255,255,.07);font-size:.57rem;line-height:1.55;color:rgba(238,245,255,.48)}
.bm8-execution{padding:21px 22px;border:1px solid var(--border);border-radius:14px;background:var(--surface-0);box-shadow:0 8px 28px rgba(18,31,52,.055)}.bm8-execution>header>small{max-width:520px;font-size:.64rem;line-height:1.55;text-align:right;color:var(--muted)}.bm8-execution h2{color:var(--text)}.bm8-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:15px}.bm8-actions article{position:relative;min-width:0;padding:15px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle)}.bm8-actions article>i{position:absolute;right:12px;top:10px;font-size:1.45rem;font-style:normal;font-weight:800;color:rgba(var(--brand-rgb),.12)}.bm8-actions article>span,.bm8-actions article>b,.bm8-actions article>p{display:block}.bm8-actions article>span{font-size:.54rem;font-weight:800;letter-spacing:.07em;color:var(--primary)}.bm8-actions article>b{max-width:85%;margin-top:5px;font-size:.9rem;line-height:1.35;color:var(--text)}.bm8-actions article>p{margin-top:7px;font-size:.62rem;line-height:1.6;color:var(--muted)}
.bm8-switch{margin-top:10px;padding:14px 15px;border:1px solid #f0d8aa;border-radius:10px;background:#fffbf3}.bm8-switch>header{display:flex;align-items:baseline;gap:8px}.bm8-switch>header b{font-size:.75rem;color:#7b4d06}.bm8-switch>header span{font-size:.57rem;color:#a67935}.bm8-switch>div{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.bm8-switch>div>span{display:grid;grid-template-columns:8px minmax(0,1fr);gap:2px 8px;padding:8px 9px;border-radius:7px;background:rgba(255,255,255,.72)}.bm8-switch i{grid-row:1/3;width:7px;height:7px;margin-top:5px;border-radius:50%;background:#d69b32}.bm8-switch b{font-size:.62rem;color:#6f4b12}.bm8-switch em{font-size:.56rem;font-style:normal;line-height:1.45;color:#92703b}
.bm8-tuning,.bm8-options{overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--surface-0)}.bm8-tuning>summary,.bm8-options>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 17px;cursor:pointer;list-style:none}.bm8-tuning>summary::-webkit-details-marker,.bm8-options>summary::-webkit-details-marker{display:none}.bm8-tuning>summary b,.bm8-tuning>summary small,.bm8-options>summary b,.bm8-options>summary small{display:block}.bm8-tuning>summary b,.bm8-options>summary b{font-size:.8rem}.bm8-tuning>summary small,.bm8-options>summary small,.bm8-tuning>summary>span,.bm8-options>summary>span{margin-top:2px;font-size:.6rem;color:var(--muted)}.bm8-tuning>summary>span::after,.bm8-options>summary>span::after{content:" ＋"}.bm8-tuning[open]>summary>span::after,.bm8-options[open]>summary>span::after{content:" －"}.bm8-tuning-body{display:grid;gap:10px;padding:10px;border-top:1px solid var(--border);background:var(--surface-subtle)}.bm8-options>.bm6-lab{margin:0;border:0;border-top:1px solid var(--border);border-radius:0;box-shadow:none}
@media(max-width:1080px){.bm8-command>header{flex-direction:column}.bm8-focus{width:100%}.bm8-focus button{flex:1}.bm8-command-grid{grid-template-columns:1fr}.bm8-actions{grid-template-columns:1fr 1fr}.bm8-actions article:last-child{grid-column:1/-1}}
@media(max-width:700px){.bm8-command{padding:18px 15px;border-radius:12px}.bm8-focus{display:grid;grid-template-columns:1fr}.bm8-command-grid{margin-top:12px}.bm8-recommend,.bm8-pacing{padding:15px}.bm8-logic{grid-template-columns:1fr 1fr}.bm8-recommend-actions{align-items:stretch;flex-direction:column}.bm8-recommend-actions button{width:100%}.bm8-execution{padding:17px 14px}.bm8-execution>header{flex-direction:column}.bm8-execution>header>small{text-align:left}.bm8-actions,.bm8-switch>div{grid-template-columns:1fr}.bm8-actions article:last-child{grid-column:auto}.bm8-switch>header{align-items:flex-start;flex-direction:column}.bm8-tuning>summary,.bm8-options>summary{align-items:flex-start}.bm8-tuning>summary>span,.bm8-options>summary>span{white-space:nowrap}}
@media(max-width:420px){.bm8-logic,.bm8-pacing-grid{grid-template-columns:1fr}.bm8-command h2,.bm8-execution h2{font-size:1.14rem}}
/* ===== Whole-business journey pyramid ===== */
.journey-period{font-size:.7rem;color:var(--muted);margin-left:auto}
.journey-hero{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;padding:24px 26px;margin:12px 0;border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border));border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 9%,var(--surface)),var(--surface) 55%,color-mix(in srgb,#e8345c 5%,var(--surface)))}
.journey-hero>div:first-child{max-width:760px}.journey-hero span,.journey-panel header span,.journey-gaps header span{font-size:.64rem;letter-spacing:.14em;color:var(--primary);font-weight:800}.journey-hero h2{font-size:1.55rem;line-height:1.2;margin:5px 0 7px}.journey-hero p{font-size:.82rem;line-height:1.75;color:var(--text-2);margin:0}.journey-trust{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.journey-trust span{min-width:88px;padding:9px 11px;border-radius:12px;background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--border);font-size:.65rem;letter-spacing:0;color:var(--muted)}.journey-trust b{display:block;font-size:1.25rem;color:var(--text);margin-bottom:2px}
.journey-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:0 4px 10px;font-size:.7rem}.journey-legend span,.journey-state{display:inline-flex;align-items:center;gap:5px}.journey-legend span:before{content:"";width:7px;height:7px;border-radius:50%}.journey-legend .ok:before{background:var(--ok)}.journey-legend .partial:before{background:#d97706}.journey-legend .blocked:before{background:#94a3b8}.journey-legend em{margin-left:auto;color:var(--muted);font-style:normal}
.journey-pyramid{display:flex;flex-direction:column;align-items:center;gap:8px;padding:4px 0 18px}.journey-layer{width:calc(100% - var(--journey-level)*5%);min-width:62%;border:1px solid var(--border);border-radius:14px;background:var(--surface);box-shadow:0 4px 18px rgba(15,23,42,.035);overflow:hidden}.journey-layer>header{padding:9px 14px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--primary) calc(8% - var(--journey-level)*.45%),var(--surface))}.journey-layer>header div{display:flex;gap:12px;align-items:baseline}.journey-layer>header span{font-size:.82rem;font-weight:800;color:var(--text)}.journey-layer>header small{font-size:.68rem;color:var(--muted)}.journey-nodes{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:var(--border)}.journey-node{padding:11px 13px;background:var(--surface);min-height:128px;display:flex;flex-direction:column}.journey-node>div{display:flex;gap:6px;align-items:flex-start;justify-content:space-between}.journey-node b{font-size:.75rem;line-height:1.35}.journey-state{white-space:nowrap;border-radius:999px;padding:2px 6px;font-size:.56rem;font-weight:700}.journey-state.ok{background:color-mix(in srgb,var(--ok) 11%,var(--surface));color:var(--ok)}.journey-state.partial{background:color-mix(in srgb,#d97706 11%,var(--surface));color:#b45309}.journey-state.blocked{background:var(--surface-subtle);color:var(--muted)}.journey-node strong{font-size:1.12rem;margin:7px 0 3px}.journey-node p{font-size:.64rem;line-height:1.5;color:var(--text-2);margin:0 0 8px}.journey-node footer{margin-top:auto;display:flex;justify-content:space-between;gap:8px;font-size:.56rem;color:var(--muted)}.journey-node footer span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.journey-node footer em{font-style:normal;text-align:right}.journey-node.blocked strong{color:var(--muted)}
.journey-analysis{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,.7fr);gap:12px;margin-bottom:12px}.journey-panel,.journey-gaps{border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:15px}.journey-panel>header,.journey-gaps>header{display:flex;justify-content:space-between;gap:14px;align-items:flex-end;margin-bottom:10px}.journey-panel header div,.journey-gaps header div{display:flex;flex-direction:column;gap:3px}.journey-panel header b,.journey-gaps header b{font-size:.92rem}.journey-panel header small,.journey-gaps header small{font-size:.66rem;color:var(--muted);max-width:520px;text-align:right}.journey-edges table{font-size:.68rem}.journey-edges td b{display:block}.journey-edges td small{font-size:.58rem;color:var(--muted)}.journey-edges td:last-child{min-width:220px;color:var(--text-2)}
.journey-points{display:flex;flex-direction:column;gap:8px}.journey-point{border:1px solid var(--border);border-radius:10px;padding:10px;background:var(--surface-subtle)}.journey-point span{font-size:.68rem;color:var(--muted)}.journey-point b{font-size:1.2rem;display:block;margin:3px 0}.journey-point p{font-size:.62rem;line-height:1.5;color:var(--text-2);margin:0}.journey-point.partial{border-color:color-mix(in srgb,#d97706 28%,var(--border))}.journey-empty{font-size:.7rem;color:var(--muted);padding:12px}
.journey-gaps{margin-bottom:14px}.journey-gaps>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}.journey-gaps article{display:flex;gap:10px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle)}.journey-gaps article>i{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--text);color:var(--surface);font-size:.65rem;font-style:normal;font-weight:800;flex:none}.journey-gaps article div{min-width:0}.journey-gaps article b{font-size:.72rem}.journey-gaps article span{margin-left:6px;font-size:.58rem;color:var(--primary)}.journey-gaps article p{font-size:.62rem;line-height:1.45;color:var(--text-2);margin:4px 0}.journey-gaps article small{font-size:.58rem;color:var(--muted)}
@media(max-width:900px){.journey-hero{align-items:flex-start;flex-direction:column}.journey-trust{justify-content:flex-start}.journey-layer{width:100%;min-width:0}.journey-analysis{grid-template-columns:1fr}.journey-edges{overflow:auto}.journey-legend em{width:100%;margin-left:0}.journey-panel header small,.journey-gaps header small{text-align:left}}

/* 经营实况数据状态中的完整旅程与缺口渐进展开。 */
.ops-journey-chain{grid-template-columns:repeat(6,minmax(0,1fr))}.ops-chain-note{margin-top:9px;padding:8px 10px;border-radius:8px;background:#fff8ea;color:#8a5a0b;font-size:.68rem;line-height:1.55}
.journey-details{margin:0 0 14px}.journey-details>summary>span:after{content:" ＋"}.journey-details[open]>summary>span:after{content:" －"}.journey-detail-body{display:grid;gap:12px}.journey-detail-section{padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}.journey-detail-section>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.journey-detail-section>header b{font-size:.88rem}.journey-detail-section>header small{font-size:.64rem;color:var(--muted)}.journey-known-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.journey-known{min-width:0;padding:11px;border:1px solid var(--border);border-radius:10px;background:var(--surface-subtle)}.journey-known>div{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.journey-known>div>b{font-size:.72rem}.journey-known>strong{display:block;margin:7px 0 2px;font-size:1.08rem}.journey-known>small{display:block;color:var(--muted);font-size:.58rem}.journey-known>p{margin:6px 0 0;color:var(--text-2);font-size:.62rem;line-height:1.5}.journey-known.partial{border-color:#ead4a7;background:#fffaf0}.journey-details .journey-analysis,.journey-details .journey-gaps{margin-bottom:0}.journey-details .journey-panel header span,.journey-details .journey-gaps header span{letter-spacing:0;color:var(--muted)}
@media(max-width:1180px){.ops-journey-chain{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.ops-journey-chain{grid-template-columns:1fr}.journey-detail-section>header{align-items:flex-start;flex-direction:column}.decision-viewbar{align-items:center;flex-direction:row;overflow-x:auto}.decision-tabs{width:auto;flex-wrap:nowrap}.decision-tabs button{flex:none;min-width:auto;padding-inline:9px}.decision-view-meta{width:auto;margin-left:0;justify-content:flex-end}.decision-view-meta>span{display:none}.ops-data-status{white-space:nowrap}}
/* ===== Forecast journey model ===== */
.bm-journey-forecast{margin-bottom:14px;padding:20px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--primary) 5%,var(--surface)),var(--surface) 45%);box-shadow:0 8px 28px rgba(18,31,52,.045)}
.bm-journey-forecast>header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}.bm-journey-forecast>header>div{max-width:800px}.bm-journey-forecast>header span{font-size:.58rem;font-weight:800;letter-spacing:.14em;color:var(--primary)}.bm-journey-forecast h2{margin:4px 0 5px;font-size:1.25rem}.bm-journey-forecast p{margin:0;font-size:.7rem;line-height:1.6;color:var(--text-2)}.bm-journey-forecast>header aside{min-width:115px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface);text-align:right}.bm-journey-forecast>header aside b,.bm-journey-forecast>header aside small{display:block}.bm-journey-forecast>header aside b{font-size:1.15rem}.bm-journey-forecast>header aside small{font-size:.58rem;color:var(--muted)}
.bm-journey-routes{display:grid;gap:8px}.bm-journey-route{overflow:hidden;border:1px solid var(--border);border-radius:11px;background:var(--surface)}.bm-journey-route>header,.bm-journey-route>footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 11px}.bm-journey-route>header{border-bottom:1px solid var(--border);background:var(--surface-subtle)}.bm-journey-route>header b{font-size:.7rem}.bm-journey-route>header span{padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--primary) 10%,var(--surface));font-size:.56rem;color:var(--primary)}.bm-journey-route>footer{border-top:1px solid var(--border);font-size:.56rem;color:var(--muted)}
.bm-journey-chain{display:grid;grid-template-columns:repeat(4,minmax(100px,1fr) 14px) minmax(100px,1fr);align-items:stretch;padding:9px 11px}.bm-journey-chain>span{min-width:0;padding:7px;border-radius:8px;background:var(--surface-subtle)}.bm-journey-chain>span small,.bm-journey-chain>span b,.bm-journey-chain>span em{display:block}.bm-journey-chain>span small{font-size:.54rem;color:var(--muted)}.bm-journey-chain>span b{margin-top:2px;font-size:.83rem;overflow:hidden;text-overflow:ellipsis}.bm-journey-chain>span em{font-size:.5rem;font-style:normal;color:#b45309}.bm-journey-chain>i,.bm-journey-downstream>i{display:grid;place-items:center;font-size:.68rem;font-style:normal;color:var(--muted)}
.bm-journey-downstream{display:grid;grid-template-columns:minmax(120px,.7fr) 20px minmax(120px,.7fr) 20px minmax(260px,1.4fr) 20px minmax(120px,.7fr);gap:5px;align-items:stretch;margin-top:10px;padding:11px;border-radius:11px;background:#0d1829;color:#f5f8ff}.bm-journey-downstream>span,.bm-journey-downstream>div{padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:rgba(255,255,255,.04)}.bm-journey-downstream>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:5px}.bm-journey-downstream>div>span{padding:5px}.bm-journey-downstream small,.bm-journey-downstream b,.bm-journey-downstream em{display:block}.bm-journey-downstream small{font-size:.52rem;color:rgba(238,245,255,.55)}.bm-journey-downstream b{margin-top:2px;font-size:.78rem}.bm-journey-downstream em{font-size:.49rem;font-style:normal;color:#ffd078}.bm-journey-downstream .blocked{opacity:.68}.bm-journey-forecast>footer{display:flex;gap:8px;align-items:flex-start;margin-top:10px;padding-top:9px;border-top:1px solid var(--border);font-size:.6rem;line-height:1.55;color:var(--text-2)}.bm-journey-forecast>footer b{flex:none;color:var(--text)}
@media(max-width:1000px){.bm-journey-chain{display:flex;overflow:auto}.bm-journey-chain>span{flex:0 0 150px}.bm-journey-chain>i{flex:0 0 14px}.bm-journey-downstream{display:flex;overflow:auto}.bm-journey-downstream>span,.bm-journey-downstream>div{flex:0 0 190px}.bm-journey-downstream>div{flex-basis:320px}}
@media(max-width:650px){.bm-journey-forecast{padding:14px}.bm-journey-forecast>header{align-items:flex-start;flex-direction:column}.bm-journey-forecast>header aside{width:100%;text-align:left}.bm-journey-route>header,.bm-journey-route>footer{align-items:flex-start;flex-direction:column}}
