/* UI Theme Overrides（Notion 风格 / 现代极简 / 轻毛玻璃）
   - 只改样式，不改交互逻辑（不动 JS/后端，不改事件绑定与 id）
   - 作为“后加载”样式：专门覆盖模板内联 <style>（dashboard/mindmap/gl 等） */

:root {
  /* ===== Catppuccin（浅色系：Latte 为主；深色仅用于代码/预览：Mocha） =====
     说明：你要求“浅色系 catppuccin mocha”本身存在矛盾（Mocha 是深色系）。
     这里采用“Latte UI + Mocha 代码区”来满足“浅色 + mocha 气质 + 高可读性”。 */

  /* Latte（Light UI） */
  --bg: #eff1f5;        /* base */
  --surface: #f8f9fb;   /* 自定义：更接近 Notion 的浅卡片 */
  --surface-2: #e6e9ef; /* mantle */
  --surface-3: #dce0e8; /* crust */

  --text: #4c4f69;      /* text */
  --muted: rgba(92, 95, 119, 0.72); /* subtext1 */
  --border: rgba(156, 160, 176, 0.42); /* overlay0 */

  --primary: #1e66f5;   /* blue */
  --primary-2: #8839ef; /* mauve（用于强调/次级） */
  --primary-rgb: 30, 102, 245;

  --success: #40a02b;   /* green */
  --warning: #df8e1d;   /* yellow */
  --danger: #d20f39;    /* red */

  /* Mocha（Dark for code blocks / preview only） */
  --code-bg: #1e1e2e;         /* base */
  --code-surface: #181825;    /* mantle */
  --code-border: rgba(205, 214, 244, 0.10); /* text alpha */
  --code-text: #cdd6f4;       /* text */
  --code-muted: rgba(205, 214, 244, 0.72);

  /* ===== 按钮配色：使用 Catppuccin Mocha（仅按钮，不改变页面浅色底） ===== */
  --mocha-base: #1e1e2e;
  --btn-text-on-accent: var(--mocha-base);

  --btn-primary: #89b4fa;      /* mocha blue */
  --btn-primary-2: #cba6f7;    /* mocha mauve */
  --btn-primary-rgb: 137, 180, 250;

  --btn-success: #a6e3a1;      /* mocha green */
  --btn-success-rgb: 166, 227, 161;

  --btn-warning: #f9e2af;      /* mocha yellow */
  --btn-warning-rgb: 249, 226, 175;

  --btn-danger: #f38ba8;       /* mocha red */
  --btn-danger-rgb: 243, 139, 168;

  /* 毛玻璃：以 Latte 底色为基调 */
  --glass: rgba(248, 249, 251, 0.72);
  --glass-strong: rgba(248, 249, 251, 0.86);
  --glass-border: rgba(248, 249, 251, 0.44);

  /* 阴影：更柔和（配合 Latte） */
  --shadow-sm: 0 1px 2px rgba(76, 79, 105, 0.08);
  --shadow-md: 0 10px 28px rgba(76, 79, 105, 0.14);
  --shadow-lg: 0 22px 64px rgba(76, 79, 105, 0.18);

  --radius: 14px;
  --radius-sm: 12px;
  --ring: 0 0 0 4px rgba(30, 102, 245, 0.18);
  --ease-out: cubic-bezier(0.2, 0.8, 0.2, 1);
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
}

/* ===== 全局基调（仅影响 body.ui） ===== */
body.ui {
  background: var(--bg) !important;
  color: var(--text) !important;
}

body.ui ::selection {
  background: rgba(var(--primary-rgb), 0.20);
}

/* 统一滚动条（可读性优先，避免“极粗”或“极暗”） */
body.ui ::-webkit-scrollbar { width: 10px; height: 10px; }
body.ui ::-webkit-scrollbar-thumb {
  background: rgba(76, 79, 105, 0.20);
  border-radius: 999px;
  border: 2px solid rgba(248, 249, 251, 0.85);
}
body.ui ::-webkit-scrollbar-thumb:hover { background: rgba(76, 79, 105, 0.30); }
body.ui ::-webkit-scrollbar-track { background: transparent; }

