/* ============================================================
   theme.css — 全站统一设计系统（覆盖层，置于 aoyun.css 之后）
   目标：化解 aoyun.css / learn.css / custom.css 三套配色冲突，
        统一按钮 / 导航 / 分页 / 卡片 / 表单，并提供亮 / 暗 / 系统主题。
   原则：仅做"设计层"覆盖，不改动 PbootCMS 标签与页面结构。
   ============================================================ */

/* ---------- 设计变量（亮色为默认） ---------- */
:root {
  /* 品牌主色：现代通透蓝 */
  --c-primary: #2563eb;
  --c-primary-600: #1d4ed8;
  --c-primary-700: #1e40af;
  --c-primary-50: #eff6ff;
  --c-primary-100: #dbeafe;
  --c-accent: #0ea5e9;

  /* 语义色 */
  --c-danger: #e11d48;
  --c-danger-600: #be123c;
  --c-ok: #16a34a;
  --c-warning: #f59e0b;

  /* 文本 / 背景 / 表面 */
  --c-text: #1f2937;
  --c-heading: #0f172a;
  --c-muted: #6b7280;
  --c-bg: #f5f7fb;
  --c-surface: #ffffff;
  --c-surface-2: #f8fafc;
  --c-border: #e6e9f0;
  --c-border-strong: #d4d9e4;

  /* 圆角 */
  --radius-xs: 8px;
  --radius-sm: 10px;
  --radius: 14px;
  --radius-lg: 20px;
  --radius-pill: 999px;

  /* 阴影 */
  --shadow-xs: 0 1px 3px rgba(15, 23, 42, .06);
  --shadow-sm: 0 4px 14px rgba(15, 23, 42, .07);
  --shadow: 0 12px 34px rgba(15, 23, 42, .09);
  --shadow-lg: 0 24px 60px rgba(15, 23, 42, .13);
  --ring: 0 0 0 3px rgba(37, 99, 235, .22);

  /* 排版 / 布局 */
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", sans-serif;
  --nav-h: 64px;
  --container: 1180px;

  /* 动效 */
  --ease: cubic-bezier(.16, 1, .3, 1);
  --t-fast: .18s;
  --t: .26s;
}

/* ---------- 暗色主题 ---------- */
[data-theme="dark"] {
  --c-primary: #3b82f6;
  --c-primary-600: #2563eb;
  --c-primary-700: #1d4ed8;
  --c-primary-50: #0b1b34;
  --c-primary-100: #102a4c;
  --c-accent: #38bdf8;

  --c-danger: #fb7185;
  --c-danger-600: #f43f5e;
  --c-ok: #22c55e;
  --c-warning: #fbbf24;

  --c-text: #e6e9f0;
  --c-heading: #f3f5f9;
  --c-muted: #9aa4b2;
  --c-bg: #0d1117;
  --c-surface: #161b22;
  --c-surface-2: #1b222c;
  --c-border: #232a35;
  --c-border-strong: #313a47;

  --shadow-xs: 0 1px 3px rgba(0, 0, 0, .5);
  --shadow-sm: 0 4px 14px rgba(0, 0, 0, .45);
  --shadow: 0 12px 34px rgba(0, 0, 0, .55);
  --shadow-lg: 0 24px 60px rgba(0, 0, 0, .65);
  --ring: 0 0 0 3px rgba(59, 130, 246, .35);
}

