/* 与 LoliMeow 主题并存：仅保留本项目页面（首页轮播、后台表格等）需要的微调 */

/* 全站固定深色：配合顶栏脚本锁定 data-bs-theme，并让表单/滚动条等与深色一致 */
html {
  color-scheme: dark;
  overflow-x: clip;
  /* 整页底色画在 html：避免 body + fixed 附件在右侧/滚动条旁露出一块纯色「色差条」 */
  background-color: #04060d;
  background-image:
    radial-gradient(ellipse 130% 88% at 50% -20%, rgba(34, 211, 238, 0.1) 0%, transparent 56%),
    radial-gradient(ellipse 58% 48% at 100% 4%, rgba(168, 85, 247, 0.09) 0%, transparent 52%),
    radial-gradient(ellipse 52% 58% at 2% 38%, rgba(59, 130, 246, 0.065) 0%, transparent 52%),
    radial-gradient(ellipse 48% 42% at 90% 88%, rgba(236, 72, 153, 0.055) 0%, transparent 50%),
    radial-gradient(ellipse 95% 42% at 50% 102%, rgba(30, 58, 138, 0.14) 0%, transparent 58%),
    radial-gradient(ellipse 50% 36% at 96% 14%, rgba(251, 191, 36, 0.034) 0%, transparent 48%),
    linear-gradient(118deg, transparent 0%, rgba(255, 255, 255, 0.022) 46%, transparent 64%),
    linear-gradient(72deg, transparent 52%, rgba(34, 211, 238, 0.025) 70%, transparent 88%),
    linear-gradient(152deg, #03050a 0%, #0a0f1e 34%, #0d1528 62%, #060910 100%);
  background-attachment: scroll;
  background-repeat: no-repeat;
  min-height: 100%;
}

/* 避免子元素略超宽时出现横向滚动条；背景由 html 承担，避免双层 fixed 合成缝 */
body {
  overflow-x: clip;
  background-color: transparent;
  background-image: none;
  min-height: 100vh;
}

[data-bs-theme="dark"] body {
  font-family: "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color: #e2e8f0;
}

[data-bs-theme="dark"] h1,
[data-bs-theme="dark"] h2,
[data-bs-theme="dark"] h3,
[data-bs-theme="dark"] h4,
[data-bs-theme="dark"] h5,
[data-bs-theme="dark"] .h1,
[data-bs-theme="dark"] .h2,
[data-bs-theme="dark"] .h3,
[data-bs-theme="dark"] .h4,
[data-bs-theme="dark"] .h5,
[data-bs-theme="dark"] .h6 {
  font-family: "Space Grotesk", "DM Sans", system-ui, sans-serif;
  letter-spacing: 0.01em;
}

/* 顶栏：深底 #1A1A2B + 主链/品牌白 + 副文案 #9999AA + 悬停/重点 #00BFFF（按设计表） */
[data-bs-theme="dark"] header.boxmoe_header .navbar,
[data-bs-theme="dark"] header.boxmoe_header .navbar.scrolled,
[data-bs-theme="dark"] header.boxmoe_header .navbar.navbar-expand-lg.nav-down {
  background-color: #1a1a2b !important;
  box-shadow: 0 1px 0 rgba(0, 191, 255, 0.12) !important;
}

[data-bs-theme="dark"] header.boxmoe_header .navbar-brand,
[data-bs-theme="dark"] header.boxmoe_header .navbar-brand.text-light {
  color: #ffffff !important;
}

[data-bs-theme="dark"] header.boxmoe_header .navbar .navbar-nav .nav-item .nav-link,
[data-bs-theme="dark"] header.boxmoe_header .navbar .navbar-nav .nav-item .nav-link i {
  color: #9999aa !important;
}

[data-bs-theme="dark"] header.boxmoe_header .navbar .navbar-nav .nav-item .nav-link:hover,
[data-bs-theme="dark"] header.boxmoe_header .navbar .navbar-nav .nav-item .nav-link.active {
  color: #00bfff !important;
  border-color: transparent !important;
}

[data-bs-theme="dark"] header.boxmoe_header .navbar-text {
  color: #9999aa !important;
}

[data-bs-theme="dark"] header.boxmoe_header .navbar-text.text-success,
[data-bs-theme="dark"] header.boxmoe_header .navbar-text.text-success span {
  color: #00bfff !important;
}

[data-bs-theme="dark"] header.boxmoe_header .navbar .btn-outline-light {
  color: #00bfff !important;
  border-color: rgba(0, 191, 255, 0.55) !important;
  background: transparent !important;
}

[data-bs-theme="dark"] header.boxmoe_header .navbar .btn-outline-light:hover {
  color: #ffffff !important;
  background: rgba(0, 191, 255, 0.12) !important;
  border-color: #00bfff !important;
}

[data-bs-theme="dark"] .card {
  --bs-card-bg: rgba(30, 41, 59, 0.45);
  --bs-card-border-color: rgba(248, 250, 252, 0.12);
  color: #f1f5f9;
  background-color: var(--bs-card-bg);
  border-color: var(--bs-card-border-color);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset;
}

/*
  顶栏重叠修复（主题 style.css）：
  - .navbar 默认 absolute；滚动后 .scrolled 变 fixed → 必须一起覆盖
  - ≤991px 时 .navbar-brand 被 absolute 居中，会与下方页面标题左右叠在一起
*/
header.boxmoe_header .navbar.navbar-expand-lg,
header.boxmoe_header .navbar.navbar-expand-lg.scrolled,
header.boxmoe_header .navbar.navbar-expand-lg.nav-down {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
}

.boxmoe_header .navbar-brand {
  position: relative !important;
  left: auto !important;
  transform: none !important;
}

/* 全站首屏：加载完成前圆形指示（window load 后淡出） */
@keyframes site-page-loading-spin {
  to {
    transform: rotate(360deg);
  }
}

.site-page-loading {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(4, 6, 13, 0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition:
    opacity 0.38s ease,
    visibility 0.38s ease;
}

.site-page-loading.site-page-loading--hide {
  opacity: 0;
  visibility: hidden;
  /* !important：防止其它样式或过渡中途短暂抢走点击 */
  pointer-events: none !important;
}

/* iOS：淡出时停掉子层旋转动画，避免合成层仍盖住页面 */
.site-page-loading.site-page-loading--hide .site-page-loading__spinner {
  animation: none !important;
  visibility: hidden !important;
}

.site-page-loading__spinner {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 3px solid rgba(56, 189, 248, 0.22);
  border-top-color: #38bdf8;
  animation: site-page-loading-spin 0.72s linear infinite;
  box-sizing: border-box;
}

@media (prefers-reduced-motion: reduce) {
  .site-page-loading__spinner {
    animation: none;
    border-color: rgba(56, 189, 248, 0.4);
    border-top-color: #38bdf8;
  }

  .site-page-loading {
    transition-duration: 0.15s;
  }
}

/* 关闭主题侧栏装饰：background.svg（圆点、彩色碎条），见主题 style.css 中 .body-background:before/after */
.body-background::before,
.body-background::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

/* 空壳 fixed 层不参与绘制，避免个别浏览器在 z-index:-1 上与 html 背景叠加产生竖带 */
.body-background {
  pointer-events: none;
  visibility: hidden;
}

/* 深色主题：次要/说明文字略提亮，避免与背景糊在一起 */
[data-bs-theme="dark"] .text-secondary {
  color: #c4ccd8 !important;
}

[data-bs-theme="dark"] .text-muted {
  color: #9aa6b8 !important;
}

/* 按钮 token：各语义色独立色相，避免全站同一套青紫实心按钮 */
:root {
  --btn-primary: #a78bfa;
  --btn-secondary: #1e293b;
  --btn-border: rgba(167, 139, 250, 0.35);
  --btn-hover-bg: rgba(167, 139, 250, 0.12);
  --btn-text: #ffffff;
  --btn-text-secondary: #e9d5ff;
  --uh-bg-deep: #04060d;
  --uh-surface: rgba(30, 41, 59, 0.5);
  --uh-border: rgba(248, 250, 252, 0.12);
  --uh-text: #f8fafc;
  --uh-btn-radius: 10px;
}

/* ========== 深色主题：分色高级感按钮（渐变 + 内描边 + 柔光，与参考「保存」一致） ========== */
[data-bs-theme="dark"] .btn {
  padding: 10px 22px;
  border-radius: var(--uh-btn-radius);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
  white-space: nowrap;
}

[data-bs-theme="dark"] .btn.w-100 {
  white-space: normal;
}

[data-bs-theme="dark"] .btn-sm {
  padding: 6px 14px;
  font-size: 13px;
  border-radius: 9px;
}

/* 主操作：紫 → 靛 → 蓝 → 青 */
[data-bs-theme="dark"] .btn-primary {
  background: linear-gradient(98deg, #7c3aed 0%, #6366f1 28%, #2563eb 62%, #0891b2 100%);
  color: #ffffff !important;
  border: none;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.07) inset,
    0 4px 18px rgba(0, 0, 0, 0.38),
    0 0 22px rgba(124, 58, 237, 0.38),
    0 0 36px rgba(8, 145, 178, 0.22);
}

[data-bs-theme="dark"] .btn-primary:hover {
  color: #ffffff !important;
  filter: brightness(1.06);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.09) inset,
    0 6px 22px rgba(0, 0, 0, 0.42),
    0 0 30px rgba(99, 102, 241, 0.48),
    0 0 44px rgba(34, 211, 238, 0.26);
}

[data-bs-theme="dark"] .btn-primary:active {
  filter: brightness(0.96);
}

[data-bs-theme="dark"] .btn-primary:disabled,
[data-bs-theme="dark"] .btn-primary.disabled {
  opacity: 0.52;
  filter: saturate(0.65);
  box-shadow: none;
}

/* 成功：翠青 / 松石（导入、继续、去发布等，与主按钮色相区分） */
[data-bs-theme="dark"] .btn-success {
  background: linear-gradient(96deg, #047857 0%, #0d9488 42%, #14b8a6 78%, #2dd4bf 100%);
  color: #ffffff !important;
  border: none;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.06) inset,
    0 4px 18px rgba(0, 0, 0, 0.35),
    0 0 22px rgba(13, 148, 136, 0.48),
    0 0 32px rgba(45, 212, 191, 0.22);
}

[data-bs-theme="dark"] .btn-success:hover {
  color: #ffffff !important;
  filter: brightness(1.07);
  box-shadow:
    0 0 32px rgba(20, 184, 166, 0.52),
    0 0 48px rgba(45, 212, 191, 0.2);
}

[data-bs-theme="dark"] .btn-success:active {
  filter: brightness(0.95);
}

[data-bs-theme="dark"] .btn-success:disabled,
[data-bs-theme="dark"] .btn-success.disabled {
  opacity: 0.52;
  box-shadow: none;
}

/* 危险：玫粉 → 玫红 → 酒红 */
[data-bs-theme="dark"] .btn-danger {
  background: linear-gradient(96deg, #fb7185 0%, #f43f5e 40%, #e11d48 100%);
  color: #ffffff !important;
  border: none;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.06) inset,
    0 4px 18px rgba(0, 0, 0, 0.35),
    0 0 24px rgba(244, 63, 94, 0.42);
}

[data-bs-theme="dark"] .btn-danger:hover {
  color: #ffffff !important;
  filter: brightness(1.06);
  box-shadow:
    0 0 32px rgba(244, 63, 94, 0.55),
    0 0 48px rgba(251, 113, 133, 0.2);
}

[data-bs-theme="dark"] .btn-danger:active {
  filter: brightness(0.95);
}

/* 警告：琥珀金（深色字保证对比） */
[data-bs-theme="dark"] .btn-warning {
  background: linear-gradient(96deg, #fde68a 0%, #fbbf24 38%, #f59e0b 88%);
  color: #0f172a !important;
  border: none;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.35) inset,
    0 4px 16px rgba(0, 0, 0, 0.28),
    0 0 22px rgba(245, 158, 11, 0.35);
}

[data-bs-theme="dark"] .btn-warning:hover {
  color: #020617 !important;
  filter: brightness(1.04);
  box-shadow:
    0 0 28px rgba(251, 191, 36, 0.45),
    0 0 40px rgba(245, 158, 11, 0.22);
}

[data-bs-theme="dark"] .btn-warning:active {
  filter: brightness(0.96);
}

/* 信息：海蓝 → 天蓝 → 亮青（偏冷蓝，少紫） */
[data-bs-theme="dark"] .btn-info {
  background: linear-gradient(96deg, #075985 0%, #0284c7 40%, #0ea5e9 78%, #38bdf8 100%);
  color: #ffffff !important;
  border: none;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.06) inset,
    0 4px 18px rgba(0, 0, 0, 0.32),
    0 0 24px rgba(14, 165, 233, 0.42);
}

[data-bs-theme="dark"] .btn-info:hover {
  color: #ffffff !important;
  filter: brightness(1.06);
  box-shadow: 0 0 32px rgba(56, 189, 248, 0.45);
}

[data-bs-theme="dark"] .btn-info:active {
  filter: brightness(0.95);
}

/* 次要：雾 slate + 淡紫边（与主色 cyan 链脱钩） */
[data-bs-theme="dark"] .btn-secondary {
  background: linear-gradient(180deg, rgba(51, 65, 85, 0.9) 0%, rgba(30, 41, 59, 0.95) 100%);
  color: #ede9fe !important;
  border: 1px solid rgba(167, 139, 250, 0.45);
  box-shadow: 0 0 18px rgba(139, 92, 246, 0.14);
}

[data-bs-theme="dark"] .btn-secondary:hover {
  color: #ffffff !important;
  background: linear-gradient(180deg, rgba(71, 85, 105, 0.95) 0%, rgba(51, 65, 85, 0.98) 100%);
  border-color: rgba(196, 181, 253, 0.65);
  box-shadow: 0 0 26px rgba(167, 139, 250, 0.28);
}

[data-bs-theme="dark"] .btn-secondary:active {
  filter: brightness(0.96);
}

/* 线框：按语义分色描边 + 轻内光 */
[data-bs-theme="dark"] .btn-outline-primary {
  color: #c7d2fe !important;
  border: 1px solid rgba(129, 140, 248, 0.55);
  background: rgba(15, 23, 42, 0.4);
  box-shadow: 0 0 14px rgba(99, 102, 241, 0.12);
}

[data-bs-theme="dark"] .btn-outline-primary:hover {
  color: #ffffff !important;
  background: rgba(99, 102, 241, 0.2);
  border-color: rgba(199, 210, 254, 0.85);
  box-shadow: 0 0 22px rgba(99, 102, 241, 0.28);
}

[data-bs-theme="dark"] .btn-outline-secondary {
  color: #cbd5e1 !important;
  border: 1px solid rgba(148, 163, 184, 0.45);
  background: rgba(15, 23, 42, 0.35);
}

[data-bs-theme="dark"] .btn-outline-secondary:hover {
  color: #f8fafc !important;
  border-color: rgba(226, 232, 240, 0.55);
  background: rgba(51, 65, 85, 0.45);
  box-shadow: 0 0 18px rgba(148, 163, 184, 0.15);
}

[data-bs-theme="dark"] .btn-outline-success {
  color: #5eead4 !important;
  border: 1px solid rgba(45, 212, 191, 0.5);
  background: rgba(6, 78, 59, 0.2);
  box-shadow: 0 0 14px rgba(16, 185, 129, 0.12);
}

[data-bs-theme="dark"] .btn-outline-success:hover {
  color: #ecfdf5 !important;
  background: rgba(13, 148, 136, 0.28);
  border-color: rgba(94, 234, 212, 0.85);
  box-shadow: 0 0 22px rgba(20, 184, 166, 0.25);
}

[data-bs-theme="dark"] .btn-outline-danger {
  color: #fda4af !important;
  border: 1px solid rgba(251, 113, 133, 0.55);
  background: rgba(76, 5, 25, 0.18);
  box-shadow: 0 0 14px rgba(244, 63, 94, 0.12);
}

[data-bs-theme="dark"] .btn-outline-danger:hover {
  color: #fff1f2 !important;
  background: rgba(190, 18, 60, 0.28);
  border-color: rgba(253, 164, 175, 0.9);
  box-shadow: 0 0 22px rgba(244, 63, 94, 0.28);
}

[data-bs-theme="dark"] .btn-outline-warning {
  color: #fde68a !important;
  border: 1px solid rgba(251, 191, 36, 0.5);
  background: rgba(69, 26, 3, 0.22);
}

[data-bs-theme="dark"] .btn-outline-warning:hover {
  color: #fffbeb !important;
  background: rgba(180, 83, 9, 0.3);
  border-color: rgba(253, 224, 71, 0.85);
  box-shadow: 0 0 20px rgba(245, 158, 11, 0.22);
}

[data-bs-theme="dark"] .btn-outline-info {
  color: #bae6fd !important;
  border: 1px solid rgba(56, 189, 248, 0.5);
  background: rgba(12, 74, 110, 0.22);
}

[data-bs-theme="dark"] .btn-outline-info:hover {
  color: #f0f9ff !important;
  background: rgba(2, 132, 199, 0.32);
  border-color: rgba(125, 211, 252, 0.85);
  box-shadow: 0 0 22px rgba(14, 165, 233, 0.22);
}

/* 文字链接按钮：淡紫字，悬停偏粉（不用与实心主按钮同色） */
[data-bs-theme="dark"] .btn-link {
  border: none;
  background: transparent !important;
  box-shadow: none !important;
  text-decoration: none;
  color: #c4b5fd !important;
}

[data-bs-theme="dark"] .btn-link:hover {
  color: #f0abfc !important;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

[data-bs-theme="dark"] .btn-dark {
  background: linear-gradient(180deg, #0f172a 0%, #020617 100%);
  color: #e2e8f0 !important;
  border: 1px solid rgba(51, 65, 85, 0.9);
}

[data-bs-theme="dark"] .btn-light {
  background: linear-gradient(180deg, #f1f5f9 0%, #e2e8f0 100%);
  color: #0f172a !important;
  border: none;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
}

@media (prefers-reduced-motion: reduce) {
  [data-bs-theme="dark"] .btn {
    transition: none;
  }
}

/* ---------- 后台主操作按钮（闲鱼采集 / ZIP 导入 / 保存）：低饱和弱填充细描边，禁主题渐变亮发光 ---------- */
[data-bs-theme="dark"] .admin-premium-muted-btns .btn:not(.btn-link) {
  filter: none !important;
  font-weight: 500;
  letter-spacing: 0.02em;
  border-radius: 6px;
  background-image: none !important;
  box-shadow: none !important;
  transition:
    background-color 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease;
}

[data-bs-theme="dark"] .admin-premium-muted-btns .btn:not(.btn-link):focus-visible {
  outline: 2px solid rgba(148, 163, 184, 0.45);
  outline-offset: 2px;
}

/* 开始采集 / 继续：青灰底 + 克制描边（不靠高亮纯色块） */
[data-bs-theme="dark"] .admin-premium-muted-btns .btn-success {
  --bs-btn-bg: rgba(15, 118, 110, 0.14);
  --bs-btn-color: #a7e3da;
  --bs-btn-border-color: rgba(45, 212, 191, 0.22);
  --bs-btn-hover-bg: rgba(15, 118, 110, 0.22);
  --bs-btn-hover-border-color: rgba(45, 212, 191, 0.38);
  --bs-btn-hover-color: #ccfbf1;
  --bs-btn-active-bg: rgba(15, 118, 110, 0.28);
  --bs-btn-active-border-color: rgba(45, 212, 191, 0.42);
  --bs-btn-active-color: #ecfeff;
  --bs-btn-disabled-bg: rgba(15, 23, 42, 0.35);
  --bs-btn-disabled-border-color: rgba(71, 85, 105, 0.45);
  --bs-btn-disabled-color: rgba(148, 163, 184, 0.55);
  background-color: rgba(15, 118, 110, 0.14) !important;
  background-image: none !important;
  color: #a7e3da !important;
  border: 1px solid rgba(45, 212, 191, 0.22) !important;
}

[data-bs-theme="dark"] .admin-premium-muted-btns .btn-success:hover {
  background-color: rgba(15, 118, 110, 0.22) !important;
  color: #ccfbf1 !important;
  border-color: rgba(45, 212, 191, 0.38) !important;
}

[data-bs-theme="dark"] .admin-premium-muted-btns .btn-success:active {
  background-color: rgba(15, 118, 110, 0.28) !important;
}

[data-bs-theme="dark"] .admin-premium-muted-btns .btn-success:disabled,
[data-bs-theme="dark"] .admin-premium-muted-btns .btn-success.disabled {
  opacity: 0.55;
}

/* 暂停：琥珀仅作提示线框，避免大块亮黄 */
[data-bs-theme="dark"] .admin-premium-muted-btns .btn-warning {
  --bs-btn-bg: rgba(120, 53, 15, 0.12);
  --bs-btn-color: #d6b896;
  --bs-btn-border-color: rgba(217, 119, 6, 0.28);
  --bs-btn-hover-bg: rgba(120, 53, 15, 0.2);
  --bs-btn-hover-border-color: rgba(245, 158, 11, 0.38);
  --bs-btn-hover-color: #fde68a;
  --bs-btn-active-bg: rgba(120, 53, 15, 0.26);
  --bs-btn-active-border-color: rgba(245, 158, 11, 0.42);
  --bs-btn-active-color: #fef3c7;
  background-color: rgba(120, 53, 15, 0.12) !important;
  background-image: none !important;
  color: #d6b896 !important;
  border: 1px solid rgba(217, 119, 6, 0.28) !important;
}

[data-bs-theme="dark"] .admin-premium-muted-btns .btn-warning:hover {
  background-color: rgba(120, 53, 15, 0.2) !important;
  color: #fde68a !important;
  border-color: rgba(245, 158, 11, 0.38) !important;
}

[data-bs-theme="dark"] .admin-premium-muted-btns .btn-warning:active {
  background-color: rgba(120, 53, 15, 0.26) !important;
}

/* 立即打包：靛紫 hint，与后台主色链呼应但不抢眼 */
[data-bs-theme="dark"] .admin-premium-muted-btns .btn-primary {
  --bs-btn-bg: rgba(55, 48, 163, 0.14);
  --bs-btn-color: #b8bef8;
  --bs-btn-border-color: rgba(129, 140, 248, 0.26);
  --bs-btn-hover-bg: rgba(55, 48, 163, 0.22);
  --bs-btn-hover-border-color: rgba(165, 180, 252, 0.4);
  --bs-btn-hover-color: #e0e7ff;
  --bs-btn-active-bg: rgba(55, 48, 163, 0.3);
  --bs-btn-active-border-color: rgba(165, 180, 252, 0.48);
  --bs-btn-active-color: #eef2ff;
  --bs-btn-disabled-bg: rgba(15, 23, 42, 0.35);
  --bs-btn-disabled-border-color: rgba(71, 85, 105, 0.45);
  --bs-btn-disabled-color: rgba(148, 163, 184, 0.55);
  background-color: rgba(55, 48, 163, 0.14) !important;
  background-image: none !important;
  color: #b8bef8 !important;
  border: 1px solid rgba(129, 140, 248, 0.26) !important;
}

[data-bs-theme="dark"] .admin-premium-muted-btns .btn-primary:hover {
  background-color: rgba(55, 48, 163, 0.22) !important;
  color: #e0e7ff !important;
  border-color: rgba(165, 180, 252, 0.4) !important;
}

[data-bs-theme="dark"] .admin-premium-muted-btns .btn-primary:active {
  background-color: rgba(55, 48, 163, 0.3) !important;
}

[data-bs-theme="dark"] .admin-premium-muted-btns .btn-primary:disabled,
[data-bs-theme="dark"] .admin-premium-muted-btns .btn-primary.disabled {
  opacity: 0.55;
}

/* 停止：暗玫瑰描边，填充极弱 */
[data-bs-theme="dark"] .admin-premium-muted-btns .btn-danger {
  --bs-btn-bg: rgba(136, 19, 55, 0.12);
  --bs-btn-color: #e7a2ab;
  --bs-btn-border-color: rgba(244, 63, 94, 0.26);
  --bs-btn-hover-bg: rgba(136, 19, 55, 0.2);
  --bs-btn-hover-border-color: rgba(251, 113, 133, 0.42);
  --bs-btn-hover-color: #fecdd3;
  --bs-btn-active-bg: rgba(136, 19, 55, 0.28);
  --bs-btn-active-border-color: rgba(251, 113, 133, 0.48);
  --bs-btn-active-color: #ffe4e6;
  background-color: rgba(136, 19, 55, 0.12) !important;
  background-image: none !important;
  color: #e7a2ab !important;
  border: 1px solid rgba(244, 63, 94, 0.26) !important;
}

[data-bs-theme="dark"] .admin-premium-muted-btns .btn-danger:hover {
  background-color: rgba(136, 19, 55, 0.2) !important;
  color: #fecdd3 !important;
  border-color: rgba(251, 113, 133, 0.42) !important;
}

[data-bs-theme="dark"] .admin-premium-muted-btns .btn-danger:active {
  background-color: rgba(136, 19, 55, 0.28) !important;
}

/* 首页专区标签：透明微亮（仅 #homeSectionPills 内 .btn-tag） */
[data-bs-theme="dark"] #homeSectionPills .btn-tag.home-section-pill {
  padding: 7px 16px;
  font-size: 13px;
  border-radius: 6px;
  border: 1px solid rgba(0, 212, 255, 0.28);
  background: rgba(8, 16, 32, 0.45);
  color: rgba(200, 215, 235, 0.92) !important;
  box-shadow: 0 0 12px rgba(0, 200, 255, 0.14);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

[data-bs-theme="dark"] #homeSectionPills .btn-tag.home-section-pill:hover:not(.home-section-pill--active) {
  border-color: rgba(0, 230, 255, 0.42);
  color: rgba(230, 248, 255, 0.98) !important;
  background: rgba(0, 60, 100, 0.28);
  box-shadow: 0 0 16px rgba(0, 210, 255, 0.22);
}

[data-bs-theme="dark"] #homeSectionPills .btn-tag.home-section-pill--active,
[data-bs-theme="dark"] #homeSectionPills .btn-tag.active {
  border: 1px solid rgba(0, 230, 255, 0.55);
  background: linear-gradient(
    135deg,
    rgba(0, 190, 255, 0.38) 0%,
    rgba(0, 110, 220, 0.32) 100%
  );
  color: #ffffff !important;
  box-shadow:
    0 0 18px rgba(0, 200, 255, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.12);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

[data-bs-theme="dark"] #homeSectionPills .btn-tag.home-section-pill--active:hover,
[data-bs-theme="dark"] #homeSectionPills .btn-tag.active:hover {
  border-color: rgba(0, 240, 255, 0.65);
  box-shadow:
    0 0 22px rgba(0, 220, 255, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.14);
}

/* 顶栏「退出」等线框按钮：保持轻量线框，不套用霓虹次按钮实心底 */
[data-bs-theme="dark"] .navbar .btn-outline-light {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.9) !important;
  border: 1px solid rgba(255, 255, 255, 0.35) !important;
  box-shadow: none !important;
}

[data-bs-theme="dark"] .navbar .btn-outline-light:hover {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.55) !important;
  transform: none;
  box-shadow: none !important;
}

