/* Jungle sanctuary. Load after bitmap-panels.css; every rule stays in Jungle. */
html[data-skin^="p"] body[data-theme="forest"] {
  --ink:#173f32; --muted:#4c6757; --accent:#9b7538; --accent-deep:#725221;
  --gold:#c39a53; --glass:#f6f1e5; --line:#aa916d;
  --light:#e7dfc8; --dark:#416a58;
  --p-panel:linear-gradient(145deg,rgba(251,248,237,.98),rgba(231,228,207,.97));
  --p-panel-flat:#f4f0e3; --p-inset:#e8e7d6; --p-deep:#183c31;
  --p-rule:#8c7958; --p-rule-2:#c9bea0; --p-line:#c3b89b;
  --p-ink:#193f32; --p-ink-2:#254d3c; --p-label:#705f3f; --p-muted:#526d5d;
  --p-on:#245944; --p-on-ink:#fff8e7; --p-cta:linear-gradient(165deg,#376f53,#1d513c);
  --p-cta-ink:#fff9e8; --p-clock:#f0ead8; --p-clock-ink:#244d3d;
  --p-run:#254f3c; --p-run-ink:#fff7df;
  --p-shadow:0 14px 36px -20px rgba(12,46,29,.45);
  --p-phone-bg:linear-gradient(rgba(227,232,213,.30),rgba(220,227,211,.58)),url('assets/jungle-sanctuary.png') center/cover fixed;
  --p-av-b:#244c3a; --p-av-b-ink:#f3e8cd; --p-av-w:#f8f4e8; --p-av-w-ink:#28513e;
  color:#193f32; background:#c7d5bd;
}

