/* 系统设置页：与 /memory 等独立页同一套外观语言。 */

.set-app { max-width: 860px; margin: 0 auto; padding: 26px 18px 60px; display: grid; gap: 18px; }

.set-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; }
.set-head h1 { margin: 0 0 4px; font-size: 22px; }
.set-head p { margin: 0; color: var(--muted); font-size: 13px; }
.set-head nav a { color: var(--ink-2); font-size: 13px; text-decoration: none; border: 1px solid var(--line); border-radius: 8px; padding: 6px 12px; background: #fff; }

.set-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; }
.set-card > header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 14px; }
.set-card h2 { margin: 0 0 4px; font-size: 16px; }
.set-card h3 { margin: 0 0 4px; font-size: 14px; }
.set-card > header p { margin: 0; color: var(--muted); font-size: 13px; }

.chip { flex: none; font-size: 12px; border-radius: 999px; padding: 4px 12px; background: var(--wx-bg); color: var(--ink-2); border: 1px solid var(--line); white-space: nowrap; }
.chip.on { background: var(--success-bg); color: var(--success-fg); border-color: var(--success-border); }

.set-form { display: grid; gap: 12px; }
/* auto-fit 而不是 auto-fill：这一排只有五个输入框，auto-fill 会把整行切成按 240px 排得下的
   那么多列，多出来的空列留在右边——外壳铺满之后那片空白更显眼。auto-fit 把空列塌掉，
   五个框平分整行。 */
.set-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px 14px; }
.set-grid label { display: grid; gap: 5px; font-size: 13px; color: var(--ink-2); }
.set-grid label.wide { grid-column: 1 / -1; }
.set-grid input { border: 1px solid var(--line); border-radius: 8px; padding: 8px 11px; background: #fff; }
.set-grid input::placeholder { color: var(--text-placeholder); }

.set-actions { display: flex; justify-content: flex-end; align-items: center; gap: 16px; }
.set-switch { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: var(--ink-2); cursor: pointer; }

.kb-list { display: grid; gap: 8px; }
.kb-row { display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; }
.kb-row b { font-size: 14px; }
.kb-row .kb-desc { color: var(--muted); font-size: 12px; flex: 1; min-width: 0; }
.kb-row .kb-count { font-size: 12px; color: var(--ink-2); white-space: nowrap; }
.list-hint { color: var(--muted); font-size: 13px; }

.kb-preview { margin-top: 16px; border-top: 1px dashed var(--line); padding-top: 14px; display: grid; gap: 8px; }
.kb-preview > p { margin: 0; color: var(--muted); font-size: 12px; }

.pv-result { border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; font-size: 13px; display: grid; gap: 6px; background: var(--wx-bg); }
.pv-result .pv-answer { font-size: 14px; }
.pv-result .pv-meta { color: var(--muted); font-size: 12px; }
.pv-result.ok { border-color: var(--success-border); background: var(--success-bg); }

.acc-create { margin-top: 16px; border-top: 1px dashed var(--line); padding-top: 14px; }
.set-grid select,
.kb-row select { border: 1px solid var(--line); border-radius: 8px; padding: 8px 11px; background: #fff; font-size: 13px; color: var(--ink-2); }
.kb-row .acc-off { color: var(--muted); font-size: 12px; white-space: nowrap; }

/* 自动回答急停开关：排在四个库之前，样式沿用 .kb-row，只把边框加重一档，
   让它读起来是「管着下面这些库的总闸」，而不是第五个库。 */
.kb-row.kb-master { border-width: 2px; margin-bottom: 4px; }
.kb-row.kb-master .kb-count.off { color: var(--success-fg); background: var(--success-bg); border-radius: 4px; padding: 1px 6px; }

/* 老板 10-04 可视化：卡片标题前加图标；右上角状态牌（shared/viz.css 的 sqv-pill）别被挤扁 */
.set-card > header .sqv-pill { flex: none; }
.set-card h2.sqv-h { margin: 0 0 4px; }

/* 2026-10-05 临时文件库 · 香港存储：出错原因（红）/ 检查结果（逐步打勾）。颜色只用 tokens。 */
.tmphk-note { margin: 10px 0 0; padding: 8px 12px; border-radius: 8px; font-size: 13px; line-height: 1.6; white-space: pre-line;
  color: var(--danger-fg); background: var(--danger-bg); border: 1px solid var(--danger-border); }
.tmphk-note.warn { color: var(--warning-fg); background: var(--warning-bg); border-color: var(--warning-border); }
.tmphk-steps { margin: 8px 0 0; padding: 0 0 0 4px; list-style: none; display: grid; gap: 4px; font-size: 13px; color: var(--text-secondary); }
.tmphk-steps li.bad { color: var(--danger-fg); }
.tmphk-steps small { color: var(--text-muted); }
