/* AI 信息层与 PowerX 同源：颜色仅引用 tokens.css；经典模式不匹配本文件。 */
body.ex-ai-mode{background-color:var(--x-bg);background-image:none}
body.ex-ai-mode :is(.cd-card-head h3,.cx-card-title h3,.co-pane-heading h3,.co-activity h4,.co-brief-grid h4,.cd-kpi-label){color:var(--x-text);font-weight:600}
body.ex-ai-mode :is(.cd-kpi-value,.cx-revenue>strong,.co-metric>strong,.cx-card-summary strong){font-size:var(--text-metric);font-weight:600;color:var(--x-text)}
body.ex-ai-mode .ai-number{color:var(--x-text);font-variant-numeric:tabular-nums}
body.ex-ai-mode .ai-number.up{color:var(--x-up)}
body.ex-ai-mode .ai-number.down{color:var(--x-down)}
body.ex-ai-mode :is(.cd-card,.cd-kpi,.cx-panel,.cx-revenue,.co-brief-grid article,.co-activity,.co-soc-panel,.co-readiness,.co-metric){background:var(--x-panel);border-color:var(--x-line)}
body.ex-ai-mode .cx-btn{min-height:34px;border-radius:9px;border-color:var(--x-line);background:var(--x-panel);color:var(--x-text);font-size:var(--text-secondary);box-shadow:none}
body.ex-ai-mode :is(.cx-btn.primary,.ex-mode-switch button[data-mode=ai].on){background:var(--x-brand);border-color:var(--x-brand);color:var(--ai-white)}
body.ex-ai-mode .cx-btn.primary:hover{background:var(--x-brand-ink);border-color:var(--x-brand-ink)}
body.ex-ai-mode .cx-btn:disabled{opacity:1;color:var(--x-mute);background:var(--x-panel2);border-color:var(--x-line)}
body.ex-ai-mode :is(.cx-btn,.cx-date-control input,.cx-date input):focus-visible{outline-color:var(--x-brand)}
body.ex-ai-mode .co-stage.on{background:var(--x-brand-soft);border-color:transparent;box-shadow:none}
body.ex-ai-mode .co-node{width:32px;height:32px;border:2px solid var(--x-line);background:var(--x-panel);color:var(--x-mute);font-size:var(--text-body);font-weight:600}
body.ex-ai-mode .co-stage::after{height:3px;background:var(--x-line)}
body.ex-ai-mode .co-stage[data-state=done]::after{background:var(--x-step-grad)}
body.ex-ai-mode .co-stage[data-state=done] .co-node{background:var(--x-brand);color:var(--ai-white);border-color:var(--x-brand)}
body.ex-ai-mode .co-stage[data-state=running] .co-node{background:var(--x-brand-soft);color:var(--x-brand-ink);border-color:var(--x-brand)}
body.ex-ai-mode[data-ai-theme] .co-stage[data-state]:is([data-state=partial],[data-state=blocked],[data-state=failed]) .co-node{background:var(--x-warn-soft);color:var(--x-warn);border-color:var(--x-warn)}
/* PowerX 步骤下方的状态是灰字「已完成 · 时间」，不再套徽标。 */
body.ex-ai-mode .co-stage em{display:block;color:var(--x-mute);background:none;border:0;border-radius:0;padding:0;font-size:var(--text-caption);font-weight:400;line-height:18px}
body.ex-ai-mode :is(.co-progress>div,.co-readiness-progress,.fa-progress>div){height:8px;border-radius:999px;background:var(--x-line2)}
body.ex-ai-mode .fa-progress>div{height:10px}
body.ex-ai-mode :is(.co-progress i,.co-readiness-progress i){background:var(--x-grad);border-radius:999px}
body.ex-ai-mode .fa-progress i{background:var(--x-step-grad);border-radius:999px}
body.ex-ai-mode .co-check-score>div{width:118px;height:118px;padding:11px;background:conic-gradient(var(--x-ok-bright) var(--co-progress),var(--x-line2) 0)}
body.ex-ai-mode .co-check-score strong{background:var(--x-panel);color:var(--x-text)}
/* PowerX 两种绿：状态点用装饰亮绿；胶囊内白字标签保持语义深绿。 */
body.ex-ai-mode :where(.co-stage,.fa-banner,.cd-trace li,.co-activity li){--state-color:var(--x-mute);--state-dot-color:var(--state-color)}
body.ex-ai-mode [data-state=done]{--state-color:var(--x-down);--state-dot-color:var(--x-ok-bright)}
body.ex-ai-mode [data-state=running]{--state-color:var(--x-brand)}
body.ex-ai-mode .fa-banner[data-state=running]{--state-dot-color:var(--x-ok-bright)}
body.ex-ai-mode :is([data-state=partial],[data-state=blocked],[data-state=attention]){--state-color:var(--x-warn)}
body.ex-ai-mode [data-state=failed]{--state-color:var(--x-up)}
body.ex-ai-mode .cd-agent .cd-trace li[data-state]{display:flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 8px;border-radius:9px;background:var(--x-panel);border:1px solid var(--x-line);color:var(--x-text);font-size:var(--text-secondary)}
body.ex-ai-mode :is(.cd-trace li>i,.co-activity li>i){background:var(--state-dot-color);box-shadow:none}
body.ex-ai-mode .co-activity li[data-state=done]>i{border-color:var(--x-ok-bright)}
body.ex-ai-mode .cd-trace li>i{display:inline-block;width:8px;height:8px;flex:none;margin:0}
body.ex-ai-mode .co-activity li span{color:var(--x-sub)}
/* xg-badge：胶囊容器 + 左侧状态点 + 白字小标签。 */
body.ex-ai-mode .fa-banner .fa-badge{display:inline-flex;flex-wrap:nowrap;gap:7px;height:28px;padding:0 12px 0 10px;border-radius:999px;border:1px solid var(--ai-badge-line);background:var(--ai-badge-panel);color:var(--x-brand-ink);font-size:var(--text-secondary);font-weight:600;white-space:nowrap}
body.ex-ai-mode .fa-banner .fa-badge i{width:8px;height:8px;border-radius:50%;background:var(--state-dot-color);flex:none}
body.ex-ai-mode .fa-banner .fa-badge b{padding:1px 8px;border:0;border-radius:999px;background:var(--state-color);color:var(--ai-white);font-size:var(--text-caption);font-weight:600;height:17px;line-height:15px}
body.ex-ai-mode .fa-badge>span{letter-spacing:0}
/* x-tag：22px 高、6px 圆角、浅色底；来源不引入额外色相。 */
body.ex-ai-mode :is(.cx-pill,.cd-badge,.co-input small){display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border:0;border-radius:6px;background:var(--x-brand-soft);color:var(--x-brand-ink);font-size:var(--text-caption);font-weight:400;line-height:18px;white-space:nowrap}
body.ex-ai-mode :is(.cx-pill.amber,.cd-badge.amber){background:var(--x-warn-soft);color:var(--x-warn);border-color:var(--x-line)}
/* 大面板沿用中性卡片底；提醒仅落在左边线与图标，小徽标保持原语义。 */
body.ex-ai-mode :is(.cd-attention[data-attention=true],.cx-note.amber,.co-warnings,.co-summary-attention){background:var(--x-panel);border-color:var(--x-line);border-left:3px solid var(--x-warn)}
body.ex-ai-mode :is(.cx-note.amber,.co-warnings,.co-summary-attention){color:var(--x-sub)}
body.ex-ai-mode :is(.co-warnings,.co-summary-attention)>b{color:var(--x-text)}
body.ex-ai-mode .co-check:is(.pass,.fail){background:var(--x-panel);border:1px solid var(--x-line);border-radius:var(--r-sm)}
body.ex-ai-mode .co-check.fail{border-left:3px solid var(--x-warn)}
body.ex-ai-mode[data-ai-theme] .cx .co-input.ready small{color:var(--x-down);background:var(--x-down-soft);border-color:var(--x-line)}
/* 对应 PowerX .x-check .ok：白色对勾 + 亮绿圆底，不用亮绿字。 */
body.ex-ai-mode[data-ai-theme] .cx .co-check.pass i{color:var(--ai-white);background:var(--x-ok-bright);border-color:var(--x-ok-bright)}
body.ex-ai-mode[data-ai-theme] .cx :is(.co-input:is(.missing,.reference) small,.co-check.fail i){color:var(--x-warn);background:var(--x-warn-soft);border-color:var(--x-line)}
body.ex-ai-mode [data-ai-source]{--source-ink:var(--x-sub);--source-bg:var(--x-line2)}
body.ex-ai-mode [data-ai-source=actual]{--source-ink:var(--x-down);--source-bg:var(--x-down-soft)}
body.ex-ai-mode :is([data-ai-source=estimate],[data-ai-source=model]){--source-ink:var(--x-brand-ink);--source-bg:var(--x-brand-soft)}
body.ex-ai-mode [data-ai-source=reference]{--source-ink:var(--x-warn);--source-bg:var(--x-warn-soft)}
body.ex-ai-mode[data-ai-theme] :is(.cx,.modal) :is(.cx-pill,.cd-badge)[data-ai-source]{background:var(--source-bg);color:var(--source-ink);border:0;box-shadow:none}
body.ex-ai-mode .cd-kpi{--kpi-ink:var(--x-brand-ink);--kpi-bg:var(--x-brand-soft)}
body.ex-ai-mode .cd-kpi[data-kpi=spot]{--kpi-ink:var(--x-down);--kpi-bg:var(--x-down-soft)}
body.ex-ai-mode .cd-kpi[data-kpi=spread]{--kpi-ink:var(--x-warn);--kpi-bg:var(--x-warn-soft)}
body.ex-ai-mode .cd-kpi .cd-kpi-label>.i{box-sizing:content-box;padding:var(--space-4);border-radius:6px;color:var(--kpi-ink);background:var(--kpi-bg);border:0;flex:none}
body.ex-ai-mode .cx-revenue-title>span:first-child{color:var(--x-text);font-weight:600}
body.ex-ai-mode .cx-revenue-title .i{color:var(--x-down);background:var(--x-down-soft);padding:var(--space-4);box-sizing:content-box;border-radius:6px}
body.ex-ai-mode .cx-revenue.blue .cx-revenue-title .i{color:var(--x-brand-ink);background:var(--x-brand-soft)}
body.ex-ai-mode :is(.cd-extrema>div>span,.co-timeline>div>span){color:var(--x-text)}
body.ex-ai-mode .ai-marker{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;color:var(--ai-white);background:var(--x-down);font-size:var(--text-caption);font-weight:600}
body.ex-ai-mode .ai-marker.high{background:var(--x-up)}
body.ex-ai-mode .cd-extrema>div>span.ai-marker{color:var(--ai-white)}
body.ex-ai-mode .cx-chart-legend i{background:var(--x-down)}
body.ex-ai-mode .cx-chart-legend i.orange{background:var(--x-up)}
body.ex-ai-mode .cx-chart-legend i.blue{background:var(--c1)}
body.ex-ai-mode :is(.co-hour-strip .charge i,.co-timeline i.charge){background:var(--x-down)}
body.ex-ai-mode :is(.co-hour-strip .discharge i,.co-timeline i.discharge){background:var(--x-up)}
body.ex-ai-mode .co-input-dot{background:var(--x-warn);box-shadow:0 0 0 4px var(--x-warn-soft)}
body.ex-ai-mode .co-input.ready .co-input-dot{background:var(--x-ok-bright);box-shadow:0 0 0 4px var(--x-down-soft)}
body.ex-ai-mode :is(.cx-live i,.cx-station-label i){background:var(--x-ok-bright);box-shadow:none}
body.ex-ai-mode .cd-insights li::before{background:var(--x-mute)}
body.ex-ai-mode .fa-banner{--fa-ink:var(--x-brand);--fa-peer:var(--x-down)}
body.ex-ai-mode .fa-banner[data-stage-art=validate]{--fa-ink:var(--x-down)}
body.ex-ai-mode :is(.fa-chip,.fa-fact,.fa-next){border-color:var(--x-line);box-shadow:var(--ai-surface-shadow)}
body.ex-ai-mode .fa-illustration{stroke-width:2}
body.ex-ai-mode .fa-stop-top{stop-color:color-mix(in srgb,var(--fa-ink) 40%,var(--x-panel))}
body.ex-ai-mode .fa-stop-bottom{stop-color:color-mix(in srgb,var(--fa-ink) 18%,var(--x-panel))}
body.ex-ai-mode .fa-stop-light{stop-color:color-mix(in srgb,var(--fa-ink) 54%,var(--x-panel))}
body.ex-ai-mode :is(.fa-grid,.fa-wire){opacity:.5}
/* 场景保留三维材质，叠加的信息板与其他信息使用相同文字、面板色。 */
body.ex-ai-mode .cd-station .cx-hero-heading{background:var(--x-panel);padding:var(--space-4);border-radius:var(--r-sm)}
body.ex-ai-mode .cd-station :is(.cx-scene-stats,.cx-art-label){background:var(--x-panel);color:var(--x-sub)}
body.ex-ai-mode .cd-station :is(.cx-hero-heading h2,.cx-scene-stats strong){color:var(--x-text)}
body.ex-ai-mode .cd-station :is(.cx-hero-heading p,.cx-hero-heading .cx-eyebrow,.cx-scene-stats small,.cx-scene-stats span){color:var(--x-sub)}
body.ex-ai-mode .cd-ai-orb{background:var(--x-brand);color:var(--ai-white)}
body.ex-ai-mode .cd-kpi[data-kpi]{background:var(--x-panel);border-color:var(--x-line)}
body.ex-ai-mode .cd-kpi .cd-kpi-value{color:var(--x-text)}
body.ex-ai-mode .cd-station .cx-hero-heading .cx-station-label{color:var(--x-sub)}
body.ex-ai-mode .cd-station .cx-scene-stats :is(small,span){color:var(--x-sub)}
body.ex-ai-mode .cd-station :is(.cx-art-label,.cx-scene-stats){border-color:var(--x-line)}
body.ex-ai-mode :is(.cx-soc-ring,.co-soc-ring){background:conic-gradient(var(--x-down) var(--soc,0%),var(--x-line2) 0)}
body.ex-ai-mode .cx-hero-heading{background:var(--x-panel);border-radius:var(--r-sm)}
body.ex-ai-mode .cx-hero-heading :is(h2,.cx-brand-x){color:var(--x-text)}
body.ex-ai-mode .cx-hero-heading :is(p,.cx-eyebrow,.cx-station-label){color:var(--x-sub)}
body.ex-ai-mode .cx-scene-stats{background:var(--x-panel);border-color:var(--x-line)}
body.ex-ai-mode .cx-scene-stats strong{color:var(--x-text)}
body.ex-ai-mode .cx-scene-stats :is(small,span,p,b){color:var(--x-sub)}
body.ex-ai-mode .cx-scene-stats .cx-soc-ring>span{background:var(--x-panel);color:var(--x-text)}
body.ex-ai-mode .sb-foot .dot{background:var(--x-ok-bright);box-shadow:none}

body.ex-ai-mode :is(.cx-pill.green,.cd-badge.teal,.cx-card-title .cx-icon:not(.blue)){color:var(--x-down);background:var(--x-down-soft);border-color:var(--x-line)}
body.ex-ai-mode .cx-card-title .cx-icon.blue{color:var(--x-brand-ink);background:var(--x-brand-soft);border-color:var(--x-line)}