/* The scenery is a living, sunlit setting instead of a black vignette. */
body[data-theme="forest"] .world { background:#90a98a; box-shadow:none; }
body[data-theme="forest"] .world::before {
  background:url('assets/jungle-sanctuary.png') center/cover no-repeat;
  opacity:1; filter:saturate(.96) brightness(1.05) contrast(.98); transform:none;
}
body[data-theme="forest"] .world::after { content:none; opacity:0; }
body[data-theme="forest"] .ambient-drops,
body[data-theme="forest"] .knight-stickers,
body[data-theme="forest"] .board-drops { display:none!important; }
body[data-theme="forest"] .drop { display:none!important; animation:none!important; }
body[data-theme="forest"] .ambient-drops::before,
body[data-theme="forest"] .ambient-drops::after { content:none!important; display:none!important; }

/* Warm ivory joinery and restrained bronze rules make the interface its own material. */
html[data-skin^="p"] body[data-theme="forest"] :is(.topbar,.turn-panel,.gold-card,.history-panel,.dialog-inner,.player-row,.board-toolbar) {
  background:var(--p-panel)!important; color:var(--p-ink)!important;
  border:1px solid #9e8c67!important; border-radius:12px!important;
  box-shadow:inset 0 1px 0 #fffdf2,0 2px 0 #657d593d,var(--p-shadow)!important;
  backdrop-filter:blur(8px)!important;
}
html[data-skin^="p"] body[data-theme="forest"] .topbar {
  border-top:0!important; border-radius:0 0 16px 16px!important;
  background:linear-gradient(180deg,#f8f4e9f5,#e8e8d8f4)!important;
}
html[data-skin^="p"] body[data-theme="forest"] .topbar .brand,
html[data-skin^="p"] body[data-theme="forest"] .topbar .brand span,
html[data-skin^="p"] body[data-theme="forest"] :is(h1,h2,h3,#status,.player-row strong) {
  color:#183c30!important; font-family:"Palatino Linotype","Book Antiqua",Palatino,serif!important;
  letter-spacing:.005em; text-shadow:none!important;
}
html[data-skin^="p"] body[data-theme="forest"] .brand-sub { color:#6e7850!important; letter-spacing:.2em!important; }
html[data-skin^="p"] body[data-theme="forest"] .brand-mark {
  color:#f6efda!important; background:linear-gradient(145deg,#396d50,#1b4c3b)!important;
  border-color:#ad9a70!important; box-shadow:inset 0 1px 1px #ffffff59,0 2px 4px #23433135!important;
}
html[data-skin^="p"] body[data-theme="forest"] .beta-tag { color:#4d654d!important; border-color:#9caa8e!important; }
html[data-skin^="p"] body[data-theme="forest"] .section-heading h1 { color:#f9f5e7!important; text-shadow:0 2px 10px #113c2d!important; }
html[data-skin^="p"] body[data-theme="forest"] .section-heading .eyebrow { color:#f1e9c7!important; text-shadow:0 1px 6px #103524!important; }
html[data-skin^="p"] body[data-theme="forest"] .live-label {
  background:#f1ebd8!important; color:#28533d!important; border:1px solid #9d8861!important;
}
html[data-skin^="p"] body[data-theme="forest"] .eyebrow,
html[data-skin^="p"] body[data-theme="forest"] .turn-panel label,
html[data-skin^="p"] body[data-theme="forest"] .panel-heading span,
html[data-skin^="p"] body[data-theme="forest"] #turn-number {
  color:#725f3a!important; letter-spacing:.15em!important;
}
html[data-skin^="p"] body[data-theme="forest"] :is(.turn-panel p,.turn-panel small,.gold-card p,#status-detail,#board-hint,.empty-history,.player-row strong+span,dialog p,dialog li) { color:#506a59!important; }
html[data-skin^="p"] body[data-theme="forest"] :is(.turn-panel strong,.turn-panel b,dialog strong,.history-list,.history-list *) { color:#254938!important; }
html[data-skin^="p"] body[data-theme="forest"] .player-row:has(.chess-clock.running) {
  box-shadow:inset 0 1px 0 #fffdf2,0 0 0 2px #376d4f,0 8px 20px #133d2c35!important;
}
html[data-skin^="p"] body[data-theme="forest"] .chess-clock.low {
  background:#9b3d32!important; color:#fff7ed!important; border-color:#70251e!important;
}

html[data-skin^="p"] body[data-theme="forest"] :is(.quiet,#rules-top,#about-top) {
  color:#214a38!important; border-color:#8e9775!important; background:#f3f0e3!important;
  border-radius:7px!important; font-family:Georgia,serif!important;
}
html[data-skin^="p"] body[data-theme="forest"] :is(.quiet,#rules-top,#about-top):hover,
html[data-skin^="p"] body[data-theme="forest"] .theme-picker button:hover { background:#e4e9d6!important; }
html[data-skin^="p"] body[data-theme="forest"] .theme-picker { background:#e6e9d9!important; border-color:#a8ad8f!important; border-radius:8px!important; }
html[data-skin^="p"] body[data-theme="forest"] .theme-picker button { color:#315942!important; border-radius:5px!important; }
html[data-skin^="p"] body[data-theme="forest"] .theme-picker button.active { background:#25563f!important; color:#fff9e8!important; }
html[data-skin^="p"] body[data-theme="forest"] :is(.mode-switch,.setting-options button,.turn-panel input,.rewards-note) { border-radius:7px!important; }
html[data-skin^="p"] body[data-theme="forest"] :is(.mode-switch button.active,.setting-options button.active) { background:#295d43!important; color:#fff9e9!important; }
html[data-skin^="p"] body[data-theme="forest"] :is(.primary-button,#new-game,#online-search) {
  background:linear-gradient(160deg,#3b7654,#20533c)!important; color:#fff9e9!important;
  border:1px solid #194731!important; border-radius:8px!important; box-shadow:inset 0 1px 0 #ffffff55,0 4px 0 #173e30,0 10px 18px #173e3033!important;
  font-family:Georgia,serif!important; letter-spacing:.08em!important;
}
html[data-skin^="p"] body[data-theme="forest"] :is(.secondary-button,.local-play-option,.guest-button,.online-profile) { border-radius:7px!important; }
html[data-skin^="p"] body[data-theme="forest"] .icon-button { background:#e2e9d8!important; color:#24543e!important; border-color:#a4aa8e!important; border-radius:8px!important; }
html[data-skin^="p"] body[data-theme="forest"] .icon-button.on { background:#265c42!important; color:#fff9e8!important; }
html[data-skin^="p"] body[data-theme="forest"] .turn-dot { background:#f7f1df!important; border-color:#8b9a79!important; }
html[data-skin^="p"] body[data-theme="forest"] .turn-dot.black { background:#24513e!important; }
html[data-skin^="p"] body[data-theme="forest"] .history-labels { background:#dce4d0!important; color:#52664e!important; }
html[data-skin^="p"] body[data-theme="forest"] .history-row { border-color:#bec8ae!important; }
html[data-skin^="p"] body[data-theme="forest"] .history-row:last-child { background:#d9e5cf!important; }
html[data-skin^="p"] body[data-theme="forest"] .history-row .ply.rv-active { background:#2d6547!important; color:#fff9e8!important; }
html[data-skin^="p"] body[data-theme="forest"] .gold-card {
  background:radial-gradient(circle at 90% 8%,#fff6d6,transparent 47%),linear-gradient(145deg,#f8f1d6,#e4dab7)!important;
  border-color:#9e8048!important;
}
html[data-skin^="p"] body[data-theme="forest"] .gold-card h2 { color:#4b572e!important; }
html[data-skin^="p"] body[data-theme="forest"] .gold-emblem { color:#8e79448c!important; }
html[data-skin^="p"] body[data-theme="forest"] .fusion-diagram { border-color:#baa96e!important; }
html[data-skin^="p"] body[data-theme="forest"] .fusion-diagram :is(span,b,i) { color:#5a6747!important; }
html[data-skin^="p"] body[data-theme="forest"] :is(.text-button,.leaderboard-link,.lesson-link) { color:#28563d!important; }
html[data-skin^="p"] body[data-theme="forest"] footer { color:#f3eedc!important; text-shadow:0 1px 4px #17402d; border-color:#d4dbb990!important; }
html[data-skin^="p"] body[data-theme="forest"] footer :is(button,a) { color:#fff5d6!important; }
html[data-skin^="p"] body[data-theme="forest"] dialog::backdrop { background:#14352791; }
html[data-skin^="p"] body[data-theme="forest"] .toast { background:#f4f0df!important; color:#254d3b!important; border:1px solid #a4926c!important; }

/* Sculpted dark jade and walnut frame. Keep layout dimensions and board interaction CSS. */
body[data-theme="forest"] .board-wrap,
body.gold-world[data-theme="forest"] .board-wrap {
  background:linear-gradient(145deg,#b9a67b 0%,#634c32 8%,#322e24 23%,#213a31 52%,#403a29 79%,#a18b5b 100%)!important;
  border:1px solid #bcab80!important;
  box-shadow:0 2px 0 #d7c7a0,0 6px 0 #55452e,0 13px 0 #2d3026,0 22px 0 #182d25,0 31px 32px #173b2d72,inset 0 2px 1px #f5e5b388!important;
}
body[data-theme="forest"] .board-wrap::before { border-color:#ae9770; box-shadow:inset 0 5px 9px #14251bd1,inset 0 -2px 1px #e5d0a088; }
body[data-theme="forest"] .board-wrap::after { background:radial-gradient(ellipse at 25% 0%,#f3e4ba2d,transparent 45%); }
body[data-theme="forest"] .board { border-color:#1d362b; box-shadow:0 0 0 1px #b7a47d,0 2px 2px #0f251d80; }
body[data-theme="forest"] .board::after { box-shadow:inset 0 7px 10px #102c2055,inset 6px 0 7px #14332632,inset 0 -2px 1px #f4edc14d; }
body[data-theme="forest"] .sq,
body.gold-world[data-theme="forest"] .sq {
  background:linear-gradient(132deg,#ffffff3c,transparent 55%),repeating-linear-gradient(24deg,transparent 0 13px,#af9a6920 14px,transparent 16px 29px),#e7dfc8;
  box-shadow:inset 0 1px 1px #fffbed8a,inset 0 -1px 0 #57482f3d;
}
body[data-theme="forest"] .sq.dark,
body.gold-world[data-theme="forest"] .sq.dark {
  background:linear-gradient(130deg,#d5ead626,transparent 58%),repeating-linear-gradient(152deg,transparent 0 11px,#b9d6b81f 12px,transparent 14px 23px),#416a58;
  box-shadow:inset 0 2px 3px #0c2e2063,inset 0 -1px 0 #dae9d344;
}
body[data-theme="forest"] .sq.last,
body.gold-world[data-theme="forest"] .sq.last { background:#ead28c!important; box-shadow:inset 0 0 0 3px #a17b31!important; }
body[data-theme="forest"] .sq.dark.last,
body.gold-world[data-theme="forest"] .sq.dark.last { background:#729073!important; box-shadow:inset 0 0 0 3px #f2d87e!important; }
body[data-theme="forest"] #board .sq.selected { background:#8fcab0!important; box-shadow:inset 0 0 0 4px #184f3b!important; }
body[data-theme="forest"] #board .sq.drop-target { background:#85c5a7!important; box-shadow:inset 0 0 0 4px #f7e4a6!important; }
body[data-theme="forest"] #board .sq.checked { background:#de8978!important; }
body[data-theme="forest"] .sq.legal::after { background:#174d3b99; border-color:#fff5d5; }
body[data-theme="forest"] .sq.capture::after { background:transparent; border-color:#c77642; }
body[data-theme="forest"] .coord { color:#2b5844; }
body[data-theme="forest"] .dark .coord { color:#f4e8c9; }
body[data-theme="forest"] #board .sq.premove-source { box-shadow:inset 0 0 0 4px #744b9c,inset 0 0 15px #744b9c80!important; }
body[data-theme="forest"] #board .sq.premove-target { box-shadow:inset 0 0 0 4px #eebc58,inset 0 0 16px #fff2ab!important; }
body[data-theme="forest"] .premove-badge { background:#674388; color:#fff; }
body[data-theme="forest"] .premove-clear { background:#674388; color:#fff; border-color:#f9e7c3; }
html[data-skin^="p"] body[data-theme="forest"] #rv-pos { color:#254938!important; }

/* Mobile game focus retains its established board geometry and thumb controls. */
@media (orientation:portrait) {
  html[data-skin^="p"] body[data-theme="forest"].game-focus {
    --pd-ink:#1e4434; --pd-muted:#526b58; --pd-gold:#dfb967; --pd-gold-ink:#254732;
    background:linear-gradient(#e7ebd9e8,#d9e4d3ee),url('assets/jungle-sanctuary.png') center/cover fixed!important;
  }
  html[data-skin^="p"] body[data-theme="forest"].game-focus .player-row {
    background:#f5f0df!important; border-color:#9baa8a!important;
    box-shadow:0 2px 0 #3154423d!important;
  }
  html[data-skin^="p"] body[data-theme="forest"].game-focus .player-row strong { color:#214835!important; }
  html[data-skin^="p"] body[data-theme="forest"].game-focus .player-row strong+span { color:#546b59!important; }
  html[data-skin^="p"] body[data-theme="forest"].game-focus .player-row .captured { color:#44604b!important; }
  html[data-skin^="p"] body[data-theme="forest"].game-focus .chess-clock { background:#e5eadb!important; color:#25543f!important; border-color:#97a888!important; }
  html[data-skin^="p"] body[data-theme="forest"].game-focus .chess-clock.running { background:#245740!important; color:#fff8e8!important; border-color:#1a4935!important; }
  html[data-skin^="p"] body[data-theme="forest"].game-focus .chess-clock.low { background:#a7473a!important; color:#fff!important; }
  html[data-skin^="p"] body[data-theme="forest"].game-focus .board-toolbar .icon-button {
    background:#e7ecdb!important; color:#24543e!important; border-color:#9bad90!important;
  }
  html[data-skin^="p"] body[data-theme="forest"].game-focus .board-toolbar .icon-button.on { background:#295c43!important; color:#fff9e7!important; }
  html[data-skin^="p"] body[data-theme="forest"].game-focus .board-toolbar .premove-clear:not(.hidden) { background:#674388!important; color:#fff!important; border-color:#ead8ad!important; }
  html[data-skin^="p"] body[data-theme="forest"].game-focus .status-panel { background:#f3efdf!important; border:1px solid #97a682!important; }
  html[data-skin^="p"] body[data-theme="forest"].game-focus .status-panel #status { color:#1f4535!important; }
  html[data-skin^="p"] body[data-theme="forest"].game-focus .board-wrap {
    background:linear-gradient(145deg,#b7a77d,#28493a 50%,#98845a)!important;
    box-shadow:0 -2px 0 #ad925d,0 2px 0 #ad925d,0 6px 24px #24503e5e!important;
  }
}

/* #883: shorten the desktop sidebar without shrinking the playing surface.
   Keep natural document scrolling for expanded online controls and browser zoom. */
@media (min-width:801px) and (orientation:landscape) {
  body[data-theme="forest"] .sidebar { gap:10px; }
  body[data-theme="forest"] .status-panel { padding:14px 18px; }
  body[data-theme="forest"] .turn-status { margin-top:10px; }
  body[data-theme="forest"] .setup-panel { padding:14px 18px; gap:9px; }
  body[data-theme="forest"] .setup-panel .lesson-link { margin-top:0; padding-top:5px; }
  body[data-theme="forest"] .history-panel .panel-heading { padding:12px 18px; }
  body[data-theme="forest"] .history-list { min-height:48px; max-height:120px; }
  body[data-theme="forest"] .empty-history { padding:12px 8px; }
  body[data-theme="forest"] .review-nav { padding:8px 12px; }
  body[data-theme="forest"] .gold-card { padding:14px 18px; }
  body[data-theme="forest"] .gold-card h2 { font-size:23px; margin:9px 0; max-width:none; }
  body[data-theme="forest"] .gold-card h2 br { display:none; }
  body[data-theme="forest"] .gold-card p { max-width:none; line-height:1.45; }
  body[data-theme="forest"] .gold-card .eyebrow { padding-right:40px; font-size:11px; letter-spacing:.08em; }
  body[data-theme="forest"] .gold-emblem { width:50px; height:56px; right:6px; top:6px; opacity:.75; }
  body[data-theme="forest"] .fusion-diagram { padding:6px 0; margin-top:4px; }
  body[data-theme="forest"] .fusion-diagram>span { font-size:25px; }
  body[data-theme="forest"] .fusion-diagram i { font-size:23px; }
  body[data-theme="forest"] .gold-card .text-button { padding-top:8px; }
}
@media (min-width:1024px) and (orientation:landscape) {
  body[data-theme="forest"] .play-area>.gold-card { margin-top:14px; }
}
@media (min-width:1200px) and (orientation:landscape) {
  body[data-theme="forest"] .play-area>.gold-card {
    display:grid; grid-template-columns:minmax(0,1fr) 174px; column-gap:14px;
  }
  body[data-theme="forest"] .play-area>.gold-card .eyebrow,
  body[data-theme="forest"] .play-area>.gold-card h2,
  body[data-theme="forest"] .play-area>.gold-card p { grid-column:1; }
  body[data-theme="forest"] .play-area>.gold-card .gold-emblem { right:47px; }
  body[data-theme="forest"] .play-area>.gold-card .fusion-diagram {
    grid-column:2; grid-row:2/4; align-self:end; gap:6px; padding-bottom:10px;
  }
  body[data-theme="forest"] .play-area>.gold-card .text-button { grid-column:1/-1; }
}