/* 首页项目卡片：透明微亮 — 重置 Bootstrap --bs-btn-*，避免主题把主按钮染成实色绿 */
[data-bs-theme="dark"] .home-project-card a.btn.btn-primary.w-100.home-card-create,
[data-bs-theme="dark"] .home-project-card a.btn-primary.w-100 {
  --bs-btn-bg: transparent;
  --bs-btn-color: rgba(248, 252, 255, 0.98);
  --bs-btn-border-color: rgba(0, 212, 255, 0.45);
  --bs-btn-hover-bg: rgba(0, 160, 220, 0.22);
  --bs-btn-hover-border-color: rgba(0, 230, 255, 0.65);
  --bs-btn-hover-color: #ffffff;
  --bs-btn-active-bg: rgba(0, 120, 180, 0.28);
  --bs-btn-active-border-color: rgba(0, 212, 255, 0.55);
  --bs-btn-active-color: #ffffff;
  --bs-btn-disabled-bg: rgba(0, 0, 0, 0.2);
  --bs-btn-disabled-border-color: rgba(255, 255, 255, 0.12);
  width: 100%;
  padding: 4px 12px;
  line-height: 1.2;
  border: 1px solid rgba(0, 212, 255, 0.45) !important;
  border-radius: 4px;
  background-color: transparent !important;
  background-image: linear-gradient(
    135deg,
    rgba(0, 180, 255, 0.22) 0%,
    rgba(0, 120, 255, 0.14) 50%,
    rgba(0, 200, 255, 0.18) 100%
  ) !important;
  color: rgba(248, 252, 255, 0.98) !important;
  font-size: 13px;
  font-weight: 500;
  box-shadow:
    0 0 8px rgba(0, 200, 255, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.08) !important;
  transform: none;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

[data-bs-theme="dark"] .home-project-card a.btn.btn-primary.w-100.home-card-create:hover,
[data-bs-theme="dark"] .home-project-card a.btn-primary.w-100:hover {
  --bs-btn-hover-bg: rgba(0, 180, 255, 0.28);
  color: #ffffff !important;
  border-color: rgba(0, 230, 255, 0.65) !important;
  background-color: transparent !important;
  background-image: linear-gradient(
    135deg,
    rgba(0, 200, 255, 0.32) 0%,
    rgba(0, 140, 255, 0.22) 50%,
    rgba(0, 220, 255, 0.26) 100%
  ) !important;
  transform: none;
  box-shadow:
    0 0 12px rgba(0, 210, 255, 0.2),
    inset 0 1px 0 rgba(255, 255, 255, 0.1) !important;
}

[data-bs-theme="dark"] .home-project-card a.btn.btn-primary.w-100.home-card-create:active,
[data-bs-theme="dark"] .home-project-card a.btn-primary.w-100:active {
  transform: scale(0.99);
  background-image: linear-gradient(
    135deg,
    rgba(0, 140, 200, 0.3) 0%,
    rgba(0, 100, 160, 0.22) 100%
  ) !important;
  box-shadow:
    0 0 6px rgba(0, 200, 255, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}

[data-bs-theme="dark"] .home-project-card .home-card-fav.btn-secondary.btn-sm {
  --bs-btn-bg: transparent;
  --bs-btn-color: rgba(190, 235, 255, 0.95);
  --bs-btn-border-color: rgba(0, 212, 255, 0.32);
  --bs-btn-hover-bg: rgba(0, 100, 160, 0.22);
  --bs-btn-hover-border-color: rgba(0, 230, 255, 0.5);
  --bs-btn-hover-color: #e8fbff;
  --bs-btn-active-bg: rgba(0, 80, 120, 0.28);
  --bs-btn-active-border-color: rgba(0, 212, 255, 0.45);
  width: 100%;
  padding: 3px 10px;
  line-height: 1.2;
  margin-top: 0;
  border: 1px solid rgba(0, 212, 255, 0.32) !important;
  border-radius: 4px;
  background-color: transparent !important;
  background-image: none !important;
  background: rgba(0, 40, 80, 0.15) !important;
  color: rgba(190, 235, 255, 0.95) !important;
  font-size: 12px;
  font-weight: 500;
  box-shadow: 0 0 10px rgba(0, 200, 255, 0.18) !important;
  transform: none;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
}

[data-bs-theme="dark"] .home-project-card .home-card-fav.btn-secondary.btn-sm:hover {
  background: rgba(0, 100, 160, 0.22) !important;
  border-color: rgba(0, 230, 255, 0.5) !important;
  color: #e8fbff !important;
  box-shadow: 0 0 16px rgba(0, 210, 255, 0.32) !important;
  transform: none;
}

[data-bs-theme="dark"] .home-project-card .home-card-fav.btn-secondary.btn-sm:active {
  transform: scale(0.99);
  box-shadow: 0 0 8px rgba(0, 200, 255, 0.22) !important;
}

/* 首页顶部大横幅：相对 container 做视口全宽 breakout，避免右侧露 html 纯色边 */
.home-top {
  position: relative;
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}

@media (max-width: 991.98px) {
  .home-top {
    width: 100%;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
  }
}

.home-top-inner {
  position: relative;
  isolation: isolate;
  /* 暗色高级：靛蓝纵深 + 微光，右侧留给龙图与呼吸高光 */
  background:
    radial-gradient(ellipse 85% 70% at 100% 38%, rgba(14, 116, 144, 0.14) 0%, transparent 52%),
    radial-gradient(ellipse 70% 55% at 8% 18%, rgba(67, 56, 202, 0.1) 0%, transparent 50%),
    linear-gradient(155deg, #070b14 0%, #0b1220 38%, #0a1628 72%, #060910 100%);
  border-radius: 1rem;
  border: 1px solid rgba(125, 211, 252, 0.14);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35) inset,
    0 24px 56px rgba(0, 0, 0, 0.45),
    0 0 80px rgba(34, 211, 238, 0.06);
  overflow: hidden;
  min-height: 260px;
  display: flex;
  align-items: center;
}

/* 首页横幅签到：桌面为单卡片；窄屏为「左上礼物+说明 | 右上按钮」网格，避免挡龙 */
.home-checkin-cluster {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  left: auto;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding: 0.35rem 0.5rem 0.4rem;
  border-radius: 0.75rem;
  background: rgba(6, 8, 14, 0.58);
  border: 1px solid rgba(255, 255, 255, 0.1);
  /* 浮层 z-index 高于 .home-top-inner > .container，易盖住下方搜索/文案的触摸；仅按钮接收点击 */
  pointer-events: none;
}

.home-top-inner .home-checkin-cluster .home-checkin-btn {
  pointer-events: auto;
}

.home-checkin-gift {
  font-size: 1.65rem;
  line-height: 1;
  filter: drop-shadow(0 0 8px rgba(120, 200, 255, 0.35));
}

.home-checkin-btn {
  min-width: 4.1rem;
  font-weight: 600;
  color: #0f172a;
  border: none;
  background: linear-gradient(95deg, #fde68a 0%, #fbbf24 50%, #f59e0b 100%);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.35) inset,
    0 2px 12px rgba(0, 0, 0, 0.25),
    0 0 16px rgba(245, 158, 11, 0.25);
}

.home-checkin-btn:hover:not(:disabled) {
  color: #020617;
  filter: brightness(1.05);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.4) inset,
    0 4px 16px rgba(0, 0, 0, 0.3),
    0 0 22px rgba(251, 191, 36, 0.35);
}

.home-checkin-btn:disabled {
  opacity: 0.55;
  filter: grayscale(0.35);
  color: #64748b;
  box-shadow: none;
}

.home-checkin-caption {
  font-size: 0.65rem;
  color: #8a96a8;
  line-height: 1.2;
  max-width: 5.2rem;
  text-align: center;
}

@media (max-width: 991.98px) {
  /* 手机端只保留签到按钮（右上），隐藏礼物与说明卡片 */
  .home-checkin-cluster {
    left: auto;
    right: 0.65rem;
    top: 0.55rem;
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    border-radius: 0;
  }

  .home-checkin-cluster .home-checkin-gift,
  .home-checkin-cluster .home-checkin-caption {
    display: none !important;
  }
}

@media (max-width: 576px) {
  .home-checkin-cluster {
    right: 0.45rem;
    top: 0.45rem;
  }
}

/* 首页：热度排行榜（约半宽卡片 + 整图铺满拉伸 + TOP/文案叠层 + 连播） */
.home-hot-rank {
  position: relative;
}

.home-hot-heading {
  font-size: 1.02rem;
  font-weight: 700;
}

.home-hot-carousel-stack {
  display: block;
  width: 52%;
  max-width: 21.5rem;
  min-width: 11.5rem;
  /* 左右 margin 均 auto，避免「只 margin-right:auto」导致整块贴左、右侧空一大条 */
  margin-left: auto;
  margin-right: auto;
}

@media (max-width: 991.98px) {
  .home-hot-carousel-stack {
    width: 100%;
    max-width: 21.5rem;
    min-width: 0;
    margin-left: auto;
    margin-right: auto;
  }
}

.home-hot-carousel {
  position: relative;
  width: 100%;
  height: 9rem;
  min-height: 5rem;
  overflow: hidden;
}

.home-hot-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: translateX(10px);
  transition:
    opacity 0.35s ease,
    transform 0.35s ease;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
}

.home-hot-slide--active {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
  z-index: 1;
}

.home-hot-card {
  position: relative;
  display: block;
  box-sizing: border-box;
  height: 100%;
  max-height: 100%;
  min-height: 0;
  border-radius: 0.65rem;
  text-decoration: none;
  color: inherit;
  border: 1px solid rgba(255, 255, 255, 0.12);
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.32);
  overflow: hidden;
  background: #1a1f28;
}

.home-hot-card:hover {
  border-color: rgba(90, 240, 184, 0.35);
}

.home-hot-cover {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: fill;
  object-position: center;
  display: block;
  z-index: 0;
}

.home-hot-card-front {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: stretch;
  height: 100%;
  min-height: 0;
  padding: 0.28rem 0.4rem 0.32rem;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(0, 0, 0, 0.18) 0%,
    transparent 42%,
    rgba(0, 0, 0, 0.55) 100%
  );
}

.home-hot-top-pill {
  align-self: flex-start;
  padding: 0.06rem 0.3rem 0.07rem;
  font-size: 0.55rem;
  font-weight: 800;
  font-style: italic;
  letter-spacing: 0.03em;
  line-height: 1.15;
  /* 设计表方案 B：linear-gradient(90deg, #00BFFF, #A6E0FF)，字 #000000 */
  color: #000000;
  background: linear-gradient(90deg, #00bfff, #a6e0ff);
  border-radius: 999px;
  border: none;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35);
}

.home-hot-bottom {
  margin-top: auto;
  min-width: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.35rem;
}

.home-hot-title {
  font-size: 0.78rem;
  font-weight: 600;
  color: #f8fafc;
  line-height: 1.25;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.75);
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.home-hot-metrics {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.28rem;
  margin-top: 0;
  flex: 0 0 auto;
  font-size: 0.58rem;
  color: #e2e8f0;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.8);
  white-space: nowrap;
}

.home-hot-metric-ico {
  margin-right: 0.06rem;
  opacity: 0.9;
}

.home-hot-metric--heat {
  color: #fde68a;
}

.home-hot-dots {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 0.32rem;
  margin-top: 0.42rem;
}

.home-hot-dot {
  width: 0.34rem;
  height: 0.34rem;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.22);
  cursor: pointer;
  transition:
    width 0.22s ease,
    background 0.22s ease,
    opacity 0.22s ease;
}

.home-hot-dot:hover {
  background: rgba(255, 255, 255, 0.42);
}

.home-hot-dot--active {
  width: 1.05rem;
  background: rgba(255, 255, 255, 0.9);
}

/* 横幅内环境光：静态径向叠层（无 transform 动画，避免边缘出现「游走的亮线」） */
.home-top-inner::before,
.home-top-inner::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: 0;
  animation: none;
  opacity: 1;
  transform: none;
}

.home-top-inner::before {
  /* 右上签到区 + 龙侧略提亮，高光铺匀、过渡更长避免竖向硬边 */
  background:
    radial-gradient(ellipse 90% 70% at 100% 0%, rgba(34, 211, 238, 0.1) 0%, transparent 55%),
    radial-gradient(ellipse 78% 64% at 72% 42%, rgba(34, 211, 238, 0.13) 0%, transparent 58%),
    radial-gradient(ellipse 58% 50% at 22% 52%, rgba(99, 102, 241, 0.1) 0%, transparent 56%),
    radial-gradient(ellipse 48% 40% at 92% 72%, rgba(251, 191, 36, 0.06) 0%, transparent 62%);
}

.home-top-inner::after {
  background:
    radial-gradient(ellipse 52% 48% at 78% 68%, rgba(14, 165, 233, 0.085) 0%, transparent 62%),
    radial-gradient(ellipse 42% 38% at 55% 88%, rgba(244, 114, 182, 0.04) 0%, transparent 68%);
}

.home-top-inner > .container {
  position: relative;
  z-index: 1;
}

@media (max-width: 992px) {
  .home-top-inner {
    min-height: 0;
  }
}

.home-badge {
  margin: 0;
  display: inline-block;
  padding: 0.2rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(226, 232, 240, 0.88);
  background: rgba(15, 23, 42, 0.75);
  border: 1px solid rgba(125, 211, 252, 0.28);
  border-radius: 999px;
  box-shadow: 0 0 20px rgba(34, 211, 238, 0.06);
}

.home-title {
  margin: 12px 0 10px;
  font-family: "Space Grotesk", "DM Sans", system-ui, sans-serif;
  font-weight: 700;
  line-height: 1.15;
  font-size: 2rem;
  color: #f8fafc;
}

/* 打字机标题：流光渐变（与全站青紫微光一致） */
.home-title-type {
  display: inline;
  background-image: linear-gradient(
    92deg,
    #f8fafc 0%,
    #e0f2fe 18%,
    #67e8f9 32%,
    #a5b4fc 48%,
    #f8fafc 58%,
    #e2e8f0 100%
  );
  background-size: 220% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  animation: home-title-type-shimmer 5.5s ease-in-out infinite;
  background-position: 0% center;
}

