/**
 * 主题开关 + 深色全站收口（须在 page-* 之后加载）
 */

/* —— 顶栏主题开关 —— */
.bm-theme-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  margin: 0;
  border: 1px solid var(--bm-border-light);
  border-radius: var(--bm-radius-sm);
  background: var(--bm-surface-elevated);
  color: var(--bm-nav-text-muted);
  cursor: pointer;
  transition: color 0.2s ease, background 0.2s ease, border-color 0.2s ease;
}

.bm-theme-toggle:hover {
  color: var(--bm-brand);
  background: var(--bm-brand-subtle);
  border-color: var(--bm-brand-muted);
}

.bm-theme-toggle:focus-visible {
  outline: none;
  box-shadow: var(--bm-focus-ring);
}

.bm-theme-toggle .bm-theme-icon {
  font-size: 0.95rem;
  line-height: 1;
}

.bm-theme-toggle .bm-theme-icon-sun {
  display: inline-block;
}

.bm-theme-toggle .bm-theme-icon-moon {
  display: none;
}

html[data-bm-theme="light"] .bm-theme-toggle .bm-theme-icon-sun {
  display: none;
}

html[data-bm-theme="light"] .bm-theme-toggle .bm-theme-icon-moon {
  display: inline-block;
}

.bm-nav-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

@media (max-width: 991.98px) {
  .bm-header .bm-theme-toggle {
    align-self: flex-end;
  }
}

/* —— Bootstrap / 工具类 —— */
html:not([data-bm-theme="light"]) .text-dark,
html:not([data-bm-theme="light"]) .text-body {
  color: var(--bm-text) !important;
}

html:not([data-bm-theme="light"]) .text-muted {
  color: var(--bm-text-muted) !important;
}

html:not([data-bm-theme="light"]) .bg-white,
html:not([data-bm-theme="light"]) .bg-light {
  background-color: var(--bm-surface-card) !important;
  color: var(--bm-text);
}

html:not([data-bm-theme="light"]) .form-control,
html:not([data-bm-theme="light"]) .form-select,
html:not([data-bm-theme="light"]) .input-group-text {
  background-color: var(--bm-surface-elevated);
  border-color: var(--bm-border-light-strong);
  color: var(--bm-text);
}

html:not([data-bm-theme="light"]) .form-control::placeholder {
  color: var(--bm-text-muted);
}

html:not([data-bm-theme="light"]) .form-control:focus,
html:not([data-bm-theme="light"]) .form-select:focus {
  background-color: var(--bm-surface-elevated);
  border-color: var(--bm-brand);
  color: var(--bm-text);
  box-shadow: var(--bm-focus-ring);
}

html:not([data-bm-theme="light"]) .card {
  background-color: var(--bm-surface-card);
  border-color: var(--bm-border-light);
  color: var(--bm-text);
}

html:not([data-bm-theme="light"]) .modal-content {
  background-color: var(--bm-surface-card);
  color: var(--bm-text);
  border-color: var(--bm-border-light);
}

html:not([data-bm-theme="light"]) .dropdown-menu {
  background-color: var(--bm-dropdown-bg);
  border-color: var(--bm-border-light);
  color: var(--bm-text);
}

html:not([data-bm-theme="light"]) .dropdown-item {
  color: var(--bm-text-secondary);
}

html:not([data-bm-theme="light"]) .dropdown-item:hover,
html:not([data-bm-theme="light"]) .dropdown-item:focus {
  background-color: var(--bm-brand-subtle);
  color: var(--bm-brand);
}

html:not([data-bm-theme="light"]) .dropdown-divider {
  border-top-color: var(--bm-border-light);
}

html:not([data-bm-theme="light"]) .navbar-toggler {
  border-color: var(--bm-border-light-strong);
}

html:not([data-bm-theme="light"]) .navbar-toggler-icon {
  filter: invert(1) brightness(1.4);
}

html:not([data-bm-theme="light"]) .table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--bm-text);
  --bs-table-border-color: var(--bm-border-light);
  --bs-table-striped-bg: rgba(255, 255, 255, 0.03);
  color: var(--bm-text);
}

html:not([data-bm-theme="light"]) .list-group-item {
  background-color: var(--bm-surface-card);
  border-color: var(--bm-border-light);
  color: var(--bm-text);
}

html:not([data-bm-theme="light"]) .hr,
html:not([data-bm-theme="light"]) hr {
  border-color: var(--bm-border-light);
  opacity: 1;
}

