/* Dark surfaces for public, theme-enabled modules. Page artwork and semantic
   status colors intentionally remain owned by their feature stylesheets. */
html[data-theme-enabled][data-theme='dark'] {
    --public-success: #7ed9a3;
    --public-danger: #ff9a9f;
    --public-warning: var(--theme-gold);
}

/* Card detail */
html[data-theme-enabled][data-theme='dark'] .card-detail-page {
    --detail-ink: var(--theme-text);
    --detail-muted: var(--theme-muted);
    --detail-purple: var(--theme-accent);
    --detail-purple-deep: var(--theme-accent);
    --detail-gold: var(--theme-gold);
    --detail-gold-soft: var(--theme-border);
    --detail-ivory: var(--theme-bg);
    --detail-paper: var(--theme-surface);
    --detail-line: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page .card-detail-section {
    background:
        radial-gradient(circle at 80% 0%, rgb(224 187 112 / 10%), transparent 28rem),
        var(--theme-bg);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page :is(
    .card-info-container,
    .card-detail-meta,
    .card-detail-description,
    .card-detail-filters,
    .card-detail-marketplace,
    .card-detail-buyers,
    .cd-comments-section,
    .card-detail-comments,
    .accordion-item,
    .accordion-button
) {
    background-color: var(--theme-surface);
    color: var(--theme-text);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page .price-summary {
    background: linear-gradient(135deg, var(--theme-raised), var(--theme-surface));
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page .card-image-container {
    background: var(--theme-surface);
    border: 1px solid var(--theme-border);
    box-shadow: 0 10px 28px rgb(0 0 0 / 20%);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page :is(.cd-rating-info, .cd-comment-date, .cd-comment-empty, .cd-comment-login) {
    color: var(--theme-muted);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page :is(.cd-comments-section h5, .cd-comment-username, .cd-comment-text) {
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page :is(.cd-comment-form, .cd-comment-login) {
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page .cd-comments-list::-webkit-scrollbar-thumb {
    background: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page :is(.card-text-box, .sellers-table thead th) {
    background: var(--theme-raised) !important;
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page :is(.sellers-table tbody td, .cd-comment-item) {
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--theme-text);
    --bs-table-border-color: var(--theme-border);
    --bs-table-hover-bg: var(--theme-raised);
    --bs-table-hover-color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page .table-light {
    --bs-table-bg: var(--theme-raised);
    --bs-table-color: var(--theme-text);
    --bs-table-border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page :is(.sellers-table tbody tr:hover, .listing-pickup td, .listing-notes td) {
    background: var(--theme-raised) !important;
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page .accordion-button:not(.collapsed) {
    background: var(--theme-raised);
    color: var(--theme-accent);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page :is(
    .card-detail-meta .badge.bg-dark,
    .card-detail-marketplace .card-header
) {
    background: var(--theme-action) !important;
    color: var(--theme-on-action) !important;
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page .card-detail-marketplace .card-header h5 {
    color: var(--theme-on-action);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page :is(.form-select, .cd-comment-form input) {
    background-color: var(--theme-input);
    color: var(--theme-text);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page .form-select {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23f4ead8' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e");
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page #resetFilters:hover {
    background: var(--theme-raised);
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page :is(.text-success, [style*='color: #38a169'], [style*='color:#38a169']) {
    color: var(--public-success) !important;
}

html[data-theme-enabled][data-theme='dark'] .card-detail-page .text-danger {
    color: var(--public-danger) !important;
}

/* Seller profile and its off-canvas cart */
html[data-theme-enabled][data-theme='dark'] body:has(.seller-profile-page) {
    background: var(--theme-bg);
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page {
    --seller-ivory: var(--theme-bg);
    --seller-paper: var(--theme-surface);
    --seller-ink: var(--theme-text);
    --seller-muted: var(--theme-muted);
    --seller-purple: var(--theme-accent);
    --seller-purple-deep: var(--theme-action);
    --seller-gold: var(--theme-gold);
    --seller-gold-light: var(--theme-gold);
    --seller-line: var(--theme-border);
    background:
        radial-gradient(circle at 12% 8%, rgb(224 187 112 / 8%), transparent 23rem),
        var(--theme-bg);
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page :is(
    .seller-info-card,
    .seller-card-item,
    .lot-card,
    .collection-card-item,
    .accessory-card,
    .kit-card
) {
    background-color: var(--theme-surface);
    color: var(--theme-text);
    border-color: var(--theme-border);
    box-shadow: 0 10px 30px rgb(0 0 0 / 20%);
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page .seller-promotions {
    background: linear-gradient(125deg, var(--theme-raised), var(--theme-surface)) !important;
    border-color: var(--theme-border) !important;
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page .seller-promotions > div:last-child > div {
    background: var(--theme-input) !important;
    border-color: var(--theme-border) !important;
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page .seller-stats .stat-box,
html[data-theme-enabled][data-theme='dark'] .seller-profile-page :is(.seller-catalogue-filters, .collection-filters) {
    background: var(--theme-raised);
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page #sellerTabs .nav-link {
    color: var(--theme-muted);
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page #sellerTabs .nav-link:hover,
html[data-theme-enabled][data-theme='dark'] .seller-profile-page #sellerTabs .nav-link.active {
    background: var(--theme-raised);
    color: var(--theme-accent);
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page :is(
    .seller-catalogue-filters,
    .collection-filters
) :is(.form-control, .form-select) {
    background-color: var(--theme-input);
    color: var(--theme-text);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page .seller-card-image-wrapper {
    background: linear-gradient(145deg, var(--theme-raised), var(--theme-surface));
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page #lotsCarouselTrack .lot-card {
    background: linear-gradient(135deg, var(--theme-surface), var(--theme-raised));
    border-color: var(--theme-border);
    box-shadow: inset 0 0 0 4px rgb(255 255 255 / 2%), 0 8px 24px rgb(0 0 0 / 20%);
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page #lotsCarouselTrack :is(.lot-content h3, .lot-price-panel strong) {
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page #lotsCarouselTrack :is(
    .lot-description,
    .lot-price-label,
    .lot-price-usd,
    .lot-unit-price
) {
    color: var(--theme-muted);
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page #lotsCarouselTrack :is(.lot-art-badge, .lot-price-panel) {
    background: var(--theme-raised);
    color: var(--theme-text);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .seller-profile-page #sellerLotsCarousel .bg-primary {
    background-color: var(--theme-action) !important;
    color: var(--theme-on-action) !important;
}

html[data-theme-enabled][data-theme='dark'] body:has(.seller-profile-page) :is(
    .cart-panel,
    .cart-item,
    .modal-content,
    .dropdown-menu
) {
    background-color: var(--theme-surface);
    color: var(--theme-text);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] body:has(.seller-profile-page) :is(.cart-section-header, .cart-section-header--cards i) {
    color: var(--theme-accent);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] body:has(.seller-profile-page) .cart-promo-hint {
    background: var(--theme-raised);
    color: var(--theme-gold);
}

html[data-theme-enabled][data-theme='dark'] body:has(.seller-profile-page) :is(
    .cart-item-name,
    .cart-item-subtotal
) {
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] body:has(.seller-profile-page) :is(
    .cart-item-price,
    .cart-empty-message
) {
    color: var(--theme-muted);
}

html[data-theme-enabled][data-theme='dark'] body:has(.seller-profile-page) :is(.qty-btn, .cart-item-img) {
    background: var(--theme-raised) !important;
    color: var(--theme-text);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] body:has(.seller-profile-page) .cart-footer {
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] body:has(.seller-profile-page) :is(
    .text-success,
    [style*='color:#38a169'],
    [style*='color: #38a169']
) {
    color: var(--public-success) !important;
}

/* Lot detail */
html[data-theme-enabled][data-theme='dark'] .lot-detail-page {
    background: var(--theme-bg);
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .lot-detail-page .lot-paper {
    background: linear-gradient(135deg, var(--theme-surface), var(--theme-raised));
    border-color: var(--theme-border);
    box-shadow: inset 0 0 0 4px rgb(255 255 255 / 2%), 0 8px 24px rgb(0 0 0 / 20%);
}

html[data-theme-enabled][data-theme='dark'] .lot-detail-page :is(.lot-section-head, .lot-description-block, .lot-stats, .lot-merchant) {
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .lot-detail-page :is(
    .lot-section-head h2,
    .lot-more h2,
    .lot-description-block h3,
    .lot-pickups h3,
    .lot-total-price,
    .lot-stats dd,
    .lot-preview-body h3
) {
    color: var(--theme-accent);
}

html[data-theme-enabled][data-theme='dark'] .lot-detail-page :is(
    .lot-grid-hint,
    .lot-card-caption,
    .lot-description-block p,
    .lot-stats dt,
    .lot-location,
    .lot-pickups,
    .lot-published,
    .lot-preview-body dt
) {
    color: var(--theme-muted);
}

html[data-theme-enabled][data-theme='dark'] .lot-detail-page :is(.lot-card-visual, .lot-delivery) {
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .lot-detail-page .lot-card-art {
    background: var(--theme-raised);
}

/* Deck detail */
html[data-theme-enabled][data-theme='dark'] .deck-detail-page {
    background: var(--theme-bg);
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .deck-detail-page :is(.deck-card, .deck-section, .stat-card) {
    background: linear-gradient(135deg, var(--theme-surface), var(--theme-raised));
    color: var(--theme-text);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .deck-detail-page :is(
    .deck-title,
    .section-title,
    .deck-value strong,
    .stat-value
) {
    color: var(--theme-accent);
}

html[data-theme-enabled][data-theme='dark'] .deck-detail-page :is(
    .deck-meta,
    .deck-description,
    .deck-detail-summary small,
    .deck-value,
    .deck-record,
    .stars-display,
    .stat-label
) {
    color: var(--theme-muted);
}

html[data-theme-enabled][data-theme='dark'] .deck-detail-page .deck-back,
html[data-theme-enabled][data-theme='dark'] .deck-detail-page .deck-eyebrow {
    color: var(--theme-gold);
}

html[data-theme-enabled][data-theme='dark'] .deck-detail-page :is(.deck-detail-summary, .deck-zone .section-title) {
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .deck-detail-page .deck-tribe {
    background: var(--theme-raised);
    color: var(--theme-accent);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .deck-detail-page .cost-label {
    background: var(--theme-raised);
    color: var(--theme-gold);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .deck-detail-page .cost-label small {
    color: var(--theme-muted);
}

html[data-theme-enabled][data-theme='dark'] .deck-detail-page .card-price-badge {
    background: rgb(38 30 48 / 94%);
    color: var(--theme-text);
    border-color: var(--theme-gold);
}

html[data-theme-enabled][data-theme='dark'] .deck-detail-page :is(.deck-record strong, .price-usd) {
    color: var(--public-success);
}

html[data-theme-enabled][data-theme='dark'] .deck-detail-page .modal-content {
    background: var(--theme-surface);
    color: var(--theme-text);
    border-color: var(--theme-border);
}

/* Tournament directory */
html[data-theme-enabled][data-theme='dark'] body:has(.tournaments-page) {
    background: var(--theme-bg);
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .tournaments-page {
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .tournaments-page :is(.filter-tabs, .tournament-card) {
    background: var(--theme-surface);
    border-color: var(--theme-border);
    box-shadow: 0 8px 24px rgb(0 0 0 / 20%);
}

html[data-theme-enabled][data-theme='dark'] .tournaments-page .filter-tabs .nav-link {
    color: var(--theme-muted);
}

html[data-theme-enabled][data-theme='dark'] .tournaments-page .filter-tabs .nav-link:hover {
    background: var(--theme-raised);
    color: var(--theme-accent);
}

html[data-theme-enabled][data-theme='dark'] .tournaments-page .filter-tabs .nav-link.active {
    background: var(--theme-action);
    color: var(--theme-on-action);
    border-color: var(--theme-gold);
}

html[data-theme-enabled][data-theme='dark'] .tournaments-page .tournament-info h5 {
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .tournaments-page .tournament-description {
    color: var(--theme-muted) !important;
}

html[data-theme-enabled][data-theme='dark'] .tournaments-page .text-danger {
    color: var(--public-danger) !important;
}

html[data-theme-enabled][data-theme='dark'] .tournaments-page .participants-badge,
html[data-theme-enabled][data-theme='dark'] .tournaments-page .tournament-format-badge {
    background: var(--theme-raised) !important;
    color: var(--theme-text);
    border-color: var(--theme-border);
}

/* Tournament detail, management, and creation pages already use a dark visual
   language; these rules align their neutral surfaces with the shared palette. */
html[data-theme-enabled][data-theme='dark'] body:has(> .tournament-detail),
html[data-theme-enabled][data-theme='dark'] body:has(> .admin-container),
html[data-theme-enabled][data-theme='dark'] body:has(.manage-header),
html[data-theme-enabled][data-theme='dark'] body.tournament-create-page {
    background: var(--theme-bg);
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] :is(.tournament-detail, .admin-container) :is(
    .detail-header,
    .top-bar,
    .bracket-section,
    .stats-card,
    .actions-panel,
    .main-panel,
    .match-card,
    .round-section,
    .prize-h-card,
    .participant-item,
    .standings-table,
    .modal-dialog
),
html[data-theme-enabled][data-theme='dark'] body:has(.manage-header) :is(.stat-card, .tournaments-table),
html[data-theme-enabled][data-theme='dark'] body.tournament-create-page :is(
    .steps-sidebar,
    .form-content,
    .format-card,
    .timeline-visual,
    .prize-item,
    .form-group-checkbox
) {
    background-color: var(--theme-surface);
    border-color: var(--theme-border);
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] :is(.tournament-detail, .admin-container) :is(.form-control, .form-select),
html[data-theme-enabled][data-theme='dark'] body.tournament-create-page :is(.form-input, .form-select, .form-textarea) {
    background-color: var(--theme-input);
    color: var(--theme-text);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] :is(.tournament-detail, .admin-container) :is(
    .tournament-meta,
    .stat-label,
    .tab,
    .bracket-placeholder,
    .match-header,
    .prize-h-desc
),
html[data-theme-enabled][data-theme='dark'] body:has(.manage-header) :is(.stat-label, .empty-state),
html[data-theme-enabled][data-theme='dark'] body.tournament-create-page :is(
    .progress-text,
    .char-count,
    .checkbox-description,
    .format-description
) {
    color: var(--theme-muted);
}

html[data-theme-enabled][data-theme='dark'] :is(.tournament-detail, .admin-container) :is(
    .text-success,
    [style*='color: #10b981'],
    [style*='color:#10b981']
),
html[data-theme-enabled][data-theme='dark'] body:has(.manage-header) :is(
    .text-success,
    [style*='color: #10b981'],
    [style*='color:#10b981']
) {
    color: var(--public-success) !important;
}

html[data-theme-enabled][data-theme='dark'] :is(.tournament-detail, .admin-container) :is(
    .text-danger,
    [style*='color: #ef4444'],
    [style*='color:#ef4444']
),
html[data-theme-enabled][data-theme='dark'] body:has(.manage-header) :is(
    .text-danger,
    [style*='color: #ef4444'],
    [style*='color:#ef4444']
) {
    color: var(--public-danger) !important;
}

/* Leagues: detail/admin/create are natively dark; the directory needs explicit
   conversion because it intentionally has a luminous light variant. */
html[data-theme-enabled][data-theme='dark'] .leagues-page {
    --league-gold: var(--theme-gold);
    --league-panel: rgb(38 30 48 / 94%);
    background-color: var(--theme-bg);
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .leagues-directory {
    background: var(--theme-bg);
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .leagues-directory :is(.league-card, .empty-league) {
    background: var(--theme-surface);
    color: var(--theme-text);
    border-color: var(--theme-border);
    box-shadow: 0 8px 24px rgb(0 0 0 / 20%);
}

html[data-theme-enabled][data-theme='dark'] .leagues-directory .league-card h2 {
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .leagues-directory .league-card p,
html[data-theme-enabled][data-theme='dark'] .leagues-directory .empty-league {
    color: var(--theme-muted) !important;
}

html[data-theme-enabled][data-theme='dark'] .leagues-directory .league-progress {
    background: var(--theme-raised);
}

html[data-theme-enabled][data-theme='dark'] .leagues-page :is(.league-form .form-control, .league-form .form-select) {
    background-color: var(--theme-input);
    color: var(--theme-text);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .leagues-page .text-white-50 {
    color: var(--theme-muted) !important;
}

html[data-theme-enabled][data-theme='dark'] .leagues-page .text-warning {
    color: var(--public-warning) !important;
}

html[data-theme-enabled][data-theme='dark'] .leagues-page :is(.modal-content, .dropdown-menu) {
    background-color: var(--theme-surface);
    color: var(--theme-text);
    border-color: var(--theme-border);
}

/* Support page */
html[data-theme-enabled][data-theme='dark'] .apoyar-page {
    background:
        radial-gradient(circle at 15% 0%, rgb(118 81 139 / 18%), transparent 30rem),
        var(--theme-bg);
    color: var(--theme-text);
}

html[data-theme-enabled][data-theme='dark'] .apoyar-page .content-section {
    background: var(--theme-surface);
    color: var(--theme-text);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .apoyar-page :is(.apoyar-subtitle, .content-section p, .feature-card p) {
    color: var(--theme-muted);
}

html[data-theme-enabled][data-theme='dark'] .apoyar-page :is(.content-section h2, .content-section strong, .feature-card h3) {
    color: var(--theme-gold);
}

html[data-theme-enabled][data-theme='dark'] .apoyar-page .feature-card {
    background: var(--theme-raised);
    border-color: var(--theme-border);
}

html[data-theme-enabled][data-theme='dark'] .apoyar-page .alias-container {
    background: var(--theme-input);
}

@media (forced-colors: active) {
    html[data-theme-enabled][data-theme='dark'] :is(
        .card-detail-page,
        .seller-profile-page,
        .lot-detail-page,
        .deck-detail-page,
        .tournaments-page,
        .leagues-page,
        .apoyar-page
    ) :is(a, button, input, select, textarea):focus-visible {
        outline: 2px solid CanvasText;
    }
}
