/* ========== 现代暗色模式 ========== */

/* 用户横向滚动展示模块 */
.dark .qm-page-shell .card.border-0.shadow-sm h2.h5.fw-semibold,
.dark .qm-page-shell .card h2.h5,
.dark .qm-page-shell .card h2,
body.dark-mode .qm-page-shell .card h2.h5,
body.dark-mode .qm-page-shell .card h2 {
    color: var(--qm-text-primary) !important;
}

.dark .qm-page-shell .card .text-muted,
body.dark-mode .qm-page-shell .card .text-muted {
    color: var(--qm-text-muted) !important;
}

/* 优惠券模块 */
.dark .qm-coupon-container h2,
.dark .qm-coupon-container h2.h5,
.dark .qm-coupon-container .card h2,
body.dark-mode .qm-coupon-container h2,
body.dark-mode .qm-coupon-container h2.h5 {
    color: var(--qm-text-primary) !important;
}

.dark body,
body.dark {
    background-color: var(--qm-bg-dark);
}


.dark #qm-header {
    background: var(--qm-bg-dark);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* 首页暗色模式下 header 完全透明 */
.dark .home #qm-header,
.dark .front-page #qm-header,
html.dark .home #qm-header,
html.dark .front-page #qm-header,
html.dark body.home #qm-header,
html.dark body.front-page #qm-header {
    background: transparent !important;
    box-shadow: none !important;
}



.dark input,
.dark select,
.dark textarea {
    background: var(--qm-bg-dark-800);
    border-color: var(--qm-border-dark-600);
    color: var(--qm-text-primary);
}

.dark input::placeholder,
.dark textarea::placeholder {
    color: var(--qm-text-lighter);
}


.dark .dropdown-menu .bg-white {
    background: var(--qm-bg-dark-800) !important;
    border-color: var(--qm-border-dark-600);
}

.dark .dropdown-item:hover {
    background: var(--qm-primary-rgba-15, rgba(255, 20, 147, 0.15)) !important;
}

.dark .dropdown-item .item-title {
    color: var(--qm-text-secondary);
}

/* 暗色模式下的列表样式 */
.dark .dropdown-menu .dropdown-item-icon-small {
    color: var(--qm-text-muted);
}

.dark .dropdown-menu .dropdown-item-icon-small i {
    color: var(--qm-text-muted);
}

.dark .dropdown-menu .dropdown-item--simple .item-title {
    color: var(--qm-text-secondary);
}

.dark .dropdown-menu .dropdown-item--simple .item-count {
    color: var(--qm-text-lighter);
}

.dark .dropdown-item .icon-wrap {
    background: linear-gradient(135deg, var(--qm-primary-rgba-20, rgba(255, 20, 147, 0.2)), rgba(255, 105, 180, 0.15));
}


.dark .nav-link {
    color: var(--qm-text-secondary);
}

