/* ============================================================
   EGO UI v2 — 统一主题变量 & 新版组件样式
   加载顺序：此文件在 app.css 之后、wenxin-diaolong.css 之前
   ============================================================ */

/* ---- 1. CSS 变量（深色默认） --------------------------------- */
:root {
  /* 色彩 */
  --c-bg:            #0A0E18;
  --c-bg2:           #0F1520;
  --c-card:          #131929;
  --c-card2:         #1A2035;
  --c-border:        rgba(255,255,255,0.07);
  --c-border2:       rgba(255,255,255,0.12);
  --c-divider:       rgba(255,255,255,0.06);

  --c-text1:         #E8ECF2;
  --c-text2:         #9AA3B2;
  --c-text3:         #6B7585;
  --c-text4:         #424E62;

  --c-primary:       #2EE6C9;
  --c-primary-bg:    rgba(46,230,201,0.10);
  --c-primary-text:  #2EE6C9;
  --c-sky:           #5B8CFF;
  --c-sky-bg:        rgba(91,140,255,0.10);
  --c-danger:        #FF6E8A;
  --c-danger-bg:     rgba(255,110,138,0.12);
  --c-success:       #3DD68C;
  --c-warning:       #F5B14A;

  --c-nav-bg:        rgba(15,21,35,0.96);
  --c-nav-border:    rgba(255,255,255,0.07);
  --c-input-bg:      #0F1520;
  --c-input-border:  rgba(255,255,255,0.08);
  --c-overlay:       rgba(0,0,0,0.62);

  /* 阴影 */
  --s-sm:  0 2px 8px  rgba(0, 0, 0, 0.28);
  --s-md:  0 4px 16px rgba(0,0,0,0.38);
  --s-lg:  0 8px 32px rgba(0,0,0,0.48);
  --s-xl:  0 16px 48px rgba(0,0,0,0.55);

  /* 圆角 */
  --r-xs:  6px;
  --r-sm:  8px;
  --r-md:  12px;
  --r-lg:  16px;
  --r-xl:  20px;
  --r-2xl: 24px;
  --r-3xl: 28px;
  --r-pill: 999px;

  /* 间距 */
  --gap-xs: 4px;
  --gap-sm: 8px;
  --gap-md: 12px;
  --gap-lg: 16px;
  --gap-xl: 20px;
  --gap-2xl: 24px;

  /* 导航高度 */
  --nav-h: 64px;

  /* 品牌渐变 */
  --brand-grad: linear-gradient(135deg, #2EE6C9 0%, #5B8CFF 100%);
}

/* ---- 2. 浅色模式变量覆盖（html + body 双挂，避免继承断裂） ---- */
html.theme-light,
body.theme-light {
  --c-bg:            #F5F7FB;
  --c-bg2:           #EEF3F9;
  --c-card:          #FFFFFF;
  --c-card2:         #F8FAFF;
  --c-border:        #E5EAF3;
  --c-border2:       rgba(15,23,42,0.12);
  --c-divider:       #E5EAF3;

  --c-text1:         #111827;
  --c-text2:         #334155;
  --c-text3:         #64748B;
  --c-text4:         #94A3B8;

  --c-primary:       #2563EB;
  --c-primary-bg:    rgba(37,99,235,0.08);
  --c-primary-text:  #2563EB;
  --c-sky:           #2563EB;
  --c-sky-bg:        rgba(37,99,235,0.08);
  --c-danger:        #E11D48;
  --c-danger-bg:     rgba(225,29,72,0.08);
  --c-success:       #059669;
  --c-warning:       #D97706;

  --c-nav-bg:        rgba(255,255,255,0.96);
  --c-nav-border:    #E5EAF3;
  --c-nav-text:      #64748B;
  --c-nav-active:    #2563EB;
  --c-input-bg:      #FFFFFF;
  --c-input-text:    #111827;
  --c-input-border:  #E5EAF3;
  --c-overlay:       rgba(15,23,42,0.48);

  --s-sm:  0 2px 8px  rgba(15,23,42,0.06);
  --s-md:  0 4px 16px rgba(15,23,42,0.08);
  --s-lg:  0 8px 32px rgba(15,23,42,0.12);
  --s-xl:  0 16px 48px rgba(15,23,42,0.14);

  --brand-grad: linear-gradient(135deg, #0EA5A0 0%, #2563EB 100%);
}

/* ---- 3. 全局背景 & 文字（使用变量） -------------------------- */
body { color: var(--c-text1); }
body.theme-light { background: var(--c-bg); }

/* ---- 4. 底部导航栏（PNG 图标） ------------------------------- */
.tabbar {
  background: var(--c-nav-bg) !important;
  border-color: var(--c-nav-border) !important;
}
.tabbar button { color: var(--c-text3) !important; }
.tabbar button.active { color: var(--c-text1) !important; }

/* PNG 图标容器 */
.tab-icon {
  width: 24px;
  height: 24px;
  display: block;
  object-fit: contain;
  flex-shrink: 0;
}
.tab-icon-wrap {
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  position: relative;
}
/* 默认显示 default，隐藏 active */
.tab-icon-active { display: none; }
.tab-icon-default { display: block; }
/* active 状态：显示 active，隐藏 default */
.tabbar button.active .tab-icon-active { display: block; }
.tabbar button.active .tab-icon-default { display: none; }
/* 隐藏旧 lucide 图标（tabbar 内） */
.tabbar button .ic {
  display: none !important;
}

/* ---- 5. ===== 「我的」页面新样式 ============================= */

/* 页面容器 */
.page[data-page="me"].active {
  background: var(--c-bg);
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
}

/* 顶栏 */
.me-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px 6px 20px;
  flex-shrink: 0;
}
.me-topbar-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--c-text1);
  letter-spacing: -0.3px;
}
.me-topbar-actions {
  display: flex;
  align-items: center;
  gap: 4px;
}
.me-icon-btn {
  width: 36px;
  height: 36px;
  border-radius: var(--r-pill);
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--c-text2);
  transition: background .15s;
}
.me-icon-btn:active { background: var(--c-card); }
.me-icon-btn img {
  width: 22px;
  height: 22px;
  object-fit: contain;
}

