/*
 * EU Ruins Isle account themes.
 * Loaded by site-nav.js whenever the current site context is The Isle.
 * The aliases cover both the shared casino pages and the Isle-native hubs.
 */

:is(html,body)[data-game="isle"][data-isle-theme="isle"] {
  --isle-accent:#38bdf8;--isle-accent-rgb:56,189,248;--isle-secondary:#34d399;
  --bg:#030a10;--bg2:#06131c;--card:#081722;--card2:#0d2230;--panel:#081722;--panel2:#0d2230;--hdr:rgba(3,10,16,.98);
  --red:#38bdf8;--cyan:#38bdf8;--blue:#38bdf8;--accent:#38bdf8;--glow:rgba(56,189,248,.26);
  --purple:#34d399;--mint:#34d399;--green:#34d399;--ok:#34d399;--gold:#d7f99b;--amber:#fbbf24;--ruby:#7dd3fc;
  --txt:#f5fbff;--text:#f5fbff;--txt2:#b7d5e4;--text2:#b7d5e4;--muted:#7898a8;
  --bdr:#183246;--bdr2:#29516b;--border:#183246;--border2:#29516b;--line:#183246;--line2:#29516b;
  --danger:#ef4444;--bad:#ef4444;--eu-isle-cyan:#38bdf8;--eu-isle-panel:#081722;--eu-isle-border:rgba(56,189,248,.38);
}

:is(html,body)[data-game="isle"][data-isle-theme="ember"] {
  --isle-accent:#fb7185;--isle-accent-rgb:251,113,133;--isle-secondary:#f59e0b;
  --bg:#0d0708;--bg2:#160b0d;--card:#1b0e11;--card2:#251217;--panel:#1b0e11;--panel2:#251217;--hdr:rgba(13,7,8,.98);
  --red:#fb7185;--cyan:#fb7185;--blue:#fb7185;--accent:#fb7185;--glow:rgba(251,113,133,.26);
  --purple:#f59e0b;--mint:#f59e0b;--green:#f59e0b;--ok:#4ade80;--gold:#fbbf24;--amber:#fbbf24;--ruby:#fda4af;
  --txt:#fff7f8;--text:#fff7f8;--txt2:#f3c1c9;--text2:#f3c1c9;--muted:#b77b85;
  --bdr:#4a2028;--bdr2:#6b2b38;--border:#4a2028;--border2:#6b2b38;--line:#4a2028;--line2:#6b2b38;
  --danger:#ef4444;--bad:#ef4444;--eu-isle-cyan:#fb7185;--eu-isle-panel:#1b0e11;--eu-isle-border:rgba(251,113,133,.38);
}

:is(html,body)[data-game="isle"][data-isle-theme="dusk"] {
  --isle-accent:#a78bfa;--isle-accent-rgb:167,139,250;--isle-secondary:#22d3ee;
  --bg:#070611;--bg2:#0e0b1d;--card:#15112a;--card2:#1c1738;--panel:#15112a;--panel2:#1c1738;--hdr:rgba(7,6,17,.98);
  --red:#a78bfa;--cyan:#a78bfa;--blue:#a78bfa;--accent:#a78bfa;--glow:rgba(167,139,250,.27);
  --purple:#22d3ee;--mint:#22d3ee;--green:#22d3ee;--ok:#34d399;--gold:#fde68a;--amber:#fbbf24;--ruby:#c4b5fd;
  --txt:#faf8ff;--text:#faf8ff;--txt2:#d2c8f5;--text2:#d2c8f5;--muted:#9386ba;
  --bdr:#332a5b;--bdr2:#4c3f7d;--border:#332a5b;--border2:#4c3f7d;--line:#332a5b;--line2:#4c3f7d;
  --danger:#fb7185;--bad:#fb7185;--eu-isle-cyan:#a78bfa;--eu-isle-panel:#15112a;--eu-isle-border:rgba(167,139,250,.38);
}

:is(html,body)[data-game="isle"][data-isle-theme="canopy"] {
  --isle-accent:#4ade80;--isle-accent-rgb:74,222,128;--isle-secondary:#facc15;
  --bg:#040a07;--bg2:#07140d;--card:#0a1c12;--card2:#0e2819;--panel:#0a1c12;--panel2:#0e2819;--hdr:rgba(4,10,7,.98);
  --red:#4ade80;--cyan:#4ade80;--blue:#4ade80;--accent:#4ade80;--glow:rgba(74,222,128,.24);
  --purple:#facc15;--mint:#4ade80;--green:#4ade80;--ok:#4ade80;--gold:#facc15;--amber:#fbbf24;--ruby:#86efac;
  --txt:#f4fff7;--text:#f4fff7;--txt2:#c2e7cf;--text2:#c2e7cf;--muted:#79a98a;
  --bdr:#1b4930;--bdr2:#276941;--border:#1b4930;--border2:#276941;--line:#1b4930;--line2:#276941;
  --danger:#fb7185;--bad:#fb7185;--eu-isle-cyan:#4ade80;--eu-isle-panel:#0a1c12;--eu-isle-border:rgba(74,222,128,.36);
}

