/* ============================================================
   Saotheme - Comprehensive Beautification
   全站美化 | 手机底部菜单交互 | PC右侧联系栏
   Version: 1.0
   ============================================================ */

/* ============================================================
   0a. 实物商品角标
   ============================================================ */
.physical-badge {
  position: absolute;
  top: 12px;
  right: -32px;
  z-index: 5;
  display: block;
  padding: 3px 40px;
  background: linear-gradient(135deg, #ff6b35, #ff4757);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 1px;
  text-align: center;
  transform: rotate(45deg);
  box-shadow: 0 2px 8px rgba(255, 107, 53, 0.4);
  pointer-events: none;
}

/* ============================================================
   0b. Notification Popup — 全站公告弹窗 Premium Redesign
   高特异性覆盖 main.min.css 基础样式
   ============================================================ */

/* === 蒙层 — 覆盖 main.min.css 的 z-index:90 和过深背景 === */
body .ri-popup,
body .ri-popup-open .ri-popup {
  z-index: 10001 !important;
}
.dimmer,
body .dimmer,
body .ri-popup-open ~ .dimmer {
  z-index: 10000 !important;
  background: rgba(15,23,42,.45) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
}

/* Popup backdrop */
body .ri-popup {
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
}

/* Popup body — 通用（非登录弹窗） */
body .ri-popup .ri-popup-body {
  width: 560px !important;
  max-width: 560px !important;
  border-radius: 20px !important;
  overflow: hidden !important;
  box-shadow: 0 25px 80px rgba(0,0,0,.25), 0 0 0 1px rgba(0,0,0,.06) !important;
  border: none !important;
  max-height: 85vh !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  /* 覆盖 main.min.css 的 transform 动画偏移 */
  transform: none !important;
  -webkit-transform: none !important;
}
body .ri-popup-open .ri-popup .ri-popup-body {
  transform: none !important;
  -webkit-transform: none !important;
}
@media (max-width: 575.98px) {
  body .ri-popup .ri-popup-body {
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
    max-height: 80vh !important;
  }
}

/* Close button — 覆盖 main.min.css 底部居中样式，改为右上角 */
body .ri-popup .ri-popup-close,
body .ri-popup-open .ri-popup .ri-popup-close {
  position: absolute !important;
  top: 16px !important;
  right: 20px !important;
  left: auto !important;
  bottom: auto !important;
  width: 36px !important;
  height: 36px !important;
  z-index: 999 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 50% !important;
  background: rgba(255,255,255,.1) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
  transition: all 0.25s ease !important;
  cursor: pointer !important;
  text-align: center !important;
  transform: none !important;
  -webkit-transform: none !important;
}
body .ri-popup .ri-popup-close:hover {
  background: rgba(255,255,255,.2) !important;
  transform: rotate(90deg) !important;
}
body .ri-popup .ri-popup-close .svg-close {
  display: inline-block !important;
  width: 14px !important;
  height: 14px !important;
  background-size: 14px 14px !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  vertical-align: middle !important;
  /* SVG 图标颜色在深色背景上需要变亮 */
  filter: brightness(0) invert(1) !important;
  opacity: .7;
}
body .ri-popup .ri-popup-close:hover .svg-close {
  opacity: 1;
}

/* Content area — 覆盖 main.min.css 的白色背景和 padding */
body .ri-popup .ri-popup-content,
body .ri-popup-open .ri-popup .ri-popup-content {
  padding: 0 !important;
  background: transparent !important;
  overflow-y: auto !important;
  flex: 1 !important;
  border-radius: 20px !important;
}

/* --- 公告卡片 — Premium v2: 暗黑一体 · 粒子 · 左右布局 --- */
.ri-notify-card {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  background: #0f172a;
}

/* === 头部 — 紧凑 + 左右布局 === */
.ri-notify-header {
  position: relative;
  padding: 22px 28px 18px;
  background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #0f172a 100%);
  overflow: hidden;
}

/* 粒子画布 */
.ri-notify-particles {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
  pointer-events: none;
}

/* 装饰光圈 */
.ri-notify-deco-ring {
  position: absolute;
  top: -40px; right: -40px;
  width: 160px; height: 160px;
  border: 1px solid rgba(56,189,248,.08);
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
  animation: riNRing 20s linear infinite;
}
.ri-notify-deco-ring::after {
  content: '';
  position: absolute;
  top: 20px; left: 20px; right: 20px; bottom: 20px;
  border: 1px solid rgba(56,189,248,.05);
  border-radius: 50%;
}
@keyframes riNRing { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* 氛围光 */
.ri-notify-deco-glow {
  position: absolute;
  bottom: -30px; left: 30%;
  width: 200px; height: 80px;
  background: radial-gradient(ellipse, rgba(56,189,248,.08), transparent 70%);
  pointer-events: none;
  z-index: 0;
  animation: riNGlow 6s ease-in-out infinite;
}
@keyframes riNGlow { 0%,100% { opacity: .6; transform: translateX(0); } 50% { opacity: 1; transform: translateX(20px); } }

/* 头部内容 — 左右排列 */
.ri-notify-header-row {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: 16px;
}

/* 图标盒 */
.ri-notify-icon-box {
  position: relative;
  flex-shrink: 0;
  width: 44px; height: 44px;
  border-radius: 13px;
  background: linear-gradient(135deg, rgba(56,189,248,.15), rgba(56,189,248,.05));
  border: 1px solid rgba(56,189,248,.12);
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(8px);
}
.ri-notify-icon-box svg { width: 24px; height: 24px; }
/* 脉冲点 */
.ri-notify-icon-ping {
  position: absolute;
  top: -3px; right: -3px;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: #f59e0b;
  border: 2px solid #0f172a;
  animation: riNPing 2s ease-in-out infinite;
}
@keyframes riNPing { 0%,100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.3); opacity: .7; } }

/* 标题文字 */
.ri-notify-header-text { flex: 1; min-width: 0; }
.ri-notify-title {
  font-size: 17px !important;
  font-weight: 700 !important;
  color: #f1f5f9 !important;
  margin: 0 0 3px !important;
  letter-spacing: .3px;
  line-height: 1.3;
}
.ri-notify-sub {
  font-size: 12px;
  color: rgba(148,163,184,.7);
  margin: 0;
  font-weight: 500;
}

/* === 内容区 — 与头部统一暗底 === */
.ri-notify-body {
  padding: 20px 28px;
  background: #0f172a;
  position: relative;
}
.ri-notify-body::before {
  content: '';
  position: absolute;
  top: 0; left: 28px; right: 28px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(56,189,248,.1), transparent);
}
.ri-notify-desc {
  font-size: 14px !important;
  line-height: 1.8 !important;
  color: #cbd5e1 !important;
  word-break: break-word;
}
.ri-notify-desc p { margin-bottom: 12px; }
.ri-notify-desc p:last-child { margin-bottom: 0; }
.ri-notify-desc a {
  color: #38bdf8 !important;
  text-decoration: none;
  font-weight: 500;
  border-bottom: 1px solid rgba(56,189,248,.2);
  transition: all .2s;
}
.ri-notify-desc a:hover { color: #7dd3fc !important; border-bottom-color: #7dd3fc; }
.ri-notify-desc img { max-width: 100%; border-radius: 10px; margin: 8px 0; }
.ri-notify-desc blockquote {
  border-left: 3px solid rgba(56,189,248,.3);
  background: rgba(56,189,248,.04);
  padding: 12px 16px;
  border-radius: 0 10px 10px 0;
  margin: 12px 0;
  font-style: italic;
  color: #94a3b8;
}
.ri-notify-desc ul, .ri-notify-desc ol { padding-left: 20px; margin-bottom: 12px; }
.ri-notify-desc li { margin-bottom: 4px; }
.ri-notify-desc code {
  background: rgba(56,189,248,.08);
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 13px;
  color: #7dd3fc;
}

/* === 底部 — 有存在感 === */
.ri-notify-footer {
  padding: 14px 28px;
  background: #0c1322;
  border-top: 1px solid rgba(56,189,248,.06);
}
.ri-notify-footer-inner {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ri-notify-footer-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #22c55e;
  box-shadow: 0 0 8px rgba(34,197,94,.4);
  animation: riNFDot 2s ease-in-out infinite;
}
@keyframes riNFDot { 0%,100% { opacity: 1; } 50% { opacity: .5; } }
.ri-notify-footer-text {
  font-size: 12px;
  color: rgba(148,163,184,.5);
  font-weight: 500;
  letter-spacing: .3px;
}

/* 暗黑模式 — 公告弹窗（高特异性覆盖 main.min.css） */
body [data-bs-theme=dark] .ri-popup .ri-popup-body { background: #0f172a !important; box-shadow: 0 25px 80px rgba(0,0,0,.5) !important; }
body [data-bs-theme=dark] .ri-popup .ri-popup-close { background: rgba(255,255,255,.08) !important; }
body [data-bs-theme=dark] .ri-popup .ri-popup-close:hover { background: rgba(255,255,255,.15) !important; }
/* 亮色模式下弹窗底色也要匹配卡片暗底 */
body .ri-popup .ri-popup-body { background: #0f172a !important; }
/* 覆盖 main.min.css 的弹窗内容背景 */
body [data-bs-theme=dark] .ri-popup .ri-popup-content { background: #0f172a !important; }
body .ri-popup .ri-popup-content { background: #0f172a !important; }


/* ============================================================
   0b. User Dropdown Hover — 毛玻璃样式由 template-filter.php 内联输出
   ============================================================ */


/* ============================================================
   0. Full-screen Search Modal
   ============================================================ */
.fullscreen-search {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0);
  backdrop-filter: blur(0px);
  -webkit-backdrop-filter: blur(0px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.fullscreen-search.is-active {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  background: rgba(0, 0, 0, 0.6);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

/* Close button */
.fullscreen-search-close {
  position: absolute;
  top: 24px;
  right: 32px;
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.1);
  color: #fff;
  font-size: 20px;
  cursor: pointer;
  transition: all 0.3s ease;
  z-index: 10;
}
.fullscreen-search-close:hover {
  background: rgba(255, 255, 255, 0.2);
  transform: rotate(90deg);
}

/* Inner content */
.fullscreen-search-inner {
  text-align: center;
  width: 100%;
  max-width: 680px;
  padding: 0 24px;
  transform: translateY(30px) scale(0.95);
  transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.fullscreen-search.is-active .fullscreen-search-inner {
  transform: translateY(0) scale(1);
}

/* Search icon */
.fullscreen-search-icon {
  margin-bottom: 16px;
}
.fullscreen-search-icon i {
  font-size: 42px;
  color: rgba(255, 255, 255, 0.6);
  animation: search-icon-pulse 2s ease-in-out infinite;
}
@keyframes search-icon-pulse {
  0%, 100% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.08); }
}

/* Title */
.fullscreen-search-title {
  color: #fff;
  font-size: 1.4rem;
  font-weight: 600;
  margin-bottom: 28px;
  letter-spacing: 0.5px;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.3);
}

/* Search form container */
.fullscreen-search-form .search-form {
  background: rgba(255, 255, 255, 0.95) !important;
  border-radius: 60px !important;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.25) !important;
  border: 2px solid transparent !important;
  max-width: 100%;
  overflow: hidden;
}
.fullscreen-search-form .search-form:focus-within {
  border-color: rgba(255, 255, 255, 0.5) !important;
  box-shadow: 0 8px 40px rgba(0, 0, 0, 0.25), 0 0 0 4px rgba(255, 255, 255, 0.15) !important;
}
.fullscreen-search-form .search-form .search-fields input {
  font-size: 1.1rem;
  padding: 16px 24px !important;
  color: #191a1f;
}
.fullscreen-search-form .search-form .search-fields input::placeholder {
  color: #999;
}
.fullscreen-search-form .search-form .search-fields button {
  padding: 0 24px !important;
  font-size: 1.1rem;
  color: #666;
}
.fullscreen-search-form .search-form .search-fields button:hover {
  color: var(--ri-accent) !important;
}
.fullscreen-search-form .search-form .search-select .form-select {
  font-size: 1rem;
  padding: 16px 20px !important;
  color: #555;
  border-right: 1px solid #eee;
}
.fullscreen-search-form .search-form .search-select {
  border-right: 1px solid #eee;
}

/* Hot tags */
.fullscreen-search-tags {
  margin-top: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
}
.search-hot-label {
  color: rgba(255, 255, 255, 0.6);
  font-size: 13px;
  margin-right: 4px;
}
.search-hot-label i {
  color: #ff6b35;
}
.search-hot-tag {
  display: inline-block;
  padding: 6px 16px;
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.85);
  border-radius: 50px;
  font-size: 13px;
  font-weight: 500;
  transition: all 0.25s ease;
  text-decoration: none;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
.search-hot-tag:hover {
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
}

/* Dark mode */
[data-bs-theme=dark] .fullscreen-search-form .search-form {
  background: rgba(25, 27, 29, 0.95) !important;
}
[data-bs-theme=dark] .fullscreen-search-form .search-form .search-fields input {
  color: #e0e0e0;
}
[data-bs-theme=dark] .fullscreen-search-form .search-form .search-fields input::placeholder {
  color: #666;
}
[data-bs-theme=dark] .fullscreen-search-form .search-form .search-fields button {
  color: #888;
}
[data-bs-theme=dark] .fullscreen-search-form .search-form .search-select .form-select {
  color: #aaa;
  border-right-color: #333;
}
[data-bs-theme=dark] .fullscreen-search-form .search-form .search-select {
  border-right-color: #333;
}

/* Responsive */
@media (max-width: 575.98px) {
  .fullscreen-search-title {
    font-size: 1.1rem;
    margin-bottom: 20px;
  }
  .fullscreen-search-icon i {
    font-size: 32px;
  }
  .fullscreen-search-close {
    top: 16px;
    right: 16px;
    width: 40px;
    height: 40px;
    font-size: 16px;
  }
  .fullscreen-search-form .search-form .search-fields input {
    font-size: 1rem;
    padding: 14px 16px !important;
  }
  .fullscreen-search-form .search-form .search-fields button {
    padding: 0 16px !important;
  }
  .fullscreen-search-tags {
    margin-top: 20px;
    gap: 6px;
  }
  .search-hot-tag {
    padding: 5px 12px;
    font-size: 12px;
  }
}


/* ============================================================
   1. CSS Variables & Global
   ============================================================ */
:root {
  --ri-accent: #2163e8;
  --ri-accent-hover: #1a4fc0;
  --ri-accent-light: rgba(33, 99, 232, 0.08);
  --ri-accent-gradient: linear-gradient(135deg, #2163e8 0%, #7c3aed 100%);
  --ri-success: #0cbc87;
  --ri-danger: #d6293e;
  --ri-warning: #ff9800;
  --ri-info: #03a9f4;
  --ri-body-bg: #f5f6fa;
  --ri-card-bg: #ffffff;
  --ri-card-radius: 10px;
  --ri-card-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 4px 12px rgba(0,0,0,0.04);
  --ri-card-shadow-hover: 0 4px 12px rgba(0,0,0,0.06), 0 12px 32px rgba(0,0,0,0.08);
  --ri-border-color: rgba(0,0,0,0.06);
  --ri-text-primary: #191a1f;
  --ri-text-secondary: #595d69;
  --ri-text-muted: #a1a1a8;
  --ri-radius-sm: 6px;
  --ri-radius: 10px;
  --ri-radius-lg: 14px;
  --ri-radius-xl: 20px;
  --ri-transition-fast: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  --ri-transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --ri-transition-slow: 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Selection */
::selection {
  background-color: rgba(33, 99, 232, 0.15);
  color: inherit;
}

/* Scrollbar */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #ccc, #aaa);
  border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, #aaa, #888); }

/* Smooth anchor */
html { scroll-behavior: smooth; }

/* Links */
a { transition: color var(--ri-transition-fast), opacity var(--ri-transition-fast); }


/* ============================================================
   2. Header & Navigation
   ============================================================ */
.site-header {
  backdrop-filter: saturate(180%) blur(14px) !important;
  -webkit-backdrop-filter: saturate(180%) blur(14px) !important;
  background-color: rgba(255,255,255,0.85) !important;
  border-bottom: 1px solid var(--ri-border-color);
  box-shadow: 0 1px 8px rgba(0,0,0,0.04) !important;
  will-change: transform;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

/* Nav items */
.navbar .nav-list > .menu-item > a {
  position: relative;
  font-weight: 500;
  transition: color var(--ri-transition-fast);
}
.navbar .nav-list > .menu-item > a::after {
  content: '';
  position: absolute;
  bottom: 12px;
  left: 50%;
  width: 0;
  height: 2.5px;
  background: var(--ri-accent-gradient);
  border-radius: 2px;
  transition: width 0.3s ease, left 0.3s ease;
}
.navbar .nav-list > .menu-item > a:hover::after,
.navbar .nav-list > .menu-item.current-menu-item > a::after {
  width: 60%;
  left: 20%;
}
.navbar .nav-list > .menu-item.current-menu-item > a {
  color: var(--ri-accent) !important;
}

/* Sub-menu */
.navbar .nav-list .sub-menu {
  border-radius: var(--ri-radius) !important;
  border: 1px solid var(--ri-border-color);
  padding: 6px !important;
}
.navbar .nav-list .sub-menu .menu-item > a {
  border-radius: var(--ri-radius-sm);
  transition: background var(--ri-transition-fast), color var(--ri-transition-fast);
}
.navbar .nav-list .sub-menu .menu-item > a:hover {
  background: var(--ri-accent-light);
  color: var(--ri-accent) !important;
}

/* Actions area */
.navbar .actions .action-btn {
  border-radius: var(--ri-radius-sm);
  transition: all var(--ri-transition-fast) !important;
}
.navbar .actions .action-btn:hover {
  background: var(--ri-accent-light);
}
.navbar .actions .action-btn.login-btn {
  background: var(--ri-accent-gradient) !important;
  border-radius: 50px !important;
  font-weight: 500;
  letter-spacing: 0.3px;
  padding: 0.25rem 1rem !important;
}
.navbar .actions .action-btn.login-btn:hover {
  opacity: 0.9 !important;
  box-shadow: 0 4px 16px rgba(33,99,232,0.3);
  transform: translateY(-1px);
}

/* Burger */
.burger {
  border-radius: var(--ri-radius-sm) !important;
  transition: background var(--ri-transition-fast);
  cursor: pointer;
  flex-shrink: 0;
}
.burger:hover {
  background: var(--ri-accent-light);
}
@media (max-width: 991px) {
  .burger {
    width: 40px;
    height: 40px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    margin-left: 8px;
    border-radius: 10px !important;
    font-size: 18px;
    position: relative;
    z-index: 10 !important;
    flex-shrink: 0;
  }
  .navbar .navbar-search {
    z-index: 0 !important;
  }
}

/* Hover user dropdown — 毛玻璃样式由 template-filter.php 输出 */
}
/* Header transparent */
.header-transparent .site-header:not(.navbar-sticky) {
  border-bottom-color: transparent !important;
  box-shadow: none !important;
}


/* ============================================================
   3. Off-Canvas (Mobile Slide Menu) — Redesigned
   从左侧滑出 · 毛玻璃 · 深色主题
   ============================================================ */

/* --- 面板主体（深色/亮色双主题） --- */
.off-canvas.ri-drawer {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: auto !important;
  width: 320px !important;
  max-width: 85vw !important;
  height: 100vh !important;
  height: 100dvh !important;
  background-color: #f8fafc !important;
  background-image: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%) !important;
  backdrop-filter: blur(24px) saturate(180%) !important;
  -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
  z-index: 90 !important;
  transform: translateX(-340px) !important;
  -webkit-transform: translateX(-340px) !important;
  transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1) !important;
  -webkit-transition: transform 0.35s cubic-bezier(0.32, 0.72, 0, 1) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 0 !important;
  border: none !important;
  border-radius: 0 20px 20px 0 !important;
  box-shadow: 8px 0 40px rgba(0, 0, 0, 0.12) !important;
  scrollbar-width: thin !important;
  scrollbar-color: rgba(0,0,0,0.08) transparent !important;
  color: #334155 !important;
}
/* 暗色模式基础 */
[data-bs-theme=dark] .off-canvas.ri-drawer {
  background-color: #0f172a !important;
  background-image: linear-gradient(180deg, #0f172a 0%, #1e293b 100%) !important;
  box-shadow: 8px 0 40px rgba(0, 0, 0, 0.35) !important;
  scrollbar-color: rgba(255,255,255,0.1) transparent !important;
  color: #e2e8f0 !important;
}
.off-canvas.ri-drawer::-webkit-scrollbar { width: 4px !important; }
.off-canvas.ri-drawer::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 4px; }

/* 打开状态：从左滑入 + 必须在 dimmer(10000) 之上 */
body.canvas-opened .off-canvas.ri-drawer {
  transform: translateX(0) !important;
  -webkit-transform: translateX(0) !important;
  z-index: 10002 !important;
}

/* 隐藏旧结构的 logo-wrapper（避免重复） */
.off-canvas.ri-drawer .logo-wrapper { display: none !important; }

/* --- 关闭按钮 --- */
.canvas-close.ri-drawer-close {
  position: absolute !important;
  top: 16px !important;
  right: 16px !important;
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.08) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  z-index: 10 !important;
  color: rgba(255, 255, 255, 0.5) !important;
  font-size: 14px !important;
  transition: all 0.25s ease !important;
}
.canvas-close.ri-drawer-close:hover {
  background: rgba(255, 255, 255, 0.15) !important;
  color: #fff !important;
  transform: rotate(90deg) !important;
}

/* --- 用户区 --- */
.ri-drawer-user {
  padding: 32px 24px 20px !important;
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.15) 0%, rgba(168, 85, 247, 0.1) 100%) !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
  position: relative !important;
  overflow: hidden !important;
}
.ri-drawer-user::before {
  content: '' !important;
  position: absolute !important;
  top: -40px !important;
  right: -40px !important;
  width: 120px !important;
  height: 120px !important;
  background: rgba(99, 102, 241, 0.08) !important;
  border-radius: 50% !important;
  pointer-events: none !important;
}
.ri-drawer-user-link {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  text-decoration: none !important;
  color: inherit !important;
}
.ri-drawer-avatar {
  width: 52px !important;
  height: 52px !important;
  border-radius: 16px !important;
  border: 2px solid rgba(255, 255, 255, 0.15) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25) !important;
  object-fit: cover !important;
  flex-shrink: 0 !important;
}
.ri-drawer-user-info {
  flex: 1 !important;
  min-width: 0 !important;
}
.ri-drawer-username {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #f1f5f9 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  margin-bottom: 4px !important;
}
.ri-drawer-vip-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  padding: 2px 10px !important;
  border-radius: 20px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  background: linear-gradient(135deg, rgba(251, 191, 36, 0.2), rgba(245, 158, 11, 0.15)) !important;
  color: #fbbf24 !important;
  border: 1px solid rgba(251, 191, 36, 0.2) !important;
}
.ri-drawer-vip-badge i { font-size: 9px !important; }
.ri-drawer-guest-badge {
  display: inline-block !important;
  padding: 2px 10px !important;
  border-radius: 20px !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  background: rgba(255, 255, 255, 0.08) !important;
  color: rgba(255, 255, 255, 0.5) !important;
}
.ri-drawer-arrow {
  color: rgba(255, 255, 255, 0.25) !important;
  font-size: 12px !important;
  flex-shrink: 0 !important;
}

/* 签到 */
.ri-drawer-qiandao {
  margin-top: 14px !important;
}
.ri-drawer-qd-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  width: 100% !important;
  padding: 10px 16px !important;
  border-radius: 12px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  text-decoration: none !important;
  border: none !important;
}
.ri-drawer-qd-do {
  background: linear-gradient(135deg, #f093fb 0%, #f5576c 100%) !important;
  color: #fff !important;
}
.ri-drawer-qd-do:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 16px rgba(245, 87, 108, 0.4) !important;
  color: #fff !important;
}
.ri-drawer-qd-done {
  background: rgba(255, 255, 255, 0.06) !important;
  color: rgba(255, 255, 255, 0.35) !important;
  cursor: default !important;
}

/* 未登录游客区 */
.ri-drawer-guest {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 28px 24px !important;
}
.ri-drawer-guest-icon {
  width: 52px !important;
  height: 52px !important;
  border-radius: 16px !important;
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.2), rgba(168, 85, 247, 0.15)) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 24px !important;
  color: #818cf8 !important;
  flex-shrink: 0 !important;
}
.ri-drawer-guest-text { flex: 1 !important; }
.ri-drawer-guest-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #f1f5f9 !important;
  margin-bottom: 2px !important;
}
.ri-drawer-guest-desc {
  font-size: 12px !important;
  color: rgba(255, 255, 255, 0.4) !important;
}
.ri-drawer-login-btn {
  padding: 8px 20px !important;
  border-radius: 50px !important;
  background: linear-gradient(135deg, #6366f1 0%, #818cf8 100%) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: all 0.2s !important;
  flex-shrink: 0 !important;
}
.ri-drawer-login-btn:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 16px rgba(99, 102, 241, 0.4) !important;
  color: #fff !important;
}

/* --- 区块标题 --- */
.ri-drawer-section-title {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 16px 24px 10px !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  color: rgba(255, 255, 255, 0.3) !important;
}
.ri-drawer-section-title i { font-size: 10px !important; }

/* --- 导航菜单区 --- */
.ri-drawer-nav {
  padding-bottom: 8px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}

/* slicknav 菜单覆盖样式 */
.off-canvas.ri-drawer .slicknav_menu {
  padding: 0 12px !important;
}
.off-canvas.ri-drawer .slicknav_nav {
  margin: 0 !important;
}
.off-canvas.ri-drawer .slicknav_nav li,
.off-canvas.ri-drawer .slicknav_nav .menu-item {
  margin: 2px 0 !important;
}
.off-canvas.ri-drawer .slicknav_nav a {
  color: rgba(255, 255, 255, 0.7) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  padding: 11px 16px !important;
  border-radius: 12px !important;
  transition: all 0.2s ease !important;
  text-decoration: none !important;
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
}
.off-canvas.ri-drawer .slicknav_nav a:hover,
.off-canvas.ri-drawer .slicknav_nav .current-menu-item > a {
  background: rgba(99, 102, 241, 0.12) !important;
  color: #a5b4fc !important;
}
.off-canvas.ri-drawer .slicknav_nav .slicknav_btn {
  color: rgba(255, 255, 255, 0.8) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 32px !important;
  height: 32px !important;
  border-radius: 8px !important;
  background: rgba(255, 255, 255, 0.06) !important;
  position: absolute !important;
  right: 16px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  padding: 0 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  z-index: 2 !important;
}
.off-canvas.ri-drawer .slicknav_nav .slicknav_btn:hover {
  background: rgba(255, 255, 255, 0.12) !important;
}
.off-canvas.ri-drawer .slicknav_nav .slicknav_btn .slicknav_icon-bar {
  display: none !important;
}
.off-canvas.ri-drawer .slicknav_nav li.slicknav_parent {
  position: relative !important;
}
.off-canvas.ri-drawer .slicknav_nav .slicknav_arrow {
  flex: none !important;
  margin-left: auto !important;
  font-size: 12px !important;
  opacity: 0.6 !important;
}
.off-canvas.ri-drawer .slicknav_nav .slicknav_row {
  color: rgba(255, 255, 255, 0.7) !important;
  padding: 11px 16px !important;
  border-radius: 12px !important;
}
.off-canvas.ri-drawer .slicknav_nav .sub-menu,
.off-canvas.ri-drawer .slicknav_nav ul {
  background: rgba(0, 0, 0, 0.15) !important;
  border-radius: 10px !important;
  margin: 4px 0 4px 12px !important;
  padding: 4px !important;
}
.off-canvas.ri-drawer .slicknav_nav .sub-menu a,
.off-canvas.ri-drawer .slicknav_nav ul a {
  padding: 9px 14px !important;
  font-size: 13px !important;
}
.off-canvas.ri-drawer .slicknav_nav .sub-menu a:hover,
.off-canvas.ri-drawer .slicknav_nav ul a:hover {
  background: rgba(99, 102, 241, 0.1) !important;
}

