/* =============================================================================
 * theme-a.css —— 「机构冷静」视觉层（Task 60）
 * 只做覆盖，不重写组件；加载顺序必须在 tokens/components/app 之后。
 * 设计约束：四色制（主行动 / 风险 / 警示 / 通过），其余全部中性灰。
 * ========================================================================== */

:root {
  /* ---- 中性色阶：偏冷、对比更足 ---- */
  --color-neutral-0:   #FFFFFF;
  --color-neutral-25:  #FCFDFE;
  --color-neutral-50:  #F7F8FA;
  --color-neutral-100: #F1F3F6;
  --color-neutral-200: #E6E8EE;
  --color-neutral-300: #CBD1DB;
  --color-neutral-400: #A9AFB8;
  --color-neutral-500: #8B929C;
  --color-neutral-600: #5B626C;
  --color-neutral-900: #0F1216;

  /* ---- 主色：克制的深蓝 ---- */
  --color-primary-500: #1F4FD8;
  --color-primary-600: #1A43BC;
  --color-primary-700: #16379B;
  --color-primary-50:  #F2F5FF;
  --color-primary-200: #C7D3F7;

  /* ---- 圆角收紧 ---- */
  --radius-xs: 2px;
  --radius-sm: 3px;
  --radius-md: 4px;
  --radius-lg: 6px;
  --radius-xl: 8px;

  /* ---- 字阶（四档，拉开对比） ---- */
  --ta-display: 34px;
  --ta-lede:    15px;
  --ta-section: 13px;
  --ta-body:    14px;
  --ta-aux:     11.5px;
}

/* ============ 1. 主标题区 ============ */
.hero-line {
  font-size: var(--ta-display) !important;
  font-weight: 650 !important;
  letter-spacing: -0.012em;
  line-height: 1.24;
  color: var(--color-text-primary);
}
/* 把句内的「能查·留痕·可溯源」提成独立的副标题行 */
.hero-line b {
  display: block;
  margin-top: 9px;
  font-size: var(--ta-lede) !important;
  font-weight: 450 !important;
  letter-spacing: 0.01em;
  color: var(--color-text-secondary) !important;
}

/* ============ 2. 「从一个问题开始」升级为区块标题 ============ */
.big {
  font-size: var(--ta-section) !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em;
  color: var(--color-text-primary) !important;
  margin-top: 26px !important;
  margin-bottom: 10px !important;
}
.big .grad { color: var(--color-text-tertiary) !important; }

/* ============ 3. 演示条：给底色，从页面里拎出来 ============ */
.onboard {
  background: var(--color-bg-inset) !important;
  border: 1px solid var(--color-border) !important;
  border-radius: var(--radius-lg) !important;
  padding: 15px 18px !important;
  box-shadow: none !important;
}
.onboard-hd { font-size: 12px !important; font-weight: 600 !important; color: var(--color-text-primary) !important; letter-spacing: 0.05em; }