/* 统一动效：克制、顺滑，避免“弹跳感过强” */
body.ui a,
body.ui button,
body.ui input,
body.ui textarea,
body.ui select,
body.ui .card,
body.ui .modal-content,
body.ui .subject-row,
body.ui .material-item,
body.ui .gl-panel,
body.ui .gl-center,
body.ui .upload-card2,
body.ui .material-card,
body.ui .pane-right,
body.ui .mind-container,
body.ui .chat-wrapper,
body.ui .chat-header,
body.ui .tab,
body.ui .feature-btn {
  transition:
    background-color 180ms var(--ease-out),
    color 180ms var(--ease-out),
    border-color 180ms var(--ease-out),
    box-shadow 180ms var(--ease-out),
    transform 180ms var(--ease-out),
    opacity 180ms var(--ease-out),
    filter 180ms var(--ease-out);
}

@keyframes ui-fade-up {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes ui-pop {
  from { opacity: 0; transform: translateY(10px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* ===== 展开/收起：统一动画（不改交互逻辑，只接管视觉） ===== */
@keyframes ui-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* dashboard：科目展开 body（原模板 display none/block 无法动画，这里用 max-height + opacity 接管） */
body.ui[data-page="dashboard"] .subject-row__body {
  display: block !important;
  overflow: hidden !important;
  max-height: 0 !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(-2px) !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  border-top-color: transparent !important;
  transition:
    max-height 260ms var(--ease-out),
    opacity 200ms var(--ease-out),
    transform 220ms var(--ease-out),
    padding 220ms var(--ease-out),
    border-color 220ms var(--ease-out),
    visibility 0s linear 260ms;
  will-change: max-height, opacity, transform;
}
body.ui[data-page="dashboard"] .subject-row.open .subject-row__body {
  max-height: 1400px !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: translateY(0) !important;
  padding-top: 14px !important;
  padding-bottom: 16px !important;
  border-top-color: var(--border) !important;
  transition:
    max-height 260ms var(--ease-out),
    opacity 200ms var(--ease-out),
    transform 220ms var(--ease-out),
    padding 220ms var(--ease-out),
    border-color 220ms var(--ease-out),
    visibility 0s linear 0ms;
}

/* dashboard：展开箭头旋转更顺滑 */
body.ui[data-page="dashboard"] .subject-chevron {
  transition: transform 220ms var(--ease-out), color 220ms var(--ease-out), background-color 220ms var(--ease-out), border-color 220ms var(--ease-out);
  will-change: transform;
}

/* mindmap：左右面板/抽屉的展开收起（不改变原逻辑，只提升视觉） */
body.ui[data-page="mindmap"] .pane-right,
body.ui[data-page="mindmap"] .material-sidebar {
  will-change: transform, width, opacity;
}
body.ui[data-page="mindmap"] .pane-right.collapsed {
  opacity: 0.0;
  pointer-events: none;
}
body.ui[data-page="mindmap"] .pane-right:not(.collapsed) {
  opacity: 1;
  pointer-events: auto;
}
@media (max-width: 1024px) {
  body.ui[data-page="mindmap"] .material-sidebar.open {
    animation: ui-pop 200ms var(--ease-out) both;
  }
}

/* gl：左侧面板折叠/展开与弹层（不改开关类名） */
body.ui[data-page="gl"] #miniTreePanel,
body.ui[data-page="gl"] .left-panel-toggle {
  will-change: transform, opacity;
}
body.ui[data-page="gl"] .gl-modal.open,
body.ui[data-page="gl"] .gl-fc-modal.open {
  animation: ui-fade-in 160ms var(--ease-out) both;
}
body.ui[data-page="gl"] .gl-modal.open .gl-modal-card,
body.ui[data-page="gl"] .gl-fc-modal.open .gl-fc-card {
  animation: ui-pop 220ms var(--ease-out) both;
}

/* 通用 modal（dashboard 的 .modal）：遮罩淡入 + 卡片 pop */
body.ui .modal.open {
  animation: ui-fade-in 160ms var(--ease-out) both;
}

/* ===== 登录/注册：页面切换离场动画（点击链接先淡出，再跳转；不影响原链接） ===== */
body.ui[data-page="login"].ui-leave .auth-card,
body.ui[data-page="register"].ui-leave .auth-card {
  opacity: 0 !important;
  transform: translateY(10px) scale(0.99) !important;
  transition: opacity 180ms var(--ease-out), transform 180ms var(--ease-out) !important;
}

/* 页面“首屏卡片”轻入场 */
body.ui .card,
body.ui .subject-row,
body.ui .gl-panel,
body.ui .gl-center,
body.ui .material-card,
body.ui .mind-container,
body.ui .upload-card2,
body.ui .auth-card {
  animation: ui-fade-up 220ms var(--ease-out) both;
}

/* ===== 统一 Header（dashboard / mindmap / upload / gl 等） ===== */
body.ui .header,
body.ui header,
body.ui .app-header,
body.ui .chat-header {
  background: var(--glass) !important;
  border-bottom: 1px solid var(--border) !important;
  box-shadow: none !important;
  backdrop-filter: blur(14px) saturate(160%);
  -webkit-backdrop-filter: blur(14px) saturate(160%);
}

/* Logo/图标：去强渐变球体，变成更平面、更像 Notion 的“标签” */
body.ui .logo,
body.ui .header-icon,
body.ui .app-logo,
body.ui .auth-logo-icon,
body.ui .avatar {
  border-radius: 12px !important;
  background: rgba(255, 255, 255, 0.72) !important;
  color: var(--text) !important;
  box-shadow: var(--shadow-sm) !important;
  border: 1px solid var(--border) !important;
  font-weight: 900 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: hidden !important;
}

/* 统一品牌图片 logo（login / dashboard） */
body.ui .brand-logo {
  width: 70%;
  height: 70%;
  object-fit: contain;
  display: block;
  filter: saturate(1.02) contrast(1.02);
}

/* 统一科目图标（mindmap / gl） */
body.ui .subject-icon {
  font-size: 18px;
  line-height: 1;
}

/* ===== 统一链接/按钮（减少渐变，强调层次） ===== */
body.ui .nav-link,
body.ui a.nav-link,
body.ui button.nav-link {
  border: 1px solid var(--border) !important;
  background: rgba(255, 255, 255, 0.70) !important;
  color: var(--text) !important;
  border-radius: 12px !important;
}
body.ui .nav-link:hover {
  background: rgba(var(--primary-rgb), 0.08) !important;
  border-color: rgba(var(--primary-rgb), 0.25) !important;
  box-shadow: var(--shadow-sm) !important;
}
body.ui .nav-link:active {
  transform: translateY(0);
  filter: brightness(0.98);
}

body.ui .btn-primary,
body.ui .btn-submit,
body.ui .send-btn,
body.ui .btn-upload,
body.ui .btn-action.btn-primary,
body.ui .btn.btn-primary {
  border: 1px solid rgba(var(--btn-primary-rgb), 0.62) !important;
  background: var(--btn-primary) !important;
  color: var(--btn-text-on-accent) !important;
  box-shadow: 0 10px 22px rgba(var(--btn-primary-rgb), 0.22) !important;
}

/* 语义按钮：success / warning / danger（GL 设置弹层等会用到） */
body.ui .btn-success,
body.ui .btn-warning,
body.ui .btn-danger,
body.ui .btn.btn-success,
body.ui .btn.btn-warning,
body.ui .btn.btn-danger,
body.ui .btn-action.btn-success,
body.ui .btn-action.btn-warning,
body.ui .btn-action.btn-danger {
  color: var(--btn-text-on-accent) !important;
  border: 1px solid rgba(76, 79, 105, 0.18) !important;
  box-shadow: var(--shadow-sm) !important;
}
body.ui .btn-success,
body.ui .btn.btn-success,
body.ui .btn-action.btn-success {
  background: var(--btn-success) !important;
  border-color: rgba(var(--btn-success-rgb), 0.62) !important;
}
body.ui .btn-warning,
body.ui .btn.btn-warning,
body.ui .btn-action.btn-warning {
  background: var(--btn-warning) !important;
  border-color: rgba(var(--btn-warning-rgb), 0.62) !important;
}
body.ui .btn-danger,
body.ui .btn.btn-danger,
body.ui .btn-action.btn-danger {
  background: var(--btn-danger) !important;
  border-color: rgba(var(--btn-danger-rgb), 0.62) !important;
}
body.ui .btn-success:hover:not(:disabled),
body.ui .btn-warning:hover:not(:disabled),
body.ui .btn-danger:hover:not(:disabled),
body.ui .btn.btn-success:hover:not(:disabled),
body.ui .btn.btn-warning:hover:not(:disabled),
body.ui .btn.btn-danger:hover:not(:disabled),
body.ui .btn-action.btn-success:hover:not(:disabled),
body.ui .btn-action.btn-warning:hover:not(:disabled),
body.ui .btn-action.btn-danger:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: var(--shadow-md) !important;
  filter: brightness(0.98);
}
body.ui .btn-primary:hover:not(:disabled),
body.ui .btn-submit:hover:not(:disabled),
body.ui .send-btn:hover:not(:disabled),
body.ui .btn-upload:hover:not(:disabled),
body.ui .btn-action.btn-primary:hover:not(:disabled),
body.ui .btn.btn-primary:hover:not(:disabled) {
  transform: translateY(-1px);
  box-shadow: 0 14px 28px rgba(var(--btn-primary-rgb), 0.26) !important;
  filter: brightness(0.98);
}
body.ui .btn-primary:active:not(:disabled),
body.ui .btn-submit:active:not(:disabled),
body.ui .send-btn:active:not(:disabled),
body.ui .btn-upload:active:not(:disabled),
body.ui .btn-action.btn-primary:active:not(:disabled),
body.ui .btn.btn-primary:active:not(:disabled) {
  transform: translateY(0);
  filter: brightness(0.98);
}

body.ui .btn-secondary,
body.ui .btn-action,
body.ui .btn,
body.ui .feature-btn,
body.ui .gl-modal-close {
  border: 1px solid var(--border) !important;
  background: rgba(255, 255, 255, 0.78) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}

/* 统一 btn-action（a / button）视觉，避免 button 的默认外观导致不一致 */
body.ui .btn-action,
body.ui a.btn-action,
body.ui button.btn-action {
  appearance: none;
  -webkit-appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  line-height: 1;
  text-decoration: none !important;
  white-space: nowrap;
  cursor: pointer;
}

/* dashboard：导图/编辑“选项按钮”视觉完全一致（仅尺寸差异由 .btn-map 控制） */
body.ui[data-page="dashboard"] .btn-option {
  padding: 6px 12px !important;
  border-radius: 12px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}
body.ui[data-page="dashboard"] a.btn-option,
body.ui[data-page="dashboard"] button.btn-option {
  color: var(--text) !important;
}

/* 导图按钮：比编辑大 10%（只改尺寸，不改其他视觉） */
body.ui[data-page="dashboard"] .btn-option.btn-map {
  font-size: calc(12px * 1.1) !important;
  padding: calc(6px * 1.1) calc(12px * 1.1) !important;
}
body.ui .btn-secondary:hover,
body.ui .btn-action:hover,
body.ui .btn:hover,
body.ui .feature-btn:hover,
body.ui .gl-modal-close:hover {
  background: rgba(var(--primary-rgb), 0.06) !important;
  border-color: rgba(var(--primary-rgb), 0.22) !important;
  transform: translateY(-1px);
  box-shadow: var(--shadow-sm) !important;
}
body.ui .btn-secondary:active,
body.ui .btn-action:active,
body.ui .btn:active,
body.ui .feature-btn:active,
body.ui .gl-modal-close:active {
  transform: translateY(0);
  filter: brightness(0.98);
}

/* GL：发送按钮里的小箭头更克制（避免“复杂 emoji 按钮图标”观感） */
body.ui .send-btn #sendIcon {
  opacity: 0.85;
  transform: translateY(-0.5px);
}

/* ===== 统一输入框（含搜索框） ===== */
body.ui .form-input,
body.ui .ui-search,
body.ui input[type="text"],
body.ui input[type="search"],
body.ui input[type="password"],
body.ui textarea,
body.ui select {
  border: 1px solid var(--border) !important;
  border-radius: 12px !important;
  background: rgba(255, 255, 255, 0.82) !important;
  color: var(--text) !important;
}
body.ui .form-input::placeholder,
body.ui .ui-search::placeholder,
body.ui input::placeholder,
body.ui textarea::placeholder {
  color: rgba(92, 95, 119, 0.55) !important;
}
body.ui .form-input:focus,
body.ui .ui-search:focus,
body.ui input[type="text"]:focus,
body.ui input[type="search"]:focus,
body.ui input[type="password"]:focus,
body.ui textarea:focus,
body.ui select:focus {
  border-color: rgba(var(--primary-rgb), 0.42) !important;
  box-shadow: var(--ring) !important;
}

/* ===== 统一卡片/容器（降低“花哨渐变”，加轻毛玻璃层次） ===== */
body.ui .card,
body.ui .subject-row,
body.ui .material-card,
body.ui .pane-right,
body.ui .mind-container,
body.ui .gl-panel,
body.ui .gl-center,
body.ui .upload-card2,
body.ui .auth-card,
body.ui .chat-wrapper {
  background: var(--glass-strong) !important;
  border: 1px solid var(--border) !important;
  box-shadow: var(--shadow-sm) !important;
  backdrop-filter: blur(12px) saturate(160%);
  -webkit-backdrop-filter: blur(12px) saturate(160%);
}

/* 卡片 hover：更像 Notion（轻微抬起） */
body.ui .card:hover,
body.ui .subject-row:hover,
body.ui .material-item:hover,
body.ui .upload-card:hover,
body.ui .upload-box:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-md) !important;
}