/* ---------- 基础 ---------- */
html { scroll-behavior: smooth; }
body {
  font-family: var(--font);
  background: var(--c-bg);
  color: var(--c-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  transition: background-color var(--t), color var(--t);
}
a { color: var(--c-primary); }
a:hover { color: var(--c-primary-600); }
h1, h2, h3, h4, h5, h6 { color: var(--c-heading); }

/* 容器宽度统一 */
.container { max-width: var(--container); }

/* ---------- 导航栏（玻璃拟态） ---------- */
.navbar {
  height: var(--nav-h);
  background: rgba(255, 255, 255, .82) !important;
  backdrop-filter: saturate(180%) blur(14px);
  -webkit-backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid transparent;
  transition: background-color var(--t), box-shadow var(--t), border-color var(--t);
}
.navbar.scrolled {
  box-shadow: var(--shadow-sm);
  border-bottom-color: var(--c-border);
}
.navbar .navbar-brand img { transition: transform var(--t); }
.navbar .navbar-brand:hover img { transform: scale(1.04); }

.navbar .nav-link {
  position: relative;
  color: var(--c-text) !important;
  font-weight: 500;
  letter-spacing: .3px;
  transition: color var(--t-fast);
}
.navbar .nav-link::after {
  content: "";
  position: absolute;
  left: 1.2rem;
  right: 1.2rem;
  bottom: 6px;
  height: 2px;
  border-radius: 2px;
  background: var(--c-primary);
  transform: scaleX(0);
  transform-origin: center;
  transition: transform var(--t) var(--ease);
}
.navbar .nav-link:hover { color: var(--c-primary) !important; }
.navbar .nav-link:hover::after { transform: scaleX(1); }
.navbar .nav-item.active .nav-link { color: var(--c-primary) !important; font-weight: 700; }
.navbar .nav-item.active .nav-link::after { transform: scaleX(1); }

/* 导航栏占位（替代硬编码 71px） */
.head-sm-height { height: var(--nav-h) !important; }

/* 暗色下导航 */
[data-theme="dark"] .navbar {
  background: rgba(13, 17, 23, .80) !important;
  border-bottom-color: var(--c-border);
}

/* ---------- 主题切换控件 ---------- */
.theme-switch {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  margin-left: 14px;
  padding: 3px;
  background: var(--c-surface-2);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-pill);
}
.theme-switch .ts-btn {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: var(--c-muted);
  border-radius: var(--radius-pill);
  cursor: pointer;
  font-size: 14px;
  transition: color var(--t-fast), background-color var(--t-fast);
}
.theme-switch .ts-btn:hover { color: var(--c-primary); }
.theme-switch .ts-btn[aria-pressed="true"] {
  background: var(--c-primary);
  color: #fff;
  box-shadow: var(--shadow-xs);
}
@media (max-width: 991.98px) {
  .theme-switch { margin: 10px 0 4px; }
}

/* ---------- 按钮统一 ---------- */
.btn, .btn-primary {
  border-radius: var(--radius-sm);
  font-weight: 600;
  padding: .55rem 1.4rem;
  transition: transform var(--t-fast), box-shadow var(--t-fast), background-color var(--t-fast), border-color var(--t-fast);
  box-shadow: none;
}
.btn-primary,
.btn-primary:not(:disabled) {
  background: var(--c-primary);
  border-color: var(--c-primary);
  color: #fff;
}
.btn-primary:hover,
.btn-primary:focus {
  background: var(--c-primary-600);
  border-color: var(--c-primary-600);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}
.btn-primary:active { transform: translateY(0); }
.btn-danger,
.btn-danger:not(:disabled) {
  background: var(--c-danger);
  border-color: var(--c-danger);
  color: #fff;
}
.btn-danger:hover {
  background: var(--c-danger-600);
  border-color: var(--c-danger-600);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}
.btn-outline {
  background: transparent;
  border: 1px solid var(--c-border-strong);
  color: var(--c-text);
}
.btn-outline:hover {
  border-color: var(--c-primary);
  color: var(--c-primary);
  background: var(--c-primary-50);
}
[data-theme="dark"] .btn-outline { background: transparent; }
[data-theme="dark"] .btn-outline:hover { background: rgba(59, 130, 246, .12); }

/* ---------- 统一 Bootstrap 原生按钮配色（化解 btn-info 青色冲突） ---------- */
.btn-info, .btn-info:not(:disabled) {
  background: var(--c-primary);
  border-color: var(--c-primary);
  color: #fff;
}
.btn-info:hover, .btn-info:focus {
  background: var(--c-primary-600);
  border-color: var(--c-primary-600);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}
.btn-light, .btn-light:not(:disabled) {
  background: var(--c-surface-2);
  border-color: var(--c-border);
  color: var(--c-text);
}
.btn-light:hover {
  background: var(--c-primary-50);
  border-color: var(--c-primary);
  color: var(--c-primary);
}
.btn-secondary, .btn-secondary:not(:disabled) {
  background: var(--c-surface-2);
  border-color: var(--c-border-strong);
  color: var(--c-text);
}
.btn-secondary:hover {
  background: var(--c-border);
  color: var(--c-text);
}
.btn-success, .btn-success:not(:disabled) {
  background: var(--c-ok);
  border-color: var(--c-ok);
  color: #fff;
}
.badge-info { background: var(--c-primary); border-color: var(--c-primary); }
[data-theme="dark"] .btn-light,
[data-theme="dark"] .btn-secondary { background: var(--c-surface-2); color: var(--c-text); }
[data-theme="dark"] .btn-light:hover,
[data-theme="dark"] .btn-secondary:hover { background: var(--c-border); color: var(--c-text); }