/* 用户信息卡片 */
.me-user-card {
  margin: 8px 16px 0;
  background: var(--c-card);
  border-radius: var(--r-2xl);
  padding: 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  box-shadow: var(--s-sm);
  border: 1px solid var(--c-border);
}
.me-avatar-wrap {
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-sky) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  font-weight: 700;
  color: #fff;
  overflow: hidden;
  cursor: pointer;
  position: relative;
}
.me-avatar-wrap img.me-avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}
.me-user-info {
  flex: 1;
  min-width: 0;
}
.me-user-name {
  font-size: 16px;
  font-weight: 600;
  color: var(--c-text1);
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 3px;
}
.me-login-badge {
  font-size: 11px;
  font-weight: 500;
  padding: 2px 6px;
  border-radius: var(--r-pill);
  background: var(--c-primary-bg);
  color: var(--c-primary-text);
  display: none;
}
.me-login-badge.visible { display: inline-flex; }
.me-user-sub {
  font-size: 12px;
  color: var(--c-text3);
  truncate: ellipsis;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.me-user-action {
  flex-shrink: 0;
  font-size: 13px;
  font-weight: 500;
  color: var(--c-primary-text);
  background: var(--c-primary-bg);
  border: none;
  border-radius: var(--r-pill);
  padding: 6px 14px;
  cursor: pointer;
}

/* 设置卡片 */
.me-section-card {
  margin: 12px 16px 0;
  background: var(--c-card);
  border-radius: var(--r-2xl);
  overflow: hidden;
  box-shadow: var(--s-sm);
  border: 1px solid var(--c-border);
}
.me-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  min-height: 52px;
  position: relative;
  cursor: pointer;
  background: transparent;
  border: none;
  width: 100%;
  box-sizing: border-box;
  text-align: left;
  text-decoration: none;
  transition: background .15s;
}
.me-row:active { background: var(--c-bg2); }
.me-row.me-row-static {
  cursor: default;
  pointer-events: none;
}
.me-row.me-row-static:active { background: transparent; }
.me-row.me-row-static .me-theme-seg {
  pointer-events: auto;
}

/* 顶栏不再放历史入口；创作页未激活时强制隐藏其顶栏历史按钮 */
.page[data-page="create"]:not(.active) #openCreateHistoryTop {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* 最近对话横条已停用（历史走顶栏眨眼机器人） */
#homeRecentBar {
  display: none !important;
}
.me-row + .me-row::before {
  content: '';
  position: absolute;
  top: 0;
  left: 52px;
  right: 0;
  height: 1px;
  background: var(--c-divider);
}
/* 协议合并行：单行内链，不再拆成两条大卡片 */
.me-row.me-row-legal {
  cursor: default;
  align-items: center;
  min-height: 52px;
}
.me-row.me-row-legal:active {
  background: transparent;
}
.me-row-legal-links {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 6px;
  font-size: 15px;
  line-height: 1.35;
}
.me-legal-link {
  border: none;
  background: transparent;
  padding: 8px 0;
  margin: 0;
  color: var(--c-text1);
  font-size: 15px;
  font-weight: 400;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  white-space: nowrap;
}
.me-legal-link:disabled {
  opacity: 0.45;
  pointer-events: none;
}
.me-legal-link.is-loading {
  opacity: 0.55;
}
.me-legal-link:active:not(:disabled) {
  color: var(--c-brand, #3b82f6);
}
.me-legal-sep {
  color: var(--c-text3);
  font-size: 14px;
  user-select: none;
  flex-shrink: 0;
}
.me-row-icon {
  width: 32px;
  height: 32px;
  border-radius: var(--r-md);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}
.me-row-icon img {
  width: 24px;
  height: 24px;
  object-fit: contain;
}
.me-row-icon.icon-bg-blue   { background: rgba(91,140,255,0.12); }
.me-row-icon.icon-bg-teal   { background: rgba(46,230,201,0.12); }
.me-row-icon.icon-bg-purple { background: rgba(196,155,255,0.12); }
.me-row-icon.icon-bg-amber  { background: rgba(245,177,74,0.12); }
.me-row-icon.icon-bg-red    { background: rgba(255,110,138,0.12); }
.me-row-icon.icon-bg-gray   { background: rgba(155,163,178,0.12); }
.me-row-title {
  flex: 1;
  font-size: 15px;
  color: var(--c-text1);
  font-weight: 400;
}
.me-row-meta {
  font-size: 13px;
  color: var(--c-text3);
  margin-right: 4px;
}
.me-row-arrow {
  color: var(--c-text3);
  flex-shrink: 0;
}
.me-row-arrow img {
  width: 16px;
  height: 16px;
  opacity: 0.5;
}

/* 外观切换 */
.me-theme-seg {
  display: flex;
  align-items: center;
  gap: 4px;
  background: var(--c-bg2);
  border-radius: var(--r-pill);
  padding: 3px;
  margin-right: 4px;
}
.me-theme-seg button {
  font-size: 12px;
  font-weight: 500;
  padding: 4px 10px;
  border-radius: var(--r-pill);
  color: var(--c-text3);
  background: transparent;
  border: none;
  cursor: pointer;
  transition: all .15s;
}
.me-theme-seg button.on {
  background: var(--c-card);
  color: var(--c-text1);
  box-shadow: var(--s-sm);
}

/* 退出登录 */
.me-logout-btn {
  margin: 12px 16px 24px;
  width: calc(100% - 32px);
  padding: 14px;
  background: var(--c-card);
  border: 1px solid var(--c-border);
  border-radius: var(--r-2xl);
  color: var(--c-danger);
  font-size: 15px;
  font-weight: 500;
  text-align: center;
  cursor: pointer;
  box-shadow: var(--s-sm);
  transition: background .15s;
  display: block;
}
.me-logout-btn:active { background: var(--c-danger-bg); }

/* ---- 6. ===== 知识库页面新样式 ============================== */

.page[data-page="kb"].active {
  background: var(--c-bg);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* 顶栏 */
.kb-topbar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 16px 8px;
  flex-shrink: 0;
}
.kb-back-btn {
  width: 36px;
  height: 36px;
  border-radius: var(--r-pill);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-card);
  border: 1px solid var(--c-border);
  box-shadow: var(--s-sm);
  cursor: pointer;
  flex-shrink: 0;
}
.kb-back-btn img { width: 18px; height: 18px; object-fit: contain; }
.kb-topbar-title {
  flex: 1;
  font-size: 18px;
  font-weight: 700;
  color: var(--c-text1);
  text-align: center;
  letter-spacing: -0.2px;
}
.kb-add-btn {
  width: 36px;
  height: 36px;
  border-radius: var(--r-pill);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-primary-bg);
  border: none;
  cursor: pointer;
  flex-shrink: 0;
}
.kb-add-btn img { width: 20px; height: 20px; object-fit: contain; }
body.theme-light .kb-add-btn img { filter: hue-rotate(0deg); }