.dark .nav-link:hover,
.dark .nav-link.active {
    color: var(--qm-primary, #FF1493);
    background: linear-gradient(
        135deg,
        var(--qm-primary-rgba-12, rgba(255, 20, 147, 0.12)),
        var(--qm-primary-light-rgba-15, rgba(255, 105, 180, 0.15))
    );
}

/* 首页暗色模式下主导航文字更亮 */
.dark .home .nav-link,
.dark .front-page .nav-link,
html.dark .home .nav-link,
html.dark .front-page .nav-link {
    color: var(--qm-text-primary) !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.dark #mobile-menu {
    background: var(--qm-bg-dark);
    border-color: var(--qm-border-dark-600);
}

.dark .widget {
    background: var(--qm-bg-dark-800);
    border-color: var(--qm-border-dark-600);
    box-shadow:
        0 16px 34px rgba(0, 0, 0, 0.28),
        0 4px 12px rgba(0, 0, 0, 0.18);
}


.dark .post-card,
.dark article {
    background: var(--qm-bg-dark-800);
    border-color: var(--qm-border-dark-600);
}


.dark .bg-gradient-to-r.from-purple-500,
.dark .bg-gradient-to-r.from-blue-500 {
    filter: brightness(1.1) saturate(1.1);
}


.dark .shadow,
.dark .shadow-sm,
.dark .shadow-lg,
.dark .shadow-xl {
    --tw-shadow-color: rgba(0, 0, 0, 0.4);
}


.dark .qm-article-comments-section {
    border-top-color: var(--qm-border-dark-600);
    background: transparent;
}

.dark .qm-article-main-content {
    background: transparent !important;
}

.dark .qm-comments-title {
    color: var(--qm-text-secondary);
}

.dark .qm-comments-sort {
    color: var(--qm-text-secondary);
}

.dark .qm-sort-label {
    color: var(--qm-text-muted);
}

.dark .qm-comment-sort-btn {
    color: var(--qm-text-muted);
}

.dark .qm-comment-sort-btn:hover {
    color: #60a5fa;
    background: rgba(37, 99, 235, 0.15);
}

.dark .qm-comment-sort-btn.active {
    color: #60a5fa;
    background: rgba(37, 99, 235, 0.2);
    font-weight: 600;
}

.dark .qm-comments-empty {
    color: var(--qm-text-muted);
}

.dark .qm-comments-empty > div {
    background: var(--qm-bg-dark-800);
}

.dark .qm-comments-empty i {
    color: var(--qm-text-lighter);
}

.dark .qm-comments-empty p {
    color: var(--qm-text-muted);
}


.dark .qm-single-post-comments {
    background: transparent;
}

.dark .qm-single-post-comments .qm-comment-item {
    background: transparent !important;
    border-color: var(--qm-border-dark-600) !important;
}

.dark .qm-single-post-comments .qm-comment-body {
    background: transparent !important;
    color: var(--qm-text-secondary);
}

.dark .qm-single-post-comments .comment-list {
    background: transparent;
}

.dark .qm-single-post-comments .comment-list li {
    background: transparent !important;
}


.dark .qm-single-post-comments .qm-comment-header {
    color: var(--qm-text-secondary);
}

.dark .qm-single-post-comments .qm-comment-author-block {
    color: var(--qm-text-secondary);
}

.dark .qm-single-post-comments .qm-comment-author {
    color: var(--qm-text-secondary);
}

.dark .qm-single-post-comments .qm-comment-author-name {
    color: var(--qm-text-secondary) !important;
}

.dark .qm-single-post-comments .qm-comment-author-name a {
    color: var(--qm-text-secondary) !important;
}

.dark .qm-single-post-comments .qm-comment-author-name a:hover {
    color: #60a5fa !important;
}

.dark .qm-single-post-comments .qm-comment-level-badge {
    color: #fbbf24;
    background: transparent;
    border-color: rgba(251, 191, 36, 0.3);
}

.dark .qm-single-post-comments .qm-comment-meta {
    color: var(--qm-text-muted) !important;
}

.dark .qm-single-post-comments .qm-comment-date {
    color: var(--qm-text-muted) !important;
}

.dark .qm-single-post-comments .qm-comment-content {
    color: var(--qm-text-secondary);
}

.dark .qm-single-post-comments .qm-comment-actions {
    color: var(--qm-text-muted);
}

.dark .qm-single-post-comments .qm-comment-actions a {
    color: var(--qm-text-muted);
}

.dark .qm-single-post-comments .qm-comment-actions a:hover {
    color: #60a5fa;
}


.dark .qm-comment-form {
    background: var(--qm-bg-dark-800);
    border-color: var(--qm-border-dark-600);
}

.dark .qm-comment-form textarea {
    background: var(--qm-bg-dark);
    border-color: var(--qm-border-dark-600);
    color: var(--qm-text-secondary);
}

.dark .qm-comment-form textarea::placeholder {
    color: var(--qm-text-lighter);
}

.dark .qm-comment-form .qm-comment-input-wrapper {
    background: var(--qm-bg-dark);
    border-color: var(--qm-border-dark-600);
}

.dark .qm-comment-form .qm-comment-attach-btn,
.dark .qm-comment-form .qm-comment-send-btn {
    color: var(--qm-text-muted);
}

.dark .qm-comment-form .qm-comment-attach-btn:hover,
.dark .qm-comment-form .qm-comment-send-btn:hover {
    color: #60a5fa;
    background: rgba(37, 99, 235, 0.15);
}

.dark .qm-comments-error {
    background: rgba(239, 68, 68, 0.1);
    border-color: rgba(239, 68, 68, 0.3);
    color: #fca5a5;
}

/* Global dark text color override */
.dark,
body.dark {
    color: var(--qm-text-secondary);
}

.dark :is(
    h1,
    h2,
    h3,
    h4,
    h5,
    h6,
    .h1,
    .h2,
    .h3,
    .h4,
    .h5,
    .h6,
    .text-body,
    .text-body-emphasis
) {
    color: var(--qm-text-primary) !important;
}

/*
 * 次级文本工具类统一为 muted 色。
 * 注意：不要强制 p/span/a/li/small/label，否则会覆盖图标字体颜色、
 * 链接色以及 text-danger/text-primary 等强调色。
 */
.dark :is(
    .text-secondary,
    .text-muted,
    .text-light,
    .text-lighter
) {
    color: var(--qm-text-muted) !important;
}

/* Bootstrap buttons contain nested elements (span/i/svg) that should follow button color. */
.dark .btn,
.dark .btn:hover {
    color: var(--bs-btn-color) !important;
}

.dark .btn i,
.dark .btn svg,
.dark .btn span,
.dark .btn small {
    color: inherit !important;
}

/* Button inner text should inherit button color in dark mode */
.dark .btn-text,
.dark .btn-countdown {
    color: inherit !important;
}

/* Preserve auth button text color in dark mode */
.dark a.qm-header-login-btn,
.dark a.qm-header-login-btn:hover,
.dark a.qm-header-register-btn,
.dark a.qm-header-register-btn:hover,
.dark a.qm-mobile-auth-btn--login,
.dark a.qm-mobile-auth-btn--login:hover,
.dark a.qm-mobile-auth-btn--register,
.dark a.qm-mobile-auth-btn--register:hover {
    color: #ffffff !important;
}

.dark a.qm-slide__overlay-btn--primary,
.dark a.qm-slide__overlay-btn--primary:hover {
    color: #ffffff !important;
}

/* Module titles use white in dark mode */
.dark .qm-module-title,
.dark .qm-sidebar-section-title,
.dark .qm-sidebar-hot-title,
.dark .qm-task-widget__title {
    color: var(--qm-text-primary) !important;
}

.dark .qm-module-subtitle {
    color: var(--qm-text-muted) !important;
}

.dark :is(
    .qm-card-title,
    .qm-post-list-title,
    .qm-post-list-title a,
    .qm-article-hero-title,
    .qm-article-content-title,
    .qm-related-title,
    .qm-related-item-title,
    .qm-software-detail-title,
    .qm-software-hero-title,
    .qm-software-detail-download-btn,
    .qm-software-detail-download-btn span,
    .qm-software-hero-download-btn,
    .qm-software-hero-download-btn span,
    .qm-software-download-section .btn-primary,
    .qm-software-download-section .btn-primary span,
    .qm-points-shelf__title,
    .qm-points-card__title,
    .qm-points-detail__title,
    .qm-points-cart-modal__title,
    .qm-points-cart-modal__item-title
) {
    color: var(--qm-text-primary) !important;
}

.dark :is(
    .qm-card-excerpt,
    .qm-post-list-excerpt,
    .qm-card-time,
    .qm-card-time i,
    .qm-card-stats span,
    .qm-card-stats i,
    .qm-sidebar-hot-meta,
    .qm-sidebar-taxonomy-label,
    .qm-article-meta-row,
    .qm-article-hero-meta,
    .qm-article-hero-meta .qm-meta-item,
    .qm-article-content-meta,
    .qm-points-shelf__meta,
    .qm-points-card__value,
    .qm-points-card__meta span,
    .qm-points-detail__excerpt,
    .qm-points-detail__meta-label,
    .qm-points-detail__meta-value
) {
    color: var(--qm-text-muted) !important;
}

/* Preserve accent colors for checkin/publish buttons, menu tags, and coupon conditions */
.dark .qm-secondary-pill-btn--checkin,
.dark .qm-secondary-pill-btn--publish,
.dark #qm-checkin-btn,
.dark .qm-user-menu__quick-btn--checkin,
.dark .qm-checkin-modal__btn {
    color: #ffffff !important;
}

.dark .qm-secondary-pill-btn--checkin i,
.dark .qm-secondary-pill-btn--checkin svg,
.dark .qm-secondary-pill-btn--checkin span,
.dark .qm-secondary-pill-btn--publish i,
.dark .qm-secondary-pill-btn--publish svg,
.dark .qm-secondary-pill-btn--publish span,
.dark #qm-checkin-btn i,
.dark #qm-checkin-btn svg,
.dark #qm-checkin-btn span,
.dark .qm-user-menu__quick-btn--checkin i,
.dark .qm-user-menu__quick-btn--checkin svg,
.dark .qm-user-menu__quick-btn--checkin span,
.dark .qm-checkin-modal__btn i,
.dark .qm-checkin-modal__btn svg,
.dark .qm-checkin-modal__btn span {
    color: #ffffff !important;
}

.dark .menu-tag,
.dark .menu-tag *,
.dark .tag-hot,
.dark .tag-hot *,
.dark .tag-new,
.dark .tag-new *,
.dark .tag-vip,
.dark .tag-vip *,
.dark .tag-rec,
.dark .tag-rec *,
.dark .tag-free,
.dark .tag-free *,
.dark .tag-default,
.dark .tag-default * {
    color: #ffffff !important;
}

.dark .qm-coupon-card__condition-text {
    color: #646578 !important;
}

/* ========== 暗色归一化层 ==========
 * 补齐 Bootstrap 组件与通用工具类在暗色模式下的缺失覆盖，
 * 保证背景色、边框色、文字色全局一致。
 */

/* 通用背景工具类 */
.dark .bg-white {
    background-color: var(--qm-bg-dark-800) !important;
}

.dark .bg-light {
    background-color: var(--qm-bg-dark-700) !important;
}

.dark .bg-body,
.dark .bg-body-secondary,
.dark .bg-body-tertiary {
    background-color: var(--qm-bg-dark-800) !important;
}

.dark .bg-gray-50 {
    background-color: var(--qm-bg-gray-50) !important;
}

.dark .bg-gray-100 {
    background-color: var(--qm-bg-gray-100) !important;
}

/* Bootstrap Card / List / Table */
.dark .card {
    background-color: var(--qm-bg-dark-800);
    border-color: var(--qm-border-dark-600);
    color: var(--qm-text-secondary);
}

.dark .card-header,
.dark .card-footer {
    background-color: var(--qm-bg-dark-700);
    border-color: var(--qm-border-dark-600);
}

.dark .card-body {
    color: var(--qm-text-secondary);
}

.dark .list-group-item {
    background-color: var(--qm-bg-dark-800);
    border-color: var(--qm-border-dark-600);
    color: var(--qm-text-secondary);
}

.dark .list-group-item:hover {
    background-color: var(--qm-bg-dark-700);
}

.dark .list-group-item.active {
    background-color: var(--qm-primary);
    border-color: var(--qm-primary);
}

.dark .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--qm-text-secondary);
    --bs-table-border-color: var(--qm-border-dark-600);
    color: var(--qm-text-secondary);
}