@keyframes home-title-type-shimmer {
  0% {
    background-position: 0% center;
  }
  50% {
    background-position: 100% center;
  }
  100% {
    background-position: 0% center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-title-type {
    animation: none;
    background: none;
    -webkit-background-clip: unset;
    background-clip: unset;
    -webkit-text-fill-color: #f8fafc;
    color: #f8fafc;
  }
}

.home-title-cursor {
  display: inline-block;
  width: 2px;
  height: 0.95em;
  margin-left: 3px;
  vertical-align: -0.08em;
  background: currentColor;
  opacity: 0.92;
  animation: home-title-cursor-blink 0.95s steps(1, end) infinite;
}

@keyframes home-title-cursor-blink {
  0%,
  49% {
    opacity: 0.92;
  }
  50%,
  100% {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-title-cursor {
    animation: none;
    opacity: 0;
    width: 0;
    margin-left: 0;
  }

  .home-title-type {
    animation: none;
  }
}

.home-subtitle {
  color: #9999aa;
  max-width: 54ch;
  letter-spacing: 0.02em;
  line-height: 1.55;
}

.home-subtitle-lead {
  display: inline;
}

@keyframes home-subtitle-lead-shimmer {
  0% {
    background-position: 0% center;
  }
  50% {
    background-position: 100% center;
  }
  100% {
    background-position: 0% center;
  }
}

/* 门户首页副标题：渐变微光（桌面与移动端共用动画；窄屏 below 再加重排） */
.home-portal-hero-copy .home-subtitle .home-subtitle-lead {
  background-image: linear-gradient(
    92deg,
    #94a3b8 0%,
    #cbd5e1 18%,
    #67e8f9 38%,
    #a5b4fc 55%,
    #e2e8f0 72%,
    #94a3b8 100%
  );
  background-size: 220% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  animation: home-subtitle-lead-shimmer 6.2s ease-in-out infinite;
  background-position: 0% center;
}

@media (prefers-reduced-motion: reduce) {
  .home-portal-hero-copy .home-subtitle .home-subtitle-lead {
    animation: none;
    background: none;
    -webkit-background-clip: unset;
    background-clip: unset;
    -webkit-text-fill-color: #cbd5e1;
    color: #cbd5e1;
    white-space: normal;
    overflow-x: visible;
  }
}

@media (min-width: 992px) {
  .home-portal-hero-copy {
    padding-right: 0.35rem;
  }
}

/* 首页门户：进入/返回首页时区块依次缓入（尊重 prefers-reduced-motion） */
@keyframes home-portal-reveal-in {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.home-portal-reveal:not(.home-portal-reveal--show) .home-reveal-item {
  opacity: 0;
  transform: translateY(14px);
}

.home-portal-reveal.home-portal-reveal--show .home-reveal-item {
  animation: home-portal-reveal-in 0.58s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(var(--reveal-order, 0) * 0.052s);
}

@media (prefers-reduced-motion: reduce) {
  .home-portal-reveal:not(.home-portal-reveal--show) .home-reveal-item {
    opacity: 1;
    transform: none;
  }

  .home-portal-reveal.home-portal-reveal--show .home-reveal-item {
    animation: none;
  }
}

/* 门户 / 会员浏览：筛选后的项目栅格依次缓入（JS 切换 home-project-grid-reveal--show 重播） */
@keyframes home-project-grid-reveal-in {
  from {
    opacity: 0;
    transform: translateY(14px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

#home-project-library.home-project-grid-reveal:not(.home-project-grid-reveal--show) > .project-item {
  opacity: 0;
  transform: translateY(14px);
}

#home-project-library.home-project-grid-reveal.home-project-grid-reveal--show > .project-item {
  animation: home-project-grid-reveal-in 0.58s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(var(--grid-reveal-i, 0) * 0.052s);
}

@media (prefers-reduced-motion: reduce) {
  #home-project-library.home-project-grid-reveal:not(.home-project-grid-reveal--show) > .project-item {
    opacity: 1;
    transform: none;
  }

  #home-project-library.home-project-grid-reveal.home-project-grid-reveal--show > .project-item {
    animation: none;
  }
}

/* ---------- 全站页面进入：依次缓入（排除 body.home-portal-reveal 与 /admin） ---------- */
@keyframes site-page-reveal-in {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

body.site-page-reveal:not(.home-portal-reveal):not(.site-page-reveal--show) .site-reveal-item,
body.site-page-reveal:not(.home-portal-reveal):not(.site-page-reveal--show) p .site-reveal-line {
  opacity: 0;
  transform: translateY(12px);
}

body.site-page-reveal.site-page-reveal--show:not(.home-portal-reveal) .site-reveal-item {
  animation: site-page-reveal-in 0.52s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(var(--site-reveal-i, 0) * 0.045s);
}

p .site-reveal-line {
  display: inline;
}

@media (prefers-reduced-motion: reduce) {
  body.site-page-reveal:not(.site-page-reveal--show) .site-reveal-item,
  body.site-page-reveal:not(.site-page-reveal--show) p .site-reveal-line {
    opacity: 1;
    transform: none;
  }

  body.site-page-reveal.site-page-reveal--show .site-reveal-item {
    animation: none;
  }
}

/* ---------- 管理后台 /admin*：主内容区依次缓入（含段落按换行拆行） ---------- */
@keyframes admin-page-reveal-in {
  from {
    opacity: 0;
    transform: translateY(11px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

body.admin-page-reveal:not(.admin-page-reveal--show) .admin-reveal-item,
body.admin-page-reveal:not(.admin-page-reveal--show) p .admin-reveal-line {
  opacity: 0;
  transform: translateY(11px);
}

body.admin-page-reveal.admin-page-reveal--show .admin-reveal-item {
  animation: admin-page-reveal-in 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: calc(var(--admin-reveal-i, 0) * 0.042s);
}

p .admin-reveal-line {
  display: inline;
}

@media (prefers-reduced-motion: reduce) {
  body.admin-page-reveal:not(.admin-page-reveal--show) .admin-reveal-item,
  body.admin-page-reveal:not(.admin-page-reveal--show) p .admin-reveal-line {
    opacity: 1;
    transform: none;
  }

  body.admin-page-reveal.admin-page-reveal--show .admin-reveal-item {
    animation: none;
  }
}

.home-search-wrap {
  margin-top: 18px;
  max-width: 520px;
}

/* 首页搜索：设计表 #1A1A2B 底 + rgba(0,191,255,0.3) 边，hover 边 #00BFFF，字 #9999AA */
.home-search.form-control,
input.home-search.form-control {
  background: #1a1a2b;
  border: 1px solid rgba(0, 191, 255, 0.3);
  color: #9999aa;
  border-radius: 0.65rem;
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
}

.home-search.form-control::placeholder {
  color: #9999aa;
  opacity: 0.85;
}

.home-search.form-control:hover {
  border-color: #00bfff;
  background: #1a1a2b;
}

.home-search.form-control:focus {
  border-color: #00bfff;
  box-shadow: 0 0 0 0.2rem rgba(0, 191, 255, 0.2);
  background: #1a1a2b;
  color: #ffffff;
}

/* 首页未登录：登录 #00BFFF / #FFFFFF，hover 底 #007ACC；注册线框 #00BFFF */
.home-auth-btn {
  border-radius: 999px;
  font-weight: 600;
  padding-left: 1rem;
  padding-right: 1rem;
  border-width: 1px;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.home-auth-btn--login {
  color: #ffffff;
  background: linear-gradient(95deg, #7c3aed 0%, #6366f1 45%, #2563eb 100%);
  border: none;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.08) inset,
    0 4px 16px rgba(0, 0, 0, 0.35),
    0 0 20px rgba(124, 58, 237, 0.35);
}

.home-auth-btn--login:hover {
  color: #ffffff;
  filter: brightness(1.06);
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.1) inset,
    0 6px 20px rgba(0, 0, 0, 0.4),
    0 0 28px rgba(99, 102, 241, 0.45);
}

.home-auth-btn--register {
  color: #fde68a !important;
  background: rgba(69, 26, 3, 0.25);
  border: 1px solid rgba(251, 191, 36, 0.55);
  box-shadow: 0 0 14px rgba(245, 158, 11, 0.12);
}

.home-auth-btn--register:hover {
  color: #fffbeb !important;
  background: rgba(120, 53, 15, 0.35);
  border-color: rgba(253, 224, 71, 0.85);
  box-shadow: 0 0 22px rgba(245, 158, 11, 0.22);
}

/* 首页横幅右侧：龙 PNG；边缘光在 @keyframes home-dragon-breathe-glow */
.home-hero-dragon-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 204px;
  padding: 8px 0;
  contain: layout style;
}

@media (min-width: 992px) {
  .home-hero-dragon-wrap {
    justify-content: center;
    transform: translateX(-12%);
    max-width: 100%;
  }
}

/* 大块背后光晕关掉：光改由龙 PNG 轮廓上的 drop-shadow 呈现 */
.home-hero-dragon-aura {
  display: none;
}

.home-hero-dragon-wrap picture {
  display: block;
  width: fit-content;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.home-hero-dragon.home-hero-dragon--breathe {
  position: relative;
  z-index: 1;
  display: block;
  max-width: min(100%, 372px);
  max-height: 280px;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: center;
  pointer-events: none;
  vertical-align: middle;
  animation: home-dragon-breathe-glow 8s linear infinite;
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
}

/* 与横幅微光同色相；强度收一档，避免龙轮廓被光晕「糊掉」 */
@keyframes home-dragon-breathe-glow {
  0% {
    filter: brightness(0.88) contrast(1.06) saturate(0.9)
      drop-shadow(0 0 1px rgba(165, 243, 252, 0.34))
      drop-shadow(0 0 5px rgba(34, 211, 238, 0.12))
      drop-shadow(0 0 14px rgba(14, 165, 233, 0.055));
  }
  25% {
    filter: brightness(0.88) contrast(1.06) saturate(0.9)
      drop-shadow(0 0 1px rgba(232, 180, 240, 0.32))
      drop-shadow(0 0 5px rgba(217, 70, 239, 0.09))
      drop-shadow(0 0 12px rgba(192, 132, 252, 0.045));
  }
  50% {
    filter: brightness(0.88) contrast(1.06) saturate(0.9)
      drop-shadow(0 0 1px rgba(253, 224, 171, 0.3))
      drop-shadow(0 0 5px rgba(251, 191, 36, 0.1))
      drop-shadow(0 0 14px rgba(245, 158, 11, 0.045));
  }
  75% {
    filter: brightness(0.88) contrast(1.06) saturate(0.9)
      drop-shadow(0 0 1px rgba(167, 243, 208, 0.3))
      drop-shadow(0 0 5px rgba(52, 211, 153, 0.09))
      drop-shadow(0 0 12px rgba(16, 185, 129, 0.04));
  }
  100% {
    filter: brightness(0.88) contrast(1.06) saturate(0.9)
      drop-shadow(0 0 1px rgba(165, 243, 252, 0.34))
      drop-shadow(0 0 5px rgba(34, 211, 238, 0.12))
      drop-shadow(0 0 14px rgba(14, 165, 233, 0.055));
  }
}

/* 窄屏：两段色相呼吸，少一层 drop-shadow，减轻 GPU 与合成开销 */
@keyframes home-dragon-breathe-glow-mobile {
  0%,
  100% {
    filter: brightness(0.88) contrast(1.06) saturate(0.9)
      drop-shadow(0 0 1px rgba(165, 243, 252, 0.32))
      drop-shadow(0 0 6px rgba(34, 211, 238, 0.09));
  }
  50% {
    filter: brightness(0.88) contrast(1.06) saturate(0.9)
      drop-shadow(0 0 1px rgba(253, 224, 171, 0.28))
      drop-shadow(0 0 6px rgba(251, 191, 36, 0.08));
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero-dragon.home-hero-dragon--breathe {
    animation: none;
    filter: brightness(0.88) contrast(1.06) saturate(0.9)
      drop-shadow(0 0 1px rgba(165, 243, 252, 0.28))
      drop-shadow(0 0 5px rgba(34, 211, 238, 0.09))
      drop-shadow(0 0 12px rgba(14, 165, 233, 0.045));
  }
}

@media (max-width: 991px) {
  .home-hero-dragon-wrap {
    min-height: 132px;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    justify-content: center;
    transform: none;
  }

  .home-hero-dragon.home-hero-dragon--breathe {
    max-width: 100%;
    max-height: min(200px, 42vw);
    animation-name: home-dragon-breathe-glow-mobile;
    animation-duration: 10s;
  }

  .home-hot-slide {
    transition: opacity 0.22s ease, transform 0.22s ease;
  }

  .home-title {
    font-size: clamp(1.05rem, 3.8vw, 1.45rem);
  }

  .home-subtitle {
    font-size: 0.78rem;
    line-height: 1.45;
    max-width: 100%;
  }

  /* 副标题单行：小屏可横向滑动读完（渐变微光见全局规则） */
  .home-portal-hero-copy .home-subtitle .home-subtitle-lead {
    display: inline-block;
    max-width: 100%;
    white-space: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    vertical-align: bottom;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  .home-portal-hero-copy .home-subtitle .home-subtitle-lead::-webkit-scrollbar {
    display: none;
  }

  @media (prefers-reduced-motion: reduce) {
    .home-portal-hero-copy .home-subtitle .home-subtitle-lead {
      white-space: normal;
      overflow-x: visible;
    }
  }

  .home-search-wrap {
    max-width: 100%;
  }
}

/* 触摸设备：卡片 hover 位移动画无意义且易在滚动时触发重绘 */
@media (max-width: 991.98px) and (hover: none) {
  .home-project-card:hover {
    transform: none;
  }
}

.home-feature {
  border-radius: 14px;
  padding: 16px 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.06);
  text-align: center;
  font-weight: 700;
}

.home-feature span {
  display: block;
  margin-top: 6px;
  color: #b6c0d1;
  font-weight: 500;
}

.home-tip {
  background: rgba(56, 247, 161, 0.08);
  border-color: rgba(56, 247, 161, 0.12) !important;
  color: #d5ffe9;
}

.home-project-card {
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

/* 窄屏三列：grid 均分整行，避免 flex 宽度舍入 + gutter 叠出右侧空档 */
@media (max-width: 991.98px) {
  .home-projects-row.row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
    row-gap: 0.65rem;
    margin-left: 0;
    margin-right: 0;
  }

  .home-projects-row.row > [class*='col'] {
    width: auto !important;
    max-width: none !important;
    flex: none !important;
    padding-left: 0;
    padding-right: 0;
    min-width: 0;
  }

  .home-projects-row.row > .col-12 {
    grid-column: 1 / -1;
  }
}

/* 首页项目卡片简介：仅显示约 2 行，其余省略 */
.home-project-card .home-project-desc {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  line-height: 1.55;
  word-break: break-word;
}

.home-project-card:hover {
  transform: none;
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.35), 0 0 0 1px rgba(56, 189, 248, 0.18);
}

/* 专区「闲鱼素材」：封面下一条紧凑标题栏，名称左上、大字、少留白 */
.home-project-card.home-project-card--xianyu-hub {
  overflow: hidden;
  display: flex;
  flex-direction: column;
  height: 100%;
}

/* 行高较大时由封面区吃满剩余空间，避免底部标题栏被拉成大片黑块 */
.home-project-card.home-project-card--xianyu-hub > .card-img-top {
  flex: 1 1 auto;
  min-height: 0;
}

.home-project-card.home-project-card--xianyu-hub .home-xianyu-hub-card-body {
  flex: 0 0 auto;
  padding: 0.35rem 0.5rem 0.4rem;
  min-height: 0;
  background: rgba(0, 0, 0, 0.45);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
}

.home-project-card.home-project-card--xianyu-hub .home-xianyu-hub-name {
  text-align: left;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
  color: #e8edf5;
}

@media (min-width: 576px) {
  .home-project-card.home-project-card--xianyu-hub .home-xianyu-hub-name {
    font-size: 0.95rem;
  }
}

@media (min-width: 992px) {
  .home-project-card.home-project-card--xianyu-hub .home-xianyu-hub-name {
    font-size: 1.02rem;
  }
}

.home-xianyu-hub-cardlink:focus-visible .home-project-card--xianyu-hub {
  outline: 2px solid rgba(13, 110, 253, 0.85);
  outline-offset: 2px;
}

.home-xianyu-tool-title-badge {
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}

/* 闲鱼工具页：窄屏隐藏首页巨龙装饰图，减轻 iOS Safari 内存/解码压力（桌面不变） */
@media (max-width: 991.98px) {
  body.home-xianyu-tool-page .home-hero-dragon-wrap {
    display: none !important;
  }

  body.home-xianyu-tool-page .home-portal-hero-copy {
    flex: 0 0 100%;
    max-width: 100%;
  }
}

/* 闲鱼工具：返回首页 — 抬高叠层 + 扩大触摸目标，避免被轮播/遮罩误挡 */
body.home-xianyu-tool-page .home-tool-back-home-wrap {
  position: relative;
  z-index: 40;
  isolation: isolate;
}

body.home-xianyu-tool-page .home-tool-back-home-btn {
  position: relative;
  z-index: 41;
  touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(56, 189, 248, 0.2);
  min-height: 44px;
  padding: 0.5rem 1.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.project-detail-page--xianyu-tool .xianyu-tool-detail-sheet {
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

/* 过渡页不展示顶栏大封面（龙图）；兼容旧版仍输出 .project-detail-hero 的缓存 HTML */
.project-detail-page--feishu-doc .project-detail-hero,
.project-detail-page--xianyu-tool .project-detail-hero {
  display: none !important;
}

.xianyu-tool-detail-title {
  font-size: 1.35rem;
  font-weight: 700;
  color: #f8fafc !important;
}

.project-detail-page--feishu-doc .xianyu-tool-detail-meta.text-secondary,
.project-detail-page--xianyu-tool .xianyu-tool-detail-meta.text-secondary {
  color: rgba(203, 213, 225, 0.95) !important;
}

.project-detail-page--feishu-doc .xianyu-tool-detail-sheet .text-secondary.small,
.project-detail-page--xianyu-tool .xianyu-tool-detail-sheet .text-secondary.small {
  color: rgba(226, 232, 240, 0.9) !important;
}

.project-detail-page--feishu-doc .xianyu-tool-detail-sheet p.text-secondary.small,
.project-detail-page--xianyu-tool .xianyu-tool-detail-sheet p.text-secondary.small {
  color: rgba(226, 232, 240, 0.88) !important;
}

.xianyu-tool-detail-meta .xianyu-tool-meta-sep {
  opacity: 0.45;
}

.xianyu-tool-detail-intro {
  line-height: 1.65;
  word-break: break-word;
  color: #e8edf5 !important;
}

.project-detail-page--feishu-doc .xianyu-tool-detail-intro.project-detail-html-body,
.project-detail-page--xianyu-tool .xianyu-tool-detail-intro.project-detail-html-body {
  color: #e8edf5 !important;
}

.project-detail-page--feishu-doc .xianyu-tool-detail-sheet h2.text-light,
.project-detail-page--xianyu-tool .xianyu-tool-detail-sheet h2.text-light {
  color: #f8fafc !important;
}

.xianyu-tool-use-btn {
  border-radius: 0.65rem;
  font-weight: 600;
}

.home-tool-page-headline {
  font-size: 1.15rem;
  letter-spacing: 0.02em;
}

@media (min-width: 576px) {
  .home-tool-page-headline {
    font-size: 1.28rem;
  }
}

.home-section-pills-wrap--tool {
  margin-bottom: 0.5rem !important;
}

/* 首页：实用工具 + 会员入口（横幅下方主内容区） */
.home-entry-deck {
  --home-entry-radius: 12px;
}

.home-entry-deck--below-hero {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

#home-project-library {
  scroll-margin-top: 5.5rem;
}

/* ---------- 会员大类浏览 /browse/member_* ---------- */
.home-tier-browse-banner {
  background: linear-gradient(180deg, rgba(17, 24, 39, 0.96) 0%, rgba(10, 14, 24, 0.99) 100%);
  border-bottom: 1px solid rgba(100, 116, 139, 0.22);
}

.home-tier-browse-breadcrumb {
  --bs-breadcrumb-divider-color: rgba(148, 163, 184, 0.45);
  font-size: 0.82rem;
}

.home-tier-browse-breadcrumb .breadcrumb-item a {
  color: rgba(125, 211, 252, 0.92);
}

.home-tier-browse-heading {
  letter-spacing: 0.03em;
}

.home-tier-browse-lead {
  max-width: 42rem;
  line-height: 1.55;
}

.home-tier-browse-section-label {
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.72rem;
  opacity: 0.88;
}

.home-tier-browse-cat-card {
  border-radius: 12px;
  border: 1px solid rgba(148, 163, 184, 0.22);
  background: linear-gradient(165deg, rgba(30, 41, 59, 0.52) 0%, rgba(15, 23, 42, 0.94) 100%);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.22);
  padding: 0.72rem 0.82rem;
  min-height: 5.65rem;
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease;
  -webkit-font-smoothing: antialiased;
}

.home-tier-browse-cat-card:hover {
  border-color: rgba(56, 189, 248, 0.38);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28), 0 0 0 1px rgba(56, 189, 248, 0.12);
}

.home-tier-browse-cat-card:focus-visible {
  outline: 2px solid rgba(56, 189, 248, 0.85);
  outline-offset: 2px;
}

.home-tier-browse-cat-card--active {
  border-color: rgba(56, 189, 248, 0.52);
  box-shadow:
    0 12px 30px rgba(0, 0, 0, 0.32),
    0 0 0 1px rgba(56, 189, 248, 0.22);
  background: linear-gradient(165deg, rgba(30, 58, 95, 0.45) 0%, rgba(15, 23, 42, 0.96) 100%);
}

.home-tier-browse-cat-title {
  display: block;
  font-size: 0.98rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #eef2f8;
  line-height: 1.25;
}

.home-tier-browse-cat-lines {
  display: block;
  margin-top: 0.38rem;
  font-size: 0.8rem;
  font-weight: 500;
  line-height: 1.45;
  color: rgba(186, 198, 218, 0.95);
}

.home-tier-browse-toolbar-btn {
  cursor: pointer;
}

@media (prefers-reduced-motion: reduce) {
  .home-tier-browse-cat-card {
    transition: none;
  }
}

/* 会员浏览：手机端四大类横向滑动一行；桌面端仍四列栅格 */
.home-tier-browse-cat-strip {
  margin-left: -0.45rem;
  margin-right: -0.45rem;
}

.home-tier-browse-cat-strip-track {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.75rem;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
  padding: 0 0.45rem 0.4rem;
  scrollbar-width: thin;
}

.home-tier-browse-cat-strip-cell {
  flex: 0 0 min(76vw, 13.5rem);
  max-width: min(76vw, 13.5rem);
  scroll-snap-align: start;
  min-width: 0;
}

@media (min-width: 992px) {
  .home-tier-browse-cat-strip {
    margin-left: 0;
    margin-right: 0;
  }

  .home-tier-browse-cat-strip-track {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    overflow-x: visible;
    padding: 0;
    scroll-snap-type: none;
  }

  .home-tier-browse-cat-strip-cell {
    flex: unset;
    max-width: none;
  }
}

.home-entry-deck--below-hero .home-entry-card-inner {
  min-height: 6.35rem;
}

.home-entry-card-sub--tagline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.1rem 0.2rem;
  font-size: 0.62rem;
  font-weight: 500;
  line-height: 1.45;
  color: #9aa8bc;
  letter-spacing: 0.02em;
}

.home-entry-card-sub--tagline .home-entry-tag {
  letter-spacing: 0.08em;
  white-space: nowrap;
}

.home-entry-card-sub--tagline .home-entry-dot {
  opacity: 0.4;
  padding: 0 0.06rem;
  user-select: none;
}

.home-entry-card {
  border-radius: var(--home-entry-radius);
  cursor: pointer;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
  border: 1px solid rgba(148, 163, 184, 0.22);
  background: linear-gradient(165deg, rgba(30, 41, 59, 0.55) 0%, rgba(15, 23, 42, 0.92) 100%);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.28);
}

.home-entry-card.home-entry-card--tier-active {
  border-color: rgba(56, 189, 248, 0.55);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.28),
    0 0 0 1px rgba(56, 189, 248, 0.22);
}

.home-entry-card-inner {
  padding: 0.85rem 0.9rem 0.95rem;
  min-height: 5.5rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.35rem;
}

.home-entry-card-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.06);
  color: #94a3b8;
}

.home-entry-card-title {
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #e8edf5;
  text-shadow: none;
}

.home-entry-card-sub {
  font-size: 0.68rem;
  line-height: 1.45;
  color: #8b9aaf;
  text-shadow: none;
}

.home-entry-card--tools {
  border-color: rgba(56, 189, 248, 0.28);
}

.home-entry-card--tools .home-entry-card-icon {
  color: #67e8f9;
  background: rgba(56, 189, 248, 0.1);
}

.home-entry-card--member-normal {
  border-color: rgba(148, 163, 184, 0.28);
}

.home-entry-card--member-normal .home-entry-card-icon {
  color: #cbd5e1;
  background: rgba(148, 163, 184, 0.1);
}

/* 黄金 / 钻石：边缘光效（含普通用户 gate 按钮，类名同为 home-entry-card--member-*） */
.home-entry-card--member-gold {
  border-color: rgba(251, 191, 36, 0.45);
  background: linear-gradient(168deg, rgba(58, 48, 28, 0.55) 0%, rgba(15, 23, 42, 0.93) 48%, rgba(28, 22, 14, 0.9) 100%);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.32),
    0 0 24px rgba(251, 191, 36, 0.14),
    0 0 1px rgba(253, 230, 138, 0.55),
    inset 0 1px 0 rgba(255, 248, 220, 0.07);
}

.home-entry-card--member-gold .home-entry-card-icon {
  color: #fbbf24;
  background: rgba(251, 191, 36, 0.12);
  box-shadow: 0 0 12px rgba(251, 191, 36, 0.18);
}

.home-entry-card--member-diamond {
  border-color: rgba(167, 139, 250, 0.48);
  background: linear-gradient(168deg, rgba(42, 36, 62, 0.55) 0%, rgba(15, 23, 42, 0.94) 48%, rgba(26, 22, 44, 0.92) 100%);
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.32),
    0 0 26px rgba(139, 92, 246, 0.16),
    0 0 1px rgba(196, 181, 253, 0.5),
    inset 0 1px 0 rgba(237, 233, 254, 0.06);
}

.home-entry-card--member-diamond .home-entry-card-icon {
  color: #c4b5fd;
  background: rgba(167, 139, 250, 0.14);
  box-shadow: 0 0 14px rgba(139, 92, 246, 0.2);
}

