/* Shared palettes for the three themed homepages and their inner pages. */
[data-site-theme="mountain"] {
    --bg: #f6f9f7;
    --card-bg: #fff;
    --theme-soft: #e4ece6;
    --text-primary: #234d43;
    --text-secondary: #526c60;
    --border-color: #d4e0d8;
    --site-accent: #386856;
    --accent-hover: #234d43;
    --theme-on-accent: #fff;
    --theme-nav: #f6f9f7;
}

[data-site-theme="night"] {
    color-scheme: dark;
    --bg: #18283b;
    --card-bg: #203249;
    --theme-soft: #293e55;
    --text-primary: #f2f5f8;
    --text-secondary: #b2c6d8;
    --border-color: #3c5066;
    --site-accent: #e4be7e;
    --accent-hover: #f2d6a7;
    --theme-on-accent: #18283b;
    --theme-nav: #182536;
    --theme-danger: #ff9e98;
    --theme-success: #89d8a4;
    --theme-warning: #efd096;
    --shadow-md: 0 4px 16px #10192555;
}

[data-site-theme="desk"] {
    --bg: #eff2f6;
    --card-bg: #fff;
    --theme-soft: #e4eaf6;
    --text-primary: #222c3b;
    --text-secondary: #526176;
    --border-color: #d6dde7;
    --site-accent: #3158d3;
    --accent-hover: #2348bc;
    --theme-on-accent: #fff;
    --theme-nav: #fff;
}

[data-site-theme] {
    --accent: var(--site-accent);
    --text-muted: var(--text-secondary);
    --site-focus: var(--accent);
    --header-bg: var(--theme-nav);
    --theme-link: var(--accent);
    --music-muted: var(--text-secondary);
    accent-color: var(--accent);
}

[data-site-theme] body,
[data-site-theme] body.photo-detail-page,
[data-site-theme] body.search-page {
    color: var(--text-primary);
    background: var(--bg);
}

:where([data-site-theme]) a {
    color: var(--accent);
}

:where([data-site-theme]) a:hover {
    color: var(--accent-hover);
}

/* The shared header keeps every section and uses the existing Logo light-ink filter. */
[data-site-theme] .coolwj-header {
    --accent: var(--site-accent);
    --header-divider: var(--border-color);
    background: var(--theme-nav);
    border-bottom: 1px solid var(--border-color);
    color: var(--text-primary);
}

[data-site-theme] .coolwj-header :is(ul.coolwj-header-navs > li > a, .coolwj-nav-more-btn, .coolwj-user-login, .mobile-menu-toggle, .coolwj-nav-more-dropdown a) {
    color: var(--text-secondary);
}

[data-site-theme] .coolwj-header :is(a, .coolwj-nav-more-btn, .mobile-menu-toggle):is(:hover, :focus-visible, .active),
[data-site-theme] .coolwj-header .coolwj-nav-more.show > .coolwj-nav-more-btn {
    color: var(--accent);
}

[data-site-theme] .coolwj-header .coolwj-header-avatar .fa-sort-desc {
    color: var(--text-secondary);
}

[data-site-theme] .coolwj-header :is(.coolwj-mobile-nav, .coolwj-nav-more-dropdown, .coolwj-header-Layer, .remind-layer) {
    background: var(--theme-nav);
    border-color: var(--border-color);
}

[data-site-theme] .coolwj-header :is(.coolwj-header-searchbox, .coolwj-mobile-search) .form-control {
    color: var(--text-primary) !important;
    background: var(--theme-soft);
    border-color: var(--border-color);
    box-shadow: none;
}

[data-site-theme] .coolwj-header :is(.coolwj-header-searchbox, .coolwj-mobile-search) .form-control::placeholder {
    color: var(--text-secondary);
}

[data-site-theme] .coolwj-header .form-control:focus {
    border-color: var(--accent);
}

[data-site-theme] .coolwj-header .coolwj-nav-more-dropdown a:is(:hover, .active),
[data-site-theme] .coolwj-header .coolwj-mobile-nav ul.coolwj-header-navs > li > a:is(:hover, .active),
[data-site-theme] .coolwj-header .coolwj-user-login:hover {
    color: var(--accent);
    background: var(--theme-soft);
}

[data-site-theme="desk"] .coolwj-header #main_menu > li > a.active {
    color: var(--accent);
    background: linear-gradient(var(--theme-soft), var(--theme-soft)) center / 100% 30px no-repeat;
    border-radius: 6px;
}

[data-site-theme] .coolwj-footer {
    --theme-footer-text: var(--text-secondary);
    background: var(--theme-nav);
    border-top: 1px solid var(--border-color);
}