.dark .table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-bg: var(--qm-bg-dark-700);
}

.dark .table-hover > tbody > tr:hover > * {
    --bs-table-bg: var(--qm-bg-dark-600);
}

/* Modal / Popover / Tooltip / Accordion / Nav */
.dark .modal-content {
    background-color: var(--qm-bg-dark-800);
    border-color: var(--qm-border-dark-600);
    color: var(--qm-text-secondary);
}

.dark .modal-header,
.dark .modal-footer {
    border-color: var(--qm-border-dark-600);
}

.dark .modal-title {
    color: var(--qm-text-primary);
}

.dark .popover {
    background-color: var(--qm-bg-dark-800);
    border-color: var(--qm-border-dark-600);
}

.dark .popover :is(.popover-header, .popover-body) {
    background-color: var(--qm-bg-dark-800);
    border-color: var(--qm-border-dark-600);
    color: var(--qm-text-secondary);
}

.dark .tooltip-inner {
    background-color: var(--qm-bg-dark-600);
    color: var(--qm-text-primary);
}

.dark .accordion-item,
.dark .accordion-button {
    background-color: var(--qm-bg-dark-800);
    border-color: var(--qm-border-dark-600);
    color: var(--qm-text-secondary);
}

.dark .accordion-button:not(.collapsed) {
    color: var(--qm-text-primary);
    background-color: var(--qm-bg-dark-700);
}

