/* Shared roles keep the night palette consistent across the whole flow. */
:root{
  --surface:#fff;--chapter-edge:#e6ddef;--chapter-piece:#9478b3;
  --progress-empty:#eee9f3;--progress-fill:#ad94cb;--current-ring:#e0d4ef;--toggle-off:#ddd5e6;
  --board-light:#faf9fb;--board-dark:#d1cbd5;--board-edge:#817588;
  --board-piece:#675e70;--board-player:#7953b7;--board-goal:#f4e2ad;--board-goal-piece:#675e70;--board-hatch:#fbf9fd90;
  --button-face:#7958cf;--button-base:#6646b1;--button-ink:#fff;--button-hover:#7250c6;
}
.primary{background:var(--button-face);color:var(--button-ink);box-shadow:0 3px 0 var(--button-base)}
.primary:hover{background:var(--button-hover)}
.primary:active:not(:disabled){box-shadow:0 1px 0 var(--button-base)}
.adventure-dock .primary{box-shadow:0 4px 0 var(--button-base)}
.tile{box-shadow:0 0 0 1px var(--board-edge),inset 0 0 0 1px var(--board-edge)}
.tile.light{background:var(--board-light)}.tile.dark{background:var(--board-dark)}
.tile .piece{color:var(--board-piece)}.tile[data-piece="P"] .piece{color:var(--board-player)}
.tile.goal,.tile.goal:hover{background:var(--board-goal)}
.tile.goal .piece{color:var(--board-goal-piece)}.tile.goal[data-piece="P"] .piece{color:var(--board-player)}
.tile.blocked{background-image:repeating-linear-gradient(45deg,transparent 0 6px,var(--board-hatch) 6px 8px)}
.tile.selected{box-shadow:0 0 0 1px var(--board-edge),inset 0 0 0 3px var(--purple)}
.home-indicator:after{background:var(--ink)}
[data-theme="dark"]{
  --canvas:#1b1922;--surface:#25222e;--ink:#f0edf5;--muted:#afa6bd;
  --purple:#ba9af5;--purple-dark:#c6aaf8;--lilac:#373044;--line:#3a3445;
  --gold:#dfbc71;--gold-light:#756035;--green:#abcab5;
  --chapter-edge:#44394f;--chapter-piece:#ba9bd9;--progress-empty:#3e354c;--progress-fill:#ae8dd3;--current-ring:#5a4776;--toggle-off:#554b63;
  --board-light:#494253;--board-dark:#302b39;--board-edge:#72657f;
  --board-piece:#eee8f5;--board-player:#c6a1ff;--board-goal:#baa164;--board-goal-piece:#352b43;--board-hatch:#82758f80;
  --button-face:#b095eb;--button-base:#775baf;--button-ink:#231a35;--button-hover:#bfa6f1;
  background:#121117;color:var(--ink)
}
[data-theme="dark"] .device{border-color:#35303e;box-shadow:0 0 0 1px #4a4156,0 24px 64px -40px #000}
[data-theme="dark"] .dynamic-island{background:#111015}
[data-theme="dark"] .concept-features{color:var(--muted)}
[data-theme="dark"] .rail-button.active,[data-theme="dark"] .rail-button:hover{background:var(--lilac);color:var(--purple)}
[data-theme="dark"] .rail-button span{color:var(--muted)}
[data-theme="dark"] .mini-checker{background:conic-gradient(#544761 25%,transparent 0 50%,#544761 0 75%,transparent 0);background-size:14px 14px}
[data-theme="dark"] .secondary,[data-theme="dark"] .icon-button{background:var(--surface);border-color:var(--line);color:var(--purple)}
[data-theme="dark"] .secondary:hover:not(:disabled){background:#30283d}
[data-theme="dark"] .icon-button.bare{background:transparent;color:var(--ink)}
[data-theme="dark"] .mode-unlimited{color:#aecdb9}
[data-theme="dark"] .mode-timed{color:#ddbc81}
[data-theme="dark"] .mode-moves{color:#c4acd9}
[data-theme="dark"] .adventure-screen{--map-road:#3c3348;--map-road-light:#2c2735;--map-tile:#312a3c;--map-tile-edge:#201b28;--map-locked-ink:#b2a3c2;--map-done:#2d4139;--map-done-ink:#b6d9c3;--map-star:#d8b97d}
[data-theme="dark"] .road-edge{stroke:#3c3348}
[data-theme="dark"] .level-node{border-color:#494050;box-shadow:0 4px 0 var(--map-tile-edge),inset 0 1px 0 #53445d}
[data-theme="dark"] .level-node:hover{background:#443550}
[data-theme="dark"] .is-locked .level-node{background:#2b2634;color:#ac9cbb;border-color:#39313f;box-shadow:0 3px 0 #15121d,inset 0 1px 0 #3b3345}
[data-theme="dark"] .node-state{color:#b3a3c3}
[data-theme="dark"] .is-locked .node-mode,[data-theme="dark"] .node-mode{color:#b4a4c4}
[data-theme="dark"] .is-complete .level-node{background:var(--map-done);color:var(--map-done-ink);border-color:#435c4d;box-shadow:0 4px 0 #192920,inset 0 1px 0 #4a6153}
[data-theme="dark"] .is-complete .node-mode{color:#abcbb7}
[data-theme="dark"] .node-earned-stars .icon{fill:#7a6339}
[data-theme="dark"] .is-current .level-node{background:#9070d0;color:#fff;border-color:#ad8ee6;box-shadow:0 5px 0 #533879,inset 0 2px 0 #b597eb}
[data-theme="dark"] .is-current .level-node:hover{background:#9b7bda;box-shadow:0 5px 0 #533879,inset 0 2px 0 #bfa2f1}
[data-theme="dark"] .is-current .level-node:active{box-shadow:0 2px 0 #533879,inset 0 1px 0 #b597eb}
[data-theme="dark"] .is-current .node-mode{color:#c6abea}
[data-theme="dark"] .adventure-dock{border-color:var(--line)}
[data-theme="dark"] .nav-item{color:#aca1ba}
[data-theme="dark"] .nav-item.active{color:var(--purple)}
[data-theme="dark"] .nav-item.active:before{background:#9b7acd}
[data-theme="dark"] .pause-button{background:#332c3f;color:var(--ink)}
[data-theme="dark"] .tile:hover:not(:disabled),[data-theme="dark"] .tile.selected{background:#574463}
[data-theme="dark"] .tile.goal:hover{background:var(--board-goal)}
[data-theme="dark"] .tile.goal[data-piece="P"] .piece{color:#4d277e}
[data-theme="dark"] .hint-source:after{background:#9970d2}
[data-theme="dark"] .goal-swatch{color:#f0d18b}
[data-theme="dark"] .help-link,[data-theme="dark"] .counter-badge{color:#c3abd9}
[data-theme="dark"] .warning{color:#e6ac83}
[data-theme="dark"] .sheet{background:var(--surface);border-color:var(--line);box-shadow:0 16px 60px #0005}
[data-theme="dark"] .sheet::backdrop{background:#100c1899}
[data-theme="dark"] .sheet-icon{background:#393047;color:#c0a4df}
[data-theme="dark"] .sheet-icon.muted{background:#37313f;color:var(--muted)}
[data-theme="dark"] .sheet-icon.gold{background:#453a28;color:#dec18a}
[data-theme="dark"] .instruction-list .piece{color:var(--board-piece)}
[data-theme="dark"] .brief-objective{color:#aa97bf}
[data-theme="dark"] .toast{background:#e5daf1;color:#292030}
[data-theme="dark"] .win-emblem{background:#332a40}
[data-theme="dark"] .win-ring{border-color:#4c3c60}
[data-theme="dark"] .result-stars .icon{color:#e1bd70;fill:#7a6134}
[data-theme="dark"] .loss-emblem{background:#332c3e;color:#baa4d2}
[data-theme="dark"] .streak-celebration{color:#e0b46b}
[data-theme="dark"] .streak-celebration>.icon{fill:#876637}
[data-theme="dark"] .streak-halo{background:#493b27}
[data-theme="dark"] .streak-number,[data-theme="dark"] .streak-milestone{color:#e3bc79}
[data-theme="dark"] .streak-day>div{background:#38313f;color:#211926}
[data-theme="dark"] .streak-day.checked>div{background:#d5b276}
[data-theme="dark"] .league-symbol,[data-theme="dark"] .avatar{background:#332b40;color:#c3a9df}
[data-theme="dark"] .league-row{border-color:var(--line)}
[data-theme="dark"] .league-row.you{background:#342940;border-color:#514060;color:#d2baf0}
[data-theme="dark"] .league-divider{color:#a7c2af}
[data-theme="dark"] .league-divider:before,[data-theme="dark"] .league-divider:after{border-color:#455449}
[data-theme="dark"] .streak-panel{background:#332c24;border-color:#51432e}
[data-theme="dark"] .streak-panel-head,[data-theme="dark"] .quest-reward{color:#dfba79}
[data-theme="dark"] .day{color:#c9b38e}
[data-theme="dark"] .day b{border-color:#786247}
[data-theme="dark"] .day b.done{background:#c8a369;border-color:#c8a369;color:#231c13}
[data-theme="dark"] .quest-symbol{color:#b79ace}
[data-theme="dark"] .progress-track{background:#3a3048}
[data-theme="dark"] .progress-track span{background:#ab8ecc}
[data-theme="dark"] .claim-button{background:#3e3050;color:#d2b5f7}
[data-theme="dark"] .achievement>span{background:#3a3125;color:#debd81}
[data-theme="dark"] .profile-link .icon{color:#bca3d0}
[data-theme="dark"] .resource.coins{background:#393125}
[data-theme="dark"] .life-resource{background:#372732;color:#e7adc3}
[data-theme="dark"] .life-resource>.icon{fill:#c4849e;color:#e1a9bf}
[data-theme="dark"] .life-value small{color:#cba3b5}
[data-theme="dark"] .life-row .icon{color:#d5a0b5}
[data-theme="dark"] .life-row .filled{fill:#b27790}
[data-theme="dark"] .life-row .empty-heart{fill:#312735;color:#8e7387}
[data-theme="dark"] .lives-icon{color:#e0a8bf;background:#422d3a}
[data-theme="dark"] .lives-icon>.icon{fill:#a86c88}
[data-theme="dark"] .empty-lives-art{background:#392935}
[data-theme="dark"] .empty-lives-art>.icon{fill:#9e647e;color:#c291a8}
[data-theme="dark"] .loss-lives{color:#d9a3ba}
[data-theme="dark"] .loss-lives .icon{fill:#aa748b}
[data-theme="dark"] .just-unlocked .level-node{background:#312938;color:#b5a0c5;border-color:#47374f;box-shadow:0 3px 0 #1a131f}
[data-theme="dark"] .just-unlocked.unlock-reveal .level-node{animation-name:unlock-tile-dark}
@keyframes unlock-tile-dark{0%{scale:.9;background:#312938;color:#b5a0c5}55%{scale:1.13}100%{scale:1;background:#9070d0;color:#fff;border-color:#ad8ee6;box-shadow:0 5px 0 #533879,inset 0 2px 0 #b597eb}}
/* Review pages use the same saved appearance as their embedded previews. */
[data-theme="dark"] body:has(.screens){background:#16131b;color:var(--ink)}
[data-theme="dark"] body:has(.screens) header p,[data-theme="dark"] .screen>p,[data-theme="dark"] body:has(.screens) footer{color:var(--muted)}
[data-theme="dark"] body:has(.screens) a{color:var(--purple);border-color:var(--line)}
[data-theme="dark"] .replay{background:var(--lilac);color:var(--purple)}
[data-theme="dark"] .screen-head h2 span{color:var(--muted)}
[data-theme="dark"] iframe{background:var(--canvas);border-color:#3b3344;box-shadow:0 0 0 1px #554860,0 15px 35px -24px #000}

[data-theme="dark"] .streak-earned .new-day>div{animation-name:day-earned-dark}
@keyframes day-earned-dark{0%{background:#38313f;scale:1}50%{scale:1.2}100%{background:#d5b276;scale:1}}