/* ===== Modal：统一动画 + 玻璃遮罩 ===== */
body.ui .modal.open .modal-content {
  animation: ui-pop 220ms var(--ease-out) both;
}
body.ui .modal {
  background: rgba(76, 79, 105, 0.30) !important;
  backdrop-filter: blur(7px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(7px) saturate(160%) !important;
}

/* ===== “补充材料/追加上传”弹窗：通用布局（dashboard + mindmap 视觉一致） ===== */
body.ui .subject-sections {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
body.ui .subject-panel {
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-2);
  padding: 12px 12px;
  min-height: 120px;
}
body.ui .subject-panel h4 {
  margin: 0 0 8px 0;
  font-size: 13px;
  font-weight: 900;
  color: var(--text);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
body.ui .subject-panel ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
body.ui .file-item {
  padding: 8px 10px;
  border-radius: 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  font-size: 12px;
  color: var(--text);
  overflow-wrap: anywhere;
}

/* ===== “补充材料/追加上传”弹窗：上传区（图2那种虚线大卡片） ===== */
body.ui .upload-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 20px;
}
body.ui .upload-box {
  border: 2px dashed rgba(156, 160, 176, 0.55);
  border-radius: 14px;
  padding: 24px;
  text-align: center;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.56);
}
body.ui .upload-box:hover {
  border-color: rgba(var(--primary-rgb), 0.55) !important;
  background: rgba(248, 249, 251, 0.78) !important;
}
body.ui .upload-box-icon {
  width: 48px;
  height: 48px;
  background: rgba(255, 255, 255, 0.80);
  border: 1px solid var(--border);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin: 0 auto 12px;
  box-shadow: var(--shadow-sm);
}
body.ui .upload-box-title {
  font-size: 14px;
  font-weight: 900;
  color: var(--text);
  margin-bottom: 4px;
}
body.ui .upload-box-hint {
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 12px;
}
body.ui .upload-box-info {
  font-size: 12px;
  color: var(--muted);
  margin-top: 8px;
}
body.ui .btn-upload {
  padding: 10px 18px;
  background: rgba(var(--btn-primary-rgb), 0.88);
  color: var(--btn-text-on-accent);
  border: 1px solid rgba(var(--btn-primary-rgb), 0.35);
  border-radius: 10px;
  font-size: 13px;
  font-weight: 900;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 24px rgba(var(--btn-primary-rgb), 0.16);
}
body.ui .btn-upload:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(var(--btn-primary-rgb), 0.20);
}