/* —— 品牌色按钮：实心品牌底上用深字 —— */
/* 勿套到 .badge.bg-primary：顶栏数量角标是浅底 + 品牌字色，on-brand 深字会看不见 */
html:not([data-bm-theme="light"]) .bm-header .bm-nav-cta,
html:not([data-bm-theme="light"]) .bm-btn-solid,
html:not([data-bm-theme="light"]) .hero-section .search-btn,
html:not([data-bm-theme="light"]) .hero-section .search-btn i,
html:not([data-bm-theme="light"]) .bm-cta-band .bm-btn-solid,
html:not([data-bm-theme="light"]) .software-card:hover .download-btn,
html:not([data-bm-theme="light"]) .bm-page .software-card:hover .download-btn,
html:not([data-bm-theme="light"]) .bm-featured-ribbon {
  color: var(--bm-on-brand) !important;
}

/* 顶栏悬停：角标切成实心品牌底时改用深字 */
html:not([data-bm-theme="light"]) .bm-header .nav-item.dropdown:hover .badge.bg-primary {
  color: var(--bm-on-brand) !important;
}

html:not([data-bm-theme="light"]) .btn-primary {
  --bs-btn-color: var(--bm-on-brand);
  --bs-btn-hover-color: var(--bm-on-brand);
  --bs-btn-active-color: var(--bm-on-brand);
}

html:not([data-bm-theme="light"]) .btn-outline-primary:hover {
  color: var(--bm-on-brand);
}

/* —— 搜索 —— */
html:not([data-bm-theme="light"]) .hero-section .search-box,
html:not([data-bm-theme="light"]) .search-box {
  color: var(--bm-text);
  background: transparent;
}

html:not([data-bm-theme="light"]) .hero-section .search-box::placeholder {
  color: var(--bm-text-muted);
}

/* —— 卡片图区：压住白底截图眩光 —— */
html:not([data-bm-theme="light"]) .software-image,
html:not([data-bm-theme="light"]) .bm-page .software-image,
html:not([data-bm-theme="light"]) .is-home .software-image {
  background: linear-gradient(160deg, var(--bm-surface-elevated) 0%, var(--bm-surface-section) 100%);
}

html:not([data-bm-theme="light"]) .software-image img,
html:not([data-bm-theme="light"]) .bm-page .software-image img,
html:not([data-bm-theme="light"]) .is-home .software-image img {
  border-radius: var(--bm-radius-sm);
  box-shadow: 0 0 0 1px rgba(232, 238, 246, 0.06);
  background: rgba(255, 255, 255, 0.04);
}

/* —— 平台角标 / 推荐角标 —— */
html:not([data-bm-theme="light"]) .software-card .bm-card-platform,
html:not([data-bm-theme="light"]) .bm-page .software-image .bm-card-platform,
html:not([data-bm-theme="light"]) .is-home .software-image .bm-card-platform {
  background: var(--bm-platform-badge-bg);
  color: var(--bm-platform-badge-color);
  border-color: var(--bm-border-light-strong);
  backdrop-filter: blur(6px);
}

html:not([data-bm-theme="light"]) .software-card .bm-card-badge,
html:not([data-bm-theme="light"]) .bm-page .featured-badge,
html:not([data-bm-theme="light"]) .is-home .bm-card-badge {
  background: var(--bm-brand);
  color: var(--bm-on-brand);
}

/* —— 卡片悬停：用品牌描边代替纯黑阴影 —— */
html:not([data-bm-theme="light"]) .software-card:hover,
html:not([data-bm-theme="light"]) .category-card:hover,
html:not([data-bm-theme="light"]) .bm-tool-card:hover,
html:not([data-bm-theme="light"]) .bm-page .software-card:hover {
  border-color: var(--bm-brand-muted);
  box-shadow: 0 0 0 1px rgba(45, 212, 191, 0.18), 0 12px 28px rgba(0, 0, 0, 0.45);
}

/* —— 分区容器边框略加强 —— */
html:not([data-bm-theme="light"]) .bm-tools-section > .container,
html:not([data-bm-theme="light"]) .categories-section > .container,
html:not([data-bm-theme="light"]) .featured-section > .container,
html:not([data-bm-theme="light"]) .bm-cta-band__inner,
html:not([data-bm-theme="light"]) .bm-footer-notice,
html:not([data-bm-theme="light"]) .bm-page .search-form.bm-search-panel {
  border-color: var(--bm-border-light-strong);
}

/* —— 页脚强制深色收口 —— */
html:not([data-bm-theme="light"]) .footer {
  background: var(--bm-footer-bg) !important;
  color: var(--bm-text-secondary);
  border-top-color: var(--bm-border-light-strong);
}

html:not([data-bm-theme="light"]) .footer-title,
html:not([data-bm-theme="light"]) .footer-heading {
  color: var(--bm-text);
}

html:not([data-bm-theme="light"]) .footer-muted,
html:not([data-bm-theme="light"]) .footer .footer-muted,
html:not([data-bm-theme="light"]) .footer-link,
html:not([data-bm-theme="light"]) .footer-platform-link,
html:not([data-bm-theme="light"]) .footer a {
  color: var(--bm-text-secondary);
}