.home-entry-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.38);
}

.home-entry-card--tools:hover {
  border-color: rgba(56, 189, 248, 0.5);
}

.home-entry-card--member-normal:hover {
  border-color: rgba(203, 213, 225, 0.45);
}

/* 覆盖通用 hover 阴影，保留抬起 + 金/钻色边缘光 */
.home-entry-card--member-gold:hover {
  border-color: rgba(253, 224, 71, 0.62);
  box-shadow:
    0 14px 38px rgba(0, 0, 0, 0.4),
    0 0 32px rgba(251, 191, 36, 0.22),
    0 0 1px rgba(254, 243, 199, 0.65),
    inset 0 1px 0 rgba(255, 251, 235, 0.09);
}

.home-entry-card--member-diamond:hover {
  border-color: rgba(196, 181, 253, 0.72);
  box-shadow:
    0 14px 38px rgba(0, 0, 0, 0.4),
    0 0 34px rgba(139, 92, 246, 0.24),
    0 0 1px rgba(221, 214, 254, 0.55),
    inset 0 1px 0 rgba(245, 243, 255, 0.08);
}

.home-entry-card:focus-visible {
  outline: 2px solid rgba(56, 189, 248, 0.85);
  outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
  .home-entry-card {
    transition: none;
  }

  .home-entry-card:hover {
    transform: none;
  }
}

.quota-tier-ref-row {
  scroll-margin-top: 5.5rem;
}

.quota-tier-ref-list li:last-child {
  border-bottom: 0 !important;
}

/* 个人中心 · 额度兑换：档位参考（深色底上保证标题与「套餐 n」列足够亮） */
.profile-card.quota-tier-ref-card h2.quota-tier-ref-heading,
.profile-card.quota-tier-ref-card > h2 {
  color: #f1f5f9 !important;
  font-weight: 600;
}

.profile-card.quota-tier-ref-card .quota-tier-ref-tier-name {
  color: #e2e8f0 !important;
}

.profile-card.quota-tier-ref-card .quota-tier-ref-row .text-secondary {
  color: #cbd5e1 !important;
}

/* 首页单卡片入口：竖版「橱窗」结构（对齐参考站工具条目） */
.home-tool-portal-cardlink {
  display: block;
  width: 100%;
  max-width: 300px;
}

/* 首页「课程与工具」网格：与顶部橱窗卡同结构，铺满栅格列 */
.home-tool-portal-cardlink--grid {
  max-width: none;
  width: 100%;
  cursor: pointer;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
}

.home-tool-portal-cardlink--grid:active {
  opacity: 0.88;
}

.home-tool-portal-cardlink--grid:active .home-tool-portal-card {
  transform: scale(0.985);
}

.home-tool-portal-cardlink--grid:focus-visible {
  outline: none;
}

.home-tool-portal-cardlink--grid:focus-visible .home-tool-portal-card {
  outline: 2px solid rgba(13, 110, 253, 0.9);
  outline-offset: 2px;
}

.home-tool-portal-card {
  border-radius: 18px;
  background: linear-gradient(180deg, rgba(30, 41, 59, 0.88) 0%, rgba(15, 23, 42, 0.95) 100%);
  transition: box-shadow 0.2s ease, border-color 0.2s ease;
}

.home-tool-portal-cardlink:hover .home-tool-portal-card {
  transform: none;
  border-color: rgba(13, 202, 240, 0.45) !important;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.42), 0 0 0 1px rgba(56, 189, 248, 0.2);
}

.home-tool-portal-visual {
  position: relative;
  background: #060910;
}

.home-tool-portal-cover {
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: contain;
  display: block;
}

/* 首页栅格门户卡：比单卡入口略紧凑（封面更扁、字号与留白略减） */
.home-tool-portal-cardlink--grid .home-tool-portal-cover {
  aspect-ratio: 16 / 9;
  /* 未重新生成封面时略收高光；与 PHP 调色叠加不宜过重 */
  filter: brightness(0.97) contrast(1.03) saturate(0.96);
}

.home-tool-portal-cardlink--grid .home-tool-portal-card {
  border-radius: 16px;
}

/* 底栏：仅标题，矮条；排版偏编辑风、无字发光（与头图霓虹区分开） */
.home-tool-portal-cardlink--grid .home-tool-portal-body--grid-bar {
  padding: 0.26rem 0.5rem 0.32rem;
  background: rgba(11, 15, 26, 0.85);
  border-top: 1px solid rgba(148, 163, 184, 0.12);
}

.home-tool-portal-showcase-bar + .home-tool-portal-body--grid-bar {
  border-top: 0;
}

.home-tool-portal-cardlink--grid .home-tool-portal-title--grid {
  font-family:
    'DM Sans',
    'PingFang SC',
    'Hiragino Sans GB',
    'Microsoft YaHei UI',
    'Microsoft YaHei',
    system-ui,
    sans-serif;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: 0.04em;
  color: #eef2f8;
  text-shadow: none;
  filter: none;
  -webkit-font-smoothing: antialiased;
  transition: color 0.2s ease;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (prefers-reduced-motion: reduce) {
  .home-tool-portal-cardlink--grid .home-tool-portal-title--grid {
    transition: none;
  }
}

.home-tool-portal-cardlink--grid:hover .home-tool-portal-title--grid {
  color: #ffffff;
}

.home-tool-portal-cardlink--grid .home-tool-portal-statbar {
  padding: 0.32rem 0.5rem;
  font-size: 0.72rem;
  color: rgba(214, 223, 239, 0.92);
}

.home-tool-portal-cardlink--grid .home-tool-portal-pin {
  top: 0.35rem;
  left: 0.35rem;
  font-size: 0.6rem;
  padding: 0.1rem 0.38rem;
}

.home-tool-portal-pin {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  z-index: 2;
  font-size: 0.66rem;
  font-weight: 700;
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  background: linear-gradient(135deg, #ff8a26, #ff5a1f);
  color: #fff;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.35);
}

.home-tool-portal-statbar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.7rem;
  padding: 0.38rem 0.55rem;
  font-size: 0.74rem;
  color: rgba(235, 242, 255, 0.88);
  background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.72));
}

/* 大类 + 会员（后台「首页卡片展示」写入） */
.home-tool-portal-showcase-bar {
  display: flex;
  align-items: stretch;
  min-height: 2rem;
  background: rgba(24, 28, 38, 0.96);
  border-top: 1px solid rgba(100, 116, 139, 0.22);
  font-size: 0.8125rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: rgba(248, 250, 252, 0.98);
  -webkit-font-smoothing: antialiased;
}

.home-tool-portal-showcase-cell {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  gap: 0.32rem;
  padding: 0.18rem 0.42rem;
  min-width: 0;
}

.home-tool-portal-showcase-cell--cat .home-tool-portal-showcase-ic {
  color: #f472b6;
  flex-shrink: 0;
}

.home-tool-portal-showcase-cell--mem .home-tool-portal-showcase-ic {
  color: #fbbf24;
  flex-shrink: 0;
}

.home-tool-portal-showcase-txt {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-rendering: geometricPrecision;
}

.home-tool-portal-showcase-div {
  width: 1px;
  flex-shrink: 0;
  background: rgba(148, 163, 184, 0.28);
  margin: 0.28rem 0;
}

.home-tool-portal-footer-meta {
  display: flex;
  align-items: center;
  gap: 0.38rem;
  margin-top: 0.18rem;
  min-height: 1.65rem;
}

.home-tool-portal-tags--grid {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.14rem 0.32rem;
  font-size: 0.72rem;
  font-weight: 500;
  line-height: 1.28;
  margin-bottom: 0 !important;
  -webkit-font-smoothing: antialiased;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.home-tool-portal-tags--grid::-webkit-scrollbar {
  display: none;
  height: 0;
}

.home-tool-portal-tags--spacer {
  flex: 1 1 auto;
  min-height: 0;
}

.home-tool-portal-hash {
  color: rgba(226, 232, 240, 0.98) !important;
  white-space: nowrap;
  text-shadow: 0 0.5px 0 rgba(15, 23, 42, 0.55);
}

.home-tool-portal-creator {
  flex-shrink: 0;
}

.home-tool-portal-creator-img {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  border: 1px solid rgba(99, 102, 241, 0.35);
  box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.6);
}

.home-tool-portal-creator-fallback {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  font-size: 0.7rem;
  font-weight: 700;
  color: rgba(226, 232, 240, 0.95);
  background: linear-gradient(145deg, rgba(99, 102, 241, 0.55), rgba(30, 41, 59, 0.95));
  border: 1px solid rgba(99, 102, 241, 0.35);
}

/* 首页项目库栅格：整体更紧凑（列数仍为 2 / md 3 / lg 4） */
.home-projects-row--home-portal .home-tool-portal-cardlink--grid .home-tool-portal-cover {
  aspect-ratio: 16 / 10;
}

.home-projects-row--home-portal .home-tool-portal-cardlink--grid .home-tool-portal-card {
  border-radius: 14px;
}

.home-projects-row--home-portal .home-tool-portal-cardlink--grid .home-tool-portal-body--grid-bar {
  padding: 0.2rem 0.4rem 0.26rem;
}

.home-projects-row--home-portal .home-tool-portal-cardlink--grid .home-tool-portal-title--grid {
  font-size: 0.84rem;
  letter-spacing: 0.035em;
}

.home-projects-row--home-portal .home-tool-portal-cardlink--grid .home-tool-portal-statbar {
  padding: 0.26rem 0.42rem;
  font-size: 0.66rem;
  gap: 0.28rem 0.52rem;
}

.home-projects-row--home-portal .home-tool-portal-cardlink--grid .home-tool-portal-pin {
  top: 0.26rem;
  left: 0.26rem;
  font-size: 0.58rem;
  padding: 0.06rem 0.32rem;
}

.home-projects-row--home-portal .home-tool-portal-showcase-bar {
  min-height: 1.78rem;
  font-size: 0.76rem;
  font-weight: 600;
  line-height: 1.22;
}

.home-projects-row--home-portal .home-tool-portal-showcase-cell {
  padding: 0.12rem 0.34rem;
  gap: 0.26rem;
}

.home-projects-row--home-portal .home-tool-portal-showcase-div {
  margin: 0.2rem 0;
}

.home-projects-row--home-portal .home-tool-portal-showcase-ic svg {
  width: 15px !important;
  height: 15px !important;
}

.home-projects-row--home-portal .home-tool-portal-footer-meta {
  margin-top: 0.1rem;
  min-height: 1.42rem;
  gap: 0.3rem;
}

.home-projects-row--home-portal .home-tool-portal-tags--grid {
  font-size: 0.685rem;
  font-weight: 600;
  gap: 0.08rem 0.3rem;
  line-height: 1.24;
}

.home-projects-row--home-portal .home-tool-portal-creator-img,
.home-projects-row--home-portal .home-tool-portal-creator-fallback {
  width: 26px;
  height: 26px;
}

.home-projects-row--home-portal .home-tool-portal-creator-fallback {
  font-size: 0.6rem;
}

.home-projects-row--home-portal .home-tool-portal-cardlink--grid:hover .home-tool-portal-card {
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.38), 0 0 0 1px rgba(56, 189, 248, 0.18);
}

/* ---------- 后台「首页卡片展示」面板（新建/编辑首页工具与课程） ---------- */
.admin-home-showcase-panel {
  background: linear-gradient(165deg, rgba(24, 28, 42, 0.92) 0%, rgba(14, 17, 28, 0.98) 100%);
  border: 1px solid rgba(99, 102, 241, 0.28) !important;
  border-radius: 12px;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.04),
    0 8px 28px rgba(0, 0, 0, 0.22);
}

.admin-home-showcase-panel__title {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  color: rgba(199, 210, 254, 0.95);
  padding-bottom: 0.5rem;
  margin-bottom: 0.65rem !important;
  border-bottom: 1px solid rgba(99, 102, 241, 0.18);
}

.admin-home-showcase-panel__lead {
  color: rgba(148, 163, 184, 0.92) !important;
  line-height: 1.55;
}

.admin-home-showcase-panel__lead strong {
  color: rgba(226, 232, 240, 0.95);
  font-weight: 600;
}

.admin-home-showcase-panel .form-label {
  color: rgba(186, 198, 216, 0.95);
  font-size: 0.8125rem;
}

.admin-home-showcase-panel .form-select {
  background-color: rgba(15, 23, 42, 0.72);
  border-color: rgba(99, 102, 241, 0.32);
  color: rgba(241, 245, 249, 0.96);
  border-radius: 8px;
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease;
}

.admin-home-showcase-panel .form-select:hover {
  border-color: rgba(129, 140, 248, 0.42);
}

.admin-home-showcase-panel .form-select:focus {
  border-color: rgba(165, 180, 252, 0.55);
  box-shadow: 0 0 0 0.2rem rgba(99, 102, 241, 0.14);
}

.admin-home-showcase-panel .form-text {
  color: rgba(100, 116, 139, 0.95) !important;
}

.admin-home-showcase-panel > p.small.text-secondary {
  color: rgba(120, 133, 152, 0.95) !important;
}

.admin-home-showcase-panel > p.small.text-secondary strong {
  color: rgba(211, 219, 238, 0.98);
  font-weight: 600;
}

.admin-home-showcase-panel .admin-home-tag-pool {
  background: rgba(12, 16, 28, 0.65);
  border: 1px solid rgba(99, 102, 241, 0.22) !important;
  border-radius: 8px;
  gap: 0.35rem 0.5rem !important;
  padding: 0.55rem 0.6rem !important;
}

.admin-home-showcase-panel .admin-home-tag-pool .form-check-inline {
  padding: 0.12rem 0.35rem 0.12rem 0.15rem;
  margin-bottom: 0.2rem !important;
  margin-right: 0.25rem !important;
  border-radius: 6px;
  background: rgba(30, 41, 59, 0.35);
  border: 1px solid transparent;
  transition:
    background 0.15s ease,
    border-color 0.15s ease;
}

.admin-home-showcase-panel .admin-home-tag-pool .form-check-inline:has(.form-check-input:checked) {
  background: rgba(49, 46, 129, 0.35);
  border-color: rgba(129, 140, 248, 0.28);
}

