/* themes.css — 5 款浅色渐变主题（精调版）
 *
 * 用法：在 <html> 上设置 data-theme="<id>"。
 * data-theme 缺省或 "default" = 保持原有深色主题（这套 CSS 全部不生效）
 *
 * 设计原则：
 * 不映射到旧的 --bg/--text 等老变量上（旧深色逻辑里大量硬编码 #2a2a2a 等，
 *     若只换语义变量会留下深色块），改为精准 override 到具体选择器。
 * 5 个主题共享同一套覆盖规则，差异只在变量。
 * 所有 override 带 !important，否则压不过原本就内联或更高特异度的规则。
 */

/* ============ 主题变量 ============ */

[data-theme="morning-mist"] {
  --t-bg-grad: linear-gradient(135deg, #F5E6FF 0%, #E8D5F5 40%, #D4B8F0 100%);
  --t-primary: #8B6BAE;
  --t-primary-hover: #7A5C9D;
  --t-text: #4A3470;
  --t-text-soft: #6B5494;
  --t-accent: #B89FD8;
  --t-surface: #FBF5FF;
  --t-surface-2: #F2E4FA;
  --t-surface-3: #E6D2F2;
  --t-border: #D4B8F0;
  --t-border-soft: #E6D2F2;
  --t-user-bubble: #DCC2EE;
  --t-assistant-bubble: #FBF5FF;
  --t-tool-bubble: #F0E0CF;
  --t-tool-text: #6B4A24;
  --t-tool-border: #D4B89A;
  --t-danger: #B0414A;
  --t-danger-bg: #F5DDE0;
  --t-success: #4A8862;
  --t-code-bg: #F2E4FA;
  --t-code-text: #4A3470;
}

[data-theme="sage-sea"] {
  --t-bg-grad: linear-gradient(135deg, #E6F4F1 0%, #C8E6E0 40%, #A8D4CC 100%);
  --t-primary: #4A8B82;
  --t-primary-hover: #3D766E;
  --t-text: #1E4A44;
  --t-text-soft: #3A6E68;
  --t-accent: #7BBDB4;
  --t-surface: #F0F8F6;
  --t-surface-2: #DFEFEC;
  --t-surface-3: #C8E6E0;
  --t-border: #A8D4CC;
  --t-border-soft: #C8E6E0;
  --t-user-bubble: #B8DAD4;
  --t-assistant-bubble: #F0F8F6;
  --t-tool-bubble: #E8E2C8;
  --t-tool-text: #5A5028;
  --t-tool-border: #C8C098;
  --t-danger: #A04040;
  --t-danger-bg: #F0DCDC;
  --t-success: #3D7A50;
  --t-code-bg: #DFEFEC;
  --t-code-text: #1E4A44;
}

[data-theme="oat-latte"] {
  --t-bg-grad: linear-gradient(135deg, #FAF6F0 0%, #EDE0D0 40%, #D4C0A8 100%);
  --t-primary: #8B7355;
  --t-primary-hover: #76603F;
  --t-text: #3A2E1E;
  --t-text-soft: #6E5B40;
  --t-accent: #BBA888;
  --t-surface: #FDFAF4;
  --t-surface-2: #F2E9D9;
  --t-surface-3: #E2D2B8;
  --t-border: #D4C0A8;
  --t-border-soft: #E2D2B8;
  --t-user-bubble: #D8C5A8;
  --t-assistant-bubble: #FDFAF4;
  --t-tool-bubble: #E8DCB8;
  --t-tool-text: #5A4820;
  --t-tool-border: #C8B488;
  --t-danger: #A04848;
  --t-danger-bg: #F0DDDD;
  --t-success: #5A7848;
  --t-code-bg: #F2E9D9;
  --t-code-text: #3A2E1E;
}

[data-theme="ink-frost"] {
  --t-bg-grad: linear-gradient(135deg, #EAF0F8 0%, #C8D8EC 40%, #A8BDD8 100%);
  --t-primary: #4A6888;
  --t-primary-hover: #3A5474;
  --t-text: #1A3550;
  --t-text-soft: #3A5474;
  --t-accent: #7A9CBD;
  --t-surface: #F2F6FB;
  --t-surface-2: #DCE6F2;
  --t-surface-3: #C8D8EC;
  --t-border: #A8BDD8;
  --t-border-soft: #C8D8EC;
  --t-user-bubble: #B8CDE4;
  --t-assistant-bubble: #F2F6FB;
  --t-tool-bubble: #E8DCC8;
  --t-tool-text: #5A4828;
  --t-tool-border: #C8B498;
  --t-danger: #A0494A;
  --t-danger-bg: #F0DCDD;
  --t-success: #3A7060;
  --t-code-bg: #DCE6F2;
  --t-code-text: #1A3550;
}

[data-theme="dusty-rose"] {
  --t-bg-grad: linear-gradient(135deg, #F8EEF0 0%, #E8D0D5 40%, #CEB0B8 100%);
  --t-primary: #9A6B74;
  --t-primary-hover: #845660;
  --t-text: #3E2830;
  --t-text-soft: #7A5460;
  --t-accent: #B8909A;
  --t-surface: #FCF4F6;
  --t-surface-2: #F0DDE1;
  --t-surface-3: #E2C8CE;
  --t-border: #CEB0B8;
  --t-border-soft: #E2C8CE;
  --t-user-bubble: #E0C0C8;
  --t-assistant-bubble: #FCF4F6;
  --t-tool-bubble: #E8DCC8;
  --t-tool-text: #5A4828;
  --t-tool-border: #C8B498;
  --t-danger: #A04848;
  --t-danger-bg: #F0DCDC;
  --t-success: #5A7858;
  --t-code-bg: #F0DDE1;
  --t-code-text: #3E2830;
}

/* ============ 旧变量名 → 主题变量 别名桥接 ============ */
/* admin 早期 CSS 混用了 --primary-color / --text-primary / --border 等命名，
 * 但主题只定义了 --t-* 一套，这些旧名从未被定义（浅色覆盖块因此失效）。
 * 仅在浅色主题作用域内把旧名映射到对应 --t-*，
 * 默认深色主题（data-theme=default 或缺省）完全不受影响。 */
[data-theme]:not([data-theme="default"]) {
  --primary-color: var(--t-primary);
  --primary: var(--t-primary);
  --primary-hover: var(--t-primary-hover);
  --accent-color: var(--t-accent);
  --accent: var(--t-accent);
  --text-primary: var(--t-text);
  --text: var(--t-text);
  --text-secondary: var(--t-text-soft);
  --muted: var(--t-text-soft);
  --surface-color: var(--t-surface);
  --border-color: var(--t-border);
  --border: var(--t-border);
  --background-gradient: var(--t-bg-grad);
  --warning: #c0883a;
}

/* ============ 通用覆盖规则（5 主题共享） ============ */

[data-theme]:not([data-theme="default"]) {
  background: var(--t-bg-grad) fixed !important;
  color-scheme: light;
}
[data-theme]:not([data-theme="default"]) body {
  background: transparent !important;
  color: var(--t-text) !important;
}

/* ---- 侧边栏 ---- */
[data-theme]:not([data-theme="default"]) #sidebar {
  background: var(--t-surface) !important;
  border-right-color: var(--t-border) !important;
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) .sidebar-header h1,
[data-theme]:not([data-theme="default"]) .conv-item,
[data-theme]:not([data-theme="default"]) .proj-item { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .proj-item:hover,
[data-theme]:not([data-theme="default"]) .conv-item:hover { background: var(--t-surface-3) !important; }
[data-theme]:not([data-theme="default"]) .section-head { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .section-head button:hover { background: var(--t-surface-3) !important; color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .new-btn { background: var(--t-primary) !important; color: #fff !important; }
[data-theme]:not([data-theme="default"]) .new-btn:hover { background: var(--t-primary-hover) !important; opacity: 1 !important; }
[data-theme]:not([data-theme="default"]) .conv-del:hover { background: var(--t-danger-bg) !important; color: var(--t-danger) !important; }
[data-theme]:not([data-theme="default"]) .announcement-bar {
  background: var(--t-surface-2) !important;
  border-bottom-color: var(--t-border-soft) !important;
}
[data-theme]:not([data-theme="default"]) .announcement-scroll span { color: var(--t-text-soft) !important; }

/* ---- 顶部 / 切换器 ---- */
[data-theme]:not([data-theme="default"]) #main,
[data-theme]:not([data-theme="default"]) #chatHeader { background: transparent !important; color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) #chatHeader { border-bottom-color: var(--t-border) !important; }
[data-theme]:not([data-theme="default"]) .cfg-btn {
  background: var(--t-surface) !important;
  color: var(--t-text) !important;
  border-color: var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) .cfg-btn:hover { background: var(--t-surface-2) !important; }
[data-theme]:not([data-theme="default"]) .cfg-menu {
  background: var(--t-surface) !important;
  border-color: var(--t-border) !important;
  color: var(--t-text) !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.08) !important;
}
[data-theme]:not([data-theme="default"]) .cfg-menu-action,
[data-theme]:not([data-theme="default"]) .cfg-menu a { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .cfg-menu-action:hover,
[data-theme]:not([data-theme="default"]) .cfg-menu a:hover { background: var(--t-surface-2) !important; }
[data-theme]:not([data-theme="default"]) .header-action {
  background: var(--t-surface) !important;
  color: var(--t-text) !important;
  border-color: var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) .header-action:hover { background: var(--t-surface-2) !important; }
[data-theme]:not([data-theme="default"]) .header-action.logout:hover {
  border-color: var(--t-danger) !important;
  color: var(--t-danger) !important;
}

/* ---- 消息气泡 ---- */
[data-theme]:not([data-theme="default"]) .msg.user {
  background: var(--t-user-bubble) !important;
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) .msg.assistant {
  background: var(--t-assistant-bubble) !important;
  color: var(--t-text) !important;
  border: 1px solid var(--t-border-soft) !important;
}
[data-theme]:not([data-theme="default"]) .msg.tool {
  background: var(--t-tool-bubble) !important;
  color: var(--t-tool-text) !important;
  border-color: var(--t-tool-border) !important;
}
[data-theme]:not([data-theme="default"]) .msg.tool .tool-hint { color: var(--t-tool-text) !important; opacity: 0.75; }

/* ---- 代码块 / 引用 ---- */
[data-theme]:not([data-theme="default"]) pre,
[data-theme]:not([data-theme="default"]) code,
[data-theme]:not([data-theme="default"]) .code-wrap {
  background: var(--t-code-bg) !important;
  color: var(--t-code-text) !important;
  border-color: var(--t-border-soft) !important;
}
[data-theme]:not([data-theme="default"]) blockquote { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .code-copy {
  color: var(--t-text-soft) !important;
  border-color: var(--t-border) !important;
  background: var(--t-surface) !important;
}
[data-theme]:not([data-theme="default"]) .code-copy.copied { color: var(--t-success) !important; border-color: var(--t-success) !important; }

/* ---- 输入区 / 表单 / 按钮 ---- */
[data-theme]:not([data-theme="default"]) #composer,
[data-theme]:not([data-theme="default"]) .composer {
  background: var(--t-surface) !important;
  border-color: var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) textarea,
[data-theme]:not([data-theme="default"]) input,
[data-theme]:not([data-theme="default"]) select {
  background: var(--t-surface) !important;
  color: var(--t-text) !important;
  border-color: var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) textarea:focus,
[data-theme]:not([data-theme="default"]) input:focus,
[data-theme]:not([data-theme="default"]) select:focus { border-color: var(--t-primary) !important; outline: none; }
[data-theme]:not([data-theme="default"]) button.send,
[data-theme]:not([data-theme="default"]) button.primary,
[data-theme]:not([data-theme="default"]) .modal-actions button.primary {
  background: var(--t-primary) !important;
  color: #fff !important;
  border: none !important;
}
[data-theme]:not([data-theme="default"]) button.send:hover,
[data-theme]:not([data-theme="default"]) button.primary:hover { background: var(--t-primary-hover) !important; opacity: 1 !important; }
[data-theme]:not([data-theme="default"]) button.send.stop { background: var(--t-danger) !important; }
[data-theme]:not([data-theme="default"]) button.send.stop:hover { background: var(--t-danger) !important; filter: brightness(0.9); }
[data-theme]:not([data-theme="default"]) .modal-actions button {
  background: var(--t-surface-2) !important;
  color: var(--t-text) !important;
  border: 1px solid var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) .modal-actions button:hover { background: var(--t-surface-3) !important; }
[data-theme]:not([data-theme="default"]) .modal-actions button.primary { background: var(--t-primary) !important; color: #fff !important; border: none !important; }
[data-theme]:not([data-theme="default"]) .pending-item {
  background: var(--t-surface-2) !important;
  border-color: var(--t-border) !important;
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) .pending-item .pi-remove { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .pending-item .pi-remove:hover { color: var(--t-danger) !important; }

/* ---- modal 通用 ---- */
[data-theme]:not([data-theme="default"]) .modal-bg { background: rgba(30,20,40,0.35) !important; }
[data-theme]:not([data-theme="default"]) .modal {
  background: var(--t-surface) !important;
  color: var(--t-text) !important;
  border: 1px solid var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) .modal h2,
[data-theme]:not([data-theme="default"]) .modal h3,
[data-theme]:not([data-theme="default"]) .modal label { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .admin-banner {
  background: var(--t-surface-2) !important;
  color: var(--t-text-soft) !important;
  border-color: var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) .admin-msg {
  background: var(--t-surface) !important;
  border-color: var(--t-border-soft) !important;
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) .admin-msg.user { background: var(--t-user-bubble) !important; }
[data-theme]:not([data-theme="default"]) .admin-msg.assistant { background: var(--t-surface-2) !important; }
[data-theme]:not([data-theme="default"]) .admin-msg-head { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .admin-tab { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .admin-tab.active { color: var(--t-primary) !important; border-bottom-color: var(--t-primary) !important; }
[data-theme]:not([data-theme="default"]) .welcome-box .greet-time { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .welcome-box .greet-msg { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .input-toggles { color: var(--t-text-soft) !important; }

/* ============ admin.html 后台 ============ */
[data-theme]:not([data-theme="default"]) .header,
[data-theme]:not([data-theme="default"]) .tabs {
  background: var(--t-surface) !important;
  border-color: var(--t-border) !important;
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) .header .title { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .header a,
[data-theme]:not([data-theme="default"]) .header button { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .header a:hover,
[data-theme]:not([data-theme="default"]) .header button:hover { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .tab { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .tab:hover { color: var(--t-text) !important; background: var(--t-surface-2) !important; }
[data-theme]:not([data-theme="default"]) .tab.active {
  color: var(--t-primary) !important;
  border-bottom-color: var(--t-primary) !important;
  background: var(--t-surface-2) !important;
}
[data-theme]:not([data-theme="default"]) .btn {
  background: var(--t-primary) !important;
  color: #fff !important;
  border: none !important;
}
[data-theme]:not([data-theme="default"]) .btn:hover { background: var(--t-primary-hover) !important; }
[data-theme]:not([data-theme="default"]) .btn.ghost {
  background: transparent !important;
  border: 1px solid var(--t-border) !important;
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) .btn.ghost:hover { border-color: var(--t-primary) !important; color: var(--t-primary) !important; }
[data-theme]:not([data-theme="default"]) .btn.danger { background: var(--t-danger) !important; }
[data-theme]:not([data-theme="default"]) .btn.danger:hover { background: var(--t-danger) !important; filter: brightness(0.9); }
[data-theme]:not([data-theme="default"]) .btn.success { background: var(--t-success) !important; }
[data-theme]:not([data-theme="default"]) th { color: var(--t-text-soft) !important; border-bottom-color: var(--t-border) !important; }
[data-theme]:not([data-theme="default"]) td { border-bottom-color: var(--t-border-soft) !important; color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) tbody tr:nth-child(even) { background: var(--t-surface-2) !important; }
[data-theme]:not([data-theme="default"]) tbody tr:hover { background: var(--t-surface-3) !important; }
[data-theme]:not([data-theme="default"]) .modal-mask { background: rgba(30,20,40,0.4) !important; }
[data-theme]:not([data-theme="default"]) .modal-head,
[data-theme]:not([data-theme="default"]) .modal-foot { border-color: var(--t-border) !important; color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .modal-head .close { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .modal-head .close:hover { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .form-label,
[data-theme]:not([data-theme="default"]) .form-hint,
[data-theme]:not([data-theme="default"]) .hint { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .chip { background: var(--t-primary) !important; color: #fff !important; }
[data-theme]:not([data-theme="default"]) .stat-card {
  background: var(--t-surface) !important;
  border: 1px solid var(--t-border) !important;
  border-left: 4px solid var(--t-primary) !important;
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) .stat-card:nth-child(2) { border-left-color: var(--t-accent) !important; }
[data-theme]:not([data-theme="default"]) .stat-card:nth-child(3) { border-left-color: var(--t-success) !important; }
[data-theme]:not([data-theme="default"]) .stat-card:nth-child(4) { border-left-color: var(--t-primary-hover) !important; }
[data-theme]:not([data-theme="default"]) .stat-card:nth-child(5) { border-left-color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .stat-card .label { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .stat-card .value { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .user-row { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .user-row:hover { background: var(--t-surface-2) !important; border-color: var(--t-border) !important; }
[data-theme]:not([data-theme="default"]) .user-row .meta { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .badge.admin {
  background: var(--t-surface-2) !important;
  color: var(--t-primary) !important;
  border: 1px solid var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) .badge.disabled {
  background: var(--t-surface-2) !important;
  color: var(--t-text-soft) !important;
  border-color: var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) .viewer-panel {
  background: var(--t-surface) !important;
  border-color: var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) .viewer-head { border-color: var(--t-border) !important; }
[data-theme]:not([data-theme="default"]) .viewer-tabs { border-color: var(--t-border) !important; }
[data-theme]:not([data-theme="default"]) .viewer-tab { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .viewer-tab:hover { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .viewer-tab.active {
  color: var(--t-primary) !important;
  border-bottom-color: var(--t-primary) !important;
}
[data-theme]:not([data-theme="default"]) .conv-row { border-bottom-color: var(--t-border-soft) !important; color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .conv-row:hover { background: var(--t-surface-2) !important; }
[data-theme]:not([data-theme="default"]) .conv-row .sub { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .msg-item.user {
  background: var(--t-user-bubble) !important;
  color: var(--t-text) !important;
  border-left-color: var(--t-primary) !important;
}
[data-theme]:not([data-theme="default"]) .msg-item.assistant {
  background: var(--t-surface-2) !important;
  color: var(--t-text) !important;
  border-left-color: var(--t-accent) !important;
}
[data-theme]:not([data-theme="default"]) .msg-item .head { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .notify-toast {
  background: var(--t-surface) !important;
  border-color: var(--t-primary) !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.1) !important;
}
[data-theme]:not([data-theme="default"]) .notify-toast .nt-title { color: var(--t-primary) !important; }
[data-theme]:not([data-theme="default"]) .notify-toast .nt-body { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .notify-toast .nt-go { background: var(--t-primary) !important; color: #fff !important; }
[data-theme]:not([data-theme="default"]) .notify-toast .nt-dismiss { background: var(--t-surface-2) !important; color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .kb-upload-panel {
  background: var(--t-surface) !important;
  border-color: var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) .kb-upload-panel .kb-upload-drop {
  border-color: var(--t-border) !important;
  background: var(--t-surface-2) !important;
  color: var(--t-text-soft) !important;
}
[data-theme]:not([data-theme="default"]) .kb-upload-panel .kb-upload-drop.dragover {
  border-color: var(--t-primary) !important;
  background: var(--t-surface-3) !important;
}
[data-theme]:not([data-theme="default"]) .kb-upload-panel .kb-upload-drop .label { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .kb-upload-panel .kb-upload-drop .file-name { color: var(--t-primary) !important; }
[data-theme]:not([data-theme="default"]) .kb-upload-panel .kb-upload-foot { border-color: var(--t-border) !important; }
[data-theme]:not([data-theme="default"]) .kb-sidebar {
  background: var(--t-surface) !important;
  border-color: var(--t-border) !important;
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) .kb-sidebar-head { border-color: var(--t-border) !important; }
[data-theme]:not([data-theme="default"]) .kb-sidebar-head .title { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .section-header,
[data-theme]:not([data-theme="default"]) .section-block {
  background: var(--t-surface) !important;
  border-color: var(--t-border) !important;
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) .acl-widget .acl-list {
  border-color: var(--t-border) !important;
  background: var(--t-surface) !important;
}
[data-theme]:not([data-theme="default"]) .acl-widget .acl-item:hover { background: var(--t-surface-2) !important; }

/* ---- 登录页 ---- */
[data-theme]:not([data-theme="default"]) .card {
  background: var(--t-surface) !important;
  border-color: var(--t-border) !important;
  color: var(--t-text) !important;
  box-shadow: 0 8px 32px rgba(0,0,0,0.08) !important;
}
[data-theme]:not([data-theme="default"]) .card h1 { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .subtitle,
[data-theme]:not([data-theme="default"]) label,
[data-theme]:not([data-theme="default"]) .hint { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .card button {
  background: var(--t-primary) !important;
  color: #fff !important;
}
[data-theme]:not([data-theme="default"]) .card button:hover { background: var(--t-primary-hover) !important; opacity: 1 !important; }
[data-theme]:not([data-theme="default"]) .toggle { color: var(--t-primary) !important; }

/* ---- 滚动条 ---- */
[data-theme]:not([data-theme="default"]) ::-webkit-scrollbar { width: 10px; height: 10px; }
[data-theme]:not([data-theme="default"]) ::-webkit-scrollbar-track { background: transparent; }
[data-theme]:not([data-theme="default"]) ::-webkit-scrollbar-thumb { background: var(--t-border) !important; border-radius: 6px; }
[data-theme]:not([data-theme="default"]) ::-webkit-scrollbar-thumb:hover { background: var(--t-accent) !important; }


/* ---- 补丁：选中态对话项 / 输入区底栏 ---- */
[data-theme]:not([data-theme="default"]) .conv-item.active {
  background: var(--t-surface-3) !important;
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) footer.input-area,
[data-theme]:not([data-theme="default"]) .input-area {
  background: var(--t-surface) !important;
  border-top-color: var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) .input-toggles { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .input-toggles input[type="checkbox"] { accent-color: var(--t-primary) !important; }

/* 发送按钮里"知识库 / 联网搜索"那条小提示文字 */
[data-theme]:not([data-theme="default"]) #toggleHint { color: var(--t-text-soft) !important; }

/* welcome 区域的引导卡片 / 欢迎语 */
[data-theme]:not([data-theme="default"]) .welcome-overlay { background: transparent !important; }
[data-theme]:not([data-theme="default"]) .welcome-box { background: transparent !important; }

/* admin viewer 模态里那些区块的硬编码深色 */
[data-theme]:not([data-theme="default"]) .admin-stat-grid { background: transparent !important; }
[data-theme]:not([data-theme="default"]) .admin-list-row {
  background: var(--t-surface-2) !important;
  color: var(--t-text) !important;
  border-color: var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) .admin-list-row .sub { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .admin-list-row:hover { background: var(--t-surface-3) !important; }

/* highlight.js 行内 <code> 在浅色下的修正（防止 atom-one-dark 把深色 token 强行覆盖回来） */
[data-theme]:not([data-theme="default"]) :not(pre) > code {
  background: var(--t-code-bg) !important;
  color: var(--t-code-text) !important;
  padding: 1px 6px;
  border-radius: 4px;
}

/* tool 消息内部那些子结构 */
[data-theme]:not([data-theme="default"]) .tool-diff .diff-del { color: var(--t-danger) !important; background: var(--t-danger-bg) !important; }
[data-theme]:not([data-theme="default"]) .tool-diff .diff-add { color: var(--t-success) !important; background: var(--t-surface-2) !important; }

/* 在输入区里残留的硬编码 #2a2a2a 容器 */
[data-theme]:not([data-theme="default"]) .pending-item .pi-name { color: var(--t-text) !important; }


/* ---- 补丁2：顶部 header.top + 切模型/选择器内文字 ---- */
[data-theme]:not([data-theme="default"]) header.top {
  background: var(--t-surface) !important;
  border-bottom-color: var(--t-border) !important;
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) header.top .title { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) header.top .meta { color: var(--t-text-soft) !important; }

/* cfg-btn（切模型/接口/账户/通知/日报/手册/管理后台/退出 这一排） 在浅色主题下 */
[data-theme]:not([data-theme="default"]) .cfg-btn {
  background: var(--t-surface) !important;
  color: var(--t-text) !important;
  border-color: var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) .cfg-btn:hover {
  border-color: var(--t-primary) !important;
  background: var(--t-surface-2) !important;
}
[data-theme]:not([data-theme="default"]) .cfg-btn .cfg-name,
[data-theme]:not([data-theme="default"]) .cfg-btn .cfg-arrow,
[data-theme]:not([data-theme="default"]) .cfg-btn .cost-chip {
  color: var(--t-text) !important;
}
/* 把内联 style="color:var(--muted)" 这种压住 */
[data-theme]:not([data-theme="default"]) #modelName,
[data-theme]:not([data-theme="default"]) #userName,
[data-theme]:not([data-theme="default"]) #cfgName {
  color: var(--t-text) !important;
}

/* 头部 header-action 类按钮（导出 / 退出 等） */
[data-theme]:not([data-theme="default"]) .header-action {
  background: var(--t-surface) !important;
  color: var(--t-text) !important;
  border-color: var(--t-border) !important;
}
[data-theme]:not([data-theme="default"]) .header-action:hover {
  background: var(--t-surface-2) !important;
  border-color: var(--t-primary) !important;
}


/* ---- 补丁3：cost-chip / 输入框 / 用户气泡对比度 ---- */

/* cost-chip：用量数字小药丸 */
[data-theme]:not([data-theme="default"]) .cost-chip {
  background: var(--t-surface-2) !important;
  color: var(--t-primary) !important;
  border-color: var(--t-border) !important;
}

/* 主输入框 textarea：跟背景必须有对比 */
[data-theme]:not([data-theme="default"]) .input-row textarea,
[data-theme]:not([data-theme="default"]) #input {
  background: #ffffff !important;
  color: var(--t-text) !important;
  border-color: var(--t-border) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
[data-theme]:not([data-theme="default"]) .input-row textarea:focus,
[data-theme]:not([data-theme="default"]) #input:focus {
  border-color: var(--t-primary) !important;
  box-shadow: 0 0 0 2px var(--t-surface-3) !important;
}
[data-theme]:not([data-theme="default"]) .input-row textarea::placeholder,
[data-theme]:not([data-theme="default"]) #input::placeholder {
  color: var(--t-text-soft) !important;
  opacity: 0.7;
}

/* 用户消息气泡：把对比度拉开（深一点的主色背 + 白字） */
[data-theme="morning-mist"] .msg.user { background: #B89FD8 !important; color: #fff !important; }
[data-theme="sage-sea"]     .msg.user { background: #4A8B82 !important; color: #fff !important; }
[data-theme="oat-latte"]    .msg.user { background: #8B7355 !important; color: #fff !important; }
[data-theme="ink-frost"]    .msg.user { background: #4A6888 !important; color: #fff !important; }
[data-theme="dusty-rose"]   .msg.user { background: #9A6B74 !important; color: #fff !important; }

/* 助手气泡：在浅背景上要有明显边界 */
[data-theme]:not([data-theme="default"]) .msg.assistant {
  background: #ffffff !important;
  color: var(--t-text) !important;
  border: 1px solid var(--t-border) !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}

/* 模型/接口/账户切换器 dropdown 在白底主题下加阴影 */
[data-theme]:not([data-theme="default"]) .cfg-menu {
  background: #ffffff !important;
  border-color: var(--t-border) !important;
  box-shadow: 0 6px 24px rgba(0,0,0,0.10) !important;
}

/* 输入框周边小附件（pending-item） */
[data-theme]:not([data-theme="default"]) .pending-item {
  background: #ffffff !important;
  border-color: var(--t-border) !important;
  color: var(--t-text) !important;
}


/* ---- 补丁4：welcome 欢迎弹窗在浅色主题下的可读性 ---- */
[data-theme]:not([data-theme="default"]) .welcome-overlay {
  background: rgba(0,0,0,0.18) !important;
  backdrop-filter: blur(8px) !important;
}
[data-theme]:not([data-theme="default"]) .welcome-box {
  background: #ffffff !important;
  border-radius: 16px;
  border: 1px solid var(--t-border) !important;
  box-shadow: 0 12px 40px rgba(0,0,0,0.15) !important;
  padding: 40px 50px !important;
}
[data-theme]:not([data-theme="default"]) .welcome-box .greet-time {
  color: var(--t-text-soft) !important;
}
[data-theme]:not([data-theme="default"]) .welcome-box .greet-msg {
  color: var(--t-text) !important;
}
/* welcome-box 里的箴言（行内 style 写死的 rgba 白色），用更高优先级压住 */
[data-theme]:not([data-theme="default"]) .welcome-box > div:last-child {
  color: var(--t-text-soft) !important;
}


/* ---- 补丁5：用户气泡兜底（最高特异度，确保能压住任何前面的规则） ---- */
html[data-theme="morning-mist"] body .msg.user {
  background: #8B6BAE !important;
  color: #ffffff !important;
  border: none !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.10) !important;
}
html[data-theme="sage-sea"] body .msg.user {
  background: #4A8B82 !important;
  color: #ffffff !important;
  border: none !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.10) !important;
}
html[data-theme="oat-latte"] body .msg.user {
  background: #8B7355 !important;
  color: #ffffff !important;
  border: none !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.10) !important;
}
html[data-theme="ink-frost"] body .msg.user {
  background: #4A6888 !important;
  color: #ffffff !important;
  border: none !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.10) !important;
}
html[data-theme="dusty-rose"] body .msg.user {
  background: #9A6B74 !important;
  color: #ffffff !important;
  border: none !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.10) !important;
}
/* assistant 气泡也用 html body 强化 */
html[data-theme]:not([data-theme="default"]) body .msg.assistant {
  background: #ffffff !important;
  color: var(--t-text) !important;
  border: 1px solid var(--t-border) !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06) !important;
}


/* ---- 补丁6：用 #messages ID 锚定，特异度兜底（a=1） ---- */
html[data-theme="morning-mist"] #messages .msg.user {
  background: #8B6BAE !important; color: #fff !important;
  border: none !important; box-shadow: 0 1px 4px rgba(0,0,0,0.10) !important;
}
html[data-theme="sage-sea"] #messages .msg.user {
  background: #4A8B82 !important; color: #fff !important;
  border: none !important; box-shadow: 0 1px 4px rgba(0,0,0,0.10) !important;
}
html[data-theme="oat-latte"] #messages .msg.user {
  background: #8B7355 !important; color: #fff !important;
  border: none !important; box-shadow: 0 1px 4px rgba(0,0,0,0.10) !important;
}
html[data-theme="ink-frost"] #messages .msg.user {
  background: #4A6888 !important; color: #fff !important;
  border: none !important; box-shadow: 0 1px 4px rgba(0,0,0,0.10) !important;
}
html[data-theme="dusty-rose"] #messages .msg.user {
  background: #9A6B74 !important; color: #fff !important;
  border: none !important; box-shadow: 0 1px 4px rgba(0,0,0,0.10) !important;
}
html[data-theme]:not([data-theme="default"]) #messages .msg.assistant {
  background: #ffffff !important;
  color: var(--t-text) !important;
  border: 1px solid var(--t-border) !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.06) !important;
}

/* ===== 账户详情弹窗：浅色主题接管（与 admin-main.css 的基础类配套）===== */
[data-theme]:not([data-theme="default"]) .acct-section-title { color: var(--t-primary) !important; }
[data-theme]:not([data-theme="default"]) .acct-row { border-bottom-color: var(--t-border-soft) !important; }
[data-theme]:not([data-theme="default"]) .acct-row .acct-k { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .acct-row .acct-v { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .acct-row .acct-v .muted,
[data-theme]:not([data-theme="default"]) .acct-card .acct-card-v .muted { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .acct-card {
  background: var(--t-surface) !important;
  border: 1px solid var(--t-border) !important;
  border-left: 3px solid var(--t-primary) !important;
}
[data-theme]:not([data-theme="default"]) .acct-card .acct-card-k { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .acct-card .acct-card-v { color: var(--t-text) !important; }
[data-theme]:not([data-theme="default"]) .acct-perm-group > summary { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .acct-perm-group > summary::before { color: var(--t-text-soft) !important; }
[data-theme]:not([data-theme="default"]) .acct-chip.on {
  background: rgba(74,136,98,0.16) !important;
  color: var(--t-success) !important;
  border: 1px solid var(--t-success) !important;
}
[data-theme]:not([data-theme="default"]) .acct-chip.off {
  background: var(--t-surface-2) !important;
  color: var(--t-text-soft) !important;
  border: 1px solid var(--t-border-soft) !important;
}
[data-theme]:not([data-theme="default"]) .acct-hint,
[data-theme]:not([data-theme="default"]) .acct-note { color: var(--t-text-soft) !important; }

/* ===== 销售/售后周报月报卡片（浅色主题适配）===== */
[data-theme]:not([data-theme="default"]) .period-report-grid {
  gap: 20px;
}
[data-theme]:not([data-theme="default"]) .period-report-card {
  background: #ffffff !important;
  border: 1px solid var(--t-border) !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
}
[data-theme]:not([data-theme="default"]) .period-report-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.10) !important;
  border-color: var(--t-primary) !important;
}
[data-theme]:not([data-theme="default"]) .period-report-header.submitted {
  background: linear-gradient(90deg, var(--t-primary) 0%, var(--t-accent) 100%) !important;
  color: #ffffff !important;
}
[data-theme]:not([data-theme="default"]) .period-report-header.unsubmitted {
  background: linear-gradient(90deg, var(--t-surface-3) 0%, var(--t-surface-2) 100%) !important;
  color: var(--t-text-soft) !important;
}
[data-theme]:not([data-theme="default"]) .period-report-kpi {
  background: var(--t-surface) !important;
  border-bottom-color: var(--t-border-soft) !important;
}
[data-theme]:not([data-theme="default"]) .period-kpi-item {
  background: #ffffff !important;
  border-color: var(--t-border-soft) !important;
}
[data-theme]:not([data-theme="default"]) .period-kpi-label {
  color: var(--t-text-soft) !important;
}
[data-theme]:not([data-theme="default"]) .period-kpi-value {
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) .period-report-body {
  background: var(--t-surface) !important;
}
[data-theme]:not([data-theme="default"]) .period-report-meta {
  color: var(--t-text-soft) !important;
}
[data-theme]:not([data-theme="default"]) .period-report-link {
  color: var(--t-primary) !important;
}
[data-theme]:not([data-theme="default"]) .period-field-block {
  background: #ffffff !important;
  border-left-color: #c87f5a !important;
}
[data-theme]:not([data-theme="default"]) .period-field-block:hover {
  background: #fafafa !important;
}
[data-theme]:not([data-theme="default"]) .period-field-label {
  color: var(--t-primary) !important;
}
[data-theme]:not([data-theme="default"]) .period-field-content {
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) .period-field-list li {
  color: var(--t-text) !important;
}
[data-theme]:not([data-theme="default"]) .period-field-list li::before {
  color: var(--t-primary) !important;
}

/* ====== 日报详情弹窗内容区 ====== */
[data-theme]:not([data-theme="default"]) .daily-report-content {
  background: #F7F4EF !important;
  border: 1px solid #E7E1D7 !important;
}
[data-theme]:not([data-theme="default"]) .daily-report-text {
  color: #1F2421 !important;
}

</style>