.dark .nav-tabs .nav-link {
    border-color: var(--qm-border-dark-600);
    color: var(--qm-text-secondary);
}

.dark .nav-tabs .nav-link.active {
    background-color: var(--qm-bg-dark-800);
    border-color: var(--qm-border-dark-600);
    color: var(--qm-text-primary);
}

/* Pagination / Breadcrumb / Progress / Divider */
.dark .page-link {
    background-color: var(--qm-bg-dark-800);
    border-color: var(--qm-border-dark-600);
    color: var(--qm-text-secondary);
}

.dark .page-link:hover {
    background-color: var(--qm-bg-dark-700);
    color: var(--qm-text-primary);
}

.dark .page-item.disabled .page-link {
    background-color: var(--qm-bg-dark-700);
    border-color: var(--qm-border-dark-600);
    color: var(--qm-text-lighter);
}

.dark .breadcrumb-item.active {
    color: var(--qm-text-muted);
}

.dark .progress {
    background-color: var(--qm-bg-dark-700);
}

.dark hr,
.dark .dropdown-divider {
    border-color: var(--qm-border-dark-600);
}

/* Bootstrap 文本工具类：避免深色文字在暗色背景下不可见 */
.dark .text-dark {
    color: var(--qm-text-primary) !important;
}

.dark .text-black-50 {
    color: var(--qm-text-muted) !important;
}

/* ========== 暗色图片与图标处理 ==========
 * 避免白色/浅色图片在暗色背景下刺眼，保证图标可读。
 * 仅对内容型大图降亮度，不动 emoji 与头像（避免破坏观感）。
 */

/* 文章正文与卡片缩略图：轻微降亮 + 提对比，避免刺眼 */
.dark .qm-article-content img,
.dark .qm-article-main-content img:not(.emoji):not([class*="emoji"]),
.dark .qm-article-hero img,
.dark .qm-post-card__cover img,
.dark .qm-card-cover img,
.dark .qm-related-item img,
.dark .post-card img,
.dark article .entry-content img:not(.emoji) {
    filter: brightness(0.93) contrast(1.03);
    transition: filter 0.2s ease;
}

.dark .qm-article-content img:hover,
.dark .qm-article-main-content img:not(.emoji):hover {
    filter: brightness(1) contrast(1);
}

