/* 雷达的布局与弹层集中管理，避免共享按钮和 modal 样式改变定位。 */
.topic-radar-page [hidden], .radar-dialog [hidden], .radar-scan-dialog [hidden] { display: none !important; }
/* 热力图：无外框，格子之间用约 2px 白缝区分（每格 1px 白边相加）；外沿那 1px 由 clip-path 裁掉。 */
.radar-treemap .tmwrap { border: 0; border-radius: 8px; background: var(--bg-card, #fff); clip-path: inset(1px round 8px); }
.radar-treemap .topic-group { border: 0; }
#app #theme-candidates .tile { border: 1px solid var(--bg-card, #fff); }
.radar-treemap .legend[hidden] { display: none; }
.radar-history-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; margin-bottom: 10px; padding: 20px; background: var(--bg-card); border: 1px solid var(--stroke); border-radius: 14px; }
.radar-history-card .radar-history-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-size: 13px; color: var(--text-muted); }
.radar-history-card ol { margin: 12px 0 0; padding-left: 20px; line-height: 1.8; font-size: 14px; }
.radar-history-card > button { align-self: center; }
.radar-scan-badge { display: inline-flex; padding: 3px 8px; border-radius: 6px; color: var(--brand-strong); background: var(--brand-soft); font-weight: 650; }
#radar-history-more { display: block; margin: 20px auto; }
.radar-empty { padding: 50px 20px; gap: 14px; }
.radar-empty-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.radar-dialog, .radar-scan-dialog { position: fixed; inset: 0; margin: auto; width: min(760px, calc(100vw - 32px)); max-width: none; max-height: min(880px, calc(100dvh - 48px)); padding: 0; border: 1px solid var(--stroke); border-radius: 20px; background: var(--bg-card); color: var(--text-primary); box-shadow: 0 24px 100px #0003; overflow: auto; }
.radar-dialog::backdrop, .radar-scan-dialog::backdrop, .radar-evidence-dialog::backdrop { background: #15191280; backdrop-filter: blur(3px); }
.radar-dialog-head { position: sticky; top: 0; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 24px; background: var(--bg-card); border-bottom: 1px solid var(--stroke); }
.radar-dialog-head h2 { font-size: 21px; margin: 0; }
.radar-dialog-head p { margin-top: 6px; color: var(--text-muted); font-size: 13px; line-height: 1.6; }
.radar-dialog-head .btn { flex: none; }
.radar-dialog-body { padding: 24px; }
.radar-dialog-body > p { margin: 12px 0; }
.radar-dialog-footer { position: sticky; bottom: 0; z-index: 2; display: flex; justify-content: flex-end; gap: 10px; padding: 16px 24px; background: var(--bg-card); border-top: 1px solid var(--stroke); }
.radar-scan-footer { align-items: center; flex-wrap: wrap; justify-content: space-between; }
.radar-scan-cost { font-size: 14px; }
.radar-scan-cost small { display: block; margin-top: 5px; color: var(--text-muted); }
.radar-scan-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; }
.radar-scan-category { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; font-weight: 600; }
.radar-scan-category select { width: 160px; }
.radar-cost { padding: 14px; border-radius: 10px; background: var(--brand-soft); font-size: 14px; line-height: 1.7; }
.radar-check-label { display: flex; align-items: flex-start; gap: 9px; font-size: 14px; line-height: 1.6; cursor: pointer; }
.radar-check-label input { width: 17px; height: 17px; flex: none; margin-top: 3px; accent-color: var(--brand-strong); }
.radar-scan-default { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.radar-scan-default small { display: block; color: var(--text-muted); }
.radar-scan-dialog [data-source-summary], .radar-help { color: var(--text-muted); font-size: 13px; line-height: 1.7; }
.radar-scan-dialog [data-scan-validation]:not(:empty), #radar-schedule-message:not(:empty) { color: var(--text-primary); font-size: 14px; padding: 10px 0; }
.radar-scan-dialog .radar-source-list { gap: 8px; }
.radar-dialog .card { box-shadow: none; margin: 0; padding: 20px 0; border: 0; border-radius: 0; background: transparent; border-bottom: 1px solid var(--stroke); }
.radar-schedule-entry { display: flex; gap: 16px; align-items: center; justify-content: space-between; padding-bottom: 24px; border-bottom: 1px solid var(--stroke); }
.radar-schedule-entry h3 { font-size: 16px; }
.radar-schedule-entry p { color: var(--text-muted); font-size: 13px; margin-top: 6px; }
.radar-schedule-card { margin: 0; }
.radar-schedule-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 22px 0 16px; }
.radar-schedule-fields label { display: grid; gap: 8px; font-size: 13px; }
.radar-schedule-status { display: grid; gap: 8px; margin: 20px 0; padding: 16px; border-radius: 10px; border: 1px solid var(--stroke); font-size: 14px; }
.radar-evidence-dialog { position: fixed; inset: 0; margin: 0 0 0 auto; height: 100dvh; max-height: 100dvh; width: min(680px, 100vw); max-width: 100vw; border: 0; padding: 0; background: var(--bg-card); color: var(--text-primary); overflow: hidden; border-radius: 20px 0 0 20px; }
.radar-evidence-dialog .theme-evidence-sheet { display: flex; flex-direction: column; width: 100%; height: 100%; padding: 0; overflow: hidden; transform: none; border: 0; border-radius: 0; }
.radar-evidence-dialog .theme-evidence-head { flex: none; padding: 22px 24px; margin: 0; border-bottom: 1px solid var(--stroke); }
.radar-evidence-dialog .theme-evidence-head > div { min-width: 0; }
.radar-evidence-dialog #theme-evidence-close { flex-shrink: 0; white-space: nowrap; }
.radar-evidence-dialog #theme-evidence-content { flex: 1; overflow-y: auto; padding: 24px; }
.radar-evidence-dialog #theme-evidence-actions { flex: none; padding: 16px 24px max(16px, env(safe-area-inset-bottom)); border-top: 1px solid var(--stroke); background: var(--bg-card); }
.radar-evidence-dialog .radar-evidence-action { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; border: 0; padding: 0; background: none; }
.radar-evidence-action .theme-angle-field { flex: 1 1 220px; margin: 0; }
.radar-evidence-action .btn { flex: none; }
.radar-evidence-dialog details { margin-top: 20px; }
.radar-evidence-dialog summary { cursor: pointer; font-weight: 600; padding: 12px 0; }
.radar-evidence-dialog .theme-evidence-sheet section { margin-top: 0; }
/* ===== 顶部栏：两行（design/radar-compact）。控件高度沿用全局 40px，分段按钮内部 32px。 ===== */
.topic-radar-page {
  --radar-seg: color-mix(in srgb, var(--text-primary) 7%, var(--bg-card));
  --radar-material-line: #c9c9c4;
  /* 建议分档位：颜色 = 档位，边框 = 评估状态；热力图仍按主题着色。bg/fg 用于已评估实心徽标，ink 用于虚线框与图例。 */
  --tier-hot-bg: #c2361c; --tier-hot-fg: #fff; --tier-hot-ink: #c2361c;
  --tier-rec-bg: #fde6cf; --tier-rec-fg: #a3410a; --tier-rec-ink: #a3410a;
  --tier-opt-bg: #e3ebf3; --tier-opt-fg: #3d5a73; --tier-opt-ink: #3d5a73;
  --tier-wait-bg: #efefed; --tier-wait-fg: #5f5f5a; --tier-wait-ink: #5f5f5a;
}
[data-theme="dark"] .topic-radar-page {
  --radar-material-line: #5b5c55;
  --tier-hot-bg: #c2361c; --tier-hot-fg: #fff; --tier-hot-ink: #ff8a70;
  --tier-rec-bg: #4a2d18; --tier-rec-fg: #ffcfa1; --tier-rec-ink: #ffb87a;
  --tier-opt-bg: #243447; --tier-opt-fg: #b7d0ea; --tier-opt-ink: #9fbddb;
  --tier-wait-bg: #2b2c28; --tier-wait-fg: #b9b9b1; --tier-wait-ink: #a9aaa2;
}
.radar-head { position: relative; display: flex; flex-direction: column; gap: 0; margin: 0 0 14px; }
.radar-head .wb-head { margin: 4px 0 18px; }
/* 扫描工具条：一行轻量标签（领域、来源数、与我相关）+ 右侧开始扫描，不做成输入框。 */
.radar-composer { margin: 0 0 18px; padding: 0 0 12px; border-bottom: 1px solid var(--wb-line-2, rgba(25,25,22,.06)); }
.radar-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 2px; margin-left: -10px; }
#app .radar-relevance-toggle[aria-pressed="true"] { background: var(--wb-chip-on, rgba(25,25,22,.06)); color: var(--wb-ink, #1F1D1A); font-weight: 600; }
#app .radar-relevance-toggle[aria-pressed="true"] svg { color: var(--wb-ink, #1F1D1A); }
/* 与我相关：未命中知识库的格子和列表项变淡，面积不变。 */
#theme-candidates.is-relevance .tile[data-kb-hit="false"],
#theme-candidates.is-relevance .radar-theme-actions article[data-kb-hit="false"] { opacity: .28; filter: saturate(.3); }
/* 行高固定为控件高度：数据到达后胶囊出现不能把热力图顶下去，否则会触发重绘并改变点击目标。 */
.radar-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; min-width: 0; min-height: 40px; }
.radar-sec { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 22px; min-width: 0; }
.radar-sec > .radar-row { flex: 1 1 auto; }
.radar-spacer { flex: 1 1 0; }
.radar-actions { display: contents; }
.radar-note { font-size: 13px; color: var(--text-muted); }
.radar-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.radar-seg { display: inline-flex; align-items: center; gap: 2px; padding: 3px; border-radius: 10px; background: var(--radar-seg); }
#app .radar-seg button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 32px; padding: 0 12px; border: 0; border-radius: 8px; background: transparent; color: var(--text-secondary); font: inherit; font-size: 13.5px; line-height: 1.2; white-space: nowrap; cursor: pointer; }
#app .radar-seg button[aria-pressed="true"] { background: var(--bg-card); color: var(--text-primary); font-weight: 650; box-shadow: 0 1px 3px #0001; }
#app .radar-seg .n { font-size: 12px; font-weight: 500; color: var(--text-muted); }
#app .radar-view-tabs button, #app .radar-theme-actions .radar-row-actions .btn { gap: 0; }
#app .radar-view-tabs, #app .radar-status-tabs { gap: 18px; padding: 0; background: none; }
/* 「今日选题 / 历史扫描」是区块标题（16px/650），状态筛选 13px，扫描信息 12px，三级字号与设计稿一致。 */
#app .radar-view-tabs button { min-height: 36px; padding: 0; border-radius: 0; background: none; box-shadow: none; color: var(--wb-faint, #A39D93); font-size: 16px; font-weight: 650; }
#app .radar-view-tabs button[aria-pressed="true"] { background: none; box-shadow: none; color: var(--wb-ink, #1F1D1A); }
#app .radar-status-tabs button { min-height: 36px; padding: 0 0 2px; border-bottom: 2px solid transparent; border-radius: 0; background: none; box-shadow: none; color: var(--wb-muted, #6F6A62); font-size: 13px; }
#app .radar-status-tabs button[aria-pressed="true"] { border-bottom-color: var(--wb-ink, #1F1D1A); background: none; box-shadow: none; color: var(--wb-ink, #1F1D1A); font-weight: 600; }
#app .radar-view-tabs .radar-wide { display: inline; }
.radar-category { position: relative; display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 10px; border: 0; border-radius: 8px; background: transparent; color: var(--wb-ink-2, #4A463F); cursor: pointer; }
.radar-category:hover { background: var(--wb-chip-on, rgba(25,25,22,.06)); }
.radar-category svg, #app .radar-icon-btn svg { flex: none; width: 16px; height: 16px; color: var(--wb-muted, #6F6A62); }
.radar-category-label { font-size: 14px; color: var(--text-muted); }
#app .radar-category select { appearance: none; -webkit-appearance: none; width: auto; min-height: 32px; padding: 0; border: 0; background: transparent; box-shadow: none; color: inherit; font-size: 13px; cursor: pointer; field-sizing: content; }
#app .radar-icon-btn { display: inline-flex; align-items: center; gap: 6px; width: auto; min-height: 32px; padding: 0 10px; border: 0; border-radius: 8px; background: transparent; color: var(--wb-ink-2, #4A463F); font-size: 13px; cursor: pointer; }
#app .radar-icon-btn:hover, #app .radar-icon-btn[aria-expanded="true"] { background: var(--wb-chip-on, rgba(25,25,22,.06)); }
#app .radar-scan-btn { display: inline-flex; align-items: center; gap: 6px; min-height: 34px; height: 34px; padding: 0 14px; border: 0; border-radius: 9px; background: var(--wb-ink, #1F1D1A); color: var(--bg-card); font-size: 13px; font-weight: 600; white-space: nowrap; }
#app .radar-scan-btn svg { width: 14px; height: 14px; }
.radar-scan-btn.is-stop svg { display: none; }
/* 扫描中主按钮改为“停止扫描”：次级样式 + 红色方块。 */
#app .radar-scan-btn.is-stop { border: 1px solid var(--border); background: var(--bg-card); color: var(--text-primary); }
.radar-scan-btn.is-stop .btn-text::before { content: ''; display: inline-block; width: 9px; height: 9px; margin-right: 7px; border-radius: 2px; background: #c2361c; }
.radar-info { position: relative; min-width: 0; max-width: 100%; }
/* 还没有任何扫描信息时胶囊留空占位（不用 display:none），数据到达时布局不位移。 */
.radar-info:has(#theme-scan-meta[hidden]):has(#radar-subtitle:empty) { visibility: hidden; }
#app .radar-chip { display: inline-flex; align-items: center; gap: 8px; max-width: 100%; min-height: 32px; padding: 0 8px; border: 0; border-radius: 8px; background: transparent; color: var(--wb-faint, #A39D93); font: inherit; font-size: 12px; line-height: 1.3; white-space: nowrap; text-align: left; cursor: pointer; }
#app .radar-chip[aria-expanded="true"], #app .radar-chip:hover { background: var(--wb-chip-on, rgba(25,25,22,.06)); }
.radar-chip > span:not(.radar-dot) { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.radar-chip b { font-weight: 500; color: var(--wb-muted, #6F6A62); }
#theme-scan-meta { white-space: normal; line-height: 1.35; }
.radar-chip .radar-caret { flex: none; color: var(--text-muted); }
.radar-dot { order: -1; flex: none; width: 7px; height: 7px; border-radius: 50%; background: #3f7d4e; }
.radar-chip[data-stale] .radar-dot { background: #c27a0e; }
/* 进度文字出现时替换统计文字；扫描进行中圆点变转圈。 */
#theme-scan-meta:not([hidden]) + #radar-subtitle { display: none; }
.radar-chip.is-scanning .radar-dot { width: 10px; height: 10px; border: 2px solid var(--stroke); border-top-color: var(--text-primary); background: none; animation: radar-spin .9s linear infinite; }
@keyframes radar-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .radar-chip.is-scanning .radar-dot { animation: none; } }
.radar-pop { position: absolute; z-index: 30; left: 0; top: calc(100% + 8px); box-sizing: border-box; width: min(400px, calc(100vw - 32px)); padding: 16px; border: 1px solid var(--stroke); border-radius: 14px; background: var(--bg-card); box-shadow: 0 12px 40px #0002; font-size: 13.5px; }
.radar-pop h4 { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .04em; color: var(--text-muted); }
.radar-pop > * + h4, .radar-pop > * + div > h4:first-child { margin-top: 14px; }
.radar-source-choices { display: flex; flex-direction: column; gap: 2px; }
#app .radar-source-choices button { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 34px; padding: 0 10px; border: 0; border-radius: 8px; background: transparent; color: var(--text-primary); font: inherit; font-size: 13.5px; text-align: left; cursor: pointer; }
.radar-source-choices button::before { content: ''; flex: none; box-sizing: border-box; width: 14px; height: 14px; border: 2px solid var(--text-muted); border-radius: 50%; }
.radar-source-choices button[aria-pressed="true"] { background: var(--radar-seg); }
.radar-source-choices button[aria-pressed="true"]::before { border-color: var(--text-primary); background: radial-gradient(circle, var(--text-primary) 0 3px, transparent 4px); }
#radar-daily-notice { margin: 10px 0 0; padding: 8px 10px; border-radius: 8px; background: var(--warning-bg); color: var(--warning); font-size: 12.5px; }
.radar-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.radar-pills p { margin: 0; padding: 4px 9px; border-radius: 7px; background: var(--radar-seg); color: var(--text-secondary); font-size: 12.5px; }
.radar-pop-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--stroke); font-size: 12.5px; color: var(--text-muted); }
#app .radar-link { min-height: 0; padding: 0; border: 0; background: none; color: var(--brand-strong); font: inherit; font-size: 12.5px; cursor: pointer; }
#app .radar-progress-link { display: inline-flex; align-items: center; gap: 4px; padding: 0 12px; border: 0; border-radius: 10px; background: var(--brand-soft); color: var(--brand-strong); font: inherit; font-size: 13px; font-weight: 600; white-space: nowrap; cursor: pointer; }
.radar-snapshot { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; min-width: 0; font-size: 14px; }
.radar-snapshot small { color: var(--text-muted); font-size: 13px; }
.radar-badge { display: inline-flex; align-items: center; height: 26px; padding: 0 9px; border-radius: 7px; background: var(--radar-seg); color: var(--text-secondary); font-size: 12.5px; font-weight: 700; }
.radar-snapshot-actions { display: inline-flex; gap: 8px; }
#app .radar-row-history select { width: auto; min-width: 140px; padding-block: 0; }
.radar-scanbar { position: absolute; left: 0; right: 0; bottom: -9px; height: 3px; border-radius: 2px; background: var(--radar-seg); overflow: hidden; }
.radar-scanbar i { display: block; width: var(--progress, 0%); height: 100%; background: var(--text-primary); transition: width .4s; }
#theme-candidates.is-snapshot .tmwrap { filter: saturate(.4); }
.topic-radar-page .radar-create-action { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 14px; margin: 14px 0 0; padding-bottom: 0; }
.topic-radar-page .radar-create-action p { margin: 0; color: var(--text-muted); }
#radar-history-list section > h2 { font-size: 14px; margin: 24px 0 12px; color: var(--text-secondary); }

/* ===== 列表：建议分徽标 + 分档图例 ===== */
.radar-theme-actions { display: grid; gap: 8px; }
.radar-tier-legend { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 16px; margin: 4px 0 2px; padding: 0 4px; font-size: 12.5px; color: var(--text-secondary); }
.radar-tier-legend b { color: var(--text-primary); }
.radar-tier-legend .key { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.radar-tier-legend i { box-sizing: border-box; width: 14px; height: 14px; border-radius: 4px; }
.radar-tier-legend i[data-tier="hot"], .radar-score[data-tier="hot"] { --tier-bg: var(--tier-hot-bg); --tier-fg: var(--tier-hot-fg); --tier-ink: var(--tier-hot-ink); }
.radar-tier-legend i[data-tier="rec"], .radar-score[data-tier="rec"] { --tier-bg: var(--tier-rec-bg); --tier-fg: var(--tier-rec-fg); --tier-ink: var(--tier-rec-ink); }
.radar-tier-legend i[data-tier="opt"], .radar-score[data-tier="opt"] { --tier-bg: var(--tier-opt-bg); --tier-fg: var(--tier-opt-fg); --tier-ink: var(--tier-opt-ink); }
.radar-tier-legend i[data-tier="wait"], .radar-score[data-tier="wait"] { --tier-bg: var(--tier-wait-bg); --tier-fg: var(--tier-wait-fg); --tier-ink: var(--tier-wait-ink); }
.radar-tier-legend i[data-tier] { background: var(--tier-bg); }
.radar-tier-legend i[data-state="provisional"] { background: none; border: 2px dashed var(--tier-rec-ink); }
.radar-tier-legend i[data-state="material"] { border: 1.5px solid var(--radar-material-line); }
.radar-tier-legend .radar-spacer + span { color: var(--text-muted); }
.radar-theme-actions article { display: grid; grid-template-columns: 88px minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 8px 14px 8px 8px; border: 1px solid var(--stroke); border-radius: 14px; background: var(--bg-card); }
.radar-score { box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 88px; height: 60px; border-radius: 10px; background: var(--tier-bg); color: var(--tier-fg); font-variant-numeric: tabular-nums; }
.radar-score strong { font-size: 26px; font-weight: 750; line-height: 1.05; letter-spacing: -.02em; }
.radar-score span { margin-top: 2px; font-size: 11.5px; font-weight: 600; line-height: 1.3; white-space: nowrap; }
.radar-score[data-state="provisional"] { border: 2px dashed var(--tier-ink); background: var(--bg-card); color: var(--tier-ink); }
.radar-score[data-state="material"] { border: 1.5px solid var(--radar-material-line); background: var(--bg-card); color: var(--text-muted); }
.radar-theme-main { min-width: 0; }
.radar-theme-actions h3 { margin: 0; overflow: hidden; font-size: 16px; font-weight: 600; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.radar-theme-actions article p { margin: 3px 0 0; font-size: 13px; color: var(--text-muted); }
.radar-theme-actions .radar-row-actions { display: flex; align-items: center; gap: 4px; }

@media (max-width: 600px) {
  .radar-wide { display: none; }
  .radar-head .wb-head { margin-top: 6px; }
  .radar-bar { flex-wrap: nowrap; overflow-x: auto; margin-left: -10px; padding: 0; scrollbar-width: none; }
  .radar-bar::-webkit-scrollbar { display: none; }
  .radar-category, #app .radar-icon-btn { flex: none; min-height: 44px; font-size: 14px; }
  #app .radar-category select { min-height: 44px; font-size: 16px; }
  #app .radar-scan-btn { position: sticky; right: 0; flex: none; height: 44px; min-height: 44px; padding: 0 16px; border-radius: 22px; box-shadow: -14px 0 12px 2px var(--bg-primary); font-size: 0; width: 44px; padding: 0; justify-content: center; border-radius: 50%; }
  #app .radar-scan-btn svg { width: 18px; height: 18px; }
  .radar-category, #app .radar-icon-btn { padding: 0 8px; font-size: 13px; }
  .radar-sec { gap: 4px 18px; }
  .radar-sec > .radar-row { flex: 1 1 100%; }
  .radar-row { gap: 6px 14px; }
  #app .radar-status-tabs { flex: 1 1 auto; }
  #app .radar-status-tabs button { min-height: 44px; }
  .radar-display-switch { margin-left: auto; }
  .radar-info { flex: 1 1 100%; order: 5; }
  .radar-snapshot, .radar-snapshot-actions { flex: 1 1 100%; }
  .radar-row-history select { flex: 1 1 0; min-width: 0; }
  #app .radar-seg button { min-height: 44px; }
  #app .radar-chip { min-height: 32px; padding: 0 2px; background: transparent; color: var(--text-muted); font-size: 12.5px; }
  .radar-tier-legend { display: none; }
  .radar-theme-actions article { grid-template-columns: 64px minmax(0, 1fr) auto; align-items: start; gap: 6px 12px; padding: 12px; }
  .radar-theme-main { display: contents; }
  .radar-score { grid-row: 1 / span 2; width: 64px; height: 56px; }
  .radar-score strong { font-size: 22px; }
  .radar-score span { font-size: 11px; }
  .radar-theme-actions h3 { grid-column: 2 / -1; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 15px; line-height: 1.4; white-space: normal; }
  .radar-theme-actions article p { grid-column: 2; align-self: center; margin: 0; font-size: 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .radar-theme-actions .radar-row-actions { grid-column: 3; }
  #app .radar-theme-actions .radar-row-actions .btn { min-height: 36px; padding-inline: 10px; font-size: 13px; }
}

@media (max-width: 860px) {
  .radar-history-card { grid-template-columns: 1fr; }
  .radar-history-card > button { justify-self: start; }
  .radar-dialog, .radar-scan-dialog { width: calc(100vw - 20px); max-height: calc(100dvh - 24px); border-radius: 16px; }
  .radar-dialog-head, .radar-dialog-body { padding: 18px; }
  .radar-dialog-footer { padding: 14px 18px; }
  .radar-dialog .radar-source-row, .radar-scan-dialog .radar-source-row { grid-template-columns: 26px minmax(0, 1fr) 52px; }
  .radar-dialog .radar-source-weight, .radar-scan-dialog .radar-source-weight { grid-column: 2 / -1; grid-row: 2; }
  .radar-dialog .radar-source-row output, .radar-scan-dialog .radar-source-row output { grid-column: 3; grid-row: 1; }
  .radar-schedule-entry { align-items: flex-start; flex-direction: column; }
  .radar-evidence-dialog { width: 100vw; height: calc(100dvh - 24px); margin-top: auto; border-radius: 18px 18px 0 0; }
  .radar-evidence-dialog .theme-evidence-sheet { margin: 0; height: 100%; }
  .radar-evidence-dialog .theme-evidence-head, .radar-evidence-dialog #theme-evidence-content, .radar-evidence-dialog #theme-evidence-actions { padding: 16px; }
}
/* 展示方式切换：去掉胶囊底色，选中项只用浅灰底。 */
#app .radar-display-switch { gap: 2px; padding: 0; background: none; }
#app .radar-display-switch button { min-width: 36px; padding: 0 8px; color: var(--wb-muted, #6F6A62); }
#app .radar-display-switch button[aria-pressed="true"] { background: var(--wb-chip-on, rgba(25,25,22,.06)); box-shadow: none; color: var(--wb-ink, #1F1D1A); }
