:root {
  --font-serif: 'Noto Serif', 'Times New Roman', serif;
  --font-sans: 'Microsoft YaHei', sans-serif;
}

.theme-toggle {
  background: none;
  border: 1px solid rgba(255,255,255,0.4);
  color: inherit;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.3s;
  font-size: 1.1rem;
  padding: 0;
  line-height: 1;
}
.theme-toggle:hover {
  background: rgba(255,255,255,0.15);
  transform: scale(1.1);
}

/* ====== Theme: dark-gold (default) ====== */
.theme-dark-gold {
  --gold-primary: #C5A059; /* 柔和香槟金 */
  --gold-light: #D4AF37;
  --gold-dark: #A68043;
  --gold-border: rgba(197, 160, 89, 0.2);
  --dark-bg: #121218;
  --darker-bg: #1a1a24;
  --navbar-bg: #1a1a24;
  --light-gold: #E5D5B5;
  --text-primary: #f1f1f1;
  --text-secondary: #d1d1d1;
  --text-muted: #999999;
  --text-code: #C5A059;

  --admin-body-bg: #0d0d12;
  --admin-card-bg: #161620;
  --admin-card-border: rgba(197, 160, 89, 0.1);
  --admin-navbar-bg: #0a0a0f;
  --admin-navbar-text: #e5d5b5;
  --admin-primary: var(--gold-primary);
  --admin-text: #d4d0c0;
  --admin-border: rgba(197, 160, 89, 0.08);
  --admin-sidebar-bg: #12121c;
  --admin-input-bg: rgba(30, 30, 45, 0.8);
  --admin-hover: rgba(197, 160, 89, 0.05);
}
.theme-dark-gold body {
  font-family: var(--font-serif);
  background-color: var(--dark-bg);
  color: var(--text-primary);
}
.theme-dark-gold .theme-toggle {
  border-color: var(--gold-border);
  color: var(--gold-light);
}
.theme-dark-gold .theme-toggle:hover {
  background: rgba(212, 175, 55, 0.15);
  color: var(--gold-light);
}
.theme-dark-gold .navbar {
  background-color: var(--navbar-bg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  border-bottom: 1px solid var(--gold-border);
}
.theme-dark-gold .navbar .nav-link {
  color: var(--light-gold) !important;
}
.theme-dark-gold .navbar .nav-link:hover {
  color: var(--gold-light) !important;
}
.theme-dark-gold .card {
  background-color: var(--darker-bg);
  border: 1px solid var(--gold-border);
  border-radius: 10px;
}
.theme-dark-gold .card-header {
  background-color: var(--darker-bg);
  border-bottom: 1px solid var(--gold-border);
  color: var(--gold-primary);
  font-weight: bold;
}
.theme-dark-gold .table {
  color: var(--light-gold);
}
.theme-dark-gold .table thead th {
  color: var(--gold-primary);
  border-bottom-color: var(--gold-border);
}
.theme-dark-gold .table td,
.theme-dark-gold .table th {
  border-top-color: rgba(212, 175, 55, 0.2);
}
.theme-dark-gold .table-hover tbody tr:hover {
  background-color: rgba(212, 175, 55, 0.12);
  color: var(--light-gold);
}
.theme-dark-gold .btn-primary {
  background-color: var(--gold-primary);
  border: 1px solid var(--gold-light);
  color: var(--darker-bg);
  font-weight: bold;
}
.theme-dark-gold .btn-primary:hover {
  background-color: var(--gold-light);
  border-color: var(--gold-primary);
  color: var(--darker-bg);
}
.theme-dark-gold .btn-light {
  background-color: rgba(212, 175, 55, 0.1);
  border: 1px solid var(--gold-dark);
  color: var(--gold-primary);
}
.theme-dark-gold .btn-light:hover {
  background-color: rgba(212, 175, 55, 0.2);
  color: var(--gold-light);
}
.theme-dark-gold .alert-info {
  background-color: rgba(212, 175, 55, 0.1);
  border-color: var(--gold-dark);
  color: var(--gold-primary);
}
.theme-dark-gold .progress {
  background-color: var(--darker-bg);
  border: 1px solid var(--gold-dark);
}
.theme-dark-gold .progress-bar {
  background-color: var(--gold-primary);
}
.theme-dark-gold a {
  color: var(--gold-primary);
}
.theme-dark-gold a:hover {
  color: var(--gold-light);
}
.theme-dark-gold a.btn-success {
  color: #fff !important;
}
.theme-dark-gold a.btn-warning {
  color: #212529 !important;
}
.theme-dark-gold a.btn-copy {
  color: var(--gold-primary) !important;
}
.theme-dark-gold a.btn-primary {
  color: var(--darker-bg) !important;
}
.theme-dark-gold .badge-type {
  background: rgba(212, 175, 55, 0.15);
  border: 1px solid rgba(212, 175, 55, 0.35);
  color: var(--gold-light);
}
.theme-dark-gold .badge-type:hover {
  background: rgba(212, 175, 55, 0.25);
  color: var(--gold-light);
  border-color: rgba(212, 175, 55, 0.6);
}
.theme-dark-gold .pagination .page-link {
  background: rgba(212, 175, 55, 0.1);
  color: var(--gold-light);
  border-color: var(--gold-border);
}
.theme-dark-gold .pagination .page-link:hover {
  background: rgba(212, 175, 55, 0.2);
  color: #fff;
}
.theme-dark-gold .pagination .active .page-link {
  background: var(--gold-primary);
  color: var(--darker-bg);
  border-color: var(--gold-light);
}
.theme-dark-gold ::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.theme-dark-gold ::-webkit-scrollbar-track {
  background: var(--darker-bg);
}
.theme-dark-gold ::-webkit-scrollbar-thumb {
  background: var(--gold-dark);
  border-radius: 4px;
}
.theme-dark-gold ::-webkit-scrollbar-thumb:hover {
  background: var(--gold-primary);
}

/* ====== Theme: spring-summer ====== */
.theme-spring-summer {
  --gold-primary: #6B8F5E;
  --gold-light: #7A9A6D;
  --gold-dark: #4D7040;
  --gold-border: rgba(107, 143, 94, 0.3);
  --dark-bg: #F5F0E8;
  --darker-bg: #FFFFFF;
  --navbar-bg: #E8E0D0;
  --light-gold: #4D7040;

  --text-primary: #3D3D3D;
  --text-secondary: #5C5C5C;
  --text-muted: #8A8A8A;
  --text-code: #D4C5A9;

  --admin-body-bg: #f5f0e8;
  --admin-card-bg: #ffffff;
  --admin-card-border: rgba(107, 143, 94, 0.2);
  --admin-navbar-bg: #6b8f5e;
  --admin-navbar-text: #ffffff;
  --admin-primary: #6b8f5e;
  --admin-text: #3d3d3d;
  --admin-border: rgba(107, 143, 94, 0.15);
  --admin-sidebar-bg: #ffffff;
  --admin-input-bg: #ffffff;
  --admin-hover: rgba(107, 143, 94, 0.04);
}
.theme-spring-summer body {
  font-family: var(--font-serif);
  background-color: var(--dark-bg);
  color: var(--text-primary);
}
.theme-spring-summer .theme-toggle {
  border-color: var(--gold-border);
  color: var(--gold-primary);
}
.theme-spring-summer .theme-toggle:hover {
  background: rgba(107, 143, 94, 0.12);
  color: var(--gold-dark);
}
.theme-spring-summer .navbar {
  background-color: var(--navbar-bg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.08);
  border-bottom: 1px solid var(--gold-border);
}
.theme-spring-summer .navbar .nav-link {
  color: var(--text-secondary) !important;
}
.theme-spring-summer .navbar .nav-link:hover {
  color: var(--gold-primary) !important;
}
.theme-spring-summer .socks5-title {
  color: var(--gold-primary);
  border-color: var(--gold-dark);
}
.theme-spring-summer .card {
  background-color: var(--darker-bg);
  border: 1px solid var(--gold-border);
  border-radius: 10px;
}
.theme-spring-summer .card-header {
  background-color: var(--darker-bg);
  border-bottom: 1px solid var(--gold-border);
  color: var(--gold-primary);
  font-weight: bold;
}
.theme-spring-summer .table {
  color: var(--text-primary);
}
.theme-spring-summer .table thead th {
  color: var(--gold-primary);
  border-bottom-color: var(--gold-border);
}
.theme-spring-summer .table td,
.theme-spring-summer .table th {
  border-top-color: rgba(107, 143, 94, 0.2);
}
.theme-spring-summer .table-hover tbody tr:hover {
  background-color: rgba(107, 143, 94, 0.08);
  color: var(--text-primary);
}
.theme-spring-summer .btn-primary {
  background-color: var(--gold-primary);
  border: 1px solid var(--gold-light);
  color: #fff;
  font-weight: bold;
}
.theme-spring-summer .btn-primary:hover {
  background-color: var(--gold-light);
  border-color: var(--gold-primary);
  color: #fff;
}
.theme-spring-summer .btn-light {
  background-color: rgba(107, 143, 94, 0.1);
  border: 1px solid var(--gold-dark);
  color: var(--gold-primary);
}
.theme-spring-summer .btn-light:hover {
  background-color: rgba(107, 143, 94, 0.2);
  color: var(--gold-dark);
}
.theme-spring-summer .alert-info {
  background-color: rgba(107, 143, 94, 0.08);
  border-color: var(--gold-dark);
  color: var(--gold-primary);
}
.theme-spring-summer .progress {
  background-color: var(--darker-bg);
  border: 1px solid var(--gold-dark);
}
.theme-spring-summer .progress-bar {
  background-color: var(--gold-primary);
}
.theme-spring-summer a {
  color: var(--gold-primary);
}
.theme-spring-summer a:hover {
  color: var(--gold-dark);
}
.theme-spring-summer .badge-type {
  background: rgba(107, 143, 94, 0.12);
  border: 1px solid rgba(107, 143, 94, 0.35);
  color: var(--gold-primary);
}
.theme-spring-summer .badge-type:hover {
  background: rgba(107, 143, 94, 0.2);
  color: var(--gold-dark);
  border-color: rgba(107, 143, 94, 0.6);
}
.theme-spring-summer .pagination .page-link {
  background: rgba(107, 143, 94, 0.08);
  color: var(--gold-primary);
  border-color: var(--gold-border);
}
.theme-spring-summer .pagination .page-link:hover {
  background: rgba(107, 143, 94, 0.15);
  color: var(--text-primary);
}
.theme-spring-summer .pagination .active .page-link {
  background: var(--gold-primary);
  color: #fff;
  border-color: var(--gold-light);
}
.theme-spring-summer .page-title {
  color: var(--gold-primary);
}
.theme-spring-summer ::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
.theme-spring-summer ::-webkit-scrollbar-track {
  background: var(--darker-bg);
}
.theme-spring-summer ::-webkit-scrollbar-thumb {
  background: var(--gold-dark);
  border-radius: 4px;
}
.theme-spring-summer ::-webkit-scrollbar-thumb:hover {
  background: var(--gold-primary);
}
.theme-spring-summer .modal-content.bg-dark.text-light {
  background-color: var(--darker-bg) !important;
  color: var(--text-primary) !important;
}
.theme-spring-summer .modal-header.border-bottom.border-secondary {
  border-bottom-color: var(--gold-border) !important;
}
.theme-spring-summer .modal-footer.border-top.border-secondary {
  border-top-color: var(--gold-border) !important;
}
.theme-spring-summer .btn-close-white {
  filter: none !important;
}
.theme-spring-summer .card.bg-dark.border-secondary {
  background-color: var(--darker-bg) !important;
  border-color: var(--gold-border) !important;
}
.theme-spring-summer .form-control.bg-dark.text-light.border-secondary {
  background-color: var(--darker-bg) !important;
  color: var(--text-primary) !important;
  border-color: var(--gold-border) !important;
}
.theme-spring-summer .btn-outline-light {
  color: var(--gold-primary) !important;
  border-color: var(--gold-primary) !important;
}
.theme-spring-summer .btn-outline-light:hover {
  background-color: var(--gold-primary) !important;
  color: #fff !important;
  border-color: var(--gold-light) !important;
}
.theme-spring-summer .text-warning {
  color: #8B6914 !important;
}
.theme-spring-summer .stat-value {
  color: var(--gold-primary) !important;
}
.theme-spring-summer .balance-value {
  color: var(--gold-primary) !important;
}
.theme-spring-summer .form-control {
  background: var(--darker-bg) !important;
  border-color: var(--gold-border) !important;
  color: var(--text-primary) !important;
}
.theme-spring-summer .form-control:focus {
  background: var(--darker-bg) !important;
  border-color: var(--gold-primary) !important;
  color: var(--text-primary) !important;
  box-shadow: 0 0 0 3px var(--gold-border);
}
.theme-spring-summer .badge-warning {
  color: #8B6914 !important;
}
.theme-spring-summer a.btn-success {
  color: #fff !important;
}
.theme-spring-summer a.btn-warning {
  color: #212529 !important;
}
.theme-spring-summer a.btn-copy {
  color: #000 !important;
}
.theme-spring-summer .article-item.pinned {
  background: linear-gradient(135deg, rgba(107, 143, 94, 0.12) 0%, var(--dark-bg) 100%) !important;
  border-color: var(--gold-primary) !important;
}
.theme-spring-summer .article-item.pinned .article-title {
  color: var(--gold-dark) !important;
}
.theme-spring-summer .article-item.pinned .article-date {
  color: var(--text-secondary) !important;
}
.theme-spring-summer .navbar-toggler {
  border-color: var(--gold-border) !important;
}
.theme-spring-summer .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%234D7040' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}
/* payment 页面保持紫色渐变 + 玻璃拟态原始设计，不被 spring-summer 覆写 */
.theme-spring-summer #payment-section.card,
.theme-spring-summer #payment-interface.card {
  background: rgba(255, 255, 255, 0.1) !important;
  backdrop-filter: blur(10px) !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
}
.theme-spring-summer #payment-interface .card.bg-dark {
  background: #212529 !important;
}
.theme-spring-summer #payment-interface .card.bg-secondary {
  background: #6c757d !important;
}
