/* Theme variables and theme-aware overrides.
   The "default" theme is light; "system" follows prefers-color-scheme. */

:root,
html[data-site-theme="default"],
html[data-site-theme="system"] {
    --theme-bg: #f4f5f7;
    --theme-surface: #fff;
    --theme-surface-soft: #fafafa;
    --theme-surface-warm: #fffaf5;
    --theme-surface-deep: #f0f0f0;
    --theme-border: #e1e2e6;
    --theme-border-strong: #cfd2d8;
    --theme-text: #222;
    --theme-text-soft: #444;
    --theme-muted: #777;
    --theme-accent: #d95e11;
    --theme-accent-hover: #c0520f;
    --theme-accent-soft: #fff7f0;
    --theme-on-accent: #fff;
    --theme-on-media: #fff;
    --theme-focus: rgba(217, 94, 17, 0.18);
    --theme-shadow: rgba(20, 24, 32, 0.08);
    --theme-panel-gradient: linear-gradient(135deg, #fff7f0 0%, #fff 60%);
    --theme-meta-color: #A6B3EB;
    --status-rating-bg: #fff8e1;
    --status-rating-border: #f1d97a;
    --status-rating-text: #8a6d00;
    --status-rating-star: #f0a500;
    --status-ok-bg: #e6f7ec;
    --status-ok-border: #b6e4c4;
    --status-ok-text: #1f7a3d;
    --status-ok-solid: #2bb05a;
    --status-info-bg: #e8f0fb;
    --status-info-border: #bcd2f0;
    --status-info-text: #1f5fb8;
    --status-info-solid: #2d8cf0;
    --status-bad-bg: #fde6e6;
    --status-bad-border: #f0a8a8;
    --status-bad-text: #c0392b;
    --status-bad-solid: #d63031;
    --status-neutral-bg: #f0f0f0;
    --status-neutral-border: #d8d8d8;
    --status-neutral-text: #666;
    --decor-warm-bg: #f0e0d0;
    --decor-warm-border: #f0d8c2;
    --decor-warm-text: #b85a17;
}

html[data-site-theme="ocean"] {
    --theme-bg: #edf7fb;
    --theme-surface: #ffffff;
    --theme-surface-soft: #f4fbfd;
    --theme-surface-warm: #ecfbff;
    --theme-surface-deep: #dff0f5;
    --theme-border: #c7e4ee;
    --theme-border-strong: #95c9d8;
    --theme-text: #12313b;
    --theme-text-soft: #254852;
    --theme-muted: #5b7a84;
    --theme-accent: #087f9f;
    --theme-accent-hover: #06677f;
    --theme-accent-soft: #e2f6fb;
    --theme-on-accent: #fff;
    --theme-on-media: #fff;
    --theme-focus: rgba(8, 127, 159, 0.18);
    --theme-shadow: rgba(8, 80, 104, 0.12);
    --theme-panel-gradient: linear-gradient(135deg, #e2f6fb 0%, #ffffff 64%);
    --theme-meta-color: #087f9f;
    --status-rating-bg: #fff5d8;
    --status-rating-border: #e6c269;
    --status-rating-text: #6f5200;
    --status-rating-star: #d9a300;
    --status-ok-bg: #e0f3ea;
    --status-ok-border: #8fc8a7;
    --status-ok-text: #1d5f3a;
    --status-ok-solid: #2ea36a;
    --status-info-bg: #d8ecf6;
    --status-info-border: #88bcd6;
    --status-info-text: #0d4f6b;
    --status-info-solid: #1f7da3;
    --status-bad-bg: #fbe1de;
    --status-bad-border: #df9b9b;
    --status-bad-text: #a72d22;
    --status-bad-solid: #c8302c;
    --status-neutral-bg: #e6eef1;
    --status-neutral-border: #b8c8cf;
    --status-neutral-text: #51707b;
    --decor-warm-bg: #d6ecf3;
    --decor-warm-border: #a9d4e0;
    --decor-warm-text: #086074;
}

html[data-site-theme="midnight"] {
    --theme-bg: #10151d;
    --theme-surface: #18202b;
    --theme-surface-soft: #202a37;
    --theme-surface-warm: #211f2f;
    --theme-surface-deep: #121923;
    --theme-border: #303c4d;
    --theme-border-strong: #46566b;
    --theme-text: #edf3f7;
    --theme-text-soft: #d3dde6;
    --theme-muted: #9aa8b5;
    --theme-accent: #65b9ff;
    --theme-accent-hover: #8ccbff;
    --theme-accent-soft: #17324a;
    --theme-on-accent: #07111c;
    --theme-on-media: #fff;
    --theme-focus: rgba(101, 185, 255, 0.22);
    --theme-shadow: rgba(0, 0, 0, 0.36);
    --theme-panel-gradient: linear-gradient(135deg, #17324a 0%, #18202b 68%);
    --theme-meta-color: #18202b;
    --status-rating-bg: #2a2410;
    --status-rating-border: #6a5a1f;
    --status-rating-text: #f1d780;
    --status-rating-star: #f5c518;
    --status-ok-bg: #173522;
    --status-ok-border: #356f45;
    --status-ok-text: #9be6ad;
    --status-ok-solid: #2bb05a;
    --status-info-bg: #122742;
    --status-info-border: #2c4f7e;
    --status-info-text: #9bbef0;
    --status-info-solid: #4a9bff;
    --status-bad-bg: #361414;
    --status-bad-border: #6f2c2c;
    --status-bad-text: #ff9a93;
    --status-bad-solid: #d63031;
    --status-neutral-bg: #1a212c;
    --status-neutral-border: #303c4d;
    --status-neutral-text: #9aa8b5;
    --decor-warm-bg: #2c2218;
    --decor-warm-border: #4a3622;
    --decor-warm-text: #f0a060;
}

html[data-site-theme="forest"] {
    --theme-bg: #f1f7f0;
    --theme-surface: #ffffff;
    --theme-surface-soft: #f6fbf5;
    --theme-surface-warm: #eef8ed;
    --theme-surface-deep: #e2efe1;
    --theme-border: #cfe2ca;
    --theme-border-strong: #9ec59a;
    --theme-text: #1d321f;
    --theme-text-soft: #36503a;
    --theme-muted: #667862;
    --theme-accent: #2e7d32;
    --theme-accent-hover: #256528;
    --theme-accent-soft: #e6f4e5;
    --theme-on-accent: #fff;
    --theme-on-media: #fff;
    --theme-focus: rgba(46, 125, 50, 0.18);
    --theme-shadow: rgba(36, 89, 38, 0.12);
    --theme-panel-gradient: linear-gradient(135deg, #e6f4e5 0%, #ffffff 64%);
    --theme-meta-color: #2e7d32;
    --status-rating-bg: #fff5d8;
    --status-rating-border: #d8b85a;
    --status-rating-text: #5e4900;
    --status-rating-star: #c79a00;
    --status-ok-bg: #d9eed5;
    --status-ok-border: #7fb37a;
    --status-ok-text: #1f5a23;
    --status-ok-solid: #2e7d32;
    --status-info-bg: #dfe9f2;
    --status-info-border: #99b6cf;
    --status-info-text: #1a4878;
    --status-info-solid: #2563a8;
    --status-bad-bg: #f6dcd9;
    --status-bad-border: #cc8a86;
    --status-bad-text: #8a2920;
    --status-bad-solid: #b03028;
    --status-neutral-bg: #e2eadd;
    --status-neutral-border: #b0c0a8;
    --status-neutral-text: #4a5a48;
    --decor-warm-bg: #e2eadd;
    --decor-warm-border: #b0c0a8;
    --decor-warm-text: #2e7d32;
}

@media (prefers-color-scheme: dark) {
    html[data-site-theme="system"] {
        --theme-bg: #10151d;
        --theme-surface: #18202b;
        --theme-surface-soft: #202a37;
        --theme-surface-warm: #211f2f;
        --theme-surface-deep: #121923;
        --theme-border: #303c4d;
        --theme-border-strong: #46566b;
        --theme-text: #edf3f7;
        --theme-text-soft: #d3dde6;
        --theme-muted: #9aa8b5;
        --theme-accent: #65b9ff;
        --theme-accent-hover: #8ccbff;
        --theme-accent-soft: #17324a;
        --theme-on-accent: #07111c;
        --theme-on-media: #fff;
        --theme-focus: rgba(101, 185, 255, 0.22);
        --theme-shadow: rgba(0, 0, 0, 0.36);
        --theme-panel-gradient: linear-gradient(135deg, #17324a 0%, #18202b 68%);
        --theme-meta-color: #18202b;
        --status-rating-bg: #2a2410;
        --status-rating-border: #6a5a1f;
        --status-rating-text: #f1d780;
        --status-rating-star: #f5c518;
        --status-ok-bg: #173522;
        --status-ok-border: #356f45;
        --status-ok-text: #9be6ad;
        --status-ok-solid: #2bb05a;
        --status-info-bg: #122742;
        --status-info-border: #2c4f7e;
        --status-info-text: #9bbef0;
        --status-info-solid: #4a9bff;
        --status-bad-bg: #361414;
        --status-bad-border: #6f2c2c;
        --status-bad-text: #ff9a93;
        --status-bad-solid: #d63031;
        --status-neutral-bg: #1a212c;
        --status-neutral-border: #303c4d;
        --status-neutral-text: #9aa8b5;
        --decor-warm-bg: #2c2218;
        --decor-warm-border: #4a3622;
        --decor-warm-text: #f0a060;
    }
}

/* Smooth swap when the user picks a different theme. */
html[data-site-theme] body.site-modern,
html[data-site-theme] body.site-modern a,
html[data-site-theme] .site-header-inner,
html[data-site-theme] .site-search,
html[data-site-theme] .site-social,
html[data-site-theme] .site-info-panel,
html[data-site-theme] .site-footer,
html[data-site-theme] .site-pagination,
html[data-site-theme] .home-link-card,
html[data-site-theme] .home-filter-panel,
html[data-site-theme] .home-feed-panel,
html[data-site-theme] .updates-section,
html[data-site-theme] .delivery-card,
html[data-site-theme] .stream-card,
html[data-site-theme] .filelink-card,
html[data-site-theme] .filelink-next,
html[data-site-theme] .filelink-movies,
html[data-site-theme] .series-card,
html[data-site-theme] .series-hero,
html[data-site-theme] .ep-card,
html[data-site-theme] .ep-hero,
html[data-site-theme] .ep-breadcrumb,
html[data-site-theme] .browse-filter-bar,
html[data-site-theme] .browse-schedule-table,
html[data-site-theme] .site-theme-menu,
html[data-site-theme] .site-theme-toggle,
html[data-site-theme] .site-theme-option {
    transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease;
}

html[data-site-theme] body.site-modern {
    background: var(--theme-bg);
    color: var(--theme-text);
}

html[data-site-theme] body.site-modern a {
    color: var(--theme-accent);
}

html[data-site-theme] .site-header-inner,
html[data-site-theme] .site-search,
html[data-site-theme] .site-social,
html[data-site-theme] .site-info-panel,
html[data-site-theme] .site-footer,
html[data-site-theme] .site-pagination,
html[data-site-theme] .home-link-card,
html[data-site-theme] .home-filter-panel,
html[data-site-theme] .home-feed-panel,
html[data-site-theme] .updates-section,
html[data-site-theme] .delivery-card,
html[data-site-theme] .stream-card,
html[data-site-theme] .filelink-card,
html[data-site-theme] .filelink-next,
html[data-site-theme] .filelink-movies,
html[data-site-theme] .series-card,
html[data-site-theme] .series-hero,
html[data-site-theme] .ep-card,
html[data-site-theme] .ep-hero,
html[data-site-theme] .ep-breadcrumb,
html[data-site-theme] .browse-filter-bar,
html[data-site-theme] .browse-schedule-table,
html[data-site-theme] .site-theme-menu {
    background: var(--theme-surface);
    border-color: var(--theme-border);
    color: var(--theme-text);
    box-shadow: 0 2px 10px var(--theme-shadow);
}

html[data-site-theme] .browse-page-header,
html[data-site-theme] .home-hero,
html[data-site-theme] .updates-page-header,
html[data-site-theme] .delivery-status,
html[data-site-theme] .series-upcoming-note {
    background: var(--theme-panel-gradient);
    border-color: var(--theme-border);
    border-left-color: var(--theme-accent);
    color: var(--theme-text-soft);
}

html[data-site-theme] .site-notice {
    background: var(--theme-surface);
    border-color: var(--theme-border);
    color: var(--theme-text-soft);
}

html[data-site-theme] .site-notice-support,
html[data-site-theme] .delivery-note,
html[data-site-theme] .filelink-status,
html[data-site-theme] .browse-empty-state,
html[data-site-theme] .browse-alpha-links,
html[data-site-theme] .ep-hero-details,
html[data-site-theme] .stream-header,
html[data-site-theme] .delivery-series,
html[data-site-theme] .updates-section-head,
html[data-site-theme] .delivery-stats span,
html[data-site-theme] .filelink-movie-list,
html[data-site-theme] .site-search-mode label {
    background: var(--theme-surface-soft);
    border-color: var(--theme-border);
    color: var(--theme-text-soft);
}

html[data-site-theme] .site-theme-toggle,
html[data-site-theme] .site-theme-option,
html[data-site-theme] .site-account-link,
html[data-site-theme] .site-auth-back,
html[data-site-theme] .site-page-link,
html[data-site-theme] .home-chip-row a,
html[data-site-theme] .stream-actions a,
html[data-site-theme] .stream-episode-nav a,
html[data-site-theme] .filelink-nav a,
html[data-site-theme] .browse-filter-chip,
html[data-site-theme] .browse-alpha-link,
html[data-site-theme] .ep-breadcrumb a,
html[data-site-theme] .ep-card-fmt {
    background: var(--theme-surface-soft);
    border-color: var(--theme-border-strong);
    color: var(--theme-accent);
}

html[data-site-theme] .site-theme-toggle:hover,
html[data-site-theme] .site-theme-open .site-theme-toggle,
html[data-site-theme] .site-theme-option:hover,
html[data-site-theme] .site-theme-option[aria-checked="true"],
html[data-site-theme] .site-theme-option[aria-pressed="true"],
html[data-site-theme] .site-account-link:hover,
html[data-site-theme] .site-auth-back:hover,
html[data-site-theme] .site-page-link:hover,
html[data-site-theme] .site-page-link-active,
html[data-site-theme] .home-chip-row a:hover,
html[data-site-theme] .stream-actions a:hover,
html[data-site-theme] .stream-episode-nav a:hover,
html[data-site-theme] .filelink-nav a:hover,
html[data-site-theme] .browse-filter-chip-active,
html[data-site-theme] .browse-alpha-link-active,
html[data-site-theme] .ep-breadcrumb a:hover,
html[data-site-theme] .ep-card-fmt:hover,
html[data-site-theme] .ep-scroller-fmt:hover,
html[data-site-theme] .series-card-chip-cert:hover,
html[data-site-theme] .series-hero-genre-pill:hover,
html[data-site-theme] .series-hero-section:hover,
html[data-site-theme] .browse-filter-pill:hover,
html[data-site-theme] .browse-filter-pill-active,
html[data-site-theme] .browse-filter-chip-x:hover,
html[data-site-theme] .season-pill:hover,
html[data-site-theme] .season-pill-active {
    background: var(--theme-accent);
    border-color: var(--theme-accent);
    color: var(--theme-on-accent);
}

html[data-site-theme] body.site-modern .site-page-link:hover,
html[data-site-theme] body.site-modern .site-page-link-active,
html[data-site-theme] body.site-modern .home-chip-row a:hover,
html[data-site-theme] body.site-modern .stream-actions a:hover,
html[data-site-theme] body.site-modern .stream-episode-nav a:hover,
html[data-site-theme] body.site-modern .filelink-nav a:hover,
html[data-site-theme] body.site-modern .browse-filter-chip-active,
html[data-site-theme] body.site-modern .browse-alpha-link-active,
html[data-site-theme] body.site-modern .ep-breadcrumb a:hover,
html[data-site-theme] body.site-modern .ep-card-fmt:hover,
html[data-site-theme] body.site-modern .ep-scroller-fmt:hover,
html[data-site-theme] body.site-modern .series-card-chip-cert:hover,
html[data-site-theme] body.site-modern .series-hero-genre-pill:hover,
html[data-site-theme] body.site-modern .series-hero-section:hover,
html[data-site-theme] body.site-modern .browse-filter-pill:hover,
html[data-site-theme] body.site-modern .browse-filter-pill-active,
html[data-site-theme] body.site-modern .browse-filter-chip-x:hover,
html[data-site-theme] body.site-modern .season-pill:hover,
html[data-site-theme] body.site-modern .season-pill-active,
html[data-site-theme] body.site-modern .ep-dl-btn-secondary:hover {
    color: var(--theme-on-accent);
}

html[data-site-theme] body.site-modern .ep-dl-btn-primary {
    color: var(--theme-on-media);
}

html[data-site-theme] body.site-modern .ep-dl-btn-secondary {
    color: var(--theme-accent);
}

html[data-site-theme] body.site-modern .ep-dl-btn-app {
    color: var(--theme-text);
}

html[data-site-theme] body.site-modern .site-search-input,
html[data-site-theme] body.site-modern .site-page-jump input,
html[data-site-theme] body.site-modern .filelink-copy input,
html[data-site-theme] .browse-sort-select {
    background: var(--theme-surface);
    border-color: var(--theme-border-strong);
    color: var(--theme-text);
}

html[data-site-theme] body.site-modern .site-search-input:focus,
html[data-site-theme] body.site-modern .site-page-jump input:focus,
html[data-site-theme] body.site-modern .filelink-copy input:focus,
html[data-site-theme] .browse-sort-select:focus,
html[data-site-theme] .site-theme-toggle:focus-visible,
html[data-site-theme] .site-theme-option:focus-visible {
    border-color: var(--theme-accent);
    box-shadow: 0 0 0 3px var(--theme-focus);
    outline: none;
}

html[data-site-theme] body.site-modern .site-search-submit,
html[data-site-theme] .site-page-jump button,
html[data-site-theme] body.site-modern #analytics-download-links a,
html[data-site-theme] .browse-filter-submit,
html[data-site-theme] .series-hero-actions a.is-primary,
html[data-site-theme] .ep-hero-badge,
html[data-site-theme] .ep-card-badge {
    background: var(--theme-accent);
    border-color: var(--theme-accent);
    color: var(--theme-on-accent);
}

html[data-site-theme] body.site-modern .site-search-submit:hover,
html[data-site-theme] .site-page-jump button:hover,
html[data-site-theme] body.site-modern #analytics-download-links a:hover,
html[data-site-theme] .browse-filter-submit:hover {
    background: var(--theme-accent-hover);
    border-color: var(--theme-accent-hover);
}

html[data-site-theme] .site-social,
html[data-site-theme] .site-notice-row .site-notice-support,
html[data-site-theme] .home-hero,
html[data-site-theme] .updates-page-header,
html[data-site-theme] .browse-page-header,
html[data-site-theme] .delivery-status,
html[data-site-theme] .series-upcoming-note {
    border-left-color: var(--theme-accent);
}

html[data-site-theme] .site-social-title,
html[data-site-theme] .site-search-label,
html[data-site-theme] .site-account,
html[data-site-theme] .site-auth,
html[data-site-theme] .site-voice-search,
html[data-site-theme] .site-page-status,
html[data-site-theme] .home-link-card small,
html[data-site-theme] .home-panel-title,
html[data-site-theme] .updates-page-eyebrow,
html[data-site-theme] .updates-empty,
html[data-site-theme] .delivery-section-label,
html[data-site-theme] .stream-note,
html[data-site-theme] .filelink-copy span,
html[data-site-theme] .filelink-movie-list small,
html[data-site-theme] .series-card-year,
html[data-site-theme] .ep-card-series,
html[data-site-theme] .ep-card-date,
html[data-site-theme] .ep-hero-series,
html[data-site-theme] .ep-hero-date,
html[data-site-theme] .browse-page-meta,
html[data-site-theme] .browse-empty-state p,
html[data-site-theme] .browse-schedule-date {
    color: var(--theme-muted);
}

html[data-site-theme] .site-social a,
html[data-site-theme] .site-notice a,
html[data-site-theme] .home-feed-head a,
html[data-site-theme] .home-external-link a,
html[data-site-theme] .updates-section-head a,
html[data-site-theme] .updates-row-list a,
html[data-site-theme] .updates-file-row a,
html[data-site-theme] .updates-external-links a,
html[data-site-theme] .delivery-series a,
html[data-site-theme] .delivery-status a,
html[data-site-theme] .filelink-manual a,
html[data-site-theme] .filelink-next a,
html[data-site-theme] .filelink-movies a,
html[data-site-theme] .series-card-title a:hover,
html[data-site-theme] .ep-card-details-toggle,
html[data-site-theme] .ep-hero-details-toggle,
html[data-site-theme] .ep-hero-series a,
html[data-site-theme] .browse-page-eyebrow,
html[data-site-theme] .browse-schedule-title a,
html[data-site-theme] .series-hero-meta a {
    color: var(--theme-accent);
}

html[data-site-theme] .home-hero h1,
html[data-site-theme] .home-link-card,
html[data-site-theme] .home-feed-head h2,
html[data-site-theme] .home-feed-list a,
html[data-site-theme] .updates-page-header h1,
html[data-site-theme] .updates-row-list a,
html[data-site-theme] .updates-file-row a,
html[data-site-theme] .delivery-file-panel h1,
html[data-site-theme] .stream-header h1,
html[data-site-theme] .filelink-panel-title,
html[data-site-theme] .filelink-movie-list li,
html[data-site-theme] .series-card-title,
html[data-site-theme] .ep-card-title,
html[data-site-theme] .ep-hero-title,
html[data-site-theme] .browse-page-header h1,
html[data-site-theme] .browse-schedule-title {
    color: var(--theme-text);
}

/* Theme-aware dark variants for elements that previously hardcoded literals. */
html[data-site-theme] .site-info-panel,
html[data-site-theme] .site-footer,
html[data-site-theme] .stream-player-panel,
html[data-site-theme] .series-card-poster,
html[data-site-theme] .ep-card-thumb,
html[data-site-theme] .ep-hero-thumb {
    background-color: var(--theme-surface-deep);
}

html[data-site-theme] .series-card-chip-rating,
html[data-site-theme] .series-hero-rating {
    background: var(--status-rating-bg);
    border-color: var(--status-rating-border);
    color: var(--status-rating-text);
}

html[data-site-theme] .series-upcoming-status {
    background: var(--status-info-bg);
    border-color: var(--status-info-border);
    color: var(--status-info-text);
}

html[data-site-theme] .series-card-status-ongoing,
html[data-site-theme] .delivery-note-pro,
html[data-site-theme] .filelink-status {
    background: var(--status-ok-bg);
    border-color: var(--status-ok-border);
    color: var(--status-ok-text);
}

html[data-site-theme="midnight"] .site-brand img,
html[data-site-theme="system"] .site-brand img {
    filter: drop-shadow(0 1px 0 rgba(255, 255, 255, 0.2));
}

@media (prefers-reduced-motion: reduce) {
    html[data-site-theme] body.site-modern,
    html[data-site-theme] body.site-modern * {
        transition: none !important;
    }
}