/* 白底截图/预览图容器：暗色下给深色底，避免白色块刺眼 */
.dark .qm-article-content img[style*="background"],
.dark .qm-software-detail-screenshot,
.dark .qm-material-preview,
.dark .qm-screenshot-wrap,
.dark .image-box,
.dark .wp-caption {
    background: var(--qm-bg-dark-800) !important;
}

/* 封面图懒加载占位 */
.dark .qm-lazy-img,
.dark img[data-src][src*="data:image"] {
    background-color: var(--qm-bg-dark-700);
}

/* 代码块内图片与图标保持原样 */
.dark pre img,
.dark code img,
.dark .qm-code-block img {
    filter: none !important;
}

/* 头像/Logo 等透明图标：在深色卡片上保持可见 */
.dark .avatar,
.dark .qm-avatar,
.dark .qm-user-avatar img,
.dark .site-logo img,
.dark .qm-brand img {
    background: transparent;
}

/* 内联 SVG / 字体图标在暗色下默认继承文字色，避免深色图标不可见 */
.dark svg:not([class*="fill-"]):not([class*="text-"]) {
    color: inherit;
}

/* ========== 暗色全局兜底 ==========
 * 补齐遗漏的通用场景，保证桌面/移动端暗色观感一致。
 */

/* 页面主容器透明化，避免深色页面背景被白色容器覆盖 */
.dark .qm-page-shell,
.dark .qm-main-content,
.dark .home-main-wrapper,
.dark .page-main {
    background: transparent !important;
}

/* 常见浅色工具类兜底（针对个别模板遗漏） */
.dark .bg-white-55,
.dark .bg-white-65,
.dark .bg-white-82 {
    background-color: var(--qm-bg-dark-800) !important;
}

.dark .bg-white-55 {
    background-color: var(--qm-bg-dark-700) !important;
}

/* 表单控件状态色 */
.dark .form-control,
.dark .form-select,
.dark .input-group-text,
.dark .form-check-input {
    background-color: var(--qm-bg-dark-800);
    border-color: var(--qm-border-dark-600);
    color: var(--qm-text-secondary);
}

.dark .form-control:focus,
.dark .form-select:focus {
    background-color: var(--qm-bg-dark-800);
    border-color: var(--qm-primary);
    color: var(--qm-text-primary);
    box-shadow: 0 0 0 0.2rem var(--qm-primary-rgba-15, rgba(217, 38, 29, 0.15));
}

.dark .form-check-input {
    background-color: var(--qm-bg-dark-700);
}

/* 页脚整体使用语义变量（footer.php 已定义 html.dark 变量，这里做兜底） */
.dark .qimeng-footer,
.dark .site-footer {
    background-color: var(--qm-bg-dark-800) !important;
    border-color: var(--qm-border-dark-600) !important;
    color: var(--qm-text-secondary) !important;
}

.dark .qimeng-footer a,
.dark .site-footer a {
    color: var(--qm-text-secondary);
}

.dark .qimeng-footer a:hover,
.dark .site-footer a:hover {
    color: var(--qm-primary);
}

/* 移动端底部固定栏/菜单兜底 */
.dark .mobile-bottom-bar,
.dark .qm-mobile-menu,
.dark .mobile-menu {
    background: var(--qm-bg-dark-800) !important;
    border-color: var(--qm-border-dark-600) !important;
}

/* 防止暗色下出现刺眼的白色描边/高光 */
.dark * {
    --tw-ring-color: rgba(255, 255, 255, 0.08);
}

/* ========== 暗色补充覆盖(系统性扫描缺失) ==========
 * 针对未覆盖的浅色背景/深色文字选择器,按语义批量反转。
 */

/* 深色文字 → 主文字(标题/名称/标签) */
.dark .dropdown-menu .dropdown-item--sub .item-title,
.dark .qimeng-vip-desktop__amount-label,
.dark .qm-article-body-title,
.dark .qm-article-price-box,
.dark .qm-article-title,
.dark .qm-checkbox-label,
.dark .qm-download-link-modal__label,
.dark .qm-featured-image-panel__name,
.dark .qm-normal-overview__label,
.dark .qm-normal-overview__summary-label,
.dark .qm-poster2-subtitle,
.dark .qm-poster2-title,
.dark .qm-share-poster-header h3,
.dark .qm-share-poster-title,
.dark .qm-sidebar-author-name a,
.dark .qm-sidebar-author-post-title,
.dark .qm-sticky-header-title {
    color: var(--qm-text-primary) !important;
}