@media (max-width: 768px) {
  body.ui .upload-grid { grid-template-columns: 1fr; }
}

/* ===== dashboard：背景与头部三列网格，确保搜索框视觉居中 ===== */
body.ui[data-page="dashboard"] { background: var(--bg) !important; }
/* 覆盖 dashboard/mindmap 模板内联 body 的渐变背景 */
body.ui[data-page="dashboard"],
body.ui[data-page="mindmap"] {
  background: var(--bg) !important;
}
body.ui[data-page="dashboard"] .header {
  display: grid !important;
  grid-template-columns: 1fr minmax(240px, 560px) 1fr !important;
  align-items: center !important;
  gap: 12px !important;
}
body.ui[data-page="dashboard"] .header-left { grid-column: 1; }

/* 覆盖 header-nav 上的 style=""（属性样式优先级最高，必须用 !important） */
body.ui[data-page="dashboard"] .header > .header-nav {
  flex: unset !important;
  width: auto !important;
  display: flex !important;
  align-items: center !important;
}
body.ui[data-page="dashboard"] .header > .header-nav:nth-child(2) {
  grid-column: 2;
  justify-content: center !important;
  justify-self: center !important;
}
body.ui[data-page="dashboard"] .header > .header-nav:nth-child(3) {
  grid-column: 3;
  justify-content: flex-end !important;
}
body.ui[data-page="dashboard"] .header > .header-nav:nth-child(2) .ui-search {
  width: 100% !important;
  max-width: 560px !important;
}