/* Shared aliases used by eu-theme.css, Leaderboard, and the Patreon tools. */
:is(html,body)[data-game="isle"][data-isle-theme] {
  --eu-accent:var(--isle-accent);--eu-accent-2:var(--isle-secondary);
  --eu-accent-soft:color-mix(in srgb,var(--isle-accent) 14%,transparent);
  --eu-accent-line:color-mix(in srgb,var(--isle-accent) 30%,transparent);
  --eu-accent-glow:color-mix(in srgb,var(--isle-accent) 34%,transparent);
  --eu-gold:var(--gold);--eu-bg-0:var(--bg);--eu-bg-1:var(--bg2);--eu-surface:var(--card);--eu-surface-2:var(--card2);
  --eu-text:var(--txt);--eu-text-dim:var(--txt2);--eu-text-mute:var(--muted);
  --bg-primary:var(--bg);--bg-secondary:var(--bg2);--bg-card:var(--card);--bg-card-hover:var(--card2);--bg-header:var(--hdr);
  --accent-primary:var(--isle-accent);--accent-secondary:var(--isle-secondary);--accent-purple:var(--purple);--accent-gold:var(--gold);
  --text-primary:var(--txt);--text-secondary:var(--txt2);--text-muted:var(--muted);--border-color:var(--bdr);--border-light:var(--bdr2);
  --surface:var(--card);--surface-raised:var(--card2);--surface-soft:color-mix(in srgb,var(--card2) 82%,var(--isle-accent) 18%);
}

html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body {
  background:
    radial-gradient(900px 540px at 78% -8%,color-mix(in srgb,var(--isle-accent) 15%,transparent),transparent 62%),
    radial-gradient(760px 520px at 4% 18%,color-mix(in srgb,var(--isle-secondary) 7%,transparent),transparent 64%),
    linear-gradient(color-mix(in srgb,var(--txt) 2.2%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--txt) 2.2%,transparent) 1px,transparent 1px),
    linear-gradient(180deg,var(--bg),var(--bg2))!important;
  background-size:auto,auto,72px 72px,72px 72px,auto!important;
  color:var(--txt,var(--text));
}

html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .header,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) header.header {
  background:var(--hdr)!important;
  border-bottom-color:var(--bdr)!important;
}

html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .logo-text span {
  color:var(--isle-accent)!important;
}

html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .nav .site-nav-link,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .nav .nav-link,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .nav .site-nav-link:visited,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .nav .nav-link:visited {
  color:var(--txt2)!important;
}

html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .nav .site-nav-link:hover,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .nav .nav-link:hover {
  color:var(--txt)!important;
  background:color-mix(in srgb,var(--isle-accent) 9%,transparent)!important;
  border-color:color-mix(in srgb,var(--isle-accent) 30%,transparent)!important;
}

html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .nav .site-nav-link.active,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .nav .nav-link.active {
  color:var(--isle-accent)!important;
  background:color-mix(in srgb,var(--isle-accent) 13%,transparent)!important;
  border-color:color-mix(in srgb,var(--isle-accent) 42%,transparent)!important;
  box-shadow:0 0 18px color-mix(in srgb,var(--isle-accent) 22%,transparent)!important;
}

html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .site-profile-chip {
  border-color:var(--eu-isle-border)!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--isle-accent) 12%,transparent),color-mix(in srgb,var(--bg) 92%,#000))!important;
}

html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .site-profile-menu {
  border-color:var(--eu-isle-border)!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--card) 96%,#fff 4%),var(--bg2))!important;
  box-shadow:0 18px 50px rgba(0,0,0,.5),0 0 0 1px color-mix(in srgb,var(--isle-accent) 10%,transparent) inset!important;
}

html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .site-profile-menu-item:hover,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .site-profile-menu-item.is-admin {
  color:var(--isle-accent)!important;
  border-color:color-mix(in srgb,var(--isle-accent) 42%,transparent)!important;
  background:color-mix(in srgb,var(--isle-accent) 12%,transparent)!important;
}