/* 深色文字 → 次要文字(描述/正文/按钮) */
.dark .menu li a,
.dark .qimeng-vip-desktop__redirect-note,
.dark .qm-ai-summary-text,
.dark .qm-article-excerpt-fallback,
.dark .qm-article-hero-description,
.dark .qm-article-summary-content,
.dark .qm-article-summary-header,
.dark .qm-code-settings-modal__close:hover,
.dark .qm-comment-like-btn,
.dark .qm-comment-reply-btn,
.dark .qm-copy-btn,
.dark .qm-download-link-action,
.dark .qm-download-link-chip,
.dark .qm-editor-normal-points__desc,
.dark .qm-editor-notice-line,
.dark .qm-editor-workspace-bar__type-switcher .qm-article-type-switcher__tab,
.dark .qm-editor-workspace-bar__type-switcher .qm-article-type-switcher__trigger,
.dark .qm-editor-workspace-bar__type-switcher .qm-article-type-switcher__trigger-value,
.dark .qm-mini-action-btn,
.dark .qm-normal-overview__input,
.dark .qm-normal-overview__summary-box,
.dark .qm-normal-overview__tag,
.dark .qm-normal-points__action,
.dark .qm-paid-tab-btn,
.dark .qm-points-cart-modal__guest strong,
.dark .qm-poster2-feature-text p,
.dark .qm-poster2-points-header,
.dark .qm-poster2-points-list li,
.dark .qm-search-section-header,
.dark .qm-share-poster-close,
.dark .qm-share-poster-close:hover,
.dark .qm-share-poster-desc,
.dark .qm-share-poster-qr span,
.dark .qm-share-poster-tab,
.dark .qm-sidebar-author-desc,
.dark .qm-software-hero__summary,
.dark .qm-stepper-btn,
.dark .qm-tab-btn,
.dark .qm-visibility-option {
    color: var(--qm-text-secondary) !important;
}

/* 深色文字 → 弱文字(元信息/占位/统计) */
.dark .qm-ai-summary-loading,
.dark .qm-article-meta-info,
.dark .qm-article-tag-item,
.dark .qm-article-tag-item:hover,
.dark .qm-drafts-empty,
.dark .qm-drafts-empty-text,
.dark .qm-error-message,
.dark .qm-meta-item span,
.dark .qm-normal-overview__meta-row,
.dark .qm-normal-overview__meta-row strong,
.dark .qm-normal-overview__tag-row,
.dark .qm-points-cart-modal__empty strong,
.dark .qm-points-stage__arrow,
.dark .qm-poster2-time,
.dark .qm-posts-error-text,
.dark .qm-posts-loading-text,
.dark .qm-related-date-badge,
.dark .qm-related-date-bottom,
.dark .qm-related-date-mid,
.dark .qm-role-grid__item,
.dark .qm-share-poster-meta,
.dark .qm-share-poster-simple-date,
.dark .qm-uc-status-badge.is-muted,
.dark .theme-minimal .qm-article-tag-item,
.dark .theme-minimal .qm-article-tag-item:hover {
    color: var(--qm-text-muted) !important;
}

/* 浅色背景 → 深色表面 */
.dark .qimeng-vip-desktop__plan-footer,
.dark .qimeng-vip-desktop__privilege,
.dark .qm-article-summary,
.dark .qm-comment-image,
.dark .qm-comment-image-thumb,
.dark .qm-download-link-action,
.dark .qm-download-link-chip.is-muted,
.dark .qm-download-resource-empty,
.dark .qm-editor-notice-card,
.dark .qm-membership-card.is-active .qm-membership-card__surface[data-liquid],
.dark .qm-membership-card__surface.is-without-media,
.dark .qm-membership-card__surface[data-liquid],
.dark .qm-membership-empty[data-liquid],
.dark .qm-normal-overview__input,
.dark .qm-normal-overview__meta-row,
.dark .qm-normal-overview__summary-box,
.dark .qm-normal-overview__tag-row,
.dark .qm-normal-points__action,
.dark .qm-poster2-bottom-right img,
.dark .qm-poster2-inner,
.dark .qm-poster2-points,
.dark .qm-poster3-inner,
.dark .qm-poster3-qr img,
.dark .qm-service-modal__agent-icon,
.dark .qm-service-modal__qr-box,
.dark .qm-share-poster,
.dark .qm-share-poster-dialog,
.dark .qm-share-poster-qr img,
.dark .qm-share-poster-qr-small img,
.dark .qm-share-poster-tab.is-active,
.dark .qm-share-poster-tabs,
.dark .qm-sidebar-author-post-link,
.dark .qm-software-slider__arrow,
.dark .qm-switch-track::after,
.dark .qm-toolbar-divider,
.dark .qm-uc-code-box,
.dark .qm-uc-desktop-workspace .qm-task-hub__checkin,
.dark .qm-uc-desktop-workspace .qm-task-hub__featured,
.dark .qm-uc-desktop-workspace .qm-task-hub__metric,
.dark .qm-uc-desktop-workspace .qm-task-hub__section,
.dark .qm-uc-desktop-workspace .qm-uc-license-instructions__icon,
.dark .qm-uc-public-action--primary,
.dark .qm-uc-public-avatar,
.dark .qm-uc-public-content .qm-uc-spec-pagination a,
.dark .qm-uc-public-content .qm-uc-spec-pagination span,
.dark .qm-uc-spec-identity__avatar,
.dark .qm-uc-spec-membership,
.dark .qm-uc-spec-membership[data-member-theme="ready"],
.dark .qm-uc-spec-pagination a,
.dark .qm-uc-spec-pagination span,
.dark .qm-uc-switch__track::after {
    background-color: var(--qm-bg-dark-800) !important;
}