@media (max-width: 780px) {
  body.ui[data-page="dashboard"] .header { grid-template-columns: 1fr !important; }
  body.ui[data-page="dashboard"] .header-left,
  body.ui[data-page="dashboard"] .header > .header-nav:nth-child(2),
  body.ui[data-page="dashboard"] .header > .header-nav:nth-child(3) {
    grid-column: 1 !important;
    justify-content: flex-start !important;
    justify-self: start !important;
  }
  body.ui[data-page="dashboard"] .header > .header-nav:nth-child(2) .ui-search {
    max-width: 100% !important;
  }
}

/* dashboard：上传卡片降噪，保留可点击层次 */
body.ui[data-page="dashboard"] .upload-card {
  background: rgba(255, 255, 255, 0.70) !important;
  border: 1px dashed rgba(76, 79, 105, 0.22) !important;
}
body.ui[data-page="dashboard"] .upload-card:hover {
  border-color: rgba(var(--primary-rgb), 0.32) !important;
  background: rgba(var(--primary-rgb), 0.04) !important;
}

/* dashboard：科目“徽章”去强渐变（保留小 emoji 作为课程图标） */
body.ui[data-page="dashboard"] .subject-badge {
  background: rgba(var(--primary-rgb), 0.10) !important;
  color: var(--primary) !important;
  border: 1px solid rgba(var(--primary-rgb), 0.22) !important;
  box-shadow: none !important;
}