/* 搜索栏 */
.kb-search-wrap {
  margin: 0 16px 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.kb-search-bar {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--c-card);
  border: 1px solid var(--c-border);
  border-radius: var(--r-xl);
  padding: 9px 14px;
  box-shadow: var(--s-sm);
}
.kb-search-bar img { width: 16px; height: 16px; object-fit: contain; opacity: 0.55; flex-shrink: 0; }
.kb-search-input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  font-size: 14px;
  color: var(--c-text1);
  caret-color: var(--c-primary);
}
.kb-search-input::placeholder { color: var(--c-text3); }
.kb-filter-btn {
  width: 38px;
  height: 38px;
  border-radius: var(--r-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-card);
  border: 1px solid var(--c-border);
  box-shadow: var(--s-sm);
  cursor: pointer;
  flex-shrink: 0;
}
.kb-filter-btn img { width: 18px; height: 18px; object-fit: contain; opacity: 0.7; }
.kb-filter-btn.on {
  background: var(--c-primary-bg);
  border-color: var(--c-primary);
}
.kb-filter-btn.on img { opacity: 1; }

/* 文件夹 chips */
.kb-folder-chips {
  display: flex;
  gap: 8px;
  padding: 0 16px 8px;
  flex-shrink: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.kb-folder-chips::-webkit-scrollbar { display: none; }
.kb-folder-chip {
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 500;
  padding: 5px 14px;
  border-radius: var(--r-pill);
  background: var(--c-card);
  border: 1px solid var(--c-border);
  color: var(--c-text2);
  cursor: pointer;
  white-space: nowrap;
  transition: all .15s;
}
.kb-folder-chip.on {
  background: var(--c-primary-bg);
  color: var(--c-primary-text);
  border-color: transparent;
}
.kb-folder-chip--add {
  min-width: 36px;
  text-align: center;
  font-size: 16px;
  line-height: 1;
  color: var(--c-text3);
}

/* 标签筛选 chips */
.kb-tag-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0 16px 10px;
  flex-shrink: 0;
}
.kb-tag-chips[hidden] { display: none !important; }
.kb-tag-chip {
  font-size: 12px;
  padding: 4px 12px;
  border-radius: var(--r-pill);
  background: var(--c-card);
  border: 1px solid var(--c-border);
  color: var(--c-text2);
  cursor: pointer;
}
.kb-tag-chip.on {
  background: var(--c-primary-bg);
  color: var(--c-primary-text);
  border-color: transparent;
}
.kb-tag-chips-empty {
  font-size: 12px;
  color: var(--c-text3);
  margin: 0;
}

/* 过滤标签（旧 Tab，保留类名兼容） */
.kb-filter-tabs {
  display: flex;
  gap: 8px;
  padding: 0 16px 10px;
  flex-shrink: 0;
  overflow-x: auto;
}
.kb-filter-tabs::-webkit-scrollbar { display: none; }
.kb-filter-tab {
  font-size: 13px;
  font-weight: 500;
  padding: 5px 14px;
  border-radius: var(--r-pill);
  background: var(--c-card);
  border: 1px solid var(--c-border);
  color: var(--c-text2);
  cursor: pointer;
  white-space: nowrap;
  transition: all .15s;
}
.kb-filter-tab.on {
  background: var(--c-primary-bg);
  color: var(--c-primary-text);
  border-color: transparent;
}

/* 列表区 */
.kb-scroll-area {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  padding: 0 16px 24px;
}
.kb-scroll-area::-webkit-scrollbar { display: none; }

/* 节标题 */
.kb-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  margin-top: 4px;
}
.kb-section-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--c-text3);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* 知识库卡片（列表项新版） */
.kb-item-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: var(--c-card);
  border: 1px solid var(--c-border);
  border-radius: var(--r-xl);
  margin-bottom: 8px;
  box-shadow: var(--s-sm);
  cursor: pointer;
  transition: box-shadow .15s, background .15s;
  position: relative;
}
.kb-item-card:active { box-shadow: none; background: var(--c-card2); }
.kb-item-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--r-lg);
  overflow: hidden;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-bg2);
}
.kb-item-icon img { width: 28px; height: 28px; object-fit: contain; }
.kb-item-icon--lucide {
  background: var(--kc-bg, var(--c-bg2));
  color: var(--kc-fg, var(--c-primary));
}
.kb-item-icon--lucide .ic { width: 22px; height: 22px; }
.kb-item-content { flex: 1; min-width: 0; }
.kb-item-name {
  font-size: 15px;
  font-weight: 600;
  color: var(--c-text1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 3px;
}
.kb-item-desc {
  font-size: 12px;
  color: var(--c-text2);
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.kb-item-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
}
.kb-item-tag {
  font-size: 10px;
  padding: 2px 8px;
  border-radius: var(--r-pill);
  background: var(--c-bg2);
  color: var(--c-text3);
  border: 1px solid var(--c-border);
}
.kb-item-meta {
  font-size: 12px;
  color: var(--c-text3);
  display: flex;
  align-items: center;
  gap: 6px;
}
.kb-item-meta .dot { width: 3px; height: 3px; border-radius: 50%; background: var(--c-text4); flex-shrink: 0; }
.kb-item-more {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: none;
  cursor: pointer;
  color: var(--c-text3);
  flex-shrink: 0;
}
.kb-item-more img { width: 18px; height: 18px; object-fit: contain; opacity: 0.6; }
.kb-item-more:active { background: var(--c-bg2); }

/* 空状态 */
.kb-empty-v2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 48px 24px;
  text-align: center;
  gap: 12px;
}
.kb-empty-v2 .kb-empty-icon {
  width: 64px;
  height: 64px;
  border-radius: var(--r-2xl);
  background: var(--c-card);
  border: 1px solid var(--c-border);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 4px;
}
.kb-empty-v2 .kb-empty-icon img { width: 32px; height: 32px; object-fit: contain; opacity: 0.5; }
.kb-empty-v2 p { font-size: 14px; color: var(--c-text2); margin: 0; }
.kb-empty-v2 .kb-empty-hint { font-size: 12px; color: var(--c-text3); }

/* 知识库详情 · 标注区 */
.kbd-annotate {
  padding: 0 16px 12px;
}
.kbd-desc {
  font-size: 13px;
  color: var(--c-text2);
  line-height: 1.5;
  margin: 0 0 10px;
}
.kbd-desc.is-empty { color: var(--c-text3); font-style: italic; }
.kbd-annotate-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.kbd-edit-btn {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  padding: 5px 10px;
  border-radius: var(--r-pill);
  background: var(--c-card);
  border: 1px solid var(--c-border);
  color: var(--c-text2);
  cursor: pointer;
}
.kbd-edit-btn:active { background: var(--c-bg2); }
.kbd-muted { font-size: 12px; color: var(--c-text3); }