/* 浅色按钮背景 → 深色 */
.dark .qimeng-authorization-copy-button,
.dark .qm-ai-ask-btn,
.dark .qm-ai-topic-summary-btn,
.dark .qm-download-link-modal .qm-download-file-btn,
.dark .qm-mini-action-btn,
.dark .qm-software-download-card__button--secondary,
.dark .qm-stepper-btn,
.dark .qm-tab-btn.active::before,
.dark .qm-uc-spec-content__trash-toolbar button {
    background-color: var(--qm-bg-dark-800) !important;
}

/* hover/focus 浅色 → 深色交互 */
.dark .qm-article-tag-item:hover,
.dark .qm-clear-history:hover,
.dark .qm-download-link-modal .qm-download-file-btn:hover,
.dark .qm-download-link-modal .qm-tags-input:focus,
.dark .qm-points-stage__arrow:focus-visible,
.dark .qm-points-stage__arrow:hover,
.dark .theme-minimal .qm-article-tag-item:hover {
    background-color: var(--qm-bg-dark-700) !important;
    color: var(--qm-text-primary) !important;
}

/* 公告栏左右渐变遮罩:暗色下用深色渐变,避免白色遮罩刺眼 */
.dark .qm-announcement-fade,
html.dark .qm-announcement-fade {
    --qm-ann-fade: var(--qm-bg-dark-800);
    --qm-ann-fade-transparent: rgba(41, 42, 45, 0);
}

/* ========== 浅色渐变组件暗色化 ==========
 * 组件用 linear-gradient 硬编码浅色渐变(background 简写会覆盖 background-color),
 * 需要整背景替换为深色渐变,并同步装饰层与文字色。
 */