/* 六张卡统一中性：去掉彩色左边框 */
.onboard .ob-step,
.onboard .ob-step--danger,
.onboard .ob-step--ok,
.onboard .ob-step--warn,
.onboard .ob-step--info {
  background: var(--color-bg-surface) !important;
  border: 1px solid var(--color-border) !important;
  border-left: 1px solid var(--color-border) !important;
  border-radius: var(--radius-sm) !important;
  box-shadow: none !important;
  transform: none !important;
  padding: 10px 12px !important;
}
.onboard .ob-step:hover {
  border-color: var(--color-border-strong) !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .05) !important;
  transform: none !important;
}
.onboard .ob-step .ob-n,
.onboard .ob-step--danger .ob-n,
.onboard .ob-step--ok .ob-n,
.onboard .ob-step--warn .ob-n,
.onboard .ob-step--info .ob-n {
  width: 19px; height: 19px;
  border: 1px solid var(--color-border-strong) !important;
  border-radius: 50% !important;
  background: var(--color-bg-surface) !important;
  color: var(--color-text-secondary) !important;
  font-size: 10.5px !important;
  font-weight: 500 !important;
}
.onboard .ob-step .ob-t { font-size: 12.5px !important; font-weight: 500 !important; color: var(--color-text-primary) !important; }
.onboard .ob-step .ob-d {
  font-size: 11.5px !important;
  color: var(--color-text-tertiary) !important;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.onboard .ob-step .ob-go { color: var(--color-text-tertiary) !important; }

/* ============ 4. 记忆 chips：比输入框占位符更醒目 ============ */
.mem-chip {
  font-size: var(--ta-section) !important;
  font-weight: 500 !important;
  color: var(--color-text-primary) !important;
  background: var(--color-bg-inset) !important;
  border: 1px solid var(--color-border-strong) !important;
  padding: 8px 14px !important;
  border-radius: var(--radius-pill) !important;
  transition: border-color .15s, color .15s, background .15s;
}
.mem-chip:hover {
  border-color: var(--color-primary) !important;
  color: var(--color-primary) !important;
  background: var(--color-primary-50) !important;
}

/* ============ 5. 输入框：占位符最弱 ============ */
.composer textarea::placeholder,
.composer input::placeholder {
  color: #A9AFB8 !important;
  font-weight: 400;
}
.composer textarea, .composer input[type="text"] {
  font-size: var(--ta-body) !important;
  border-color: var(--color-border-strong) !important;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}
.composer textarea:focus, .composer input[type="text"]:focus {
  border-color: var(--color-primary) !important;
  box-shadow: 0 0 0 3px rgba(31, 79, 216, .10) !important;
}

/* ============ 6. 工具行：最弱一档 ============ */
.mode-row { font-size: var(--ta-aux) !important; color: var(--color-text-tertiary) !important; }
.mode-row .ic { font-size: var(--ta-aux) !important; color: var(--color-text-secondary) !important; }
.mode-row .ic:hover { color: var(--color-primary) !important; }

/* ============ 7. 侧栏：整栏浅底，卡片反白 ============ */
aside.right, .side-panel, .rail {
  background: var(--color-bg-inset) !important;
}
.stat b, .kpi b, .metric b {
  color: var(--color-text-primary) !important;
  font-variant-numeric: tabular-nums;
}

/* ============ 8. 会话列表：选中态更克制 ============ */
.conv-item.active, .hist-item.active {
  background: #EEF1F6 !important;
  color: var(--color-text-primary) !important;
}

/* ============ 9. 减少无谓位移感 ============ */
.ob-step, .mem-chip, .conv-item { transition-duration: .15s; }

@media (prefers-reduced-motion: reduce) {
  .onboard .ob-step, .mem-chip { transition: none !important; transform: none !important; }
}


/* =============================================================================
 * Phase 2 —— 首屏重排 / 工具行收敛 / 左栏降噪 / 审计页对齐
 * 只覆盖视觉，不改任何 id / onclick / 事件绑定；DOM 结构保持（文字用 font-size:0 收起）
 * ========================================================================== */

/* ---------- 1. 首屏容器：整块居中（Ivan 2026-10-28 定稿） ---------- */
.empty-state {
  max-width: 760px !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 40px 0 24px 0 !important;
  text-align: center !important;
}
/* 文字层居中；卡片内部保持左对齐，避免卡片里文字居中难看 */
.empty-state .hero,
.empty-state .hero-eyebrow,
.empty-state .hero-line,
.empty-state .lede,
.empty-state .big,
.empty-state .empty-sub { text-align: center !important; }
.empty-state .onboard-hd { justify-content: center !important; }
.empty-state .ob-step { text-align: left !important; }
.empty-state .cap-card { text-align: center !important; }
.empty-state .hero { margin: 0 0 26px !important; }
.hero-eyebrow { margin-bottom: 9px !important; }
.empty-state .hero-line b { margin-top: 9px !important; }  /* 标题→副标 9px */

/* 演示条：收紧内边距，六卡一行 */
.empty-state .onboard {
  padding: 12px 14px 12px !important;
  margin: 0 0 26px !important;   /* 演示条→「从一个问题开始」26px */
}
.onboard-hd { margin-bottom: 10px !important; font-size: 11.5px !important; letter-spacing: .06em; }
.onboard .onboard-steps { gap: 8px !important; }
.onboard .ob-step { padding: 8px 9px !important; gap: 6px !important; }
.onboard .ob-step .ob-n { width: 16px !important; height: 16px !important; font-size: 10px !important; flex: none; }
.onboard .ob-step .ob-body { gap: 2px !important; }
.onboard .ob-step .ob-t {
  font-size: 12px !important; font-weight: 500 !important;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.onboard .ob-step .ob-d {
  font-size: 11px !important;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.onboard-bridge {
  margin: 8px 0 0 !important; padding: 0 !important;
  text-align: center !important; font-size: 11px !important; line-height: 1.5;
  color: var(--color-text-tertiary) !important;
  border: 0 !important; background: none !important;
}
.onboard-ft { margin-top: 8px !important; font-size: 10.5px !important; text-align: center; }

/* 桌面 ≥1100：6 列一行；只留 序号 + 短标题
   注意：DOM 仍是两个 .onboard-steps（第一行 3 + 闭环 3），E2E 与引导脚本依赖该结构，
   所以这里用 .onboard 自身 grid + 子容器 display:contents 把 6 张卡摆进同一行。 */
@media (min-width: 1100px) {
  .empty-state .onboard {
    display: grid !important;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    column-gap: 8px;
    row-gap: 8px;
  }
  .onboard .onboard-steps { display: contents !important; }
  .onboard .onboard-hd { grid-column: 1 / -1; grid-row: 1; 
    margin: 0 0 4px !important; justify-content: flex-start !important; }
  .onboard .onboard-steps > .ob-step:nth-child(1) { grid-column: 1; grid-row: 2; }
  .onboard .onboard-steps > .ob-step:nth-child(2) { grid-column: 2; grid-row: 2; }
  .onboard .onboard-steps > .ob-step:nth-child(3) { grid-column: 3; grid-row: 2; }
  .onboard .onboard-steps--loop > .ob-step:nth-child(1) { grid-column: 4; grid-row: 2; }
  .onboard .onboard-steps--loop > .ob-step:nth-child(2) { grid-column: 5; grid-row: 2; }
  .onboard .onboard-steps--loop > .ob-step:nth-child(3) { grid-column: 6; grid-row: 2; }
  .onboard .onboard-bridge { grid-column: 1 / -1; grid-row: 3; margin: 0 !important; }
  .onboard .onboard-ft { grid-column: 1 / -1; grid-row: 4; margin-top: 0 !important; }
  .onboard .ob-step { padding: 8px 8px !important; }
  .onboard .ob-step .ob-d { display: none !important; }   /* 留 DOM，仅视觉收起 */
  .onboard .ob-step .ob-go { display: none !important; }
  .onboard .ob-step .ob-t { font-size: 12px !important; }
}
/* 中段 768~1100：3 列 */
@media (min-width: 768px) and (max-width: 1099.98px) {
  .onboard .onboard-steps { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}
/* 移动端：1 列 */
@media (max-width: 767.98px) {
  .onboard .onboard-steps { grid-template-columns: minmax(0, 1fr) !important; }
  .onboard .ob-step .ob-d { white-space: nowrap; }
}

/* 区块标题与留白 */
.empty-state .big { margin: 0 0 6px !important; }
.empty-state .empty-sub { font-size: 12px !important; color: var(--color-text-tertiary) !important; }

/* ---------- 2. 能力卡：小卡（64px）、去大图标 ---------- */
.empty-state .cap-grid {
  max-width: none !important;
  margin: 18px 0 0 !important;
  gap: 8px !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
.empty-state .cap-card {
  height: 64px !important; padding: 9px 12px !important;
  border-radius: var(--radius-lg) !important;
  display: flex !important; flex-direction: column; justify-content: center;
  box-shadow: none !important;
}
.empty-state .cap-card::before { display: none !important; }
.empty-state .cap-card:hover { transform: none !important; box-shadow: none !important; border-color: var(--color-border-strong) !important; }
.empty-state .cap-card .cap-ic { display: none !important; }
.empty-state .cap-card .cap-t { font-size: 13px !important; font-weight: 500 !important; margin: 0 0 2px !important; }
.empty-state .cap-card .cap-ex {
  margin: 0 !important; padding: 0 !important; background: none !important;
  font-family: var(--font-sans) !important; font-size: 11px !important;
  color: var(--color-text-tertiary) !important;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
@media (max-width: 1099.98px) {
  .empty-state .cap-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 620px) {
  .empty-state .cap-grid { grid-template-columns: minmax(0, 1fr) !important; }
}

/* ---------- 3. 工具行：纯图标（text 用 font-size:0 收起，元素与 id 全保留） ---------- */
.composer .mode-row { margin-bottom: 9px !important; }
.composer .mode-row .set {
  display: flex !important; align-items: center;
  gap: 14px !important; font-size: 0 !important;
}
.composer .mode-row .set .ic {
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 24px; height: 24px; padding: 4px !important; gap: 0 !important;
  font-size: 0 !important; color: var(--color-text-tertiary) !important;
  border-radius: var(--radius-sm);
}
.composer .mode-row .set .ic:hover {
  color: var(--color-text-primary) !important;
  background: var(--color-bg-subtle) !important;
}
.composer .mode-row .set .ic .ui-ic { width: 16px !important; height: 16px !important; }
#ctxCount { font-size: 0 !important; }

/* 格式 toggle：两颗图标，不要 MD/DOCX 文字与「双出」说明 */
#fmtToggleWrap .fmt-toggle {
  border: 0 !important; background: none !important; gap: 8px !important; font-size: 0 !important;
}
#fmtToggleWrap .fmt-toggle .seg {
  display: inline-flex !important; align-items: center; justify-content: center;
  width: 24px; height: 24px; padding: 4px !important;
  border-radius: var(--radius-sm); color: var(--color-text-tertiary) !important;
  background: none !important;
}
#fmtToggleWrap .fmt-toggle .seg .ic { margin: 0 !important; font-size: 0 !important; }
#fmtToggleWrap .fmt-toggle .seg .ui-ic { width: 16px !important; height: 16px !important; }
#fmtToggleWrap .fmt-toggle .seg.active { color: var(--color-primary) !important; background: var(--color-bg-subtle) !important; }
#fmtToggleWrap .fmt-toggle .seg:hover:not(.active) { color: var(--color-text-primary) !important; background: none !important; }
#fmtToggleWrap .fmt-hint { display: none !important; }

/* 「试试」行降权 */
.composer .hint { font-size: 11.5px !important; color: var(--color-text-tertiary) !important; gap: 12px !important; }
.composer .hint .try { color: var(--color-text-tertiary) !important; border-bottom-color: var(--color-border) !important; }
.composer .hint .try:hover { color: var(--color-text-secondary) !important; }

/* ---------- 4. 左栏：行高 34 / 蓝胶囊 hover 才出 / 0 产物 hover 才出 ---------- */
#sessionList .hist-item {
  min-height: 34px !important;
  padding: 3px 8px !important;
  margin-bottom: 4px !important;
  border-color: transparent !important;
  background: transparent !important;
  box-shadow: none !important;
  transform: none !important;
  display: flex !important; flex-direction: column; justify-content: center;
  transition: background .15s, border-color .15s !important;
}
#sessionList .hist-item:hover { background: var(--color-bg-inset) !important; border-color: transparent !important; }
#sessionList .hist-item.active {
  background: #EEF1F6 !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
#sessionList .hist-item .t { font-size: 12.5px !important; font-weight: 500 !important; line-height: 1.15 !important; }
#sessionList .hist-item .s { font-size: 10px !important; margin-top: 0 !important; line-height: 1.15 !important; }
#sessionList .hist-item .st { line-height: 1; padding: 2px 6px !important; font-size: 9.5px !important; }
#sessionList .hist-item.has-arts { border-left: 2px solid var(--color-primary) !important; padding-left: 6px !important; }
#sessionList .hist-item .st { opacity: 0; transition: opacity .15s; }
#sessionList .hist-item:hover .st,
#sessionList .hist-item.active .st { opacity: 1; }
#sessionList .hist-item .arts-zero { opacity: 0; transition: opacity .15s; }
#sessionList .hist-item:hover .arts-zero { opacity: 1; }

/* ---------- 5. 审计页：与首页同一视觉基准（只改外观，不动结构/事件） ---------- */
.wrap { max-width: 1100px !important; padding: 32px 34px 56px !important; }
.site-header { padding-bottom: 18px !important; border-bottom-color: var(--color-border) !important; }
.site-header h1 {
  font-family: var(--font-sans) !important;
  font-size: var(--ta-display) !important;
  font-weight: 650 !important;
  letter-spacing: -.012em !important;
  line-height: 1.24 !important;
  margin: 0 0 9px !important;
}
.site-header .sub { font-size: var(--ta-lede) !important; line-height: 1.55 !important; }
.eyebrow { font-size: 11px !important; letter-spacing: .16em !important; margin-bottom: 9px !important; }
.wrap .tabs { margin-top: 22px !important; }
.wrap .card, .wrap .task-card, .wrap .stats-bar .stat, .wrap .evt {
  border-radius: var(--radius-lg) !important;
  border-color: var(--color-border) !important;
}
@media (max-width: 900px) {
  .wrap { padding: 24px 20px 40px !important; }
}

/* ---------- 6. 移动端首屏：回到 20px 左内边距，仍左对齐 ---------- */
@media (max-width: 767.98px) {
  .stream { padding-left: 20px !important; padding-right: 20px !important; }
  .empty-state {
    max-width: none !important;
    padding: 24px 0 20px 0 !important;
  }
  .hero-line { font-size: 26px !important; }
  .hero-line b { font-size: 14px !important; }
  .empty-state .onboard { padding: 10px 10px !important; }
  .onboard-hd { justify-content: flex-start !important; }
  .onboard-bridge { text-align: center !important; }
  .onboard-ft { text-align: center !important; }
}


/* =============================================================================
 * Phase 2.1 修补（2026-10-28）
 * ========================================================================== */

/* 1. 「移除」不再用风险红：红色属于风险语义，删除动作应中性 */
.btn-wl-remove {
  color: var(--color-text-secondary) !important;
  border-color: var(--color-border) !important;
  background: transparent !important;
}
.btn-wl-remove:hover {
  color: var(--color-danger-text) !important;
  border-color: var(--color-danger-border) !important;
}

/* 2. 「生成今天的晨会简报」降为次级，不与发送按钮抢主行动 */
#briefingbtn {
  background: var(--color-bg-surface) !important;
  color: var(--color-text-primary) !important;
  border: 1px solid var(--color-border-strong) !important;
  box-shadow: none !important;
}

/* 3. 手机端：右栏 FAB 上移，避免压住发送按钮 */
@media (max-width: 900px) {
  /* 改成右侧贴边竖条（抽屉把手），彻底避开输入区与 chips */
  .right-fab {
    right: 0 !important;
    left: auto !important;
    top: 50% !important;
    bottom: auto !important;
    transform: translateY(-50%) !important;
    width: 30px !important;
    padding: 12px 5px !important;
    border-radius: 8px 0 0 8px !important;
    writing-mode: vertical-rl;
    letter-spacing: .08em;
    font-size: 11px !important;
    opacity: .92;
  }
  body.tour-active .right-fab { display: none !important; }
  /* 顶部历史按钮与品牌让位，避免贴边重叠 */
  .app-header .brand, .app-header .logo { margin-left: 54px !important; }
}


/* ---------- 颜色收口（2026-10-28 补）：只留四色，其余中性 ---------- */

/* 右栏指标数字：中性 + 等宽（原来用品牌蓝当数值色） */
.stat .n { color: var(--color-text-primary) !important; font-variant-numeric: tabular-nums; }
.stat .label { color: var(--color-text-tertiary) !important; }
.stat .d { color: var(--color-text-tertiary) !important; }

/* 工具行图标（含格式切换）：统一中性，hover 才转主色 */
.composer .mode-row .set .ic,
.fmt-toggle, .fmt-toggle .ic,
.composer .mode-row .set svg {
  color: var(--color-text-tertiary) !important;
  background: transparent !important;
  border-color: transparent !important;
}
.composer .mode-row .set .ic:hover,
.fmt-toggle:hover, .fmt-toggle:hover .ic {
  color: var(--color-text-primary) !important;
}

/* 记忆 chips 前的彩色圆点统一为中性（颜色不承担语义） */
.mem-chip::before,
.mem-chip .dot,
.mem-chip i {
  background: var(--color-text-disabled) !important;
  border-color: var(--color-text-disabled) !important;
}


/* 结果表：表头不逐字换行（密级角标挤宽后会竖排） */
table.result thead th {
  white-space: nowrap;
  letter-spacing: .06em;
}
table.result td { word-break: break-word; }
/* 密级角标压紧，别把"来源"列撑太宽 */
.res-sec, .cls-chip { font-size: 10px !important; padding: 1px 4px !important; margin-left: 4px; }

/* 结果表：窄容器里靠"压缩密度"换宽度，而不是 nowrap（nowrap 会把表撑出卡片） */
table.result { font-size: 13px; }
table.result th, table.result td { padding: 6px 6px; }
table.result thead th { letter-spacing: .04em; }
table.result td.val { font-size: 22px !important; padding-right: 8px; }
table.result td { overflow-wrap: anywhere; }

/* 固定列宽：公司/单位/状态定宽，数值与来源吃剩余空间（避免竖排又不溢出） */
table.result { table-layout: fixed; }
table.result th:nth-child(1), table.result td:nth-child(1) { width: 96px; }
table.result th:nth-child(2), table.result td:nth-child(2) { width: 250px; }
table.result th:nth-child(3), table.result td:nth-child(3) { width: 72px; }
table.result th:nth-child(4), table.result td:nth-child(4) { width: 44px; }
table.result th:nth-child(6), table.result td:nth-child(6) { width: 58px; }
table.result td:nth-child(1), table.result td:nth-child(6) { white-space: nowrap; }

/* 审计空态说明（黄底太吵，用浅灰说明块） */
.empty-hint { margin: 6px 0 0; font-size: 12px; line-height: 1.7; color: var(--color-text-tertiary); }
.empty-hint a { color: var(--color-primary); text-decoration: none; margin-left: 4px; }


/* 演示版：只弹 toast、不做实事的占位控件不展示 ——
   留着给人的观感是"点了没反应"，比少一个按钮更伤真实感。 */
#uploadBtn,
#depthBtn,
#ctxToggle,
.composer [onclick*="语音输入"],
.composer .ic[title="语音输入"] {
  visibility: hidden !important;  /* 保留占位：display:none 会让输入区变矮、chips 下移，触发引导遮挡回归 */
  pointer-events: none !important;
}


/* 语音占位：同样只弹 toast，撤掉 */
.composer .ic[title="语音输入"] { display: none !important; }


/* 文件偏好：锁 24px 高（与旧分段控件等高，避免改变输入区几何） */
.fp { height: 24px; display: inline-flex; align-items: center; line-height: 1; }
.fp-btn { height: 24px; box-sizing: border-box; display: inline-flex; align-items: center; gap: 4px; padding: 0 6px; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-bg-surface); color: var(--color-text-secondary); font-size: 11px; line-height: 1; cursor: pointer; }
.fp-btn:hover { border-color: var(--color-border-strong); color: var(--color-text-primary); }
.fp-ic { display: inline-flex; color: var(--color-text-tertiary); }
.fp-v { font-size: 10px; font-weight: 600; color: var(--color-text-primary); background: var(--color-bg-inset); border-radius: 2px; padding: 1px 3px; }
.fp-c { font-size: 9px; color: var(--color-text-tertiary); }