html:not([data-bm-theme="light"]) .footer a:hover,
html:not([data-bm-theme="light"]) .footer-link:hover,
html:not([data-bm-theme="light"]) .footer-platform-link:hover {
  color: var(--bm-brand);
}

html:not([data-bm-theme="light"]) .footer .bm-btn-ghost {
  color: var(--bm-brand);
  background: var(--bm-brand-subtle);
  border-color: var(--bm-brand-muted);
}

html:not([data-bm-theme="light"]) .footer .bm-btn-ghost:hover,
html:not([data-bm-theme="light"]) .bm-cta-band .bm-btn-ghost:hover {
  color: var(--bm-on-brand);
  background: var(--bm-brand);
  border-color: var(--bm-brand);
}

html:not([data-bm-theme="light"]) .bm-footer-notice {
  background: var(--bm-surface-card);
}

html:not([data-bm-theme="light"]) .bm-footer-notice .badge.bm-footer-badge--original {
  color: var(--bm-brand) !important;
  background: var(--bm-brand-subtle) !important;
  border-color: var(--bm-brand-muted);
}

html:not([data-bm-theme="light"]) .bm-footer-notice .badge.bm-footer-badge--third {
  color: var(--bm-text-secondary) !important;
  background: var(--bm-surface-alt) !important;
  border-color: var(--bm-border-light-strong);
}

/* —— Hero 过渡到画布 —— */
html:not([data-bm-theme="light"]) .hero-section,
html:not([data-bm-theme="light"]) .bm-page .bm-search-hero-premium,
html:not([data-bm-theme="light"]) .error-hero {
  background:
    var(--bm-hero-fade),
    radial-gradient(ellipse 75% 55% at 50% -15%, rgba(45, 212, 191, 0.18) 0%, transparent 58%),
    var(--bm-hero-base);
}

html:not([data-bm-theme="light"]) .mac-platform .category-icon-wrap,
html:not([data-bm-theme="light"]) .category-card[data-platform="macos"] .category-icon-wrap,
html:not([data-bm-theme="light"]) .category-card[data-platform="mac"] .category-icon-wrap {
  color: #cbd5e1 !important;
}

/* —— 软件详情页浅色面板 —— */
html:not([data-bm-theme="light"]) .bm-page-software .bm-sd-panel,
html:not([data-bm-theme="light"]) .bm-page-software .bm-sd-card,
html:not([data-bm-theme="light"]) .bm-page-software .card {
  background: var(--bm-surface-card);
  border-color: var(--bm-border-light);
  color: var(--bm-text);
}

html:not([data-bm-theme="light"]) .bm-back-top {
  background: var(--bm-surface-elevated);
  color: var(--bm-text);
  border: 1px solid var(--bm-border-light-strong);
}

html:not([data-bm-theme="light"]) .bm-back-top:hover {
  background: var(--bm-brand);
  color: var(--bm-on-brand);
  border-color: var(--bm-brand);
}

/* 顶栏 inset 在深色下勿用亮白线 */
html:not([data-bm-theme="light"]) .bm-header .navbar {
  box-shadow: var(--bm-nav-inset), 0 4px 24px rgba(0, 0, 0, 0.28);
}

html:not([data-bm-theme="light"]) .bm-header .navbar.glass-on {
  box-shadow: var(--bm-nav-inset), 0 8px 32px rgba(0, 0, 0, 0.35);
}

/* —— 软件详情：浅色按钮改深色玻璃 —— */
html:not([data-bm-theme="light"]) .bm-page-software .bm-sd-topic-hero .download-btn-compact.bm-btn-share,
html:not([data-bm-theme="light"]) .bm-page-software .bm-sd-topic-hero .invoice-btn-compact {
  background: rgba(26, 34, 45, 0.75);
  color: var(--bm-text);
  border-color: var(--bm-border-light-strong);
}

html:not([data-bm-theme="light"]) .bm-page-software .bm-sd-topic-hero .download-btn-compact:not(.bm-btn-share),
html:not([data-bm-theme="light"]) .bm-page-software .bm-sd-topic-hero .download-btn-compact:not(.bm-btn-share) i {
  color: var(--bm-on-brand) !important;
}

html:not([data-bm-theme="light"]) .bm-page-software .bm-sd-topic-band,
html:not([data-bm-theme="light"]) .bm-page-software .bm-sd-section,
html:not([data-bm-theme="light"]) .bm-page-software .bm-sd-overview,
html:not([data-bm-theme="light"]) .bm-page-software .bm-sd-downloads,
html:not([data-bm-theme="light"]) .bm-page-software .bm-sd-gallery {
  background: var(--bm-surface-card);
  border-color: var(--bm-border-light);
  color: var(--bm-text);
}

html:not([data-bm-theme="light"]) .bm-page-software .play-button {
  background: var(--bm-surface-elevated);
  color: var(--bm-brand);
  box-shadow: 0 0 0 1px var(--bm-border-light), 0 16px 48px rgba(0, 0, 0, 0.45);
}