/* 用户中心会员卡 */
.dark .qm-uc-spec-membership,
body.dark-mode .qm-uc-spec-membership {
    border-color: rgba(255, 255, 255, 0.12) !important;
    background: linear-gradient(135deg, #2a2b2f 0%, #33322c 62%, #3a342a 100%) !important;
}

.dark .qm-uc-spec-membership::before,
body.dark-mode .qm-uc-spec-membership::before {
    background: linear-gradient(120deg, rgba(255, 255, 255, 0.08), rgba(223, 186, 104, 0.1)) !important;
}

.dark .qm-uc-spec-membership::after,
body.dark-mode .qm-uc-spec-membership::after {
    background: linear-gradient(135deg, rgba(243, 207, 80, 0.06), rgba(200, 158, 66, 0.12)) !important;
}

.dark .qm-uc-spec-membership[data-member-theme="ready"],
body.dark-mode .qm-uc-spec-membership[data-member-theme="ready"] {
    border-color: rgba(var(--qm-member-primary-rgb, 217, 38, 29), 0.24) !important;
    background:
        linear-gradient(125deg, rgba(41, 42, 45, 0.96), rgba(var(--qm-member-accent-rgb, 217, 38, 29), 0.14) 58%, rgba(var(--qm-member-secondary-rgb, 217, 38, 29), 0.12)),
        #2a2b2f !important;
}

.dark .qm-uc-spec-membership[data-member-theme="ready"]::before,
body.dark-mode .qm-uc-spec-membership[data-member-theme="ready"]::before {
    background: linear-gradient(120deg, rgba(255, 255, 255, 0.06), rgba(var(--qm-member-primary-rgb, 217, 38, 29), 0.12)) !important;
}

.dark .qm-uc-spec-membership[data-member-theme="ready"]::after,
body.dark-mode .qm-uc-spec-membership[data-member-theme="ready"]::after {
    background: linear-gradient(135deg, rgba(var(--qm-member-accent-rgb, 217, 38, 29), 0.1), rgba(var(--qm-member-secondary-rgb, 217, 38, 29), 0.14)) !important;
}

/* 文章详情页 AI 积分卡片(粉紫渐变) */
.dark .qm-ai-points,
body.dark-mode .qm-ai-points {
    background: linear-gradient(135deg, rgba(217, 38, 29, 0.12), rgba(91, 120, 239, 0.12)) !important;
    border-color: rgba(217, 38, 29, 0.28) !important;
}

.dark .qm-ai-points__head,
body.dark-mode .qm-ai-points__head {
    color: #f0a8b0 !important;
}

.dark .qm-ai-points__head i,
body.dark-mode .qm-ai-points__head i {
    color: #f0a8b0 !important;
}

/* 作者文章标题 hover 在暗色下用更亮的蓝 */
.dark .qm-sidebar-author-post-link:hover .qm-sidebar-author-post-title,
body.dark-mode .qm-sidebar-author-post-link:hover .qm-sidebar-author-post-title {
    color: #60a5fa !important;
}

/* 会员身份卡文字:暗色下用浅色,避免深色文字在深色渐变上不可读 */
.dark .qm-uc-spec-membership .qm-uc-spec-membership__copy h2,
.dark .qm-uc-spec-membership .qm-uc-spec-membership__growth strong,
.dark .qm-uc-spec-membership .qm-uc-spec-membership__expiry strong {
    color: #f2f3f5 !important;
}

.dark .qm-uc-spec-membership .qm-uc-spec-membership__copy p,
.dark .qm-uc-spec-membership .qm-uc-spec-membership__growth span,
.dark .qm-uc-spec-membership .qm-uc-spec-membership__expiry span {
    color: rgba(242, 243, 245, 0.72) !important;
}

/* ========== 剩余缺失补充 ========== */

/* 文章详情:回到顶部、标签分类、海报标签/特性卡 */
.dark .qm-article-back-to-top {
    color: var(--qm-text-secondary) !important;
    background: var(--qm-bg-dark-800) !important;
    border-color: var(--qm-border-dark-600) !important;
}

.dark .qm-article-tag-category {
    color: var(--qm-text-primary) !important;
    background: var(--qm-primary-rgba-15, rgba(217, 38, 29, 0.15)) !important;
}

.dark .qm-poster2-tag,
.dark .qm-poster2-feature-card {
    background: var(--qm-bg-dark-800) !important;
    color: var(--qm-text-secondary) !important;
}

/* 文章内容链接:暗色下更亮 */
.dark .prose a {
    color: var(--qm-primary-light, #e46d66) !important;
}

/* 导航子菜单 hover */
.dark .nav-item .sub-menu a:hover {
    color: var(--qm-text-primary) !important;
    background: var(--qm-bg-dark-700) !important;
}

/* AI 搜索摘要标题 */
.dark .qm-ai-search-summary__head {
    color: var(--qm-text-primary) !important;
}

/* ========== 极简主题(theme-minimal)紫色装饰暗色提亮 ==========
 * 紫色图标/强调在暗色下保持紫色系,但提亮以保证可见。
 */
.dark .theme-minimal .qm-announcement i,
.dark .theme-minimal .qm-announcement [class*="icon"] i,
.dark .theme-minimal [class*="text-purple"] i,
.dark .theme-minimal [class*="text-purple-600"] i,
.dark .theme-minimal .fa-bullhorn,
.dark .theme-minimal section [class*="text-purple-600"] i {
    color: #c4b5fd !important;
}

.dark .theme-minimal .qm-announcement svg,
.dark .theme-minimal .qm-announcement [class*="icon"] svg {
    color: #c4b5fd !important;
}

.dark .theme-minimal .qm-announcement [class*="dot"],
.dark .theme-minimal .qm-announcement .separator {
    color: #a78bfa !important;
}

.dark .theme-minimal [class*="bg-purple-500"],
.dark .theme-minimal .qm-announcement-item [class*="bg-purple"],
.dark .theme-minimal section [class*="bg-purple-500"] {
    background-color: #7c3aed !important;
}

.dark .theme-minimal .qm-article-tag-category {
    color: #c4b5fd !important;
    background: rgba(124, 58, 237, 0.18) !important;
}

/* 极简主题装饰性蓝色图标/渐变:暗色下提亮为亮蓝 */
.dark .theme-minimal .qm-announcement * i,
.dark .theme-minimal .qm-announcement * svg,
.dark .theme-minimal .qm-announcement * path,
.dark .theme-minimal .qm-announcement [style*="#7c3aed"],
.dark .theme-minimal .qm-announcement [style*="#8b5cf6"],
.dark .theme-minimal .qm-announcement [style*="#a855f7"],
.dark .theme-minimal .qm-announcement [style*="purple"] {
    color: #93c5fd !important;
    fill: #93c5fd !important;
}

.dark .theme-minimal [class*="text-purple-600"] .fa-bullhorn,
.dark .theme-minimal .qm-announcement-item span[class*="bg-purple-500"],
.dark .theme-minimal .qm-announcement-track span[class*="bg-purple-500"],
.dark .theme-minimal section [class*="text-purple"] i,
.dark .theme-minimal section [class*="bg-purple"] {
    background: linear-gradient(135deg, #3b82f6, #60a5fa) !important;
}