.admin-home-showcase-panel .admin-home-tag-pool .form-check-input {
  cursor: pointer;
  width: 0.95em;
  height: 0.95em;
  margin-top: 0.18em;
  border-color: rgba(100, 116, 139, 0.55);
  background-color: rgba(15, 23, 42, 0.85);
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.admin-home-showcase-panel .admin-home-tag-pool .form-check-input:checked {
  background-color: rgba(79, 70, 229, 0.78) !important;
  border-color: rgba(165, 180, 252, 0.5) !important;
}

.admin-home-showcase-panel .admin-home-tag-pool .form-check-input:focus {
  border-color: rgba(165, 180, 252, 0.65);
  box-shadow: 0 0 0 0.15rem rgba(99, 102, 241, 0.12);
}

.admin-home-showcase-panel .admin-home-tag-pool .form-check-label {
  cursor: pointer;
  color: rgba(203, 213, 225, 0.92);
  font-size: 0.78rem;
  padding-left: 0.15rem;
}

.admin-home-showcase-panel .admin-home-tag-pool .form-check-input:checked + .form-check-label {
  color: rgba(238, 242, 255, 0.98);
}

@media (prefers-reduced-motion: reduce) {
  .admin-home-showcase-panel .form-select,
  .admin-home-showcase-panel .admin-home-tag-pool .form-check-input,
  .admin-home-showcase-panel .admin-home-tag-pool .form-check-inline {
    transition: none;
  }
}

.home-tool-portal-body {
  padding: 0.5rem 0.6rem 0.65rem;
}

.home-tool-portal-title {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 0.25rem;
}

.home-tool-portal-intro {
  font-size: 0.68rem;
  line-height: 1.45;
  margin-bottom: 0.35rem !important;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  opacity: 0.92;
  color: rgba(226, 232, 240, 0.95) !important;
}

.home-tool-portal-tags {
  line-height: 1.45;
  opacity: 0.85;
  word-break: break-word;
  color: rgba(186, 198, 216, 0.95) !important;
}

.home-tool-portal-cta {
  font-weight: 600;
}

/* 工具页素材网格：竖版紧凑卡，无长条侧栏、无底部按钮 */
.home-project-card.home-project-card--tool-compact {
  overflow: hidden;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  height: 100%;
  background: rgba(12, 14, 20, 0.92);
}

.home-tool-grid-cardlink:focus-visible .home-project-card--tool-compact {
  outline: 2px solid rgba(13, 110, 253, 0.9);
  outline-offset: 2px;
}

.home-tool-compact-visual {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  background: #060910;
}

.home-tool-compact-img {
  width: 100%;
  aspect-ratio: 5 / 6;
  max-height: 148px;
  object-fit: contain;
  display: block;
}

@media (min-width: 576px) {
  .home-tool-compact-img {
    max-height: 168px;
  }
}

@media (min-width: 992px) {
  .home-tool-compact-img {
    max-height: 176px;
  }
}

.home-tool-compact-pin {
  position: absolute;
  top: 0.35rem;
  left: 0.35rem;
  z-index: 2;
  font-size: 0.6rem;
  font-weight: 700;
  padding: 0.1rem 0.35rem;
  border-radius: 3px;
  background: linear-gradient(135deg, #ff8a26, #ff5a1f);
  color: #fff;
}

.home-tool-compact-statbar {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 0.25rem 0.4rem;
  padding: 0.25rem 0.35rem;
  font-size: 0.58rem;
  color: rgba(230, 237, 248, 0.9);
  background: linear-gradient(180deg, transparent, rgba(0, 0, 0, 0.75));
}

@media (min-width: 576px) {
  .home-tool-compact-statbar {
    font-size: 0.62rem;
    padding: 0.3rem 0.45rem;
  }
}

.home-tool-compact-foot {
  flex: 0 0 auto;
  padding: 0.28rem 0.38rem 0.38rem;
  background: rgba(0, 0, 0, 0.42);
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.home-tool-compact-title {
  font-size: 0.8rem;
  font-weight: 700;
  color: #f0f4fa;
  text-align: left;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.home-tool-compact-intro {
  margin-top: 0.2rem;
  font-size: 0.58rem;
  font-weight: 400;
  line-height: 1.38;
  color: rgba(195, 206, 222, 0.92);
  text-align: left;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  word-break: break-word;
}

@media (min-width: 576px) {
  .home-tool-compact-title {
    font-size: 0.84rem;
  }
  .home-tool-compact-intro {
    font-size: 0.62rem;
    -webkit-line-clamp: 4;
  }
}

@media (max-width: 575.98px) {
  /* 卡片图高度见下方 .home-project-card > .card-img-top */

  .home-project-card .card-body {
    padding: 0.45rem 0.3rem;
  }

  .home-project-card .card-title {
    font-size: 0.72rem;
    line-height: 1.2;
    margin-bottom: 0.2rem;
  }

  .home-project-card .home-project-desc {
    font-size: 0.62rem;
    line-height: 1.3;
  }

  [data-bs-theme="dark"] .home-project-card a.btn-primary.w-100 {
    padding: 3px 8px;
    font-size: 12px;
  }

  [data-bs-theme="dark"] .home-project-card .home-card-fav.btn-secondary.btn-sm {
    padding: 2px 8px;
    font-size: 11px;
  }
}

.card-img-top {
  object-fit: cover;
  height: 180px;
}

/* 首页项目卡片：完整显示封面图（含龙在右侧），上下可留边 */
.home-project-card > .card-img-top {
  object-fit: contain;
  background: #060910;
  height: 118px;
}

@media (min-width: 576px) {
  .home-project-card > .card-img-top {
    height: 220px;
  }
}

@media (min-width: 992px) {
  .home-project-card > .card-img-top {
    height: 240px;
  }
}

.home-card-placeholder {
  height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.75;
}

/* 首页「选择创作模式」弹窗：玻璃 + 青紫描边，与全站微光渐变一致 */
.creation-mode-modal {
  border-radius: 1.1rem;
  overflow: hidden;
  color: #e8eef5;
  border: 1px solid rgba(125, 211, 252, 0.22) !important;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35) inset,
    0 28px 72px rgba(0, 0, 0, 0.55),
    0 0 60px rgba(34, 211, 238, 0.06);
  background:
    radial-gradient(ellipse 90% 70% at 100% 0%, rgba(168, 85, 247, 0.12) 0%, transparent 55%),
    radial-gradient(ellipse 70% 50% at 0% 100%, rgba(34, 211, 238, 0.08) 0%, transparent 50%),
    linear-gradient(165deg, rgba(30, 41, 59, 0.88) 0%, rgba(8, 12, 22, 0.94) 100%) !important;
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}

.creation-mode-modal .modal-title {
  color: #f8fafc;
}

.creation-mode-modal .btn-close {
  filter: invert(1);
  opacity: 0.72;
}

.creation-mode-modal .btn-close:hover {
  opacity: 1;
}

.creation-mode-badge {
  font-size: 0.65rem;
  font-weight: 700;
  padding: 0.15rem 0.45rem;
  border-radius: 999px;
  background: rgba(129, 140, 248, 0.22);
  color: #c7d2fe;
  border: 1px solid rgba(165, 180, 252, 0.35);
}

.creation-mode-modal .modal-footer .btn-secondary {
  border: 1px solid rgba(167, 139, 250, 0.45);
  background: linear-gradient(180deg, rgba(51, 65, 85, 0.88) 0%, rgba(30, 41, 59, 0.94) 100%);
  color: #ede9fe !important;
  box-shadow: 0 0 18px rgba(139, 92, 246, 0.12);
}

.creation-mode-modal .modal-footer .btn-secondary:hover {
  background: linear-gradient(180deg, rgba(71, 85, 105, 0.95) 0%, rgba(51, 65, 85, 0.98) 100%);
  border-color: rgba(196, 181, 253, 0.65);
  color: #ffffff !important;
  box-shadow: 0 0 24px rgba(167, 139, 250, 0.22);
}

.creation-mode-modal .modal-footer .btn-primary {
  background: linear-gradient(98deg, #7c3aed 0%, #6366f1 28%, #2563eb 62%, #0891b2 100%);
  border: none;
  box-shadow:
    0 0 0 1px rgba(255, 255, 255, 0.07) inset,
    0 4px 18px rgba(0, 0, 0, 0.38),
    0 0 22px rgba(124, 58, 237, 0.38),
    0 0 34px rgba(8, 145, 178, 0.22);
}

.creation-mode-modal .modal-footer .btn-primary:hover {
  filter: brightness(1.06);
  box-shadow:
    0 0 30px rgba(99, 102, 241, 0.45),
    0 0 44px rgba(34, 211, 238, 0.24);
}

.creation-option-list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.creation-option {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin: 0;
  padding: 0.75rem 0.85rem;
  border-radius: 0.85rem;
  border: 1px solid rgba(148, 163, 184, 0.2);
  background: rgba(15, 23, 42, 0.45);
  cursor: pointer;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background-color 0.2s ease;
}

.creation-option:hover {
  border-color: rgba(56, 189, 248, 0.35);
  background: rgba(30, 41, 59, 0.55);
}

.creation-option--selected {
  border-color: rgba(34, 211, 238, 0.55);
  box-shadow:
    0 0 0 1px rgba(34, 211, 238, 0.35),
    0 12px 32px rgba(0, 0, 0, 0.25);
  background: rgba(8, 47, 73, 0.35);
}

.creation-option--disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}

.creation-option-hint {
  display: block;
  font-size: 0.75rem;
  color: #94a3b8;
}

.creation-option-icon {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.65rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
}

.creation-option-icon--save {
  background: linear-gradient(135deg, #2dd4bf, #0d9488);
}

.creation-option-icon--lab {
  background: linear-gradient(135deg, #22d3ee, #0ea5e9);
}

.creation-option-icon--bolt {
  background: linear-gradient(135deg, #22d3ee, #2563eb);
}

.creation-option-icon-svg {
  display: block;
}

.creation-option-body {
  flex: 1;
  min-width: 0;
}

.creation-option-title {
  display: block;
  font-weight: 700;
  font-size: 0.95rem;
  color: #f1f5f9;
}

.creation-option-desc {
  display: block;
  font-size: 0.8rem;
  color: #cbd5e1;
  line-height: 1.5;
  margin-top: 0.2rem;
}

.creation-option-side {
  flex-shrink: 0;
  text-align: right;
  align-self: center;
}

.creation-tag {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 700;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
}

.creation-tag--free {
  background: rgba(34, 197, 94, 0.22);
  color: #86efac;
  border: 1px solid rgba(74, 222, 128, 0.35);
}

.creation-tag--deal {
  background: rgba(148, 163, 184, 0.14);
  color: #e2e8f0;
  margin-left: 0.15rem;
  border: 1px solid rgba(148, 163, 184, 0.25);
}

.creation-price-strike {
  text-decoration: line-through;
  color: #64748b;
  font-size: 0.8rem;
  font-weight: 600;
}

.creation-price-now {
  font-size: 0.85rem;
  font-weight: 800;
  color: #f8fafc;
}

/* 创作模式弹窗主按钮：外观由 .btn-primary 承担 */
[data-bs-theme="dark"] .btn-primary.creation-btn-submit--loading:disabled {
  opacity: 0.92;
  cursor: wait;
}

/* 登录 / 注册 / 忘记密码：灰底卡片 + 灰底输入框 */
[data-bs-theme='dark'] .auth-surface-card {
  background: rgba(36, 40, 48, 0.95) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
  color: #e8eef5;
}

[data-bs-theme='dark'] .auth-surface-card .form-label {
  color: #e2e8f0;
}

[data-bs-theme='dark'] .auth-surface-card .form-control {
  background-color: #2f3540 !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: #f1f5f9 !important;
}

[data-bs-theme='dark'] .auth-surface-card .form-control::placeholder {
  color: rgba(148, 163, 184, 0.9);
}

[data-bs-theme='dark'] .auth-surface-card .form-control:focus {
  border-color: rgba(129, 140, 248, 0.65) !important;
  box-shadow: 0 0 0 0.2rem rgba(99, 102, 241, 0.22);
  color: #fff !important;
}

[data-bs-theme='dark'] .auth-surface-card .input-group .btn-outline-secondary {
  border-color: rgba(255, 255, 255, 0.22);
  color: #e8eef5;
}

[data-bs-theme='dark'] .auth-surface-card .input-group .btn-outline-secondary:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #fff;
}

/* 创作完成 · 作品详情（与全站深色风格一致，简洁版） */
.work-detail-simple {
  max-width: 720px;
  margin: 0 auto;
}

.work-detail-back {
  color: #fff !important;
}

.work-detail-back:hover {
  color: rgba(255, 255, 255, 0.88) !important;
}

.work-detail-cover {
  background: rgba(0, 0, 0, 0.35);
}

.work-detail-cover--empty {
  min-height: 160px;
}

.work-detail-cover-img {
  max-height: min(60vh, 520px);
  object-fit: contain;
  background: #0a0c10;
}

.work-detail-card {
  background: rgba(255, 255, 255, 0.04) !important;
  border-color: rgba(255, 255, 255, 0.12) !important;
}

.work-detail-card .card-body {
  color: #e2e8f0;
}

.work-detail-name {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  line-height: 1.35;
}

.work-detail-copyblock {
  background: #2c313a;
  border-color: rgba(255, 255, 255, 0.14) !important;
}

.work-detail-copyblock .work-detail-copy-text {
  color: #e8eef5;
}

/* 作品详情 · 前往闲鱼发布（与全站灰阶弹层一致，避免浅色底+浅字） */
.xianyu-publish-sheet {
  max-width: 22rem;
  width: 100%;
  background: linear-gradient(180deg, #2f3540 0%, #252a32 100%);
  border: 1px solid rgba(255, 255, 255, 0.12) !important;
  color: #e8eef5;
}

.xianyu-publish-sheet .xianyu-publish-title {
  color: #f8fafc;
}

.xianyu-publish-sheet .btn-outline-secondary {
  color: #f1f5f9 !important;
  border-color: rgba(255, 255, 255, 0.35) !important;
  background: rgba(255, 255, 255, 0.06);
}

.xianyu-publish-sheet .btn-outline-secondary:hover {
  background: rgba(255, 255, 255, 0.12);
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.45) !important;
}

.work-detail-copy-btn {
  color: #8fe8c4 !important;
  border: 1px solid rgba(126, 224, 184, 0.45) !important;
  background: rgba(56, 247, 161, 0.06) !important;
  font-weight: 600;
}

.work-detail-copy-btn:hover {
  color: #b5f5d8 !important;
  border-color: rgba(143, 232, 196, 0.75) !important;
  background: rgba(56, 247, 161, 0.12) !important;
}

.work-detail-copy-btn:focus-visible {
  box-shadow: 0 0 0 0.2rem rgba(56, 247, 161, 0.25);
}

.work-detail-copy-text {
  white-space: pre-wrap;
  word-break: break-word;
  line-height: 1.6;
}

/* ---------- 个人中心（深色、简洁卡片） ---------- */
.profile-page {
  max-width: 560px;
}

.profile-card {
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 1.15rem 1.25rem;
  box-sizing: border-box;
}

.profile-card--menu {
  padding: 0;
}

.profile-card--plain {
  background: rgba(255, 255, 255, 0.02);
}

/* 个人中心头像旁昵称：避免被主题里 .text-light / .fw-bold 盖成深字 */
.profile-card--hero .fw-bold.text-light {
  color: #f8fafc !important;
}

.letter-space {
  letter-spacing: 0.06em;
  font-size: 0.72rem;
}

.profile-avatar-wrap {
  width: 5.5rem;
}

.profile-avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 1.25rem;
  color: #062e1e;
  background: linear-gradient(135deg, #38f7a1 0%, #0d8f6e 100%);
  border: 2px solid rgba(255, 255, 255, 0.12);
  margin: 0 auto;
}

.profile-avatar-img {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  margin: 0 auto;
  border: 2px solid rgba(255, 255, 255, 0.14);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
}

.profile-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}

.profile-badge {
  font-size: 0.68rem;
  font-weight: 700;
  padding: 0.15rem 0.5rem;
  border-radius: 999px;
  border: 1px solid;
  line-height: 1.3;
}

.profile-badge--purple {
  color: #c4b5fd;
  border-color: rgba(139, 92, 246, 0.45);
  background: rgba(139, 92, 246, 0.12);
}

.profile-badge--blue {
  color: #93c5fd;
  border-color: rgba(59, 130, 246, 0.45);
  background: rgba(59, 130, 246, 0.1);
}

.profile-badge--green {
  color: #86efac;
  border-color: rgba(52, 211, 153, 0.45);
  background: rgba(52, 211, 153, 0.1);
}

.profile-badge--muted {
  color: #9aa6b8;
  border-color: rgba(255, 255, 255, 0.15);
  background: rgba(255, 255, 255, 0.04);
}

.profile-stat {
  border-radius: 0.85rem;
  padding: 0.9rem 1rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  height: 100%;
}

.profile-stat-label {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #8b96a8;
  margin-bottom: 0.35rem;
}

.profile-stat-value {
  font-size: 1.5rem;
  font-weight: 800;
  color: #f1f5f9;
  line-height: 1.1;
}

.profile-stat-hint {
  font-size: 0.72rem;
  color: #7d8a9e;
  margin-top: 0.35rem;
}

.profile-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  color: inherit;
  text-decoration: none !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  transition: background 0.15s ease, border-color 0.15s ease;
}

.profile-row:last-child {
  border-bottom: none;
}

.profile-row:hover {
  background: rgba(56, 247, 161, 0.06);
}

.profile-row-icon {
  width: 2rem;
  text-align: center;
  font-size: 1.1rem;
  flex-shrink: 0;
  opacity: 0.95;
}

.profile-row-body {
  flex: 1;
  min-width: 0;
}

.profile-row-title {
  display: block;
  font-weight: 700;
  color: #f1f5f9;
  font-size: 0.92rem;
}

.profile-row-desc {
  display: block;
  font-size: 0.75rem;
  color: #8b96a8;
  margin-top: 0.1rem;
}

.profile-row-chevron {
  flex-shrink: 0;
  font-size: 1.25rem;
  font-weight: 300;
  color: #6b7788;
}

.profile-quota-page-title {
  color: #a5b4fc;
  font-weight: 700;
}

/* 个人中心：点击头像去编辑资料（角标铅笔） */
.profile-avatar-hit {
  color: inherit;
}
.profile-avatar-ring {
  position: relative;
  display: inline-block;
  margin: 0 auto;
}
.profile-avatar-ring::before {
  content: "";
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  border: 2px solid rgba(165, 180, 252, 0.55);
  box-shadow: 0 0 0 4px rgba(99, 102, 241, 0.12);
  pointer-events: none;
}
.profile-avatar-img--hero {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  border: 2px solid rgba(255, 255, 255, 0.18);
}
.profile-avatar--hero {
  width: 72px;
  height: 72px;
  font-size: 1.5rem;
  margin: 0 auto;
}
.profile-avatar-edit-badge {
  position: absolute;
  right: -2px;
  bottom: -2px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: linear-gradient(145deg, #6366f1 0%, #4f46e5 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid rgba(15, 23, 42, 0.9);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35);
}

/* ---------- 编辑资料（与个人中心一致的深色卡片） ---------- */
.me-edit-page {
  max-width: 560px;
  padding-bottom: 2rem;
}
.me-edit-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.25rem 0 1rem;
}
.me-edit-back {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.06);
  color: #e8ecf4 !important;
  font-size: 1.35rem;
  line-height: 1;
  text-decoration: none !important;
  border: 1px solid rgba(255, 255, 255, 0.1);
}
.me-edit-back:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff !important;
}
.me-edit-heading {
  font-size: 1.05rem;
  font-weight: 800;
  margin: 0;
  color: #f1f5f9;
  flex: 1;
  text-align: center;
}
.me-edit-save {
  border: none;
  border-radius: 999px;
  padding: 0.45rem 0.95rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: #062e1e;
  background: linear-gradient(135deg, #38f7a1 0%, #0d8f6e 100%);
  white-space: nowrap;
  box-shadow: 0 2px 12px rgba(56, 247, 161, 0.25);
}
.me-edit-save:hover {
  filter: brightness(1.06);
}
.me-edit-avatar-block {
  text-align: center;
  padding: 0.25rem 0 1rem;
}
.me-edit-avatar-ring {
  position: relative;
  display: inline-block;
}
.me-edit-avatar-ring::before {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  border: 2px solid rgba(165, 180, 252, 0.45);
  pointer-events: none;
}
.me-edit-avatar-img,
.me-edit-avatar-placeholder {
  width: 112px;
  height: 112px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  border: 2px solid rgba(255, 255, 255, 0.14);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.35);
}
.me-edit-avatar-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 2rem;
  color: #062e1e;
  background: linear-gradient(135deg, #38f7a1 0%, #0d8f6e 100%);
}
.me-edit-avatar-cam {
  position: absolute;
  right: 2px;
  bottom: 2px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(30, 41, 59, 0.95);
  color: #e8ecf4;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: 2px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
  margin: 0;
}
.me-edit-avatar-cam:hover {
  background: rgba(51, 65, 85, 0.98);
  color: #fff;
}
.me-edit-avatar-hint {
  margin: 0.65rem 0 0;
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #8b96a8;
  font-weight: 600;
}
.me-edit-card {
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 1.25rem 1.2rem 1.35rem;
  box-sizing: border-box;
}
.me-edit-field {
  margin-bottom: 1.1rem;
}
.me-edit-field:last-child {
  margin-bottom: 0;
}
.me-edit-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #8b96a8;
  margin-bottom: 0.35rem;
}
.me-edit-field-hint {
  margin-top: 0.35rem;
  font-size: 0.72rem;
  color: #8b96a8;
  line-height: 1.45;
}
.me-edit-input-wrap {
  position: relative;
}
.me-edit-input-wrap--muted .me-edit-input--readonly {
  color: #9aa6b8;
  font-weight: 500;
}
.me-edit-input,
.me-edit-textarea {
  width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.06);
  padding: 0.7rem 2.65rem 0.7rem 0.95rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: #f1f5f9;
  box-sizing: border-box;
}
.me-edit-input::placeholder,
.me-edit-textarea::placeholder {
  color: #6b7788;
  font-weight: 500;
}
.me-edit-input--readonly {
  font-weight: 500;
  opacity: 0.92;
  cursor: default;
}
.me-edit-textarea {
  resize: vertical;
  min-height: 5rem;
  padding-right: 0.95rem;
  font-weight: 500;
}
.me-edit-input:focus,
.me-edit-textarea:focus {
  outline: none;
  border-color: rgba(56, 247, 161, 0.45);
  box-shadow: 0 0 0 0.2rem rgba(56, 247, 161, 0.12);
}
.me-edit-input-icon {
  position: absolute;
  right: 0.85rem;
  top: 50%;
  transform: translateY(-50%);
  color: #6b7788;
  pointer-events: none;
  display: flex;
}
.me-edit-gender {
  display: flex;
  gap: 0.45rem;
}
.me-edit-gender-btn {
  flex: 1;
  position: relative;
  text-align: center;
  margin: 0;
  padding: 0.55rem 0.35rem;
  border-radius: 0.85rem;
  background: rgba(255, 255, 255, 0.05);
  font-size: 0.88rem;
  font-weight: 600;
  color: #c4ccd8;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.me-edit-gender-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  opacity: 0;
  cursor: pointer;
}
.me-edit-gender-btn:has(.me-edit-gender-input:checked) {
  background: rgba(56, 247, 161, 0.12);
  border-color: rgba(56, 247, 161, 0.4);
  color: #86efac;
}

/* ---------- 项目详情（公开浏览 · 深色简洁） ---------- */
.project-detail-page {
  max-width: 720px;
  margin: 0 auto;
  padding-bottom: 2rem;
  animation: projectDetailEnter 0.42s ease-out;
}

@keyframes projectDetailEnter {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .project-detail-page {
    animation: none;
  }
}

.project-detail-page--feishu-doc .xianyu-tool-detail-sheet {
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

.project-detail-html-body img {
  max-width: 100%;
  height: auto;
}

.project-detail-html-body img.project-desc-html-img {
  cursor: zoom-in;
}

.project-detail-html-body img.project-desc-html-img:hover {
  outline: 1px solid rgba(125, 211, 252, 0.45);
  outline-offset: 3px;
}

.project-detail-html-body a {
  color: #7dd3fc;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

[data-bs-theme='dark'] .project-detail-primary-cta-muted {
  background: rgba(55, 48, 163, 0.2) !important;
  background-image: none !important;
  color: #c7d2fe !important;
  border: 1px solid rgba(129, 140, 248, 0.35) !important;
  box-shadow: none !important;
  filter: none !important;
  font-weight: 600;
}

[data-bs-theme='dark'] .project-detail-primary-cta-muted:hover {
  background: rgba(55, 48, 163, 0.3) !important;
  color: #e0e7ff !important;
  border-color: rgba(165, 180, 252, 0.5) !important;
}

[data-bs-theme='dark'] .project-detail-attach-btn {
  color: #cbd5e1 !important;
  border-color: rgba(148, 163, 184, 0.45) !important;
  background: rgba(15, 23, 42, 0.5) !important;
  font-weight: 600;
  box-shadow: none !important;
}

[data-bs-theme='dark'] .project-detail-attach-btn:hover {
  color: #f1f5f9 !important;
  background: rgba(51, 65, 85, 0.45) !important;
  border-color: rgba(203, 213, 225, 0.55) !important;
}

/* 后台：富文本简介 */
.admin-desc-html-editor {
  min-height: 140px;
  max-height: 420px;
  overflow-y: auto;
  white-space: pre-wrap;
  word-break: break-word;
  color: #f1f5f9 !important;
  --bs-body-color: #f1f5f9;
}

[data-bs-theme='dark'] .form-control.admin-desc-html-editor {
  color: #f1f5f9 !important;
}

.admin-desc-html-editor * {
  color: inherit !important;
}

[data-bs-theme='dark'] #adminProjectDescEditor ~ .form-text {
  color: rgba(226, 232, 240, 0.88) !important;
}

.admin-desc-html-editor a {
  color: #7dd3fc !important;
}

.admin-desc-html-editor:focus {
  outline: 0;
  border-color: rgba(129, 140, 248, 0.45);
  box-shadow: 0 0 0 0.15rem rgba(99, 102, 241, 0.12);
}

.admin-desc-html-editor:empty:before {
  content: attr(data-placeholder);
  color: #64748b;
  pointer-events: none;
}

/* 首页素材栅格：点击轻微过渡 */
.home-tool-grid-cardlink {
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
  color: inherit;
}

.home-tool-grid-cardlink:active {
  opacity: 0.88;
}

.home-tool-grid-cardlink:active .home-project-card--tool-compact {
  transform: scale(0.985);
}

.project-detail-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.35rem 1rem 0.5rem;
  max-width: 720px;
  margin: 0 auto;
}

.project-detail-back {
  color: #c4ccd8 !important;
  font-size: 0.9rem;
  font-weight: 600;
}

.project-detail-back:hover {
  color: #fff !important;
}

.project-detail-fav {
  border: none;
  background: rgba(255, 255, 255, 0.08);
  color: #f9a8d4;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  font-size: 1.15rem;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease, transform 0.12s ease;
}

.project-detail-fav:hover {
  background: rgba(255, 255, 255, 0.14);
}

.project-detail-fav.is-on {
  color: #f472b6;
  background: rgba(244, 114, 182, 0.15);
}

.project-detail-fav:disabled {
  opacity: 0.5;
}

.project-detail-hero {
  width: 100%;
  max-height: min(44vh, 320px);
  overflow: hidden;
  background: rgba(0, 0, 0, 0.35);
}

.project-detail-hero--empty {
  min-height: 140px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.project-detail-gallery-thumb {
  max-height: 88px;
  max-width: 110px;
  width: auto;
  height: auto;
  object-fit: cover;
  vertical-align: middle;
}

.project-detail-hero-img {
  width: 100%;
  height: min(44vh, 320px);
  object-fit: cover;
  display: block;
}

.project-detail-sheet {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 1.15rem;
  padding: 1.15rem 1.25rem 1.25rem;
  margin: -1.75rem 0.75rem 1.25rem;
  position: relative;
  z-index: 2;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.35);
}

@media (min-width: 768px) {
  .project-detail-sheet {
    margin-left: 0;
    margin-right: 0;
  }
}

.project-detail-page--standard .project-detail-sheet {
  margin: 0.85rem 0.75rem 1.25rem;
}

.project-detail-title {
  font-size: 1.15rem;
  font-weight: 800;
  color: #f8fafc !important;
  line-height: 1.35;
  margin: 0 0 0.75rem;
}

.project-detail-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-bottom: 1rem;
}

.project-detail-pill {
  display: inline-block;
  font-size: 0.72rem;
  font-weight: 600;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: #cbd5e1 !important;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.project-detail-section-label {
  font-size: 0.78rem;
  font-weight: 700;
  color: #c7d2fe !important;
  margin-bottom: 0.5rem;
  padding-left: 0.5rem;
  border-left: 3px solid rgba(129, 140, 248, 0.85);
}

.project-detail-body-wrap {
  margin-bottom: 0.75rem;
}

.project-detail-body-wrap .project-detail-body {
  filter: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  -webkit-mask-image: none;
  mask-image: none;
}

/* 仅长文案截断：多行末尾省略号；禁止渐变/模糊遮罩（短文不加此类） */
.project-detail-body--truncated {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  line-clamp: 5;
  overflow: hidden;
  text-overflow: ellipsis;
}

.project-detail-body {
  font-size: 0.88rem;
  line-height: 1.65;
  color: #dce4f0 !important;
  white-space: pre-wrap;
  word-break: break-word;
}

.project-detail-page--standard .project-detail-html-body {
  color: #dce4f0 !important;
}

.project-detail-hint {
  line-height: 1.5;
}