[data-site-theme] .coolwj-footer :is(a, .coolwj-copyright) {
    color: var(--text-secondary);
}

/* Shared panels, article typography, account forms and navigation controls. */
[data-site-theme] :is(.coolwj-panel, .coolwj-doc-contentbox, .site-status, .list-group-item,
    .modal-content, .dropdown-menu, .coolwj-pagebox .page-link) {
    background-color: var(--card-bg);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-site-theme] :is(.coolwj-article-title, .coolwj-common-name a, .coolwj-doc-title,
    .coolwj-article-content, .coolwj-doc-content, .coolwj-panel-header, .site-empty strong,
    .coolwj-poem-list .poem-list-title a, .poem-novel-entry > h2, .poem-novel-card h3 a) {
    color: var(--text-primary);
}

[data-site-theme] :is(.coolwj-article-info, .coolwj-common-info, .coolwj-common-brief,
    .coolwj-poem-list .poem-list-work, .coolwj-poem-list .poem-list-meta, .poem-list-empty, .poem-novel-entry .poem-novel-eyebrow,
    .poem-novel-card > p, .poem-novel-genre, .poem-novel-entry .poem-novel-disclosure,
    .coolwj-page-container .text-muted, .coolwj-page-container .text-secondary) {
    color: var(--text-secondary) !important;
}

[data-site-theme] :is(.coolwj-panel-header, .coolwj-common-item, .coolwj-poem-list .poem-list-item,
    .coolwj-my-breadcrumb, .coolwj-my-navtabs, .coolwj-my-navtabs2, .modal-header, .modal-footer, hr) {
    border-color: var(--border-color);
}

[data-site-theme] :is(.coolwj-article-content, .coolwj-doc-content, .coolwj-common-brief) :is(pre, blockquote) {
    background: var(--theme-soft);
    color: var(--text-primary);
    border-color: var(--accent);
}

[data-site-theme] :is(.coolwj-labels a, .label-cloud a, .site-hotwords a, .site-empty, .site-days a,
    .site-table-scroll th, .poem-novel-entry, .poem-shortcuts, .poem-home-actions > a) {
    background: var(--theme-soft);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-site-theme] :is(.poem-shortcuts, .poem-home-actions) a {
    color: var(--accent);
    text-shadow: none;
}

[data-site-theme] :is(.poem-shortcuts, .poem-home-actions) a:is(:hover, :focus-visible) {
    background: var(--accent);
    color: var(--theme-on-accent);
    outline-color: var(--accent);
}

[data-site-theme] .coolwj-page-container :is(.form-control:not([type="file"]), .custom-select,
    .btn-outline-secondary, .btn-light, .dropdown-item) {
    color: var(--text-primary);
    background: var(--card-bg);
    border-color: var(--border-color);
}

[data-site-theme] .coolwj-page-container .form-control::placeholder {
    color: var(--text-secondary);
}

[data-site-theme] :is(.coolwj-page-container .btn-primary, .auth-page #submit_btn,
    .space-page .btn-info, .space-page .newsfeed-reply-submit,
    .coolwj-pagebox .page-item.active .page-link, .poem-novel-entry .poem-novel-read,
    .music-library-bar button, .music-recording-option.is-current .music-recording-icon,
    .music-transport .music-main-play, .reader-original) {
    color: var(--theme-on-accent) !important;
    background: var(--accent);
    border-color: var(--accent);
}

[data-site-theme] :is(.site-skip-link, .scroll-to-top, .photo-view-switch a[aria-current="page"]) {
    background: var(--theme-soft);
    border-color: var(--border-color);
    color: var(--accent);
}

/* Book jackets are artwork. Only the reader, shelves' text and book surfaces use these tokens. */
[data-site-theme] body.novel-page {
    background: var(--book-paper);
    color: var(--book-ink);
}

[data-site-theme]:not([data-site-theme="night"]) .novel-page:not([data-reader-theme="eye"], [data-reader-theme="night"]),
[data-site-theme="night"] .novel-page:not([data-reader-theme="day"], [data-reader-theme="eye"]) {
    --book-paper: var(--bg);
    --book-panel: var(--card-bg);
    --book-ink: var(--text-primary);
    --book-muted: var(--text-secondary);
    --book-line: var(--border-color);
    --book-accent: var(--accent);
}

[data-site-theme="night"] .novel-page:is([data-reader-theme="day"], [data-reader-theme="eye"]) .book-reader-shell {
    color-scheme: light;
}

[data-site-theme] .novel-page :is(.book-reader-shell a, .book-overview a, .book-toc a) {
    color: var(--book-accent);
}

[data-site-theme] .novel-page .book-primary-link {
    color: var(--book-panel) !important;
}