/* ===== mindmap：头部三列网格，确保搜索框视觉居中 ===== */
body.ui[data-page="mindmap"] { background: var(--bg) !important; }
body.ui[data-page="mindmap"] header {
  display: grid !important;
  grid-template-columns: 1fr minmax(240px, 560px) 1fr !important;
  align-items: center !important;
  gap: 12px !important;
}
body.ui[data-page="mindmap"] .header-left { grid-column: 1; min-width: 0; }
body.ui[data-page="mindmap"] .header-search { grid-column: 2; justify-self: center !important; }
body.ui[data-page="mindmap"] .header-nav { grid-column: 3; justify-self: end !important; }
body.ui[data-page="mindmap"] .header-search .ui-search {
  width: 100% !important;
  max-width: 560px !important;
}
@media (max-width: 780px) {
  body.ui[data-page="mindmap"] header { grid-template-columns: 1fr !important; }
  body.ui[data-page="mindmap"] .header-left,
  body.ui[data-page="mindmap"] .header-search,
  body.ui[data-page="mindmap"] .header-nav {
    grid-column: 1 !important;
    justify-self: start !important;
  }
}

/* mindmap：标题/摘要统一浅底深字（模板内联可能写白字/深色面板） */
body.ui[data-page="mindmap"] .pane-title {
  color: var(--text) !important;
  text-shadow: none !important;
}
body.ui[data-page="mindmap"] .book-summary {
  color: var(--muted) !important;
  background: rgba(255, 255, 255, 0.70) !important;
  border: 1px solid var(--border) !important;
}
body.ui[data-page="mindmap"] .pane-right {
  border-left: 1px solid var(--border) !important;
}
body.ui[data-page="mindmap"] .json-panel {
  background: var(--code-bg) !important;
  color: var(--code-text) !important;
  border: 1px solid var(--code-border) !important;
  border-radius: 14px !important;
}
body.ui[data-page="mindmap"] .panel-toggle,
body.ui[data-page="mindmap"] .material-panel-toggle {
  border: 1px solid var(--border) !important;
  background: rgba(255, 255, 255, 0.80) !important;
  color: var(--text) !important;
  box-shadow: var(--shadow-sm) !important;
}