/* 知识库详情 · ego 识库结论 */
.kbd-understanding {
  margin: 12px 0;
  padding: 12px 14px;
  border: 1px solid var(--c-border);
  border-radius: 12px;
  background: var(--c-card);
  font-size: 13px;
  line-height: 1.55;
}
.kbd-understanding-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}
.kbd-understanding-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--c-text1);
  letter-spacing: 0.02em;
}
.kbd-understanding-status {
  font-size: 11px;
  color: var(--c-text3);
  margin-top: 2px;
}
.kbd-understanding-actions {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  gap: 8px;
}
.kbd-understanding-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  flex-shrink: 0;
  width: auto;
  min-width: 0;
  min-height: 32px;
  padding: 6px 12px;
  border-radius: var(--r-pill);
  border: 1px solid var(--c-border);
  background: var(--c-bg2);
  color: var(--c-text2);
  font-size: 12px;
  line-height: 1.2;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.kbd-understanding-btn:active { background: var(--c-bg3, var(--c-bg2)); }
.kbd-understanding-body {
  margin: 0;
  color: var(--c-text2);
}
.kbd-understanding-error {
  margin: 8px 0 0;
  color: #e11d48;
  font-size: 12px;
}
.kbd-understanding-sections p {
  margin: 6px 0 0;
  font-size: 12px;
  color: var(--c-text3);
}

/* 新建/编辑 sheet · 标签 chips */
.kb-tag-edit-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 8px;
  min-height: 4px;
}
.kb-tag-edit-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  padding: 4px 8px 4px 10px;
  border-radius: var(--r-pill);
  background: var(--c-primary-bg);
  color: var(--c-primary-text);
  border: 1px solid transparent;
}
.kb-tag-edit-chip button {
  border: none;
  background: transparent;
  color: inherit;
  font-size: 14px;
  line-height: 1;
  padding: 0 2px;
  cursor: pointer;
  opacity: 0.75;
}
.kb-new-select {
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
}

/* KB Picker · 简介副标题 */
.kb-picker .kp-desc {
  font-size: 11px;
  color: var(--c-text2);
  margin-top: 2px;
  line-height: 1.35;
}
.kb-picker .kp-preview {
  font-size: 11px;
  color: var(--c-text3);
  margin-top: 2px;
  line-height: 1.35;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.kb-picker .kp-bound {
  display: inline-block;
  margin-left: 6px;
  font-size: 10px;
  font-weight: 500;
  padding: 1px 6px;
  border-radius: var(--r-pill);
  background: var(--c-primary-bg);
  color: var(--c-primary-text);
  vertical-align: middle;
}

/* 文件列表行（知识库详情页，使用 PNG 图标） */
.kb-file-row-v2 {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--c-card);
  border: 1px solid var(--c-border);
  border-radius: var(--r-xl);
  margin-bottom: 8px;
  box-shadow: var(--s-sm);
}
.kb-file-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--r-md);
  background: var(--c-bg2);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
}
.kb-file-icon img { width: 24px; height: 24px; object-fit: contain; }
.kb-file-content { flex: 1; min-width: 0; }
.kb-file-name {
  font-size: 14px;
  color: var(--c-text1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 2px;
}
.kb-file-meta { font-size: 11px; color: var(--c-text3); }

/* ---- 7. 输入框统一样式 --------------------------------------- */
.composer {
  background: var(--c-card) !important;
  border: 1px solid var(--c-border) !important;
  color: var(--c-text1) !important;
  min-height: 44px !important;
  align-items: center !important;
  padding: 4px 6px 4px 10px !important;
  box-sizing: border-box !important;
}
.composer .composer-input,
.composer-input {
  background: transparent !important;
  color: var(--c-text1) !important;
  caret-color: var(--c-primary) !important;
  padding: 2px 4px !important;
  line-height: 1.3 !important;
}
.composer .composer-input::placeholder,
.composer-input::placeholder { color: var(--c-text3) !important; }
.composer .ico { color: var(--c-text2) !important; }

/* ---- 8. 首页消息气泡 - 移除单条删除按钮 --------------------- */
/* home 页气泡删除按钮通过 JS scope 控制，CSS 不单独隐藏 */

/* ---- 9. 卡片、弹窗、底部Sheet 统一 -------------------------- */
body.theme-light .sheet-card,
body.theme-light .card {
  background: var(--c-card) !important;
}
body.theme-light .confirm-card {
  background: #FFFFFF !important;
}
/* 弹窗遮罩（勿匹配全屏 .overlay 详情页，否则会半透明叠字） */
body.theme-light .mask-overlay {
  background: var(--c-overlay) !important;
}
body.theme-light #kbDetailOverlay.overlay.open,
body.theme-light #createOverlay.overlay.open,
body.theme-light #loginOverlay.overlay.open,
body.theme-light #meProfileOverlay.overlay.open {
  background: #FFFFFF !important;
}
body.theme-light #kbDetailOverlay .ov-head,
body.theme-light #kbDetailOverlay .ov-scroll {
  background: #FFFFFF !important;
}
body.theme-light .page[data-page="kb"] .kb-topbar,
body.theme-light .page[data-page="kb"] .kb-search-wrap,
body.theme-light .page[data-page="kb"] .kb-filter-tabs {
  background: #FFFFFF !important;
  position: relative;
  z-index: 2;
}
body.theme-light .kb-item-card,
body.theme-light .kb-file-row-v2 {
  background: #FFFFFF !important;
}
body.theme-light .kb-new-host.open .kb-new-panel,
body.theme-light #kbMiniHost.open .kb-new-panel,
body.theme-light #kbNewHost.open .kb-new-panel {
  background: #FFFFFF !important;
}

/* ---- 10. 历史侧边栏浅色修复 ---------------------------------- */
body.theme-light .hd-panel {
  background: #FFFFFF !important;
  border-right-color: rgba(15,23,42,0.08) !important;
}
body.theme-light .hd-item { color: var(--c-text1) !important; }
body.theme-light .hd-item.active,
body.theme-light .hd-item:hover { background: rgba(14,165,160,0.06) !important; }

/* ---- 11. 空状态通用 ----------------------------------------- */
.empty-state-v2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 24px;
  gap: 12px;
  text-align: center;
  color: var(--c-text3);
}
.empty-state-v2 p { margin: 0; font-size: 14px; }