[data-site-theme] .library-browse {
    background: var(--card-bg);
    border-color: var(--border-color);
}

[data-site-theme] .library-browse:hover {
    background: var(--theme-soft);
}

[data-site-theme] :is(.library-section-label, .library-still-caption, .shelf-book-author, .shelf-book-meta span:last-child) {
    color: var(--book-muted);
}

[data-site-theme] .content-comments {
    --book-panel: var(--card-bg);
    --book-paper: var(--bg);
    --book-ink: var(--text-primary);
    --book-muted: var(--text-secondary);
    --book-line: var(--border-color);
    --book-accent: var(--accent);
}

[data-site-theme] .content-comments-submit > button {
    background: var(--accent);
    color: var(--theme-on-accent);
}

/* Music metadata and controls follow the theme while cover images stay intact. */
[data-site-theme] :is(.music-card, .music-version, .music-library-bar input, .music-recording-option,
    .music-version-tabs button, .music-version-switcher select, .music-player-dock, .music-persistent-inner, .music-queue-panel) {
    background: var(--card-bg);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-site-theme] :is(.music-intro-notes, .music-connection, .music-related, .music-recordings-heading > p,
    .music-recording-option.is-current, .music-recording-option .music-recording-icon,
    .music-version-tabs button[aria-pressed="true"], .music-player-note, .music-queue-count, .music-queue-panel li.is-current) {
    background: var(--theme-soft);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-site-theme] :is(.music-shell a, .music-related a, .music-recording-add, .music-version-label h3,
    .music-related h2, .music-eyebrow, .music-persistent-player button, .music-now a, .music-queue-panel [aria-current="true"] strong) {
    color: var(--accent);
}

[data-site-theme] :is(.music-art-play, .music-related a.music-related-listen, .music-transport .music-main-play,
    .music-recording-option.is-current .music-recording-icon) {
    background: var(--accent);
    color: var(--theme-on-accent);
}

[data-site-theme] :is(.music-recording-copy strong, .music-recordings-heading h2, .music-player-title,
    .music-intro-notes blockquote, .music-queue-heading h2, .music-queue-item strong) {
    color: var(--text-primary);
}

[data-site-theme] :is(.music-intro, .music-lyrics, .music-pagination, .music-recordings-heading, .music-overview) {
    border-color: var(--border-color);
}

[data-site-theme] .music-library-bar input::placeholder {
    color: var(--text-secondary);
}

[data-site-theme] :is(.music-breadcrumb, .music-intro > p:not(.music-eyebrow), .music-muted, .music-summary,
    .music-lead, .music-library-bar h2 span, .music-version-label > span, .music-recording-copy .music-recording-meta,
    .music-recording-meta .music-recording-action, .music-recordings-help, .music-disclosure, .music-listening-note,
    .music-connection p, .music-connection-tag, .music-intro-notes figcaption, .music-poem-origin > span,
    .music-player-subtitle, .music-now p, .music-timeline, .music-queue-status, .music-queue-item small, .music-queue-empty) {
    color: var(--text-secondary);
}

[data-site-theme] .music-browse-frame {
    background: var(--bg);
}

/* Search, photos, news and tools reuse the same surfaces and text contrast. */
[data-site-theme] :is(.search-sort select, .search-sort button, .news-hotwords, .news-search-box,
    .news-source-card, .news-history, .reader-article, .reader-progress, .reader-fallback,
    .stock-nav, .stock-overview-card, .stock-page .stock-table th:first-child) {
    background: var(--card-bg);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-site-theme] :is(.search-result-icon, .search-pagination .search-page-current, .news-controls, .news-sidebar,
    .news-empty, .news-hotwords-list a, .news-history-days a, .reader-notice, .reader-body blockquote, .reader-body pre,
    .photo-view-switch, .photo-wall-card, .stock-page .stock-button, .stock-page .stock-table thead th,
    .heatmap-metrics) {
    background: var(--theme-soft);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-site-theme] :is(.search-brand, .search-form input[type="search"], .search-result-source, .search-result-site,
    .search-empty h2, .photo-wall-heading h1, .photo-wall-empty h2, .news-home, .news-hero h1, .news-overview strong,
    .news-source-identity, .news-ranking > li > a, .news-home .news-category-header h2, .news-history h2,
    .reader-article h1, .reader-body, .reader-body :is(h2, h3, h4), .news-reader, .stock-table th > strong) {
    color: var(--text-primary);
}

[data-site-theme] :is(.search-result h2 a, .search-tabs a[aria-current="page"], .search-submit, .search-expand,
    .news-home .news-category-nav .is-active, .news-home .news-category-nav .is-active .news-nav-count,
    .reader-body a, .stock-nav a[aria-current="page"], .photo-detail-actions a) {
    color: var(--accent);
}

