:root {
  --bg: #f3f5f7;
  --surface: #ffffff;
  --surface-2: #f8fafb;
  --ink: #17202a;
  --muted: #6c7783;
  --line: #dfe4e8;
  --line-strong: #c7d0d7;
  --blue: #2468e5;
  --blue-soft: #edf4ff;
  --green: #179c68;
  --green-soft: #eaf8f2;
  --amber: #d48617;
  --amber-soft: #fff7e8;
  --red: #df4453;
  --red-soft: #fff0f1;
  --font: "Avenir Next", "PingFang SC", "Microsoft YaHei", sans-serif;
  --mono: "SFMono-Regular", "Roboto Mono", monospace;
}

* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; background: var(--bg); }
body { color: var(--ink); font: 14px/1.45 var(--font); }
button, textarea { color: inherit; font: inherit; }
button { cursor: pointer; }

.topbar { height: 58px; display: grid; grid-template-columns: 255px 1fr 260px; align-items: stretch; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.98); }
.brand-block { display: flex; align-items: center; gap: 11px; padding: 0 18px; }
.brand-mark { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 9px; color: #fff; background: #17202a; font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.brand-block strong { display: block; font-size: 15px; }
.brand-block small { display: block; margin-top: 2px; color: var(--muted); font-size: 9px; }
.business-nav { display: flex; align-items: stretch; gap: 4px; }
.business-nav button { position: relative; padding: 0 16px; border: 0; color: #66717c; background: transparent; font-size: 12px; }
.business-nav button:hover { color: var(--blue); background: #f7faff; }
.business-nav button:focus-visible, .workflow-step:focus-visible, .city-point:focus-visible, .map-region-button:focus-visible, .map-province:focus-visible, .priority-row:focus-visible { outline: 2px solid rgba(36,104,229,.45); outline-offset: -2px; }
.business-nav button.is-active { color: var(--ink); font-weight: 700; }
.business-nav button.is-active::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 0; height: 3px; background: var(--blue); }
.business-nav button:disabled, .workflow-step:disabled { cursor: wait; opacity: .58; }
.system-meta { display: flex; align-items: center; justify-content: flex-end; gap: 14px; padding: 0 18px; }
.system-meta > div { min-width: 75px; }
.system-meta strong { display: block; font: 12px var(--mono); }
.system-meta small { display: block; margin-top: 2px; color: var(--muted); font-size: 8px; }
.model-status { display: inline-flex; align-items: center; gap: 6px; padding: 5px 8px; border: 1px solid #bce3d3; border-radius: 6px; color: var(--green); background: var(--green-soft); font-size: 9px; white-space: nowrap; }
.model-status[hidden] { display: none; }
.model-status i { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.model-status b { font-weight: 600; }
.model-status.is-checking { color: var(--amber); border-color: #eed9b5; background: var(--amber-soft); }
.model-status.is-offline { color: var(--red); border-color: #f0c3c7; background: var(--red-soft); }
.model-status.is-demo { color: var(--blue); border-color: #bfd0ef; background: var(--blue-soft); }

.contextbar { height: 38px; display: flex; align-items: center; gap: 7px; padding: 0 18px; border-bottom: 1px solid var(--line); background: #fff; }
.context-label { margin-left: 10px; color: #88929a; font-size: 8px; }
.context-label:first-child { margin-left: 0; }
.context-value { padding: 2px 0; color: #48545e; border-bottom: 1px solid #d9dfe3; font-size: 9px; }
.scope-control { position: relative; }
.scope-trigger { display: inline-flex; align-items: center; gap: 6px; padding: 3px 6px; border: 1px solid var(--line-strong); border-radius: 4px; color: #35414b; background: #fff; font-size: 9px; }
.scope-trigger:hover, .scope-trigger[aria-expanded="true"] { color: var(--blue); border-color: #9db7e8; background: var(--blue-soft); }
.scope-trigger:disabled { color: #35414b; border-color: var(--line-strong); background: #fff; cursor: default; }
.scope-trigger:disabled i { display: none; }
.scope-trigger i { width: 0; height: 0; border-top: 4px solid currentColor; border-right: 3px solid transparent; border-left: 3px solid transparent; }
.scope-menu { position: absolute; z-index: 30; top: calc(100% + 5px); left: 0; min-width: 178px; padding: 4px; border: 1px solid var(--line-strong); border-radius: 6px; background: #fff; box-shadow: 0 10px 24px rgba(21, 35, 48, .14); }
.scope-menu[hidden] { display: none; }
.scope-menu button { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 7px 8px; border: 0; border-radius: 4px; color: #46525c; background: transparent; text-align: left; font-size: 9px; }
.scope-menu button:hover, .scope-menu button.is-active { color: var(--blue); background: var(--blue-soft); }
.scope-menu button small { color: #89939b; font-size: 7px; }
.context-spacer { flex: 1; }

.public-boundary { min-height: 34px; display: flex; align-items: center; gap: 9px; padding: 6px 18px; color: #4a5965; border-bottom: 1px solid #cbd8ec; background: #f3f7ff; font-size: 8px; line-height: 1.45; }
.public-boundary strong { flex: 0 0 auto; color: var(--blue); font-size: 8px; }

.workflow { height: 44px; display: grid; grid-template-columns: 118px repeat(5, minmax(106px, 142px)) 1fr; align-items: center; padding: 0 18px; border-bottom: 1px solid var(--line); background: #fbfcfd; }
.workflow-label { color: #87919a; font-size: 9px; }
.workflow-step { height: 28px; padding: 0 10px; border: 0; border-left: 1px solid var(--line); color: #6d7881; background: transparent; text-align: left; font-size: 10px; }
.workflow-step span { display: inline-grid; place-items: center; width: 18px; height: 18px; margin-right: 6px; border: 1px solid var(--line-strong); border-radius: 50%; font: 8px var(--mono); }
.workflow-step.is-active { color: var(--blue); font-weight: 700; }
.workflow-step.is-active span { color: #fff; border-color: var(--blue); background: var(--blue); }
.workflow-step.is-complete span { color: var(--green); border-color: var(--green); background: var(--green-soft); }
.workflow-boundary { justify-self: end; color: #8b959d; font-size: 8px; }
.workflow.is-market { grid-template-columns: 118px minmax(0, 1fr) auto; }
.workflow.is-market .workflow-step { display: none; }
.market-workflow { display: flex; align-items: center; gap: 15px; color: #4d5a64; font-size: 9px; }
.market-workflow[hidden] { display: none; }
.market-workflow span { font-weight: 650; }
.market-workflow i { color: var(--blue); font-style: normal; }

.shell { height: calc(100vh - 174px); display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 1px; background: var(--line); }
.workspace, .copilot { min-height: 0; background: var(--surface); }
.workspace { overflow: auto; padding: 16px 18px 20px; background: var(--bg); }
.copilot { display: grid; grid-template-rows: auto auto minmax(115px, 1fr) auto; }

.copilot-head { display: flex; align-items: flex-start; justify-content: space-between; padding: 14px 16px 12px; border-bottom: 1px solid var(--line); }
.copilot-actions { display: flex; align-items: center; gap: 6px; }
.copilot-toggle { padding: 4px 7px; border: 1px solid #b9c9e4; border-radius: 5px; color: var(--blue); background: #fff; font-size: 8px; }
.copilot-toggle[hidden] { display: none; }
.eyebrow, .scene-kicker { display: block; color: var(--blue); font: 8px var(--mono); font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.copilot-head h2 { margin: 5px 0 0; font-size: 14px; }
.scope-pill { padding: 4px 7px; border-radius: 5px; color: var(--blue); background: var(--blue-soft); font-size: 8px; }
.trace-zone { padding: 10px 14px; border-bottom: 1px solid var(--line); background: var(--surface-2); }
.zone-label { display: flex; justify-content: space-between; margin-bottom: 7px; color: var(--muted); font-size: 8px; }
.trace-list { display: grid; gap: 4px; }
.trace-empty { color: #929ba2; font-size: 9px; }
.trace-item { display: grid; grid-template-columns: 94px 1fr auto; align-items: center; gap: 7px; min-height: 24px; padding: 4px 6px; border: 1px solid var(--line); border-radius: 4px; background: #fff; }
.trace-item code { color: var(--blue); font: 8px var(--mono); }
.trace-item span { overflow: hidden; color: #505c65; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.trace-item b { color: var(--green); font-size: 8px; }
.trace-item.is-running b { color: var(--amber); }
.conversation { min-height: 0; overflow: auto; padding: 13px 15px; }
.welcome { display: grid; grid-template-columns: 25px 1fr; gap: 8px; color: #5b6670; font-size: 10px; line-height: 1.55; }
.welcome p { margin: 0; }
.ai-mark { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 5px; color: #fff; background: var(--blue); font: 8px var(--mono); }
.user-message { width: fit-content; max-width: 90%; margin: 0 0 10px auto; padding: 8px 10px; border-radius: 6px 6px 0 6px; color: #fff; background: #25313b; font-size: 10px; line-height: 1.5; }
.answer { padding: 11px 0 13px; border-top: 1px solid var(--line); }
.answer h3 { margin: 0 0 7px; font-size: 12px; line-height: 1.4; }
.answer p { margin: 5px 0; color: #4e5962; font-size: 9px; line-height: 1.55; }
.answer ul { margin: 6px 0; padding-left: 17px; color: #4e5962; font-size: 9px; line-height: 1.55; }
.answer-boundary { padding: 7px 8px; border-left: 3px solid var(--amber); background: var(--amber-soft); color: #76521f !important; }
.answer-next { color: var(--blue) !important; }
.answer-error { padding: 9px 10px; border: 1px solid #efc0c5; border-radius: 5px; color: #8b2631; background: var(--red-soft); font-size: 9px; line-height: 1.55; }
.model-running { display: flex; align-items: center; gap: 8px; padding: 10px 0; color: var(--muted); font-size: 9px; }
.model-running i { width: 8px; height: 8px; border: 2px solid #b6c7ea; border-top-color: var(--blue); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.evidence-links { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 8px; }
.evidence-link { padding: 3px 6px; border: 1px solid #bfd0ef; border-radius: 4px; color: var(--blue); background: var(--blue-soft); font: 8px var(--mono); }
.question-zone { padding: 10px 12px 11px; border-top: 1px solid var(--line); background: var(--surface-2); }
.suggestions { display: flex; gap: 5px; margin-bottom: 6px; overflow-x: auto; }
.suggestion { flex: 0 0 auto; padding: 4px 7px; border: 1px solid var(--line-strong); border-radius: 4px; background: #fff; color: #59656e; font-size: 8px; }
.suggestion:disabled, .composer textarea:disabled { color: #8c969e; background: #f1f3f4; cursor: not-allowed; }
.composer { display: grid; grid-template-columns: 1fr 50px; overflow: hidden; border: 1px solid #aeb8c0; border-radius: 5px; background: #fff; }
.composer textarea { min-height: 46px; padding: 8px 9px; resize: none; border: 0; outline: 0; background: transparent; font-size: 10px; }
.composer button { border: 0; color: #fff; background: var(--blue); font-size: 9px; font-weight: 700; }
.composer button:disabled { color: #eef1f3; background: #9ba6ae; cursor: not-allowed; opacity: 1; }
.composer-foot { display: flex; justify-content: space-between; margin-top: 5px; color: #8a949c; font-size: 7px; }
.composer-foot button { padding: 0; border: 0; color: var(--blue); background: transparent; font-size: 7px; }

.scene { min-height: 100%; }
.scene-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 11px; }
.scene-title { margin: 5px 0 2px; font-size: 20px; line-height: 1.25; letter-spacing: -.02em; }
.scene-subtitle { max-width: 740px; margin: 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.scene-stamp { flex: 0 0 auto; padding: 5px 7px; border: 1px solid #bcd0f4; border-radius: 5px; color: var(--blue); background: var(--blue-soft); font-size: 8px; }
.panel { border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.panel-head { display: flex; align-items: baseline; justify-content: space-between; padding: 9px 11px; border-bottom: 1px solid var(--line); }
.panel-head strong { font-size: 10px; }
.panel-head span { color: var(--muted); font: 7px var(--mono); }

.health-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; margin-bottom: 9px; }
.health-card { padding: 8px 10px; border: 1px solid var(--line); border-left: 3px solid var(--green); border-radius: 6px; background: #fff; }
.health-card.is-warn { border-left-color: var(--amber); }
.health-card span { display: block; color: var(--muted); font-size: 7px; }
.health-card strong { display: block; margin: 2px 0; font: 13px var(--mono); }
.health-card small { display: block; overflow: hidden; color: #76818a; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.overview-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; margin-bottom: 9px; }
.overview-metric { position: relative; min-width: 0; padding: 9px 10px 8px; overflow: hidden; border: 1px solid var(--line); border-top: 2px solid #8d99a3; border-radius: 6px; background: #fff; }
.overview-metric.is-positive { border-top-color: var(--green); }
.overview-metric.is-risk { border-top-color: var(--red); }
.overview-metric.is-warn { border-top-color: var(--amber); }
.overview-metric span, .overview-metric small { display: block; overflow: hidden; color: var(--muted); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.overview-metric strong { display: inline-block; margin: 3px 5px 2px 0; color: var(--ink); font: 15px var(--mono); }
.overview-metric b { font: 7px var(--mono); }
.overview-metric.is-positive b { color: var(--green); }
.overview-metric.is-risk b { color: var(--red); }
.overview-metric.is-warn b { color: var(--amber); }
.overview-top-grid { display: grid; grid-template-columns: minmax(420px, 1.15fr) minmax(420px, .85fr); gap: 9px; margin-bottom: 9px; }
.trend-panel { min-height: 298px; }
.trend-summary { display: grid; grid-template-columns: repeat(3, auto) 1fr; gap: 18px; align-items: end; padding: 9px 12px 2px; }
.trend-summary span { display: block; color: var(--muted); font-size: 7px; }
.trend-summary b { display: block; margin-top: 2px; color: var(--ink); font: 11px var(--mono); }
.chart-legend { justify-self: end; color: var(--muted); font-size: 7px; white-space: nowrap; }
.chart-legend i { display: inline-block; width: 14px; height: 2px; margin: 0 4px 2px 8px; background: var(--blue); }
.chart-legend i:nth-child(2) { background: #9aa5ad; border-top: 1px dashed #9aa5ad; }
.trend-chart { padding: 0 10px 7px; }
.trend-chart svg { display: block; width: 100%; height: 174px; overflow: visible; }
.chart-grid line { stroke: #e6eaed; stroke-width: 1; }
.trend-area { fill: rgba(36,104,229,.08); }
.actual-line, .target-line { fill: none; vector-effect: non-scaling-stroke; }
.actual-line { stroke: var(--blue); stroke-width: 2.2; }
.target-line { stroke: #9ca7af; stroke-width: 1.3; stroke-dasharray: 5 4; }
.actual-dot { fill: #fff; stroke: var(--blue); stroke-width: 1.5; }
.trend-axis { display: flex; justify-content: space-between; padding: 0 17px; color: var(--muted); font: 7px var(--mono); }
.dashboard-grid { display: grid; grid-template-columns: minmax(460px, 1.25fr) minmax(390px, 1fr); gap: 9px; }
.region-selector { display: flex; align-items: center; gap: 5px; margin-bottom: 9px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.region-selector strong { margin-right: 4px; color: var(--muted); font-size: 8px; }
.region-selector button { padding: 5px 10px; border: 1px solid var(--line); border-radius: 4px; color: #4f5b64; background: var(--surface-2); font-size: 8px; cursor: pointer; }
.region-selector button:hover, .region-selector button:focus-visible { border-color: var(--blue); outline: 0; }
.region-selector button.is-active { color: #fff; border-color: var(--blue); background: var(--blue); }
.region-selection-metrics { margin-bottom: 9px; }
.china-map-panel { min-height: 298px; overflow: hidden; }
.china-map-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 148px; min-height: 252px; }
.china-map-canvas { position: relative; min-height: 252px; overflow: hidden; background: linear-gradient(180deg, #f8fbfd, #f3f6f8); }
.china-map-canvas svg { position: absolute; inset: 4px 5px; width: calc(100% - 10px); height: calc(100% - 8px); filter: drop-shadow(0 2px 2px rgba(45, 61, 74, .06)); }
.map-province { transition: opacity .18s ease, filter .18s ease; vector-effect: non-scaling-stroke; }
.map-province.has-region { cursor: pointer; }
.map-province.has-region:hover, .map-province.has-region:focus { filter: saturate(1.28) brightness(.97); stroke: #8ea3b4; stroke-width: 1.2; }
.map-province.is-dimmed { opacity: .22; }
.city-point { position: absolute; z-index: 3; width: 16px; height: 16px; padding: 0; border: 0; transform: translate(-50%, -50%); background: transparent; }
.city-point i { position: absolute; left: 4px; top: 4px; width: 8px; height: 8px; border: 2px solid #fff; border-radius: 50%; background: var(--region-color); box-shadow: 0 0 0 1px var(--region-color), 0 2px 5px rgba(21, 33, 43, .22); }
.city-point span { position: absolute; display: none; left: 13px; top: -2px; padding: 2px 4px; border: 1px solid color-mix(in srgb, var(--region-color) 34%, #fff); border-radius: 3px; color: #26323b; background: rgba(255,255,255,.96); box-shadow: 0 2px 5px rgba(22,35,49,.09); font-size: 7px; font-weight: 700; white-space: nowrap; pointer-events: none; }
.city-point span small { margin-left: 3px; color: var(--muted); font-size: 6px; font-weight: 400; }
.city-point.show-label span, .city-point:hover span, .city-point:focus-visible span { display: block; }
.city-point:hover { z-index: 7; }
.city-point.is-dimmed { opacity: .22; }
.map-loading { display: grid; place-items: center; min-height: 252px; color: var(--muted); background: var(--surface-2); font-size: 8px; }
.map-region-list { display: grid; align-content: start; gap: 5px; padding: 7px; border-left: 1px solid var(--line); background: #fbfcfd; }
.map-region-button { display: grid; grid-template-columns: 8px 1fr auto; gap: 6px; align-items: start; min-width: 0; padding: 7px 6px; border: 1px solid transparent; border-radius: 5px; color: var(--ink); background: transparent; text-align: left; }
.map-region-button > i { width: 7px; height: 7px; margin-top: 2px; border-radius: 50%; background: var(--region-color); }
.map-region-button strong, .map-region-button span, .map-region-button small { display: block; }
.map-region-button strong { font-size: 8px; }
.map-region-button span { margin-top: 1px; color: #4e5a63; font: 7px var(--mono); }
.map-region-button small { max-width: 88px; margin-top: 2px; overflow: hidden; color: var(--muted); font-size: 6px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.map-region-button > b { padding: 2px 4px; border-radius: 3px; color: var(--region-color); background: var(--region-fill); font-size: 6px; }
.map-region-button:hover, .map-region-button.is-active { border-color: color-mix(in srgb, var(--region-color) 42%, #fff); background: var(--region-fill); }
.map-region-button.is-dimmed { opacity: .42; }

.market-scene { --market-accent: #a75524; }
.market-scene .scene-kicker { color: var(--market-accent); }
.market-scene .scene-stamp { color: #8f4b22; border-color: #e4c4af; background: #fff6ef; }
.market-subnav { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)); margin: 0 0 9px; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: #fff; }
.market-subnav button { position: relative; min-height: 50px; padding: 9px 13px; border: 0; border-right: 1px solid var(--line); color: #66717a; background: #fff; text-align: left; }
.market-subnav button:last-child { border-right: 0; }
.market-subnav button::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: transparent; }
.market-subnav button:hover { background: #fffaf6; }
.market-subnav button.is-active { color: #843e19; background: #fff8f2; }
.market-subnav button.is-active::after { background: #b85d2b; }
.market-subnav strong, .market-subnav span { display: block; }
.market-subnav strong { font-size: 10px; }
.market-subnav span { margin-top: 3px; color: var(--muted); font-size: 7px; }
.market-tab-body { min-height: 500px; }
.market-metrics { grid-template-columns: repeat(8, minmax(0, 1fr)); }
.market-metrics .overview-metric { border-top-color: #9a633d; }
.market-metrics .overview-metric.is-market-focus { border-top-color: #c55d26; }
.market-intelligence-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 9px; margin-bottom: 9px; }
.market-funnel, .market-format-mix, .market-city-table, .market-stores, .market-groups { overflow: hidden; }
.market-funnel-row { display: grid; grid-template-columns: minmax(170px, 1.2fr) minmax(120px, 1fr) 58px 48px; gap: 9px; align-items: center; min-height: 39px; padding: 6px 11px; border-top: 1px solid var(--line); }
.market-funnel-row > div strong, .market-funnel-row > div small { display: block; }
.market-funnel-row > div strong { font-size: 8px; }
.market-funnel-row > div small { margin-top: 3px; color: var(--muted); font-size: 7px; }
.market-funnel-row > span { height: 7px; overflow: hidden; border-radius: 5px; background: #f1e8e1; }
.market-funnel-row > span i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #b85d2b, #d99a6d); }
.market-funnel-row > b { text-align: right; font: 9px var(--mono); }
.market-funnel-row > em { color: #95502a; font: normal 7px var(--mono); text-align: right; }
.market-format-cols { display: grid; grid-template-columns: minmax(130px, 1.2fr) repeat(4, minmax(70px, .8fr)); gap: 8px; align-items: center; }
.market-overview-grid { display: grid; grid-template-columns: minmax(520px, 1.18fr) minmax(330px, .82fr); gap: 9px; margin-bottom: 9px; }
.market-map-panel { min-height: 318px; overflow: hidden; }
.market-map-body { display: grid; grid-template-columns: minmax(0, 1fr) 210px; min-height: 270px; }
.market-map-canvas { position: relative; min-height: 270px; background: linear-gradient(180deg, #fbfaf7, #f5f1eb); }
.market-map-canvas svg { position: absolute; inset: 5px 8px; width: calc(100% - 16px); height: calc(100% - 10px); filter: drop-shadow(0 2px 2px rgba(45,61,74,.05)); }
.market-map-province { vector-effect: non-scaling-stroke; transition: opacity .18s ease, filter .18s ease; }
.market-map-province.has-data { cursor: pointer; }
.market-map-province.has-data:hover, .market-map-province.has-data:focus { filter: saturate(1.22) brightness(.96); stroke: #8f6b53; stroke-width: 1.2; }
.market-map-province.is-selected { stroke: #7d3715; stroke-width: 1.8; }
.market-map-focus { padding: 15px 14px; border-left: 1px solid var(--line); background: #fcfaf7; }
.market-map-focus span { color: #986344; font-size: 8px; }
.market-map-focus h3 { margin: 6px 0 10px; font: 24px var(--mono); }
.market-map-focus p { margin: 0 0 14px; color: #56616a; font-size: 9px; line-height: 1.65; }
.market-map-focus dl { display: grid; grid-template-columns: 1fr auto; gap: 7px 10px; margin: 0; padding-top: 11px; border-top: 1px solid var(--line); font-size: 8px; }
.market-map-focus dt { color: var(--muted); }
.market-map-focus dd { margin: 0; font-weight: 700; }
.market-findings { overflow: hidden; }
.market-finding { display: grid; grid-template-columns: 28px 1fr; gap: 9px; padding: 12px 13px; border-top: 1px solid var(--line); }
.market-finding:first-of-type { border-top: 0; }
.market-finding > b { color: #b85d2b; font: 10px var(--mono); }
.market-finding strong { display: block; font-size: 10px; }
.market-finding p { margin: 5px 0; color: #59656e; font-size: 8px; line-height: 1.55; }
.market-finding small { color: #98735e; font-size: 7px; }
.market-province-table { margin-bottom: 9px; overflow: hidden; }
.market-province-cols { display: grid; grid-template-columns: 78px repeat(4, 72px) 72px 58px minmax(160px, 1fr) minmax(180px, 1.1fr); gap: 7px; align-items: center; }
.market-province-row { cursor: pointer; }
.market-province-row:hover, .market-province-row.is-selected { background: #fff8f2; }
.market-province-row.is-selected { box-shadow: inset 3px 0 0 #b85d2b; }
.market-region-layout { display: grid; grid-template-columns: minmax(600px, 1.3fr) minmax(390px, .7fr); gap: 9px; margin-bottom: 9px; }
.market-city-cols { display: grid; grid-template-columns: 70px 68px repeat(5, 42px) minmax(110px, 1fr) minmax(115px, 1fr); gap: 6px; align-items: center; min-width: 670px; }
.market-lower-grid { display: grid; grid-template-columns: minmax(650px, 1.25fr) minmax(330px, .75fr); gap: 9px; }
.market-store-cols { display: grid; grid-template-columns: minmax(155px, 1.3fr) 90px 86px 38px minmax(145px, 1.1fr) 62px 72px 80px minmax(130px, 1fr) 95px minmax(130px, 1fr); gap: 7px; align-items: center; min-width: 1220px; }
.market-group-cols { display: grid; grid-template-columns: minmax(160px, 1.3fr) 120px 100px repeat(4, 48px) 78px 60px 55px minmax(150px, 1fr); gap: 7px; align-items: center; min-width: 1110px; }
.market-stores, .market-groups { overflow-x: auto; }
.market-store-row, .market-group-row { cursor: pointer; }
.market-store-row:hover, .market-store-row:focus, .market-group-row:hover, .market-group-row:focus { outline: 0; background: #fff8f2; box-shadow: inset 3px 0 0 #b85d2b; }
.market-group-row { cursor: pointer; }
.market-group-row:hover { background: #f8fbff; }
.market-group-row strong small { display: block; margin-top: 2px; color: var(--muted); font-weight: 400; }
.market-filterbar { display: flex; align-items: end; gap: 8px; margin-bottom: 9px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.market-filterbar label { display: grid; gap: 3px; color: var(--muted); font-size: 7px; }
.market-filterbar label.is-search { flex: 1; }
.market-filterbar select, .market-filterbar input { min-width: 112px; height: 29px; padding: 0 8px; border: 1px solid var(--line-strong); border-radius: 5px; color: var(--ink); background: #fff; font-size: 8px; }
.market-filterbar input { width: 100%; }
.market-filterbar button { height: 29px; padding: 0 12px; border: 1px solid #deb69d; border-radius: 5px; color: #88451f; background: #fff8f2; font-size: 8px; cursor: pointer; }
.market-empty { padding: 28px; color: var(--muted); font-size: 9px; text-align: center; }
.market-dialog-members { margin-top: 12px; overflow: hidden; border: 1px solid var(--line); border-radius: 6px; }
.market-dialog-members h4 { margin: 0; padding: 8px 10px; border-bottom: 1px solid var(--line); font-size: 9px; }
.market-dialog-member { display: grid; grid-template-columns: 1.3fr .7fr .8fr .8fr; gap: 8px; padding: 7px 10px; border-top: 1px solid var(--line); font-size: 7px; }
.market-dialog-member:first-of-type { border-top: 0; }
.market-sources { overflow: hidden; }
.market-source-row { padding: 10px 11px; border-top: 1px solid var(--line); }
.market-source-row strong { display: block; font-size: 9px; }
.market-source-row p { margin: 4px 0; color: #59656e; font-size: 8px; }
.market-source-row small { color: var(--muted); font-size: 7px; }
.market-source-actions { display: flex; gap: 5px; padding: 9px 11px; border-top: 1px solid var(--line); background: var(--surface-2); }
.market-source-actions button { padding: 4px 7px; border: 1px solid #e1bda6; border-radius: 4px; color: #9a4e24; background: #fff8f2; font: 7px var(--mono); }
.market-tab-summary, .market-stage-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 9px; }
.market-tab-summary article, .market-stage-summary article { min-height: 74px; padding: 11px 13px; border: 1px solid var(--line); border-top: 3px solid #c77749; border-radius: 7px; background: #fff; }
.market-tab-summary span, .market-stage-summary span { display: block; color: var(--muted); font-size: 7px; }
.market-tab-summary strong, .market-stage-summary strong { display: block; margin-top: 5px; font: 20px var(--mono); }
.market-tab-summary small, .market-stage-summary small { display: block; margin-top: 4px; color: #76553f; font-size: 7px; }
.market-group-layout { display: grid; grid-template-columns: minmax(690px, 1.45fr) minmax(280px, .55fr); gap: 9px; }
.market-object-model { overflow: hidden; }
.market-object-model ol { margin: 0; padding: 0; list-style: none; }
.market-object-model li { display: grid; grid-template-columns: 28px 1fr; gap: 8px; min-height: 69px; padding: 11px 12px; border-top: 1px solid var(--line); }
.market-object-model li > b { color: #b85d2b; font: 9px var(--mono); }
.market-object-model li strong { font-size: 9px; }
.market-object-model li p { margin: 4px 0 0; color: var(--muted); font-size: 7px; line-height: 1.5; }
.market-source-layout { display: grid; grid-template-columns: 1fr; gap: 9px; }
.market-method-panel { overflow: hidden; }
.market-method-flow { display: grid; grid-template-columns: repeat(5, 1fr); min-height: 230px; }
.market-method-flow article { padding: 18px 13px; border-right: 1px solid var(--line); }
.market-method-flow article:last-child { border-right: 0; }
.market-method-flow b { color: #b85d2b; font: 9px var(--mono); }
.market-method-flow strong { display: block; margin-top: 16px; font-size: 10px; }
.market-method-flow p { margin: 7px 0 0; color: var(--muted); font-size: 8px; line-height: 1.6; }
.market-privacy-note { margin: 10px 12px 12px; padding: 12px 14px; border: 1px solid #e7c0aa; border-left: 4px solid #b85d2b; border-radius: 6px; background: #fff8f2; }
.market-privacy-note strong { color: #8d421c; font-size: 9px; }
.market-privacy-note p { margin: 4px 0 0; color: #6f5749; font-size: 8px; line-height: 1.6; }
.market-source-disclosure { overflow: hidden; }
.market-source-disclosure summary { display: flex; align-items: center; justify-content: space-between; min-height: 54px; padding: 10px 13px; cursor: pointer; list-style: none; }
.market-source-disclosure summary::-webkit-details-marker { display: none; }
.market-source-disclosure summary div strong, .market-source-disclosure summary div span { display: block; }
.market-source-disclosure summary div strong { font-size: 9px; }
.market-source-disclosure summary div span { margin-top: 4px; color: var(--muted); font-size: 7px; }
.market-source-disclosure summary > b { color: #9a4e24; font-size: 8px; }
.market-source-disclosure[open] summary { border-bottom: 1px solid var(--line); background: #fff8f2; }
.market-source-disclosure[open] summary > b { font-size: 0; }
.market-source-disclosure[open] summary > b::after { content: "收起 ↑"; font-size: 8px; }
.market-source-content { display: grid; grid-template-columns: repeat(5, 1fr); }
.market-source-content .market-source-row { border-top: 0; border-right: 1px solid var(--line); }
.market-source-content .market-source-row:last-child { border-right: 0; }
.priority-table { min-height: 298px; }
.priority-head, .priority-row { display: grid; grid-template-columns: 28px 1.35fr .75fr .78fr 58px; gap: 7px; align-items: center; }
.priority-head { min-height: 28px; padding: 0 10px; color: #89939b; background: var(--surface-2); font-size: 7px; }
.priority-row { min-height: 70px; padding: 8px 10px; border-top: 1px solid var(--line); cursor: pointer; }
.priority-row:hover { background: #f8fbff; }
.priority-rank { color: var(--blue); font: 11px var(--mono); }
.priority-main strong { display: block; font-size: 10px; }
.priority-main span { display: block; margin-top: 3px; color: var(--muted); font-size: 7px; }
.priority-cell span { display: block; color: #89939b; font-size: 7px; }
.priority-cell b { display: block; margin-top: 3px; font-size: 8px; }
.priority-cell.is-risk b { color: var(--red); }
.confidence { width: fit-content; padding: 4px 6px; border-radius: 4px; color: var(--green); background: var(--green-soft); font-size: 8px; }
.region-focus { min-height: 298px; }
.region-focus-body { padding: 20px; }
.region-focus-signal { color: var(--muted); font-size: 8px; }
.region-focus h3 { margin: 7px 0 10px; font-size: 22px; }
.region-focus p { margin: 0; color: #4f5b64; font-size: 10px; line-height: 1.7; }
.region-focus-actions { display: flex; gap: 7px; margin: 20px 0 12px; }
.region-focus-actions button { padding: 7px 10px; border: 1px solid var(--line-strong); border-radius: 5px; color: var(--ink); background: #fff; font-size: 8px; cursor: pointer; }
.region-focus-actions button.is-primary { color: #fff; border-color: var(--blue); background: var(--blue); }
.region-focus-body > small { color: var(--muted); font-size: 8px; line-height: 1.5; }
.scope-change { margin: 8px 4px; padding: 6px 8px; color: #5e6a73; border-left: 2px solid var(--blue); background: #f2f6ff; font-size: 8px; }

.object-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.object-header h3 { margin: 0 0 3px; font-size: 15px; }
.object-header p { margin: 0; color: var(--muted); font-size: 8px; }
.tag-row { display: flex; gap: 5px; }
.tag { padding: 4px 6px; border-radius: 4px; color: var(--red); background: var(--red-soft); font-size: 7px; }
.metric-strip { display: grid; grid-template-columns: repeat(6, 1fr); gap: 7px; margin-bottom: 9px; }
.metric-card { padding: 9px 10px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.metric-card span { display: block; color: var(--muted); font-size: 7px; }
.metric-card strong { display: block; margin-top: 3px; font: 16px var(--mono); }
.metric-card.is-positive strong { color: var(--green); }
.metric-card.is-risk strong { color: var(--red); }
.diagnosis-grid { display: grid; grid-template-columns: .62fr 1.02fr .86fr; gap: 9px; margin-bottom: 9px; }
.quality-body { padding: 13px; }
.quality-score strong { color: var(--green); font: 30px var(--mono); }
.quality-score span { margin-left: 5px; color: var(--muted); font-size: 8px; }
.quality-body p { color: var(--muted); font-size: 8px; line-height: 1.55; }
.source-mini { display: grid; gap: 4px; margin-top: 12px; }
.source-mini div { display: flex; justify-content: space-between; padding: 5px 6px; border-radius: 4px; background: var(--surface-2); font-size: 7px; }
.source-mini b { color: var(--green); }
.bridge-list { padding: 7px 11px 8px; }
.bridge-row { display: grid; grid-template-columns: 94px 1fr 54px 36px; gap: 7px; align-items: center; min-height: 31px; }
.bridge-row span { font-size: 8px; }
.bridge-track { height: 6px; background: #eef1f3; }
.bridge-fill { height: 100%; background: var(--blue); }
.bridge-row.is-unknown .bridge-fill { background: var(--amber); }
.bridge-row b { color: var(--red); text-align: right; font: 8px var(--mono); }
.bridge-row small { color: var(--muted); font-size: 7px; }
.method-note { margin: 3px 11px 10px; color: var(--muted); font-size: 7px; line-height: 1.5; }
.funnel-list { padding: 9px 10px 8px; }
.funnel-row { display: grid; grid-template-columns: 1fr 42px 48px; gap: 7px; align-items: center; min-height: 37px; }
.funnel-bar { display: flex; align-items: center; justify-content: space-between; min-width: 128px; height: 25px; padding: 0 7px; border-left: 3px solid var(--blue); background: linear-gradient(90deg, #e7efff, #f4f7fb); }
.funnel-bar strong, .funnel-bar span, .funnel-row b, .funnel-row small { font-size: 7px; }
.funnel-bar span { color: var(--muted); }
.funnel-row b { text-align: right; font-family: var(--mono); }
.funnel-row small { text-align: right; }

.region-comparison, .store-ranking, .category-comparison, .sku-risk, .source-registry, .scenario-segments, .responsibility-table { margin-top: 9px; overflow-x: auto; }
.dense-head, .dense-row { align-items: center; min-width: 760px; }
.dense-head { display: grid; min-height: 28px; padding: 0 10px; color: #7c8891; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--surface-2); font-size: 7px; }
.dense-row { display: grid; min-height: 35px; padding: 0 10px; border-bottom: 1px solid var(--line); background: #fff; }
.dense-row:last-child { border-bottom: 0; }
.dense-row:nth-child(2n+1) { background: #fbfcfd; }
.dense-row[role="button"] { cursor: pointer; }
.dense-row[role="button"]:hover, .dense-row[role="button"]:focus { outline: 0; background: #f3f7ff; box-shadow: inset 3px 0 0 var(--blue); }
.dense-row.region-row.is-selected { background: #edf3ff; box-shadow: inset 3px 0 0 var(--blue); }
.dense-row.is-alert { background: #fff8f7; }
.dense-row strong, .dense-row span, .dense-row b, .dense-row small { overflow: hidden; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.dense-row strong { font-size: 8px; }
.dense-row strong small { display: block; margin-top: 2px; color: var(--muted); font-weight: 400; }
.dense-row b { font-family: var(--mono); font-weight: 600; }
.region-cols { grid-template-columns: 1.1fr .45fr .75fr .7fr .7fr .7fr .58fr .58fr .68fr .78fr; gap: 8px; }
.store-cols { grid-template-columns: .9fr .8fr .62fr .58fr .58fr .75fr .58fr .58fr .9fr .7fr .6fr; gap: 7px; min-width: 990px; }
.category-cols { grid-template-columns: 1fr repeat(7, .7fr) .9fr; gap: 8px; min-width: 860px; }
.sku-cols { grid-template-columns: 1.15fr .8fr .62fr .62fr .62fr .72fr .75fr .8fr; gap: 8px; min-width: 810px; }
.source-cols { grid-template-columns: .8fr 1fr .72fr .72fr .82fr .58fr 1.15fr .86fr; gap: 8px; min-width: 850px; }
.segment-cols { grid-template-columns: 1.3fr .55fr .65fr .65fr .65fr .65fr 1.05fr; gap: 8px; min-width: 760px; }
.responsibility-cols { grid-template-columns: 1.2fr 1.05fr .9fr .8fr .75fr; gap: 9px; min-width: 720px; }
.state-badge { width: fit-content; max-width: 100%; padding: 3px 5px; border-radius: 4px; color: #6b531e; background: var(--amber-soft); }
.sku-evidence-bar { display: flex; align-items: center; gap: 5px; padding: 7px 10px; border-bottom: 1px solid var(--line); }
.sku-evidence-bar > span { margin-left: auto; color: var(--muted); font-size: 7px; }

.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 9px; }
.product-kpi { padding: 13px 14px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.product-kpi span { display: block; color: var(--muted); font-size: 8px; }
.product-kpi strong { display: block; margin: 4px 0 2px; font: 22px var(--mono); }
.product-kpi small { color: var(--muted); font-size: 7px; }
.product-kpi.is-risk strong { color: var(--red); }
.product-kpi.is-warn strong { color: var(--amber); }
.inventory-row { display: grid; grid-template-columns: 1.05fr .7fr .7fr .9fr 74px; gap: 9px; align-items: center; min-height: 54px; padding: 7px 11px; border-bottom: 1px solid var(--line); }
.inventory-row:last-child { border-bottom: 0; }
.inventory-row strong { font-size: 9px; }
.inventory-row span { color: var(--muted); font-size: 8px; }
.inventory-row b { color: var(--red); font: 9px var(--mono); }
.inventory-row small { width: fit-content; padding: 3px 5px; border-radius: 4px; color: var(--amber); background: var(--amber-soft); font-size: 7px; }

.profile-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 9px; }
.profile-card { padding: 12px; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.profile-card h3 { margin: 0 0 4px; font-size: 15px; }
.profile-card > p { margin: 0; color: var(--muted); font-size: 8px; }
.human-conclusion { margin-top: 10px; padding: 9px 10px; border-left: 3px solid var(--green); background: var(--green-soft); }
.human-conclusion span, .source-difference span { display: block; color: var(--muted); font-size: 7px; }
.human-conclusion strong { display: block; margin-top: 4px; font-size: 9px; line-height: 1.5; }
.source-difference { margin-top: 8px; padding: 9px 10px; border: 1px solid #f0d5a6; border-radius: 5px; background: var(--amber-soft); }
.source-difference p { margin: 4px 0 0; color: #6d542d; font-size: 8px; line-height: 1.5; }
.evidence-principles { display: grid; grid-template-columns: repeat(3, 1fr); margin-bottom: 9px; overflow: hidden; border: 1px solid #cfd9e9; border-radius: 7px; background: #f5f8ff; }
.evidence-principles article { min-height: 47px; padding: 8px 11px; border-right: 1px solid #d9e1ef; }
.evidence-principles article:last-child { border-right: 0; }
.evidence-principles b, .evidence-principles span { display: block; }
.evidence-principles b { color: var(--blue); font-size: 8px; }
.evidence-principles span { margin-top: 4px; color: #576570; font-size: 7px; line-height: 1.45; }
.conclusion-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 9px; }
.latest-conclusion-card, .context-panel { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.latest-conclusion-card { padding: 11px 12px; }
.latest-conclusion-card > header { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.latest-conclusion-card > header h3 { margin: 0; font-size: 13px; }
.latest-conclusion-card > header p { margin: 3px 0 0; color: var(--muted); font-size: 7px; }
.latest-conclusion-card > header > span { padding: 3px 6px; border-radius: 4px; color: #5e6a73; background: #eef1f3; font-size: 7px; }
.conclusion-state { margin-top: 8px; padding: 8px 9px; border-radius: 5px; }
.conclusion-state > div { display: flex; justify-content: space-between; gap: 9px; align-items: baseline; }
.conclusion-state span { font-size: 7px; font-weight: 700; }
.conclusion-state small { color: var(--muted); font-size: 6px; text-align: right; }
.conclusion-state strong { display: block; margin-top: 4px; font-size: 9px; line-height: 1.45; }
.conclusion-state.is-adopted { border: 1px solid #dce2e5; background: #f6f8f9; }
.conclusion-state.is-adopted span { color: #68747d; }
.conclusion-state.is-candidate { position: relative; border: 1px solid #bcd0fa; background: var(--blue-soft); }
.conclusion-state.is-candidate span { color: var(--blue); }
.conclusion-state.is-candidate b { display: inline-block; margin-top: 6px; padding: 3px 5px; border-radius: 4px; color: #72541e; background: var(--amber-soft); font-size: 7px; }
.conclusion-transition { display: grid; grid-template-columns: 1fr 16px 1fr; gap: 5px; align-items: center; padding: 5px 9px 0; color: var(--muted); font-size: 6px; text-align: center; }
.conclusion-transition i { color: var(--blue); font-style: normal; }
.conclusion-conflict { margin-top: 8px; padding-top: 7px; border-top: 1px dashed #cbd3d8; }
.conclusion-conflict > span { color: var(--amber); font-size: 7px; font-weight: 700; }
.conclusion-conflict p { margin: 3px 0 0; color: #53616b; font-size: 7px; line-height: 1.45; }
.conclusion-conflict small { display: block; margin-top: 3px; color: var(--muted); font-size: 6px; line-height: 1.4; }
.context-panel .panel-head { border-bottom: 1px solid var(--line); }
.context-record { display: grid; grid-template-columns: 54px 1fr 66px; gap: 7px; align-items: center; width: 100%; min-height: 64px; padding: 7px 9px; border: 0; border-bottom: 1px solid var(--line); color: var(--ink); background: #fff; text-align: left; cursor: pointer; }
.context-record:last-child { border-bottom: 0; }
.context-record:hover, .context-record:focus-visible { outline: 0; background: #f4f8ff; box-shadow: inset 3px 0 0 var(--blue); }
.context-type { width: fit-content; padding: 3px 5px; border-radius: 4px; color: var(--blue); background: var(--blue-soft); font-size: 7px; }
.context-record strong { display: block; font-size: 8px; }
.context-record p { margin: 3px 0; color: #56636d; font-size: 7px; line-height: 1.35; }
.context-record small { color: var(--muted); font-size: 6px; }
.context-record > b { color: var(--amber); font-size: 6px; font-weight: 600; text-align: right; }
.evidence-review-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 9px; margin-top: 9px; }
.claim-layers { border-top: 1px solid var(--line); }
.claim-row { display: grid; grid-template-columns: 66px 1fr 50px; gap: 8px; align-items: center; min-height: 52px; padding: 6px 10px; border-bottom: 1px solid var(--line); }
.claim-type { width: fit-content; padding: 3px 5px; border-radius: 4px; color: var(--green); background: var(--green-soft); font-size: 7px; }
.claim-type.is-hypothesis { color: var(--amber); background: var(--amber-soft); }
.claim-type.is-unknown { color: var(--red); background: var(--red-soft); }
.claim-row strong { display: block; font-size: 8px; }
.claim-row p { margin: 2px 0 0; color: var(--muted); font-size: 7px; }
.claim-status { color: var(--muted); text-align: right; font-size: 7px; }
.alternative { padding: 9px 10px; border-bottom: 1px solid var(--line); }
.alternative header { display: flex; justify-content: space-between; gap: 8px; }
.alternative strong { font-size: 8px; }
.alternative header span { color: var(--amber); font-size: 7px; }
.alternative p { margin: 4px 0 0; color: var(--muted); font-size: 7px; line-height: 1.5; }
.source-summary { margin-top: 9px; }
.source-summary p { margin: 0; padding: 11px 12px; color: #53616b; font-size: 9px; line-height: 1.55; }

.scenario-table { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.scenario-head, .scenario-row { display: grid; grid-template-columns: 34px minmax(180px, 1.35fr) repeat(4, minmax(76px, .58fr)) 80px; gap: 7px; align-items: center; }
.scenario-head { min-height: 30px; padding: 0 10px; color: #89939b; background: var(--surface-2); font-size: 7px; }
.scenario-row { min-height: 76px; padding: 8px 10px; border-top: 1px solid var(--line); cursor: pointer; }
.scenario-row:hover, .scenario-row.is-selected { background: #f5f9ff; }
.scenario-row.is-selected { box-shadow: inset 3px 0 0 var(--blue); }
.scenario-letter { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #fff; background: #62707b; font: 9px var(--mono); }
.scenario-row.is-selected .scenario-letter { background: var(--blue); }
.scenario-name strong { display: block; font-size: 9px; }
.scenario-name small { display: block; margin-top: 3px; color: var(--muted); font-size: 7px; line-height: 1.4; }
.scenario-metric span { display: block; color: #89939b; font-size: 7px; }
.scenario-metric b { display: block; margin-top: 3px; font: 8px var(--mono); }
.scenario-assumptions { margin-top: 9px; overflow: hidden; border: 1px solid #d9c5b6; border-radius: 7px; background: #fff; }
.scenario-assumptions > header { display: flex; align-items: center; justify-content: space-between; min-height: 43px; padding: 7px 11px; border-bottom: 1px solid #eadcd2; background: linear-gradient(90deg, #fff7f1, #fff); }
.scenario-assumptions > header span, .scenario-assumptions > header strong { display: block; }
.scenario-assumptions > header span { color: #a55326; font: 7px var(--mono); }
.scenario-assumptions > header strong { margin-top: 3px; font-size: 9px; }
.scenario-assumptions > header > small { color: var(--muted); font-size: 7px; }
.assumption-body { display: grid; grid-template-columns: 1fr 315px; }
.assumption-controls { display: grid; grid-template-columns: repeat(3, 1fr); }
.assumption-controls label { display: grid; grid-template-columns: minmax(105px, 1fr) minmax(90px, 1.2fr) 48px; gap: 8px; align-items: center; min-height: 68px; padding: 8px 11px; border-right: 1px solid var(--line); }
.assumption-controls label > span strong, .assumption-controls label > span small { display: block; }
.assumption-controls label > span strong { font-size: 8px; }
.assumption-controls label > span small { margin-top: 3px; color: var(--muted); font-size: 6px; line-height: 1.35; }
.assumption-controls input[type="range"] { width: 100%; accent-color: #bf642f; cursor: pointer; }
.assumption-controls label > b { color: #a64f21; text-align: right; font: 8px var(--mono); }
.assumption-output { display: grid; grid-template-columns: 58px 1fr 1fr; gap: 7px; align-items: center; padding: 8px 10px; background: #f3f7ff; }
.assumption-output > span { color: var(--blue); font: 7px var(--mono); }
.assumption-output > div { padding-left: 8px; border-left: 1px solid #cad8f6; }
.assumption-output > div strong, .assumption-output > div small { display: block; }
.assumption-output > div strong { font: 14px var(--mono); }
.assumption-output > div small { margin-top: 2px; color: var(--muted); font-size: 6px; }
.assumption-output button { grid-column: 1 / -1; min-height: 24px; border: 1px solid #b9caf0; border-radius: 4px; color: var(--blue); background: #fff; font-size: 7px; cursor: pointer; }
.is-positive { color: var(--green); }
.is-negative { color: var(--red); }
.recommended-tag { padding: 4px 6px; border-radius: 4px; color: var(--blue); background: var(--blue-soft); font-size: 7px; }
.risk-word { color: var(--muted); font-size: 7px; }
.simulate-callout { display: flex; gap: 15px; margin-top: 9px; padding: 9px 11px; border-left: 3px solid var(--blue); background: var(--blue-soft); }
.simulate-callout strong { flex: 0 0 auto; font-size: 8px; }
.simulate-callout span { color: #4e5c67; font-size: 8px; line-height: 1.5; }

.action-summary { display: grid; grid-template-columns: 1fr 190px; gap: 8px; margin-bottom: 8px; }
.action-hero, .approval-gate { padding: 10px 12px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.action-hero span { color: var(--blue); font: 7px var(--mono); }
.action-hero h3 { margin: 4px 0 2px; font-size: 13px; }
.action-hero p { margin: 0; color: var(--muted); font-size: 7px; }
.approval-gate { display: grid; align-content: center; color: var(--amber); background: var(--amber-soft); font-size: 10px; font-weight: 700; }
.approval-gate small { display: block; margin-top: 3px; color: #745e3c; font-size: 7px; font-weight: 400; }
.action-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 9px; }
.action-grid.is-focus { grid-template-columns: 1fr; }
.action-table { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.action-row { display: grid; grid-template-columns: 55px 1.4fr .9fr 66px 55px; gap: 7px; align-items: center; min-height: 41px; padding: 0 9px; border-bottom: 1px solid var(--line); }
.action-row:last-child { border-bottom: 0; }
.action-row code { color: var(--blue); font: 7px var(--mono); }
.action-row strong { font-size: 8px; }
.action-row span { color: var(--muted); font-size: 7px; }
.action-state { color: var(--amber) !important; }
.operation-log { overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #fff; }
.log-row { display: grid; grid-template-columns: 42px 62px 1fr 46px; gap: 5px; align-items: center; min-height: 41px; padding: 0 8px; border-bottom: 1px solid var(--line); }
.log-row:last-child { border-bottom: 0; }
.log-row time { color: var(--muted); font: 7px var(--mono); }
.log-row b, .log-row span, .log-row small { font-size: 7px; }
.log-row small { color: var(--amber); }
.guardrails { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.guardrail { padding: 8px 10px; border: 1px solid var(--line); border-radius: 6px; background: #fff; }
.guardrail strong { font-size: 8px; }
.guardrail p { margin: 3px 0 0; color: var(--muted); font-size: 7px; line-height: 1.45; }

.evidence-dialog { width: min(650px, 88vw); padding: 21px 24px 24px; border: 0; border-radius: 9px; color: var(--ink); box-shadow: 0 25px 80px rgba(21,30,38,.28); }
.evidence-dialog::backdrop { background: rgba(20,28,35,.5); }
.dialog-close { position: absolute; right: 16px; top: 14px; padding: 4px 7px; border: 1px solid var(--line); border-radius: 4px; background: #fff; font-size: 8px; }
.evidence-dialog h3 { margin: 7px 0 14px; font-size: 18px; }
.evidence-grid { display: grid; grid-template-columns: 82px 1fr; margin: 0; border-top: 1px solid var(--line); }
.evidence-grid dt, .evidence-grid dd { margin: 0; padding: 8px 5px; border-bottom: 1px solid var(--line); font-size: 9px; }
.evidence-grid dt { color: var(--muted); }
.dialog-action { margin-top: 14px; padding: 7px 10px; border: 0; border-radius: 5px; color: #fff; background: var(--blue); font-size: 9px; font-weight: 700; }

.presentation-mode .topbar { height: 58px; grid-template-columns: 235px 1fr 170px; }
.presentation-mode .contextbar { display: none; }
.presentation-mode .public-boundary { min-height: 30px; padding-top: 4px; padding-bottom: 4px; }
.presentation-mode .business-nav button { padding: 0 11px; font-size: 11px; }
.presentation-mode .workflow { height: 44px; }
.presentation-mode .workflow-step { font-size: 11px; }
.presentation-mode .workflow-boundary { font-size: 9px; }
.presentation-mode .shell { height: calc(100vh - 132px); grid-template-columns: minmax(0, 1fr) 390px; }
.presentation-mode .workspace { padding: 13px 15px 18px; }
.presentation-mode .scene-head { margin-bottom: 12px; }
.presentation-mode .scene-kicker, .presentation-mode .eyebrow { font-size: 10px; }
.presentation-mode .scene-title { margin-top: 6px; font-size: 27px; }
.presentation-mode .scene-subtitle { font-size: 12px; }
.presentation-mode .scene-stamp { padding: 6px 9px; font-size: 10px; }
.presentation-mode .panel-head { padding: 10px 12px; }
.presentation-mode .panel-head strong { font-size: 13px; }
.presentation-mode .panel-head span { font-size: 9px; }
.presentation-mode .overview-metric { padding: 11px 12px; }
.presentation-mode .overview-metric span, .presentation-mode .overview-metric small { font-size: 10px; }
.presentation-mode .overview-metric strong { font-size: 20px; }
.presentation-mode .overview-metric b { font-size: 10px; }
.presentation-mode .health-card span, .presentation-mode .health-card small { font-size: 9px; }
.presentation-mode .health-card strong { font-size: 16px; }
.presentation-mode .dense-head, .presentation-mode .dense-row { font-size: 10px; }
.presentation-mode .dense-row strong, .presentation-mode .dense-row span, .presentation-mode .dense-row b, .presentation-mode .dense-row small { font-size: 10px; }
.presentation-mode .copilot-head h2 { font-size: 17px; }
.presentation-mode .trace-item { min-height: 30px; }
.presentation-mode .trace-item code, .presentation-mode .trace-item span, .presentation-mode .trace-item b { font-size: 10px; }
.presentation-mode .welcome, .presentation-mode .user-message { font-size: 12px; }
.presentation-mode .answer h3 { font-size: 15px; }
.presentation-mode .answer p, .presentation-mode .answer ul { font-size: 11px; }
.presentation-mode .suggestion { font-size: 10px; }
.presentation-mode .composer textarea { font-size: 12px; }
.presentation-mode .composer-foot, .presentation-mode .composer-foot button { font-size: 9px; }
.presentation-mode .context-record { min-height: 72px; }
.presentation-mode .context-type, .presentation-mode .context-record strong { font-size: 10px; }
.presentation-mode .context-record p { font-size: 9px; }
.presentation-mode .context-record small, .presentation-mode .context-record > b { font-size: 8px; }
.presentation-mode .conclusion-state strong { font-size: 12px; }
.presentation-mode .conclusion-state span, .presentation-mode .conclusion-conflict > span { font-size: 9px; }
.presentation-mode .conclusion-state small, .presentation-mode .conclusion-conflict small { font-size: 8px; }
.presentation-mode .conclusion-conflict p { font-size: 9px; }
.presentation-mode .claim-row strong, .presentation-mode .alternative strong { font-size: 10px; }
.presentation-mode .claim-row p, .presentation-mode .alternative p { font-size: 9px; }
.presentation-mode .claim-type, .presentation-mode .claim-status, .presentation-mode .alternative header span { font-size: 8px; }
.presentation-mode .source-summary p { font-size: 11px; }
.presentation-mode .scenario-row { min-height: 96px; }
.presentation-mode .scenario-name strong { font-size: 13px; }
.presentation-mode .scenario-name small, .presentation-mode .scenario-metric span { font-size: 10px; }
.presentation-mode .scenario-metric b, .presentation-mode .recommended-tag, .presentation-mode .risk-word { font-size: 11px; }
.presentation-mode .simulate-callout strong, .presentation-mode .simulate-callout span { font-size: 11px; }
.presentation-mode .action-hero span { font-size: 10px; }
.presentation-mode .action-hero h3 { font-size: 17px; }
.presentation-mode .action-hero p, .presentation-mode .approval-gate small { font-size: 10px; }
.presentation-mode .approval-gate { font-size: 14px; }
.presentation-mode .action-row { min-height: 58px; }
.presentation-mode .action-row code, .presentation-mode .action-row strong, .presentation-mode .action-row span { font-size: 11px; }
.presentation-mode .guardrail strong { font-size: 12px; }
.presentation-mode .guardrail p { font-size: 10px; }
.presentation-mode .market-subnav { grid-template-columns: repeat(4, 1fr); }
.presentation-mode .market-subnav button { min-height: 58px; }
.presentation-mode .market-subnav strong { font-size: 12px; }
.presentation-mode .market-subnav span { font-size: 9px; }
.presentation-mode .market-map-focus span, .presentation-mode .market-map-focus p, .presentation-mode .market-map-focus dl { font-size: 10px; }
.presentation-mode .market-finding strong { font-size: 12px; }
.presentation-mode .market-finding p { font-size: 10px; }
.presentation-mode .market-finding small { font-size: 9px; }

body.market-mode:not(.market-copilot-collapsed) .shell { grid-template-columns: minmax(0, 1fr) 320px; }
body.market-mode.market-copilot-collapsed .shell { grid-template-columns: minmax(0, 1fr) 46px; }
body.market-mode.market-copilot-collapsed .copilot { display: block; overflow: hidden; }
body.market-mode.market-copilot-collapsed .copilot-head { display: grid; place-items: center; width: 100%; height: 100%; padding: 0; border: 0; }
body.market-mode.market-copilot-collapsed .copilot-head > div:first-child,
body.market-mode.market-copilot-collapsed .copilot .scope-pill,
body.market-mode.market-copilot-collapsed .trace-zone,
body.market-mode.market-copilot-collapsed .conversation,
body.market-mode.market-copilot-collapsed .question-zone { display: none; }
body.market-mode.market-copilot-collapsed .copilot-actions { width: 100%; height: 100%; }
body.market-mode.market-copilot-collapsed .copilot-toggle { width: 100%; height: 100%; padding: 14px 0; border: 0; border-radius: 0; background: #f7f9fc; writing-mode: vertical-rl; letter-spacing: .12em; }
body.market-mode.market-copilot-collapsed .copilot-toggle::before { content: "AI"; display: inline-block; margin-bottom: 9px; color: #fff; background: var(--blue); padding: 5px 3px; border-radius: 4px; font: 7px var(--mono); letter-spacing: 0; }

@media (max-width: 1300px) {
  .topbar { grid-template-columns: 220px 1fr 260px; }
  .business-nav button { padding: 0 10px; font-size: 10px; }
  .workflow { grid-template-columns: 100px repeat(5, minmax(90px, 112px)) 1fr; }
  .shell { grid-template-columns: minmax(0, 1fr) 360px; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .market-overview-grid, .market-intelligence-grid, .market-region-layout, .market-lower-grid, .market-group-layout, .market-source-layout { grid-template-columns: 1fr; }
  .market-subnav { grid-template-columns: repeat(2, 1fr); }
  .market-subnav button:nth-child(2) { border-right: 0; }
  .market-subnav button:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
}

@media (max-height: 760px) {
  .presentation-mode .topbar { height: 52px; }
  .presentation-mode .workflow { height: 40px; }
  .presentation-mode .shell { height: calc(100vh - 122px); }
  .presentation-mode .workspace { padding: 9px 12px 12px; }
  .presentation-mode .scene-head { margin-bottom: 7px; }
  .presentation-mode .scene-title { font-size: 24px; }
  .presentation-mode .evidence-scene .scene-subtitle { display: none; }
  .presentation-mode .market-scene .scene-subtitle,
  .presentation-mode .market-intelligence-grid,
  .presentation-mode .market-city-table,
  .presentation-mode .market-source-disclosure,
  .presentation-mode .market-scene > .method-note { display: none; }
  .presentation-mode .market-subnav { grid-template-columns: repeat(4, 1fr); }
  .presentation-mode .market-subnav button:nth-child(-n+2) { border-bottom: 0; }
  .presentation-mode .market-subnav button:nth-child(2) { border-right: 1px solid var(--line); }
  .presentation-mode .market-metrics { grid-template-columns: repeat(8, minmax(0, 1fr)); }
  .presentation-mode .region-comparison,
  .presentation-mode .store-ranking,
  .presentation-mode .source-summary,
  .presentation-mode .market-province-table { display: none; }
  .presentation-mode .context-record { min-height: 60px; padding-top: 5px; padding-bottom: 5px; }
  .presentation-mode .claim-row { min-height: 42px; padding-top: 4px; padding-bottom: 4px; }
  .presentation-mode .alternative { padding-top: 6px; padding-bottom: 6px; }
  .presentation-mode .evidence-principles article { min-height: 38px; padding-top: 5px; padding-bottom: 5px; }
  .presentation-mode .evidence-principles span { margin-top: 2px; font-size: 8px; }
  .presentation-mode .market-tab-body { min-height: 0; }
  .presentation-mode .market-overview-grid { grid-template-columns: minmax(500px, 1.18fr) minmax(300px, .82fr); }
  .presentation-mode .market-region-layout { grid-template-columns: 1fr; }
  .presentation-mode .market-filterbar { padding: 5px 8px; }
  .presentation-mode .market-tab-summary article, .presentation-mode .market-stage-summary article { min-height: 62px; padding-top: 7px; padding-bottom: 7px; }
  .presentation-mode .scenario-row { min-height: 70px; }
  .presentation-mode .scenario-assumptions > header { min-height: 34px; padding-top: 4px; padding-bottom: 4px; }
  .presentation-mode .scenario-assumptions > header > small { font-size: 8px; }
  .presentation-mode .assumption-controls label { min-height: 54px; padding-top: 5px; padding-bottom: 5px; }
  .presentation-mode .assumption-controls label > span small { display: none; }
  .presentation-mode .assumption-body { grid-template-columns: 1fr 290px; }
  .presentation-mode .assumption-output { padding-top: 5px; padding-bottom: 5px; }
}

@media (max-width: 800px) {
  html, body { height: auto; min-height: 100%; overflow: auto; }
  .topbar, .presentation-mode .topbar { height: auto; grid-template-columns: minmax(0, 1fr); grid-template-areas: "brand" "nav"; }
  .brand-block { grid-area: brand; min-width: 0; padding: 9px 12px; }
  .brand-block strong { font-size: 13px; }
  .brand-block small { font-size: 8px; }
  .business-nav { grid-area: nav; min-height: 44px; overflow-x: auto; border-top: 1px solid var(--line); }
  .business-nav button, .presentation-mode .business-nav button { flex: 0 0 auto; min-height: 44px; padding: 0 13px; font-size: 11px; white-space: nowrap; }
  .system-meta { display: none; }
  .contextbar { height: auto; min-height: 38px; padding: 6px 12px; overflow-x: auto; white-space: nowrap; }
  .public-boundary, .presentation-mode .public-boundary { min-height: 0; align-items: flex-start; padding: 8px 12px; font-size: 9px; }
  .public-boundary { display: grid; gap: 3px; }
  .public-boundary strong { font-size: 9px; }
  .workflow, .presentation-mode .workflow { height: auto; min-height: 46px; grid-template-columns: repeat(5, 126px) max-content; padding: 4px 12px; overflow-x: auto; }
  .workflow-label { display: none; }
  .workflow-step, .presentation-mode .workflow-step { min-height: 34px; padding: 0 8px; font-size: 10px; }
  .workflow-boundary { padding: 0 8px; white-space: nowrap; }
  .workflow.is-market { grid-template-columns: minmax(620px, 1fr) max-content; }
  .market-workflow { min-width: 620px; }
  .shell, .presentation-mode .shell,
  body.market-mode:not(.market-copilot-collapsed) .shell,
  body.market-mode.market-copilot-collapsed .shell { height: auto; min-height: 0; display: block; }
  .workspace, .presentation-mode .workspace { min-height: 660px; padding: 12px; overflow: visible; }
  .copilot { min-height: 610px; border-top: 1px solid var(--line-strong); }
  body.market-mode.market-copilot-collapsed .copilot { min-height: 52px; height: 52px; }
  .copilot-head { padding: 12px; }
  .question-zone { padding-bottom: 18px; }
  .scene-head { display: block; }
  .scene-stamp { display: inline-block; margin-top: 7px; }
  .overview-metrics, .market-metrics, .metric-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .overview-metric span, .overview-metric small, .overview-metric b { font-size: 9px; }
  .overview-metric strong { font-size: 16px; }
  .overview-top-grid, .dashboard-grid, .diagnosis-grid, .product-grid, .profile-grid,
  .conclusion-grid, .evidence-review-grid, .market-overview-grid, .market-intelligence-grid,
  .market-region-layout, .market-lower-grid, .market-group-layout, .market-source-layout,
  .action-grid { grid-template-columns: 1fr; }
  .trend-summary { grid-template-columns: repeat(2, 1fr); gap: 8px; }
  .chart-legend { justify-self: start; }
  .china-map-wrap, .market-map-body { grid-template-columns: 1fr; }
  .map-region-list { grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); border-left: 0; }
  .market-subnav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-tab-summary, .market-stage-summary, .market-source-content { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-province-table, .market-city-table, .priority-table, .scenario-table, .action-table { overflow-x: auto; }
  .priority-head, .priority-row { min-width: 620px; }
  .scenario-head, .scenario-row { min-width: 760px; }
  .scenario-assumptions > header { display: block; }
  .scenario-assumptions > header > small { display: block; margin-top: 5px; }
  .assumption-body, .assumption-controls { grid-template-columns: 1fr; }
  .assumption-controls label { border-right: 0; border-bottom: 1px solid var(--line); }
  .action-summary, .guardrails { grid-template-columns: 1fr; }
  .action-row { min-width: 620px; }
  .evidence-principles { grid-template-columns: 1fr; }
  .evidence-principles article { border-right: 0; border-bottom: 1px solid #d9e1ef; }
  .evidence-principles article:last-child { border-bottom: 0; }
  .evidence-dialog { width: calc(100vw - 24px); max-height: calc(100vh - 24px); padding: 18px 14px; overflow: auto; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}