/* mindmap：列表 active 态颜色统一（覆盖模板内联的旧色值） */
body.ui[data-page="mindmap"] .material-item.active {
  background: rgba(var(--primary-rgb), 0.10) !important;
  border-color: rgba(var(--primary-rgb), 0.35) !important;
}

/* ===== gl：保持结构，统一为浅色玻璃风格；代码区保持深色以利阅读 ===== */
body.ui[data-page="gl"] {
  background: var(--bg) !important;
}
body.ui[data-page="gl"] .chat-messages {
  background: rgba(255, 255, 255, 0.35) !important;
}
body.ui[data-page="gl"] .chat-input-area {
  background: rgba(255, 255, 255, 0.70) !important;
  border-top: 1px solid var(--border) !important;
}
body.ui[data-page="gl"] .chat-textarea {
  background: rgba(255, 255, 255, 0.82) !important;
  border: 1px solid var(--border) !important;
  border-radius: 14px !important;
}
body.ui[data-page="gl"] .tabs,
body.ui[data-page="gl"] .tab-content {
  background: rgba(255, 255, 255, 0.70) !important;
  border-color: var(--border) !important;
}
body.ui[data-page="gl"] .tab {
  color: var(--muted) !important;
}
body.ui[data-page="gl"] .tab:hover {
  background: rgba(var(--primary-rgb), 0.08) !important;
  color: var(--text) !important;
}
body.ui[data-page="gl"] .tab.active {
  background: rgba(var(--primary-rgb), 0.12) !important;
  color: var(--primary) !important;
}
body.ui[data-page="gl"] .message-row.bot .message-bubble {
  background: rgba(255, 255, 255, 0.82) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
}
body.ui[data-page="gl"] .message-row.user .message-bubble {
  background: rgba(var(--primary-rgb), 0.10) !important;
  border: 1px solid rgba(var(--primary-rgb), 0.22) !important;
  color: var(--text) !important;
}
body.ui[data-page="gl"] .json-preview {
  border-radius: 14px !important;
}

/* gl：把模板里硬编码的旧紫色 hover/active 统一为全站蓝色 */
body.ui[data-page="gl"] .feature-btn:hover {
  border-color: rgba(var(--primary-rgb), 0.25) !important;
}
body.ui[data-page="gl"] .flashcard-item:hover {
  border-color: rgba(var(--primary-rgb), 0.25) !important;
}
body.ui[data-page="gl"] .gl-fc-tab.active {
  color: var(--primary) !important;
  background: rgba(var(--primary-rgb), 0.10) !important;
  border-color: rgba(var(--primary-rgb), 0.25) !important;
}

/* gl：侧边折叠按钮更“玻璃” */
body.ui[data-page="gl"] .left-panel-toggle {
  background: rgba(255, 255, 255, 0.80) !important;
}

/* ===== upload：拖拽/选择区域更像 Notion “块” ===== */
body.ui[data-page="upload"] .drop2 {
  background: rgba(255, 255, 255, 0.70) !important;
  border: 1px dashed rgba(76, 79, 105, 0.22) !important;
}
body.ui[data-page="upload"] .filelist div {
  background: rgba(255, 255, 255, 0.82) !important;
}

/* 动画偏好：减少动态 */
@media (prefers-reduced-motion: reduce) {
  body.ui * {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}