/* ---- 12. Toast 统一（深色/浅色） ----------------------------- */
#toast {
  background: var(--c-card2) !important;
  color: var(--c-text1) !important;
  border: 1px solid var(--c-border2) !important;
}
body.theme-light #toast {
  background: rgba(30,41,59,0.9) !important;
  color: #fff !important;
  border-color: transparent !important;
}

/* ---- 13. 安全区底部适配 -------------------------------------- */
.bottom-rail {
  padding-bottom: max(env(safe-area-inset-bottom), 4px);
}

/* ---- 14. 页面切换动画平滑 ------------------------------------ */
.page { transition: opacity .2s ease; }
.page:not(.active) { opacity: 0; pointer-events: none; }
.page.active { opacity: 1; }

/* ---- 15. 浅色模式关键颜色补丁 -------------------------------- */
body.theme-light {
  color: var(--c-text1);
}
body.theme-light .topbar {
  background: transparent;
}
body.theme-light .statusbar {
  color: #0F172A;
}
body.theme-light .home-scroll {
  background: var(--c-bg);
}
/* 保证卡片在浅色模式下可见 */
body.theme-light .kb-card {
  background: #FFFFFF !important;
  border: 1px solid rgba(15,23,42,0.07) !important;
  color: #0F172A !important;
}
body.theme-light .kb-card .kb-tt { color: #0F172A !important; }
body.theme-light .kb-card .kb-meta { color: #94A3B8 !important; }

/* ---- 16. 深色模式补丁（确保文字不被背景融合） --------------- */
body:not(.theme-light) .me-section-card,
body:not(.theme-light) .me-user-card,
body:not(.theme-light) .kb-item-card {
  border-color: rgba(255,255,255,0.07);
}

/* ---- 17. 外观选择 seg-mini（我的页深色模式） ---------------- */
body:not(.theme-light) .me-theme-seg {
  background: rgba(255,255,255,0.06);
}
body:not(.theme-light) .me-theme-seg button.on {
  background: rgba(255,255,255,0.12);
  color: #E8ECF2;
}

/* ---- 18. 对话页 - 历史对话输入框键盘顶起修复 ----------------- */
/* keyboard-open 时仅对话页(首页)隐藏 tabbar，知识库/我的等页面不受影响 */
body.native-app.page-chat.keyboard-open .tabbar,
body.native-app.page-agents.agents-chat-focus.keyboard-open .tabbar,
body.native-app.keyboard-open .page[data-page="home"].active ~ * .tabbar {
  display: none !important;
}
/* 确保知识库页面 tabbar 始终保持相对定位，不被顶起 */
body.native-app.page-kb .tabbar {
  position: relative !important;
  bottom: auto !important;
}

/* ---- 19. 响应式：真机全屏模式（非 desktop stage） ------------ */
@media (max-width: 430px) {
  .stage { padding: 0 !important; }
  .device {
    width: 100% !important;
    max-width: 100% !important;
    height: 100dvh !important;
    border-radius: 0 !important;
    padding: 0 !important;
    background: var(--c-bg) !important;
    box-shadow: none !important;
  }
  .device::before { display: none !important; }
  .screen { border-radius: 0 !important; }
}

/* ---- 20. 按钮规范 -------------------------------------------- */
.btn-primary {
  background: var(--brand-grad);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  border: none;
  border-radius: var(--r-xl);
  padding: 12px 24px;
  cursor: pointer;
  text-align: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: opacity .15s;
}
.btn-primary:active { opacity: 0.82; }

.btn-secondary {
  background: var(--c-card);
  color: var(--c-text1);
  font-size: 14px;
  font-weight: 500;
  border: 1px solid var(--c-border);
  border-radius: var(--r-xl);
  padding: 10px 20px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: background .15s;
}
.btn-secondary:active { background: var(--c-bg2); }

.btn-danger {
  background: var(--c-danger-bg);
  color: var(--c-danger);
  font-size: 14px;
  font-weight: 500;
  border: 1px solid transparent;
  border-radius: var(--r-xl);
  padding: 10px 20px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

/* ---- 21. 列表项规范 ------------------------------------------ */
.list-item-v2 {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  min-height: 52px;
  background: var(--c-card);
  border-radius: var(--r-xl);
  margin-bottom: 8px;
  border: 1px solid var(--c-border);
  box-shadow: var(--s-sm);
}

/* ---- 22. 知识库更多操作浮动菜单 ------------------------------ */
.kb-more-menu {
  background: var(--c-card);
  border: 1px solid var(--c-border);
  border-radius: var(--r-xl);
  box-shadow: var(--s-lg);
  padding: 4px;
  min-width: 160px;
  z-index: 999;
  overflow: hidden;
}
.kb-more-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 11px 14px;
  background: transparent;
  border: none;
  border-radius: var(--r-md);
  font-size: 14px;
  color: var(--c-text1);
  cursor: pointer;
  text-align: left;
  transition: background .12s;
}
.kb-more-item:active { background: var(--c-bg2); }
.kb-more-item.danger { color: var(--c-danger); }

/* ============================================================
   Phase 3 · 知识库页面二次修补
   ============================================================ */

/* ---- 23. KB 顶栏安全区适配（下移，避免紧贴状态栏） ----------- */
.page[data-page="kb"] .kb-topbar {
  padding-top: calc(env(safe-area-inset-top, 0px) + 20px) !important;
  padding-bottom: 10px !important;
  min-height: 56px;
}

body.native-app .page[data-page="kb"] .kb-topbar {
  padding-top: calc(max(env(safe-area-inset-top, 0px), 28px) + 14px) !important;
}

/* 搜索栏与顶栏间距 */
.page[data-page="kb"] .kb-search-wrap {
  margin-top: 2px;
  margin-bottom: 10px;
}

/* 搜索框与筛选按钮等高 */
.page[data-page="kb"] .kb-search-bar {
  height: 44px;
  padding: 0 14px;
}

.page[data-page="kb"] .kb-filter-btn {
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: var(--r-lg);
}

/* ---- 24. KB 弹窗（kb-new-host / kbMiniHost）键盘适配 --------- */
/*
 * 原理：
 *  - 键盘打开时，body 上挂 keyboard-open class
 *  - --kb-vv-inset 是键盘高度（由 setupKeyboardAwareLayout 维护）
 *  - 只在 body.page-kb 上生效，不影响首页
 *  - .kb-new-panel 用 CSS 变量 --kb-panel-lift 向上平移，叠加在原 translateY() 之外
 *    采用 bottom 定位（已有 bottom:0）+ translateY，通过 bottom 值更新实现上移
 */
body.page-kb.keyboard-open .kb-new-host.open .kb-new-panel,
body.page-kb.keyboard-open .kb-new-host.open .kb-new-panel {
  bottom: var(--kb-vv-inset, 0px) !important;
  transition: bottom .22s cubic-bezier(.2,.9,.2,1), transform .28s cubic-bezier(.2,.9,.2,1) !important;
}

/* 键盘打开时约束弹窗最大高度，防止撑出屏幕 */
body.keyboard-open .kb-new-panel {
  max-height: calc(100vh - var(--kb-vv-inset, 0px) - env(safe-area-inset-top, 0px) - 16px) !important;
  overflow-y: auto;
}

/* ---- 25. KB 弹窗按钮/输入框样式统一 -------------------------- */
/* kbMiniHost / kbNewHost 里 .name-input 确保主题可读 */
#kbMiniHost .name-input,
#kbNewHost .name-input {
  color: var(--c-text1);
  background: var(--c-card2);
  border: 1px solid var(--c-border);
  border-radius: var(--r-lg);
  padding: 10px 14px;
  font-size: 15px;
  width: 100%;
  box-sizing: border-box;
  outline: none;
}
#kbMiniHost .name-input:focus,
#kbNewHost .name-input:focus,
#kbTagEditHost .name-input:focus {
  border-color: var(--c-primary);
}

