/* Golden Knight Chess — "Emerald Night Jungle" (23 Sep 2026: rebuild the Jungle theme from 3/10 to 10/10).
   Direction: a dark, cinematic rainforest at dusk. Deep emerald glass panels with gold hairlines, a jade + ivory board
   in a lacquered, gold-trimmed frame, drifting fireflies, and gold as the one accent colour. Loaded last; Marble untouched. */

body[data-theme="forest"]{
  --ink:#f3ecd6;--muted:#a9c4b4;--accent:#e0b252;--accent-deep:#b98a2c;--gold:#e8bf5c;
  --glass:rgba(12,40,31,.92);--line:rgba(224,188,108,.30);
  --light:#ece3c7;--dark:#35684f;
  --panel:linear-gradient(160deg,rgba(20,60,46,.94),rgba(7,30,23,.96));
  --panel-edge:rgba(224,188,108,.30);
  color:var(--ink);background:#03100b;
}

/* ---------- Atmosphere: the jungle becomes a moody backdrop, not a cartoon ---------- */
body[data-theme="forest"] .world{background:#03100b}
body[data-theme="forest"] .world:before{opacity:1;filter:brightness(.36) saturate(.95) contrast(1.12) blur(1.2px);transform:scale(1.03)}
body[data-theme="forest"] .world:after{filter:sepia(.55) saturate(1.35) brightness(.5) hue-rotate(-8deg) blur(1px);transform:scale(1.03)}
body[data-theme="forest"] .ambient-drops{opacity:1;background:
  radial-gradient(ellipse 70% 60% at 50% 42%,transparent 35%,rgba(2,12,8,.55) 78%,rgba(1,8,5,.82) 100%),
  radial-gradient(ellipse 60% 40% at 50% 100%,rgba(38,120,84,.18),transparent 70%)}
/* Fireflies instead of bubbles */
body[data-theme="forest"] .drop{width:7px!important;height:7px!important;border:0;border-radius:50%;
  background:radial-gradient(circle,#fff9c9 0,#e9f58a 35%,rgba(190,230,90,0) 70%);
  box-shadow:0 0 10px 3px rgba(214,240,120,.55),0 0 26px 8px rgba(214,240,120,.18);
  animation:gk-firefly var(--speed,11s) ease-in-out var(--delay,0s) infinite}
@keyframes gk-firefly{
  0%{transform:translate(0,0) scale(.8);opacity:0}
  15%{opacity:.95}
  45%{transform:translate(38px,-46px) scale(1);opacity:.55}
  60%{opacity:1}
  85%{transform:translate(-22px,-96px) scale(.9);opacity:.7}
  100%{transform:translate(-40px,-120px) scale(.7);opacity:0}}
@media(prefers-reduced-motion:reduce){body[data-theme="forest"] .drop{animation:none;opacity:.5}}

/* ---------- Header ---------- */
body[data-theme="forest"] .topbar{background:linear-gradient(180deg,rgba(8,30,23,.96),rgba(6,24,18,.96));border:1px solid var(--panel-edge);border-top:0;box-shadow:0 10px 30px rgba(0,0,0,.45),inset 0 -1px 0 rgba(224,188,108,.18)}
body[data-theme="forest"] .brand{color:#f6efd8;text-shadow:none}
body[data-theme="forest"] .brand-sub{color:#d9b866}
body[data-theme="forest"] .brand-mark{color:#3b2606;background:linear-gradient(150deg,#fbe7a6,#e2b24e 55%,#b9832a);border:1px solid #fff0bf;box-shadow:0 6px 18px rgba(0,0,0,.45),inset 0 1px 0 #fff6d6}
body[data-theme="forest"] .theme-picker,body[data-theme="forest"] .quiet{background:rgba(3,16,11,.6);border-color:var(--panel-edge);color:#e9e1c6}
body[data-theme="forest"] .quiet:hover{background:rgba(26,70,54,.8)}
body[data-theme="forest"] [data-theme-choice]{color:#b9cdbf;background:transparent}
body[data-theme="forest"] [data-theme-choice].active,body[data-theme="forest"] [data-theme-choice="forest"][aria-pressed="true"]{color:#2c1c04;background:linear-gradient(160deg,#f6dc8f,#dcab45);box-shadow:0 2px 8px rgba(0,0,0,.35)}
body[data-theme="forest"] h1{color:#f6efd8;text-shadow:0 2px 14px rgba(0,0,0,.6)}
body[data-theme="forest"] .live-label{background:rgba(6,26,19,.85);color:#e8c46a;border:1px solid var(--panel-edge)}

/* ---------- Player rows + clocks ---------- */
body[data-theme="forest"] .player-row{background:rgba(6,26,19,.78);border:1px solid rgba(224,188,108,.18);color:var(--ink);backdrop-filter:blur(6px)}
body[data-theme="forest"] .player-row strong{color:#f6efd8}
body[data-theme="forest"] .player-row>div>span,body[data-theme="forest"] .player-side{color:var(--muted)}
body[data-theme="forest"] .captured{color:#d9b866}
body[data-theme="forest"] .avatar.white{background:linear-gradient(150deg,#fbf4dd,#dccda0);color:#2d3b2f;border:1px solid #fff5d2}
body[data-theme="forest"] .avatar.black{background:linear-gradient(150deg,#1e4a39,#0c261d);color:#e8c46a;border:1px solid var(--panel-edge)}
body[data-theme="forest"] .chess-clock{background:#041610;color:#efe6c8;border:1px solid rgba(224,188,108,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}
body[data-theme="forest"] .chess-clock.running{background:linear-gradient(160deg,#f6dc8f,#d9a741);color:#2a1a03;border-color:#fff0bf;box-shadow:0 0 18px rgba(232,191,92,.45)}
body[data-theme="forest"] .chess-clock.low{background:linear-gradient(160deg,#c9503f,#8e2b21);color:#fff;border-color:#ffb3a6;box-shadow:0 0 18px rgba(201,80,63,.5)}

/* ---------- The board: jade + ivory in a lacquered, gold-trimmed frame ---------- */
body[data-theme="forest"] .board-wrap{background:linear-gradient(145deg,#4a3419 0,#23180c 18%,#150e07 50%,#2a1d0e 82%,#5a4020 100%);border:1px solid #caa458;
  box-shadow:0 2px 0 #e8c979,0 7px 0 #2a1c0c,0 14px 0 #140d05,0 26px 50px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,236,180,.35)}
body[data-theme="forest"] .board-wrap:before{border:1px solid #d7b366;box-shadow:inset 0 0 0 3px #1a1108,inset 0 6px 10px rgba(0,0,0,.6)}
body[data-theme="forest"] .board{border:2px solid #0f0a05;box-shadow:0 0 0 1px #caa458}
body[data-theme="forest"] .board:after{box-shadow:inset 0 10px 14px rgba(0,0,0,.28),inset 0 -2px 1px rgba(255,240,200,.18)}
body[data-theme="forest"] .sq{background:linear-gradient(145deg,rgba(255,255,255,.35),transparent 60%),#ece3c7;box-shadow:inset 0 1px 1px rgba(255,255,255,.35),inset 0 -1px 0 rgba(60,44,10,.12)}
body[data-theme="forest"] .sq.dark{background:linear-gradient(145deg,rgba(160,230,190,.18),transparent 62%),#35684f;box-shadow:inset 0 2px 3px rgba(0,0,0,.18),inset 0 -1px 0 rgba(170,240,200,.12)}
body[data-theme="forest"] .sq.last{background:linear-gradient(145deg,rgba(255,255,255,.3),transparent 60%),#f1e2b0;box-shadow:inset 0 0 0 3px #e8bf5c,inset 0 0 18px rgba(246,210,110,.45)}
body[data-theme="forest"] .sq.dark.last{background:linear-gradient(145deg,rgba(255,230,160,.16),transparent 62%),#4f7a4f;box-shadow:inset 0 0 0 3px #f2cd6a,inset 0 0 18px rgba(246,210,110,.4)}
body[data-theme="forest"] .sq.selected{background:#8fd3b4!important;box-shadow:inset 0 0 0 3px #f2cd6a!important}
body[data-theme="forest"] .sq.legal:after{background:rgba(10,52,38,.55);border-color:rgba(255,246,214,.75)}
body[data-theme="forest"] .sq.capture:after{background:transparent;border-color:rgba(232,191,92,.9)}
body[data-theme="forest"] .sq.checked{background:#d9705e!important}
body[data-theme="forest"] .coord{color:#35684f;font-weight:800}
body[data-theme="forest"] .dark .coord{color:#ece3c7}
body[data-theme="forest"] .board-toolbar{background:rgba(6,26,19,.78);border:1px solid rgba(224,188,108,.18);border-radius:12px}
body[data-theme="forest"] .board-toolbar>span{color:#d4e2d6}
body[data-theme="forest"] .icon-button{background:#0b2a20;color:#efe6c8;border:1px solid rgba(224,188,108,.28);box-shadow:none}
body[data-theme="forest"] .icon-button.on{background:linear-gradient(160deg,#f6dc8f,#d9a741);color:#2a1a03;border-color:#fff0bf}
body[data-theme="forest"] .icon-button:disabled{opacity:.4}
body[data-theme="forest"] .music-indicator{color:#e8c46a}

/* ---------- Side panels: deep emerald glass, gold hairlines ---------- */
body[data-theme="forest"] .turn-panel,body[data-theme="forest"] .history-panel{background:var(--panel);border:1px solid var(--panel-edge);color:var(--ink);box-shadow:0 18px 40px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,236,180,.10);backdrop-filter:blur(10px)}
body[data-theme="forest"] .eyebrow,body[data-theme="forest"] .turn-panel .eyebrow{color:#e8c46a}
body[data-theme="forest"] .turn-status h2{color:#f6efd8}
body[data-theme="forest"] .turn-panel>p,body[data-theme="forest"] .panel-heading>span:last-child{color:var(--muted)}
body[data-theme="forest"] .turn-dot{background:#f6efd8;box-shadow:0 0 0 3px rgba(246,239,216,.18)}
body[data-theme="forest"] .turn-dot.black{background:#0b2a20;box-shadow:0 0 0 2px #e8c46a}
body[data-theme="forest"] .turn-dot.gold{background:#e8bf5c;box-shadow:0 0 12px #e8bf5c}
body[data-theme="forest"] .game-setting>label{color:#bcd2c3}
body[data-theme="forest"] .game-setting>small{color:var(--muted)}
body[data-theme="forest"] .mode-switch{background:rgba(2,14,10,.65);border:1px solid rgba(224,188,108,.18)}
body[data-theme="forest"] .mode-switch>button{color:#b9cdbf}
body[data-theme="forest"] .mode-switch>button.active{background:#2d7258;color:#fff9e6;box-shadow:inset 0 -2px 0 #e8bf5c,0 2px 8px rgba(0,0,0,.35)}
body[data-theme="forest"] .setting-options>button{background:rgba(2,14,10,.55);color:#c9dacd;border:1px solid rgba(169,196,180,.22);box-shadow:none}
body[data-theme="forest"] .setting-options>button:hover:not(:disabled){background:rgba(45,114,88,.45)}
body[data-theme="forest"] .setting-options>button.active{background:#2d7258;color:#fff9e6;border-color:#e8bf5c;box-shadow:inset 0 -2px 0 #e8bf5c}
body[data-theme="forest"] .primary-button{background:linear-gradient(160deg,#f6dc8f,#dcab45 55%,#c38f2c);color:#2a1a03;border:1px solid #fff0bf;border-bottom:3px solid #8e6418;box-shadow:0 8px 18px rgba(0,0,0,.35)}
body[data-theme="forest"] .primary-button:hover:not(:disabled){box-shadow:0 10px 24px rgba(232,191,92,.35)}
body[data-theme="forest"] .secondary-button{background:rgba(2,14,10,.55);color:#efe6c8;border:1px solid rgba(224,188,108,.35)}
body[data-theme="forest"] .text-button{color:#e8c46a}

/* Online + review + resign in the Jungle palette (replaces the cream-panel overrides in polish.css) */
body[data-theme="forest"] .status-panel #online-resign{background:#0b2a20;color:#f6efd8;border-color:rgba(224,188,108,.35)}
body[data-theme="forest"] .status-panel #online-leave,body[data-theme="forest"] .leaderboard-link{color:#e8c46a;border-color:rgba(232,196,106,.4)}
body[data-theme="forest"] .guest-name-field>span{color:#e8c46a}
body[data-theme="forest"] .guest-name-field input{background:rgba(2,14,10,.7);border-color:rgba(224,188,108,.3);color:#f6efd8}
body[data-theme="forest"] .connection-dot{color:#d4e2d6}
body[data-theme="forest"] .review-nav{border-top-color:rgba(224,188,108,.16)}
body[data-theme="forest"] .review-nav button{background:#0b2a20;color:#f6efd8;border-color:rgba(224,188,108,.3)}
body[data-theme="forest"] .review-nav button:hover:not(:disabled){background:#1d5543}
body[data-theme="forest"] #rv-pos{color:#e9e1c6}

/* ---------- Move history ---------- */
body[data-theme="forest"] .history-labels{background:rgba(2,14,10,.55);color:#bcd2c3}
body[data-theme="forest"] .history-row{color:#e9e1c6;border-color:rgba(224,188,108,.08)}
body[data-theme="forest"] .history-row>span:first-child{color:#7fa18f}
body[data-theme="forest"] .history-row:last-child{background:rgba(45,114,88,.35)}
body[data-theme="forest"] .history-row .ply:hover{background:rgba(255,255,255,.08)}
body[data-theme="forest"] .history-row .ply.rv-active{background:#e8bf5c;color:#2a1a03}
body[data-theme="forest"] .empty-history,body[data-theme="forest"] .empty-history>span{color:var(--muted)}

/* ---------- Golden knight card ---------- */
body[data-theme="forest"] .gold-card{background:radial-gradient(ellipse at 88% 10%,rgba(232,191,92,.22),transparent 60%),linear-gradient(150deg,#153a2d,#08201a);border:1px solid rgba(232,191,92,.45);box-shadow:0 18px 40px rgba(0,0,0,.45)}
body[data-theme="forest"] .gold-card .eyebrow{color:#e8c46a}
body[data-theme="forest"] .gold-card h2{color:#f6dc8f}
body[data-theme="forest"] .gold-card p{color:#c9d8cc}
body[data-theme="forest"] .fusion-diagram{border-bottom-color:rgba(232,191,92,.25)}
body[data-theme="forest"] .fusion-diagram>span,body[data-theme="forest"] .fusion-diagram b{color:#a9c4b4}
body[data-theme="forest"] .fusion-diagram .gold-mini,body[data-theme="forest"] .fusion-diagram i{color:#f0c95e}
body.gold-world[data-theme="forest"] .gold-card{box-shadow:0 0 30px rgba(232,191,92,.35)}

/* ---------- Footer, dialogs, toast ---------- */
body[data-theme="forest"] footer{color:#a9c4b4;border-color:rgba(224,188,108,.18)}
body[data-theme="forest"] footer>button{color:#e8c46a}
body[data-theme="forest"] dialog{background:linear-gradient(160deg,#153a2d,#07201a);color:#f3ecd6;border:1px solid rgba(232,191,92,.45);box-shadow:0 30px 80px rgba(0,0,0,.6)}
body[data-theme="forest"] dialog::backdrop{background:rgba(1,8,5,.72);backdrop-filter:blur(3px)}
body[data-theme="forest"] dialog h2{color:#f6efd8}
body[data-theme="forest"] dialog p,body[data-theme="forest"] .dialog-inner li,body[data-theme="forest"] .dialog-inner .rules-note,body[data-theme="forest"] #result-detail{color:#c9d8cc}
body[data-theme="forest"] .dialog-inner strong{color:#f0c95e}
body[data-theme="forest"] .close-dialog{background:#0b2a20;color:#f6efd8;border:1px solid rgba(224,188,108,.3)}
body[data-theme="forest"] #promotion-options>button{background:#0b2a20;border:1px solid rgba(224,188,108,.35)}
body[data-theme="forest"] .toast{background:#0b2a20;color:#f6efd8;border:1px solid rgba(232,191,92,.45)}

/* ---------- Gold world (after fusion) in the jungle: warm, golden dusk ---------- */
body.gold-world[data-theme="forest"] .sq{background:linear-gradient(145deg,rgba(255,255,255,.35),transparent 60%),#f3e6bf}
body.gold-world[data-theme="forest"] .sq.dark{background:linear-gradient(145deg,rgba(255,230,160,.2),transparent 62%),#8a6a2c}
body.gold-world[data-theme="forest"] .board-wrap{border-color:#f0cf7a;box-shadow:0 2px 0 #fbe3a0,0 7px 0 #3a280f,0 14px 0 #1c1307,0 26px 55px rgba(232,191,92,.25)}

/* The gilded ornament overlay suits Marble; in the night jungle the fireflies carry the atmosphere. */
body[data-theme="forest"] .ambient-drops:before{opacity:0}

/* Always-visible firefly glows so the night-jungle mood reads on the first frame */
body[data-theme="forest"] .world{box-shadow:none}
body[data-theme="forest"]:not(.gold-world) .ambient-drops:after{content:"";position:fixed;inset:0;pointer-events:none;opacity:.55;
  background:
    radial-gradient(circle at 8% 22%,rgba(233,245,138,.55) 0,rgba(233,245,138,0) 5px),
    radial-gradient(circle at 14% 68%,rgba(233,245,138,.45) 0,rgba(233,245,138,0) 4px),
    radial-gradient(circle at 91% 30%,rgba(233,245,138,.5) 0,rgba(233,245,138,0) 5px),
    radial-gradient(circle at 86% 78%,rgba(233,245,138,.4) 0,rgba(233,245,138,0) 4px),
    radial-gradient(circle at 5% 88%,rgba(233,245,138,.35) 0,rgba(233,245,138,0) 4px);
  filter:drop-shadow(0 0 6px rgba(214,240,120,.6))}