.project-detail-cta {
  border: none;
  border-radius: 0.85rem;
  padding: 0.75rem 1rem;
  color: #fff !important;
  font-weight: 700;
  background: linear-gradient(90deg, #312e81 0%, #4f46e5 45%, #2563eb 100%);
  box-shadow: 0 6px 22px rgba(79, 70, 229, 0.35);
}

.project-detail-cta:hover {
  filter: brightness(1.06);
  color: #fff !important;
}

/* 管理后台：额度/创作卡密表格内「复制」在 table-striped 下行字色易被继承成与底色相近 */
[data-bs-theme="dark"] .table > tbody > tr > td .quota-copy-btn,
[data-bs-theme="dark"] .table > tbody > tr > td .creation-perm-copy-btn {
  color: #eef4fb !important;
  border-color: rgba(255, 255, 255, 0.48) !important;
  background-color: rgba(8, 12, 20, 0.55) !important;
  --bs-btn-color: #eef4fb;
  --bs-btn-border-color: rgba(255, 255, 255, 0.48);
}

[data-bs-theme="dark"] .table > tbody > tr > td .quota-copy-btn:hover:not(:disabled),
[data-bs-theme="dark"] .table > tbody > tr > td .creation-perm-copy-btn:hover:not(:disabled) {
  color: #fff !important;
  border-color: rgba(56, 239, 178, 0.72) !important;
  background-color: rgba(56, 239, 178, 0.14) !important;
}

[data-bs-theme="dark"] .table > tbody > tr > td .quota-copy-btn:disabled,
[data-bs-theme="dark"] .table > tbody > tr > td .creation-perm-copy-btn:disabled {
  color: rgba(238, 244, 251, 0.75) !important;
  opacity: 1;
}

/* 额度 / 创作卡密 — 联系客服购买弹窗（浅色卡片） */
.purchase-service-modal .modal-dialog {
  max-width: 340px;
}

.purchase-service-modal__sheet {
  border-radius: 22px;
  position: relative;
  background: #fff;
}

.purchase-service-modal__close {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 2;
  opacity: 0.45;
}

.purchase-service-modal__close:hover {
  opacity: 0.85;
}

.purchase-service-modal__icon-wrap {
  width: 56px;
  height: 56px;
}

.purchase-service-modal__icon {
  display: block;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(52, 199, 89, 0.35);
}

.purchase-service-modal__title {
  line-height: 1.4;
}

.purchase-service-modal__desc {
  line-height: 1.6;
  font-size: 0.9375rem;
  font-weight: 500;
  color: #374151 !important;
  margin-bottom: 1rem !important;
}

.purchase-service-modal__wechat-box {
  background: #eef0f3;
  border-radius: 14px;
  padding: 12px 14px;
  border: 1px solid rgba(0, 0, 0, 0.08);
}

.purchase-service-modal__wechat-label {
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  color: #6b7280;
  font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 0;
}

.purchase-service-modal__wechat-input {
  display: block;
  width: 100%;
  background: #fff !important;
  border: 1px solid #d1d5db !important;
  border-radius: 10px;
  color: #111827 !important;
  font-weight: 700;
  font-size: 1.125rem;
  letter-spacing: 0.06em;
  padding: 10px 12px;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.04);
  cursor: default;
}

.purchase-service-modal__wechat-input:focus {
  border-color: #34c759 !important;
  box-shadow: 0 0 0 3px rgba(52, 199, 89, 0.2);
  outline: 0;
}

.purchase-service-modal__copy {
  text-decoration: none !important;
  border: none !important;
  box-shadow: none !important;
}

.purchase-service-modal__copy:hover {
  opacity: 0.85;
}

.purchase-service-modal__ok {
  background: #111827;
  color: #fff !important;
  font-weight: 600;
  border: none;
}

.purchase-service-modal__ok:hover {
  background: #1f2937;
  color: #fff !important;
}

/* ---------- 管理员后台：简约数据卡片 + 超级管理员侧栏 ---------- */
.min-width-0 {
  min-width: 0;
}

.admin-dashboard {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

.admin-dash-back-btn {
  width: 42px;
  height: 42px;
  padding: 0;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.05);
  color: #e2e8f0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.admin-dash-back-btn:hover {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(56, 189, 248, 0.35);
  color: #7ddcff;
}

/* 指定管理页：小屏去掉整段全站顶栏（幻核矩阵 + 顶栏）；侧栏 DOM 已移至 header 外 */
@media (max-width: 991.98px) {
  body.admin-mobile-hide-site-navbar header.boxmoe_header {
    display: none !important;
  }
}

.admin-dash-menu-btn {
  width: 42px;
  height: 42px;
  padding: 0;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.05);
  color: #e2e8f0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.admin-dash-menu-btn:hover {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(56, 189, 248, 0.35);
  color: #7ddcff;
}

/* 管理页「站点导航」：文字「菜单」（手机端为主，桌面同页也可用） */
.admin-dash-menu-text-btn {
  position: relative;
  z-index: 6;
  min-height: 42px;
  padding: 0 14px;
  border-radius: 12px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.05);
  color: #e2e8f0;
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.admin-dash-menu-text-btn:hover {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(56, 189, 248, 0.35);
  color: #7ddcff;
}

.admin-dash-menu-icon {
  display: block;
  width: 18px;
  height: 2px;
  background: currentColor;
  border-radius: 1px;
  box-shadow: 0 -6px 0 currentColor, 0 6px 0 currentColor;
}

.admin-dash-kicker {
  letter-spacing: 0.06em;
  font-size: 0.7rem;
}

.admin-dash-role {
  font-weight: 600;
  font-size: 0.75rem;
  padding: 0.35rem 0.75rem;
  background: rgba(56, 247, 161, 0.12);
  color: #8fe8c4;
  border: 1px solid rgba(56, 247, 161, 0.22);
}

.admin-dash-role--admin {
  background: rgba(148, 163, 184, 0.12);
  color: #cbd5e1;
  border-color: rgba(148, 163, 184, 0.22);
}

.admin-stat-card {
  border-radius: 14px;
  padding: 1rem 1.1rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  min-height: 88px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.admin-stat-card--accent {
  border-color: rgba(0, 136, 255, 0.22);
  background: linear-gradient(145deg, rgba(0, 136, 255, 0.08), rgba(255, 255, 255, 0.03));
}

.admin-stat-card--quota {
  border-color: rgba(56, 247, 161, 0.2);
  background: linear-gradient(145deg, rgba(56, 247, 161, 0.07), rgba(255, 255, 255, 0.03));
}

.admin-stat-card--muted {
  border-color: rgba(167, 139, 250, 0.2);
  background: linear-gradient(145deg, rgba(167, 139, 250, 0.06), rgba(255, 255, 255, 0.03));
}

.admin-stat-label {
  font-size: 0.8rem;
  color: #9aa6b8;
  margin-bottom: 0.35rem;
}

.admin-stat-value {
  font-size: 1.5rem;
  font-weight: 800;
  line-height: 1.2;
  color: #f1f5f9;
  font-variant-numeric: tabular-nums;
}

.admin-drawer-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1040;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(2px);
}

.admin-drawer {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1050;
  width: min(280px, 86vw);
  height: 100%;
  max-height: 100dvh;
  background: linear-gradient(180deg, #12161d 0%, #0c0f14 100%);
  border-right: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 8px 0 32px rgba(0, 0, 0, 0.45);
  transform: translateX(-100%);
  transition: transform 0.25s ease;
  display: flex;
  flex-direction: column;
  padding: 0;
}

.admin-drawer.is-open {
  transform: translateX(0);
}

.admin-drawer-head {
  padding: 1rem 1rem 0.75rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.admin-drawer-nav {
  padding: 0.75rem 0;
  display: flex;
  flex-direction: column;
}

.admin-drawer-link {
  display: block;
  padding: 0.85rem 1.25rem;
  color: #e2e8f0;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.95rem;
  border-left: 3px solid transparent;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.admin-drawer-link:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
  border-left-color: rgba(56, 247, 161, 0.65);
}

.admin-drawer-close-btn {
  width: 36px;
  height: 36px;
  line-height: 1;
  padding: 0;
  border: none;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.08);
  color: #e2e8f0;
  font-size: 1.5rem;
  cursor: pointer;
  transition: background 0.15s ease;
}

.admin-drawer-close-btn:hover {
  background: rgba(255, 255, 255, 0.14);
  color: #fff;
}

body.admin-drawer-no-scroll {
  overflow: hidden;
}

/* ---------- 创作权限兑换页（深色站风格 · 圆角卡片） ---------- */
.creation-perm-page .creation-perm-status-card {
  border-radius: 1rem;
  padding: 1.25rem 1.35rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  text-align: center;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.25);
}

.creation-perm-status-icon {
  width: 3rem;
  height: 3rem;
  margin: 0 auto 0.75rem;
  border-radius: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #a78bfa 0%, #6366f1 100%);
  box-shadow: 0 4px 14px rgba(99, 102, 241, 0.35);
}

.creation-perm-status-title {
  font-size: 1.35rem;
  font-weight: 800;
  color: #f1f5f9;
  margin-bottom: 0.35rem;
}

.creation-perm-status-detail {
  color: #c4ccd8;
  font-size: 0.9rem;
}

.creation-perm-status-hint {
  color: #9aa6b8;
}

.creation-perm-input-card {
  border-radius: 1rem;
  padding: 1rem 1.15rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.creation-perm-input-card .form-control.creation-perm-input {
  border-radius: 0.65rem;
  background: rgba(0, 0, 0, 0.25);
  border-color: rgba(255, 255, 255, 0.12);
  color: #e2e8f0;
}

.creation-perm-input-card .btn-success {
  border-radius: 0.65rem;
  font-weight: 700;
}

.creation-perm-notice {
  border-radius: 1rem;
  padding: 1rem 1.15rem 1.1rem;
  background: rgba(255, 255, 255, 0.045);
  border: 1px solid rgba(167, 139, 250, 0.22);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.creation-perm-notice-head {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}

.creation-perm-notice-icon {
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #8b5cf6, #6366f1);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 800;
  font-style: italic;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.creation-perm-notice-title {
  font-weight: 800;
  color: #f1f5f9;
  font-size: 0.95rem;
}

.creation-perm-notice-list {
  padding-left: 1.15rem;
  margin: 0;
  color: #b6c0d1;
  font-size: 0.85rem;
  line-height: 1.55;
}

.creation-perm-notice-list li {
  margin-bottom: 0.35rem;
}

.creation-perm-notice-list li:last-child {
  margin-bottom: 0;
}

.creation-perm-log {
  border-radius: 1rem;
  padding: 0.35rem 0;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
}

.creation-perm-log-item {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  padding: 0.65rem 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  font-size: 0.85rem;
}

.creation-perm-log-item:last-child {
  border-bottom: none;
}

.creation-perm-log-time {
  color: #c4ccd8;
  font-variant-numeric: tabular-nums;
}

.creation-perm-log-tier {
  color: #a5b4fc;
  font-weight: 600;
}

/* ---------- 营销后台（暗号 / 流量） ---------- */
.admin-drawer-link--active {
  background: rgba(99, 102, 241, 0.12);
  border-left-color: rgba(129, 140, 248, 0.85) !important;
  color: #fff !important;
}

.marketing-admin-page .marketing-welcome-card {
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.2);
}

.marketing-welcome-icon {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(167, 139, 250, 0.35), rgba(99, 102, 241, 0.25));
  border: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  color: #c4b5fd;
}

.marketing-gen-bar {
  border-radius: 1rem;
  padding: 0.85rem 1rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.marketing-gen-prefix {
  min-width: 3rem;
  padding: 0.35rem 0.75rem;
  border-radius: 0.5rem;
  background: rgba(59, 130, 246, 0.2);
  border: 1px solid rgba(59, 130, 246, 0.35);
  color: #93c5fd;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.marketing-code-search {
  border-radius: 0.75rem;
  background: rgba(0, 0, 0, 0.2);
  border-color: rgba(255, 255, 255, 0.12);
  color: #e2e8f0;
}

.marketing-code-card-inner {
  border-radius: 1rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.09);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.18);
}

.marketing-code-badge {
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 0.65rem;
  background: #1e293b;
  color: #e2e8f0;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
}

.marketing-traffic-table-wrap {
  border-radius: 1rem;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.marketing-traffic-table-wrap .table {
  margin-bottom: 0;
  min-width: 720px;
}

.marketing-traffic-th-actions {
  min-width: 200px;
  white-space: nowrap;
}

@media (max-width: 575.98px) {
  .marketing-traffic-table-wrap .table {
    min-width: 640px;
  }

  .marketing-traffic-table-wrap .marketing-traffic-actions {
    flex-direction: column;
    align-items: stretch !important;
  }

  .marketing-traffic-table-wrap .marketing-gift-input {
    width: 100%;
    min-width: 0;
    max-width: 10rem;
  }
}

.marketing-gift-input {
  width: 5.5rem;
  min-width: 5rem;
}

/* 全局深色弹窗：玻璃 + 青紫微光（排除浅色购买弹窗与创作模式专用壳） */
[data-bs-theme='dark']
  .modal-content:not([data-bs-theme='light']):not(.purchase-service-modal__sheet):not(.creation-mode-modal) {
  border-radius: 1rem !important;
  border: 1px solid rgba(125, 211, 252, 0.16) !important;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35) inset,
    0 28px 64px rgba(0, 0, 0, 0.5);
  background:
    radial-gradient(ellipse 80% 55% at 100% 0%, rgba(99, 102, 241, 0.1) 0%, transparent 52%),
    radial-gradient(ellipse 55% 45% at 0% 100%, rgba(34, 211, 238, 0.06) 0%, transparent 48%),
    linear-gradient(165deg, rgba(22, 28, 42, 0.94) 0%, rgba(6, 8, 14, 0.98) 100%) !important;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  color: #e8eef4 !important;
}

[data-bs-theme='dark']
  .modal-content:not([data-bs-theme='light']):not(.purchase-service-modal__sheet):not(.creation-mode-modal)
  .modal-header,
[data-bs-theme='dark']
  .modal-content:not([data-bs-theme='light']):not(.purchase-service-modal__sheet):not(.creation-mode-modal)
  .modal-footer {
  border-color: rgba(148, 163, 184, 0.14) !important;
}

[data-bs-theme='dark']
  .modal-content:not([data-bs-theme='light']):not(.purchase-service-modal__sheet):not(.creation-mode-modal)
  .modal-title {
  color: #f8fafc !important;
}

[data-bs-theme='dark']
  .modal-content:not([data-bs-theme='light']):not(.purchase-service-modal__sheet):not(.creation-mode-modal)
  .btn-close {
  filter: invert(1);
  opacity: 0.75;
}

[data-bs-theme='dark']
  .modal-content:not([data-bs-theme='light']):not(.purchase-service-modal__sheet):not(.creation-mode-modal)
  .btn-close:hover {
  opacity: 1;
}

/* 深色站：弹窗与整站一致（黑底 + 高对比字），加类 app-modal-dark 于 .modal-content */
[data-bs-theme='dark'] .modal-content.app-modal-dark {
  background-color: transparent !important;
  background-image:
    radial-gradient(ellipse 75% 55% at 100% 0%, rgba(99, 102, 241, 0.12) 0%, transparent 50%),
    linear-gradient(165deg, rgba(18, 24, 38, 0.96) 0%, rgba(6, 8, 14, 0.98) 100%) !important;
  color: #e8eef4 !important;
  border: 1px solid rgba(125, 211, 252, 0.18) !important;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35) inset,
    0 28px 64px rgba(0, 0, 0, 0.55);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}

[data-bs-theme='dark'] .modal-content.app-modal-dark .modal-header,
[data-bs-theme='dark'] .modal-content.app-modal-dark .modal-footer {
  border-color: rgba(255, 255, 255, 0.1) !important;
  background: transparent;
}

[data-bs-theme='dark'] .modal-content.app-modal-dark .modal-title {
  color: #f8fafc !important;
  font-weight: 700;
}

[data-bs-theme='dark'] .modal-content.app-modal-dark .modal-body {
  color: #e2e8f0;
}

[data-bs-theme='dark'] .modal-content.app-modal-dark .app-modal-muted {
  color: #b4c2d6 !important;
}

[data-bs-theme='dark'] .modal-content.app-modal-dark .app-modal-dark-panel {
  background: rgba(0, 0, 0, 0.35);
  border-color: rgba(255, 255, 255, 0.12) !important;
}

[data-bs-theme='dark'] .modal-content.app-modal-dark .form-control {
  background-color: #11151c;
  border-color: rgba(255, 255, 255, 0.16);
  color: #f1f5f9;
}

[data-bs-theme='dark'] .modal-content.app-modal-dark .form-control::placeholder {
  color: #7d8fa6;
}

[data-bs-theme='dark'] .modal-content.app-modal-dark .form-control:focus {
  background-color: #11151c;
  border-color: rgba(56, 247, 161, 0.5);
  color: #fff;
  box-shadow: 0 0 0 0.2rem rgba(56, 247, 161, 0.12);
}

[data-bs-theme='dark'] .modal-content.app-modal-dark .text-secondary {
  color: #b4c2d6 !important;
}

[data-bs-theme='dark'] .modal-content.app-modal-dark .text-success {
  color: #6ee7b7 !important;
}

[data-bs-theme='dark'] .modal-backdrop.show {
  opacity: 0.82;
}

/* ---------- 作品库 /library ---------- */
.library-page {
  max-width: 1100px;
  margin: 0 auto;
}

.library-tabs-wrap {
  display: flex;
  justify-content: center;
}

.library-tabs {
  display: inline-flex;
  gap: 0.35rem;
  padding: 0.35rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.library-tab {
  border: none;
  border-radius: 999px;
  padding: 0.5rem 1.1rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: #94a3b8;
  background: transparent;
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  transition: background 0.15s ease, color 0.15s ease;
}

.library-tab:hover {
  color: #e2e8f0;
}

.library-tab--active {
  background: rgba(56, 247, 161, 0.18);
  color: #d5ffe9;
  box-shadow: 0 0 0 1px rgba(56, 247, 161, 0.25);
}

.library-tab-count {
  font-variant-numeric: tabular-nums;
  opacity: 0.95;
}

.library-btn-clear {
  border-radius: 999px;
  color: #fca5a5;
  border: 1px solid rgba(248, 113, 113, 0.35);
  background: rgba(248, 113, 113, 0.08);
}

.library-btn-clear:hover:not(:disabled) {
  background: rgba(248, 113, 113, 0.16);
  color: #fecaca;
}

.library-search-wrap {
  position: relative;
}

.library-search-icon {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0.45;
  font-size: 0.9rem;
  pointer-events: none;
}

.library-search-input {
  border-radius: 999px;
  padding-left: 2.5rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #e2e8f0;
}

.library-search-input::placeholder {
  color: #64748b;
}

.library-search-input:focus {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(56, 247, 161, 0.35);
  box-shadow: 0 0 0 0.2rem rgba(56, 247, 161, 0.12);
  color: #f1f5f9;
}

.library-work-card {
  background: rgba(255, 255, 255, 0.03);
  border-radius: 14px;
  overflow: hidden;
}

.library-work-img {
  height: 160px;
  object-fit: cover;
}

.library-work-placeholder {
  height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.25);
  color: #64748b;
  font-size: 0.9rem;
}

[data-bs-theme='dark'] .library-work-card .library-cta-muted.btn-success {
  background: rgba(15, 118, 110, 0.14) !important;
  background-image: none !important;
  color: #a7e3da !important;
  border: 1px solid rgba(45, 212, 191, 0.22) !important;
  box-shadow: none !important;
  filter: none !important;
  font-weight: 600;
}

[data-bs-theme='dark'] .library-work-card .library-cta-muted.btn-success:hover {
  background: rgba(15, 118, 110, 0.24) !important;
  color: #ccfbf1 !important;
  border-color: rgba(45, 212, 191, 0.38) !important;
}

/* ---------- 首页专区胶囊 Tab ---------- */
.home-section-pills-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-left: -0.25rem;
  margin-right: -0.25rem;
  padding-bottom: 2px;
}

.home-section-pills-wrap::-webkit-scrollbar {
  height: 4px;
}

.home-section-pills-wrap::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.12);
  border-radius: 4px;
}

.home-section-pills {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 0.5rem;
  padding: 0.35rem 0.25rem;
  min-width: min-content;
}

/* 专区胶囊：布局见下；透明微亮见上方 #homeSectionPills .btn-tag */
.home-section-pill {
  flex: 0 0 auto;
}

.home-section-pill:focus-visible {
  outline: 2px solid rgba(0, 204, 255, 0.55);
  outline-offset: 2px;
}

/* ---------- PC 顶栏 Mega（前台）+ 管理后台 V2 ---------- */
body.admin-v2-dashboard header.boxmoe_header {
  display: none !important;
}

body.admin-v2-dashboard footer.mt-7 {
  margin-top: 1.5rem !important;
}

body.admin-v2-dashboard .boxmoe-container.container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

.pc-megabar {
  background: linear-gradient(180deg, rgba(15, 23, 42, 0.95) 0%, rgba(17, 24, 39, 0.92) 100%);
  border-top: 1px solid var(--uh-border);
  border-bottom: 1px solid rgba(56, 189, 248, 0.18);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.pc-megabar-inner {
  padding: 0.4rem 0;
}

.pc-megabar-list {
  gap: 0.15rem 0.35rem !important;
}

.pc-megabar-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.65rem;
  border-radius: 8px;
  color: rgba(226, 232, 240, 0.92);
  text-decoration: none;
  font-size: 0.9rem;
  transition: color 0.15s ease, background 0.15s ease;
}

.pc-megabar-link:hover {
  color: #fff;
  background: rgba(255, 255, 255, 0.05);
}

.pc-megabar-link--active {
  color: #00bfff !important;
  box-shadow: inset 0 -2px 0 #00bfff;
  border-radius: 8px 8px 0 0;
}

.pc-megabar-ico {
  font-size: 0.95rem;
  line-height: 1;
}

.pc-megabar-fake {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.65rem;
  color: rgba(226, 232, 240, 0.55);
  font-size: 0.9rem;
  cursor: default;
  user-select: none;
}

.pc-megabar-dd {
  position: relative;
}

.pc-megabar-dd-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.65rem;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: rgba(226, 232, 240, 0.92);
  font-size: 0.9rem;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}

.pc-megabar-dd-btn:hover,
.pc-megabar-dd-btn:focus-visible,
.pc-megabar-dd.show .pc-megabar-dd-btn {
  color: #fff;
  background: rgba(255, 255, 255, 0.06);
}

.pc-megabar-caret {
  display: inline-block;
  width: 0;
  height: 0;
  margin-left: 0.15rem;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid rgba(248, 250, 252, 0.75);
  vertical-align: middle;
}

.pc-megabar-menu {
  border-radius: 12px !important;
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  padding: 0.35rem !important;
  margin-top: 0.35rem !important;
  min-width: 220px;
  background: rgba(18, 18, 26, 0.98) !important;
  backdrop-filter: blur(8px);
}

.pc-megabar-menu .dropdown-item,
.pc-megabar-menu .dropdown-item-text {
  border-radius: 8px;
  font-size: 0.9rem;
}

