/* 全站深色模式补丁：配合 Bootstrap 5.3 的 [data-bs-theme="dark"] 使用，
   仅修正模板与静态 CSS 中硬编码的浅色样式。 */

/* ---------- Bootstrap 浅色工具类 ---------- */
[data-bs-theme="dark"] .bg-light {
    background-color: var(--bs-tertiary-bg) !important;
}
[data-bs-theme="dark"] .bg-white {
    background-color: var(--bs-body-bg) !important;
}
[data-bs-theme="dark"] .bg-light-subtle {
    background-color: var(--bs-secondary-bg) !important;
}
[data-bs-theme="dark"] .table-light,
[data-bs-theme="dark"] .table-light > :not(caption) > * > * {
    --bs-table-bg: var(--bs-tertiary-bg);
    --bs-table-color: var(--bs-body-color);
    --bs-table-border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .badge.bg-light.text-dark {
    color: var(--bs-body-color) !important;
}

/* ---------- members/base.html：侧边栏与表格 ---------- */
[data-bs-theme="dark"] .sidebar {
    background-color: var(--bs-tertiary-bg);
    border-right-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .sidebar-nav .nav-link {
    color: var(--bs-body-color);
}
[data-bs-theme="dark"] .sidebar-nav .nav-link:hover {
    background-color: var(--bs-secondary-bg);
}
[data-bs-theme="dark"] .sidebar-nav .nav-link.active {
    background-color: rgba(13, 110, 253, 0.15);
}
[data-bs-theme="dark"] .page-header {
    border-bottom-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .card-header {
    background-color: var(--bs-tertiary-bg);
    border-bottom-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .table th {
    background-color: var(--bs-tertiary-bg);
    border-bottom-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .table-hover tbody tr:hover {
    background-color: var(--bs-secondary-bg);
}

/* ---------- login.html：登录卡片 ---------- */
[data-bs-theme="dark"] .login-form {
    background-color: var(--bs-body-bg);
    box-shadow: 0 5px 25px rgba(0, 0, 0, 0.6);
}
[data-bs-theme="dark"] .form-title {
    color: var(--bs-body-color);
}
[data-bs-theme="dark"] .form-footer {
    color: var(--bs-secondary-color);
}

/* ---------- static/volunteer/volunteer.css ---------- */
[data-bs-theme="dark"] .stat-label,
[data-bs-theme="dark"] .stat-unit {
    color: var(--bs-secondary-color);
}
[data-bs-theme="dark"] .volunteer-plaintext {
    background-color: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .volunteer-record:hover,
[data-bs-theme="dark"] .hours-record-item:hover,
[data-bs-theme="dark"] .activity-item:hover {
    background-color: var(--bs-secondary-bg);
}
[data-bs-theme="dark"] .volunteer-record.exception-record {
    background-color: rgba(220, 53, 69, 0.12);
}
[data-bs-theme="dark"] .volunteer-record.exception-record:hover {
    background-color: rgba(220, 53, 69, 0.2);
}

/* ---------- flatpickr 日期选择器 ---------- */
[data-bs-theme="dark"] .flatpickr-calendar {
    background: var(--bs-body-bg);
    border-color: var(--bs-border-color);
    box-shadow: 0 3px 13px rgba(0, 0, 0, 0.5);
}
[data-bs-theme="dark"] .flatpickr-months .flatpickr-month,
[data-bs-theme="dark"] .flatpickr-current-month .flatpickr-monthDropdown-months,
[data-bs-theme="dark"] .flatpickr-weekdays,
[data-bs-theme="dark"] span.flatpickr-weekday,
[data-bs-theme="dark"] .flatpickr-day,
[data-bs-theme="dark"] .flatpickr-time input,
[data-bs-theme="dark"] .flatpickr-time .flatpickr-am-pm {
    color: var(--bs-body-color);
    background: transparent;
}
[data-bs-theme="dark"] .flatpickr-day:hover,
[data-bs-theme="dark"] .flatpickr-day:focus {
    background: var(--bs-secondary-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .flatpickr-day.selected,
[data-bs-theme="dark"] .flatpickr-day.selected:hover {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

/* ---------- 页面级补丁 ---------- */

/* 页面自定义的 body 背景（import_club_members、landing 等） */
[data-bs-theme="dark"] body {
    background-color: var(--bs-body-bg) !important;
}

/* 页头分隔线 */
[data-bs-theme="dark"] .dashboard-header,
[data-bs-theme="dark"] .mgmt-tab-header {
    border-color: var(--bs-border-color);
}

/* 活动列表 / 详情 / 编辑 */
[data-bs-theme="dark"] .activity-header,
[data-bs-theme="dark"] .filter-container {
    background: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .activity-card,
[data-bs-theme="dark"] .tab-content {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .info-label,
[data-bs-theme="dark"] .status-inactive {
    color: var(--bs-body-color);
}
[data-bs-theme="dark"] .scope-badge {
    background-color: var(--bs-secondary-bg);
    color: var(--bs-secondary-color);
}
[data-bs-theme="dark"] .pagination-info {
    color: var(--bs-secondary-color);
}
[data-bs-theme="dark"] .nav-tabs .nav-link:hover {
    background-color: var(--bs-secondary-bg);
}
[data-bs-theme="dark"] .nav-tabs .nav-link.active {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg);
}

/* 社团详情 */
[data-bs-theme="dark"] .club-header {
    background-color: var(--bs-tertiary-bg);
    border-bottom-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .member-card,
[data-bs-theme="dark"] .member-table td,
[data-bs-theme="dark"] .search-container input {
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .member-table th {
    background-color: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .member-table tr:hover {
    background-color: var(--bs-secondary-bg);
}
[data-bs-theme="dark"] .member-role,
[data-bs-theme="dark"] .modal-qr-hint {
    color: var(--bs-secondary-color);
}
[data-bs-theme="dark"] .mgmt-entry-card {
    background-color: var(--bs-primary-bg-subtle) !important;
    border-color: var(--bs-primary-border-subtle) !important;
}

/* 社团管理面板 */
[data-bs-theme="dark"] .mgmt-summary-card {
    background-color: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .club-review-card {
    background-color: var(--bs-warning-bg-subtle);
}
[data-bs-theme="dark"] .mgmt-tab-header .nav-link {
    color: var(--bs-body-color);
}
[data-bs-theme="dark"] .archive-row,
[data-bs-theme="dark"] .honor-row {
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .archive-meta,
[data-bs-theme="dark"] .honor-meta {
    color: var(--bs-secondary-color);
}

/* 签到 / 扫码页面 */
[data-bs-theme="dark"] .scan-card,
[data-bs-theme="dark"] .preview-card,
[data-bs-theme="dark"] .feedback-card,
[data-bs-theme="dark"] .recent-card {
    background: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .feedback-card .card-header,
[data-bs-theme="dark"] .preview-card .card-header,
[data-bs-theme="dark"] .session-meta,
[data-bs-theme="dark"] .nfc-zone {
    background: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .member-hero {
    background: var(--bs-secondary-bg);
}
[data-bs-theme="dark"] #qr-reader {
    background: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .count-pill {
    background: var(--bs-body-bg);
}
[data-bs-theme="dark"] .mode-tab,
[data-bs-theme="dark"] .meta-label,
[data-bs-theme="dark"] .member-class-line,
[data-bs-theme="dark"] .recent-list,
[data-bs-theme="dark"] .recent-item .meta,
[data-bs-theme="dark"] .verify-info .label {
    color: var(--bs-secondary-color);
}

/* 签到记录列表 */
[data-bs-theme="dark"] .checkin-table {
    background: var(--bs-body-bg);
}
[data-bs-theme="dark"] .checkin-table thead th {
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .create-card {
    background: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}

/* 社团管理（Staff） */
[data-bs-theme="dark"] .page-intro {
    background: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .stat-card {
    background: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .stat-label,
[data-bs-theme="dark"] .hash-text,
[data-bs-theme="dark"] .info-grid dt {
    color: var(--bs-secondary-color);
}
[data-bs-theme="dark"] .stat-card .text-dark {
    color: var(--bs-body-color) !important;
}

/* 更新日志 */
[data-bs-theme="dark"] .timeline::before {
    background-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .timeline-content {
    background-color: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .timeline-date {
    color: var(--bs-secondary-color);
}

/* 个人资料 / 修改密码 / 退出 / 首次登录 / 声效页 */
[data-bs-theme="dark"] .password-section,
[data-bs-theme="dark"] .profile-section,
[data-bs-theme="dark"] .logout-container,
[data-bs-theme="dark"] .setup-card,
[data-bs-theme="dark"] .sound-button {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .password-section h2,
[data-bs-theme="dark"] .form-group label,
[data-bs-theme="dark"] .profile-section h2,
[data-bs-theme="dark"] .profile-info strong,
[data-bs-theme="dark"] .sound-title,
[data-bs-theme="dark"] .logout-container h1 {
    color: var(--bs-body-color);
}
[data-bs-theme="dark"] .profile-info p,
[data-bs-theme="dark"] .sound-description,
[data-bs-theme="dark"] .logout-container p,
[data-bs-theme="dark"] .easter-egg-hint {
    color: var(--bs-secondary-color);
}

/* 志愿者时长表单 / 详情 / 审核 */
[data-bs-theme="dark"] .volunteer-hour-form-container,
[data-bs-theme="dark"] .volunteer-hour-form-container table {
    background-color: var(--bs-body-bg);
}
[data-bs-theme="dark"] .form-control {
    color: var(--bs-body-color);
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .form-control-plaintext {
    background-color: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .form-section-title,
[data-bs-theme="dark"] .form-label,
[data-bs-theme="dark"] .modal-title,
[data-bs-theme="dark"] .hours-allocation-item h6 {
    color: var(--bs-body-color);
}
[data-bs-theme="dark"] .form-help,
[data-bs-theme="dark"] .input-unit,
[data-bs-theme="dark"] #empty-participants td,
[data-bs-theme="dark"] .session-meta .meta-item i {
    color: var(--bs-secondary-color);
}
[data-bs-theme="dark"] .user-checkbox-item:hover,
[data-bs-theme="dark"] .list-group-item:hover,
[data-bs-theme="dark"] .modal-header,
[data-bs-theme="dark"] .modal-footer,
[data-bs-theme="dark"] #modal-search-btn,
[data-bs-theme="dark"] .hours-allocation-item,
[data-bs-theme="dark"] #empty-participants {
    background-color: var(--bs-tertiary-bg);
}
[data-bs-theme="dark"] #modal-search-btn:hover {
    background-color: var(--bs-secondary-bg);
}
[data-bs-theme="dark"] .possible-participants-list .list-group-item:hover {
    background-color: var(--bs-primary-bg-subtle);
}

/* 修改社团页（自定义 CSS 变量） */
html[data-bs-theme="dark"] {
    --text-primary: var(--bs-body-color);
    --text-secondary: var(--bs-secondary-color);
    --text-tertiary: var(--bs-secondary-color);
    --bg-light: var(--bs-tertiary-bg);
    --bg-white: var(--bs-body-bg);
    --border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .search-result-item:hover,
[data-bs-theme="dark"] .search-result-item.selected,
[data-bs-theme="dark"] .selected-member-tag,
[data-bs-theme="dark"] .selected-member,
[data-bs-theme="dark"] .search-suggestion-item:hover {
    background-color: var(--bs-primary-bg-subtle);
}
[data-bs-theme="dark"] .selected-members-list:has(.empty-state) {
    background: var(--bs-tertiary-bg);
}

/* landing（K 的笔记） */
[data-bs-theme="dark"] .about-box,
[data-bs-theme="dark"] .tag-cloud a {
    background: var(--bs-body-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-secondary-color);
}
[data-bs-theme="dark"] .login-hint {
    background: var(--bs-warning-bg-subtle);
    color: var(--bs-warning-text-emphasis);
}
[data-bs-theme="dark"] .blog-header h1,
[data-bs-theme="dark"] .section-title,
[data-bs-theme="dark"] .post-item a.title {
    color: var(--bs-body-color);
}
[data-bs-theme="dark"] .blog-header .tagline,
[data-bs-theme="dark"] .blog-header .socials a,
[data-bs-theme="dark"] .post-item .meta,
[data-bs-theme="dark"] .post-item .excerpt,
[data-bs-theme="dark"] .blog-footer-note {
    color: var(--bs-secondary-color);
}