/* ===== 自定义移动端菜单 ===== */
.ri-mobi-menu {
  padding: 0 12px;
}
.ri-mobi-nav-list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ri-mobi-nav-list li {
  position: relative;
  margin: 2px 0;
}
.ri-mobi-nav-list li a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 16px;
  color: rgba(255, 255, 255, 0.7);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  border-radius: 12px;
  transition: all 0.2s ease;
  line-height: 1.4;
}
.ri-mobi-nav-list li a:hover,
.ri-mobi-nav-list li a:active,
.ri-mobi-nav-list .current-menu-item > a {
  background: rgba(99, 102, 241, 0.12);
  color: #a5b4fc;
}
.ri-mobi-nav-list li a i,
.ri-mobi-nav-list li a .fas,
.ri-mobi-nav-list li a .far,
.ri-mobi-nav-list li a .fab {
  width: 18px;
  text-align: center;
  font-size: 13px;
  opacity: 0.7;
  flex-shrink: 0;
}
/* 子菜单展开按钮 */
.ri-mobi-toggle {
  position: absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.06);
  border: none;
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px;
  cursor: pointer;
  z-index: 2;
  transition: all 0.2s ease;
  padding: 0;
}
.ri-mobi-toggle:hover {
  background: rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.9);
}
.ri-mobi-toggle i {
  transition: transform 0.3s ease;
}
.ri-mobi-toggle.ri-mobi-open i {
  transform: rotate(180deg);
}
/* 有子菜单的项，链接留出右侧空间 */
.ri-mobi-nav-list li.has-children > a {
  padding-right: 48px;
}
/* 子菜单 */
.ri-mobi-nav-list .sub-menu,
.ri-mobi-nav-list ul {
  list-style: none;
  margin: 0;
  padding: 0;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
  background: rgba(0, 0, 0, 0.1);
  border-radius: 10px;
  margin: 0 4px;
}
.ri-mobi-nav-list .sub-menu.ri-sub-open,
.ri-mobi-nav-list ul.ri-sub-open {
  max-height: 600px;
  margin: 4px 4px;
}
.ri-mobi-nav-list .sub-menu li a,
.ri-mobi-nav-list ul li a {
  padding: 9px 16px 9px 28px;
  font-size: 13px;
  border-radius: 8px;
}
.ri-mobi-nav-list .sub-menu .sub-menu li a,
.ri-mobi-nav-list ul ul li a {
  padding-left: 44px;
}
.ri-mobi-nav-list .sub-menu li a:hover,
.ri-mobi-nav-list ul li a:hover {
  background: rgba(99, 102, 241, 0.08);
}
[data-bs-theme=light] .ri-mobi-nav-list li a { color: rgba(0,0,0,0.7); }
[data-bs-theme=light] .ri-mobi-nav-list li a:hover,
[data-bs-theme=light] .ri-mobi-nav-list .current-menu-item > a { background: rgba(99,102,241,0.08); color: #6366f1; }
[data-bs-theme=light] .ri-mobi-toggle { background: rgba(0,0,0,0.04); color: rgba(0,0,0,0.4); }
[data-bs-theme=light] .ri-mobi-toggle:hover { background: rgba(0,0,0,0.08); color: rgba(0,0,0,0.6); }
[data-bs-theme=light] .ri-mobi-nav-list .sub-menu,
[data-bs-theme=light] .ri-mobi-nav-list ul { background: rgba(0,0,0,0.03); }
[data-bs-theme=light] .ri-mobi-nav-list .sub-menu li a:hover,
[data-bs-theme=light] .ri-mobi-nav-list ul li a:hover { background: rgba(99,102,241,0.06); }

/* --- 快捷入口 --- */
.ri-drawer-shortcuts {
  padding-bottom: 8px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}
.ri-drawer-shortcut-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 8px !important;
  padding: 0 16px !important;
}
.ri-drawer-shortcut-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 14px 8px !important;
  border-radius: 14px !important;
  text-decoration: none !important;
  color: rgba(255, 255, 255, 0.6) !important;
  transition: all 0.2s ease !important;
}
.ri-drawer-shortcut-item:hover,
.ri-drawer-shortcut-item:active {
  background: rgba(99, 102, 241, 0.1) !important;
  color: #a5b4fc !important;
  transform: translateY(-2px) !important;
}
.ri-drawer-shortcut-icon {
  width: 42px !important;
  height: 42px !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.12) 0%, rgba(168, 85, 247, 0.08) 100%) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 16px !important;
  color: #818cf8 !important;
  transition: all 0.2s !important;
}
.ri-drawer-shortcut-item:hover .ri-drawer-shortcut-icon {
  background: linear-gradient(135deg, #6366f1 0%, #818cf8 100%) !important;
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(99, 102, 241, 0.35) !important;
}
.ri-drawer-shortcut-label {
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.2px !important;
}

/* --- 工具区 --- */
.ri-drawer-tools {
  padding-bottom: 8px !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}
.ri-drawer-tool-list {
  padding: 0 12px !important;
}
.ri-drawer-tool-item {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 12px 14px !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
}
.ri-drawer-tool-item:hover,
.ri-drawer-tool-item:active {
  background: rgba(255, 255, 255, 0.05) !important;
}
.ri-drawer-tool-left {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
}
.ri-drawer-tool-icon {
  width: 36px !important;
  height: 36px !important;
  border-radius: 10px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 14px !important;
  flex-shrink: 0 !important;
}
.ri-tool-icon-theme { background: linear-gradient(135deg, #1e293b, #334155); color: #fbbf24; }
.ri-tool-icon-search { background: linear-gradient(135deg, #1e3a5f, #1e40af); color: #60a5fa; }
.ri-tool-icon-lang { background: linear-gradient(135deg, #064e3b, #065f46); color: #34d399; }
.ri-tool-icon-notify { background: linear-gradient(135deg, #831843, #9d174d); color: #f472b6; }

.ri-drawer-tool-label {
  font-size: 14px !important;
  font-weight: 500 !important;
  color: rgba(255, 255, 255, 0.75) !important;
}
.ri-drawer-tool-right {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}
.ri-drawer-tool-arrow {
  font-size: 10px !important;
  color: rgba(255, 255, 255, 0.2) !important;
}

/* 开关组件 */
.ri-drawer-switch {
  width: 44px !important;
  height: 24px !important;
  border-radius: 12px !important;
  background: rgba(255, 255, 255, 0.1) !important;
  position: relative !important;
  transition: background 0.3s ease !important;
}
.ri-drawer-switch.active {
  background: linear-gradient(135deg, #6366f1, #818cf8) !important;
}
.ri-drawer-switch-dot {
  position: absolute !important;
  top: 3px !important;
  left: 3px !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 50% !important;
  background: #fff !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2) !important;
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}
.ri-drawer-switch.active .ri-drawer-switch-dot {
  transform: translateX(20px) !important;
}

/* 通知红点 */
.ri-drawer-notify-dot {
  width: 8px !important;
  height: 8px !important;
  border-radius: 50% !important;
  background: #f43f5e !important;
  box-shadow: 0 0 8px rgba(244, 63, 94, 0.5) !important;
}

/* 翻译选择器适配：#translate 移入 drawer 后的样式 */
.off-canvas.ri-drawer #translate {
  display: inline-flex !important;
  align-items: center !important;
}
.off-canvas.ri-drawer #translate .custom-language-dropdown .dropdown-selected {
  background: rgba(0, 0, 0, 0.04) !important;
  border-color: rgba(0, 0, 0, 0.08) !important;
  color: #475569 !important;
  font-size: 11px !important;
  padding: 4px 8px !important;
}
.off-canvas.ri-drawer #translate .custom-language-dropdown .dropdown-selected:hover {
  background: rgba(0, 0, 0, 0.06) !important;
  color: #1e293b !important;
}
[data-bs-theme=dark] .off-canvas.ri-drawer #translate .custom-language-dropdown .dropdown-selected {
  background: rgba(255, 255, 255, 0.08) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
  color: rgba(255, 255, 255, 0.7) !important;
}
/* 下拉列表：fixed 定位，避免被 drawer 裁剪 */
.off-canvas.ri-drawer #translate .custom-language-dropdown .dropdown-options {
  position: fixed !important;
  bottom: 80px !important;
  left: 16px !important;
  right: 16px !important;
  top: auto !important;
  min-width: auto !important;
  max-height: 50vh !important;
  background: #fff !important;
  border-color: rgba(0,0,0,0.08) !important;
  z-index: 99999 !important;
}
[data-bs-theme=dark] .off-canvas.ri-drawer #translate .custom-language-dropdown .dropdown-options {
  background: #1e293b !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}
.off-canvas.ri-drawer #translate .custom-language-dropdown .dropdown-option {
  color: #475569 !important;
}
[data-bs-theme=dark] .off-canvas.ri-drawer #translate .custom-language-dropdown .dropdown-option {
  color: rgba(255, 255, 255, 0.7) !important;
}
.off-canvas.ri-drawer #translate .custom-language-dropdown .dropdown-option:hover {
  background: rgba(99, 102, 241, 0.06) !important;
  color: #6366f1 !important;
}
[data-bs-theme=dark] .off-canvas.ri-drawer #translate .custom-language-dropdown .dropdown-option:hover {
  background: rgba(99, 102, 241, 0.1) !important;
  color: #fff !important;
}

/* Drawer 内亮暗切换 — 大号滑块 */
.ri-theme-switch {
  display: inline-flex !important;
  align-items: center !important;
  position: relative !important;
  background: rgba(0,0,0,0.06) !important;
  border-radius: 50px !important;
  padding: 3px !important;
  gap: 0 !important;
}
[data-bs-theme=dark] .ri-theme-switch {
  background: rgba(255,255,255,0.1) !important;
}
.ri-theme-opt {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 30px !important;
  border-radius: 50px !important;
  font-size: 14px !important;
  cursor: pointer !important;
  position: relative !important;
  z-index: 2 !important;
  transition: color 0.25s ease !important;
  color: rgba(0,0,0,0.3) !important;
}
[data-bs-theme=dark] .ri-theme-opt {
  color: rgba(255,255,255,0.35) !important;
}
.ri-theme-opt.active {
  color: #f59e0b !important;
}
[data-bs-theme=dark] .ri-theme-opt.active {
  color: #818cf8 !important;
}
.ri-theme-slider {
  position: absolute !important;
  top: 3px !important;
  left: 3px !important;
  width: 36px !important;
  height: 30px !important;
  border-radius: 50px !important;
  background: #fff !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12) !important;
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
  z-index: 1 !important;
}
[data-bs-theme=dark] .ri-theme-slider {
  background: #334155 !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3) !important;
}
.ri-theme-switch .ri-theme-opt.active ~ .ri-theme-slider,
.ri-theme-opt:last-child.active ~ .ri-theme-slider {
  transform: translateX(0) !important;
}
.ri-theme-switch .ri-theme-opt:first-child.active ~ .ri-theme-slider {
  transform: translateX(0) !important;
}
.ri-theme-switch .ri-theme-opt:last-child.active ~ .ri-theme-slider {
  transform: translateX(36px) !important;
}

/* --- 底部操作 --- */
.ri-drawer-footer {
  padding: 16px 16px 24px !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}
.ri-drawer-footer-btn {
  flex: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 11px 16px !important;
  border-radius: 12px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: all 0.2s ease !important;
}
.ri-drawer-footer-admin {
  background: rgba(99, 102, 241, 0.12) !important;
  color: #a5b4fc !important;
}
.ri-drawer-footer-admin:hover {
  background: rgba(99, 102, 241, 0.2) !important;
  color: #c7d2fe !important;
}
.ri-drawer-footer-logout {
  background: rgba(239, 68, 68, 0.1) !important;
  color: #fca5a5 !important;
}
.ri-drawer-footer-logout:hover {
  background: rgba(239, 68, 68, 0.18) !important;
  color: #fecaca !important;
}

/* ===== Drawer 暗色模式覆盖 ===== */
[data-bs-theme=dark] .canvas-close.ri-drawer-close {
  background: rgba(255,255,255,0.08) !important;
  color: rgba(255,255,255,0.5) !important;
}
[data-bs-theme=dark] .canvas-close.ri-drawer-close:hover {
  background: rgba(255,255,255,0.15) !important;
  color: #fff !important;
}
[data-bs-theme=dark] .ri-drawer-user {
  background: linear-gradient(135deg, rgba(99,102,241,0.15), rgba(168,85,247,0.1)) !important;
  border-color: rgba(255,255,255,0.06) !important;
}
[data-bs-theme=dark] .ri-drawer-username { color: #f1f5f9 !important; }
[data-bs-theme=dark] .ri-drawer-guest-badge { background: rgba(255,255,255,0.08) !important; color: rgba(255,255,255,0.5) !important; }
[data-bs-theme=dark] .ri-drawer-arrow { color: rgba(255,255,255,0.25) !important; }
[data-bs-theme=dark] .ri-drawer-qd-done { background: rgba(255,255,255,0.06) !important; color: rgba(255,255,255,0.35) !important; }
[data-bs-theme=dark] .ri-drawer-guest-icon { background: linear-gradient(135deg, rgba(99,102,241,0.2), rgba(168,85,247,0.15)) !important; color: #818cf8 !important; }
[data-bs-theme=dark] .ri-drawer-guest-title { color: #f1f5f9 !important; }
[data-bs-theme=dark] .ri-drawer-guest-desc { color: rgba(255,255,255,0.4) !important; }
[data-bs-theme=dark] .ri-drawer-section-title { color: rgba(255,255,255,0.3) !important; }
[data-bs-theme=dark] .ri-drawer-nav { border-color: rgba(255,255,255,0.06) !important; }
[data-bs-theme=dark] .off-canvas.ri-drawer .slicknav_nav a { color: rgba(255,255,255,0.7) !important; }
[data-bs-theme=dark] .off-canvas.ri-drawer .slicknav_nav a:hover,
[data-bs-theme=dark] .off-canvas.ri-drawer .slicknav_nav .current-menu-item > a { background: rgba(99,102,241,0.12) !important; color: #a5b4fc !important; }
[data-bs-theme=dark] .off-canvas.ri-drawer .slicknav_nav .slicknav_btn { color: rgba(255,255,255,0.5) !important; }
[data-bs-theme=dark] .off-canvas.ri-drawer .slicknav_nav .slicknav_row { color: rgba(255,255,255,0.7) !important; }
[data-bs-theme=dark] .off-canvas.ri-drawer .slicknav_nav .sub-menu,
[data-bs-theme=dark] .off-canvas.ri-drawer .slicknav_nav ul { background: rgba(0,0,0,0.15) !important; }
[data-bs-theme=dark] .ri-drawer-shortcuts { border-color: rgba(255,255,255,0.06) !important; }
[data-bs-theme=dark] .ri-drawer-shortcut-item { color: rgba(255,255,255,0.6) !important; }
[data-bs-theme=dark] .ri-drawer-shortcut-item:hover { background: rgba(99,102,241,0.1) !important; color: #a5b4fc !important; }
[data-bs-theme=dark] .ri-drawer-shortcut-icon { background: linear-gradient(135deg, rgba(99,102,241,0.12), rgba(168,85,247,0.08)) !important; color: #818cf8 !important; }
[data-bs-theme=dark] .ri-drawer-tools { border-color: rgba(255,255,255,0.06) !important; }
[data-bs-theme=dark] .ri-drawer-tool-item:hover { background: rgba(255,255,255,0.05) !important; }
[data-bs-theme=dark] .ri-drawer-tool-label { color: rgba(255,255,255,0.75) !important; }
[data-bs-theme=dark] .ri-drawer-tool-arrow { color: rgba(255,255,255,0.2) !important; }
[data-bs-theme=dark] .ri-drawer-footer-admin { background: rgba(99,102,241,0.12) !important; color: #a5b4fc !important; }
[data-bs-theme=dark] .ri-drawer-footer-logout { background: rgba(239,68,68,0.1) !important; color: #fca5a5 !important; }

/* ===== Drawer 亮色模式覆盖 ===== */
[data-bs-theme=light] .canvas-close.ri-drawer-close {
  background: rgba(0,0,0,0.05) !important;
  color: rgba(0,0,0,0.4) !important;
}
[data-bs-theme=light] .canvas-close.ri-drawer-close:hover {
  background: rgba(0,0,0,0.08) !important;
  color: #1e293b !important;
}
[data-bs-theme=light] .ri-drawer-user {
  background: linear-gradient(135deg, rgba(99,102,241,0.08), rgba(168,85,247,0.05)) !important;
  border-color: rgba(0,0,0,0.06) !important;
}
[data-bs-theme=light] .ri-drawer-username { color: #1e293b !important; }
[data-bs-theme=light] .ri-drawer-guest-badge { background: rgba(0,0,0,0.05) !important; color: rgba(0,0,0,0.45) !important; }
[data-bs-theme=light] .ri-drawer-arrow { color: rgba(0,0,0,0.25) !important; }
[data-bs-theme=light] .ri-drawer-qd-done { background: rgba(0,0,0,0.04) !important; color: rgba(0,0,0,0.35) !important; }
[data-bs-theme=light] .ri-drawer-guest-icon { background: linear-gradient(135deg, rgba(99,102,241,0.1), rgba(168,85,247,0.08)) !important; color: #6366f1 !important; }
[data-bs-theme=light] .ri-drawer-guest-title { color: #1e293b !important; }
[data-bs-theme=light] .ri-drawer-guest-desc { color: rgba(0,0,0,0.4) !important; }
[data-bs-theme=light] .ri-drawer-section-title { color: rgba(0,0,0,0.35) !important; }
[data-bs-theme=light] .ri-drawer-nav { border-color: rgba(0,0,0,0.06) !important; }
[data-bs-theme=light] .off-canvas.ri-drawer .slicknav_nav a { color: #475569 !important; }
[data-bs-theme=light] .off-canvas.ri-drawer .slicknav_nav a:hover,
[data-bs-theme=light] .off-canvas.ri-drawer .slicknav_nav .current-menu-item > a { background: rgba(99,102,241,0.08) !important; color: #6366f1 !important; }
[data-bs-theme=light] .off-canvas.ri-drawer .slicknav_nav .slicknav_btn { color: rgba(0,0,0,0.5) !important; background: rgba(0,0,0,0.04) !important; }
[data-bs-theme=light] .off-canvas.ri-drawer .slicknav_nav .slicknav_btn:hover { background: rgba(0,0,0,0.08) !important; }
[data-bs-theme=light] .off-canvas.ri-drawer .slicknav_nav .slicknav_row { color: #475569 !important; }
[data-bs-theme=light] .off-canvas.ri-drawer .slicknav_nav .sub-menu,
[data-bs-theme=light] .off-canvas.ri-drawer .slicknav_nav ul { background: rgba(0,0,0,0.03) !important; }
[data-bs-theme=light] .ri-drawer-shortcuts { border-color: rgba(0,0,0,0.06) !important; }
[data-bs-theme=light] .ri-drawer-shortcut-item { color: #64748b !important; }
[data-bs-theme=light] .ri-drawer-shortcut-item:hover { background: rgba(99,102,241,0.06) !important; color: #6366f1 !important; }
[data-bs-theme=light] .ri-drawer-shortcut-icon { background: linear-gradient(135deg, rgba(99,102,241,0.08), rgba(168,85,247,0.05)) !important; color: #6366f1 !important; }
[data-bs-theme=light] .ri-drawer-tools { border-color: rgba(0,0,0,0.06) !important; }
[data-bs-theme=light] .ri-drawer-tool-item:hover { background: rgba(0,0,0,0.03) !important; }
[data-bs-theme=light] .ri-drawer-tool-label { color: #475569 !important; }
[data-bs-theme=light] .ri-drawer-tool-arrow { color: rgba(0,0,0,0.2) !important; }
[data-bs-theme=light] .ri-drawer-footer-admin { background: rgba(99,102,241,0.08) !important; color: #6366f1 !important; }
[data-bs-theme=light] .ri-drawer-footer-logout { background: rgba(239,68,68,0.06) !important; color: #ef4444 !important; }
[data-bs-theme=light] .ri-drawer-switch { background: rgba(0,0,0,0.08) !important; }
[data-bs-theme=light] .ri-drawer-switch.active { background: linear-gradient(135deg, #6366f1, #818cf8) !important; }

/* Slicknav mobile menu */
.slicknav_menu .slicknav_nav .menu-item > a {
  border-radius: var(--ri-radius) !important;
  font-weight: 500;
  transition: all var(--ri-transition-fast);
}
.slicknav_menu .slicknav_nav .menu-item > a:hover {
  background: var(--ri-accent-light) !important;
  color: var(--ri-accent) !important;
}
.slicknav_menu .slicknav_nav .sub-menu {
  border-radius: var(--ri-radius) !important;
}

/* Dimmer — 适配新 drawer */
.dimmer {
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
  background: rgba(15, 23, 42, 0.5) !important;
}
body.canvas-opened .dimmer {
  background: rgba(0, 0, 0, 0.45) !important;
  backdrop-filter: blur(8px) !important;
  -webkit-backdrop-filter: blur(8px) !important;
}


/* ============================================================
   4. Search Form
   ============================================================ */
.search-form {
  border-radius: 50px !important;
  border: 2px solid transparent;
  box-shadow: var(--ri-card-shadow) !important;
  transition: all var(--ri-transition) !important;
}
.search-form:hover {
  box-shadow: var(--ri-card-shadow-hover) !important;
}
.search-form:focus-within {
  border-color: var(--ri-accent);
  box-shadow: 0 0 0 3px var(--ri-accent-light), var(--ri-card-shadow-hover) !important;
}
.search-form .search-fields button {
  transition: color var(--ri-transition-fast), transform var(--ri-transition-fast);
}
.search-form .search-fields button:hover {
  color: var(--ri-accent) !important;
  transform: scale(1.1);
}

/* Hide old inline navbar-search (replaced by fullscreen modal) */
.navbar .navbar-search {
  display: none !important;
}


/* ============================================================
   5. Post Cards
   ============================================================ */
.post-item {
  border-radius: var(--ri-card-radius) !important;
  box-shadow: var(--ri-card-shadow);
  transition: transform var(--ri-transition), box-shadow var(--ri-transition) !important;
}
.post-item:hover {
  transform: translateY(-4px);
  box-shadow: var(--ri-card-shadow-hover) !important;
}

/* Media image zoom on hover */
.post-item .entry-media .media-img {
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1) !important;
}
.post-item:hover .entry-media .media-img {
  transform: scale(1.05);
}

/* Title */
.post-item .entry-title {
  transition: color var(--ri-transition-fast);
}
.post-item:hover .entry-title a,
.post-item:hover .entry-title {
  color: var(--ri-accent) !important;
}

/* Category dots */
.post-item .entry-cat-dot > a {
  transition: opacity var(--ri-transition-fast), transform var(--ri-transition-fast);
}
.post-item .entry-cat-dot > a:hover {
  opacity: 1 !important;
  transform: scale(1.05);
}

/* Entry meta */
.post-item .entry-meta a {
  transition: color var(--ri-transition-fast);
}
.post-item .entry-meta a:hover {
  color: var(--ri-accent) !important;
}

/* Grid overlay variant */
.post-item.item-grid.grid-overlay .entry-wrapper {
  border-radius: 0 0 var(--ri-card-radius) var(--ri-card-radius);
}

/* List variant */
.post-item.item-list {
  border-radius: var(--ri-card-radius) !important;
}
.post-item.item-list .entry-media {
  border-radius: var(--ri-radius-sm) !important;
}

/* Format icon */
.post-item .entry-media .post-format-icon {
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  transition: all var(--ri-transition-fast) !important;
}

/* Tips badge */
.post-item .tips-badge .badge {
  border-radius: 50px;
  padding: 2px 8px;
  font-weight: 600;
}


/* ============================================================
   6. Sidebar & Widgets
   ============================================================ */
.sidebar .widget {
  border-radius: var(--ri-card-radius) !important;
  box-shadow: var(--ri-card-shadow);
  border: 1px solid var(--ri-border-color);
  transition: box-shadow var(--ri-transition), transform var(--ri-transition);
}
.sidebar .widget:hover {
  box-shadow: var(--ri-card-shadow-hover);
}

.sidebar .widget .widget-title {
  font-weight: 700;
  position: relative;
  padding-bottom: 10px;
}
.sidebar .widget .widget-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 32px;
  height: 3px;
  background: var(--ri-accent-gradient);
  border-radius: 3px;
}

/* Widget search */
.sidebar .widget_search input {
  border-radius: 50px !important;
  transition: border-color var(--ri-transition-fast), box-shadow var(--ri-transition-fast);
}
.sidebar .widget_search input:focus {
  border-color: var(--ri-accent) !important;
  box-shadow: 0 0 0 3px var(--ri-accent-light);
}

/* Sidebar post list */
.sidebar .sidebar-posts-list .post-item.item-list {
  box-shadow: none !important;
  border: 1px solid var(--ri-border-color);
}
.sidebar .sidebar-posts-list .post-item.item-list:hover {
  box-shadow: var(--ri-card-shadow) !important;
  border-color: transparent;
}

/* Sidebar ranking list */
.sidebar .sidebar-ranking-list .ranking-item .ranking-num {
  font-weight: 700;
  transition: all var(--ri-transition-fast);
}
.sidebar .sidebar-ranking-list .ranking-item:hover .ranking-num {
  transform: scale(1.1);
}

/* Sidebar post download widget */
.sidebar .post-down-widget {
  border-radius: var(--ri-card-radius);
  overflow: hidden;
}
.sidebar .post-down-widget .down-thumb {
  border-radius: 0 !important;
}
.sidebar .post-down-widget .down-btn {
  border-radius: 50px !important;
}


/* ============================================================
   7. Home Page Modules
   ============================================================ */

/* --- Home Search Box --- */
.home-search-box .search-bg {
  border-radius: 0 0 var(--ri-radius-xl) var(--ri-radius-xl);
  overflow: hidden;
}
.home-search-box .search-form {
  box-shadow: 0 4px 24px rgba(0,0,0,0.15) !important;
}
.home-search-box .search-hots a {
  transition: color var(--ri-transition-fast);
}
.home-search-box .search-hots a:hover {
  color: #fff !important;
}

/* --- Home Owl Slider --- */
.home-owl-slider .widget-slider {
  border-radius: var(--ri-radius-lg) !important;
  overflow: hidden;
  box-shadow: var(--ri-card-shadow);
}
.home-owl-slider .widget-slider-item .slider-warp {
  text-align: center;
}

/* --- Home Category Box --- */
.home-cat-box .widget-catbox-item {
  border-radius: var(--ri-radius) !important;
  transition: all var(--ri-transition) !important;
  box-shadow: var(--ri-card-shadow);
}
.home-cat-box .widget-catbox-item:hover {
  transform: translateY(-4px);
  box-shadow: var(--ri-card-shadow-hover);
}
.home-cat-box .widget-catbox-item::before {
  border-radius: var(--ri-radius) !important;
  transition: background var(--ri-transition);
}
.home-cat-box .widget-catbox-item:hover::before {
  background: rgba(0,0,0,0.6);
}
.home-cat-box .catbox-title {
  letter-spacing: 2px;
  text-shadow: 0 1px 4px rgba(0,0,0,0.3);
}

/* --- Home Division --- */
.home-division .division-item {
  border-radius: var(--ri-card-radius) !important;
  box-shadow: var(--ri-card-shadow);
  transition: all var(--ri-transition);
  border: 1px solid var(--ri-border-color);
}
.home-division .division-item:hover {
  transform: translateY(-3px);
  box-shadow: var(--ri-card-shadow-hover);
  border-color: transparent;
}
.home-division .division-icon {
  border-radius: var(--ri-radius) !important;
  transition: transform var(--ri-transition);
}
.home-division .division-item:hover .division-icon > i {
  transform: rotate(360deg) scale(1.15) !important;
}

/* --- Home Last Post --- */
.home-last-post .section-cat-navbtn .btn {
  border-radius: 50px !important;
  font-weight: 500;
  border: 1px solid var(--ri-border-color);
  transition: all var(--ri-transition-fast);
}
.home-last-post .section-cat-navbtn .btn:hover,
.home-last-post .section-cat-navbtn .btn.active {
  background: var(--ri-accent) !important;
  color: #fff !important;
  border-color: var(--ri-accent);
}

/* --- Home CMS Post --- */
.home-cms-post .cms-post-warp {
  border-radius: var(--ri-card-radius);
  overflow: hidden;
}

/* --- Home Title Post --- */
.home-title-post .list-posts {
  border-radius: var(--ri-card-radius) !important;
  overflow: hidden;
  box-shadow: var(--ri-card-shadow);
}
.home-title-post .list-posts .category-bg {
  border-radius: var(--ri-card-radius) var(--ri-card-radius) 0 0;
}
.home-title-post .list-posts .category-title a:hover {
  opacity: 0.85;
}
.home-title-post .list-posts ul li {
  padding: 6px 0;
  transition: background var(--ri-transition-fast);
  border-radius: var(--ri-radius-sm);
}
.home-title-post .list-posts ul li:hover {
  background: var(--ri-accent-light);
}
.home-title-post .list-posts ul li .post-num {
  border-radius: var(--ri-radius-sm) !important;
  font-weight: 700;
}

/* --- Home Dynamic --- */
.home-dynamic .dynamic-warp {
  border-radius: var(--ri-card-radius);
  background: var(--ri-card-bg);
  padding: 8px 12px;
  box-shadow: var(--ri-card-shadow);
}

/* --- Home Scratch Card v2 --- */
/* ===== CDK 优惠券横向模块 ===== */

/* 模块标题 */
.ri-coupon-section-head {
    text-align: center;
    margin-bottom: 24px;
}
.ri-coupon-section-title {
    font-size: 20px;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 6px;
}
.ri-coupon-section-title i {
    color: #f59e0b;
    margin-right: 6px;
}
[data-bs-theme="dark"] .ri-coupon-section-title { color: #e2e8f0; }
.ri-coupon-section-desc {
    font-size: 13px;
    color: #94a3b8;
    margin: 0;
}

/* 网格容器 - 7列 */
.ri-coupon-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 10px;
}

/* 单张优惠券 - 横向长条 */
.ri-coupon {
    --coupon-bg: linear-gradient(135deg, #ff416c, #ff4b2b);
    position: relative;
    border-radius: 10px;
    overflow: visible;
    display: flex;
    align-items: stretch;
    height: 60px;
    transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
}
.ri-coupon:hover {
    transform: translateY(-2px);
    filter: brightness(1.05);
}

/* 左侧折扣区 */
.ri-coupon-left {
    flex: 0 0 42%;
    background: var(--coupon-bg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 6px 4px;
    position: relative;
    z-index: 1;
    border-radius: 10px 0 0 10px;
}
.ri-coupon-dead .ri-coupon-left {
    background: linear-gradient(135deg, #94a3b8, #64748b);
}

/* 折扣数字 */
.ri-coupon-amount {
    font-size: 18px;
    font-weight: 900;
    color: #fff;
    line-height: 1;
    text-shadow: 0 1px 3px rgba(0,0,0,0.15);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.ri-coupon-amount-dead {
    font-size: 14px;
    opacity: 0.6;
}

/* 折扣标签 */
.ri-coupon-label {
    font-size: 9px;
    font-weight: 600;
    color: rgba(255,255,255,0.85);
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    letter-spacing: 0.3px;
}

/* 右侧操作区 */
.ri-coupon-right {
    flex: 1;
    background: #fff;
    border: 1px solid rgba(0,0,0,0.06);
    border-left: none;
    border-radius: 0 10px 10px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 6px 8px;
    gap: 1px;
    position: relative;
    z-index: 1;
}
[data-bs-theme="dark"] .ri-coupon-right {
    background: #1e293b;
    border-color: rgba(255,255,255,0.06);
    border-left: none;
}

/* 优惠码 */
.ri-coupon-code {
    font-size: 10px;
    font-weight: 800;
    color: #1e293b;
    letter-spacing: 1px;
    font-family: 'SF Mono', 'Fira Code', 'Courier New', monospace;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
    line-height: 1.2;
}
[data-bs-theme="dark"] .ri-coupon-code { color: #e2e8f0; }
.ri-coupon-code-dead {
    color: #94a3b8 !important;
    text-decoration: line-through;
}

/* 到期时间 */
.ri-coupon-expiry {
    font-size: 9px;
    color: #94a3b8;
    line-height: 1;
}
.ri-coupon-expiry i { font-size: 8px; }
.ri-coupon-expiry-dead {
    color: #ef4444;
}

/* 领取按钮 */
.ri-coupon-go {
    border: none;
    border-radius: 11px;
    background: var(--coupon-bg);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
    padding: 4px 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
    box-shadow: 0 2px 6px rgba(0,0,0,0.12);
    margin-top: 2px;
    letter-spacing: 0;
}
.ri-coupon-go:hover {
    transform: scale(1.08);
    box-shadow: 0 3px 10px rgba(0,0,0,0.2);
}
.ri-coupon-go:active {
    transform: scale(0.95);
}
.ri-coupon-go.copied {
    background: linear-gradient(135deg, #10b981, #059669) !important;
    box-shadow: 0 2px 8px rgba(16,185,129,0.35);
}

/* 波浪边缘 SVG */
.ri-coupon-wave {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 12px;
    z-index: 2;
    pointer-events: none;
}
.ri-coupon-wave-left {
    left: 41%;
    transform: translateX(-50%);
}
.ri-coupon-wave-right {
    right: -1px;
}

/* 已失效叠加 */
.ri-coupon-dead {
    opacity: 0.5;
}
.ri-coupon-dead:hover {
    filter: none;
    transform: none;
}

/* ===== 响应式 ===== */
@media (max-width: 1200px) {
    .ri-coupon-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}
@media (max-width: 768px) {
    .ri-coupon-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }
    .ri-coupon {
        height: 54px;
    }
    .ri-coupon-amount {
        font-size: 15px;
    }
    .ri-coupon-code {
        font-size: 9px;
    }
}
/* 折叠按钮 - 异形分割线（基础规则必须在媒体查询之前，否则会覆盖移动端 display:flex） */
.ri-cdk-fold-btn {
    display: none;
    align-items: center; justify-content: center; gap: 0;
    margin: 12px auto 0; padding: 0;
    border: none; background: none;
    width: 100%; position: relative;
    cursor: pointer;
}
@media (max-width: 576px) {
    .ri-coupon-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 6px;
    }
    .ri-coupon {
        height: 50px;
    }
    /* 折叠：默认显示2行（4个） */
    .ri-coupon-grid.ri-cdk-folded {
        max-height: calc(50px * 2 + 6px);
        overflow: hidden;
    }
    .ri-cdk-fold-btn {
        display: flex;
    }
}
.ri-cdk-fold-line {
    flex: 1; height: 1px;
    background: linear-gradient(90deg, transparent, #e2e8f0 20%, #e2e8f0 80%, transparent);
}
[data-bs-theme=dark] .ri-cdk-fold-line { background: linear-gradient(90deg, transparent, #334155 20%, #334155 80%, transparent); }
.ri-cdk-fold-dot {
    width: 32px; height: 32px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: #f8f9fa; border: 1.5px solid #e2e8f0;
    color: #64748b; font-size: 10px;
    flex-shrink: 0; margin: 0 14px;
    transition: all .25s;
    box-shadow: 0 2px 8px rgba(0,0,0,.04);
}
.ri-cdk-fold-btn:hover .ri-cdk-fold-dot {
    background: #6366f1; color: #fff; border-color: #6366f1;
    box-shadow: 0 4px 14px rgba(99,102,241,.25);
    transform: scale(1.1);
}
.ri-cdk-fold-dot i { transition: transform .3s; }
.ri-cdk-fold-btn.expanded .ri-cdk-fold-dot i { transform: rotate(180deg); }
[data-bs-theme=dark] .ri-cdk-fold-dot { background: #1e293b; border-color: #334155; color: #94a3b8; }
[data-bs-theme=dark] .ri-cdk-fold-btn:hover .ri-cdk-fold-dot { background: #6366f1; color: #fff; border-color: #6366f1; }

/* --- Home Overview --- */
.home-overview .bg-warp {
  border-radius: var(--ri-radius-lg);
  overflow: hidden;
}
.home-overview .count-item span {
  text-shadow: 0 2px 8px rgba(0,0,0,0.2);
}

/* --- Home VIP Card v2 --- */
.home-vip-card .price-card {
  border-radius: var(--ri-card-radius) !important;
}

/* ===== VIP 模块标题区 ===== */
.ri-vip-section-head {
    text-align: center;
    margin-bottom: 28px;
    position: relative;
}
.ri-vip-section-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px; height: 48px;
    border-radius: 14px;
    background: linear-gradient(135deg, rgba(245,158,11,0.1), rgba(244,63,94,0.1));
    margin-bottom: 12px;
    animation: ri-vip-icon-pulse 3s ease-in-out infinite;
}
@keyframes ri-vip-icon-pulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.06); }
}
.ri-vip-section-title {
    font-size: 22px;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 6px;
}
[data-bs-theme="dark"] .ri-vip-section-title { color: #e2e8f0; }
.ri-vip-section-desc {
    font-size: 13px;
    color: #94a3b8;
    margin: 0;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.6;
}

/* ===== 轮播容器 ===== */
.ri-vip-carousel-wrap {
    position: relative;
    padding: 0 4px;
}

/* 左右箭头 */
.ri-vip-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 38px;
    height: 38px;
    border-radius: 12px;
    border: 1px solid rgba(0,0,0,0.08);
    background: #c3c3c3;
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    padding: 0;
}
.ri-vip-arrow:hover {
    background: #6366f1;
    color: #fff;
    border-color: #6366f1;
    box-shadow: 0 4px 16px rgba(99,102,241,0.25);
    transform: translateY(-50%) scale(1.08);
}
.ri-vip-arrow:active {
    transform: translateY(-50%) scale(0.95);
}
.ri-vip-arrow-left {left: 0px;}
.ri-vip-arrow-right {right: 0px;}
.ri-vip-arrow.disabled {
    opacity: 0.3;
    pointer-events: none;
}
[data-bs-theme="dark"] .ri-vip-arrow {
    background: #1e293b;
    border-color: rgba(255,255,255,0.08);
    color: #94a3b8;
}
[data-bs-theme="dark"] .ri-vip-arrow:hover {
    background: #6366f1;
    color: #fff;
    border-color: #6366f1;
}

/* ===== VIP 卡片 ===== */
.ri-vip-item {
    padding: 4px 0;
}

.ri-vip-card {
    position: relative;
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(0,0,0,0.06);
    overflow: hidden;
    transition: all 0.3s cubic-bezier(0.4,0,0.2,1);
    display: flex;
    flex-direction: column;
}
.ri-vip-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.1);
    border-color: var(--vip-color, #6366f1);
}
[data-bs-theme="dark"] .ri-vip-card {
    background: #1e293b;
    border-color: rgba(255,255,255,0.06);
}
[data-bs-theme="dark"] .ri-vip-card:hover {
    box-shadow: 0 12px 40px rgba(0,0,0,0.3);
}

/* 卡片顶部发光 */
.ri-vip-card-glow {
    position: absolute;
    top: -40px; left: 50%;
    transform: translateX(-50%);
    width: 120px; height: 80px;
    background: var(--vip-gradient, linear-gradient(135deg, #6366f1, #818cf8));
    opacity: 0.08;
    filter: blur(30px);
    border-radius: 50%;
    pointer-events: none;
    transition: opacity 0.3s;
}
.ri-vip-card:hover .ri-vip-card-glow { opacity: 0.15; }

/* 头部 */
.ri-vip-card-head {
    padding: 20px 20px 16px;
    text-align: center;
    position: relative;
}
.ri-vip-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px; height: 44px;
    border-radius: 13px;
    background: var(--vip-gradient, linear-gradient(135deg, #6366f1, #818cf8));
    color: #fff;
    font-size: 18px;
    margin-bottom: 10px;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--vip-color, #6366f1) 30%, transparent);
    transition: transform 0.3s;
}
.ri-vip-card:hover .ri-vip-card-icon { transform: scale(1.1) rotate(-3deg); }
.ri-vip-card-type {
    font-size: 16px;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: 4px;
}
[data-bs-theme="dark"] .ri-vip-card-type { color: #e2e8f0; }
.ri-vip-card-duration {
    font-size: 11px;
    color: #94a3b8;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    background: rgba(0,0,0,0.03);
    padding: 2px 10px;
    border-radius: 20px;
}
[data-bs-theme="dark"] .ri-vip-card-duration { background: rgba(255,255,255,0.05); }

/* 价格 */
.ri-vip-card-price {
    text-align: center;
    padding: 0 20px 16px;
    position: relative;
}
.ri-vip-card-price::after {
    content: "";
    display: block;
    width: 40px; height: 2px;
    background: var(--vip-gradient, linear-gradient(90deg, #6366f1, #818cf8));
    border-radius: 2px;
    margin: 12px auto 0;
    opacity: 0.4;
}
.ri-vip-price-num {
    font-size: 32px;
    font-weight: 800;
    color: var(--vip-color, #6366f1);
    line-height: 1;
    letter-spacing: -1px;
}
.ri-vip-price-unit {
    font-size: 12px;
    color: #94a3b8;
    margin-left: 4px;
    font-weight: 500;
}

/* 特权列表 */
.ri-vip-card-features {
    list-style: none;
    padding: 0 20px;
    margin: 0 0 auto;
    flex: 1;
}
.ri-vip-card-features li {
    font-size: 12px;
    color: #475569;
    padding: 5px 0;
    display: flex;
    align-items: center;
    gap: 8px;
    line-height: 1.5;
}
.ri-vip-card-features li i {
    font-size: 9px;
    color: var(--vip-color, #10b981);
    flex-shrink: 0;
    width: 16px; height: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--vip-color, #10b981) 8%, transparent);
    border-radius: 50%;
}
[data-bs-theme="dark"] .ri-vip-card-features li { color: #cbd5e1; }

/* 按钮 */
.ri-vip-card-action {
    padding: 16px 20px 20px;
}
.ri-vip-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    padding: 10px 16px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
    background: var(--vip-gradient, linear-gradient(135deg, #6366f1, #818cf8));
    color: #fff;
    border: none;
    box-shadow: 0 4px 14px color-mix(in srgb, var(--vip-color, #6366f1) 25%, transparent);
}
.ri-vip-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px color-mix(in srgb, var(--vip-color, #6366f1) 35%, transparent);
    color: #fff;
}
.ri-vip-btn:active { transform: translateY(0); }
.ri-vip-btn-outline {
    background: transparent;
    color: var(--vip-color, #6366f1);
    border: 1.5px solid var(--vip-color, #6366f1);
    box-shadow: none;
}
.ri-vip-btn-outline:hover {
    background: var(--vip-gradient, linear-gradient(135deg, #6366f1, #818cf8));
    color: #fff;
    border-color: transparent;
}

/* Owl 默认导航隐藏（用自定义箭头） */
.ri-vip-owl .owl-nav { display: none; }
.ri-vip-owl .owl-dots {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 16px;
}
.ri-vip-owl .owl-dot span {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: #cbd5e1;
    transition: all 0.25s;
}
.ri-vip-owl .owl-dot.active span,
.ri-vip-owl .owl-dot:hover span {
    background: #6366f1;
    width: 18px;
    border-radius: 4px;
}
[data-bs-theme="dark"] .ri-vip-owl .owl-dot span { background: #334155; }
[data-bs-theme="dark"] .ri-vip-owl .owl-dot.active span { background: #818cf8; }

/* ===== VIP 卡片模块移动端适配 ===== */
@media (max-width: 576px) {
    .ri-vip-carousel-wrap { padding: 0 4px; }
    /* 桌面端绝对定位箭头在移动端隐藏 */
    .ri-vip-carousel-wrap > .ri-vip-arrow { display: none; }
    /* 底部箭头容器 */
    .ri-vip-arrows-mobile {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 16px;
        margin-top: 14px;
    }
    .ri-vip-arrows-mobile .ri-vip-arrow {
        position: relative;
        top: auto;
        transform: none;
        display: inline-flex;
        width: 36px;
        height: 36px;
        border-radius: 50%;
    }
    .ri-vip-arrows-mobile .ri-vip-arrow:hover { transform: scale(1.08); }
    .ri-vip-arrows-mobile .ri-vip-arrow:active { transform: scale(0.95); }
    .ri-vip-arrows-mobile .ri-vip-arrow-left { left: auto; }
    .ri-vip-arrows-mobile .ri-vip-arrow-right { right: auto; }
    /* Owl dots - 移动端隐藏（有底部箭头代替） */
    .ri-vip-owl .owl-dots { display: none; }
    /* VIP 卡片 */
    .ri-vip-card-head { padding: 16px 14px 12px; }
    .ri-vip-card-icon { width: 38px; height: 38px; font-size: 15px; border-radius: 11px; margin-bottom: 8px; }
    .ri-vip-card-type { font-size: 14px; }
    .ri-vip-card-duration { font-size: 10px; }
    .ri-vip-card-price { padding: 0 14px 12px; }
    .ri-vip-price-num { font-size: 26px; }
    .ri-vip-card-features { padding: 0 14px; }
    .ri-vip-card-features li { font-size: 11px; padding: 4px 0; gap: 6px; }
    .ri-vip-card-features li i { width: 14px; height: 14px; font-size: 8px; }
    .ri-vip-card-action { padding: 12px 14px 16px; }
    .ri-vip-btn { padding: 8px 12px; font-size: 12px; border-radius: 8px; }
}

/* --- Home Background --- */
.home-background .bg-warp {
  border-radius: var(--ri-radius-lg);
  overflow: hidden;
}

/* --- 图片背景按钮模块 - 移动端美化 --- */
@media (max-width: 767px) {
  .home-background .bg-warp {
    border-radius: 0;
  }
  .home-background .bg-warp > .container {
    padding-top: 28px !important;
    padding-bottom: 28px !important;
  }
  .home-background .bg-title {
    font-size: 1.1rem !important;
    margin-bottom: 6px;
    letter-spacing: .3px;
  }
  .home-background .bg-desc {
    font-size: 12px !important;
    margin-bottom: 14px !important;
    line-height: 1.6;
    opacity: .75;
  }
  .home-background .bg-btns {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
  }
  .home-background .bg-btns .btn {
    font-size: 12px !important;
    padding: 7px 18px !important;
    border-radius: 20px !important;
    margin: 0 !important;
    font-weight: 600;
    letter-spacing: .3px;
    box-shadow: 0 2px 8px rgba(0,0,0,.12);
    transition: all .2s;
  }
  .home-background .bg-btns .btn:active {
    transform: scale(.96);
  }
  .home-background .bg-btns .btn i {
    font-size: 11px;
    margin-right: 4px !important;
  }
}

/* --- Home Search BG --- */
.home-search-bg .search-form {
  border-radius: 50px !important;
}


/* ============================================================
   8. Archive Pages
   ============================================================ */

/* Archive Hero */
.archive-hero {
  border-radius: 0 0 var(--ri-radius-xl) var(--ri-radius-xl);
  overflow: hidden;
}
.archive-hero .archive-hero-bg::before {
  border-radius: 0 0 var(--ri-radius-xl) var(--ri-radius-xl);
}
.archive-hero .archive-title {
  text-shadow: 0 2px 12px rgba(0,0,0,0.2);
}

/* Archive filter */
.filter-warp {
  border-radius: var(--ri-card-radius);
  box-shadow: var(--ri-card-shadow);
  border: 1px solid var(--ri-border-color);
  padding: 4px 12px;
}
.filter-warp .filter-item .filter-link > a {
  border-radius: var(--ri-radius-sm);
  transition: all var(--ri-transition-fast);
}
.filter-warp .filter-item .filter-link > a:hover {
  background: var(--ri-accent-light);
}
.filter-warp .filter-item .filter-link.active > a {
  background: var(--ri-accent-light);
  color: var(--ri-accent);
  font-weight: 600;
}

/* Archive shop */
.archive-shop .img-box {
  border-radius: var(--ri-card-radius) !important;
}
.archive-shop .img-box .views-rounded-dot {
  border-radius: 50%;
}
.archive-shop .info-box {
  padding: 8px 0;
}
.archive-shop .article-meta {
  border-radius: var(--ri-radius) !important;
}

/* Archive series top */
.archive-series-top .img-box {
  border-radius: var(--ri-card-radius) !important;
  overflow: hidden;
}
.archive-series-top .img-box img {
  transition: transform var(--ri-transition-slow);
}
.archive-series-top .img-box:hover img {
  transform: scale(1.05);
}

/* Series page */
.series-page-warp .tag-item .img-box {
  border-radius: var(--ri-card-radius) !important;
  overflow: hidden;
}

/* Tags page */
.tags-page-warp .tag-item {
  border-radius: var(--ri-card-radius) !important;
  box-shadow: var(--ri-card-shadow);
  border: 1px solid var(--ri-border-color);
  transition: all var(--ri-transition);
  padding: 16px;
}
.tags-page-warp .tag-item:hover {
  transform: translateY(-3px);
  box-shadow: var(--ri-card-shadow-hover);
  border-color: transparent;
}
.tags-page-warp .tag-item .tag-substr {
  transition: transform var(--ri-transition), background var(--ri-transition), color var(--ri-transition);
}
.tags-page-warp .tag-item:hover .tag-substr {
  background: var(--ri-accent);
  color: #fff;
}

/* Links page */
.links-page-warp .link-item {
  border-radius: var(--ri-card-radius) !important;
  box-shadow: var(--ri-card-shadow);
  border: 1px solid var(--ri-border-color);
  transition: all var(--ri-transition);
  padding: 16px;
}
.links-page-warp .link-item:hover {
  transform: translateY(-3px);
  box-shadow: var(--ri-card-shadow-hover);
  border-color: transparent;
}


/* ============================================================
   9. Single Post Content
   ============================================================ */

/* Article header */
.article-header .post-title {
  letter-spacing: -0.3px;
}
.article-header .article-meta {
  font-weight: 500;
}
.article-header .article-meta a {
  transition: color var(--ri-transition-fast);
}
.article-header .article-meta a:hover {
  color: var(--ri-accent) !important;
}

/* Post content typography */
.post-content {
  word-break: break-word;
}
.post-content a:not(.btn) {
  color: var(--ri-accent);
  text-decoration: none;
  border-bottom: 1px solid rgba(33,99,232,0.2);
  transition: all var(--ri-transition-fast);
}
.post-content a:not(.btn):hover {
  color: var(--ri-accent-hover);
  border-bottom-color: var(--ri-accent);
}

/* Blockquote */
.post-content blockquote {
  border-radius: var(--ri-radius) !important;
  border-left: 4px solid var(--ri-accent) !important;
  background: var(--ri-accent-light) !important;
  font-style: italic;
}

/* Code blocks */
.post-content pre {
  border-radius: var(--ri-radius) !important;
}
.hljs-block-header .hljs-block-copy {
  border-radius: 0 var(--ri-radius) 0 var(--ri-radius) !important;
  transition: opacity var(--ri-transition-fast);
}

/* Headings */
.post-content .h3::before, .post-content h3::before {
  border-radius: 3px;
}

/* Tables */
.post-content table {
  border-radius: var(--ri-radius);
  overflow: hidden;
  border: 1px solid var(--ri-border-color);
}
.post-content table th {
  background: var(--ri-accent-light);
  font-weight: 600;
}

/* Images */
.post-content img {
  border-radius: var(--ri-radius-sm);
  transition: transform var(--ri-transition);
}
.post-content img:hover {
  transform: scale(1.01);
}

/* HR */
.post-content hr {
  border-top: 2px dashed var(--ri-border-color) !important;
  opacity: 0.6;
}

/* --- Entry Copyright --- */
.entry-copyright {
  border-radius: var(--ri-radius) !important;
  border-left: 3px solid var(--ri-accent);
}

/* --- Entry Tags --- */
.entry-tags > a {
  border-radius: 50px !important;
  font-weight: 500;
  transition: all var(--ri-transition-fast) !important;
}
.entry-tags > a:hover {
  background: var(--ri-accent) !important;
  color: #fff !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(33,99,232,0.25);
}

/* --- Entry Navigation --- */
.entry-navigation .entry-page-prev,
.entry-navigation .entry-page-next {
  border-radius: var(--ri-card-radius) !important;
  box-shadow: var(--ri-card-shadow);
  border: 1px solid var(--ri-border-color);
  transition: all var(--ri-transition) !important;
}
.entry-navigation .entry-page-prev:hover,
.entry-navigation .entry-page-next:hover {
  box-shadow: var(--ri-card-shadow-hover) !important;
  border-color: transparent;
}
.entry-navigation .entry-page-icon {
  transition: transform var(--ri-transition-fast);
}
.entry-navigation .entry-page-prev:hover .entry-page-icon,
.entry-navigation .entry-page-next:hover .entry-page-icon {
  transform: scale(1.2);
  color: var(--ri-accent);
}

/* --- Single Content Nav Tabs --- */
.single-content-nav .nav-pills .nav-link {
  border-radius: 50px !important;
  font-weight: 600;
  transition: all var(--ri-transition-fast);
}
.single-content-nav .nav-pills .nav-link:hover {
  background: var(--ri-accent-light);
}
.single-content-nav .nav-pills .nav-link.active {
  background: var(--ri-accent-gradient) !important;
  border-color: transparent !important;
  box-shadow: 0 2px 12px rgba(33,99,232,0.25);
}

/* --- Related Posts --- */
.related-posts .related-posts-title {
  position: relative;
  padding-left: 14px;
}
.related-posts .related-posts-title::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 20px;
  background: var(--ri-accent-gradient);
  border-radius: 4px;
}


/* ============================================================
   10. Comments
   ============================================================ */
#comments {
  border-radius: var(--ri-card-radius) !important;
  box-shadow: var(--ri-card-shadow);
  border: 1px solid var(--ri-border-color);
}
#comments .comments-title {
  position: relative;
  padding-left: 14px;
}
#comments .comments-title::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 20px;
  background: var(--ri-accent-gradient);
  border-radius: 4px;
}

/* Comment form */
#comments .comment-form input[type=text],
#comments .comment-form textarea {
  border-radius: var(--ri-radius-sm) !important;
  transition: border-color var(--ri-transition-fast), box-shadow var(--ri-transition-fast);
}
#comments .comment-form input[type=text]:focus,
#comments .comment-form textarea:focus {
  border-color: var(--ri-accent) !important;
  box-shadow: 0 0 0 3px var(--ri-accent-light) !important;
}

/* Submit button */
#comments .form-submit input[type=submit] {
  background: var(--ri-accent-gradient) !important;
  border-radius: 50px !important;
  padding: 0.4rem 1.8rem !important;
  font-weight: 600;
  letter-spacing: 0.5px;
  transition: all var(--ri-transition-fast) !important;
}
#comments .form-submit input[type=submit]:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(33,99,232,0.3);
}

/* Comment items */
#comments .comments-list .comment .comment-author img.avatar {
  transition: transform var(--ri-transition-fast);
}
#comments .comments-list .comment:hover .comment-author img.avatar {
  transform: scale(1.08);
}
#comments .comments-list .comment .comment-reply-link {
  border-radius: 50px;
  padding: 2px 10px;
  transition: all var(--ri-transition-fast);
}
#comments .comments-list .comment .comment-reply-link:hover {
  background: var(--ri-accent-light);
  color: var(--ri-accent) !important;
}
#comments .comments-list .comment .children {
  border-radius: var(--ri-radius) !important;
}

/* Comment reply title */
#comments .comment-reply-title {
  border-radius: var(--ri-radius-sm) !important;
}


/* ============================================================
   11. VIP / Pricing Page
   ============================================================ */
.vip-prices-page {
  border-radius: var(--ri-radius-lg);
  overflow: hidden;
}

.price-card {
  border-radius: var(--ri-card-radius) !important;
  box-shadow: var(--ri-card-shadow);
  border: 2px solid var(--ri-border-color) !important;
  transition: all var(--ri-transition) !important;
}
.price-card:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 16px 48px rgba(33,99,232,0.12) !important;
  border-color: var(--ri-accent) !important;
}
.price-card .price-header {
  border-radius: var(--ri-card-radius) var(--ri-card-radius) 0 0;
}
.price-card .price-body .price-ammount {
  letter-spacing: -1px;
}
.price-card .price-body .price-desc > li {
  padding: 4px 0;
  position: relative;
  padding-left: 18px;
}
.price-card .price-body .price-desc > li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: var(--ri-success);
  font-weight: 700;
  font-size: 13px;
}
.price-card .price-footer .btn {
  border-radius: 50px !important;
  font-weight: 600;
  transition: all var(--ri-transition-fast);
}
.price-card .price-footer .btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(33,99,232,0.25);
}


/* ============================================================
   12. User Center
   ============================================================ */
.uc-page .uc-menu-warp {
  border-radius: var(--ri-card-radius) !important;
  box-shadow: var(--ri-card-shadow);
  border: 1px solid var(--ri-border-color);
}
.uc-page .uc-menu-warp .menu-item a {
  border-radius: var(--ri-radius-sm);
  transition: all var(--ri-transition-fast);
  font-weight: 500;
}
.uc-page .uc-menu-warp .menu-item a:hover,
.uc-page .uc-menu-warp .menu-item.current-menu-item a {
  background: var(--ri-accent-light);
  color: var(--ri-accent) !important;
}

/* Coin balance */
.uc-page .coin-balance-body {
  border-radius: var(--ri-card-radius) !important;
  box-shadow: var(--ri-card-shadow);
  border: 1px solid var(--ri-border-color);
}

/* Coin pay card */
.uc-page .coin-pay-card {
  border-radius: var(--ri-card-radius) !important;
  transition: all var(--ri-transition-fast) !important;
}
.uc-page .coin-pay-card:hover,
.uc-page .coin-pay-card.active {
  border-color: var(--ri-accent) !important;
  box-shadow: 0 0 0 3px var(--ri-accent-light);
}

/* VIP CDK form */
.uc-page .vip-cdk-body form {
  border-radius: var(--ri-card-radius);
}


/* ============================================================
   13. Shop / Download / Pay
   ============================================================ */

/* Download warp */
.ri-down-warp .down-buy-warp .buy-btns .btn {
  border-radius: 50px !important;
  font-weight: 600;
  transition: all var(--ri-transition-fast);
}
.ri-down-warp .down-buy-warp .buy-btns .btn:hover {
  transform: translateY(-2px);
}

/* Buy box */
.ri-down-warp .down-buy-warp .buy-box {
  border-radius: var(--ri-radius);
}
.ri-down-warp .down-buy-warp .prices-info {
  border-radius: var(--ri-radius) !important;
}

/* Prices desc popup */
.ri-down-warp .down-buy-warp .prices-desc {
  border-radius: var(--ri-radius) !important;
}

/* Hide warp (secret content) */
.ri-hide-warp {
  border-radius: var(--ri-card-radius) !important;
  transition: all var(--ri-transition);
}
.ri-hide-warp:hover {
  box-shadow: var(--ri-card-shadow);
}
.ri-hide-warp .hide-buy-warp .buy-btns .btn {
  border-radius: 50px !important;
}

/* Pay select - 支付方式选择卡片 */
.pay-select-wrap {
  padding: 0 2px 8px
}

.pay-select-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 56px 16px 4px;
  border-bottom: 1px solid var(--ri-border);
  margin-bottom: 14px
}

.pay-select-icon {
  color: var(--ri-accent);
  flex-shrink: 0;
  opacity: .85
}

.pay-select-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--ri-text-heading);
  letter-spacing: .3px
}

.pay-select-sub {
  font-size: 11px;
  color: var(--ri-text-muted);
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 4px
}

.pay-select-sub::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #22c55e;
  box-shadow: 0 0 6px rgba(34,197,94,.4);
  animation: pay-pulse 2s ease-in-out infinite
}

@keyframes pay-pulse {
  0%, 100% { opacity: 1; transform: scale(1) }
  50% { opacity: .5; transform: scale(.8) }
}

.pay-select-box {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  padding: 0 2px 6px
}

.pay-select-box .pay-item {
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: var(--ri-radius-lg) !important;
  border: 2px solid var(--ri-border) !important;
  padding: 16px 10px;
  background: var(--ri-surface-2);
  transition: all var(--ri-transition);
  position: relative;
  overflow: hidden
}

.pay-select-box .pay-item::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(135deg, transparent 40%, rgba(255,255,255,.5));
  opacity: 0;
  transition: opacity var(--ri-transition)
}

.pay-select-box .pay-item:hover {
  transform: translateY(-3px);
  box-shadow: var(--ri-card-shadow-hover);
  border-color: var(--ri-border-hover) !important
}

.pay-select-box .pay-item:hover::before {
  opacity: 1
}

.pay-select-box .pay-item.active {
  border-color: var(--ri-accent) !important;
  background: var(--ri-accent-light);
  box-shadow: 0 0 0 3px var(--ri-accent-light), var(--ri-card-shadow-hover)
}

.pay-select-box .pay-item.active::after {
  content: '✓';
  position: absolute;
  top: 5px;
  right: 7px;
  font-size: 10px;
  color: var(--ri-accent);
  font-weight: 800
}

/* 支付方式专属配色 */
.pay-select-box .pay-item#alipay:hover,
.pay-select-box .pay-item#alipay.active {
  border-color: #1677ff !important;
  background: rgba(22,119,255,.06);
  box-shadow: 0 0 0 3px rgba(22,119,255,.1), var(--ri-card-shadow-hover)
}

.pay-select-box .pay-item#weixinpay:hover,
.pay-select-box .pay-item#weixinpay.active {
  border-color: #07c160 !important;
  background: rgba(7,193,96,.06);
  box-shadow: 0 0 0 3px rgba(7,193,96,.1), var(--ri-card-shadow-hover)
}

.pay-select-box .pay-item#trc20_usdt_pay:hover,
.pay-select-box .pay-item#trc20_usdt_pay.active {
  border-color: #26a17b !important;
  background: rgba(38,161,123,.06);
  box-shadow: 0 0 0 3px rgba(38,161,123,.1), var(--ri-card-shadow-hover)
}

.pay-select-box .pay-item#site_coin_pay:hover,
.pay-select-box .pay-item#site_coin_pay.active {
  border-color: #f59e0b !important;
  background: rgba(245,158,11,.06);
  box-shadow: 0 0 0 3px rgba(245,158,11,.1), var(--ri-card-shadow-hover)
}

.pay-select-box .pay-item#paypal:hover,
.pay-select-box .pay-item#paypal.active {
  border-color: #003087 !important;
  background: rgba(0,48,135,.06);
  box-shadow: 0 0 0 3px rgba(0,48,135,.1), var(--ri-card-shadow-hover)
}

.pay-select-box .pay-item+.pay-item {
  margin-top: 0 !important
}

.pay-select-box .pay-item>span {
  font-weight: 600;
  font-size: 14px;
  color: var(--ri-text-heading);
  max-width: 100px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color var(--ri-transition-fast)
}

.pay-select-box .pay-item:hover>span {
  color: var(--ri-text-heading)
}

.pay-select-box .pay-item>i {
  width: 30px;
  height: 30px;
  line-height: 30px;
  flex-shrink: 0;
  background-size: contain !important;
  transition: transform var(--ri-transition-fast)
}

.pay-select-box .pay-item:hover>i {
  transform: scale(1.12)
}

/* Pay body */
.pay-body-html {
  border-radius: var(--ri-card-radius);
}
.pay-body-html .qrcode > img {
  border-radius: var(--ri-radius);
  box-shadow: var(--ri-card-shadow);
}

/* Archive shop */
.archive-shop .info-box .article-meta {
  border-radius: var(--ri-radius) !important;
}


/* ============================================================
   14. Video
   ============================================================ */
.ri-video-warp {
  border-radius: var(--ri-card-radius);
  overflow: hidden;
}
.ri-video-warp .video-buy-warp .buy-btns .btn {
  border-radius: 50px !important;
}
.ri-video-warp .video-buy-warp .prices-info {
  border-radius: var(--ri-radius) !important;
}

.ri-video-list {
  border-radius: 0 var(--ri-card-radius) var(--ri-card-radius) 0;
}
.ri-video-list .video-nav .switch-video {
  border-radius: var(--ri-radius-sm) !important;
  transition: all var(--ri-transition-fast);
}
.ri-video-list .video-nav .switch-video:hover {
  background: var(--ri-accent);
  color: #fff;
}
.ri-video-list .video-nav .switch-video.active {
  background: var(--ri-accent) !important;
}

/* Video shortcode */
.ri-video-shortcode {
  border-radius: var(--ri-card-radius);
  overflow: hidden;
}

/* Media preview */
.archive-media-preview {
  border-radius: var(--ri-card-radius) !important;
}


/* ============================================================
   15. Login & Register
   ============================================================ */
.login-and-register .account-from {
  background: rgba(255,255,255,0.95);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: var(--ri-radius-lg);
  padding: 2rem;
  box-shadow: 0 8px 40px rgba(0,0,0,0.15);
}
.login-and-register .account-from .btn {
  border-radius: 50px !important;
  font-weight: 600;
}


/* ============================================================
   16. Share
   ============================================================ */
.share-body {
  border-radius: var(--ri-card-radius);
  overflow: hidden;
}
.share-body .share-url {
  border-radius: var(--ri-radius-sm);
  font-weight: 500;
}
.share-body .share-qrcode img {
  border-radius: var(--ri-radius);
}


/* ============================================================
   17. Pagination
   ============================================================ */
.custom-nav .pagination a,
.custom-nav .pagination > span {
  border-radius: var(--ri-radius-sm) !important;
  font-weight: 500;
  transition: all var(--ri-transition-fast);
}
.custom-nav .pagination a:hover,
.custom-nav .pagination > span:hover {
  background: var(--ri-accent-light) !important;
  color: var(--ri-accent) !important;
}
.custom-nav .pagination a.current,
.custom-nav .pagination > span.current {
  background: var(--ri-accent-gradient) !important;
  box-shadow: 0 2px 8px rgba(33,99,232,0.25);
}


/* ============================================================
   18. Footer — 科技风重构
   ============================================================ */

/* --- 主底部区域（亮色模式） --- */
.ri-footer-main {
  background: #f7f8fa;
  padding: 48px 0 36px;
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(0,0,0,0.06);
}
.ri-footer-main::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--ri-accent), #7c3aed, transparent);
}

.ri-footer-grid {
  display: grid;
  grid-template-columns: 1.4fr repeat(4, 1fr);
  gap: 40px;
  align-items: start;
}

/* --- 品牌区 --- */
.ri-footer-brand .ri-footer-logo { margin-bottom: 16px; }
.ri-footer-brand .ri-footer-logo .logo img { max-height: 36px; }
.ri-footer-brand .ri-footer-logo .logo.text {
  color: #191a1f;
  font-size: 1.3rem;
  font-weight: 800;
  letter-spacing: 1px;
}
.ri-footer-desc {
  color: #888;
  font-size: 13px;
  line-height: 1.8;
  margin-bottom: 20px;
  max-width: 280px;
}

/* 社交图标 */
.ri-footer-social { display: flex; gap: 8px; }
.ri-footer-social a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 8px;
  background: rgba(0,0,0,0.04);
  color: #666;
  font-size: 14px;
  transition: all var(--ri-transition-fast);
  border: 1px solid rgba(0,0,0,0.06);
}
.ri-footer-social a:hover {
  background: var(--ri-accent);
  color: #fff;
  border-color: var(--ri-accent);
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(33,99,232,0.3);
}

/* --- 菜单列 --- */
.ri-footer-col-title {
  color: #191a1f;
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 18px;
  letter-spacing: 0.5px;
  position: relative;
  padding-bottom: 10px;
}
.ri-footer-col-title::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 20px;
  height: 2px;
  background: var(--ri-accent-gradient);
  border-radius: 2px;
}
.ri-footer-col-links { list-style: none; padding: 0; margin: 0; }
.ri-footer-col-links li { margin-bottom: 0; }
.ri-footer-col-links a {
  display: block;
  padding: 5px 0;
  color: #888;
  font-size: 13px;
  transition: all var(--ri-transition-fast);
  position: relative;
}
.ri-footer-col-links a:hover { color: var(--ri-accent); padding-left: 8px; }
.ri-footer-col-links a::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 1px;
  background: var(--ri-accent);
  transition: width var(--ri-transition-fast);
}
.ri-footer-col-links a:hover::before { width: 4px; }

/* --- 版权栏 --- */
.ri-footer-bottom {
  background: #eef0f3;
  padding: 16px 0;
  border-top: 1px solid rgba(0,0,0,0.06);
}
.ri-footer-bottom-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
}
.ri-footer-copyright { font-size: 12px; color: #aaa; }
.ri-footer-copyright a { color: #888; transition: color var(--ri-transition-fast); }
.ri-footer-copyright a:hover { color: var(--ri-accent); }
.ri-footer-icp { display: flex; gap: 16px; font-size: 12px; color: #aaa; }
.ri-footer-icp a { color: #aaa; transition: color var(--ri-transition-fast); }
.ri-footer-icp a:hover { color: #666; }

/* --- 友情链接 --- */
.ri-footer-friends {
  background: #eef0f3;
  padding: 12px 0;
  border-top: 1px solid rgba(0,0,0,0.04);
}
.ri-footer-friends .container { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.ri-footer-friends-label {
  font-size: 12px;
  color: #aaa;
  flex-shrink: 0;
  padding: 3px 10px;
  background: rgba(0,0,0,0.04);
  border-radius: 4px;
}
.ri-footer-friends-list { display: flex; flex-wrap: wrap; gap: 4px; }
.ri-footer-friends-list a {
  font-size: 12px;
  color: #aaa;
  padding: 3px 10px;
  border-radius: 4px;
  transition: all var(--ri-transition-fast);
}
.ri-footer-friends-list a:hover { color: var(--ri-accent); background: rgba(33,99,232,0.06); }

/* --- 响应式 --- */
@media (max-width: 991.98px) {
  .ri-footer-grid { grid-template-columns: 1fr 1fr; gap: 30px; }
  .ri-footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 575.98px) {
  .ri-footer-grid { grid-template-columns: 1fr; gap: 24px; }
  .ri-footer-main { padding: 32px 0 24px; }
  .ri-footer-bottom-inner { flex-direction: column; text-align: center; }
  .ri-footer-icp { justify-content: center; }

  /* 移动端隐藏品牌区（默认） */
  .ri-mobile-hide-brand { display: none !important; }

  /* 移动端品牌区居中美化 */
  .ri-footer-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 8px 0 4px;
  }
  .ri-footer-brand .ri-footer-logo { margin-bottom: 10px; }
  .ri-footer-brand .ri-footer-logo .logo img { max-height: 30px; }
  .ri-footer-desc {
    max-width: 260px;
    font-size: 12px;
    line-height: 1.7;
    margin-bottom: 14px;
    color: #999;
  }
  .ri-footer-social {
    justify-content: center;
    gap: 10px;
  }
  .ri-footer-social a {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    font-size: 14px;
  }
}

/* --- 移动端"已经到底了"提示 --- */
.ri-footer-mobile-bottom-tip {
  display: none;
}
@media (max-width: 575.98px) {
  .ri-footer-mobile-bottom-tip {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 20px 0 8px;
    grid-column: 1 / -1;
  }
  .ri-footer-mobile-bottom-tip.is-hidden {
    display: none;
  }
  .ri-bottom-tip-icon {
    font-size: 14px;
    opacity: .6;
  }
  .ri-bottom-tip-text {
    font-size: 13px;
    color: #aaa;
    letter-spacing: .5px;
  }
}
[data-bs-theme=dark] .ri-bottom-tip-text { color: rgba(255,255,255,.35); }


/* ============================================================
   18b. Footer — 暗黑模式
   ============================================================ */
[data-bs-theme=dark] .ri-footer-main {
  background: #0d0f14;
  border-top-color: rgba(255,255,255,0.04);
}
[data-bs-theme=dark] .ri-footer-brand .ri-footer-logo .logo img {
  filter: brightness(0) invert(1);
  opacity: 0.9;
}
[data-bs-theme=dark] .ri-footer-brand .ri-footer-logo .logo.text { color: #fff; }
[data-bs-theme=dark] .ri-footer-desc { color: rgba(255,255,255,0.45); }
[data-bs-theme=dark] .ri-footer-social a {
  background: rgba(255,255,255,0.06);
  color: rgba(255,255,255,0.5);
  border-color: rgba(255,255,255,0.06);
}
[data-bs-theme=dark] .ri-footer-social a:hover { color: #fff; }
[data-bs-theme=dark] .ri-footer-col-title { color: rgba(255,255,255,0.85); }
[data-bs-theme=dark] .ri-footer-col-links a { color: rgba(255,255,255,0.4); }
[data-bs-theme=dark] .ri-footer-col-links a:hover { color: #fff; }
[data-bs-theme=dark] .ri-footer-bottom { background: #08090d; border-top-color: rgba(255,255,255,0.05); }
[data-bs-theme=dark] .ri-footer-copyright { color: rgba(255,255,255,0.3); }
[data-bs-theme=dark] .ri-footer-copyright a { color: rgba(255,255,255,0.45); }
[data-bs-theme=dark] .ri-footer-icp { color: rgba(255,255,255,0.3); }
[data-bs-theme=dark] .ri-footer-icp a { color: rgba(255,255,255,0.35); }
[data-bs-theme=dark] .ri-footer-icp a:hover { color: rgba(255,255,255,0.6); }
[data-bs-theme=dark] .ri-footer-friends { background: #08090d; border-top-color: rgba(255,255,255,0.04); }
[data-bs-theme=dark] .ri-footer-friends-label { color: rgba(255,255,255,0.25); background: rgba(255,255,255,0.04); }
[data-bs-theme=dark] .ri-footer-friends-list a { color: rgba(255,255,255,0.3); }
[data-bs-theme=dark] .ri-footer-friends-list a:hover { color: rgba(255,255,255,0.7); background: rgba(255,255,255,0.05); }


/* ============================================================
   19. Rollbar & Back to Top — 独立圆形悬浮按钮
   ============================================================ */

/* --- 容器：垂直居中偏下 --- */
.rollbar {
  position: fixed !important;
  right: 24px !important;
  bottom: 50% !important;
  transform: translateY(50%) !important;
  z-index: 80 !important;
  visibility: visible !important;
  opacity: 1 !important;
  display: block !important;
}
.rollbar .actions {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 12px !important;
  overflow: visible !important;
  box-shadow: none !important;
  border: none !important;
  border-radius: 0 !important;
  background: transparent !important;
  width: auto !important;
  position: static !important;
}

/* --- 每个按钮：独立圆形 --- */
.rollbar .actions li.rollbar-item {
  position: relative !important;
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;
  background: #fff !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.1) !important;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
  cursor: pointer !important;
  overflow: visible !important;
  border: none !important;
}
/* 弹窗与图标之间的无缝桥接三角（从图标左边缘指向弹窗右边缘） */
.rollbar .actions li.rollbar-item::before {
  content: '';
  position: absolute;
  top: 50%;
  left: -14px;
  width: 14px;
  height: 48px;
  transform: translateY(-50%);
  z-index: 1;
}
.rollbar .actions li.rollbar-item:hover {
  transform: translateY(-3px) !important;
  box-shadow: 0 6px 24px rgba(0,0,0,0.15) !important;
}
.rollbar .actions li.rollbar-item > a {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  height: 100% !important;
  cursor: pointer !important;
  color: #595d69 !important;
  text-decoration: none !important;
  border: none !important;
  border-radius: 50% !important;
  padding: 0 !important;
  transition: color 0.2s !important;
  position: relative !important;
  opacity: 1 !important;
  text-align: center !important;
}

/* 图标大小 — 始终居中 */
.rollbar .actions li.rollbar-item > a > i {
  font-size: 17px !important;
  line-height: 1 !important;
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
  flex-shrink: 0 !important;
  display: inline-block !important;
  margin: 0 !important;
}
.rollbar .actions li.rollbar-item:hover > a > i {
  transform: scale(1.15) !important;
}

/* 链接项：图标+文字 */
.rollbar .actions li.rollbar-item > a > span {
  display: block !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  margin-top: 2px !important;
  color: #595d69 !important;
  transition: color 0.2s !important;
  max-width: 48px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  text-align: center !important;
  letter-spacing: 0.3px !important;
  padding: 0 !important;
  line-height: 1.2 !important;
  position: static !important;
}

/* --- 各类型悬停颜色 --- */
.rollbar-item[data-rollbar-type="cart"]:hover { background: linear-gradient(135deg, #ff6b35, #ff4757) !important; }
.rollbar-item[data-rollbar-type="cart"]:hover > a { color: #fff !important; }

.rollbar-item[data-rollbar-type="wechat"]:hover { background: #07c160 !important; }
.rollbar-item[data-rollbar-type="wechat"]:hover > a { color: #fff !important; }

.rollbar-item[data-rollbar-type="qq"]:hover { background: #12b7f5 !important; }
.rollbar-item[data-rollbar-type="qq"]:hover > a { color: #fff !important; }

.rollbar-item[data-rollbar-type="phone"]:hover { background: #ff6b35 !important; }
.rollbar-item[data-rollbar-type="phone"]:hover > a { color: #fff !important; }

.rollbar-item[data-rollbar-type="email"]:hover { background: #2163e8 !important; }
.rollbar-item[data-rollbar-type="email"]:hover > a { color: #fff !important; }

.rollbar-item[data-rollbar-type="link"]:hover { background: var(--ri-accent) !important; }
.rollbar-item[data-rollbar-type="link"]:hover > a { color: #fff !important; }
.rollbar-item[data-rollbar-type="link"]:hover > a > span { color: #fff !important; }

/* ============================================================
   19b. Rollbar Cart Badge — 红点浮在图标右上角
   ============================================================ */
.rollbar-cart-badge {
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 18px;
  height: 18px;
  background: #ff4757;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  border-radius: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  box-shadow: 0 2px 8px rgba(255,71,87,0.5);
  border: 2px solid #fff;
  z-index: 2;
  line-height: 1;
  pointer-events: none;
}

/* 购物车面板 */
.rollbar-cart-panel {
  position: absolute;
  right: 60px;
  top: 50%;
  width: 360px;
  max-height: 520px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 12px 48px rgba(0,0,0,0.18);
  border: 1px solid rgba(0,0,0,0.06);
  display: flex;
  flex-direction: column;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-50%) translateX(10px) scale(0.95);
  transform-origin: right center;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
  z-index: 1000;
}
.rollbar-cart-panel.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(0) scale(1);
}
@media (max-width: 767.98px) {
  .rollbar-cart-panel { width: 300px; max-height: 400px; }
}


/* ============================================================
   19c. Rollbar Popup — QR码 / 电话 / 邮箱
   ============================================================ */
.rollbar-popup {
  position: absolute !important;
  right: 60px !important;
  top: 50% !important;
  transform: translateY(-50%) translateX(10px) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  z-index: 999 !important;
}
.rollbar-item:hover .rollbar-popup {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateY(-50%) translateX(0) !important;
  pointer-events: auto !important;
}

/* Popup inner box */
.rollbar-popup-inner {
  background: #fff !important;
  border-radius: 14px !important;
  box-shadow: 0 8px 36px rgba(0,0,0,0.16) !important;
  position: relative !important;
  white-space: nowrap !important;
}

/* Arrow (right side) */
.rollbar-popup-inner::after {
  content: '';
  position: absolute;
  right: -7px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  width: 14px;
  height: 14px;
  background: #fff;
  box-shadow: 4px -2px 6px rgba(0,0,0,0.04);
  border-radius: 2px;
}

/* --- QR popup --- */
.rollbar-popup-qr {
  width: auto;
}
.rollbar-popup-qr .rollbar-popup-inner {
  padding: 16px;
  text-align: center;
  width: 140px;
}
.rollbar-popup-qr .rollbar-popup-inner img {
  width: 110px;
  height: 110px;
  border-radius: 8px;
  display: block;
  border: 1px solid #f0f0f0;
  object-fit: cover;
}
.rollbar-popup-qr .qr-label {
  font-size: 12px;
  color: #888;
  margin-top: 8px;
  font-weight: 500;
  letter-spacing: 0.5px;
}

/* --- Phone popup --- */
.rollbar-popup-phone .rollbar-popup-inner {
  padding: 18px 22px;
  text-align: center;
  white-space: normal;
  min-width: 180px;
}
.rollbar-popup-phone .rollbar-popup-inner::after {
  border-left: 1px solid rgba(0,0,0,0.06);
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.rollbar-popup-phone-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #ff6b35, #ff4757);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 10px;
}
.rollbar-popup-phone-icon i {
  color: #fff;
  font-size: 16px;
}
.rollbar-popup-phone-num {
  font-size: 16px;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 12px;
  letter-spacing: 0.5px;
}
.rollbar-popup-phone-btns {
  display: flex;
  gap: 8px;
}
.rollbar-action-btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 14px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s;
  cursor: pointer;
  border: none;
}
.rollbar-btn-call {
  background: #07c160;
  color: #fff;
}
.rollbar-btn-call:hover {
  background: #06ad56;
  color: #fff;
  transform: translateY(-1px);
}
.rollbar-btn-sms {
  background: #f0f2f5;
  color: #595d69;
}
.rollbar-btn-sms:hover {
  background: #e4e6e9;
  color: #333;
  transform: translateY(-1px);
}

/* --- Email popup --- */
.rollbar-popup-email .rollbar-popup-inner {
  padding: 18px 22px;
  text-align: center;
  white-space: normal;
  min-width: 200px;
}
.rollbar-popup-email .rollbar-popup-inner::after {
  border-left: 1px solid rgba(0,0,0,0.06);
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.rollbar-popup-email-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, #2163e8, #4f8cff);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 10px;
}
.rollbar-popup-email-icon i {
  color: #fff;
  font-size: 16px;
}
.rollbar-popup-email-addr {
  font-size: 14px;
  font-weight: 700;
  color: #1a1a2e;
  margin-bottom: 12px;
  word-break: break-all;
}
.rollbar-popup-email-btns {
  display: flex;
  justify-content: center;
}
.rollbar-btn-mail {
  background: linear-gradient(135deg, #2163e8, #4f8cff);
  color: #fff;
}
.rollbar-btn-mail:hover {
  background: linear-gradient(135deg, #1a52c7, #3d7aee);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(33,99,232,0.3);
}

/* Per-type popup accent border */
.rollbar-item[data-rollbar-type="wechat"] .rollbar-popup-inner { border-top: 3px solid #07c160; }
.rollbar-item[data-rollbar-type="qq"] .rollbar-popup-inner { border-top: 3px solid #12b7f5; }
.rollbar-item[data-rollbar-type="phone"] .rollbar-popup-inner { border-top: 3px solid #ff6b35; }
.rollbar-item[data-rollbar-type="email"] .rollbar-popup-inner { border-top: 3px solid #2163e8; }


/* ============================================================
   19d. Dark Mode — Rollbar
   ============================================================ */
[data-bs-theme=dark] .rollbar .actions li.rollbar-item {
  background: #1e2024 !important;
  box-shadow: 0 2px 12px rgba(0,0,0,0.3) !important;
}
[data-bs-theme=dark] .rollbar .actions li.rollbar-item > a {
  color: #a1a1a8 !important;
}
[data-bs-theme=dark] .rollbar .actions li.rollbar-item > a > span {
  color: #a1a1a8 !important;
}
[data-bs-theme=dark] .rollbar-cart-badge {
  border-color: #1e2024 !important;
}
[data-bs-theme=dark] .rollbar-cart-panel {
  background: #1e2024 !important;
  border-color: rgba(255,255,255,0.06) !important;
}
[data-bs-theme=dark] .rollbar-popup-inner {
  background: #26262b !important;
}
[data-bs-theme=dark] .rollbar-popup-inner::after {
  background: #26262b !important;
}
[data-bs-theme=dark] .rollbar-popup-qr .rollbar-popup-inner img {
  border-color: #333 !important;
}
[data-bs-theme=dark] .rollbar-popup-phone-num {
  color: #e0e0e0 !important;
}
[data-bs-theme=dark] .rollbar-popup-email-addr {
  color: #e0e0e0 !important;
}
[data-bs-theme=dark] .rollbar-btn-sms {
  background: #333 !important;
  color: #ccc !important;
}
[data-bs-theme=dark] .rollbar-btn-sms:hover {
  background: #444 !important;
  color: #fff !important;
}
/* 暗色模式各类型 hover 颜色 */
[data-bs-theme=dark] .rollbar-item[data-rollbar-type="cart"]:hover {
  background: linear-gradient(135deg, #ff6b35, #ff4757) !important;
}
[data-bs-theme=dark] .rollbar-item[data-rollbar-type="cart"]:hover > a {
  color: #fff !important;
}
[data-bs-theme=dark] .rollbar-item[data-rollbar-type="wechat"]:hover {
  background: #07c160 !important;
}
[data-bs-theme=dark] .rollbar-item[data-rollbar-type="wechat"]:hover > a {
  color: #fff !important;
}
[data-bs-theme=dark] .rollbar-item[data-rollbar-type="qq"]:hover {
  background: #12b7f5 !important;
}
[data-bs-theme=dark] .rollbar-item[data-rollbar-type="qq"]:hover > a {
  color: #fff !important;
}
[data-bs-theme=dark] .rollbar-item[data-rollbar-type="phone"]:hover {
  background: #ff6b35 !important;
}
[data-bs-theme=dark] .rollbar-item[data-rollbar-type="phone"]:hover > a {
  color: #fff !important;
}
[data-bs-theme=dark] .rollbar-item[data-rollbar-type="email"]:hover {
  background: #2163e8 !important;
}
[data-bs-theme=dark] .rollbar-item[data-rollbar-type="email"]:hover > a {
  color: #fff !important;
}
[data-bs-theme=dark] .rollbar-item[data-rollbar-type="link"]:hover {
  background: var(--ri-accent) !important;
}
[data-bs-theme=dark] .rollbar-item[data-rollbar-type="link"]:hover > a {
  color: #fff !important;
}
[data-bs-theme=dark] .rollbar-item[data-rollbar-type="link"]:hover > a > span {
  color: #fff !important;
}
/* 暗色弹窗箭头边框 */
[data-bs-theme=dark] .rollbar-popup-phone .rollbar-popup-inner::after,
[data-bs-theme=dark] .rollbar-popup-email .rollbar-popup-inner::after {
  border-color: #26262b !important;
}
[data-bs-theme=dark] .physical-badge {
  box-shadow: 0 2px 8px rgba(255, 107, 53, 0.6);
}

.back-top {
  position: fixed;
  right: 24px;
  bottom: 44px;
  width: 46px;
  height: 46px;
  border-radius: 50% !important;
  background: #fff;
  box-shadow: 0 2px 12px rgba(0,0,0,0.1);
  border: none !important;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 79;
  transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
  color: #595d69;
}
.back-top:hover {
  background: var(--ri-accent) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 6px 24px rgba(33,99,232,0.3) !important;
  transform: translateY(-3px);
}
.back-top i {
  font-size: 17px;
}


/* ============================================================
   20. Mobile Bottom Menu (m-navbar)
   参考样式：深色毛玻璃 + 圆形弹出动画 + 弧形跟随
   ============================================================ */

/* ---- 容器：固定底部 + 毛玻璃 ---- */
html body .m-navbar {
  display: none !important;
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1040 !important;
  background: rgba(29, 29, 39, 0.97) !important;
  backdrop-filter: saturate(180%) blur(20px) !important;
  -webkit-backdrop-filter: saturate(180%) blur(20px) !important;
  border: none !important;
  box-shadow: 0 -2px 30px rgba(0,0,0,0.25) !important;
  padding: 0 !important;
  height: auto !important;
  border-radius: 0 !important;
}
html body .m-navbar::before { display: none !important; }

/* ---- 弧形装饰条（clip-path，跟随 active） ---- */
html body .m-navbar .m-navbar-blob {
  position: absolute;
  bottom: 98%;
  left: 0;
  width: 20%;
  height: 18px;
  background: rgba(29, 29, 39, 0.97);
  clip-path: url(#m-navbar-clip);
  transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  pointer-events: none;
  z-index: 1;
}

/* ---- SVG clip-path 定义（隐藏） ---- */
.m-navbar-clip-svg {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

/* ---- 菜单列表 ---- */
html body .m-navbar ul {
  display: flex !important;
  align-items: center !important;
  justify-content: space-around !important;
  height: 65px !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  width: 100% !important;
  position: relative;
}

/* ---- 菜单项 ---- */
html body .m-navbar li {
  flex: 1 !important;
  text-align: center !important;
  position: relative;
  overflow: visible !important;
  font-size: 12px !important;
}

/* ---- 菜单链接 ---- */
html body .m-navbar li a {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 8px 0 6px !important;
  margin-top: 0 !important;
  color: rgba(255,255,255,0.4) !important;
  text-decoration: none !important;
  position: relative !important;
  z-index: 2 !important;
  transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1),
              color 0.3s ease !important;
  -webkit-tap-highlight-color: transparent;
}

/* ---- 圆形背景（默认隐藏） ---- */
html body .m-navbar li a::before {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  width: 48px !important;
  height: 48px !important;
  margin: -28px 0 0 -24px !important;
  border-radius: 50% !important;
  background: var(--m-item-color, #ff8c00) !important;
  transform: scale(0) !important;
  transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
  z-index: -1 !important;
}

/* ---- 图标 ---- */
html body .m-navbar li a > i {
  font-size: 14px !important;
  margin-bottom: 1px !important;
  display: block !important;
  position: relative !important;
  z-index: 1 !important;
  transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) !important;
}

/* ---- 文字 ---- */
html body .m-navbar li a > span {
  font-size: 10px !important;
  font-weight: 500 !important;
  letter-spacing: 0.3px !important;
  position: relative !important;
  z-index: 1 !important;
  transition: color 0.3s ease !important;
}

/* ---- Active 状态：上移 + 圆形弹出 + 图标放大 ---- */
html body .m-navbar li a.m-navbar-active,
html body .m-navbar li a:active {
  color: #fff !important;
  transform: translateY(-8px) !important;
}
html body .m-navbar li a.m-navbar-active::before,
html body .m-navbar li a:active::before {
  transform: scale(1) !important;
}
html body .m-navbar li a.m-navbar-active > i,
html body .m-navbar li a:active > i {
  transform: scale(1.15) !important;
}

/* ---- 暗色模式 ---- */
[data-bs-theme=dark] html body .m-navbar {
  background: rgba(15, 15, 23, 0.98) !important;
}
[data-bs-theme=dark] html body .m-navbar .m-navbar-blob {
  background: rgba(15, 15, 23, 0.98);
}

/* ---- 底部间距 ---- */
@media (max-width: 767.98px) {
  html body .m-navbar { display: block !important; }
  .ri-footer-bottom { margin-bottom: 65px !important; }
}


/* ============================================================
   21. Cards & General Components
   ============================================================ */
.card {
  border-radius: var(--ri-card-radius) !important;
  box-shadow: var(--ri-card-shadow);
  border: 1px solid var(--ri-border-color);
  transition: all var(--ri-transition);
}
.card:hover {
  box-shadow: var(--ri-card-shadow-hover);
}

/* Avatar */
.avatar-img {
  transition: transform var(--ri-transition-fast);
}
.avatar:hover .avatar-img {
  transform: scale(1.05);
}

/* Badge */
.badge {
  font-weight: 600;
  letter-spacing: 0.3px;
}

/* Buttons global */
.btn {
  transition: all var(--ri-transition-fast) !important;
}
.btn:hover {
  transform: translateY(-1px);
}


/* ============================================================
   23. Breadcrumb
   ============================================================ */
.breadcrumb > li {
  font-weight: 500;
}
.breadcrumb > li a {
  transition: color var(--ri-transition-fast);
}
.breadcrumb > li a:hover {
  color: var(--ri-accent) !important;
}


/* ============================================================
   24. Miscellaneous
   ============================================================ */

/* Translate select */
.translateSelectLanguage {
  border-radius: var(--ri-radius-sm) !important;
  transition: all var(--ri-transition-fast);
}
.translateSelectLanguage:hover {
  background: var(--ri-accent-light);
}

/* Infinite scroll */
.page-nav .infinite-scroll-button .btn {
  border-radius: 50px !important;
}

/* h-navList */
.h-navList {
  border-radius: var(--ri-card-radius) !important;
  box-shadow: var(--ri-card-shadow);
  border: 1px solid var(--ri-border-color);
}

/* Image lazy loading animation */
.post-item .entry-media .media-img.lazy.loaded {
  animation: lazy_fade 0.5s ease;
}

/* Code highlight copy button */
.hljs-block-header .hljs-block-copy {
  border-radius: 0 0 0 var(--ri-radius) !important;
}

/* Site ads */
.site-addswarp {
  border-radius: var(--ri-card-radius);
  overflow: hidden;
}

/* Media modal */
.media-modal {
  border-radius: var(--ri-radius-lg) !important;
}

/* Archive media preview */
.archive-media-preview .preview-text {
  border-radius: var(--ri-radius-sm) 0 var(--ri-radius-sm) 0;
}

/* Gallery */
.post-content .gallery .gallery-item img {
  border-radius: var(--ri-radius-sm) !important;
}

/* Down input */
.ri-down-warp .down-buy-warp .buy-box .prices-ul {
  border-radius: var(--ri-radius);
}

/* Video hero */
.video-hero .video-hero-container {
  border-radius: var(--ri-card-radius);
  overflow: hidden;
}

/* Scratch card */
.home-scratch-card .scratch-item .txt-code {
  border-radius: var(--ri-radius);
}

/* User menu */
.uc-page .uc-menu-warp .menu-item a {
  position: relative;
}
.uc-page .uc-menu-warp .menu-item.current-menu-item a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 2.5px;
  background: var(--ri-accent-gradient);
  border-radius: 3px;
}

/* Tougao page */
#post-form {
  border-radius: var(--ri-card-radius);
}
.tougao_thumbnail {
  border-radius: var(--ri-radius) !important;
  transition: all var(--ri-transition-fast);
}
.tougao_thumbnail:hover {
  border-color: var(--ri-accent) !important;
  background: var(--ri-accent-light);
}


/* ============================================================
   25. Dark Mode Comprehensive Overrides
   ============================================================ */
[data-bs-theme=dark] {
  --ri-body-bg: #0f0f10;
  --ri-card-bg: #191b1d;
  --ri-card-shadow: 0 1px 3px rgba(0,0,0,0.2), 0 4px 12px rgba(0,0,0,0.15);
  --ri-card-shadow-hover: 0 4px 12px rgba(0,0,0,0.25), 0 12px 32px rgba(0,0,0,0.2);
  --ri-border-color: rgba(255,255,255,0.06);
  --ri-accent-light: rgba(33, 99, 232, 0.12);
}

[data-bs-theme=dark] .site-header {
  background-color: rgba(0,0,0,0.85) !important;
  border-bottom-color: rgba(255,255,255,0.06);
}

[data-bs-theme=dark] .search-form {
  background-color: #191b1d !important;
  border-color: rgba(255,255,255,0.06);
}

[data-bs-theme=dark] .post-item {
  background-color: #191b1d !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.2);
}

[data-bs-theme=dark] .sidebar .widget {
  background-color: #191b1d !important;
  border-color: rgba(255,255,255,0.06);
}

[data-bs-theme=dark] .filter-warp {
  background: #191b1d !important;
  border-color: rgba(255,255,255,0.06);
}

[data-bs-theme=dark] #comments {
  background-color: #191b1d !important;
  border-color: rgba(255,255,255,0.06);
}

[data-bs-theme=dark] .price-card {
  border-color: rgba(255,255,255,0.06) !important;
}
[data-bs-theme=dark] .price-card:hover {
  border-color: var(--ri-accent) !important;
}

[data-bs-theme=dark] .uc-page .uc-menu-warp {
  background: #191b1d;
  border-color: rgba(255,255,255,0.06);
}

[data-bs-theme=dark] .card {
  background-color: #191b1d !important;
  border-color: rgba(255,255,255,0.06);
}

[data-bs-theme=dark] .h-navList {
  background-color: #191b1d !important;
  border-color: rgba(255,255,255,0.06);
}

[data-bs-theme=dark] .site-footer {
  background: #191b1d !important;
  border-top-color: rgba(255,255,255,0.06);
}

[data-bs-theme=dark] .off-canvas {
  background-color: #222529 !important;
}

[data-bs-theme=dark] .login-and-register .account-from {
  background: rgba(25,27,29,0.95);
}

[data-bs-theme=dark] .tags-page-warp .tag-item,
[data-bs-theme=dark] .links-page-warp .link-item {
  background: #191b1d !important;
  border-color: rgba(255,255,255,0.06);
}

[data-bs-theme=dark] .archive-shop .article-meta {
  background: rgba(255,255,255,0.04) !important;
}

[data-bs-theme=dark] .post-content blockquote {
  background: rgba(33,99,232,0.08) !important;
  color: #ccc;
}

[data-bs-theme=dark] .back-top {
  background: #1e2024 !important;
  color: #a1a1a8;
  box-shadow: 0 2px 12px rgba(0,0,0,0.3);
  border-color: transparent;
}
[data-bs-theme=dark] .back-top:hover {
  background: var(--ri-accent) !important;
  color: #fff !important;
}

[data-bs-theme=dark] .home-division .division-item {
  background-color: #191b1d !important;
  border-color: rgba(255,255,255,0.06);
}
[data-bs-theme=dark] .home-title-post .list-posts ul {
  background-color: #191b1d !important;
}
[data-bs-theme=dark] .home-scratch-card .scratch-item .code-content {
  background-color: #191b1d !important;
  border-color: rgba(255,255,255,0.06);
}

[data-bs-theme=dark] .entry-tags > a {
  background-color: rgba(255,255,255,0.06) !important;
  color: #a1a1a8 !important;
}
[data-bs-theme=dark] .entry-tags > a:hover {
  background-color: var(--ri-accent) !important;
  color: #fff !important;
}

[data-bs-theme=dark] .entry-navigation .entry-page-prev,
[data-bs-theme=dark] .entry-navigation .entry-page-next {
  background: #191b1d !important;
  border-color: rgba(255,255,255,0.06);
}

[data-bs-theme=dark] .ri-hide-warp {
  background-color: #2a2c31 !important;
  border-color: rgba(255,255,255,0.08);
}

[data-bs-theme=dark] .ri-down-warp .down-buy-warp .buy-box {
  background-color: #222529 !important;
}

[data-bs-theme=dark] .pay-select-box .pay-item {
  border-color: rgba(255,255,255,0.08) !important;
  background: #1e2024
}

[data-bs-theme=dark] .pay-select-box .pay-item:hover {
  box-shadow: 0 8px 24px rgba(0,0,0,.3)
}

[data-bs-theme=dark] .pay-select-box .pay-item.active {
  background: rgba(33,99,232,.1)
}

[data-bs-theme=dark] .pay-select-box .pay-item>span {
  color: #f3f4f6
}

[data-bs-theme=dark] .pay-select-header {
  border-bottom-color: rgba(255,255,255,0.06)
}

[data-bs-theme=dark] .pay-select-title {
  color: #f9fafb
}

[data-bs-theme=dark] .pay-select-sub {
  color: #9ca3af
}

[data-bs-theme=dark] .post-content table {
  border-color: rgba(255,255,255,0.06);
}
[data-bs-theme=dark] .post-content table th {
  background: rgba(33,99,232,0.1);
}

[data-bs-theme=dark] .uc-page .coin-balance-body {
  background: linear-gradient(50deg, #191b1d, #272b2f) !important;
}

[data-bs-theme=dark] .vip-prices-page { background: #0f0f10; }

[data-bs-theme=dark] ::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, #444, #333);
}
[data-bs-theme=dark] ::-webkit-scrollbar-thumb:hover {
  background: linear-gradient(180deg, #555, #444);
}

[data-bs-theme=dark] .post-content a:not(.btn) {
  color: #7fa4f1;
  border-bottom-color: rgba(127,164,241,0.2);
}
[data-bs-theme=dark] .post-content a:not(.btn):hover {
  color: #a5c0f5;
  border-bottom-color: #a5c0f5;
}


/* ============================================================
   26. Responsive Adjustments
   ============================================================ */
@media (max-width: 991.98px) {
  .rollbar { right: 30px !important; }
  .back-top { right: 30px !important; }
}

@media (max-width: 767.98px) {
  .post-item .entry-title { font-size: 0.9rem; }
  .post-item .entry-desc { font-size: 0.72rem; }
  .sidebar .widget { padding: 1rem !important; }
  .archive-hero { border-radius: 0; }
  .filter-warp { border-radius: var(--ri-radius-sm); }

  .m-navbar { /* display 由 m-navbar 样式区块统一控制 */ }
  .rollbar { display: none !important; }
  .back-top { display: none !important; }

  .ri-footer-bottom { margin-bottom: 56px !important; }
}

@media (max-width: 575.98px) {
  .post-content { font-size: 15px; }
  .article-header .post-title { font-size: 1.2rem; }
  .card { padding: 1rem !important; }

  #comments .comment-form .comment-form-author,
  #comments .comment-form .comment-form-email,
  #comments .comment-form .comment-form-url {
    width: 100% !important;
    margin: 0 0 8px !important;
  }
}


/* ============================================================
   27. Content Protection Styles
   ============================================================ */

/* 隐藏 video.js 下载按钮 */
.vjs-download-button,
.vjs-control-bar .vjs-download-control,
.vjs-control-bar [title="Download"],
.vjs-control-bar [title="download"] {
  display: none !important;
}

/* 隐藏 video 默认下载控制 */
video::-webkit-media-controls-download-button,
video::-webkit-media-controls-enclosure {
  display: none !important;
}

/* 禁止 video 右键 */
video {
  -webkit-user-select: none;
  user-select: none;
}

/* 受保护图片的遮罩层 */
.ri-img-protect-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  pointer-events: none;
  background: transparent;
}






/* ============================================================
   28. Shop Modern v3 — 多图轮播 + 购物车
   ============================================================ */

/* --- 顶部商品卡片 --- */
.sm-hero-card {
    background: var(--ri-card-bg);
    border-radius: var(--ri-radius-lg);
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    border: 1px solid var(--ri-border-color);
    overflow: hidden;
}

/* --- 左侧图片轮播 --- */
.sm-gallery-wrap {
    height: 100%;
    display: flex;
    flex-direction: column;
    background: #f8f9fb;
}
.sm-gallery-main {
    position: relative;
    flex: 1;
    width: 100%;
        padding: 11px;
    max-height: 350px;
    aspect-ratio: 1 / 1;
    margin: 0 auto;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: crosshair;
}
.sm-gallery-main img {
    max-width: 100%;
    max-height: 100%;
        border-radius: 11px;
    width: auto;
    height: auto;
    object-fit: contain;
    transition: opacity 0.3s;
}
.sm-sales-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    background: linear-gradient(135deg, #ff6b35, #ff4757);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    padding: 4px 12px;
    border-radius: 50px;
    box-shadow: 0 3px 12px rgba(255,107,53,0.4);
    z-index: 2;
}
.sm-gallery-counter {
    position: absolute;
    bottom: 12px;
    right: 12px;
    background: rgba(0,0,0,0.5);
    color: #fff;
    font-size: 12px;
    padding: 3px 10px;
    border-radius: 50px;
    backdrop-filter: blur(4px);
}

/* 缩略图列表 */
.sm-gallery-thumbs {
    display: flex;
    gap: 6px;
    padding: 10px;
    overflow-x: auto;
    background: #fff;
    border-top: 1px solid var(--ri-border-color);
    max-width: 350px;
    margin: 0 auto;
}
.sm-thumb-item {
    width: 56px;
    height: 56px;
    flex-shrink: 0;
    border: 2px solid var(--ri-border-color);
    border-radius: var(--ri-radius-sm);
    overflow: hidden;
    cursor: pointer;
    transition: all 0.2s;
    opacity: 0.6;
}
.sm-thumb-item:hover {
    opacity: 0.85;
    border-color: #bbb;
}
.sm-thumb-item.active {
    border-color: var(--ri-accent);
    opacity: 1;
    box-shadow: 0 0 0 2px var(--ri-accent-light);
}
.sm-thumb-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* --- 右侧信息区 --- */
.sm-hero-info {
    padding: 24px 28px;
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 300px;
}
.sm-hero-title {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--ri-text-primary);
    letter-spacing: -0.3px;
    line-height: 1.35;
    margin-bottom: 8px;
}
.sm-hero-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 12px;
}
.sm-meta-item { font-size: 13px; color: var(--ri-text-muted); font-weight: 500; }
.sm-meta-item i { opacity: 0.6; }
.sm-meta-item a { color: var(--ri-text-secondary); transition: color 0.2s; }
.sm-meta-item a:hover { color: var(--ri-accent); }

/* 实物参数 */
.sm-physical-params { margin-bottom: 12px; }
.sm-params-row { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 6px; }
.sm-param {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--ri-body-bg, #f5f6fa);
    padding: 4px 10px;
    border-radius: var(--ri-radius-sm);
    font-size: 12px;
    border: 1px solid var(--ri-border-color);
}
.sm-param-label { color: var(--ri-text-muted); font-weight: 500; white-space: nowrap; }
.sm-param-value { color: var(--ri-text-primary); font-weight: 600; }

/* 资源信息网格 */
.sm-info-grid { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.sm-info-item {
    display: flex;
    align-items: center;
    gap: 6px;
    background: var(--ri-body-bg, #f5f6fa);
    padding: 4px 10px;
    border-radius: var(--ri-radius-sm);
    font-size: 12px;
}
.sm-info-label { color: var(--ri-text-muted); }
.sm-info-value { color: var(--ri-text-primary); font-weight: 600; }

/* 颜色/尺码选择器 */
.sm-spec-group { margin-bottom: 10px; }
.sm-spec-label { font-size: 12px; font-weight: 600; color: var(--ri-text-secondary); margin-bottom: 6px; }
.sm-color-options { display: flex; flex-wrap: wrap; gap: 6px; }
.sm-color-item {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 4px 10px;
    border: 2px solid var(--ri-border-color);
    border-radius: var(--ri-radius);
    cursor: pointer;
    transition: all 0.2s;
    background: var(--ri-card-bg);
    font-size: 12px;
}
.sm-color-item:hover { border-color: var(--ri-accent); }
.sm-color-item.active { border-color: var(--ri-accent); background: var(--ri-accent-light); }
.sm-color-swatch {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid rgba(0,0,0,0.1);
    flex-shrink: 0;
}
.sm-color-name { font-weight: 500; color: var(--ri-text-primary); }
.sm-size-options { display: flex; flex-wrap: wrap; gap: 6px; }
.sm-size-item {
    padding: 4px 14px;
    border: 2px solid var(--ri-border-color);
    border-radius: var(--ri-radius);
    cursor: pointer;
    transition: all 0.2s;
    background: var(--ri-card-bg);
}
.sm-size-item:hover { border-color: var(--ri-accent); }
.sm-size-item.active { border-color: var(--ri-accent); background: var(--ri-accent-light); }
.sm-size-tag { font-size: 12px; font-weight: 600; color: var(--ri-text-primary); }

/* 参数表 */
.sm-spec-table { border: 1px solid var(--ri-border-color); border-radius: var(--ri-radius); overflow: hidden; margin-top: 8px; }
.sm-spec-row { display: flex; font-size: 12px; border-bottom: 1px solid var(--ri-border-color); }
.sm-spec-row:last-child { border-bottom: none; }
.sm-spec-key { width: 72px; flex-shrink: 0; padding: 6px 10px; background: var(--ri-body-bg, #f5f6fa); color: var(--ri-text-muted); font-weight: 500; }
.sm-spec-val { flex: 1; padding: 6px 10px; color: var(--ri-text-primary); font-weight: 500; }

/* --- 购买区域 --- */
.sm-buy-area {  padding-top: 12px; border-top: 1px solid var(--ri-border-color); }
.sm-buy-status {
    padding: 8px 12px;
    border-radius: var(--ri-radius);
    font-size: 13px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    margin-bottom: 8px;
}
.sm-buy-status.success { background: rgba(12,188,135,0.08); color: #0cbc87; border: 1px solid rgba(12,188,135,0.15); }
.sm-buy-status.locked { background: rgba(255,107,53,0.06); color: #ff6b35; border: 1px solid rgba(255,107,53,0.12); }

/* 价格行 */
.sm-price-row { display: flex; align-items: baseline; gap: 14px; margin-bottom: 8px; flex-wrap: wrap; }
.sm-price-main { display: flex; align-items: baseline; gap: 2px; }
.sm-price-symbol { font-size: 14px; color: #ff4757; }
.sm-price-symbol i { color: #ff4757; }
.sm-price-value { font-size: 30px; font-weight: 800; color: #ff4757; letter-spacing: -1.5px; line-height: 1; }
.sm-price-unit { font-size: 12px; color: var(--ri-text-muted); margin-left: 2px; }
.sm-sales-text { font-size: 12px; color: var(--ri-text-muted); }
.sm-sales-text i { color: #ff6b35; }

/* 价格标签组 */
.sm-price-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 10px; }
.sm-price-tag {
    display: flex;
    align-items: center;
    gap: 5px;
    background: var(--ri-body-bg, #f5f6fa);
    padding: 3px 8px;
    border-radius: var(--ri-radius-sm);
    font-size: 11px;
    border: 1px solid var(--ri-border-color);
}
.sm-price-tag .ptag-label { color: var(--ri-text-muted); }
.sm-price-tag .ptag-value { font-weight: 600; color: var(--ri-text-primary); }
.sm-price-tag .ptag-discount { color: #ff4757; }
.sm-price-tag .ptag-discount sup { font-size: 8px; background: rgba(255,71,87,0.1); color: #ff4757; padding: 1px 3px; border-radius: 2px; margin-left: 1px; }
.sm-price-tag .ptag-free { color: #0cbc87; font-weight: 700; }
.sm-price-tag .ptag-disabled { color: var(--ri-text-muted); font-size: 10px; }
.sm-price-tag.boosvip { background: linear-gradient(90deg, rgba(255,215,0,0.06), transparent); }

/* 数量选择器 */
.sm-quantity-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}
.sm-qty-label { font-size: 13px; color: var(--ri-text-secondary); font-weight: 500; }
.sm-qty-box {
    display: inline-flex;
    align-items: center;
    border: 1px solid var(--ri-border-color);
    border-radius: var(--ri-radius);
    overflow: hidden;
}
.sm-qty-btn {
    width: 32px;
    height: 32px;
    border: none;
    background: var(--ri-body-bg, #f5f6fa);
    color: var(--ri-text-primary);
    font-size: 16px;
    cursor: pointer;
    transition: background 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}
.sm-qty-btn:hover { background: var(--ri-accent-light); color: var(--ri-accent); }
.sm-qty-input {
    width: 48px;
    height: 32px;
    border: none;
    border-left: 1px solid var(--ri-border-color);
    border-right: 1px solid var(--ri-border-color);
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    color: var(--ri-text-primary);
    background: var(--ri-card-bg);
    -moz-appearance: textfield;
}
.sm-qty-input::-webkit-inner-spin-button,
.sm-qty-input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }

/* --- 按钮并排 --- */
.sm-btn-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.sm-btn-cart {
    flex: 0;
    min-width: 140px;
    padding: 10px 18px !important;
    border-radius: var(--ri-radius) !important;
    font-weight: 600 !important;
    font-size: 13px !important;
    border: 2px solid var(--ri-border-color) !important;
    background: var(--ri-card-bg) !important;
    color: var(--ri-text-primary) !important;
    transition: all 0.2s !important;
}
.sm-btn-cart:hover {
    border-color: var(--ri-accent) !important;
    color: var(--ri-accent) !important;
    background: var(--ri-accent-light) !important;
}
.sm-btn-buy {
    flex: 1;
    min-width: 140px;
    background: linear-gradient(135deg, #ff6b35, #ff4757) !important;
    border: none !important;
    border-radius: var(--ri-radius) !important;
    font-weight: 700 !important;
    font-size: 14px !important;
    padding: 10px 20px !important;
    box-shadow: 0 4px 16px rgba(255,107,53,0.3);
    transition: all 0.3s ease !important;
}
.sm-btn-buy:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 24px rgba(255,107,53,0.4) !important;
}
.sm-extra-btn {
    border-radius: var(--ri-radius) !important;
    font-weight: 500 !important;
    font-size: 12px !important;
    padding: 8px 14px !important;
}

/* 下载列表 */
.sm-down-list { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.sm-down-item { display: flex; gap: 6px; align-items: center; }
.sm-down-item .btn-success { border-radius: var(--ri-radius) !important; font-weight: 600; }
.sm-down-item .btn-success-outline { background: transparent; border: 1px solid rgba(12,188,135,0.3); color: #0cbc87; font-size: 12px; padding: 4px 10px; border-radius: var(--ri-radius-sm) !important; }

.sm-buy-tips { font-size: 12px; color: var(--ri-text-muted); margin-top: 8px; }

/* --- 商品详情图画廊 --- */
.sm-gallery-card {
    background: var(--ri-card-bg);
    border-radius: var(--ri-radius-lg);
    box-shadow: var(--ri-card-shadow);
    border: 1px solid var(--ri-border-color);
    padding: 20px;
}
.sm-gallery-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--ri-text-primary);
    margin-bottom: 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--ri-border-color);
}
.sm-gallery-title i { color: var(--ri-accent); }
.sm-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 8px; }
.sm-gallery-item { border-radius: var(--ri-radius); overflow: hidden; border: 1px solid var(--ri-border-color); transition: all 0.3s; }
.sm-gallery-item:hover { box-shadow: var(--ri-card-shadow-hover); transform: translateY(-2px); }
.sm-gallery-item img { width: 100%; display: block; transition: transform 0.4s; }
.sm-gallery-item:hover img { transform: scale(1.05); }

.sm-content-card { overflow: hidden; }

/* --- 响应式 --- */
@media (max-width: 991.98px) {
    .sm-hero-info { padding: 18px; min-height: auto; }
    .sm-hero-title { font-size: 1.2rem; }
    .sm-price-value { font-size: 26px; }
    .sm-gallery-main { max-width: 300px; max-height: 300px; }
}
@media (max-width: 767.98px) {
    .sm-hero-card .row { flex-direction: column; }
    .sm-gallery-main { max-width: 100%; max-height: 280px; aspect-ratio: auto; min-height: 200px; }
    .sm-hero-info { padding: 14px; }
    .sm-hero-title { font-size: 1.1rem; }
    .sm-price-value { font-size: 24px; }
    .sm-btn-row { flex-direction: column; }
    .sm-btn-cart, .sm-btn-buy { width: 100% !important; }
    .sm-params-row { gap: 4px; }
    .sm-param { font-size: 11px; padding: 3px 7px; }
    .sm-gallery-grid { grid-template-columns: repeat(2, 1fr); }
}

/* --- 暗黑模式 --- */
[data-bs-theme=dark] .sm-hero-card { background: #191b1d; border-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .sm-gallery-wrap { background: #0f1113; }
[data-bs-theme=dark] .sm-gallery-thumbs { background: #151719; border-top-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .sm-thumb-item { border-color: rgba(255,255,255,0.1); }
[data-bs-theme=dark] .sm-thumb-item.active { border-color: var(--ri-accent); }
[data-bs-theme=dark] .sm-hero-title { color: #e8e8e8; }
[data-bs-theme=dark] .sm-meta-item { color: #888; }
[data-bs-theme=dark] .sm-param { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .sm-param-value { color: #e0e0e0; }
[data-bs-theme=dark] .sm-buy-area { border-top-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .sm-buy-status.success { background: rgba(12,188,135,0.12); border-color: rgba(12,188,135,0.2); }
[data-bs-theme=dark] .sm-buy-status.locked { background: rgba(255,107,53,0.1); border-color: rgba(255,107,53,0.18); }
[data-bs-theme=dark] .sm-price-tag { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .sm-price-tag .ptag-value { color: #e0e0e0; }
[data-bs-theme=dark] .sm-color-item, [data-bs-theme=dark] .sm-size-item { background: #1e2024; border-color: rgba(255,255,255,0.08); }
[data-bs-theme=dark] .sm-color-item.active, [data-bs-theme=dark] .sm-size-item.active { border-color: var(--ri-accent); background: rgba(33,99,232,0.1); }
[data-bs-theme=dark] .sm-color-name, [data-bs-theme=dark] .sm-size-tag { color: #e0e0e0; }
[data-bs-theme=dark] .sm-spec-table { border-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .sm-spec-row { border-bottom-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .sm-spec-key { background: rgba(255,255,255,0.03); color: #888; }
[data-bs-theme=dark] .sm-spec-val { color: #e0e0e0; }
[data-bs-theme=dark] .sm-qty-box { border-color: rgba(255,255,255,0.08); }
[data-bs-theme=dark] .sm-qty-btn { background: rgba(255,255,255,0.04); color: #e0e0e0; }
[data-bs-theme=dark] .sm-qty-input { background: #191b1d; color: #e0e0e0; border-color: rgba(255,255,255,0.08); }
[data-bs-theme=dark] .sm-btn-cart { background: #1e2024 !important; border-color: rgba(255,255,255,0.1) !important; color: #e0e0e0 !important; }
[data-bs-theme=dark] .sm-btn-cart:hover { border-color: var(--ri-accent) !important; color: #7fa4f1 !important; }
[data-bs-theme=dark] .sm-gallery-card { background: #191b1d; border-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .sm-gallery-title { color: #e0e0e0; border-bottom-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .sm-gallery-item { border-color: rgba(255,255,255,0.06); }


/* --- 抛物线飞入购物车 --- */
.sm-fly-item {
    width: 30px;
    height: 30px;
    background: linear-gradient(135deg, #ff6b35, #ff4757);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 14px;
    box-shadow: 0 4px 15px rgba(255,107,53,0.5);
    transition: transform 0.1s;
}
.sm-fly-item i {
    color: #fff;
    font-size: 13px;
}
/* 购物车图标弹跳过渡 */
.rollbar-cart-badge {
    transition: transform 0.2s ease;
}

/* ============================================================
   28-B. Shop Modern v3 — 已购买状态豪华展示
   ============================================================ */

/* --- 整体包裹 --- */
.sm-purchased-wrap {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* --- 解锁横幅 --- */
.sm-unlocked-banner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    background: linear-gradient(135deg, rgba(16,185,129,0.08), rgba(16,185,129,0.02));
    border: 1px solid rgba(16,185,129,0.18);
    border-radius: var(--ri-radius);
    position: relative;
    overflow: hidden;
}
.sm-unlocked-banner::before {
    content: '';
    position: absolute;
    top: 0; left: -100%;
    width: 200%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(16,185,129,0.06), transparent);
    animation: sm-shimmer 3s infinite ease-in-out;
}
@keyframes sm-shimmer {
    0% { left: -100%; }
    100% { left: 100%; }
}
.sm-unlocked-icon {
    width: 40px; height: 40px;
    background: linear-gradient(135deg, #10b981, #059669);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: #fff; font-size: 16px;
    box-shadow: 0 3px 12px rgba(16,185,129,0.3);
    flex-shrink: 0;
}
.sm-unlocked-text {
    display: flex; flex-direction: column; gap: 2px;
}
.sm-unlocked-title {
    font-size: 14px; font-weight: 700; color: #059669;
}
.sm-unlocked-sub {
    font-size: 12px; color: var(--ri-text-muted);
}

/* --- 价格回顾 --- */
.sm-price-recap {
    background: var(--ri-body-bg, #f8f9fb);
    border: 1px solid var(--ri-border-color);
    border-radius: var(--ri-radius);
    padding: 12px;
}
.sm-recap-header {
    font-size: 12px; font-weight: 600; color: var(--ri-text-secondary);
    margin-bottom: 10px; padding-bottom: 8px;
    border-bottom: 1px solid var(--ri-border-color);
}
.sm-recap-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
}
.sm-recap-card {
    padding: 3px 10px;
    background: #ffffff;
    border: 1px solid var(--ri-border-color);
    border-left: 3px solid rgb(235 235 235 / 6%);
    border-radius: var(--ri-radius-sm, 6px);
    display: flex;
    flex-direction: row;
    gap: 1px;
    transition: all 0.2s;
    min-height: 0;
    justify-content: space-between;
}
.sm-recap-card:hover {
    transform: translateY(-1px);
    box-shadow: 0 3px 8px rgba(0,0,0,0.06);
}
.sm-recap-default { border-left-color: #cbd5e1; }
.sm-recap-label {
    font-size: 10px; font-weight: 600; color: var(--ri-text-muted);
    letter-spacing: 0.2px;
    line-height: 1.2;
}
.sm-recap-price {
    font-size: 12px; font-weight: 700; color: var(--ri-text-primary);
    text-decoration: line-through; opacity: 0.5;
    line-height: 1.2;
}
.sm-recap-na {
    font-size: 10px; color: #bbb; font-style: italic;
    line-height: 1.2;
}
.sm-recap-free {
    font-size: 11px; font-weight: 700; color: #10b981;
    line-height: 1.2;
}
.sm-recap-discount {
    font-size: 11px; font-weight: 700; color: #ef4444;
    line-height: 1.2;
}
.sm-recap-discount sup {
    font-size: 8px; background: rgba(239,68,68,0.1);
    color: #ef4444; padding: 0px 3px; border-radius: 2px;
    margin-left: 1px; vertical-align: super;
}
.sm-recap-save {
    font-size: 9px; color: #10b981; font-weight: 600;
    background: rgba(16,185,129,0.08); padding: 0px 4px;
    border-radius: 2px; display: inline-block; width: fit-content;
    line-height: 1.4;
}
.sm-recap-normal {
    font-size: 12px; font-weight: 700; color: var(--ri-text-primary);
    line-height: 1.2;
}

/* --- 资源信息 --- */
.sm-res-info {
    background: var(--ri-body-bg, #f8f9fb);
    border: 1px solid var(--ri-border-color);
    border-radius: var(--ri-radius);
    padding: 12px;
}
.sm-res-info-title {
    font-size: 12px; font-weight: 600; color: var(--ri-text-secondary);
    margin-bottom: 8px; display: block;
}
.sm-res-info-grid {
    display: flex; flex-wrap: wrap; gap: 6px;
}
.sm-res-info-chip {
    display: inline-flex; align-items: center; gap: 6px;
    background: var(--ri-card-bg, #fff);
    border: 1px solid var(--ri-border-color);
    padding: 5px 10px;
    border-radius: 20px;
    font-size: 12px;
}
.sm-res-chip-label {
    color: var(--ri-text-muted); font-weight: 500;
}
.sm-res-chip-value {
    color: var(--ri-text-primary); font-weight: 600;
}
.sm-res-chip-hot {
    border-color: rgba(255,107,53,0.2);
    background: rgba(255,107,53,0.04);
}
.sm-res-chip-hot .sm-res-chip-label { color: #ff6b35; }
.sm-res-chip-hot .sm-res-chip-value { color: #ff6b35; }

/* --- 操作按钮栏 --- */
.sm-action-bar {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    align-items: stretch;
}
.sm-act-btn {
    width: 120px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    padding: 10px 0;
    border-radius: var(--ri-radius);
    font-size: 12px;
    font-weight: 600;
    text-decoration: none !important;
    transition: all 0.2s;
    cursor: pointer;
    border: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sm-act-btn i {
    font-size: 13px;
    flex-shrink: 0;
}
.sm-act-download {
    background: linear-gradient(135deg, #10b981, #059669);
    color: #fff !important;
    box-shadow: 0 2px 8px rgba(16,185,129,0.25);
}
.sm-act-download:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(16,185,129,0.35);
    color: #fff !important;
}
.sm-act-pwd {
    background: var(--ri-card-bg, #fff);
    border: 1px solid rgba(16,185,129,0.2) !important;
    color: var(--ri-text-secondary);
    font-family: 'SF Mono', 'Menlo', monospace;
    font-size: 11px;
}
.sm-act-pwd:hover {
    background: rgba(16,185,129,0.06);
    border-color: rgba(16,185,129,0.3) !important;
    color: #059669;
}
.sm-act-demo {
    background: var(--ri-card-bg, #fff);
    border: 1px solid var(--ri-border-color) !important;
    color: var(--ri-text-secondary) !important;
}
.sm-act-demo:hover {
    border-color: var(--ri-accent) !important;
    color: var(--ri-accent) !important;
    transform: translateY(-1px);
    box-shadow: 0 3px 10px rgba(0,0,0,0.06);
}

/* --- 暗黑模式 --- */
[data-bs-theme=dark] .sm-unlocked-banner { background: rgba(16,185,129,0.06); border-color: rgba(16,185,129,0.12); }
[data-bs-theme=dark] .sm-unlocked-title { color: #34d399; }
[data-bs-theme=dark] .sm-unlocked-sub { color: #a0a0a0; }
[data-bs-theme=dark] .sm-price-recap { background: rgba(255,255,255,0.03); border-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .sm-recap-header { color: #c8c8c8; border-bottom-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .sm-recap-card { background: #1e2024; border-color: rgba(255,255,255,0.08); }
[data-bs-theme=dark] .sm-recap-card:hover { box-shadow: 0 3px 8px rgba(0,0,0,0.2); }
[data-bs-theme=dark] .sm-recap-label { color: #b0b0b0 !important; }
[data-bs-theme=dark] .sm-recap-price { color: #e0e0e0 !important; }
[data-bs-theme=dark] .sm-recap-normal { color: #e0e0e0 !important; }
[data-bs-theme=dark] .sm-recap-free { color: #34d399 !important; }
[data-bs-theme=dark] .sm-recap-discount { color: #f87171 !important; }
[data-bs-theme=dark] .sm-recap-save { color: #34d399 !important; background: rgba(52,211,153,0.1); }
[data-bs-theme=dark] .sm-recap-na { color: #888 !important; }
[data-bs-theme=dark] .sm-res-info { background: rgba(255,255,255,0.03); border-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .sm-res-info-title { color: #c8c8c8; }
[data-bs-theme=dark] .sm-res-info-chip { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .sm-res-chip-label { color: #a0a0a0; }
[data-bs-theme=dark] .sm-res-chip-value { color: #e0e0e0; }
[data-bs-theme=dark] .sm-download-section { background: rgba(16,185,129,0.04); border-color: rgba(16,185,129,0.1); }
[data-bs-theme=dark] .sm-download-title { color: #34d399; }
[data-bs-theme=dark] .sm-copy-pwd-btn { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.08); color: #aaa; }
[data-bs-theme=dark] .sm-copy-pwd-btn:hover { background: rgba(16,185,129,0.08); color: #34d399; }
[data-bs-theme=dark] .sm-extra-action-btn { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.06); color: #aaa !important; }
[data-bs-theme=dark] .sm-extra-action-btn:hover { border-color: var(--ri-accent); color: var(--ri-accent) !important; }
[data-bs-theme=dark] .sm-res-chip-hot { background: rgba(255,107,53,0.06); border-color: rgba(255,107,53,0.15); }
[data-bs-theme=dark] .sm-act-pwd { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.08) !important; color: #c8c8c8; }
[data-bs-theme=dark] .sm-act-pwd:hover { background: rgba(16,185,129,0.08); color: #34d399; }
[data-bs-theme=dark] .sm-act-demo { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.06) !important; color: #c8c8c8 !important; }
[data-bs-theme=dark] .sm-act-demo:hover { border-color: var(--ri-accent) !important; color: #818cf8 !important; }

/* --- 响应式 --- */
@media (max-width: 767.98px) {
    .sm-recap-cards { grid-template-columns: repeat(2, 1fr); }
    .sm-recap-label { font-size: 9px; }
    .sm-recap-discount, .sm-recap-normal, .sm-recap-free, .sm-recap-price { font-size: 10px; }
    .sm-action-bar { gap: 6px; }
    .sm-act-btn { width: 100px; font-size: 11px; padding: 8px 0; }
}
@media (max-width: 480px) {
    .sm-recap-cards { grid-template-columns: repeat(3, 1fr); gap: 4px; }
    .sm-recap-card { padding: 6px 8px; }
}


/* ============================================================
   29. Floating Cart — 悬浮购物车
   ============================================================ */

/* 容器 */
.float-cart-wrap {
    position: fixed;
    right: 30px;
    bottom: 160px;
    z-index: 999;
}

/* 按钮 */
.float-cart-btn {
    width: 50px;
    height: 50px;
    background: linear-gradient(135deg, #ff6b35, #ff4757);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 4px 20px rgba(255,107,53,0.4);
    transition: all 0.3s;
    position: relative;
}
.float-cart-btn i {
    color: #fff;
    font-size: 20px;
}
.float-cart-btn:hover {
    transform: scale(1.1);
    box-shadow: 0 6px 28px rgba(255,107,53,0.5);
}

/* 角标 */
.float-cart-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 20px;
    height: 20px;
    background: #fff;
    color: #ff4757;
    font-size: 11px;
    font-weight: 800;
    border-radius: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
    border: 2px solid #ff4757;
}

/* 面板 */
.float-cart-panel {
    position: absolute;
    right: 0;
    bottom: 60px;
    width: 360px;
    max-height: 520px;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 12px 48px rgba(0,0,0,0.18);
    border: 1px solid rgba(0,0,0,0.06);
    display: flex;
    flex-direction: column;
    opacity: 0;
    visibility: hidden;
    transform: translateY(10px) scale(0.95);
    transform-origin: bottom right;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}
.float-cart-panel.open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
}

/* 头部 */
.fcart-header {
    display: flex;
    align-items: center;
    padding: 14px 16px;
    border-bottom: 1px solid #f0f0f0;
    background: #fafbfc;
    flex-shrink: 0;
}
.fcart-title {
    font-size: 15px;
    font-weight: 700;
    color: #191a1f;
}
.fcart-count {
    font-size: 13px;
    color: #999;
    margin-left: 4px;
}
.fcart-close {
    margin-left: auto;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    cursor: pointer;
    color: #999;
    transition: all 0.2s;
}
.fcart-close:hover {
    background: rgba(0,0,0,0.06);
    color: #333;
}

/* 内容区 */
.fcart-body {
    flex: 1;
    overflow-y: auto;
    padding: 8px;
    min-height: 120px;
}
.fcart-body::-webkit-scrollbar { width: 4px; }
.fcart-body::-webkit-scrollbar-thumb { background: #ddd; border-radius: 4px; }

/* 空状态 */
.fcart-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    color: #ccc;
}
.fcart-empty i {
    font-size: 40px;
    margin-bottom: 12px;
    opacity: 0.5;
}
.fcart-empty p {
    font-size: 14px;
    color: #999;
}

/* 商品项 */
.fcart-item {
    display: flex;
    gap: 10px;
    padding: 10px;
    border-radius: 10px;
    transition: background 0.2s;
    position: relative;
}
.fcart-item:hover {
    background: #f8f9fb;
}
.fcart-item-img {
    width: 60px;
    height: 60px;
    flex-shrink: 0;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #f0f0f0;
}
.fcart-item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.fcart-item-info {
    flex: 1;
    min-width: 0;
}
.fcart-item-title {
    font-size: 13px;
    font-weight: 600;
    color: #333;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-decoration: none;
    transition: color 0.2s;
}
.fcart-item-title:hover {
    color: #2163e8;
}
.fcart-item-spec {
    display: flex;
    gap: 8px;
    font-size: 11px;
    color: #999;
    margin-top: 3px;
}
.fcart-item-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 6px;
}
.fcart-item-price {
    font-size: 14px;
    font-weight: 700;
    color: #ff4757;
}

/* 数量 */
.fcart-item-qty {
    display: flex;
    align-items: center;
    border: 1px solid #e8e8e8;
    border-radius: 6px;
    overflow: hidden;
}
.fcart-qty-btn {
    width: 26px;
    height: 26px;
    border: none;
    background: #f5f6fa;
    color: #333;
    font-size: 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
}
.fcart-qty-btn:hover {
    background: #e8ecf4;
}
.fcart-qty-num {
    width: 30px;
    text-align: center;
    font-size: 13px;
    font-weight: 600;
    color: #333;
    border-left: 1px solid #e8e8e8;
    border-right: 1px solid #e8e8e8;
    line-height: 26px;
}

/* 删除按钮 */
.fcart-item-del {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: #ccc;
    cursor: pointer;
    transition: all 0.2s;
    opacity: 0;
    font-size: 11px;
}
.fcart-item:hover .fcart-item-del {
    opacity: 1;
}
.fcart-item-del:hover {
    background: #fee;
    color: #ff4757;
}

/* 底部 */
.fcart-footer {
    padding: 12px 16px;
    border-top: 1px solid #f0f0f0;
    background: #fafbfc;
    flex-shrink: 0;
}
.fcart-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    font-size: 14px;
    color: #666;
}
.fcart-total-price {
    font-size: 20px;
    font-weight: 800;
    color: #ff4757;
    letter-spacing: -0.5px;
}
.fcart-checkout-btn {
    width: 100%;
    padding: 10px;
    background: linear-gradient(135deg, #ff6b35, #ff4757);
    color: #fff;
    border: none;
    border-radius: 10px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s;
    box-shadow: 0 4px 16px rgba(255,107,53,0.3);
}
.fcart-checkout-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 24px rgba(255,107,53,0.4);
}
.fcart-checkout-btn:disabled {
    opacity: 0.7;
    cursor: not-allowed;
    transform: none;
}

/* 响应式 */
@media (max-width: 575.98px) {
    .float-cart-wrap {
        right: 16px;
        bottom: 80px;
    }
    .float-cart-panel {
        width: calc(100vw - 32px);
        right: -8px;
        max-height: 60vh;
    }
}

/* 暗黑模式 */
[data-bs-theme=dark] .float-cart-panel {
    background: #1e2024;
    border-color: rgba(255,255,255,0.08);
    box-shadow: 0 12px 48px rgba(0,0,0,0.5);
}
[data-bs-theme=dark] .fcart-header {
    background: #191b1d;
    border-bottom-color: rgba(255,255,255,0.06);
}
[data-bs-theme=dark] .fcart-title { color: #e0e0e0; }
[data-bs-theme=dark] .fcart-close { color: #888; }
[data-bs-theme=dark] .fcart-close:hover { background: rgba(255,255,255,0.08); color: #e0e0e0; }
[data-bs-theme=dark] .fcart-item:hover { background: rgba(255,255,255,0.04); }
[data-bs-theme=dark] .fcart-item-img { border-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .fcart-item-title { color: #e0e0e0; }
[data-bs-theme=dark] .fcart-item-title:hover { color: #7fa4f1; }
[data-bs-theme=dark] .fcart-qty-btn { background: rgba(255,255,255,0.06); color: #e0e0e0; }
[data-bs-theme=dark] .fcart-qty-btn:hover { background: rgba(255,255,255,0.1); }
[data-bs-theme=dark] .fcart-qty-num { color: #e0e0e0; border-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .fcart-item-qty { border-color: rgba(255,255,255,0.08); }
[data-bs-theme=dark] .fcart-footer { background: #191b1d; border-top-color: rgba(255,255,255,0.06); }
[data-bs-theme=dark] .fcart-total { color: #aaa; }

/* ====== 顶部开通会员按钮 (VIP Go Button) ====== */
.vip-go-btn {
    display: inline-flex !important;
    align-items: center;
    gap: 5px;
    padding: 5px 14px !important;
    background: linear-gradient(135deg, #d4af37, #b8860b) !important;
    color: #1a1a2e !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    border-radius: 20px !important;
    transition: all .25s ease !important;
    line-height: 1.4 !important;
    white-space: nowrap;
}
.vip-go-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(212,175,55,0.35);
    color: #1a1a2e !important;
    opacity: 1 !important;
}
.vip-go-btn i {
    font-size: 11px;
}
.vip-go-text {
    letter-spacing: 0.5px;
}

/* 暗色模式适配 */
[data-bs-theme=dark] .vip-go-btn {
    background: linear-gradient(135deg, #d4af37, #b8860b) !important;
    color: #1a1a2e !important;
}
[data-bs-theme=dark] .vip-go-btn:hover {
    box-shadow: 0 4px 14px rgba(212,175,55,0.4);
}

/* 透明菜单模式 */
.header-transparent .site-header:not(.navbar-sticky) .vip-go-btn {
    background: linear-gradient(135deg, rgba(212,175,55,0.9), rgba(184,134,11,0.9)) !important;
    color: #1a1a2e !important;
}

/* 移动端隐藏文字只留图标 */
@media (max-width: 575px) {
    .vip-go-text { display: none; }
    .vip-go-btn { padding: 5px 10px !important; }
}

/* ===== Saotheme — Header z-index fix & dropdown global styles ===== */
.site-header { z-index: 1000; }
.navbar .actions { position: relative; z-index: 1001; }
.navbar .action-hover-menu { position: relative; z-index: 1001; }
.navbar .action-hover-menu .ri-uc-dropdown { z-index: 9999; }
.navbar .navbar-search { z-index: 999; }


/* ===== 首页排行榜模块 v3 ===== */

/* 模块标题区 */
.ri-rank-section-head {
    text-align: center;
    margin-bottom: 24px;
    position: relative;
}
.ri-rank-section-deco {
    position: absolute;
    top: -8px;
    left: 50%;
    transform: translateX(-50%);
    pointer-events: none;
    animation: ri-rank-deco-float 4s ease-in-out infinite;
}
@keyframes ri-rank-deco-float {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(-6px); }
}
.ri-rank-section-title {
    font-size: 22px;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
    letter-spacing: -0.3px;
}
[data-bs-theme="dark"] .ri-rank-section-title { color: #e2e8f0; }
.ri-rank-section-desc {
    font-size: 13px;
    color: #94a3b8;
    margin: 6px 0 0;
}

/* 外层卡片 */
.ri-rank-card {
    position: relative;
    background: var(--ri-body-bg, #fff);
    border-radius: 16px;
    box-shadow: 0 2px 16px rgba(0,0,0,0.06);
    overflow: hidden;
    border: 1px solid rgba(0,0,0,0.06);
    transition: box-shadow 0.3s ease;
}
.ri-rank-card:hover {
    box-shadow: 0 6px 32px rgba(0,0,0,0.08);
}
[data-bs-theme="dark"] .ri-rank-card {
    background: #1a2332;
    border-color: rgba(255,255,255,0.06);
    box-shadow: 0 2px 16px rgba(0,0,0,0.3);
}
[data-bs-theme="dark"] .ri-rank-card:hover {
    box-shadow: 0 6px 32px rgba(0,0,0,0.4);
}

/* SVG 装饰 */
.ri-rank-deco { position: absolute; pointer-events: none; z-index: 0; }
.ri-rank-deco-tl { top: -20px; left: -20px; }
.ri-rank-deco-br { bottom: -10px; right: -10px; }

/* 内部布局 */
.ri-rank-inner {
    display: flex;
    position: relative;
    z-index: 1;
    min-height: 400px;
}

/* ===== 左侧分类栏 ===== */
.ri-rank-sidebar {
    flex-shrink: 0;
    width: 180px;
    border-right: 1px solid rgba(0,0,0,0.05);
    padding: 20px 0 0;
    display: flex;
    flex-direction: column;
    position: relative;
    background: linear-gradient(160deg, #f8f7ff 0%, #fafafa 50%, #f5f3ff 100%);
}
[data-bs-theme="dark"] .ri-rank-sidebar {
    border-right-color: rgba(255,255,255,0.06);
    background: linear-gradient(160deg, rgba(99,102,241,0.06) 0%, rgba(30,35,50,1) 50%, rgba(99,102,241,0.04) 100%);
}
/* 侧边栏微妙噪点纹理 */
.ri-rank-sidebar::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 0;
}

.ri-rank-sidebar-title {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 0 20px 16px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #94a3b8;
    position: relative;
    z-index: 1;
}
.ri-rank-sidebar-title svg { opacity: 0.5; }

.ri-rank-cat-list {
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex: 1;
    overflow-y: auto;
    padding: 0 10px;
    position: relative;
    z-index: 1;
}

.ri-rank-cat {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: none;
    background: transparent;
    color: #64748b;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
    text-align: left;
    white-space: nowrap;
    position: relative;
    border-radius: 10px;
    margin: 1px 0;
}
/* 左侧活跃指示条 */
.ri-rank-cat-indicator {
    position: absolute;
    left: 0; top: 50%;
    transform: translateY(-50%);
    width: 3px; height: 0;
    background: linear-gradient(180deg, #6366f1, #a78bfa);
    border-radius: 0 3px 3px 0;
    transition: height 0.3s cubic-bezier(0.4,0,0.2,1);
    box-shadow: 0 0 10px rgba(99,102,241,0.4);
}
.ri-rank-cat-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px; height: 30px;
    border-radius: 9px;
    background: rgba(99,102,241,0.05);
    transition: all 0.3s cubic-bezier(0.4,0,0.2,1);
    flex-shrink: 0;
    position: relative;
    overflow: hidden;
}
/* 图标区光效 */
.ri-rank-cat-icon::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(99,102,241,0.15), rgba(167,139,250,0.1));
    opacity: 0;
    transition: opacity 0.3s;
    border-radius: 9px;
}
.ri-rank-cat-icon svg { transition: transform 0.3s cubic-bezier(0.4,0,0.2,1); position: relative; z-index: 1; }
.ri-rank-cat-name { flex: 1; transition: letter-spacing 0.2s; }
.ri-rank-cat:hover {
    color: #1e293b;
    background: rgba(99,102,241,0.06);
}
.ri-rank-cat:hover .ri-rank-cat-icon {
    background: rgba(99,102,241,0.1);
    transform: scale(1.08) rotate(-2deg);
    box-shadow: 0 2px 8px rgba(99,102,241,0.12);
}
.ri-rank-cat:hover .ri-rank-cat-icon::after { opacity: 1; }
.ri-rank-cat:hover .ri-rank-cat-icon svg {
    transform: scale(1.1);
}
.ri-rank-cat:hover .ri-rank-cat-name { letter-spacing: 0.3px; }
.ri-rank-cat.active {
    color: #4338ca;
    background: rgba(99,102,241,0.09);
    font-weight: 600;
    box-shadow: 0 1px 4px rgba(99,102,241,0.08);
}
.ri-rank-cat.active .ri-rank-cat-indicator { height: 24px; }
.ri-rank-cat.active .ri-rank-cat-icon {
    background: linear-gradient(135deg, rgba(99,102,241,0.15), rgba(167,139,250,0.12));
    box-shadow: 0 2px 10px rgba(99,102,241,0.15);
    transform: scale(1.05);
}
.ri-rank-cat.active .ri-rank-cat-icon::after { opacity: 1; }
.ri-rank-cat.active .ri-rank-cat-icon svg { transform: scale(1.08); }

[data-bs-theme="dark"] .ri-rank-cat { color: #94a3b8; }
[data-bs-theme="dark"] .ri-rank-cat:hover { color: #e2e8f0; background: rgba(129,140,248,0.08); }
[data-bs-theme="dark"] .ri-rank-cat:hover .ri-rank-cat-icon { background: rgba(129,140,248,0.12); }
[data-bs-theme="dark"] .ri-rank-cat.active { color: #a5b4fc; background: rgba(129,140,248,0.12); }
[data-bs-theme="dark"] .ri-rank-cat.active .ri-rank-cat-indicator { background: linear-gradient(180deg, #818cf8, #a5b4fc); box-shadow: 0 0 10px rgba(129,140,248,0.4); }
[data-bs-theme="dark"] .ri-rank-cat.active .ri-rank-cat-icon { background: rgba(129,140,248,0.18); }

.ri-rank-cat-count {
    margin-left: auto;
    font-size: 10px;
    color: #94a3b8;
    background: rgba(0,0,0,0.04);
    padding: 2px 8px;
    border-radius: 10px;
    font-weight: 700;
    min-width: 26px;
    text-align: center;
    transition: all 0.25s;
}
.ri-rank-cat.active .ri-rank-cat-count {
    background: rgba(99,102,241,0.12);
    color: #6366f1;
}
[data-bs-theme="dark"] .ri-rank-cat-count { background: rgba(255,255,255,0.06); color: #64748b; }
[data-bs-theme="dark"] .ri-rank-cat.active .ri-rank-cat-count { background: rgba(129,140,248,0.15); color: #a5b4fc; }

.ri-rank-sidebar-footer {
    padding: 0 12px;
    margin-top: auto;
    opacity: 0.5;
    position: relative;
    z-index: 1;
}

/* ===== 右侧主区域 ===== */
.ri-rank-main {
    flex: 1;
    min-width: 0;
    padding: 20px 24px;
    display: flex;
    flex-direction: column;
    position: relative;
}
/* 右侧微妙渐变背景 */
.ri-rank-main::before {
    content: "";
    position: absolute;
    top: 0; right: 0;
    width: 200px; height: 200px;
    background: radial-gradient(circle, rgba(99,102,241,0.03) 0%, transparent 70%);
    pointer-events: none;
}
[data-bs-theme="dark"] .ri-rank-main::before {
    background: radial-gradient(circle, rgba(99,102,241,0.05) 0%, transparent 70%);
}

/* 排行类型横条 */
.ri-rank-type-bar {
    display: flex;
    gap: 4px;
    padding: 4px;
    background: #f1f5f9;
    border-radius: 10px;
    margin-bottom: 18px;
    overflow-x: auto;
}
[data-bs-theme="dark"] .ri-rank-type-bar { background: #0f172a; }

.ri-rank-type {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border: none;
    border-radius: 8px;
    background: transparent;
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.4,0,0.2,1);
    white-space: nowrap;
    position: relative;
}
.ri-rank-type i { font-size: 12px; transition: transform 0.25s; }
.ri-rank-type:hover {
    color: #4f46e5;
    background: rgba(99,102,241,0.06);
}
.ri-rank-type:hover i { transform: scale(1.15); }
.ri-rank-type.active {
    background: #fff;
    color: #1e293b;
    box-shadow: 0 1px 6px rgba(0,0,0,0.08);
}
.ri-rank-type.active i { color: #6366f1; }
.ri-rank-type.loading { opacity: 0.6; pointer-events: none; }
.ri-rank-type.loading i { animation: ri-rank-spin 0.8s linear infinite; }

[data-bs-theme="dark"] .ri-rank-type:hover { color: #a5b4fc; background: rgba(129,140,248,0.1); }
[data-bs-theme="dark"] .ri-rank-type.active { background: #334155; color: #e2e8f0; box-shadow: 0 1px 6px rgba(0,0,0,0.3); }
[data-bs-theme="dark"] .ri-rank-type.active i { color: #a5b4fc; }

/* ===== 排行列表 - 双列布局 ===== */
.ri-rank-list-wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
    position: relative;
}

.ri-rank-list {
    flex: 1;
}

.ri-rank-list-duocol {
    column-count: 2;
    column-gap: 16px;
}

.ri-rank-list-duocol .ri-rank-item {
    break-inside: avoid;
    page-break-inside: avoid;
    display: flex;
}

/* 左右列之间的分隔线 */
.ri-rank-list-duocol::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 4px;
    bottom: 4px;
    width: 1px;
    background: linear-gradient(180deg, transparent, rgba(0,0,0,0.06) 15%, rgba(0,0,0,0.06) 85%, transparent);
    pointer-events: none;
}
[data-bs-theme="dark"] .ri-rank-list-duocol::after {
    background: linear-gradient(180deg, transparent, rgba(255,255,255,0.06) 15%, rgba(255,255,255,0.06) 85%, transparent);
}

/* 单条 */
.ri-rank-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 10px;
    border-radius: 10px;
    text-decoration: none;
    color: inherit;
    transition: all 0.2s cubic-bezier(0.4,0,0.2,1);
    position: relative;
    border-bottom: 1px solid rgba(0,0,0,0.04);
    margin-bottom: 2px;
}
[data-bs-theme="dark"] .ri-rank-item { border-bottom-color: rgba(255,255,255,0.04); }
.ri-rank-item:last-child { border-bottom: none; margin-bottom: 0; }
.ri-rank-item:hover {
    background: rgba(99,102,241,0.04);
    transform: translateX(3px);
}
[data-bs-theme="dark"] .ri-rank-item:hover {
    background: rgba(129,140,248,0.06);
}

/* 排名数字 */
.ri-rank-num {
    flex-shrink: 0;
    width: 26px; height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 800;
    background: #f1f5f9;
    color: #94a3b8;
    line-height: 1;
    transition: all 0.2s;
}
.ri-rank-item:hover .ri-rank-num { transform: scale(1.06); }

/* 前三名 */
.ri-rank-item.rank-gold .ri-rank-num {
    background: linear-gradient(135deg, #f59e0b, #fbbf24);
    color: #fff;
    box-shadow: 0 2px 8px rgba(245,158,11,0.25);
}
.ri-rank-item.rank-gold .ri-rank-title { font-weight: 600; }
.ri-rank-item.rank-silver .ri-rank-num {
    background: linear-gradient(135deg, #94a3b8, #cbd5e1);
    color: #fff;
}
.ri-rank-item.rank-bronze .ri-rank-num {
    background: linear-gradient(135deg, #d97706, #f59e0b);
    color: #fff;
}
[data-bs-theme="dark"] .ri-rank-num { background: #334155; color: #64748b; }

/* 缩略图 */
.ri-rank-thumb {
    flex-shrink: 0;
    width: 56px; height: 42px;
    border-radius: 8px;
    background-size: cover;
    background-position: center;
    background-color: #e2e8f0;
    transition: all 0.2s;
}
.ri-rank-item:hover .ri-rank-thumb {
    transform: scale(1.03);
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
[data-bs-theme="dark"] .ri-rank-thumb { background-color: #334155; }

/* 信息区 */
.ri-rank-info {
    flex: 1; min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.ri-rank-title {
    font-size: 13px;
    font-weight: 500;
    color: #1e293b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.4;
    transition: color 0.2s;
}
[data-bs-theme="dark"] .ri-rank-title { color: #e2e8f0; }
.ri-rank-item:hover .ri-rank-title { color: #4f46e5; }
[data-bs-theme="dark"] .ri-rank-item:hover .ri-rank-title { color: #a5b4fc; }

/* 元信息行：分类 + 统计 + 作者 + 日期 一行展示 */
.ri-rank-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 11px;
    color: #94a3b8;
    line-height: 1.5;
}
.ri-rank-stat {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    white-space: nowrap;
}
.ri-rank-stat i { font-size: 9px; opacity: 0.6; }
.ri-rank-price {
    color: #f59e0b;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 2px;
}
.ri-rank-price i { font-size: 9px; }

/* 分类标签 */
.ri-rank-cat-tag {
    display: inline-block;
    font-size: 10px;
    font-weight: 600;
    color: #7c3aed;
    background: rgba(124,58,237,0.06);
    padding: 0 6px;
    border-radius: 4px;
    line-height: 1.6;
    max-width: 80px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
[data-bs-theme="dark"] .ri-rank-cat-tag {
    color: #a78bfa;
    background: rgba(167,139,250,0.1);
}

/* 作者 + 日期 */
.ri-rank-author { color: #64748b; }
.ri-rank-date { color: #94a3b8; }
[data-bs-theme="dark"] .ri-rank-author { color: #94a3b8; }

/* 空状态 */
.ri-rank-empty {
    text-align: center;
    padding: 60px 20px;
    color: #94a3b8;
}
.ri-rank-empty svg { margin-bottom: 12px; opacity: 0.4; }
.ri-rank-empty p { margin: 0; font-size: 13px; }

/* 加载态 */
.ri-rank-loading {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
}
.ri-rank-loading-ring {
    display: inline-block;
    position: relative;
    width: 36px;
    height: 36px;
}
.ri-rank-loading-ring div {
    position: absolute;
    width: 32px; height: 32px;
    margin: 2px;
    border: 2.5px solid transparent;
    border-radius: 50%;
    animation: ri-rank-ring-spin 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
}
.ri-rank-loading-ring div:nth-child(1) { border-top-color: #6366f1; animation-delay: -0.45s; }
.ri-rank-loading-ring div:nth-child(2) { border-top-color: #818cf8; animation-delay: -0.3s; }
.ri-rank-loading-ring div:nth-child(3) { border-top-color: #a5b4fc; animation-delay: -0.15s; }
@keyframes ri-rank-ring-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
@keyframes ri-rank-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ===== 响应式 ===== */
@media (max-width: 992px) {
    .ri-rank-list-duocol { column-count: 1; }
    .ri-rank-list-duocol::after { display: none; }
}

@media (max-width: 768px) {
    .ri-rank-inner { flex-direction: column; }
    .ri-rank-sidebar {
        width: 100%;
        border-right: none;
        border-bottom: 1px solid rgba(0,0,0,0.05);
        padding: 12px 0 8px;
        background: linear-gradient(180deg, #f8f7ff, #fff);
    }
    [data-bs-theme="dark"] .ri-rank-sidebar { border-bottom-color: rgba(255,255,255,0.06); background: linear-gradient(180deg, rgba(99,102,241,0.04), #1a2332); }
    .ri-rank-sidebar::before { display: none; }
    .ri-rank-cat-list { flex-direction: row; overflow-x: auto; gap: 0; padding: 0 10px; }
    .ri-rank-cat { padding: 7px 10px; font-size: 12px; border-radius: 8px; }
    .ri-rank-cat-indicator { display: none; }
    .ri-rank-cat-icon { width: 24px; height: 24px; border-radius: 6px; }
    .ri-rank-cat-count { display: none; }
    .ri-rank-sidebar-title { display: none; }
    .ri-rank-sidebar-footer { display: none; }
    .ri-rank-main { padding: 16px; }
    .ri-rank-main::before { display: none; }
    .ri-rank-type-bar { margin-bottom: 12px; }
    .ri-rank-type { padding: 6px 10px; font-size: 11px; }
    .ri-rank-thumb { width: 48px; height: 36px; border-radius: 7px; }
    .ri-rank-item { padding: 8px 8px; gap: 8px; border-radius: 8px; }
    .ri-rank-num { width: 24px; height: 24px; font-size: 11px; border-radius: 7px; }
    .ri-rank-list-duocol { column-count: 1; }
    .ri-rank-list-duocol::after { display: none; }
    .ri-rank-section-title { font-size: 18px; }
    .ri-rank-card { border-radius: 14px; }
}

@media (max-width: 480px) {
    .ri-rank-type-bar { gap: 2px; padding: 3px; }
    .ri-rank-type { padding: 5px 8px; font-size: 11px; gap: 4px; }
    .ri-rank-type span { display: none; }
    .ri-rank-type i { font-size: 13px; }
    .ri-rank-item { padding: 7px 6px; gap: 6px; }
    .ri-rank-thumb { width: 42px; height: 32px; }
    .ri-rank-meta { gap: 4px; font-size: 10px; }
    .ri-rank-cat-tag { display: none; }
    .ri-rank-author, .ri-rank-date { display: none; }
}

/* ===== 通栏模块容器去除圆角 ===== */
.search-bg,
.bg-warp,
.dynamic-warp,
.home-widget > .container,
.archive-hero,
.tax-hero {
    border-radius: 0 !important;
}

/* 搜索模块 banner 底部圆角 */
.home-search-box .search-bg {
    border-radius: 0 !important;
}

/* 统计模块 */
.home-overview .bg-warp {
    border-radius: 0 !important;
}

/* 动态模块 */
.home-dynamic .dynamic-warp {
    border-radius: 0 !important;
}

/* 排行榜卡片 */
.ri-rank-card {
    border-radius: 0 !important;
}
.ri-rank-inner {
    border-radius: 0 !important;
}
.ri-rank-sidebar {
    border-radius: 0 !important;
}

/* ============================================================
   Login Popup Redesign — 双栏布局 · 1000×700 · 亮银/高级黑
   仅登录弹窗独有样式，通用弹窗样式由上方 0b 段控制
   ============================================================ */

/* ---- 弹窗尺寸覆盖（仅登录弹窗） ---- */
body .ri-popup:has(.ri-login-modal),
body .ri-popup-open .ri-popup:has(.ri-login-modal) {
    z-index: 10001 !important;
}
.ri-popup:has(.ri-login-modal) .ri-popup-body,
.ri-popup-open .ri-popup:has(.ri-login-modal) .ri-popup-body {
    max-width: 1000px !important;
    width: 1000px !important;
    height: 700px !important;
    padding: 0 !important;
    margin: auto !important;
    border-radius: 20px !important;
    overflow: visible !important;
    box-shadow: 0 25px 80px rgba(0,0,0,.25), 0 0 0 1px rgba(0,0,0,.06) !important;
    transform: none !important;
    -webkit-transform: none !important;
}
/* 强制完全居中（覆盖主题默认的 translateY(-40px) 动画偏移） */
.ri-popup-open .ri-popup:has(.ri-login-modal) .ri-popup-body {
    transform: none !important;
    -webkit-transform: none !important;
}
.ri-popup:has(.ri-login-modal) .ri-popup-content {
    padding: 0 !important;
    border-radius: 20px !important;
    height: 100% !important;
    overflow: hidden !important;
    background: transparent !important;
}

/* ---- 隐藏弹窗自带 logo ---- */
.ri-popup:has(.ri-login-modal) .logo-wrapper {
    display: none !important;
}

/* ---- 关闭按钮：弹窗外部右侧 20px ---- */
body .ri-popup:has(.ri-login-modal) .ri-popup-close,
body .ri-popup-open .ri-popup:has(.ri-login-modal) .ri-popup-close {
    position: fixed !important;
    top: 50% !important;
    left: 50vw !important;
    margin-left: 520px !important;
    transform: translateY(-50%) !important;
    right: auto !important;
    bottom: auto !important;
    width: 40px !important;
    height: 40px !important;
    z-index: 10002 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.85) !important;
    border: 1.5px solid #e2e8f0 !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.1) !important;
    cursor: pointer !important;
    transition: all .25s !important;
    text-align: center !important;
}
body .ri-popup:has(.ri-login-modal) .ri-popup-close .svg-close {
    display: inline-block !important;
    width: 16px !important;
    height: 16px !important;
    background-size: 16px 16px !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    vertical-align: middle !important;
}
body .ri-popup:has(.ri-login-modal) .ri-popup-close:hover {
    background: #ef4444 !important;
    border-color: #dc2626 !important;
    box-shadow: 0 6px 24px rgba(239,68,68,.3) !important;
    transform: translateY(-50%) scale(1.08) !important;
}
body .ri-popup:has(.ri-login-modal) .ri-popup-close:hover .svg-close {
    filter: brightness(0) invert(1) !important;
}

/* ---- 右侧面板宽度跟随关闭按钮偏移 ---- */
@media (max-width: 1024px) {
    .ri-popup:has(.ri-login-modal) .ri-popup-close {
        margin-left: 350px !important;
    }
}
@media (max-width: 768px) {
    .ri-popup:has(.ri-login-modal) .ri-popup-close {
        position: absolute !important;
        top: 12px !important;
        left: auto !important;
        right: 12px !important;
        margin-left: 0 !important;
        transform: none !important;
    }
    .ri-popup:has(.ri-login-modal) .ri-popup-close:hover {
        transform: scale(1.08) !important;
    }
}

/* ---- 弹窗容器 ---- */
.ri-login-modal {
    display: flex;
    height: 100%;
    min-height: 0;
    border-radius: 20px;
    overflow: hidden;
}

/* ---- 左侧视觉区（亮银） ---- */
.ri-login-visual {
    position: relative;
    width: 420px;
    min-width: 420px;
    height: 100%;
    background: linear-gradient(160deg, #e8ecef 0%, #d5dbe0 30%, #c0c8d0 60%, #b8c2ca 100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    flex-shrink: 0;
}

/* ---- SVG 装饰 ---- */
.ri-login-deco { position: absolute; pointer-events: none; z-index: 0; }
.ri-login-deco-1 { width: 280px; height: 280px; top: -60px; right: -80px; animation: riDecoSpin 45s linear infinite; }
.ri-login-deco-2 { width: 140px; height: 140px; bottom: 40px; left: -30px; animation: riDecoFloat 8s ease-in-out infinite; }
.ri-login-deco-3 { width: 80px; height: 80px; top: 30%; left: 60%; animation: riDecoSpin 30s linear infinite reverse; }
.ri-login-deco-4 { width: 350px; height: 350px; bottom: -100px; right: -60px; opacity: .6; animation: riDecoFloat 12s ease-in-out infinite 2s; }
.ri-login-deco-5 { width: 120px; height: 120px; bottom: 25%; left: 10%; animation: riDecoSpin 60s linear infinite; }

/* ---- 浮动粒子 ---- */
.ri-login-particle { position: absolute; border-radius: 50%; pointer-events: none; z-index: 0; }
.ri-login-particle-1 { width: 6px; height: 6px; background: rgba(100,116,139,.25); top: 15%; left: 20%; animation: riParticleFloat 6s ease-in-out infinite; }
.ri-login-particle-2 { width: 4px; height: 4px; background: rgba(100,116,139,.2); top: 60%; right: 15%; animation: riParticleFloat 8s ease-in-out infinite 1s; }
.ri-login-particle-3 { width: 8px; height: 8px; background: rgba(100,116,139,.15); top: 35%; left: 70%; animation: riParticleFloat 10s ease-in-out infinite 2s; }
.ri-login-particle-4 { width: 5px; height: 5px; background: rgba(100,116,139,.18); bottom: 20%; left: 30%; animation: riParticleFloat 7s ease-in-out infinite 3s; }
.ri-login-particle-5 { width: 3px; height: 3px; background: rgba(100,116,139,.3); top: 80%; right: 30%; animation: riParticleFloat 9s ease-in-out infinite 1.5s; }

/* ---- 品牌区 ---- */
.ri-login-brand { position: relative; z-index: 1; text-align: center; padding: 0 40px; color: #334155; }
.ri-login-brand-icon {
    width: 64px; height: 64px; margin: 0 auto 20px; border-radius: 18px;
    background: rgba(255,255,255,.5); backdrop-filter: blur(10px);
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 8px 32px rgba(0,0,0,.08); border: 1.5px solid rgba(255,255,255,.6);
    animation: riBrandPulse 4s ease-in-out infinite;
}
.ri-login-brand-icon svg { width: 48px; height: 48px; }
.ri-login-brand-icon svg rect { fill: rgba(100,116,139,.12); }
.ri-login-brand-icon svg path:first-of-type { fill: rgba(100,116,139,.15); }
.ri-login-brand-icon svg path:last-of-type { stroke: #475569; }
.ri-login-brand-title { font-size: 26px; font-weight: 800; color: #1e293b; margin: 0 0 10px; letter-spacing: 1px; }
.ri-login-brand-desc { font-size: 14px; color: #64748b; margin: 0 0 32px; line-height: 1.6; }
.ri-login-brand-features { display: flex; gap: 20px; justify-content: center; }
.ri-login-feature { display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: 12px; color: #475569; font-weight: 500; }
.ri-login-feature i {
    width: 40px; height: 40px; display: flex; align-items: center; justify-content: center;
    border-radius: 12px; background: rgba(255,255,255,.5); backdrop-filter: blur(6px);
    font-size: 16px; color: #475569; border: 1px solid rgba(255,255,255,.5); transition: all .3s;
}
.ri-login-feature:hover i { background: rgba(255,255,255,.7); transform: translateY(-2px); box-shadow: 0 4px 15px rgba(0,0,0,.08); }

/* ---- 右侧表单区 ---- */
.ri-login-form-panel {
    flex: 1; min-width: 0; height: 100%; overflow-y: auto; overflow-x: hidden;
    background: #fff; display: flex; flex-direction: column; padding: 36px 40px 24px;
}
.ri-login-form-panel::-webkit-scrollbar { width: 4px; }
.ri-login-form-panel::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 4px; }
.ri-login-form-header { margin-bottom: 24px; }
.ri-login-form-title { font-size: 24px; font-weight: 800; color: #1e293b; margin: 0 0 6px; letter-spacing: -.5px; }
.ri-login-form-subtitle { font-size: 14px; color: #94a3b8; margin: 0; }

/* ---- 表单元素 ---- */
.ri-login-form-inner { flex: 1; display: flex; flex-direction: column; }
.ri-form-group { margin-bottom: 16px; }
.ri-form-label { display: block; font-size: 13px; font-weight: 600; color: #475569; margin-bottom: 6px; }
.ri-input-wrap { position: relative; display: flex; align-items: center; }
.ri-input-icon { position: absolute; left: 14px; font-size: 14px; color: #94a3b8; z-index: 2; pointer-events: none; transition: color .2s; }
.ri-form-input {
    width: 100%; padding: 12px 14px 12px 42px !important;
    border: 1.5px solid #e2e8f0 !important; border-radius: 12px !important;
    font-size: 14px !important; background: #f8fafc !important; color: #1e293b !important;
    transition: all .2s !important; outline: none !important; box-shadow: none !important;
}
.ri-form-input:focus { border-color: #94a3b8 !important; background: #fff !important; box-shadow: 0 0 0 3px rgba(148,163,184,.12) !important; }
.ri-input-wrap:focus-within .ri-input-icon { color: #475569; }
.ri-form-input::placeholder { color: #cbd5e1; }
.ri-input-group { display: flex; gap: 10px; align-items: stretch; }
.ri-input-wrap-grow { flex: 1; min-width: 0; }
.ri-captcha-btn {
    flex-shrink: 0; padding: 0 18px; border: 1.5px solid #94a3b8; border-radius: 12px;
    background: linear-gradient(135deg, #64748b, #475569); color: #fff;
    font-size: 13px; font-weight: 600; cursor: pointer; transition: all .2s; white-space: nowrap;
}
.ri-captcha-btn:hover { box-shadow: 0 4px 15px rgba(100,116,139,.3); transform: translateY(-1px); }
.ri-captcha-btn:disabled { opacity: .6; cursor: not-allowed; transform: none; }
.ri-form-extra { text-align: right; margin-top: 6px; }
.ri-forgot-link { font-size: 12px; color: #94a3b8; text-decoration: none; transition: color .2s; }
.ri-forgot-link:hover { color: #475569; }
.ri-form-options { margin-bottom: 20px; }
.ri-checkbox-wrap { display: flex; align-items: center; gap: 8px; }
.ri-checkbox-wrap .form-check-input { width: 16px; height: 16px; border-radius: 4px; border: 1.5px solid #d1d5db; cursor: pointer; accent-color: #64748b; }
.ri-form-check-label { font-size: 13px; color: #64748b; cursor: pointer; }

/* ---- 提交按钮（银灰渐变） ---- */
.ri-submit-wrap { margin-bottom: 16px; }
.ri-submit-btn {
    width: 100%; padding: 13px 24px; border: none; border-radius: 12px;
    background: linear-gradient(135deg, #475569 0%, #334155 50%, #1e293b 100%);
    color: #fff; font-size: 15px; font-weight: 700; cursor: pointer;
    transition: all .25s; letter-spacing: .5px; position: relative; overflow: hidden;
}
.ri-submit-btn::before {
    content: ''; position: absolute; top: 0; left: -100%; width: 60%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.15), transparent);
    transform: skewX(-20deg); transition: left .5s;
}
.ri-submit-btn:hover::before { left: 120%; }
.ri-submit-btn:hover { box-shadow: 0 8px 25px rgba(51,65,85,.35); transform: translateY(-1px); }
.ri-submit-btn:active { transform: translateY(0); box-shadow: 0 2px 10px rgba(51,65,85,.25); }
.ri-submit-btn:disabled { opacity: .7; cursor: not-allowed; transform: none; }
.ri-submit-danger { background: linear-gradient(135deg, #64748b 0%, #475569 50%, #334155 100%); }
.ri-submit-danger:hover { box-shadow: 0 8px 25px rgba(71,85,105,.35); }

/* ---- 表单切换 / OAuth / 底部 ---- */
.ri-form-switch { text-align: center; font-size: 13px; color: #94a3b8; margin-bottom: 16px; }
.ri-form-switch a, .ri-form-switch .login-btn { color: #475569; font-weight: 600; text-decoration: none; transition: color .2s; cursor: pointer; }
.ri-form-switch a:hover, .ri-form-switch .login-btn:hover { color: #1e293b; }
.ri-invite-link { font-size: 12px; color: #64748b; text-decoration: none; margin-left: 8px; font-weight: 500; }
.ri-reset-notice { font-size: 13px; color: #64748b; background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 10px; padding: 10px 14px; margin-bottom: 16px; text-align: center; }
.ri-lostpwd-hint { font-size: 12px; color: #64748b; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; padding: 10px 14px; margin-bottom: 16px; }
.ri-oauth-divider { display: flex; align-items: center; gap: 16px; margin: 8px 0 16px; }
.ri-oauth-divider::before, .ri-oauth-divider::after { content: ''; flex: 1; height: 1px; background: #e2e8f0; }
.ri-oauth-divider span { font-size: 12px; color: #94a3b8; white-space: nowrap; }
.ri-oauth-buttons { display: flex; gap: 12px; justify-content: center; margin-bottom: 16px; }
.ri-oauth-btn { display: inline-flex; align-items: center; gap: 8px; padding: 10px 24px; border-radius: 12px; font-size: 13px; font-weight: 600; text-decoration: none; transition: all .2s; border: 1.5px solid transparent; }
.ri-oauth-qq { background: #f0f4ff; color: #475569; border-color: #e2e8f0; }
.ri-oauth-qq:hover { background: #e2e8f0; color: #1e293b; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.06); }
.ri-oauth-wx { background: #f0fdf4; color: #475569; border-color: #e2e8f0; }
.ri-oauth-wx:hover { background: #dcfce7; color: #1e293b; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,.06); }
.ri-login-footer { margin-top: auto; padding-top: 12px; border-top: 1px solid #f1f5f9; text-align: center; }
.ri-login-copyright { font-size: 11px; color: #94a3b8; line-height: 1.8; }
.ri-login-copyright a { color: #64748b; text-decoration: none; }
.ri-login-copyright a:hover { text-decoration: underline; color: #334155; }

/* ---- 验证码覆盖 ---- */
.ri-login-form-inner .input-group { display: flex; gap: 10px; align-items: center; }
.ri-login-form-inner .input-group .form-control { flex: 1; padding: 12px 14px 12px 42px !important; border: 1.5px solid #e2e8f0 !important; border-radius: 12px !important; font-size: 14px !important; background: #f8fafc !important; }
.ri-login-form-inner .input-group img { height: 44px; border-radius: 10px; cursor: pointer; border: 1.5px solid #e2e8f0; transition: border-color .2s; }
.ri-login-form-inner .input-group img:hover { border-color: #94a3b8; }

/* ---- 动画 ---- */
@keyframes riDecoSpin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes riDecoFloat { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-18px) rotate(6deg); } }
@keyframes riParticleFloat { 0%,100% { transform: translateY(0) scale(1); opacity: .6; } 50% { transform: translateY(-25px) scale(1.3); opacity: 1; } }
@keyframes riBrandPulse { 0%,100% { box-shadow: 0 8px 32px rgba(0,0,0,.08); } 50% { box-shadow: 0 8px 40px rgba(0,0,0,.14); } }

/* ---- 登录弹窗暗色模式（高级黑） ---- */
[data-bs-theme=dark] .ri-login-visual { background: linear-gradient(160deg, #0a0a0c 0%, #111114 30%, #18181c 60%, #0f0f12 100%); }
[data-bs-theme=dark] .ri-login-brand { color: #e2e8f0; }
[data-bs-theme=dark] .ri-login-brand-icon { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.08); box-shadow: 0 8px 32px rgba(0,0,0,.3); }
[data-bs-theme=dark] .ri-login-brand-icon svg rect { fill: rgba(255,255,255,.06); }
[data-bs-theme=dark] .ri-login-brand-icon svg path:first-of-type { fill: rgba(255,255,255,.08); }
[data-bs-theme=dark] .ri-login-brand-icon svg path:last-of-type { stroke: rgba(255,255,255,.6); }
[data-bs-theme=dark] .ri-login-brand-title { color: #f1f5f9; }
[data-bs-theme=dark] .ri-login-brand-desc { color: #64748b; }
[data-bs-theme=dark] .ri-login-feature { color: #94a3b8; }
[data-bs-theme=dark] .ri-login-feature i { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.08); color: #94a3b8; }
[data-bs-theme=dark] .ri-login-feature:hover i { background: rgba(255,255,255,.1); box-shadow: 0 4px 15px rgba(0,0,0,.3); }
[data-bs-theme=dark] .ri-login-particle-1 { background: rgba(255,255,255,.12); }
[data-bs-theme=dark] .ri-login-particle-2 { background: rgba(255,255,255,.1); }
[data-bs-theme=dark] .ri-login-particle-3 { background: rgba(255,255,255,.08); }
[data-bs-theme=dark] .ri-login-particle-4 { background: rgba(255,255,255,.1); }
[data-bs-theme=dark] .ri-login-particle-5 { background: rgba(255,255,255,.15); }
[data-bs-theme=dark] .ri-popup:has(.ri-login-modal) .ri-popup-close {
    background: rgba(30,41,59,.9) !important;
    border-color: #334155 !important;
}
[data-bs-theme=dark] .ri-popup:has(.ri-login-modal) .ri-popup-close .svg-close {
    filter: brightness(0) invert(.6) !important;
}
[data-bs-theme=dark] .ri-popup:has(.ri-login-modal) .ri-popup-close:hover {
    background: #ef4444 !important;
    border-color: #dc2626 !important;
}
[data-bs-theme=dark] .ri-popup:has(.ri-login-modal) .ri-popup-close:hover .svg-close {
    filter: brightness(0) invert(1) !important;
}
[data-bs-theme=dark] .ri-login-form-panel { background: #111114; }
[data-bs-theme=dark] .ri-login-form-title { color: #f1f5f9; }
[data-bs-theme=dark] .ri-login-form-subtitle { color: #475569; }
[data-bs-theme=dark] .ri-form-label { color: #94a3b8; }
[data-bs-theme=dark] .ri-form-input { background: #0a0a0c !important; border-color: #1e2024 !important; color: #e2e8f0 !important; }
[data-bs-theme=dark] .ri-form-input:focus { border-color: #334155 !important; background: #18181c !important; box-shadow: 0 0 0 3px rgba(51,65,85,.2) !important; }
[data-bs-theme=dark] .ri-input-icon { color: #334155; }
[data-bs-theme=dark] .ri-input-wrap:focus-within .ri-input-icon { color: #94a3b8; }
[data-bs-theme=dark] .ri-form-input::placeholder { color: #1e293b; }
[data-bs-theme=dark] .ri-form-check-label { color: #64748b; }
[data-bs-theme=dark] .ri-submit-btn { background: linear-gradient(135deg, #1e293b 0%, #0f172a 50%, #020617 100%); box-shadow: 0 2px 10px rgba(0,0,0,.3); }
[data-bs-theme=dark] .ri-submit-btn:hover { box-shadow: 0 8px 25px rgba(0,0,0,.5); }
[data-bs-theme=dark] .ri-submit-danger { background: linear-gradient(135deg, #1e293b 0%, #111827 50%, #030712 100%); }
[data-bs-theme=dark] .ri-captcha-btn { background: linear-gradient(135deg, #1e293b, #0f172a); border-color: #334155; }
[data-bs-theme=dark] .ri-form-switch { color: #475569; }
[data-bs-theme=dark] .ri-form-switch a, [data-bs-theme=dark] .ri-form-switch .login-btn { color: #94a3b8; }
[data-bs-theme=dark] .ri-form-switch a:hover, [data-bs-theme=dark] .ri-form-switch .login-btn:hover { color: #e2e8f0; }
[data-bs-theme=dark] .ri-forgot-link { color: #475569; }
[data-bs-theme=dark] .ri-forgot-link:hover { color: #94a3b8; }
[data-bs-theme=dark] .ri-login-footer { border-color: #1e2024; }
[data-bs-theme=dark] .ri-login-copyright { color: #334155; }
[data-bs-theme=dark] .ri-login-copyright a { color: #64748b; }
[data-bs-theme=dark] .ri-oauth-divider::before, [data-bs-theme=dark] .ri-oauth-divider::after { background: #1e2024; }
[data-bs-theme=dark] .ri-oauth-divider span { color: #334155; }
[data-bs-theme=dark] .ri-oauth-qq, [data-bs-theme=dark] .ri-oauth-wx { background: #0a0a0c; color: #64748b; border-color: #1e2024; }
[data-bs-theme=dark] .ri-oauth-qq:hover, [data-bs-theme=dark] .ri-oauth-wx:hover { background: #1e2024; color: #94a3b8; }
[data-bs-theme=dark] .ri-reset-notice, [data-bs-theme=dark] .ri-lostpwd-hint { background: #0a0a0c; border-color: #1e2024; color: #64748b; }
[data-bs-theme=dark] .ri-login-form-inner .input-group .form-control { background: #0a0a0c !important; border-color: #1e2024 !important; color: #e2e8f0 !important; }
[data-bs-theme=dark] .ri-login-form-inner .input-group img { border-color: #1e2024; }
[data-bs-theme=dark] .ri-login-form-panel::-webkit-scrollbar-thumb { background: #1e2024; }

/* ---- 登录弹窗响应式 ---- */
@media (max-width: 1024px) {
    .ri-popup:has(.ri-login-modal) .ri-popup-body { max-width: 95vw !important; width: 95vw !important; height: 85vh !important; }
    .ri-login-visual { width: 280px; min-width: 280px; }
    .ri-login-brand-title { font-size: 20px; }
    .ri-login-brand-desc { font-size: 12px; }
    .ri-login-brand-features { gap: 12px; }
    .ri-login-feature { font-size: 11px; }
    .ri-login-feature i { width: 34px; height: 34px; font-size: 14px; }
}
@media (max-width: 768px) {
    .ri-popup:has(.ri-login-modal) .ri-popup-body { max-width: 100vw !important; width: 100vw !important; height: 100vh !important; border-radius: 0 !important; }
    .ri-popup:has(.ri-login-modal) .ri-popup-content { border-radius: 0 !important; }
    .ri-login-modal { flex-direction: column; border-radius: 0; }
    .ri-login-visual { width: 100%; min-width: unset; height: 180px; flex-shrink: 0; }
    .ri-login-brand-features { display: none; }
    .ri-login-brand { padding: 0 24px; }
    .ri-login-brand-title { font-size: 20px; margin-bottom: 4px; }
    .ri-login-brand-desc { font-size: 12px; margin-bottom: 0; }
    .ri-login-brand-icon { width: 48px; height: 48px; margin-bottom: 12px; border-radius: 14px; }
    .ri-login-brand-icon svg { width: 36px; height: 36px; }
    .ri-login-form-panel { padding: 24px 20px 16px; }
    .ri-login-form-title { font-size: 20px; }
}

/* ============================================================
   OVERRIDE: Link-type rollbar — icon only, tooltip on hover
   High-specificity selectors to beat all prior rules.
   ============================================================ */

/* Default: no extra content */
.rollbar .actions li.rollbar-item[data-rollbar-type="link"] > a::before {
  display: none !important;
  content: '' !important;
}

/* Hover: show tooltip via pseudo-element */
.rollbar .actions li.rollbar-item[data-rollbar-type="link"]:hover > a::before {
  content: attr(data-title) !important;
  display: block !important;
  position: absolute !important;
  right: calc(100% + 14px) !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  margin: 0 !important;
  padding: 8px 14px !important;
  background: #1e293b !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  text-align: left !important;
  white-space: nowrap !important;
  max-width: none !important;
  width: auto !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.18) !important;
  z-index: 9999 !important;
  pointer-events: none !important;
  transition: opacity 0.2s ease !important;
}

/* Tooltip arrow (right-pointing triangle) */
.rollbar .actions li.rollbar-item[data-rollbar-type="link"]:hover > a::after {
  content: '' !important;
  display: block !important;
  position: absolute !important;
  right: calc(100% + 8px) !important;
  top: 50% !important;
  transform: translateY(-50%) rotate(45deg) !important;
  width: 10px !important;
  height: 10px !important;
  background: #1e293b !important;
  border-radius: 0 2px 2px 0 !important;
  box-shadow: 3px -1px 5px rgba(0,0,0,0.06) !important;
  z-index: 9999 !important;
}

/* Dark mode tooltip */
[data-bs-theme=dark] .rollbar .actions li.rollbar-item[data-rollbar-type="link"]:hover > a::before,
html[data-bs-theme="dark"] .rollbar .actions li.rollbar-item[data-rollbar-type="link"]:hover > a::before {
  background: #334155 !important;
  box-shadow: 0 4px 20px rgba(0,0,0,0.4) !important;
}
[data-bs-theme=dark] .rollbar .actions li.rollbar-item[data-rollbar-type="link"]:hover > a::after,
html[data-bs-theme="dark"] .rollbar .actions li.rollbar-item[data-rollbar-type="link"]:hover > a::after {
  background: #334155 !important;
}

/* ============================================================
   WIDGET TITLE BEAUTIFICATION — All modules
   Unified alignment control via body class:
   .widget-align-left / .widget-align-center / .widget-align-right
   ============================================================ */

/* --- Base: accent bar + dot for all widget titles --- */
.home-widget .section-title h3,
.ri-rank-section-title,
.ri-coupon-section-title,
.ri-vip-section-title,
.sidebar .widget .widget-title {
  font-weight: 800 !important;
  color: #1a1a2e !important;
  position: relative !important;
  line-height: 1.4 !important;
}
.home-widget .section-title h3 {
  font-size: 20px !important;
  margin-bottom: 6px !important;
  display: flex !important;
  align-items: center !important;
}
.ri-rank-section-title { font-size: 20px !important; }
.ri-coupon-section-title { font-size: 20px !important; font-weight: 700 !important; }
.ri-vip-section-title { font-size: 22px !important; font-weight: 700 !important; }
.sidebar .widget .widget-title {
  font-size: 16px !important;
  font-weight: 700 !important;
  padding-bottom: 12px !important;
  margin-bottom: 16px !important;
}

/* Accent bar (left bar) — default left-aligned */
.home-widget .section-title h3::before,
.ri-rank-section-title::before,
.ri-coupon-section-title::before,
.ri-vip-section-title::before,
.sidebar .widget .widget-title::before {
  content: '' !important;
  display: inline-block !important;
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 4px !important;
  height: 22px !important;
  background: linear-gradient(180deg, #6366f1, #8b5cf6) !important;
  border-radius: 4px !important;
}
.ri-vip-section-title::before {
  background: linear-gradient(180deg, #f59e0b, #f43f5e) !important;
}
.sidebar .widget .widget-title::before { height: 18px !important; }

/* Dot after text */
.home-widget .section-title h3::after,
.ri-rank-section-title::after,
.sidebar .widget .widget-title::after {
  content: '' !important;
  display: inline-block !important;
  width: 6px !important;
  height: 6px !important;
  background: #6366f1 !important;
  border-radius: 50% !important;
  margin-left: 8px !important;
  flex-shrink: 0 !important;
  vertical-align: middle !important;
  position: relative !important;
  top: -1px !important;
}
.sidebar .widget .widget-title::after { width: 5px !important; height: 5px !important; }

/* Descriptions */
.home-widget .section-title p.text-muted,
.ri-rank-section-desc,
.ri-coupon-section-desc,
.ri-vip-section-desc {
  font-size: 13px !important;
  color: #64748b !important;
  margin-bottom: 0 !important;
}

/* ============================================================
   ALIGNMENT: LEFT (default)
   ============================================================ */
.widget-align-left .home-widget .section-title,
.widget-align-left .home-widget .section-title.text-center,
.widget-align-left .ri-coupon-section-head,
.widget-align-left .ri-vip-section-head,
.widget-align-left .ri-rank-section-head {
  text-align: left !important;
}
.widget-align-left .home-widget .section-title h3,
.widget-align-left .ri-rank-section-title,
.widget-align-left .ri-coupon-section-title,
.widget-align-left .ri-vip-section-title,
.widget-align-left .sidebar .widget .widget-title {
  padding-left: 16px !important;
  padding-right: 0 !important;
  justify-content: flex-start !important;
}
.widget-align-left .home-widget .section-title h3::before,
.widget-align-left .ri-rank-section-title::before,
.widget-align-left .ri-coupon-section-title::before,
.widget-align-left .ri-vip-section-title::before,
.widget-align-left .sidebar .widget .widget-title::before {
  left: 0 !important;
  right: auto !important;
}
.widget-align-left .home-widget .section-title p.text-muted,
.widget-align-left .ri-rank-section-desc,
.widget-align-left .ri-coupon-section-desc,
.widget-align-left .ri-vip-section-desc {
  padding-left: 16px !important;
  padding-right: 0 !important;
}
.widget-align-left .ri-vip-section-icon {
  margin-left: 0 !important;
  margin-right: auto !important;
}
.widget-align-left .ri-vip-section-desc {
  margin-left: 0 !important;
  margin-right: auto !important;
}
/* CDK filter bar */
.widget-align-left .cdkw-filter-bar {
  justify-content: flex-start !important;
}

/* ============================================================
   ALIGNMENT: CENTER
   ============================================================ */
.widget-align-center .home-widget .section-title,
.widget-align-center .ri-coupon-section-head,
.widget-align-center .ri-vip-section-head,
.widget-align-center .ri-rank-section-head {
  text-align: center !important;
}
.widget-align-center .home-widget .section-title h3,
.widget-align-center .ri-rank-section-title,
.widget-align-center .ri-coupon-section-title,
.widget-align-center .ri-vip-section-title,
.widget-align-center .sidebar .widget .widget-title {
  padding-left: 0 !important;
  padding-right: 0 !important;
  justify-content: center !important;
}
.widget-align-center .home-widget .section-title h3::before,
.widget-align-center .ri-rank-section-title::before,
.widget-align-center .ri-coupon-section-title::before,
.widget-align-center .ri-vip-section-title::before,
.widget-align-center .sidebar .widget .widget-title::before {
  display: none !important;
}
.widget-align-center .home-widget .section-title h3::after,
.widget-align-center .ri-rank-section-title::after,
.widget-align-center .sidebar .widget .widget-title::after {
  display: none !important;
}
.widget-align-center .home-widget .section-title p.text-muted,
.widget-align-center .ri-rank-section-desc,
.widget-align-center .ri-coupon-section-desc,
.widget-align-center .ri-vip-section-desc {
  padding-left: 0 !important;
  padding-right: 0 !important;
  text-align: center !important;
}
.widget-align-center .ri-vip-section-icon {
  margin-left: auto !important;
  margin-right: auto !important;
}
.widget-align-center .ri-vip-section-desc {
  margin-left: auto !important;
  margin-right: auto !important;
}
.widget-align-center .cdkw-filter-bar {
  justify-content: center !important;
}

/* ============================================================
   ALIGNMENT: RIGHT
   ============================================================ */
.widget-align-right .home-widget .section-title,
.widget-align-right .home-widget .section-title.text-center,
.widget-align-right .ri-coupon-section-head,
.widget-align-right .ri-vip-section-head,
.widget-align-right .ri-rank-section-head {
  text-align: right !important;
}
.widget-align-right .home-widget .section-title h3,
.widget-align-right .ri-rank-section-title,
.widget-align-right .ri-coupon-section-title,
.widget-align-right .ri-vip-section-title,
.widget-align-right .sidebar .widget .widget-title {
  padding-left: 0 !important;
  padding-right: 16px !important;
  justify-content: flex-end !important;
}
.widget-align-right .home-widget .section-title h3::before,
.widget-align-right .ri-rank-section-title::before,
.widget-align-right .ri-coupon-section-title::before,
.widget-align-right .ri-vip-section-title::before,
.widget-align-right .sidebar .widget .widget-title::before {
  left: auto !important;
  right: 0 !important;
}
.widget-align-right .home-widget .section-title h3::after,
.widget-align-right .ri-rank-section-title::after,
.widget-align-right .sidebar .widget .widget-title::after {
  margin-left: 0 !important;
  margin-right: 8px !important;
  order: -1 !important;
}
.widget-align-right .home-widget .section-title p.text-muted,
.widget-align-right .ri-rank-section-desc,
.widget-align-right .ri-coupon-section-desc,
.widget-align-right .ri-vip-section-desc {
  padding-left: 0 !important;
  padding-right: 16px !important;
  text-align: right !important;
}
.widget-align-right .ri-vip-section-icon {
  margin-left: auto !important;
  margin-right: 0 !important;
}
.widget-align-right .ri-vip-section-desc {
  margin-left: auto !important;
  margin-right: 0 !important;
}
.widget-align-right .cdkw-filter-bar {
  justify-content: flex-end !important;
}

/* --- Dark mode --- */
[data-bs-theme="dark"] .home-widget .section-title h3,
[data-bs-theme="dark"] .ri-rank-section-title,
[data-bs-theme="dark"] .ri-coupon-section-title,
[data-bs-theme="dark"] .ri-vip-section-title,
[data-bs-theme="dark"] .sidebar .widget .widget-title {
  color: #e2e8f0 !important;
}
[data-bs-theme="dark"] .home-widget .section-title p.text-muted,
[data-bs-theme="dark"] .ri-rank-section-desc,
[data-bs-theme="dark"] .ri-coupon-section-desc,
[data-bs-theme="dark"] .ri-vip-section-desc {
  color: #94a3b8 !important;
}
[data-bs-theme="dark"] .home-widget .section-title h3::after,
[data-bs-theme="dark"] .ri-rank-section-title::after,
[data-bs-theme="dark"] .sidebar .widget .widget-title::after {
  background: #818cf8 !important;
}
[data-bs-theme="dark"] .home-widget .section-title h3::before,
[data-bs-theme="dark"] .ri-rank-section-title::before,
[data-bs-theme="dark"] .ri-coupon-section-title::before,
[data-bs-theme="dark"] .ri-vip-section-title::before,
[data-bs-theme="dark"] .sidebar .widget .widget-title::before {
  background: linear-gradient(180deg, #818cf8, #a78bfa) !important;
}
[data-bs-theme="dark"] .ri-vip-section-title::before {
  background: linear-gradient(180deg, #f59e0b, #f43f5e) !important;
}

/* ============================================================
   AUTHOR PAGE — Hero Banner
   ============================================================ */
.author-hero {
  position: relative;
  overflow: hidden;
  border-radius: 0;
  margin-bottom: 0;
  min-height: 320px;
  display: flex;
  align-items: center;
  background: #000;
}
.author-hero-matrix {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}
.author-hero-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,.65) 0%, rgba(0,10,0,.55) 40%, rgba(0,20,0,.5) 70%, rgba(0,0,0,.6) 100%);
  z-index: 1;
}
/* Dark mode - Matrix stays dark, no change needed */

.author-hero .container {
  position: relative;
  z-index: 3;
}
.author-hero-inner {
  display: flex;
  align-items: center;
  gap: 32px;
  padding: 40px 0;
  flex-wrap: wrap;
}

/* Avatar */
.author-avatar-wrap {
  flex-shrink: 0;
  text-align: center;
}
.author-avatar {
  width: 110px;
  height: 110px;
  border-radius: 50%;
  border: 4px solid rgba(255,255,255,.3);
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0,0,0,.3);
  margin: 0 auto;
  position: relative;
}
.author-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.author-vip-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 14px;
  border-radius: 50px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  margin-top: 10px;
  box-shadow: 0 2px 12px rgba(0,0,0,.2);
  letter-spacing: 0.5px;
}
.author-vip-badge i { font-size: 11px; }

/* Info */
.author-info {
  flex: 1;
  min-width: 200px;
  color: #fff;
}
.author-name {
  font-size: 28px;
  font-weight: 800;
  margin: 0 0 4px;
  text-shadow: 0 0 20px rgba(0,255,65,.3), 0 2px 8px rgba(0,0,0,.4);
  color: #fff;
}
.author-username {
  font-size: 14px;
  opacity: .7;
  margin: 0 0 10px;
  color: rgba(255,255,255,.8);
}
.author-bio {
  font-size: 14px;
  opacity: .85;
  margin: 0 0 8px;
  line-height: 1.6;
  max-width: 480px;
  color: rgba(255,255,255,.9);
}
.author-join {
  font-size: 12px;
  opacity: .6;
  margin: 0;
  color: rgba(255,255,255,.7);
}

/* Stats Grid */
.author-stats {
  display: flex;
  gap: 0;
  background: rgba(255,255,255,.1);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: 16px;
  padding: 0;
  overflow: hidden;
  flex-shrink: 0;
}
.author-stat-item {
  text-align: center;
  padding: 16px 22px;
  color: #fff;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.author-stat-item:not(:last-child)::after {
  content: '';
  position: absolute;
  right: 0;
  top: 20%;
  height: 60%;
  width: 1px;
  background: rgba(255,255,255,.15);
}
.author-stat-value {
  display: block;
  font-size: 1.35rem;
  font-weight: 800;
  text-shadow: 0 1px 3px rgba(0,0,0,.2);
  line-height: 1.2;
  margin-bottom: 6px;
  min-height: 1.65rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.author-stat-label {
  display: block;
  font-size: 11px;
  opacity: .7;
  white-space: nowrap;
  color: rgba(255,255,255,.8);
  line-height: 1;
}
.author-stat-label i {
  font-size: 10px;
  opacity: .8;
}

/* --- Responsive --- */
@media (max-width: 767.98px) {
  .author-hero-inner {
    flex-direction: column;
    text-align: center;
    padding: 28px 0;
    gap: 16px;
  }
  .author-avatar { width: 80px; height: 80px; }
  .author-name { font-size: 22px; }
  .author-bio { max-width: 100%; }
  .author-stats {
    width: 100%;
    flex-wrap: wrap;
    border-radius: 12px;
  }
  .author-stat-item {
    flex: 1;
    min-width: 33%;
    padding: 12px 8px;
  }
  .author-stat-item:not(:last-child)::after { display: none; }
  .author-stat-value { font-size: 1.1rem; }
}
@media (max-width: 575.98px) {
  .author-hero { min-height: auto; }
  .author-stat-item { min-width: 50%; }
}

/* --- Dark mode - Matrix green tint --- */
[data-bs-theme="dark"] .author-hero-overlay {
  background: linear-gradient(135deg, rgba(0,0,0,.7) 0%, rgba(0,10,0,.6) 40%, rgba(0,15,0,.55) 70%, rgba(0,0,0,.65) 100%);
}

/* ============================================================
   VIP角标美化 — 渐变背景 + 光泽动效
   ============================================================ */
.post-item .tips-badge .badge.bg-warning {
  background: linear-gradient(135deg, #f59e0b 0%, #ef4444 50%, #ec4899 100%) !important;
  color: #fff !important;
  border: none !important;
  font-size: 0.6rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
  padding: 3px 10px !important;
  border-radius: 6px !important;
  box-shadow: 0 2px 8px rgba(245, 158, 11, 0.35) !important;
  position: relative !important;
  overflow: hidden !important;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15) !important;
}
.post-item .tips-badge .badge.bg-warning::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: linear-gradient(
    45deg,
    transparent 30%,
    rgba(255, 255, 255, 0.2) 50%,
    transparent 70%
  );
  animation: vipBadgeShine 3s ease-in-out infinite;
}
@keyframes vipBadgeShine {
  0%   { transform: translateX(-100%) rotate(45deg); }
  100% { transform: translateX(100%) rotate(45deg); }
}

/* VIP角标暗色模式 */
[data-bs-theme=dark] .post-item .tips-badge .badge.bg-warning {
  box-shadow: 0 2px 12px rgba(245, 158, 11, 0.5) !important;
}

/* ============================================================
   Header 修复 + 移动端组件隐藏/显示控制
   ============================================================ */

/* 修复：有二级菜单的一级菜单后面紧跟 🔻 符号 */
.navbar .nav-list .menu-item.menu-item-has-children > a:after {
    content: "🔻" !important;
    font-family: inherit !important;
    font-weight: normal !important;
    font-size: 0.55em !important;
    margin-left: 2px !important;
    opacity: 0.7;
    vertical-align: middle;
    line-height: 1;
}

/* 默认隐藏：移动端（<992px）隐藏指定的 action-btn */
@media (max-width: 991.98px) {
    .navbar .actions .action-btn.ri-mobile-hide {
        display: none !important;
    }
}

/* 修复移动端 navbar 溢出问题：actions 区允许收缩换行 */
@media (max-width: 991.98px) {
    .navbar {
        height: auto;
        min-height: 60px;
        flex-wrap: wrap;
    }
    .navbar .actions {
        flex-shrink: 1;
        min-width: 0;
        overflow: hidden;
    }
    .navbar .actions .action-btn {
        flex-shrink: 0;
    }
    .navbar .sep {
        display: none !important;
    }
    .navbar .main-menu {
        display: none !important;
    }
}

/* 移动端隐藏底部菜单列（由后台开关 is_mobile_show_footer_cols 控制） */
@media (max-width: 991.98px) {
    .ri-footer-col.ri-mobile-hide {
        display: none !important;
    }
}