/* 取消按钮 (ghost-btn) 在 kb 弹窗里稍改样式 */
#kbMiniHost .ghost-btn,
#kbNewHost .ghost-btn,
#kbTagEditHost .ghost-btn {
  color: var(--c-text2) !important;
  background: var(--c-bg2) !important;
  border: 1px solid var(--c-border) !important;
}

/* 主操作按钮（确定 / 创建 / 保存） */
#kbMiniHost .cta,
#kbNewHost .cta,
#kbTagEditHost .cta {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  padding: 12px 16px;
  margin-top: 20px;
  border: none;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-sky) 100%);
  color: #06121E;
  font-weight: 600;
  font-size: 15px;
  line-height: 1.2;
  cursor: pointer;
  box-shadow: 0 8px 20px rgba(46, 230, 201, 0.22);
  appearance: none;
  -webkit-appearance: none;
}
#kbMiniHost .cta:active,
#kbNewHost .cta:active,
#kbTagEditHost .cta:active {
  transform: scale(0.98);
  opacity: 0.92;
}
body.theme-light #kbMiniHost .cta,
body.theme-light #kbNewHost .cta,
body.theme-light #kbTagEditHost .cta {
  color: #fff;
  box-shadow: 0 6px 16px rgba(37, 99, 235, 0.25);
}
#kbMiniHost .ghost-btn,
#kbNewHost .ghost-btn,
#kbTagEditHost .ghost-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  padding: 12px 16px;
  margin-top: 8px;
  border-radius: 14px;
  font-size: 15px;
  line-height: 1.2;
}

/* ---- 26. 遮罩颜色适配主题 ------------------------------------- */
body.theme-light .kb-new-host .kb-new-bd {
  background: rgba(15,23,42,0.35) !important;
}
body:not(.theme-light) .kb-new-host .kb-new-bd {
  background: rgba(0,0,0,0.55) !important;
}

/* ---- 27. kb-more-menu 最小点击区域 ----------------------------- */
.kb-more-item {
  min-height: 44px;
}

/* ---- 28. ego 自定义上下文菜单（仅复制） ----------------------- */
.ego-ctx-menu {
  position: fixed;
  z-index: 99990;
  min-width: 108px;
  padding: 6px;
  border-radius: 14px;
  border: 1px solid var(--c-border2);
  background: color-mix(in srgb, var(--c-card) 92%, transparent);
  box-shadow: var(--s-md), 0 0 0 1px rgba(46, 230, 201, 0.08);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  opacity: 0;
  transform: scale(0.96) translateY(4px);
  transform-origin: top left;
  pointer-events: none;
  transition: opacity 0.16s ease, transform 0.16s ease;
}
.ego-ctx-menu.is-open {
  opacity: 1;
  transform: scale(1) translateY(0);
  pointer-events: auto;
}
.ego-ctx-menu-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 40px;
  padding: 8px 12px;
  border: none;
  border-radius: 10px;
  background: transparent;
  color: var(--c-text1);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.02em;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}
.ego-ctx-menu-ic {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--c-primary-bg);
  color: var(--c-primary-text);
  flex-shrink: 0;
}
.ego-ctx-menu-btn:active {
  background: var(--c-primary-bg);
}
.ego-ctx-menu-btn:active .ego-ctx-menu-ic {
  background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-sky) 100%);
  color: #06121E;
}
body.theme-light .ego-ctx-menu {
  background: rgba(255, 255, 255, 0.96);
  border-color: rgba(15, 23, 42, 0.1);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12), 0 0 0 1px rgba(37, 99, 235, 0.06);
}
body.theme-light .ego-ctx-menu-btn:active .ego-ctx-menu-ic {
  color: #fff;
}

/* ============================================================
   Phase 2 · 浅色模式精准修补（覆盖 app.css 硬编码深色）
   ============================================================ */

