/* 拾味雷达暖砂陶土主题：只覆盖视觉，不改变布局、数据或业务交互。 */
:root {
  color-scheme: light;
  --ink: #2b2522;
  --muted: #75685f;
  --paper: #f6f0e6;
  --panel: #fffdf9;
  --line: #ded2c7;
  --green: #c5663d;
  --green-2: #f3ded4;
  --lime: #d9a441;
  --amber: #d9a441;
  --concept: #8b5c47;
  --primary: #c5663d;
  --primary-solid: #b55a35;
  --primary-hover: #a94e2e;
  --primary-soft: #f3ded4;
  --accent: #d9a441;
  --accent-soft: #f7e8c4;
  --danger: #b7483e;
  --danger-soft: #f6ded9;
  --sidebar: #3a2e2a;
  --sidebar-hover: #51413b;
  --sidebar-muted: #b9aaa0;
  --surface: #fffdf9;
  --surface-soft: #f0e5d9;
  --shadow: none;
  color: var(--ink);
  background: var(--paper);
}

* { scrollbar-color: #c7b6aa transparent; }
body, main { color: var(--ink); background: var(--paper); }
a { color: var(--primary); text-decoration-color: #d6a58f; }
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
summary:focus-visible {
  outline-color: var(--primary);
}

/* 左侧导航：深咖承担品牌锚点，陶土承担当前页面。 */
.sidebar { color: #fffaf5; background: var(--sidebar); }
.brand { border-bottom-color: #5b4942; }
.brand-mark {
  border-color: #f6f0e6;
  color: var(--sidebar);
  background: #f6f0e6;
}
.brand small,
.nav-group-toggle,
.nav-item,
.side-note small { color: var(--sidebar-muted); }
.nav-group { border-bottom-color: #55433d; }
.nav-group-toggle:hover,
.nav-item:hover { color: #fffaf5; background: var(--sidebar-hover); }
.nav-group-toggle svg { stroke: var(--accent); }
.nav-group-toggle i,
.nav-item::before { color: #9d887d; background: #9d887d; }
.nav-item.active {
  color: #fffaf5;
  background: var(--primary-solid);
}
.nav-item.active::before { background: #fffaf5; }
.side-note { border-color: #5b4942; background: #443630; }
.pulse { background: var(--accent); }
.pulse.offline { background: var(--danger); }

/* 页面骨架与内容表面。 */
.topbar { border-bottom-color: #d8cabf; }
.topbar h1,
.result-header h2,
.panel h3,
.section-title h3,
.database-table-head h3 { color: var(--ink); }
.eyebrow,
.kicker,
.step-label,
.collector-section-head span { color: var(--primary); }
.panel,
.candidate-card,
.connection-card,
.database-filter-panel,
.database-table-panel,
.database-product-hero,
.database-product-summary article,
.database-trend-card,
.database-peer-grid article,
.database-event-list article,
.database-cmm-overview,
.database-cmm-section,
.collector-task-meta div,
.yingdao-ingestion-grid > div {
  border-color: var(--line);
  color: var(--ink);
  background: var(--surface);
}
.panel-head p,
.config-intro,
.market-quality-copy p { color: var(--muted); }

/* 大区块保留纯色极简结构，用深咖取代纯黑。 */
.hero-card,
.luopan-login-hero,
.spu-card,
.idea-card {
  border-color: var(--sidebar);
  color: #fffaf5;
  background: var(--sidebar);
}
.hero-card p,
.luopan-login-hero p,
.spu-card p,
.idea-card p { color: #dbcfc6; }
.hero-stat span,
.luopan-login-state small,
.luopan-login-state span { color: #c3b2a8; }
.hero-stat strong,
.luopan-login-state strong,
.spu-card span,
.idea-card .idea-index,
.story-copy .eyebrow,
.story-metrics b { color: var(--accent); }
.spu-card input { border-color: #705950; color: #fffaf5; background: #493a34; }
.seed-evidence-group { border-color: #665149; }

/* 表单、按钮与选中态。 */
label { color: #5e5049; }
input,
textarea,
select {
  border-color: #d6c8bd;
  color: var(--ink);
  background: var(--surface);
}
input:focus,
textarea:focus,
select:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(197,102,61,.10); }
.primary,
.database-trend-button,
.category-radar-product-actions .primary,
.login-submit {
  border-color: var(--primary-solid);
  color: #fffaf5;
  background: var(--primary-solid);
}
.primary:hover,
.database-trend-button:hover,
.login-submit:hover { color: #fffaf5; background: var(--primary-hover); }
.ghost,
.compare-btn,
.detail-btn,
.database-cmm-button {
  border-color: #cbb9ad;
  color: #4c403a;
  background: var(--surface);
}
.ghost:hover,
.compare-btn:hover,
.detail-btn:hover,
.database-cmm-button:hover { border-color: var(--primary); color: var(--primary-hover); background: #f8eee5; }
.logout-button { color: #8c4b3e; border-color: #d8b7ad; }
.session-user { border-color: #d6c8bd; color: #65574f; background: var(--surface); }

/* 市场阶段标签沿用原语义，只更换为暖色视觉映射。 */
.badge,
.database-status,
.category-radar-tag,
.collector-task-role,
.database-cmm-cache {
  border-color: #dbcfc5;
  color: #685a52;
  background: #f1e9e2;
}
.badge.green,
.database-status.new_entry,
.category-radar-tag.new_entry,
.category-radar-tag.re_entry,
.database-cmm-cache.cached {
  border-color: #ddb39f;
  color: #8f452a;
  background: var(--primary-soft);
}
.badge.amber,
.database-status.accelerating,
.category-radar-tag.accelerating {
  border-color: #e6c77c;
  color: #7c5619;
  background: var(--accent-soft);
}
.category-radar-tag.breakout,
.database-status.new_breakout,
.market-status.hot {
  border-color: var(--primary-solid);
  color: #fffaf5;
  background: var(--primary-solid);
}
.database-status.mature_hit,
.category-radar-tag.stable_head,
.market-status.mature {
  border-color: #ccb7aa;
  color: #5d4438;
  background: #eee2d9;
}
.category-radar-tag.pullback,
.market-status.rising {
  border-color: #dda59d;
  color: #963b33;
  background: var(--danger-soft);
}
.category-radar-tag.divergence {
  border-color: #dcc79c;
  color: #715323;
  background: #f3e9d3;
}
.database-status.watch,
.database-status.none,
.category-radar-tag.long_watch,
.market-status.watch,
.market-status.new {
  border-color: #d7cac0;
  color: #695c54;
  background: #efe7e0;
}

/* 选品雷达与双品类雷达。 */
.market-hero { border-bottom-color: #d8cabf; color: var(--ink); background: var(--surface); }
.market-hero h2,
.market-date strong,
.market-kpis strong,
.market-manual-collect-head strong,
.market-collect-modes span,
.collector-queue-item div strong,
.market-pairing-head strong,
.market-pairing-card code,
.market-quality-card dd,
.market-product h4,
.market-change > strong,
.market-facts b,
.market-batch-history b { color: var(--ink); }
.market-date { border-left-color: #d8cabf; }
.market-date small,
.market-date span { color: var(--muted); }
.market-flow article,
.market-flow article.done,
.market-kpis article,
.market-candidate,
.market-batch-history > article { border-color: var(--line); background: var(--surface); }
#market-connector-dot,
#market-connector-dot.connected { background: var(--primary); }
#market-connector-dot.error { background: var(--danger); }
.market-collect-button.needs-connector { background: #8f5b46; }
.market-manual-collect,
.market-pairing-card,
.market-fallback,
.market-quality-card dl div,
.collector-queue-item { border-color: var(--line); color: #66584f; background: #f2e8de; }
.collector-queue-item.failed,
.collector-queue-item.cancelled { border-color: #ddb4ab; background: var(--danger-soft); }
.market-pairing-head > span,
.collector-queue-item em,
.batch-state { border-color: #d8c8bd; color: #64564f; background: var(--surface); }
.collector-queue-item.failed em,
.collector-queue-item.cancelled em,
.batch-state.failed { border-color: #d9a9a0; color: #8f3a33; background: var(--danger-soft); }
.quality-warning { color: #8a493b !important; background: #f4e2db; }
.market-filter-tabs { border-bottom-color: var(--line); }
.market-filter-tabs button { color: var(--muted); }
.market-filter-tabs button.active { border-color: var(--primary); color: var(--primary-hover); }
.market-candidate { border-bottom-color: #e5d9cf; }
.market-candidate:hover { border-color: #d6c5b9; background: #faf2e9; }
.market-product img,
.market-image-placeholder,
.category-radar-product-main img,
.category-radar-product-placeholder { border-color: #ded0c5; background: #f1e7de; }
.market-product a,
.category-radar-rank span,
.category-radar-product-actions a { color: var(--primary); border-bottom-color: #d6a58f; }
.market-status { border-color: #d8c9be; color: #655850; background: #f1e9e2; }
.market-signal-bars i { background: #e5d9cf; }
.market-signal-bars b { background: var(--primary); }
.market-signal-bars em,
.market-analysis-note { color: var(--muted); }
.market-facts span { background: #f0e6dc; }

.category-radar-switch { border-color: var(--sidebar); background: var(--surface); }
.category-radar-switch button { border-color: var(--sidebar); color: var(--muted); background: var(--surface); }
.category-radar-switch button span { color: var(--ink); }
.category-radar-switch button small { color: var(--muted); }
.category-radar-switch button.active { border-color: var(--primary-solid); color: #fffaf5; background: var(--primary-solid); }
.category-radar-switch button.active span { color: #fffaf5; }
.category-radar-switch button.active small { color: #f7ded2; }
.category-radar-brief,
.category-radar-brief.high_rotation { border-color: var(--line); border-left-color: var(--primary); background: var(--surface); }
.category-radar-brief.high_rotation { border-left-color: var(--accent); }
.category-radar-brief h3,
.category-radar-period strong,
.category-radar-metrics strong,
.category-radar-rank strong,
.category-radar-product-main h4,
.category-radar-product-evidence strong,
.category-radar-product-metrics b { color: var(--ink); }
.category-radar-brief p,
.category-radar-period span,
.category-radar-period small,
.category-radar-product-main p,
.category-radar-product-main code,
.category-radar-product-evidence span,
.category-radar-product-metrics span { color: var(--muted); }
.category-radar-period { border-left-color: var(--line); }
.category-radar-metrics,
.category-radar-metrics article,
.category-radar-signal-tabs,
.category-radar-product { border-color: var(--line); background: var(--surface); }
.category-radar-metrics span { color: #62544d; }
.category-radar-metrics small { color: #93847a; }
.category-radar-signal-tabs button { color: var(--muted); }
.category-radar-signal-tabs button.active { border-color: var(--primary); color: var(--primary-hover); }
.category-radar-product { border-bottom-color: #e5d9cf; }
.category-radar-product:hover { background: #faf2e9; }
.category-radar-product-placeholder { color: var(--primary); }

/* 榜单数据库、单品穿透和六张交互图表。 */
.database-advanced summary,
.database-standard summary { border-color: #cbb9ad; color: #4c403a; background: var(--surface); }
.database-advanced summary::after,
.database-advanced[open] summary,
.database-standard summary { color: var(--primary-hover); }
.database-advanced-popover,
.database-standard > div,
.database-table-wrap { border-color: var(--line); background: var(--surface); }
.database-table th,
.database-product-history th { color: #61534c; background: #f0e5d9; }
.database-table td,
.database-product-history td { border-bottom-color: #e8ddd4; color: #61534c; }
.database-table tbody tr:hover { background: #faf2e9; }
.database-rank strong,
.database-product a,
.database-product strong,
.database-product-hero h2,
.database-product-summary strong,
.database-trend-card strong,
.database-product-history td > strong,
.database-event-list strong,
.database-cmm-overview a,
.database-cmm-metrics strong,
.database-cmm-match dd,
.database-cmm-loading strong { color: var(--ink); }
.database-trend.up { color: var(--primary); }
.database-trend.down { color: var(--danger); }
.database-trend.flat,
.database-trend.unknown,
.database-metric { color: #665850; }
.database-product a:hover { color: var(--primary-hover); }
.database-product img,
.database-product-placeholder,
.database-product-hero > img,
.database-product-hero-placeholder,
.database-cmm-placeholder { background: #f1e7de; }
.database-product-placeholder,
.database-product-hero-placeholder,
.database-cmm-placeholder { color: var(--primary); }
.database-product-toolbar,
.database-pagination { border-color: var(--line); background: #f0e5d9; }
.database-peer-grid i,
.database-cmm-loading i { background: #e6d9cf; }
.database-peer-grid i b,
.database-cmm-loading i::after { background: var(--primary); }
.database-event-list article { border-top-color: #b98a73; }
.database-event-list article.breakout,
.database-event-list article.top20 { border-top-color: var(--primary); }
.database-event-list article.pullback { border-top-color: var(--danger); }
.database-product-current .database-status { color: #fffaf5; background: var(--primary-solid); }
.database-cmm-metrics article { background: #f0e5d9; }

.time-series-grid line { stroke: #e2d6cc; }
.time-series-grid line.time-series-axis { stroke: #a99689; }
.time-series-grid text { fill: #75685f; }
.time-series-line { stroke: var(--primary); }
.time-series-point { fill: var(--surface); stroke: var(--primary); }
.time-series-focus-line { stroke: #9b887c; }
.time-series-active-point { fill: var(--primary); stroke: var(--surface); }
.time-series-hit-area:focus { stroke: var(--primary); }
.time-series-tooltip { border-color: var(--sidebar); color: var(--ink); background: rgba(255,253,249,.98); box-shadow: 0 6px 18px rgba(58,46,42,.10); }
.time-series-tooltip time,
.time-series-tooltip span { color: #665850; }
.time-series-tooltip span i { background: var(--primary); }
.time-series-tooltip span strong { color: var(--ink); }
.time-series-empty { color: #8d7f75; }
.category-radar-chart-legend .retention { color: var(--primary); }
.category-radar-chart-legend .turnover { color: #9a711e; }
.category-radar-rhythm-chart .time-series-line.retention,
.category-radar-rhythm-chart .time-series-point.retention { stroke: var(--primary); }
.category-radar-rhythm-chart .time-series-line.turnover,
.category-radar-rhythm-chart .time-series-point.turnover { stroke: var(--accent); }
.category-radar-rhythm-chart .time-series-active-point.turnover { fill: var(--accent); }
.category-radar-rhythm-chart .time-series-tooltip span.turnover i { background: var(--accent); }

/* 裂变、评分、采集和系统设置共享同一暖色反馈。 */
.setup-banner,
.cmm-query-box,
.analysis-progress,
.recommend-funnel,
.market-quality-inline,
.luopan-security-gate,
.luopan-login-help,
.luopan-action-status,
.exploratory-list,
.development-list,
.yingdao-ingestion-grid > div { border-color: var(--line); color: #62554d; background: var(--surface); }
.luopan-action-status.success { border-color: #ddb39f; color: #8f452a; background: var(--primary-soft); }
.luopan-action-status.error { border-color: #dda59d; color: #963b33; background: var(--danger-soft); }
.progress-track,
.collector-progress .progress-track,
.signal-strip i { background: #e4d6cb; }
.progress-track i,
.signal-strip i::before,
.bar i { background: var(--primary); }
.analysis-progress.error .progress-track i { background: var(--danger); }
.progress-head > strong,
.progress-steps li.active,
.section-number,
.recommend-funnel strong,
.source-link,
.visual-evidence,
.radar-notice strong,
.radar-field-map span,
.radar-toolbar span,
.radar-candidate > a,
.radar-score b,
.analysis-model-item b,
.development-card .rank { color: var(--primary); }
.progress-steps li.active::before { border-color: var(--primary); }
.progress-steps li.done::before { color: #fffaf5; background: var(--primary-solid); }
.score-ring,
.exploratory-ring,
.development-ring { border-color: var(--primary); background: var(--surface); }
.score-ring strong { color: var(--ink); }
.tag-field,
.tag-editor-wrap,
.radar-candidate,
.formula-card,
.radar-result-card.overlap,
.radar-notice,
.analysis-model-item,
.analysis-capabilities,
.development-card,
.exploratory-card { border-color: var(--line); color: #62554d; background: var(--surface); }
.radar-candidate.selected,
.analysis-model-item.active { border-color: var(--line); border-left-color: var(--primary); background: #fbefe8; }
.mini-tag,
.reason .mini-tag.ai-tag,
.reason .mini-tag.warning-tag,
.reason .mini-tag.route-tag { color: #685a52; background: #f0e6dc; }
.legend-item:nth-child(1) i { background: var(--primary) !important; }
.legend-item:nth-child(2) i { background: #9f6248 !important; }
.legend-item:nth-child(3) i { background: var(--accent) !important; }
.legend-item:nth-child(4) i { background: var(--danger) !important; }
.legend-item:nth-child(5) i { background: #7d6b61 !important; }
.candidate-card:hover { border-color: #c8b5a8; }
.collector-section-head { border-left-color: var(--primary); }
.connection-dot,
.luopan-login-state i,
.luopan-login-state i.connected { background: var(--primary); }
.connection-dot.error,
.luopan-login-state i.error { background: var(--danger); }
.luopan-screen-wrap { border-color: var(--sidebar); background: var(--sidebar); }
.luopan-screen-loading { color: #fffaf5; background: var(--sidebar); }
dialog { border-color: var(--sidebar); background: var(--paper); }
dialog::backdrop { background: rgba(58,46,42,.60); }
.compare-spu,
.feedback-box,
.on-demand-detail,
.on-demand-detail.loaded { border-color: var(--line); background: var(--surface); }
.icon-button { color: var(--primary-hover); background: #eadbd0; }
#toast { border-color: var(--sidebar); color: #fffaf5; background: var(--sidebar); }

/* 登录页与工作台使用同一品牌主题。 */
.login-shell,
.login-panel { background: var(--paper); }
.login-story { color: #fffaf5; background: var(--sidebar); }
.login-brand > span,
.mobile-brand > span { border-color: #f6f0e6; color: var(--sidebar); background: #f6f0e6; }
.login-brand small,
.story-copy > p:last-child,
.story-metrics { color: #c7b7ad; }
#login-form { border-color: #d7c8bd; background: var(--surface); }
.panel-kicker { color: var(--primary); }
.dingtalk-login { border-color: #d6ad9a; color: var(--ink); background: #fbefe8; }
.dingtalk-login:hover { border-color: var(--primary); background: var(--primary-soft); }
.dingtalk-login span { color: #fffaf5; background: var(--primary-solid); }
.dingtalk-login i { color: var(--primary); }

@media (max-width: 850px) {
  .nav-group { border-left-color: #55433d; }
  .category-radar-switch button { border-bottom-color: var(--sidebar); }
  .market-date { border-top-color: #d8cabf; }
  .mobile-brand > span { border-color: var(--primary-solid); color: #fffaf5; background: var(--primary-solid); }
}