/* ---------- 卡片 ---------- */
.card {
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  background: var(--c-surface);
  box-shadow: var(--shadow-xs);
  transition: transform var(--t), box-shadow var(--t), border-color var(--t);
}
.card:hover { box-shadow: var(--shadow-sm); }

/* ---------- 分页统一（覆盖 aoyun.css 青色） ---------- */
.page-num, .page-link {
  color: var(--c-primary) !important;
  background-color: var(--c-surface) !important;
  border: 1px solid var(--c-border) !important;
  border-radius: var(--radius-xs);
  margin: 0 3px;
  transition: background-color var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}
.page-num:hover, .page-link:hover {
  background-color: var(--c-primary-50) !important;
  border-color: var(--c-primary) !important;
  text-decoration: none;
}
.page-num-current {
  color: #fff !important;
  background-color: var(--c-primary) !important;
  border-color: var(--c-primary) !important;
}
.page-num-current:hover { color: #fff !important; }

/* ---------- 表单控件 ---------- */
.form-control, input[type="text"], input[type="tel"], textarea, select {
  border-radius: var(--radius-sm);
  border: 1px solid var(--c-border-strong);
  background: var(--c-surface);
  color: var(--c-text);
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.form-control:focus, input:focus, textarea:focus, select:focus {
  border-color: var(--c-primary);
  box-shadow: var(--ring);
  outline: none;
}

/* ---------- 内容区（详情页正文） ---------- */
.content { color: var(--c-text); line-height: 1.9; }
.content img, .content iframe { border-radius: var(--radius-sm); margin: 8px 0; }
.position, .position a { color: var(--c-muted); }
.text-secondary, .text-secondary a { color: var(--c-muted) !important; }

/* ---------- 区块间距规范 ---------- */
.pages { min-height: 460px; }

/* ============================================================
   暗色模式：高特异性覆盖（[data-theme="dark"] 前缀）
   覆盖 aoyun.css 与 learn.css 中固定浅色值，确保跨引入顺序生效
   ============================================================ */
[data-theme="dark"] body { background: var(--c-bg); color: var(--c-text); }
[data-theme="dark"] .card,
[data-theme="dark"] .figure { background: var(--c-surface); border-color: var(--c-border); }
[data-theme="dark"] .content { color: var(--c-text); }
[data-theme="dark"] .content li { color: var(--c-text); }
[data-theme="dark"] a { color: var(--c-primary); }
[data-theme="dark"] .navbar-light .navbar-nav .nav-link { color: var(--c-text) !important; }

/* 首页 learn.css 元素暗色适配 */
[data-theme="dark"] body { background: var(--c-bg); }
[data-theme="dark"] .lp-hero {
  background: linear-gradient(135deg, #1e1b4b 0%, #312e81 50%, #1e3a8a 100%);
}
[data-theme="dark"] .lp-section,
[data-theme="dark"] .lp-cats { background: var(--c-bg); }
[data-theme="dark"] .lp-cat,
[data-theme="dark"] .lp-card,
[data-theme="dark"] .lp-list,
[data-theme="dark"] .lp-stats {
  background: var(--c-surface);
  border-color: var(--c-border);
  color: var(--c-text);
}
[data-theme="dark"] .lp-card .meta,
[data-theme="dark"] .lp-list .row-item { border-color: var(--c-border); }
[data-theme="dark"] .lp-list .row-item:hover { background: var(--c-primary-50); }
[data-theme="dark"] .cat-block { background: var(--c-surface); border: 1px solid var(--c-border); }
[data-theme="dark"] .cat-links a {
  background: linear-gradient(180deg, #1b2942, #142036);
  color: #cfe0ff;
}
[data-theme="dark"] .cat-links a:hover { background: linear-gradient(180deg, #142036, #0f1830); }
[data-theme="dark"] .lp-viewall a { color: var(--c-primary); border-color: var(--c-primary); }
[data-theme="dark"] .lp-viewall a:hover { background: var(--c-primary); color: #fff; }
[data-theme="dark"] .lp-cta .btn-cta { background: #fff; color: var(--c-primary-700); }
[data-theme="dark"] .lp-card .desc,
[data-theme="dark"] .lp-list .ri-main .ri-desc,
[data-theme="dark"] .lp-list .ri-meta,
[data-theme="dark"] .lp-card .meta { color: var(--c-muted); }

/* 平滑过渡（主题切换时不闪烁） */
.navbar, .card, .lp-card, .lp-cat, .cat-block, .lp-list, .lp-stats, .btn, .form-control {
  transition: background-color var(--t), color var(--t), border-color var(--t), box-shadow var(--t);
}

/* ---------- 移动端底部导航（统一主色 / 表面风格） ---------- */
.mobile-bar {
  display: flex;
  background: var(--c-surface);
  border-top: 1px solid var(--c-border);
  box-shadow: 0 -6px 22px rgba(15, 23, 42, .10);
  padding: 6px 0 calc(6px + env(safe-area-inset-bottom));
  z-index: 1030;
}
.mobile-bar .mb-item {
  flex: 1;
  text-align: center;
  color: var(--c-muted);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 8px 0;
  font-size: .72rem;
  line-height: 1.2;
  transition: color var(--t-fast), transform var(--t-fast);
}
.mobile-bar .mb-item i { font-size: 20px; }
.mobile-bar .mb-item:hover { color: var(--c-primary); text-decoration: none; }
.mobile-bar .mb-item:active { color: var(--c-primary); transform: scale(.94); }
[data-theme="dark"] .mobile-bar { background: var(--c-surface); border-top-color: var(--c-border); }

/* ============================================================
   继续优化（第二批）：首页配色归蓝 · 徽标统一 · 列表卡片化 · 详情容器 · 大屏暗色
   原则：仅做"设计层"覆盖，不改动 PbootCMS 标签与页面结构
   ============================================================ */

/* ---------- 徽标统一（化解 Bootstrap 原生红/黄/灰割裂） ---------- */
.badge-danger   { background: var(--c-danger) !important; color: #fff !important; }
.badge-warning  { background: var(--c-warning) !important; color: #1f2937 !important; }
.badge-secondary{ background: var(--c-surface-2) !important; color: var(--c-muted) !important; border: 1px solid var(--c-border) !important; }
.badge-light    { background: var(--c-surface) !important; color: var(--c-text) !important; border: 1px solid var(--c-border) !important; }
[data-theme="dark"] .badge-secondary { background: var(--c-surface-2) !important; color: var(--c-muted) !important; }
[data-theme="dark"] .badge-light     { background: var(--c-surface) !important; color: var(--c-text) !important; }

/* ---------- 首页 Hero / CTA：亮色也归一到蓝系主色 ---------- */
.lp-hero {
  background: linear-gradient(135deg, var(--c-primary-700) 0%, var(--c-primary) 55%, var(--c-accent) 100%) !important;
}
.lp-search .btn { background: var(--c-accent) !important; color: #fff !important; }
.lp-search .btn:hover { background: var(--c-primary-600) !important; }
.lp-cta { background: linear-gradient(135deg, var(--c-primary-700), var(--c-primary)) !important; }
.lp-cta .btn-cta { color: var(--c-primary-700) !important; }

/* 首页分类三色块协调为 蓝-灰-青（化解橙色割裂） */
.cat-blue   .cat-topbar { background: var(--c-primary) !important; }
.cat-blue   .cat-title  { color: var(--c-primary) !important; }
.cat-blue   .cat-num    { color: var(--c-primary) !important; }
.cat-gray   .cat-topbar { background: #64748b !important; }
.cat-gray   .cat-title  { color: #64748b !important; }
.cat-gray   .cat-num    { color: #64748b !important; }
.cat-orange .cat-topbar { background: var(--c-accent) !important; }
.cat-orange .cat-title  { color: #0284c7 !important; }
.cat-orange .cat-num    { color: var(--c-accent) !important; }
.cat-links a { background: linear-gradient(180deg, var(--c-primary-50), var(--c-primary-100)) !important; color: var(--c-primary-700) !important; }
.cat-links a:hover { background: linear-gradient(180deg, var(--c-primary-100), #bfdbfe) !important; }

/* ---------- 列表卡片微交互 ---------- */
.card { overflow: hidden; }
.card:hover { transform: translateY(-6px); box-shadow: var(--shadow); border-color: var(--c-primary-100); }
.card-img-150, .card-img-200 { overflow: hidden; }
.card-img-150 .card-img-top, .card-img-200 img { transition: transform var(--t) var(--ease); }
.card:hover .card-img-top, .card:hover .card-img-200 img { transform: scale(1.06); }
.card-title a { color: var(--c-heading); transition: color var(--t-fast); }
.card-title a:hover { color: var(--c-primary); }
.card-text { color: var(--c-muted); }

/* 案例 figure 卡片 */
.figure { border-radius: var(--radius); overflow: hidden; background: var(--c-surface); box-shadow: var(--shadow-xs); transition: transform var(--t), box-shadow var(--t); }
.figure:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.figure-caption a { color: var(--c-heading); font-weight: 600; transition: color var(--t-fast); }
.figure-caption a:hover { color: var(--c-primary); }

/* ---------- 新闻列表卡片化 ---------- */
.news-list { list-style: none; padding-left: 0; margin: 0; }
.news-item {
  display: flex; align-items: center; gap: 14px;
  padding: 16px 18px; margin-bottom: 12px;
  background: var(--c-surface); border: 1px solid var(--c-border);
  border-radius: var(--radius); box-shadow: var(--shadow-xs);
  transition: transform var(--t), box-shadow var(--t), border-color var(--t);
}
.news-item:hover { transform: translateX(4px); box-shadow: var(--shadow-sm); border-color: var(--c-primary-100); }
.news-item .ni-ico { flex: 0 0 42px; height: 42px; width: 42px; display: inline-flex; align-items: center; justify-content: center; background: var(--c-primary-50); color: var(--c-primary); border-radius: 12px; font-size: 16px; }
.news-item a { color: var(--c-heading); font-weight: 600; flex: 1; }
.news-item a:hover { color: var(--c-primary); text-decoration: none; }
.news-item .ni-date { color: var(--c-muted); font-size: .85rem; white-space: nowrap; }
[data-theme="dark"] .news-item { background: var(--c-surface); }
[data-theme="dark"] .news-item .ni-ico { background: var(--c-primary-50); color: var(--c-primary); }

/* ---------- 详情页容器美化 ---------- */
.view {
  border: 1px solid var(--c-border); border-radius: var(--radius);
  padding: 14px; background: var(--c-surface); box-shadow: var(--shadow-xs);
}
.view img, .preview img { border-radius: var(--radius-xs); }
/* 详情标题装饰下划线（替代写死的 border-info） */
.product-detail h2.border-bottom,
.product-detail h5.border-bottom { border-bottom-color: var(--c-border) !important; position: relative; }
.product-detail h2.border-bottom::after {
  content: ""; position: absolute; left: 0; bottom: -2px; height: 2px; width: 64px;
  background: var(--c-primary); border-radius: 2px;
}
.product-detail h5.border-bottom i { color: var(--c-primary); }

/* ---------- 栏目大屏 jumbotron 默认渐变背景 ---------- */
.jumbotron {
  position: relative;
  min-height: 130px;
  display: flex; align-items: center;
  background:
    radial-gradient(circle at 80% 20%, rgba(255, 255, 255, .12) 0, transparent 35%),
    radial-gradient(circle at 20% 90%, rgba(255, 255, 255, .08) 0, transparent 30%),
    linear-gradient(135deg, var(--c-primary-600) 0%, var(--c-primary) 55%, var(--c-primary-700) 100%);
  color: #fff;
  border: none; border-radius: 0;
}
.jumbotron::before {
  content: "";
  position: absolute; inset: 0;
  background-image: radial-gradient(rgba(255,255,255,.12) 1px, transparent 1px);
  background-size: 18px 18px;
  opacity: .35;
  pointer-events: none;
}
.jumbotron .container { position: relative; z-index: 1; }
.jumbotron h1, .jumbotron p { color: #fff; text-shadow: 0 1px 3px rgba(0, 0, 0, .2); }

/* 栏目自定义 banner 图 */
.has-sort-banner {
  background-color: var(--c-primary-700);
  background-size: cover; background-position: center;
}

/* ---------- 栏目大屏 jumbotron 暗色适配 ---------- */
[data-theme="dark"] .jumbotron {
  background:
    radial-gradient(circle at 80% 20%, rgba(255, 255, 255, .06) 0, transparent 35%),
    radial-gradient(circle at 20% 90%, rgba(255, 255, 255, .04) 0, transparent 30%),
    linear-gradient(135deg, #0f172a 0%, #1e3a8a 55%, #172554 100%);
}
[data-theme="dark"] .jumbotron.has-sort-banner {
  background-color: rgba(13, 17, 23, .55);
  background-blend-mode: multiply;
}
[data-theme="dark"] .jumbotron .container { text-shadow: 0 2px 12px rgba(0, 0, 0, .55); }

/* ============================================================
   第三批：全站收尾 — 详情卡片 · 子栏目网格 · 会员/表单 · 评论 · 弹框暗色
   原则：仅做"设计层"覆盖，不改动 PbootCMS 标签与页面结构
   ============================================================ */

/* ---------- 详情页卡片容器（case / news / job / about 复用） ---------- */
.detail-card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-xs);
  padding: 28px;
  margin-bottom: 28px;
  transition: background-color var(--t), border-color var(--t);
}
.detail-card .position { margin-bottom: 14px; }
.detail-card h2 {
  position: relative;
  padding-bottom: 12px;
  margin-bottom: 14px;
}
/* 详情标题主色短下划线装饰（居中） */
.detail-card h2::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: -1px;
  height: 3px;
  width: 56px;
  background: var(--c-primary);
  border-radius: 3px;
}
/* 居中元信息分隔线使用变量色 */
.detail-card .text-center.border-bottom { border-bottom-color: var(--c-border) !important; }
.detail-card .content { margin-top: 8px; }
[data-theme="dark"] .detail-card { background: var(--c-surface); }

/* ---------- 列表页子栏目按钮网格（接入设计变量 + 暗色 + 当前项高亮） ---------- */
.sub-sort-grid { gap: 16px; }
.sub-sort-btn {
  background: var(--c-primary) !important;
  color: #fff !important;
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-xs);
}
.sub-sort-btn:hover {
  background: var(--c-primary-600) !important;
  color: #fff !important;
  text-decoration: none;
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}
.sub-sort-btn:focus-visible { outline: 2px solid var(--c-primary); outline-offset: 2px; }
.sub-sort-btn.active, .sub-sort-btn[aria-current="page"] {
  background: var(--c-primary-700) !important;
  box-shadow: var(--ring);
}
[data-theme="dark"] .sub-sort-btn { background: var(--c-primary) !important; }

/* ---------- 会员中心列表组 ---------- */
.list-group-item {
  background: var(--c-surface);
  color: var(--c-text);
  border-color: var(--c-border);
  transition: background-color var(--t-fast), color var(--t-fast), border-color var(--t-fast);
}
.list-group-item:hover, .list-group-item:focus {
  background: var(--c-primary-50);
  color: var(--c-primary);
  text-decoration: none;
}
.list-group-item.active {
  background: var(--c-primary);
  border-color: var(--c-primary);
  color: #fff;
}
[data-theme="dark"] .list-group-item { background: var(--c-surface); color: var(--c-text); }
[data-theme="dark"] .list-group-item:hover { background: var(--c-primary-50); color: var(--c-primary); }

/* ---------- 表格（会员信息 / 列表） ---------- */
.table { color: var(--c-text); }
.table td, .table th { border-color: var(--c-border) !important; }
.table-striped tbody tr:nth-of-type(odd) { background: var(--c-surface-2); }
[data-theme="dark"] .table { color: var(--c-text); }
[data-theme="dark"] .table-striped tbody tr:nth-of-type(odd) { background: var(--c-surface-2); }

/* ---------- 下拉菜单（移动端会员） ---------- */
.dropdown-menu {
  background: var(--c-surface);
  border-color: var(--c-border);
  box-shadow: var(--shadow);
}
.dropdown-item { color: var(--c-text); }
.dropdown-item:hover, .dropdown-item:focus {
  background: var(--c-primary-50);
  color: var(--c-primary);
}
.dropdown-divider { border-color: var(--c-border); }
[data-theme="dark"] .dropdown-menu { background: var(--c-surface); border-color: var(--c-border); }

/* ---------- 弹框暗色适配（评论回复 / 文件上传） ---------- */
.modal-content {
  background: var(--c-surface);
  color: var(--c-text);
  border: 1px solid var(--c-border);
  border-radius: var(--radius);
}
.modal-header { border-bottom-color: var(--c-border); }
.modal-footer { border-top-color: var(--c-border); }
.modal-title { color: var(--c-heading); }
.close { color: var(--c-text); opacity: .7; text-shadow: none; }
.close:hover { color: var(--c-text); opacity: 1; }

/* ---------- 评论区 / 全局浅色兜底 ---------- */
/* 暗色下 Bootstrap 写死的 .bg-white 自动变为表面色 */
[data-theme="dark"] .bg-white { background: var(--c-surface) !important; }
/* 替代评论中写死的 color:#999 */
.muted-soft { color: var(--c-muted) !important; }
