/* Shared palette tokens also power the live theme previews. */
:root,[data-theme-preview="forest"]{
  color-scheme:dark;--bg:#071710;--glow:#143a27;--sidebar:#0b1d14;
  --panel:#10241a;--panel2:#142c20;--panel3:#1b3c29;--border:#365c45;
  --white:#f2fff5;--muted:#abc6b5;--mint:#97efb9;--green:#48c983;--gold:#f4d07c;
  --red:#ffaaa7;--hover:#224733;--button:#46c77e;--button-text:#082315;--button-border:#7ee9a5;
  --nav-active:#24593d;--ring:#77db9b40;--watermark:#8de6a71a;
  --warn-bg:#44391f;--warn-text:#ffe4a3;--danger-bg:#4b2629;--danger-border:#a35157;
  --board-light:#f0ead8;--board-dark:#608e71;--board-label:#395a43;--board-selected:#edcf76;--board-dot:#244f39a8;
  --shadow:0 14px 42px #0004;
}
:root[data-theme="walnut"],[data-theme-preview="walnut"]{
  color-scheme:light;--bg:#f5efe5;--glow:#e6d4bb;--sidebar:#eee3d3;
  --panel:#fffaf2;--panel2:#f2e7d8;--panel3:#ead9c4;--border:#c8b398;
  --white:#34271e;--muted:#715c4c;--mint:#764b2d;--green:#855735;--gold:#8c5b20;
  --red:#9c3437;--hover:#edddc8;--button:#75492f;--button-text:#fffaf0;--button-border:#956744;
  --nav-active:#e2cbae;--ring:#916a3b35;--watermark:#8a624a18;
  --warn-bg:#f2dfb2;--warn-text:#6f4c13;--danger-bg:#f8dfdd;--danger-border:#bf7777;
  --board-light:#f5e7cc;--board-dark:#a47752;--board-label:#715034;--board-selected:#e9c36a;--board-dot:#513c2ba8;
  --shadow:0 12px 36px #4c2f1515;
}
:root[data-theme="midnight"],[data-theme-preview="midnight"]{
  color-scheme:dark;--bg:#101325;--glow:#2a254c;--sidebar:#111629;
  --panel:#181e34;--panel2:#1e2640;--panel3:#292e4b;--border:#414767;
  --white:#f1efff;--muted:#b2b8d3;--mint:#c3b2fa;--green:#b7a2f3;--gold:#efd08a;
  --red:#f5a4b7;--hover:#303752;--button:#bca5f5;--button-text:#1b1533;--button-border:#d4c4ff;
  --nav-active:#40365f;--ring:#bf9eff40;--watermark:#c4b1ff17;
  --warn-bg:#453d2e;--warn-text:#f3d796;--danger-bg:#462b3d;--danger-border:#a46b85;
  --board-light:#dce1ef;--board-dark:#66749a;--board-label:#3d486a;--board-selected:#c2a9ed;--board-dot:#263053a8;
  --shadow:0 14px 42px #0005;
}
:root[data-theme="ocean"],[data-theme-preview="ocean"]{
  color-scheme:dark;--bg:#081d2a;--glow:#123e53;--sidebar:#0a2231;
  --panel:#102d3e;--panel2:#15374a;--panel3:#1b4154;--border:#38677b;
  --white:#edfbff;--muted:#afccd9;--mint:#8ae4ec;--green:#59c9d8;--gold:#f2d49a;
  --red:#ffafb1;--hover:#235266;--button:#75dce9;--button-text:#092a37;--button-border:#a1edf4;
  --nav-active:#245467;--ring:#78e5eb38;--watermark:#8ae4ec17;
  --warn-bg:#414234;--warn-text:#fae0ad;--danger-bg:#4a303b;--danger-border:#aa6a77;
  --board-light:#e2f1ef;--board-dark:#5396aa;--board-label:#29556a;--board-selected:#eed08a;--board-dot:#124b64a8;
  --shadow:0 14px 42px #0004;
}
body{background:radial-gradient(circle at 89% 2%,var(--glow) 0,var(--bg) 42%,var(--bg) 100%)}
input,select,textarea{background:var(--panel);border-color:var(--border);accent-color:var(--mint)}
input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px var(--ring)}
.sidebar{background:var(--sidebar)}
.logo-icon,.login-card .badge-icon{background:linear-gradient(145deg,var(--panel3),var(--panel));border-color:var(--border)}
.nav-label,.nav button,th,footer,.metric .detail{color:var(--muted)}
.nav button:hover,tbody tr:hover{background:var(--hover)}
.nav button.active{background:linear-gradient(90deg,var(--nav-active),var(--panel3));color:var(--white);border-color:var(--border)}
.side-bottom,.pill,.pill.gray,.pill.approved{background:var(--panel3);border-color:var(--border);color:var(--mint)}
.pill.gold,.pill.pending,.local-warning,.rank.top,.award{background:var(--warn-bg);color:var(--warn-text);border-color:var(--border)}
.pill.red,.pill.rejected,.pill.disputed{background:var(--danger-bg);color:var(--red)}
.card,.metric,.login-card{background:linear-gradient(155deg,var(--panel2),var(--panel));border-color:var(--border)}
.hero{background:radial-gradient(ellipse at 94% 45%,var(--glow),transparent 65%),linear-gradient(120deg,var(--panel3),var(--panel))}
.hero p{color:var(--muted)}
.metric::after{color:var(--watermark)}
.btn{background:var(--button);color:var(--button-text);border-color:var(--button-border)}
.btn.ghost,.mode-tabs button{background:var(--panel3);color:var(--mint);border-color:var(--border)}
.btn.link{background:none;border:0;color:var(--mint)}
.btn.danger,.notice.error{background:var(--danger-bg);color:var(--red);border-color:var(--danger-border)}
.btn.gold{background:var(--warn-bg);color:var(--warn-text);border-color:var(--gold)}
th,td,.line,.bracket-box>div+div{border-color:var(--border)}
.rank,.avatar,.choice,.bracket-box,.details,.tourney{background:var(--panel3);border-color:var(--border);color:var(--white)}
.avatar,.details summary{color:var(--mint)}
.empty .symbol{color:var(--muted)}
.muted-note{background:var(--panel3);color:var(--white)}
.mode-tabs button.selected{background:var(--nav-active);color:var(--white);border-color:var(--mint)}
.notice{background:var(--panel3);border-color:var(--mint);color:var(--white)}
.clock-panel{background:var(--panel2);border-color:var(--border);color:var(--muted)}
.clock-panel.active{background:var(--panel3);border-color:var(--mint);box-shadow:0 0 0 1px var(--ring)}
.clock-panel strong{color:var(--gold)}
.moves-list{background:var(--bg);border-color:var(--border);color:var(--white)}
.chessboard{border:3px solid var(--border);border-radius:12px;box-shadow:0 14px 36px #0003}
.sq.light,.appearance-square.light,.theme-mini-board .light{background:var(--board-light)}
.sq.dark,.appearance-square.dark,.theme-mini-board .dark{background:var(--board-dark)}
.sq.picked{background:var(--board-selected)}
.sq.target::after{background:var(--board-dot)}
.sq.target:has(.chess-piece)::after{background:transparent;border-color:var(--board-selected)}
.sq-rank,.sq-file{color:var(--board-label)}
.sq.dark .sq-rank,.sq.dark .sq-file{color:#fff8e9}
.chess-piece{display:block;width:86%;height:86%;line-height:0;font-size:initial;filter:drop-shadow(0 2px 1px #0004);pointer-events:none}
.chess-piece.white,.chess-piece.black{-webkit-text-stroke:0;text-shadow:none}
.chess-piece.white{--piece-fill:#fff7e4;--piece-outline:#35404a}
.chess-piece.black{--piece-fill:#28313e;--piece-outline:#eee2c7}
.piece-svg{width:100%;height:100%;display:block;overflow:visible}




.appearance-card{margin-bottom:26px;padding:26px}
.theme-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.theme-choice{position:relative;display:grid;grid-template-rows:auto 1fr;text-align:left;padding:7px;background:var(--panel);color:var(--white);border:1px solid var(--border);border-radius:14px;min-width:0;overflow:hidden;transition:border-color .15s,box-shadow .15s}
.theme-choice:hover{border-color:var(--mint)}
.theme-choice[aria-pressed="true"]{border-color:var(--mint);box-shadow:0 0 0 2px var(--ring)}
button:focus-visible,a:focus-visible{outline:3px solid var(--mint);outline-offset:3px}
.theme-preview{display:grid;grid-template-columns:25px minmax(0,1fr);gap:12px;padding:14px;background:var(--bg);border-radius:8px;min-height:128px}
.theme-preview-chrome{display:grid;align-content:start;gap:7px;padding-top:6px}
.theme-preview-chrome i{display:block;height:4px;background:var(--border);border-radius:4px}
.theme-preview-chrome i:first-child{height:8px;background:var(--mint);margin-bottom:4px}
.theme-mini-board{display:grid;grid-template-columns:repeat(4,1fr);width:100%;max-width:120px;aspect-ratio:1;border:2px solid var(--border);border-radius:5px;overflow:hidden;justify-self:center}
.theme-mini-board>span{display:grid;place-items:center;aspect-ratio:1;min-width:0}
.theme-mini-board .chess-piece{width:96%;height:96%;filter:none}
.theme-choice-info{position:relative;display:grid;gap:5px;padding:12px 7px 7px}
.theme-choice-info strong{font-size:.91rem;padding-right:22px}
.theme-choice-info>span:not(.theme-selected){font-size:.74rem;line-height:1.45;color:var(--muted)}
.theme-selected{display:none;position:absolute;top:10px;right:5px;width:21px;height:21px;border-radius:50%;background:var(--button);color:var(--button-text);align-items:center;justify-content:center;font-size:.8rem;font-weight:850}
.theme-choice[aria-pressed="true"] .theme-selected{display:flex}
.appearance-detail{display:grid;grid-template-columns:minmax(180px,290px) 1fr;gap:30px;align-items:center;margin-top:25px;padding-top:25px;border-top:1px solid var(--border)}
.appearance-board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));width:100%;aspect-ratio:1;border:3px solid var(--border);border-radius:9px;overflow:hidden;box-shadow:0 8px 25px #0002}
.appearance-square{display:grid;place-items:center;min-width:0;aspect-ratio:1}
.appearance-description{max-width:40ch}
.appearance-description h3{font-size:1.25rem;line-height:1.3;margin-bottom:12px}
.appearance-description>p{color:var(--muted);font-size:.88rem;line-height:1.7}
.appearance-description .theme-status{color:var(--mint);font-weight:700;margin:16px 0 6px}
.section-heading{margin:0 0 18px}
.section-heading h2{font-size:1.2rem;margin-bottom:6px}
.section-heading p{color:var(--muted);font-size:.87rem;line-height:1.5}
.auth-theme-button{position:fixed;z-index:5;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));display:flex;gap:8px;align-items:center;box-shadow:0 4px 15px #0002}
.theme-button-dot{height:10px;width:10px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 3px var(--ring)}
.appearance-dialog{width:min(94vw,1000px);max-height:90dvh;padding:26px;border:1px solid var(--border);border-radius:20px;background:var(--bg);color:var(--white);box-shadow:0 25px 90px #0007;overscroll-behavior:contain}
.appearance-dialog::backdrop{background:#0009;backdrop-filter:blur(4px)}
.appearance-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}
.appearance-dialog-head h2{font-size:1.35rem}
.appearance-dialog>.card-head{margin-bottom:16px}
@media(max-width:1100px){.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.theme-preview{min-height:145px}.theme-mini-board{max-width:125px}}
@media(max-width:760px){.nav button{background:var(--panel3);border-color:var(--border)}.appearance-card,.appearance-dialog{padding:18px}.appearance-detail{grid-template-columns:minmax(150px,240px) 1fr;gap:20px}.theme-preview{padding:11px;min-height:120px;gap:8px;grid-template-columns:20px minmax(0,1fr)}.appearance-dialog{max-height:92dvh}.appearance-dialog-head h2{font-size:1.1rem}}
@media(max-width:600px){.league-settings-grid{grid-template-columns:1fr}}
@media(max-width:520px){.appearance-detail{grid-template-columns:1fr;gap:20px}.appearance-detail>div:first-child{max-width:300px;width:100%;justify-self:center}.appearance-description{max-width:none}.theme-grid{gap:10px}.theme-preview{grid-template-columns:15px minmax(0,1fr);padding:9px;gap:7px;min-height:110px}.theme-choice-info{padding:10px 5px 6px}.theme-choice-info strong{font-size:.85rem}.theme-choice-info>span:not(.theme-selected){font-size:.7rem}.appearance-dialog-head{gap:10px}.auth-theme-button{top:12px;right:12px}.login-wrap{padding-top:70px;padding-bottom:24px}}
@media(prefers-reduced-motion:reduce){.theme-choice{transition:none}html{scroll-behavior:auto}}