.admin-v2-shell {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  min-height: 100vh;
  background: linear-gradient(180deg, #0b1220 0%, #0f172a 55%, #111827 100%);
}

@media (max-width: 991.98px) {
  .admin-v2-shell {
    grid-template-columns: 1fr;
  }
}

.admin-v2-sidebar {
  width: 240px;
  min-height: 100vh;
  background: rgba(30, 41, 59, 0.65);
  border-right: 1px solid var(--uh-border);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.admin-v2-sidebrand {
  padding: 1.2rem 1rem 1rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.admin-v2-sidebrand-title {
  font-weight: 700;
  font-size: 1.05rem;
  color: #f8fafc !important;
  letter-spacing: 0.02em;
}

.admin-v2-sidebrand-title:hover {
  color: #ffffff !important;
}

.admin-v2-sidebrand-sub {
  font-size: 0.72rem;
  color: rgba(125, 211, 252, 0.95);
  margin-top: 0.2rem;
  letter-spacing: 0.04em;
}

.admin-v2-snav-wrap {
  padding: 0.65rem 0 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.admin-v2-snav {
  display: block;
  padding: 0.52rem 1rem;
  color: rgba(226, 232, 240, 0.88);
  text-decoration: none;
  font-size: 0.88rem;
  border-left: 3px solid transparent;
  transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.admin-v2-snav:hover {
  background: rgba(255, 255, 255, 0.04);
  color: #fff;
}

.admin-v2-snav.is-active {
  background: rgba(0, 191, 255, 0.1);
  color: #7ddcff;
  border-left-color: #00bfff;
}

.admin-v2-snav--muted {
  color: rgba(148, 163, 184, 0.95);
}

.admin-v2-sidefoot {
  margin-top: auto;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  padding-top: 0.75rem;
}

.admin-v2-workspace {
  padding: 1.15rem clamp(1rem, 2vw, 2rem) 2rem;
  min-width: 0;
  position: relative;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* 手机顶栏：避免被其它合成层/装饰挡住点击（iOS Safari） */
@media (max-width: 991.98px) {
  .admin-v2-mobilebar {
    position: relative;
    z-index: 50;
  }

  .admin-v2-mobilebar .btn,
  .admin-v2-mobilebar .admin-dash-menu-text-btn {
    position: relative;
    z-index: 51;
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(56, 189, 248, 0.15);
  }
}

.admin-v2-content {
  max-width: none;
  width: 100%;
}

.admin-v2-page-title {
  font-size: 1.45rem;
  font-weight: 700;
  color: #f8fafc;
}

.admin-v2-greet {
  color: rgba(148, 163, 184, 0.96);
  line-height: 1.55;
  font-size: 0.92rem;
}

.admin-v2-stat-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.65rem;
}

@media (max-width: 1199.98px) {
  .admin-v2-stat-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 575.98px) {
  .admin-v2-stat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.admin-v2-stat-tile {
  position: relative;
  background: var(--uh-surface);
  border: 1px solid var(--uh-border);
  border-radius: 12px;
  padding: 0.85rem 0.85rem 0.75rem;
  min-height: 88px;
  overflow: hidden;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05) inset;
}

.admin-v2-stat-label {
  font-size: 0.76rem;
  color: rgba(148, 163, 184, 0.95);
  padding-right: 1.75rem;
}

.admin-v2-stat-num {
  font-size: 1.55rem;
  font-weight: 700;
  color: #f1f5f9;
  font-variant-numeric: tabular-nums;
  margin-top: 0.2rem;
}

.admin-v2-stat-ico {
  position: absolute;
  top: 10px;
  right: 11px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  opacity: 0.9;
}

.admin-v2-stat-tile--green .admin-v2-stat-ico {
  background: #22c55e;
  box-shadow: 0 0 14px rgba(34, 197, 94, 0.35);
}

.admin-v2-stat-tile--blue .admin-v2-stat-ico {
  background: #3b82f6;
  box-shadow: 0 0 14px rgba(59, 130, 246, 0.35);
}

.admin-v2-stat-tile--teal .admin-v2-stat-ico {
  background: #14b8a6;
  box-shadow: 0 0 14px rgba(20, 184, 166, 0.35);
}

.admin-v2-stat-tile--orange .admin-v2-stat-ico {
  background: #f97316;
  box-shadow: 0 0 14px rgba(249, 115, 22, 0.35);
}

.admin-v2-stat-tile--purple .admin-v2-stat-ico {
  background: #a855f7;
  box-shadow: 0 0 14px rgba(168, 85, 247, 0.35);
}

.admin-v2-panel {
  background: var(--uh-surface);
  border: 1px solid var(--uh-border);
  border-radius: 12px;
  padding: 1rem 1.1rem;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.05) inset;
}

.admin-v2-panel-title {
  font-weight: 600;
  font-size: 0.92rem;
  color: #e2e8f0;
  margin-bottom: 0.65rem;
}

.admin-v2-panel-metric-num {
  color: #f8fafc !important;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.admin-v2-panel-metric-sub {
  color: #cbd5e1 !important;
  font-variant-numeric: tabular-nums;
}

.admin-v2-panel-list li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
  padding: 0.35rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  color: rgba(203, 213, 225, 0.95);
}

.admin-v2-panel-list li:last-child {
  border-bottom: 0;
}

.admin-v2-statusbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  padding: 0.65rem 0.85rem;
  background: rgba(15, 23, 42, 0.55);
  border: 1px solid var(--uh-border);
  border-radius: 10px;
  color: rgba(148, 163, 184, 0.95);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.admin-v2-status-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.admin-v2-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex-shrink: 0;
}

.admin-v2-status-pill--ok .admin-v2-dot {
  background: #22c55e;
}

.admin-v2-status-pill--info .admin-v2-dot {
  background: #38bdf8;
}

.admin-v2-status-pill--muted .admin-v2-dot {
  background: #a78bfa;
}

.admin-v2-status-pill--warn .admin-v2-dot {
  background: #fb923c;
}

/* ---------- 手机端全站侧栏导航 ---------- */
body.mobile-site-nav-no-scroll {
  overflow: hidden;
}

.mobile-site-nav-backdrop {
  position: fixed;
  inset: 0;
  z-index: 1088;
  background: rgba(0, 0, 0, 0.55);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

.mobile-site-nav-backdrop.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.mobile-site-nav-panel {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1090;
  width: min(88vw, 340px);
  max-width: 100%;
  height: 100%;
  height: 100dvh;
  background: #12121a;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 12px 0 40px rgba(0, 0, 0, 0.45);
  display: flex;
  flex-direction: column;
  transform: translateX(-104%);
  transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}

.mobile-site-nav-panel.is-open {
  transform: translateX(0);
}

.mobile-site-nav-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1rem 0.75rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  flex-shrink: 0;
}

.mobile-site-nav-brand-title {
  font-weight: 700;
  font-size: 1.15rem;
  color: #fff;
  letter-spacing: 0.02em;
}

.mobile-site-nav-brand-sub {
  font-size: 0.65rem;
  color: rgba(148, 163, 184, 0.95);
  margin-top: 0.2rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.mobile-site-nav-close {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.05);
  color: #e2e8f0;
  font-size: 1.5rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}

.mobile-site-nav-close:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.mobile-site-nav-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 0.35rem 0 0.75rem;
  -webkit-overflow-scrolling: touch;
}

.mobile-site-nav-row {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.62rem 1rem;
  font-size: 0.92rem;
  color: rgba(226, 232, 240, 0.92);
  text-decoration: none;
  border: 0;
  width: 100%;
  text-align: left;
  background: transparent;
}

.mobile-site-nav-row--link {
  color: rgba(226, 232, 240, 0.95);
}

.mobile-site-nav-row--link:hover {
  background: rgba(255, 255, 255, 0.05);
  color: #fff;
}

.mobile-site-nav-row--fake {
  cursor: default;
  color: rgba(226, 232, 240, 0.78);
  user-select: none;
}

.mobile-site-nav-row--muted {
  display: block;
  padding: 0.5rem 1rem 0.5rem 2.4rem;
  font-size: 0.82rem;
  color: rgba(148, 163, 184, 0.9);
}

.mobile-site-nav-row--indent {
  padding-left: 2.15rem;
}

.mobile-site-nav-row--badge-wrap {
  position: relative;
  padding-right: 2.5rem;
}

.mobile-site-nav-badge {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  min-width: 1.35rem;
  height: 1.35rem;
  padding: 0 0.35rem;
  border-radius: 999px;
  background: #dc2626;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.35rem;
  text-align: center;
}

.mobile-site-nav-ico-svg {
  display: block;
  flex-shrink: 0;
  color: rgba(148, 163, 184, 0.95);
}

.mobile-site-nav-row--link:hover .mobile-site-nav-ico-svg {
  color: rgba(56, 189, 248, 0.95);
}

.mobile-site-nav-ico--dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(56, 189, 248, 0.55);
  flex-shrink: 0;
}

/* 会员专区子项：分档 SVG 图标色 */
.mobile-site-nav-ico--tier {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
}

.mobile-site-nav-ico--tier-normal .mobile-site-nav-ico-svg {
  color: rgba(148, 163, 184, 0.92);
}

.mobile-site-nav-row--link.mobile-site-nav-row--indent:hover .mobile-site-nav-ico--tier-normal .mobile-site-nav-ico-svg {
  color: rgba(186, 230, 253, 0.95);
}

.mobile-site-nav-ico--tier-gold .mobile-site-nav-ico-svg {
  color: rgba(251, 191, 36, 0.88);
}

.mobile-site-nav-row--link.mobile-site-nav-row--indent:hover .mobile-site-nav-ico--tier-gold .mobile-site-nav-ico-svg {
  color: rgba(253, 224, 71, 0.98);
}

.mobile-site-nav-ico--tier-diamond .mobile-site-nav-ico-svg {
  color: rgba(167, 139, 250, 0.9);
}

.mobile-site-nav-row--link.mobile-site-nav-row--indent:hover .mobile-site-nav-ico--tier-diamond .mobile-site-nav-ico-svg {
  color: rgba(196, 181, 253, 0.98);
}

.mobile-site-nav-details--members[open] > .mobile-site-nav-summary {
  color: rgba(248, 250, 252, 0.98);
}

.mobile-site-nav-details--members .mobile-site-nav-sub {
  margin-left: 0.35rem;
  padding-left: 0.55rem;
  border-left: 1px solid rgba(71, 85, 105, 0.5);
}

.mobile-site-nav-details--members[open] .mobile-site-nav-sub {
  border-left-color: rgba(56, 189, 248, 0.35);
}

.mobile-site-nav-ico:has(.mobile-site-nav-ico-svg) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
}

.mobile-site-nav-ico {
  font-size: 1.05rem;
  line-height: 1;
  width: 1.35rem;
  text-align: center;
  flex-shrink: 0;
}

.mobile-site-nav-details > summary {
  list-style: none;
  cursor: pointer;
}

.mobile-site-nav-details > summary::-webkit-details-marker {
  display: none;
}

.mobile-site-nav-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.62rem 1rem;
  font-size: 0.92rem;
  color: rgba(226, 232, 240, 0.92);
  user-select: none;
}

.mobile-site-nav-summary-inner {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}

.mobile-site-nav-chevron {
  width: 0.45rem;
  height: 0.45rem;
  border-right: 2px solid rgba(148, 163, 184, 0.85);
  border-bottom: 2px solid rgba(148, 163, 184, 0.85);
  transform: rotate(45deg);
  margin-right: 0.2rem;
  margin-bottom: 0.15rem;
  flex-shrink: 0;
  transition: transform 0.2s ease;
}

.mobile-site-nav-details[open] > .mobile-site-nav-summary .mobile-site-nav-chevron {
  transform: rotate(225deg);
  margin-bottom: -0.1rem;
}

.mobile-site-nav-sub {
  padding-bottom: 0.25rem;
}

.mobile-site-nav-details--member[open] > .mobile-site-nav-summary {
  background: rgba(44, 62, 80, 0.55);
  color: #f1f5f9;
}

.mobile-site-nav-details--member[open] .mobile-site-nav-sub--member {
  background: rgba(44, 62, 80, 0.35);
  margin: 0 0.35rem 0.35rem;
  border-radius: 10px;
  padding: 0.2rem 0;
}

.mobile-site-nav-foot {
  flex-shrink: 0;
  padding: 0.75rem 1rem 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.2);
}

.mobile-site-nav-foot-links {
  text-align: center;
  font-size: 0.88rem;
  margin-bottom: 0.65rem;
}

.mobile-site-nav-foot-links a {
  color: #7dd3fc;
  text-decoration: none;
}

.mobile-site-nav-foot-links a:hover {
  color: #bae6fd;
  text-decoration: underline;
}

.mobile-site-nav-dot {
  color: rgba(148, 163, 184, 0.6);
  margin: 0 0.25rem;
}

@media (min-width: 992px) {
  .mobile-site-nav-backdrop,
  .mobile-site-nav-panel {
    display: none !important;
  }
}

/* ---------- 后台新建项目：并排入口（分段控件：等高、同壳、单箭头） ---------- */
.admin-project-source-toolbar {
  border-bottom: 1px solid rgba(148, 163, 184, 0.14);
  padding-bottom: 0.85rem;
  gap: 0.5rem !important;
}

.admin-project-source-toolbar .admin-toolbar-mode-btn {
  cursor: pointer;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease, color 0.18s ease;
}

.admin-project-source-toolbar .admin-toolbar-mode-btn:focus-visible {
  outline: 2px solid rgba(56, 189, 248, 0.55);
  outline-offset: 2px;
}

/* 与 Bootstrap .btn 全局样式对齐高度，统一玻璃底壳（无双 dropdown-toggle 箭头） */
.admin-project-source-toolbar .admin-toolbar-mode-btn--segment {
  min-height: 2.625rem;
  padding: 0.48rem 1rem !important;
  border-radius: 10px !important;
  font-weight: 600;
  font-size: 0.9375rem;
  letter-spacing: 0.015em;
  line-height: 1.25;
  border: 1px solid rgba(148, 163, 184, 0.4) !important;
  background: rgba(15, 23, 42, 0.62) !important;
  color: #cbd5e1 !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.045) inset;
}

.admin-project-source-toolbar .admin-toolbar-mode-btn__icon {
  color: rgba(125, 211, 252, 0.88);
}

.admin-project-source-toolbar .admin-toolbar-mode-btn__label {
  color: #e0f2fe;
}

.admin-project-source-toolbar .admin-toolbar-dd-chevron {
  color: rgba(148, 163, 184, 0.92);
  transition: transform 0.2s ease;
}

.admin-project-source-toolbar .admin-toolbar-mode-btn--segment:hover {
  border-color: rgba(203, 213, 225, 0.55) !important;
  background: rgba(30, 41, 59, 0.72) !important;
}

.admin-project-source-toolbar .admin-toolbar-mode-btn--segment:hover .admin-toolbar-mode-btn__label {
  color: #f8fafc;
}

/* 选中：同一套「细底边 + 外环弱光」，仅色相区分（避免一侧厚重 3D、一侧扁平） */
.admin-project-source-toolbar #ddXianyuToggle.admin-toolbar-mode-btn.is-active {
  border-color: rgba(56, 189, 248, 0.52) !important;
  background: rgba(12, 74, 110, 0.35) !important;
  box-shadow:
    0 0 0 1px rgba(56, 189, 248, 0.18),
    inset 0 -2px 0 0 #38bdf8;
}

.admin-project-source-toolbar #btnPanelHome.admin-toolbar-mode-btn.is-active {
  border-color: rgba(167, 139, 250, 0.52) !important;
  background: rgba(46, 16, 101, 0.26) !important;
  box-shadow:
    0 0 0 1px rgba(167, 139, 250, 0.2),
    inset 0 -2px 0 0 #a78bfa;
}

.admin-project-toolbar-dd.show .admin-toolbar-dd-chevron {
  transform: rotate(180deg);
}
.admin-project-toolbar-dd .dropdown-menu.admin-project-toolbar-menu {
  min-width: 16rem;
  padding: 0.35rem 0;
  border-radius: 10px;
  border: 1px solid rgba(148, 163, 184, 0.28);
  background: rgba(15, 23, 42, 0.94);
  backdrop-filter: blur(10px);
  box-shadow: 0 14px 44px rgba(0, 0, 0, 0.5);
}
.admin-project-toolbar-menu .dropdown-item {
  cursor: pointer;
  transition: background-color 0.15s ease, color 0.15s ease;
}
.admin-project-toolbar-menu .dropdown-item:hover,
.admin-project-toolbar-menu .dropdown-item:focus {
  background: rgba(34, 211, 238, 0.14);
  color: #f8fafc;
}
@media (prefers-reduced-motion: reduce) {
  .admin-project-source-toolbar .admin-toolbar-dd-chevron,
  .admin-project-source-toolbar .admin-toolbar-mode-btn {
    transition: none;
  }
}

/* ---------- 后台新建项目：封面实时预览（勿在 project_form 里用 !important 覆盖，否则此处改了也无效） ---------- */
.admin-cover-preview-card {
  position: relative;
  aspect-ratio: 16 / 9;
  width: 100%;
  max-width: min(420px, 100%);
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background-color: #060910;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
}

/* 预览整张底图（与保存后 JPG 一致：整图缩放 + 左侧叠字） */
.admin-cover-preview-card--photo .admin-cover-preview-bgimg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: contain;
  object-position: center;
  z-index: 0;
  pointer-events: none;
  /* 与生成 JPG 前 GD 调色大致对齐（底图 + 叠字前压暗） */
  filter: brightness(0.87) contrast(1.06) saturate(0.9);
}

.admin-cover-preview-card--fallback {
  background-image:
    radial-gradient(ellipse 90% 70% at 78% 48%, rgba(80, 120, 255, 0.22) 0%, transparent 55%),
    linear-gradient(115deg, #050810 0%, #0a1020 42%, #101a32 100%);
  background-size: cover;
  background-position: center;
}

/* 文字整体上下：padding-top；单行字数：调 width / max-width（略宽则少换行，与生成 JPG 的 textMaxW 比例对齐） */
.admin-cover-preview-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 58%;
  max-width: 300px;
  padding: 0.55rem 0.65rem 0.55rem 0.85rem;
  padding-top: 4.5rem;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.06) 82%, transparent 100%);
}

@keyframes admin-cover-shimmer-main {
  0%,
  100% {
    background-position: 50% 0%;
  }
  50% {
    background-position: 50% 100%;
  }
}

/* 后台封面预览 · 主标题：上紫下白 + 紫光晕（与 GD 主标题一致） */
.admin-cover-preview-main {
  font-weight: 800;
  font-size: 1.56rem;
  line-height: 1.22;
  letter-spacing: 0.02em;
  word-break: break-word;
  background-image: linear-gradient(
    180deg,
    #d8b4fe 0%,
    #ede9fe 36%,
    #f8fafc 74%,
    #ffffff 100%
  );
  background-size: 100% 240%;
  background-position: 50% 0%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 14px rgba(167, 139, 250, 0.42));
  animation: admin-cover-shimmer-main 5.8s ease-in-out infinite;
}

@media (min-width: 768px) {
  .admin-cover-preview-main {
    font-size: 1.72rem;
  }
}

.admin-cover-preview-sub {
  margin-top: 0.38rem;
  word-break: break-word;
}

/* 副标题：红色系渐变 + 红光晕；略小于主标题，便于约 14 字单行且不占龙区 */
.admin-cover-preview-sub:not(.is-placeholder) {
  font-weight: 600;
  font-size: 1.05rem;
  line-height: 1.32;
  letter-spacing: 0.02em;
  background-image: linear-gradient(
    180deg,
    #fecaca 0%,
    #fca5a5 32%,
    #f87171 58%,
    #ef4444 82%,
    #dc2626 100%
  );
  background-size: 100% 240%;
  background-position: 50% 0%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 12px rgba(248, 113, 113, 0.48));
  animation: admin-cover-shimmer-main 5.8s ease-in-out infinite;
}

@media (min-width: 768px) {
  .admin-cover-preview-sub:not(.is-placeholder) {
    font-size: 1.12rem;
  }
}

.admin-cover-preview-sub.is-placeholder {
  font-size: 1rem;
  opacity: 0.55;
  font-weight: 500;
  color: rgba(226, 232, 240, 0.72);
}

@media (prefers-reduced-motion: reduce) {
  .admin-cover-preview-main,
  .admin-cover-preview-sub:not(.is-placeholder) {
    animation: none !important;
  }
}

/* ---------- 论坛 /forum ---------- */
.forum-page {
  max-width: 40rem;
  padding-bottom: 2.25rem;
}

.forum-page-kicker {
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
}

.forum-page-title {
  letter-spacing: 0.02em;
}

.forum-compose.card {
  border-radius: 14px;
  background: linear-gradient(165deg, rgba(22, 28, 42, 0.88) 0%, rgba(12, 16, 26, 0.96) 100%);
}

.forum-thread {
  border-radius: 14px;
  background: linear-gradient(165deg, rgba(22, 28, 42, 0.92) 0%, rgba(12, 16, 26, 0.98) 100%);
}

.forum-thread-badge-pill {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 0.12rem 0.48rem;
  border-radius: 999px;
  color: #0f172a;
  background: linear-gradient(92deg, #38bdf8, #818cf8);
}

.forum-thread-heading {
  letter-spacing: 0.02em;
  line-height: 1.35;
}

.forum-thread-meta-dot {
  opacity: 0.55;
  margin: 0 0.28rem;
}

.forum-thread-body {
  line-height: 1.65;
  word-break: break-word;
}

.forum-compose-textarea {
  resize: vertical;
  min-height: 6rem;
}

.forum-comment-body {
  line-height: 1.55;
  word-break: break-word;
}

.forum-empty {
  border-radius: 14px;
}

/* ---------- 公告管理页：与论坛/全站一致的纵深背景 + 扫描线 ---------- */
body.admin-forum-announcements-page {
  position: relative;
  background:
    radial-gradient(ellipse 80% 55% at 100% 18%, rgba(14, 116, 144, 0.12) 0%, transparent 52%),
    radial-gradient(ellipse 72% 48% at 6% 28%, rgba(67, 56, 202, 0.09) 0%, transparent 50%),
    linear-gradient(165deg, #070b14 0%, #0b1220 40%, #0a1628 72%, #060910 100%) !important;
}

@media (prefers-reduced-motion: no-preference) {
  body.admin-forum-announcements-page::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    opacity: 0.4;
    background: repeating-linear-gradient(
      0deg,
      transparent,
      transparent 2px,
      rgba(255, 255, 255, 0.018) 2px,
      rgba(255, 255, 255, 0.018) 4px
    );
  }
}

body.admin-forum-announcements-page .admin-v2-shell {
  position: relative;
  z-index: 1;
  background: transparent !important;
}

body.admin-forum-announcements-page .admin-v2-sidebar {
  background: rgba(15, 23, 42, 0.78) !important;
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-right-color: rgba(125, 211, 252, 0.12) !important;
}

body.admin-forum-announcements-page .admin-v2-workspace {
  position: relative;
  z-index: 1;
}

.admin-forum-ann-content {
  max-width: 52rem;
}

.admin-forum-ann-page-title {
  font-size: 1.55rem;
  font-weight: 700;
  color: #f1f5f9;
  letter-spacing: 0.02em;
}

.admin-forum-ann-flash {
  border-radius: 12px;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25);
}