[data-site-theme] :is(.search-brand span, .search-tabs a, .search-result-snippet, .search-result-path,
    .search-result-path > span, .search-result-snippet time, .search-empty p, .search-toolbar,
    .photo-wall-eyebrow, .photo-wall-description, .photo-wall-summary, .photo-wall-empty,
    .news-eyebrow, .news-hero-description, .news-hero h1 > span, .news-overview span, .news-history-link,
    .news-home .news-category-nav a, .news-home .news-category-nav .news-nav-count, .news-hotwords-label,
    .news-source-kind, .news-source-meta, .news-state, .news-results-bar p, .news-content-filter,
    .reader-source, .reader-back, .reader-kicker, .reader-byline, .reader-body figcaption,
    .stock-heading p, .stock-nav a, .stock-overview-card > span, .stock-overview-card small, .stock-code) {
    color: var(--text-secondary);
}

[data-site-theme] :is(.news-home .news-category-nav .is-active, .stock-nav a[aria-current="page"], .search-tabs a[aria-current="page"]) {
    background: var(--theme-soft);
    color: var(--accent);
}

/* Tool tables and account controls with explicit colors from the legacy stylesheets. */
[data-site-theme] :is(.coolwj-page-container .table, .coolwj-my-opt .btn-outline-grey) {
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-site-theme] :is(.coolwj-page-container .table th, .coolwj-page-container .table td,
    .stock-details, .stock-totals, .stock-chips,
    .photo-detail-actions, .search-form, .search-tabs, .search-toolbar) {
    border-color: var(--border-color);
}

[data-site-theme] :is(.coolwj-my-summary a, .site-space-nav > summary, .breadcrumb-item.active,
    .photo-view-switch a:not([aria-current="page"]), .photo-detail-actions button) {
    color: var(--text-secondary);
}

[data-site-theme] :is(.coolwj-my-opt .btn-outline-grey:hover, .list-group-item-action:hover,
    .coolwj-my-navtabs a.active, .coolwj-my-navtabs2 a.active,
    .news-home .news-category-nav a:hover, .news-home .news-category-nav button:hover,
    .search-pagination a:hover, .search-submit:hover, .label-cloud a:hover) {
    background: var(--theme-soft);
    color: var(--accent);
    border-color: var(--border-color);
}

[data-site-theme] :is(.search-examples a, .reader-article footer a, .hm-metric:is(:hover, .is-active)) {
    color: var(--accent);
}

[data-site-theme] :is(.hm-metric.is-active, .stock-heatmap, .hm-industry) {
    background: var(--card-bg);
    border-color: var(--border-color);
}

[data-site-theme] .coolwj-page-container .text-danger {
    color: var(--theme-danger, #a62923) !important;
}

[data-site-theme] .coolwj-page-container .text-success {
    color: var(--theme-success, #0e6c38) !important;
}

[data-site-theme] :is(.auth-page #email, .auth-page #newPassword, .space-page .newsfeed-reply-list textarea) {
    background: var(--card-bg);
    color: var(--text-primary);
    border-color: var(--border-color);
}

[data-site-theme] .space-page .breadcrumb:not(.coolwj-my-breadcrumb) {
    background: var(--theme-soft);
}

[data-site-theme] .space-page .edui-editor {
    color: #253447;
    color-scheme: light;
}

[data-site-theme] :is(.label-data-list li, .site-about-projects a) {
    border-color: var(--border-color);
}

/* The game and player retain their illustrated hero panels and use the site palette for surrounding controls. */
[data-site-theme] :is(.game-jump-nav, .player-jump-nav) {
    border-color: var(--border-color);
}

[data-site-theme] :is(.game-jump-nav a, .player-jump-nav a, .game-image-note,
    .game-section-heading > p, .player-section-heading > p) {
    color: var(--text-secondary);
}

[data-site-theme] :is(.game-jump-nav a:hover, .player-jump-nav a:hover,
    .game-section-heading .game-eyebrow, .player-section-heading .player-eyebrow) {
    color: var(--accent);
}

[data-site-theme] :is(.game-section-heading h2, .player-section-heading h2) {
    color: var(--text-primary);
}

[data-site-theme] :is(.game-about, .player-about, .player-start) {
    background: var(--card-bg);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-site-theme] :is(.game-about-intro, .game-feedback, .player-start-steps p, .player-platform,
    .player-device-line span, .player-feedback p, .player-faq p, .player-about .player-image-note) {
    color: var(--text-secondary);
}

[data-site-theme] :is(.game-feedback a, .player-section .player-start-steps > li > span) {
    color: var(--accent);
}