/* Fossil Games cards use a few legacy fixed-color overlays. */
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.casino-polished,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .casino-page {
  background-color:var(--bg)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .game::before {
  background:linear-gradient(135deg,transparent 60%,color-mix(in srgb,var(--isle-accent) 10%,transparent))!important;
}

/* Leaderboard has its own variable vocabulary and legacy blue panel fills. */
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .leaderboard,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .winner-item,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .reward-tier,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .info-card,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .isle-rank-card,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .scope-switch,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .tab-btn,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .source-pill {
  background:color-mix(in srgb,var(--card) 92%,transparent)!important;
  border-color:var(--bdr)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .leaderboard thead,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) table thead {
  background:color-mix(in srgb,var(--bg2) 96%,#000)!important;
}

/* Patreon / supporter skin creator previously hardcoded the Isle Blue ramp. */
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .patreon-page :is(.patreon-copy,.support-card,.tier-overview,.skin-locked,.skin-studio) {
  background:color-mix(in srgb,var(--card) 94%,transparent)!important;
  border-color:color-mix(in srgb,var(--isle-accent) 25%,var(--bdr))!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .patreon-page :is(.tier-card,.skin-mode,.option-field,.colour-card,.skin-card) {
  background:color-mix(in srgb,var(--bg2) 88%,transparent)!important;
  border-color:color-mix(in srgb,var(--isle-accent) 19%,var(--bdr))!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .patreon-page :is(.option-field select,.option-field input,.json-editor,input[type="color"]) {
  background:var(--bg2)!important;
  border-color:color-mix(in srgb,var(--isle-accent) 32%,var(--bdr))!important;
  color:var(--txt)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .patreon-page :is(.eyebrow,.logo-text span) {
  color:var(--isle-accent)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) .patreon-page :is(.skin-button.primary,.support-actions a:first-child) {
  background:linear-gradient(90deg,var(--isle-accent),var(--isle-secondary))!important;
}

/*
 * Complete component theming. Isle-native pages historically carried their
 * own navy/cyan component ramps, so changing the shared page background was
 * not enough. These rules make nested surfaces, controls, dialogs, and active
 * states consume the same saved account theme while preserving semantic
 * danger, success, rarity, currency, and Prime colours.
 */
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body {
  --pink:color-mix(in srgb,var(--isle-accent) 72%,white);
  --glow:color-mix(in srgb,var(--isle-accent) 25%,transparent);
  --success:var(--ok);
  --mint:var(--isle-accent);
  --cyan:var(--isle-accent);
  --blue:var(--isle-accent);
  --red:var(--isle-accent);
}

html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body :is(
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  textarea,
  select
) {
  color:var(--txt,var(--text))!important;
  background:var(--bg2)!important;
  border-color:var(--bdr2)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body :is(input,textarea,select):focus {
  border-color:var(--isle-accent)!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--isle-accent) 15%,transparent)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body :is(input[type="checkbox"],input[type="radio"],input[type="range"]) {
  accent-color:var(--isle-accent)!important;
}

html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body :is(
  .panel,.status-card,.stat-card,.metric-card,.info-card,.game,.game-card,
  .market-card,.listing-card,.history-row,.form-card,.support-card,.tier-card,
  .skin-studio,.leaderboard,.isle-rank-card,.modal-card,.modal-panel,.dialog-card
) {
  background-color:var(--card)!important;
  border-color:var(--bdr)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body :is(
  dialog,.modal,.checkout,.empty,.row,.stat-box,.count-chip,.friend-tool-person,
  .trade-column,.dino-choice,.check-card,.mutation-card,.mutation-row,.mutation-slot,
  .player-profile-stat,.skin-mode,.option-field,.colour-card,.skin-card
) {
  border-color:var(--bdr)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body :is(dialog,.modal,.dialog,.toast) {
  color:var(--txt,var(--text))!important;
  background-color:var(--card)!important;
  border-color:var(--bdr2)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body :is(
  .tab.active,.tab-btn.active,.hub-tab.active,.friend-subtab.active,.sub-tab.active,
  .filter-btn.active,.scope-switch.active,.button.primary,.btn.primary,.primary-button,
  .cta-button
) {
  color:#fff!important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--isle-accent) 88%,white 2%),var(--isle-accent))!important;
  border-color:var(--isle-accent)!important;
  box-shadow:0 7px 20px color-mix(in srgb,var(--isle-accent) 25%,transparent)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body :is(
  .button.secondary,.btn.secondary,button.secondary,.tab:not(.active),.tab-btn:not(.active),
  .hub-tab:not(.active),.friend-subtab:not(.active),.sub-tab:not(.active),.filter-btn:not(.active)
) {
  color:var(--txt2,var(--text2))!important;
  background:var(--card2)!important;
  border-color:var(--bdr2)!important;
}

/* Dino Hub: friends, storage records, builders, and the redeem flow. */
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page :is(
  .panel,.status-card,.row,.stat-box,.checkout,.count-chip,.friend-tool-person,
  .trade-column,.dino-choice,.check-card,.mutation-card,.mutation-row,.mutation-slot,
  .player-profile-stat,.action-status
) {
  background:color-mix(in srgb,var(--card) 93%,transparent)!important;
  border-color:var(--bdr)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page :is(
  .redeem-dialog,.dino-action-dialog,.player-profile-dialog,.player-profile-card
) {
  color:var(--txt)!important;
  background:linear-gradient(180deg,var(--card),var(--bg2))!important;
  border-color:var(--bdr2)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page #isleFriendsList .row {
  background:linear-gradient(90deg,color-mix(in srgb,var(--isle-accent) 8%,transparent),color-mix(in srgb,var(--isle-secondary) 3%,transparent)),var(--bg2)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page :is(.registry-topbar,.dino-card-badge,.skin-card-badge) {
  color:var(--muted)!important;
  background:color-mix(in srgb,var(--bg) 84%,transparent)!important;
  border-color:var(--bdr)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page .dino-card {
  background:linear-gradient(155deg,color-mix(in srgb,var(--card2) 88%,transparent),var(--bg2))!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page :is(.dino-card-stat,.dino-card-diet) {
  background:color-mix(in srgb,var(--card2) 78%,transparent)!important;
  border-color:var(--bdr)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page .dino-card-diet-slots span {
  background:var(--bg2)!important;
  border-color:var(--bdr)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page :is(.live-dino-hero,.dino-choice) {
  background:linear-gradient(145deg,color-mix(in srgb,var(--isle-accent) 9%,transparent),color-mix(in srgb,var(--card2) 88%,transparent))!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page :is(
  .hub-tab.active,.friend-subtab.active,.dino-card-foot button,
  .friend-tool-person>button,.action-strip button:not(.secondary),
  #isleFriendsList .actions button:not(.secondary):not(.danger)
) {
  color:#fff!important;
  background:var(--isle-accent)!important;
  border-color:var(--isle-accent)!important;
  box-shadow:0 7px 20px color-mix(in srgb,var(--isle-accent) 24%,transparent)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page .dino-choice:has(input:checked) {
  background:color-mix(in srgb,var(--isle-accent) 15%,var(--card2))!important;
  border-color:var(--isle-accent)!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--isle-accent) 13%,transparent)!important;
}

/* The live-dinosaur dossier was a self-contained fixed Isle Blue palette. */
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page .dossier-card {
  --d-paper:var(--card);
  --d-paper2:var(--bg2);
  --d-border:var(--bdr2);
  --d-hairline:var(--bdr);
  --d-cyan:var(--isle-accent);
  --d-text:var(--txt);
  --d-text-dim:var(--txt2);
  --d-text-faint:var(--muted);
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page .dossier-name {
  color:var(--txt)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page :is(.dossier-btn:hover,.dossier-btn-primary) {
  color:var(--bg)!important;
  background:var(--isle-accent)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-player-page .dossier-therm-fill {
  background:linear-gradient(180deg,color-mix(in srgb,var(--isle-accent) 70%,white),var(--isle-accent))!important;
  box-shadow:0 0 10px color-mix(in srgb,var(--isle-accent) 40%,transparent) inset!important;
}

/* Fossil Games and Leaderboard nested legacy surfaces. */
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.casino-polished :is(
  .game,.game-card,.balance,.balance-bar,.section-title,.table,.game-panel,.bet-panel,
  .result-panel,.history-panel,.pool-display,.chart-wrap,.track,.number-card
) {
  border-color:var(--bdr)!important;
  background-color:var(--card)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.casino-polished :is(.game:hover,.game.active) {
  border-color:var(--isle-accent)!important;
  box-shadow:0 18px 48px color-mix(in srgb,var(--isle-accent) 16%,transparent)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body .leaderboard tbody tr,
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body .leaderboard-table tbody tr {
  background:color-mix(in srgb,var(--card) 88%,transparent)!important;
  border-color:var(--bdr)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body .leaderboard :is(.player-avatar,.rank-avatar) {
  background:color-mix(in srgb,var(--isle-accent) 14%,var(--card2))!important;
  border-color:var(--bdr2)!important;
}

/* Dino Shop and Marketplace use separate catalogue-card vocabularies. */
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-dino-shop-page :is(
  .promise>div,.card,.price-box,.history-row,.variant,.mutation-list,.panel,.empty
),
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-marketplace-page :is(
  .dino-card,.pick,.form-card,.history-row,.panel,.empty
) {
  background-color:var(--bg2)!important;
  border-color:var(--bdr)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-dino-shop-page :is(.card-top,.promise>div),
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-marketplace-page .dino-top {
  background:linear-gradient(135deg,color-mix(in srgb,var(--isle-secondary) 8%,transparent),color-mix(in srgb,var(--isle-accent) 7%,transparent))!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-marketplace-page :is(.tab.active,.tab:hover,.pick:has(input:checked),.dino-card:hover) {
  border-color:var(--isle-accent)!important;
  background-color:color-mix(in srgb,var(--isle-accent) 12%,var(--card))!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--isle-accent) 10%,transparent)!important;
}

/* Interactive map chrome; geographic imagery and marker category colours stay intact. */
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-map-page {
  --panel:color-mix(in srgb,var(--card) 94%,transparent);
  --panel-2:color-mix(in srgb,var(--card2) 92%,transparent);
  --line:color-mix(in srgb,var(--isle-accent) 28%,transparent);
  --cyan:var(--isle-accent);
  --cyan-2:color-mix(in srgb,var(--isle-accent) 55%,var(--bg));
  --green:var(--ok);
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-map-page :is(
  .status-card,.map-shell,.map-head,.map-layer-controls,.map-side,.panel-block,
  .toggle,.coord-box,.survival-note
) {
  border-color:color-mix(in srgb,var(--isle-accent) 28%,var(--bdr))!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-map-page :is(.map-head,.map-side,.map-layer-controls,.panel-block) {
  background:linear-gradient(180deg,color-mix(in srgb,var(--card2) 94%,transparent),color-mix(in srgb,var(--bg2) 96%,transparent))!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-map-page :is(.pill,.toggle,.survival-note) {
  color:var(--txt2)!important;
  background:color-mix(in srgb,var(--isle-accent) 8%,var(--card))!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-map-page :is(.toggle:has(input:checked),.btn) {
  color:#fff!important;
  border-color:var(--isle-accent)!important;
  background:linear-gradient(135deg,var(--isle-accent),color-mix(in srgb,var(--isle-accent) 56%,var(--bg)))!important;
}

/* Supporter tools: fixed cyan text and secondary actions now follow the theme too. */
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-patreon-page :is(
  .lead,.status-copy,.tier-overview>p,.tier-benefits,.skin-locked p,
  .skin-studio-intro,.skin-mode span,.option-note,.json-editor-note,
  .colour-row label,.alpha-value,.skin-note,.preset-empty
) {
  color:var(--txt2)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-patreon-page :is(
  .status-label,.option-field label,.skin-mode label,.colour-card h3,.skin-card h3
) {
  color:var(--txt)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-patreon-page :is(.eyebrow,.tier-price) {
  color:var(--isle-accent)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.isle-patreon-page :is(.skin-button:not(.primary),.support-actions a:not(:first-child)) {
  color:var(--txt)!important;
  background:color-mix(in srgb,var(--isle-accent) 10%,var(--card2))!important;
  border-color:color-mix(in srgb,var(--isle-accent) 30%,var(--bdr))!important;
}

/* Chat carried an Isle-only cyan overlay on top of otherwise themed variables. */
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.site-chat-page {
  --color-owner:var(--isle-accent);
  --accent-glow:color-mix(in srgb,var(--isle-accent) 28%,transparent);
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.site-chat-page :is(.page-header-badge,.chat-bar-icon,.msg-role-tag.owner,.nav-link.admin-link) {
  color:var(--isle-accent)!important;
  background:color-mix(in srgb,var(--isle-accent) 13%,transparent)!important;
  border-color:color-mix(in srgb,var(--isle-accent) 30%,transparent)!important;
}
html[data-game="isle"][data-isle-theme]:not([data-isle-theme="isle"]) body.site-chat-page .chat-messages::after {
  background:
    radial-gradient(ellipse at 20% 30%,color-mix(in srgb,var(--isle-accent) 7%,transparent),transparent 50%),
    radial-gradient(ellipse at 80% 70%,color-mix(in srgb,var(--isle-secondary) 4%,transparent),transparent 50%),
    radial-gradient(ellipse at 50% 90%,color-mix(in srgb,var(--isle-accent) 6%,transparent),transparent 40%)!important;
}

html[data-game="isle"][data-isle-theme] ::selection {
  background:color-mix(in srgb,var(--isle-accent,var(--red)) 38%,transparent);
  color:var(--txt,#fff);
}