.admin-forum-ann-panel {
  border-radius: 16px;
  padding: 1.25rem 1.35rem 1.5rem;
  background: linear-gradient(165deg, rgba(22, 28, 42, 0.88) 0%, rgba(12, 16, 26, 0.94) 100%);
  border: 1px solid rgba(125, 211, 252, 0.18);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35) inset,
    0 18px 48px rgba(0, 0, 0, 0.35);
}

.admin-forum-ann-panel-title {
  font-size: 1rem;
  font-weight: 600;
  color: #e2e8f0;
  margin-bottom: 1rem;
}

.admin-forum-ann-form .form-label {
  color: rgba(226, 232, 240, 0.9);
  font-size: 0.88rem;
}

.admin-forum-ann-input {
  background: rgba(15, 23, 42, 0.65) !important;
  border: 1px solid rgba(148, 163, 184, 0.28) !important;
  color: #f8fafc !important;
  border-radius: 10px;
}

.admin-forum-ann-input:focus {
  border-color: rgba(56, 189, 248, 0.45) !important;
  box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.12);
}

/* 无工具栏：仅编辑区 */
.admin-forum-ann-quill {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(148, 163, 184, 0.25);
}

.admin-forum-ann-quill .ql-toolbar {
  display: none !important;
}

.admin-forum-ann-quill .ql-container.ql-snow {
  border: none;
  background: rgba(10, 14, 24, 0.75);
  min-height: 220px;
  font-size: 0.95rem;
  color: #e2e8f0;
}

.admin-forum-ann-quill .ql-editor.ql-blank::before {
  color: rgba(148, 163, 184, 0.65);
  font-style: normal;
}

.admin-forum-ann-quill .ql-editor a {
  color: #7dd3fc;
}

.admin-forum-ann-list-heading {
  font-size: 1rem;
  font-weight: 600;
  color: #e2e8f0;
}

.admin-forum-ann-empty {
  color: rgba(196, 204, 216, 0.85);
  font-size: 0.9rem;
  padding: 1.5rem;
  text-align: center;
  border-radius: 14px;
  border: 1px dashed rgba(148, 163, 184, 0.25);
}

/* ---------- 公告管理：已有公告列表卡片 ---------- */
.admin-forum-ann-cardlist {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.admin-forum-ann-card {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  padding: 1rem 1.15rem;
  border-radius: 14px;
  background: rgba(22, 28, 42, 0.72);
  border: 1px solid rgba(148, 163, 184, 0.18);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.admin-forum-ann-card:hover {
  border-color: rgba(56, 189, 248, 0.28);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.22);
}

.admin-forum-ann-card-main {
  min-width: 0;
  flex: 1 1 12rem;
}

.admin-forum-ann-card-title {
  font-weight: 600;
  color: #f1f5f9;
  font-size: 0.95rem;
}

.admin-forum-ann-card-preview {
  font-size: 0.82rem;
  color: rgba(196, 204, 216, 0.88);
  margin-top: 0.35rem;
  line-height: 1.45;
}

.admin-forum-ann-card-meta {
  font-size: 0.75rem;
  color: rgba(148, 163, 184, 0.9);
  margin-top: 0.5rem;
}

.admin-forum-ann-card-dot {
  opacity: 0.55;
  margin: 0 0.28rem;
}

.admin-forum-ann-card-actions {
  flex: 0 0 auto;
}

/* ---------- 论坛信息流：浅色微光白底卡片（与全站暗底对比） ---------- */
.forum-page--feed {
  max-width: 42rem;
}

.forum-feed-card {
  margin-bottom: 1.15rem;
}

.forum-feed-card-inner {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 14px;
  padding: 1.1rem 1.2rem 1.15rem;
  background:
    radial-gradient(ellipse 100% 85% at 88% 8%, rgba(56, 189, 248, 0.14) 0%, transparent 52%),
    radial-gradient(ellipse 90% 75% at 6% 92%, rgba(129, 140, 248, 0.1) 0%, transparent 48%),
    radial-gradient(ellipse 55% 42% at 48% 0%, rgba(255, 255, 255, 0.95) 0%, transparent 55%),
    linear-gradient(168deg, #f8fafc 0%, #ffffff 42%, #f1f5f9 100%);
  border: 1px solid rgba(148, 163, 184, 0.38);
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 1px 2px rgba(15, 23, 42, 0.06),
    0 10px 32px rgba(15, 23, 42, 0.1);
}

.forum-feed-card-inner::before {
  content: "";
  position: absolute;
  inset: -40% -60%;
  background: linear-gradient(
    118deg,
    transparent 0%,
    transparent 36%,
    rgba(56, 189, 248, 0.08) 45%,
    rgba(255, 255, 255, 0.55) 50%,
    rgba(167, 139, 250, 0.06) 55%,
    transparent 64%,
    transparent 100%
  );
  transform: translateX(-18%) rotate(12deg);
  animation: forum-feed-card-sheen 11s ease-in-out infinite;
  pointer-events: none;
  z-index: 0;
  opacity: 0.55;
}

.forum-feed-card-inner > * {
  position: relative;
  z-index: 1;
}

@keyframes forum-feed-card-sheen {
  0%,
  100% {
    transform: translateX(-18%) rotate(12deg);
    opacity: 0.4;
  }
  50% {
    transform: translateX(14%) rotate(12deg);
    opacity: 0.65;
  }
}

@media (prefers-reduced-motion: reduce) {
  .forum-feed-card-inner::before {
    animation: none;
    transform: translateX(0) rotate(12deg);
    opacity: 0.35;
  }
}

.forum-feed-head {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 0.85rem;
}

.forum-feed-avatar {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: linear-gradient(135deg, #6366f1, #0ea5e9);
  color: #fff;
  font-weight: 700;
  font-size: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(99, 102, 241, 0.35);
}

.forum-feed-head-text {
  flex: 1;
  min-width: 0;
}

.forum-feed-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}

.forum-feed-title {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.35;
  margin: 0;
  letter-spacing: 0.01em;
}

.forum-feed-time {
  flex-shrink: 0;
  font-size: 0.78rem;
  color: #64748b;
  white-space: nowrap;
  margin-top: 0.12rem;
}

.forum-feed-sub {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.4rem 0.6rem;
  margin-top: 0.35rem;
}

.forum-feed-badge {
  display: inline-block;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  color: #0f172a;
  background: linear-gradient(92deg, #38bdf8, #818cf8);
}

.forum-feed-author {
  font-size: 0.8rem;
  color: #64748b;
}

.forum-feed-body {
  font-size: 0.9rem;
  line-height: 1.65;
  color: #475569;
  word-break: break-word;
}

.forum-feed-body p {
  margin-bottom: 0.65rem;
}

.forum-feed-body p:last-child {
  margin-bottom: 0;
}

.forum-feed-body a {
  color: #0284c7;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.forum-feed-body-img {
  display: inline-block;
  max-width: 100%;
  height: auto;
  border-radius: 10px;
  margin: 0.35rem 0.35rem 0.35rem 0;
  vertical-align: middle;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.12);
}

.forum-feed-stats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem 1rem;
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(148, 163, 184, 0.35);
  color: #64748b;
}

.forum-feed-stat {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  font-size: 0.78rem;
  color: #64748b;
}

.forum-feed-stat--static {
  cursor: default;
}

.forum-feed-stat--action {
  margin: 0;
  padding: 0.15rem 0.35rem;
  border: none;
  border-radius: 8px;
  background: transparent;
  font: inherit;
  color: #64748b;
  opacity: 1;
  cursor: pointer;
  transition: color 0.18s ease, background 0.18s ease;
}

.forum-feed-stat--action .forum-feed-stat-ico {
  opacity: 0.9;
  color: #64748b;
}

.forum-feed-stat--action:hover {
  color: #0284c7;
  background: rgba(14, 165, 233, 0.1);
}

.forum-feed-stat--action:focus-visible {
  outline: 2px solid rgba(14, 165, 233, 0.45);
  outline-offset: 2px;
}

.forum-feed-card--comments-open .forum-feed-stat--action {
  color: #0369a1;
  background: rgba(14, 165, 233, 0.12);
}

.forum-feed-stat-ico {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  opacity: 0.85;
}

.forum-comments-panel {
  outline: none;
}

.forum-comments-panel:not([hidden]) {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(148, 163, 184, 0.35);
}

.forum-comments-panel .forum-comments--feed {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.forum-comments--feed {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(148, 163, 184, 0.35);
}

.forum-comments-title {
  font-size: 0.88rem;
  font-weight: 600;
  color: #0f172a;
  margin-bottom: 0.65rem;
}

.forum-comments-count {
  font-weight: 500;
  color: #64748b;
}

.forum-comments-empty {
  font-size: 0.82rem;
  color: #64748b;
  margin-bottom: 0.75rem;
}

.forum-comments--feed .forum-comment-item {
  padding-bottom: 0.75rem;
  margin-bottom: 0.75rem;
  border-bottom: 1px solid rgba(148, 163, 184, 0.28);
}

.forum-comments--feed .forum-comment-item:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.forum-comment-item--thread {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
}

.forum-comment-avatar--sm {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  border-radius: 6px;
  background: linear-gradient(135deg, #6366f1, #0ea5e9);
  color: #fff;
  font-weight: 700;
  font-size: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 6px rgba(99, 102, 241, 0.3);
}

.forum-comment-thread-main {
  flex: 1;
  min-width: 0;
}

.forum-comment-thread-top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.6rem;
  margin-bottom: 0.35rem;
}

.forum-comments--feed .forum-comment-author {
  font-size: 0.8rem;
  font-weight: 600;
  color: #0369a1;
}

.forum-comment-floor {
  font-size: 0.68rem;
  color: #64748b;
}

.forum-comments--feed .forum-comment-time {
  font-size: 0.68rem;
  color: #64748b;
  white-space: nowrap;
  margin-left: auto;
}

.forum-comments--feed .forum-comment-meta {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
}

.forum-comments--feed .forum-comment-body {
  font-size: 0.82rem;
  color: #475569;
  line-height: 1.55;
}

.forum-comments--feed .forum-comment-form {
  margin-top: 0.85rem;
}

.forum-comments--feed .forum-comment-input {
  background: #ffffff !important;
  border: 1px solid rgba(148, 163, 184, 0.55) !important;
  color: #0f172a !important;
  border-radius: 10px;
  font-size: 0.88rem;
}

.forum-comments--feed .forum-comment-submit {
  margin-top: 0.5rem;
}

.forum-comments--feed .forum-comments-login-hint {
  font-size: 0.82rem;
  color: #64748b;
  margin-top: 0.75rem;
}

.forum-comments--feed .forum-comments-login-hint .link-primary {
  color: #2563eb;
}

.forum-comments--feed .forum-comments-login-hint .link-primary:hover {
  color: #1d4ed8;
}

/* ---------- 会员中心 / 首页档位拦截 ---------- */
.home-entry-membership-gate {
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
}

/* 避免系统/主题给 button 加默认描边，盖住自定义边缘光 */
.home-entry-membership-gate.home-entry-card {
  border-style: solid;
}

.membership-gate-dialog {
  max-width: min(640px, calc(100vw - 1.5rem));
  width: calc(100% - 1.5rem);
  border: none;
  border-radius: 18px;
  padding: 0;
  background: linear-gradient(155deg, #1b2438 0%, #121a2c 48%, #0f1624 100%);
  color: #e2e8f0;
  box-shadow: 0 28px 56px rgba(0, 0, 0, 0.58);
}

.membership-gate-dialog::backdrop {
  background: rgba(2, 6, 23, 0.72);
}

.membership-gate-dialog-inner {
  padding: 1.35rem 1.35rem 1.45rem;
}

.membership-gate-dialog-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 0.65rem;
}

.membership-gate-dialog-title {
  font-size: 1.1rem;
  font-weight: 700;
  color: #f1f5f9;
  margin: 0;
  letter-spacing: 0.02em;
}

.membership-gate-dialog-close {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: rgba(15, 23, 42, 0.5);
  color: #cbd5e1;
  font-size: 1.25rem;
  line-height: 1;
  cursor: pointer;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.membership-gate-dialog-close:hover {
  background: rgba(30, 41, 59, 0.75);
  border-color: rgba(148, 163, 184, 0.5);
  color: #f8fafc;
}

.membership-gate-dialog-close:focus-visible {
  outline: 2px solid #38bdf8;
  outline-offset: 2px;
}

.membership-gate-dialog-lead {
  line-height: 1.55;
  margin-bottom: 1.1rem !important;
}

.membership-gate-tier-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-bottom: 1.15rem;
}

@media (max-width: 520px) {
  .membership-gate-tier-grid {
    grid-template-columns: 1fr;
  }
}

.membership-gate-pick--card {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 100%;
  margin: 0;
  padding: 1rem 0.75rem 1.05rem;
  border-radius: 14px;
  border: 1px solid rgba(148, 163, 184, 0.22);
  cursor: pointer;
  font: inherit;
  color: inherit;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.membership-gate-pick--gold {
  background: linear-gradient(168deg, rgba(55, 48, 26, 0.55) 0%, rgba(15, 23, 42, 0.92) 42%, rgba(30, 27, 20, 0.88) 100%);
  border-color: rgba(212, 175, 55, 0.35);
}

.membership-gate-pick--diamond {
  background: linear-gradient(168deg, rgba(36, 40, 62, 0.6) 0%, rgba(15, 23, 42, 0.94) 45%, rgba(24, 28, 48, 0.9) 100%);
  border-color: rgba(129, 140, 248, 0.38);
}

.membership-gate-pick--card:hover {
  border-color: rgba(148, 163, 184, 0.45);
}

.membership-gate-pick--gold:hover {
  border-color: rgba(251, 191, 36, 0.55);
}

.membership-gate-pick--diamond:hover {
  border-color: rgba(165, 180, 252, 0.55);
}

.membership-gate-pick--gold.active {
  border-color: rgba(251, 191, 36, 0.85);
  box-shadow: 0 0 0 1px rgba(251, 191, 36, 0.35), 0 12px 28px rgba(0, 0, 0, 0.35);
}

.membership-gate-pick--diamond.active {
  border-color: rgba(165, 180, 252, 0.9);
  box-shadow: 0 0 0 1px rgba(129, 140, 248, 0.4), 0 12px 28px rgba(0, 0, 0, 0.35);
}

.membership-gate-pick--card:focus-visible {
  outline: 2px solid #38bdf8;
  outline-offset: 2px;
}

.membership-gate-pick-icon {
  width: 2.65rem;
  height: 2.65rem;
  border-radius: 11px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.65rem;
  background: rgba(15, 23, 42, 0.65);
}

.membership-gate-pick--gold .membership-gate-pick-icon {
  color: #fbbf24;
}

.membership-gate-pick--diamond .membership-gate-pick-icon {
  color: #a5b4fc;
}

.membership-gate-pick-title {
  display: block;
  font-size: 1.02rem;
  font-weight: 700;
  color: #f8fafc;
  margin-bottom: 0.4rem;
}

.membership-gate-pick--gold .membership-gate-pick-title {
  color: #fde68a;
}

.membership-gate-pick--diamond .membership-gate-pick-title {
  color: #e0e7ff;
}

.membership-gate-pick-desc {
  display: block;
  font-size: 0.72rem;
  line-height: 1.5;
  color: #94a3b8;
  max-width: 15rem;
  margin: 0 auto;
}

@media (prefers-reduced-motion: reduce) {
  .membership-gate-pick--card,
  .membership-gate-dialog-close {
    transition: none;
  }
}

.membership-gate-dialog-cta {
  display: flex;
  justify-content: center;
  padding-top: 0.15rem;
}

.membership-gate-recharge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: min(100%, 280px);
  padding: 0.65rem 1.5rem;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.95rem;
  text-decoration: none;
  color: #0f172a;
  background: linear-gradient(92deg, #fde68a, #fbbf24 45%, #f59e0b);
  border: none;
  box-shadow: 0 8px 22px rgba(245, 158, 11, 0.38);
  cursor: pointer;
  transition: filter 0.2s ease, box-shadow 0.2s ease;
}

.membership-gate-recharge:hover {
  filter: brightness(1.05);
  color: #0f172a;
}

.membership-gate-recharge:focus-visible {
  outline: 2px solid #fef08a;
  outline-offset: 3px;
}

.membership-page {
  max-width: 960px;
  padding: 1rem 0 2.5rem;
}

.membership-tier-row {
  align-items: stretch;
}

.membership-card {
  position: relative;
  border-radius: 16px;
  padding: 1.35rem 1.25rem 1.4rem;
  border: 1px solid rgba(148, 163, 184, 0.25);
  background: linear-gradient(168deg, rgba(30, 41, 59, 0.95) 0%, rgba(15, 23, 42, 0.98) 55%, rgba(22, 28, 45, 0.96) 100%);
  box-shadow: 0 10px 32px rgba(0, 0, 0, 0.28);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.membership-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
}

.membership-card--highlight {
  border-color: rgba(56, 189, 248, 0.55);
  box-shadow: 0 0 0 1px rgba(56, 189, 248, 0.25), 0 16px 44px rgba(0, 0, 0, 0.38);
}

.membership-card--gold {
  border-color: rgba(212, 175, 55, 0.45);
  background: linear-gradient(168deg, rgba(45, 36, 20, 0.92) 0%, rgba(15, 23, 42, 0.97) 50%, rgba(30, 27, 18, 0.9) 100%);
}

.membership-card--diamond {
  border-color: rgba(129, 140, 248, 0.5);
  background: linear-gradient(168deg, rgba(24, 28, 48, 0.95) 0%, rgba(15, 23, 42, 0.98) 45%, rgba(20, 24, 42, 0.94) 100%);
}

.membership-card--normal {
  border-color: rgba(148, 163, 184, 0.22);
}

.membership-card-badge {
  position: absolute;
  top: -10px;
  right: 14px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  background: linear-gradient(92deg, #f472b6, #a78bfa);
  color: #0f172a;
}

.membership-card-icon {
  width: 3rem;
  height: 3rem;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.85rem;
  background: rgba(15, 23, 42, 0.55);
  color: #94a3b8;
}

.membership-card--gold .membership-card-icon {
  color: #fbbf24;
}

.membership-card--diamond .membership-card-icon {
  color: #a5b4fc;
}

.membership-card-title {
  font-size: 1.2rem;
  font-weight: 700;
  color: #f8fafc;
  margin: 0 0 0.35rem;
}

.membership-card-title--sm {
  font-size: 1.05rem;
}

.membership-card-desc {
  font-size: 0.82rem;
  color: #94a3b8;
  margin: 0 0 0.75rem;
}

.membership-card-price {
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #fde68a;
}

.membership-card-price--diamond {
  color: #e0e7ff;
}

.membership-card-price-unit {
  font-size: 0.72rem;
  font-weight: 600;
  color: #94a3b8;
  margin-left: 0.15rem;
}

.header-nav-user-stats {
  white-space: nowrap;
}

.header-nav-stat-sep {
  display: inline-block;
  color: rgba(148, 163, 184, 0.45);
  padding: 0 0.2rem;
  user-select: none;
}

.wallet-recharge-page {
  max-width: 920px;
  padding: 0.5rem 0 2rem;
}

.wallet-qr-img {
  max-width: 260px;
  height: auto;
  background: #fff;
}

/* 与暗色「复制支付链接」(btn-outline-secondary) 默认/悬停一致，含微光 box-shadow */
.wallet-recharge-page .btn-wallet-xunhu-open,
.wallet-recharge-page .btn-wallet-xunhu-refresh {
  color: #cbd5e1 !important;
  border: 1px solid rgba(148, 163, 184, 0.45);
  background: rgba(15, 23, 42, 0.35);
  border-radius: 0.375rem;
  font-weight: 500;
  text-decoration: none;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease, box-shadow 0.2s ease;
}

.wallet-recharge-page .btn-wallet-xunhu-open:hover,
.wallet-recharge-page .btn-wallet-xunhu-open:focus-visible,
.wallet-recharge-page .btn-wallet-xunhu-refresh:hover,
.wallet-recharge-page .btn-wallet-xunhu-refresh:focus-visible {
  color: #f8fafc !important;
  border-color: rgba(226, 232, 240, 0.55);
  background: rgba(51, 65, 85, 0.45);
  box-shadow: 0 0 18px rgba(148, 163, 184, 0.15);
}

.wallet-recharge-page a.btn-wallet-xunhu-open:hover,
.wallet-recharge-page a.btn-wallet-xunhu-open:focus-visible {
  text-decoration: none;
}

.wallet-xunhu-qr-wrap.wallet-qr-expired .wallet-qr-img {
  filter: grayscale(1);
  opacity: 0.38;
  transition: filter 0.35s ease, opacity 0.35s ease;
}

.wallet-xunhu-qr-wrap .wallet-qr-expired-overlay {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-width: 220px;
  padding: 0.65rem 0.85rem;
  font-size: 0.8rem;
  line-height: 1.35;
  text-align: center;
  color: #f1f5f9;
  background: rgba(15, 23, 42, 0.88);
  border: 1px solid rgba(148, 163, 184, 0.35);
  border-radius: 0.5rem;
  pointer-events: none;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}

.membership-card-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.membership-card-list li {
  position: relative;
  padding-left: 1rem;
  margin-bottom: 0.35rem;
}

.membership-card-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.45em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #38bdf8;
}

.membership-recharge-bar .membership-recharge-btn {
  border-radius: 999px;
  background: linear-gradient(92deg, #fbbf24, #f59e0b);
  border: none;
  color: #0f172a;
  font-weight: 700;
  box-shadow: 0 8px 24px rgba(245, 158, 11, 0.35);
}

.membership-recharge-bar .membership-recharge-btn:hover {
  filter: brightness(1.06);
  color: #0f172a;
}

.membership-recharge-bar .membership-recharge-btn--diamond {
  background: linear-gradient(92deg, #c4b5fd, #818cf8 45%, #6366f1);
  box-shadow: 0 8px 24px rgba(99, 102, 241, 0.35);
}

.membership-recharge-bar .membership-recharge-btn--diamond:hover {
  color: #0f172a;
}

.wallet-recharge-tier-hero {
  border: 1px solid rgba(148, 163, 184, 0.22);
  background: linear-gradient(168deg, rgba(30, 41, 59, 0.75) 0%, rgba(15, 23, 42, 0.95) 100%);
}

.wallet-recharge-amount-num {
  font-size: clamp(2.25rem, 6vw, 3.25rem);
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #fde68a;
}

.wallet-recharge-amount-yuan {
  font-size: 1.15rem;
  font-weight: 600;
  color: #94a3b8;
  margin-left: 0.2rem;
}

.wallet-recharge-steps li {
  margin-bottom: 0.35rem;
}