/* 全局浅色底 */
html.theme-light,
body.theme-light {
  background: #F5F7FB !important;
  color: #111827 !important;
}
body.theme-light .screen {
  background: radial-gradient(120% 80% at 50% -20%, #FFFFFF 0%, #F5F7FB 55%, #EEF3F9 100%) !important;
  color: #111827 !important;
}
body.theme-light .page[data-page="home"].active,
body.theme-light .home-scroll,
body.theme-light .home-chat-col {
  background: transparent !important;
}

/* 首页顶栏 · EGO·日常对话 */
body.theme-light .home-head-band,
body.theme-light .home-topbar {
  background: transparent !important;
}
body.theme-light .home-ego-picker-trigger,
body.theme-light .home-ego-picker-label {
  color: #111827 !important;
  opacity: 1 !important;
}
body.theme-light .home-ego-ver {
  color: #64748B !important;
  opacity: 1 !important;
}
body.theme-light .home-ego-picker-chev,
body.theme-light .home-new-chat-btn,
body.theme-light .home-new-chat-btn .ic-sm {
  color: #334155 !important;
  stroke: #334155 !important;
  opacity: 1 !important;
}
body.theme-light .home-hist-robot-btn .robot-svg-head { fill: rgba(30,41,59,0.12); }
body.theme-light .home-hist-robot-btn .robot-svg-eye { fill: #111827; }

/* 底部输入框 · 浅色 */
body.theme-light .bottom-rail {
  background: transparent !important;
}
body.theme-light .composer {
  background: #FFFFFF !important;
  border: 1px solid #E5EAF3 !important;
  box-shadow: 0 4px 18px rgba(15, 23, 42, 0.08) !important;
  color: #111827 !important;
}
body.theme-light .composer .composer-input,
body.theme-light .composer-input {
  color: #111827 !important;
  background: transparent !important;
}
body.theme-light .composer .ico,
body.theme-light .composer .mic {
  color: #64748B !important;
  background: rgba(15, 23, 42, 0.04) !important;
  border-color: #E5EAF3 !important;
}

/* 底部导航 · 浅色悬浮卡片 */
body.theme-light .tabbar {
  background: rgba(255, 255, 255, 0.96) !important;
  border: 1px solid #E5EAF3 !important;
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.10) !important;
}
body.theme-light .tabbar button {
  color: #64748B !important;
}
body.theme-light .tabbar button.active {
  color: #2563EB !important;
}
body.theme-light .tabbar button.active .dot {
  background: linear-gradient(90deg, #0EA5A0, #2563EB) !important;
}

/* ---- 真机：恢复悬浮圆角底栏（避免全宽贴边 + 竖线分割感）---- */
html.native-app-boot body .bottom-rail,
body.native-app .bottom-rail {
  padding-left: 12px !important;
  padding-right: 12px !important;
  padding-bottom: max(8px, env(safe-area-inset-bottom, 0px)) !important;
  gap: 10px !important;
  box-sizing: border-box !important;
}
html.native-app-boot body .tabbar,
body.native-app .tabbar {
  border-radius: 22px !important;
  overflow: hidden !important;
  box-shadow: 0 8px 28px rgba(15, 23, 42, 0.14) !important;
  -webkit-backdrop-filter: blur(18px) !important;
  backdrop-filter: blur(18px) !important;
  border: 1px solid var(--c-nav-border) !important;
}
body.native-app:not(.theme-light) .tabbar {
  background: linear-gradient(180deg, rgba(20, 26, 40, 0.94), rgba(12, 17, 28, 0.94)) !important;
}
html.native-app-boot body .tabbar button,
body.native-app .tabbar button {
  border: none !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}

/* 创作页 · 体裁列表浅色 */
body.theme-light .page[data-page="create"].active > .topbar {
  background: linear-gradient(180deg, #F5F7FB 0%, rgba(245, 247, 251, 0.98) 100%) !important;
}
body.theme-light .create-topbar-title,
body.theme-light .create-flow-head-title {
  color: #111827 !important;
}
body.theme-light .create-genre-card,
body.theme-light .create-genre-card--list {
  background: #FFFFFF !important;
  border-color: #E5EAF3 !important;
  color: #111827 !important;
  box-shadow: 0 2px 12px rgba(15, 23, 42, 0.06) !important;
}
body.theme-light .create-genre-card .t { color: #111827 !important; }
body.theme-light .create-genre-card .d,
body.theme-light .create-genre-card--list .d { color: #64748B !important; }
body.theme-light .create-quote-block--top {
  background: #FFFFFF !important;
  border-color: #E5EAF3 !important;
}

/* 个人信息弹层 */
#meProfileOverlay .me-profile-sheet {
  max-width: 100%;
}
.me-profile-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: calc(max(env(safe-area-inset-top, 0px), 28px) + 12px) 16px 12px;
  flex-shrink: 0;
}
.me-profile-head-title {
  flex: 1;
  text-align: center;
  font-size: 17px;
  font-weight: 600;
  color: var(--c-text1);
}
.me-profile-close {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--c-card);
  border: 1px solid var(--c-border);
  color: var(--c-text2);
  flex-shrink: 0;
}
.me-profile-body {
  padding: 0 16px calc(24px + env(safe-area-inset-bottom, 0px));
}
.me-profile-card {
  background: var(--c-card);
  border: 1px solid var(--c-border);
  border-radius: var(--r-2xl);
  padding: 20px 16px;
  box-shadow: var(--s-sm);
}
.me-profile-avatar-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
}
.me-profile-avatar-btn {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  border: 2px solid var(--c-border);
  background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-sky) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  font-weight: 700;
  color: #fff;
  overflow: hidden;
  cursor: pointer;
  position: relative;
  padding: 0;
}
.me-profile-avatar-btn img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}
.me-profile-avatar-hint {
  font-size: 12px;
  color: var(--c-primary-text);
}
.me-profile-field {
  margin-bottom: 14px;
}
.me-profile-field label {
  display: block;
  font-size: 12px;
  color: var(--c-text3);
  margin-bottom: 6px;
}
.me-profile-field input {
  width: 100%;
  box-sizing: border-box;
  padding: 11px 14px;
  border-radius: var(--r-lg);
  border: 1px solid var(--c-border);
  background: var(--c-input-bg);
  color: var(--c-input-text, var(--c-text1));
  font-size: 15px;
}
.me-profile-field input:disabled {
  background: var(--c-bg2);
  color: var(--c-text3);
  opacity: 1;
}
.me-profile-save {
  width: 100%;
  margin-top: 8px;
  padding: 13px;
  border: none;
  border-radius: var(--r-xl);
  background: var(--brand-grad);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
}
.me-profile-logout {
  width: 100%;
  margin-top: 10px;
  padding: 12px;
  border-radius: var(--r-xl);
  border: 1px solid var(--c-border);
  background: var(--c-card);
  color: var(--c-danger);
  font-size: 15px;
  font-weight: 500;
}
#meProfileOverlay.open {
  background: var(--c-overlay) !important;
}
#meProfileOverlay .me-profile-sheet {
  height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--c-bg);
}
body.theme-light #meProfileOverlay.open {
  background: rgba(15, 23, 42, 0.45) !important;
}
body.theme-light #meProfileOverlay .me-profile-sheet {
  background: #F5F7FB !important;
}
body.theme-light .me-profile-card { background: #FFFFFF !important; }
body.theme-light .me-icon-btn img { opacity: 0.85; }

/* ============================================================
   Phase 4 · 深色模式全局文字可读性 & 主题统一修补
   ============================================================ */

/* ---- 文字工具类：暗色模式默认定义 ----------------------------- */
.text-text1 { color: var(--c-text1); }
.text-text2 { color: var(--c-text2); }
.text-text3 { color: var(--c-text3); }
.text-text4 { color: var(--c-text4); }

/* ---- V0.5 版本号：提高可读性（opacity 0.45 太低） ------------- */
.home-ego-ver {
  opacity: 0.68 !important;
  color: var(--c-text2) !important;
}
body.theme-light .home-ego-ver {
  color: #64748B !important;
  opacity: 1 !important;
}

/* ---- 下拉箭头（chevron）：深色模式要清晰 ---------------------- */
.home-ego-picker-chev {
  opacity: 0.72 !important;
  color: var(--c-text2) !important;
}

/* ---- 首页顶部机器人按钮：深色模式可见 ------------------------- */
.home-hist-robot-btn {
  opacity: 1 !important;
}

/* ---- 智能体页"功能正在开发中"文字颜色修正 -------------------- */
.agents-dev-placeholder .text-text1 {
  color: var(--c-text1) !important;
  opacity: 1 !important;
}
.agents-dev-placeholder .text-text3 {
  color: var(--c-text3) !important;
  opacity: 1 !important;
}
body.theme-light .agents-dev-placeholder .text-text1 {
  color: #111827 !important;
}
body.theme-light .agents-dev-placeholder .text-text3 {
  color: #64748B !important;
}

/* ---- 智能体机器人 SVG：深色模式适配 -------------------------- */
.agents-robot-logo {
  opacity: 0.9 !important;
}

/* ---- 我的页面：顶部安全区适配（避免紧贴状态栏） --------------- */
body.native-app .page[data-page="me"].active .me-topbar {
  padding-top: calc(max(env(safe-area-inset-top, 0px), 28px) + 8px) !important;
}

/* ---- 首页顶部标题：深色模式确保可见 -------------------------- */
.home-ego-picker-trigger,
.home-ego-picker-label {
  color: #E8ECF2 !important;
  opacity: 1 !important;
}
body.theme-light .home-ego-picker-trigger,
body.theme-light .home-ego-picker-label {
  color: #111827 !important;
  opacity: 1 !important;
}

/* ---- 深色模式 screen 背景不被浅色 CSS 覆盖（加强） ----------- */
body:not(.theme-light) .screen {
  background: radial-gradient(120% 80% at 50% -20%, #1B2238 0%, #0B0F1A 50%, #06080F 100%) !important;
}
body:not(.theme-light).native-app .screen {
  background: #0A0E18 !important;
}

/* ---- me-row 知识库图标 icon-bg-teal 适配 -------------------- */
.icon-bg-teal {
  background: rgba(46,230,201,0.12) !important;
}
body.theme-light .icon-bg-teal {
  background: rgba(13,148,136,0.10) !important;
}

/* ---- 外观行收敛：容器过高 + seg 左侧脱离修正 ----------------- */
.me-row.me-row-static {
  padding-top: 9px;
  padding-bottom: 9px;
  min-height: 44px;
}
.me-row-static .me-row-title { min-width: 0; }
.me-row.me-row-static .me-theme-seg {
  margin-right: 0;
  flex-shrink: 0;
  box-sizing: border-box;
}
.me-theme-seg button {
  line-height: 1.2;
  white-space: nowrap;
}

/* ---- 条款 / 隐私 应用内查看器（带返回 + 关闭按钮） ----------- */
.legal-doc-overlay {
  position: fixed;
  inset: 0;
  z-index: 4000;
  display: none;
  background: rgba(8,12,20,0.55);
}
.legal-doc-overlay.open { display: flex; }
.legal-doc-sheet {
  margin: auto;
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  background: var(--c-card, #fff);
  position: relative;
}
.legal-doc-head {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  height: 52px;
  padding: 0 8px;
  padding-top: env(safe-area-inset-top, 0px);
  box-sizing: content-box;
  border-bottom: 1px solid var(--c-border, rgba(0,0,0,0.08));
  background: var(--c-card, #fff);
}
.legal-doc-back {
  flex-shrink: 0;
  height: 36px;
  padding: 0 12px;
  border: none;
  background: transparent;
  color: var(--c-text1, #0F172A);
  font-size: 15px;
  cursor: pointer;
  border-radius: 10px;
}
.legal-doc-back:active { background: var(--c-bg2, rgba(0,0,0,0.05)); }
.legal-doc-title {
  flex: 1;
  text-align: center;
  font-size: 16px;
  font-weight: 600;
  color: var(--c-text1, #0F172A);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.legal-doc-close {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  color: var(--c-text1, #0F172A);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  border-radius: 10px;
}
.legal-doc-close:active { background: var(--c-bg2, rgba(0,0,0,0.05)); }
.legal-doc-frame {
  flex: 1;
  width: 100%;
  border: none;
  background: var(--c-card, #fff);
}
.legal-doc-loading {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: calc(52px + env(safe-area-inset-top, 0px));
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 10px;
  background: var(--c-card, #fff);
  color: var(--c-text2, #64748b);
  font-size: 14px;
  z-index: 2;
}
.legal-doc-loading.show {
  display: flex;
}
.legal-doc-loading-spinner {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 2.5px solid rgba(59, 130, 246, 0.22);
  border-top-color: #3b82f6;
  animation: legal-doc-spin 0.75s linear infinite;
}
@keyframes legal-doc-spin {
  to { transform: rotate(360deg); }
}

/* =============================================================================
 * 登录页按钮（不依赖 Tailwind 工具类，离线 APK 也能正常显示）
 * ============================================================================= */
#loginOverlay #loginSendSms {
  border: none !important;
  background: var(--brand-grad) !important;
  color: #06121e !important;
  font-size: 13px;
  font-weight: 600;
  border-radius: 10px;
  box-shadow: 0 4px 12px rgba(46, 230, 201, 0.22);
}
#loginOverlay #loginSendSms:disabled {
  opacity: 0.55;
  box-shadow: none;
}
#loginOverlay #loginSendSms:active { transform: scale(0.97); }

#loginOverlay #loginVerifyBtn,
#loginOverlay #loginPasswordBtn {
  width: 100%;
  height: 46px;
  margin-top: 16px;
  border: none;
  border-radius: 999px;
  background: var(--brand-grad);
  color: #06121e;
  font-size: 15px;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 8px 20px rgba(46, 230, 201, 0.22);
}
#loginOverlay #loginPasswordBtn { margin-top: 12px; }
#loginOverlay #loginVerifyBtn:active,
#loginOverlay #loginPasswordBtn:active { transform: scale(0.99); opacity: 0.95; }

/* 登录页内联「资料」卡与个人信息重复（昵称/头像/保存资料），隐藏以精简登录页；
   元素保留在 DOM 中，避免 11-auth-ui.js 读取 loginNickname.value 报错 */
#loginOverlay .form-card { display: none !important; }
