@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600&display=swap');
:root{--bg:#f5f4ef;--ink:#243b32;--muted:#7a8179;--green:#2e5544;--line:#dedfd5;--gold:#ba9256}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px 'DM Sans',sans-serif}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;border-radius:6px;padding:12px 16px;transition:background .15s}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #bd965b;outline-offset:3px}header{height:85px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1240px)/2))}.brand{color:var(--ink);text-decoration:none;display:flex;align-items:center;gap:10px;font-size:38px}.brand span{font-size:16px;letter-spacing:2px;font-weight:700}.header-right{display:flex;align-items:center;gap:25px}.pill{border:1px solid var(--line);padding:7px 12px;border-radius:20px;font-size:11px}.muted{color:var(--muted);line-height:1.65}main{max-width:1240px;margin:auto;padding:45px 24px 0}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:34px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;margin:0 0 10px;color:var(--gold)}h1,h2,h3,p{margin-top:0}h1{font:500 47px 'Playfair Display',Georgia,serif;margin-bottom:10px;letter-spacing:-1.2px}.subtitle{color:var(--muted);margin:0;font-size:15px}.room-tag{font-size:10px;letter-spacing:1.3px;border-left:2px solid var(--gold);padding:10px 14px}.layout{display:grid;grid-template-columns:minmax(0,1.48fr) minmax(300px,1fr);gap:36px}.play{min-width:0}.player{display:flex;align-items:center;gap:12px;min-height:70px}.player strong{font-size:14px}.player small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.avatar{background:#e8e5d9;border:1px solid #dcd8ca;border-radius:7px;width:40px;height:40px;display:grid;place-items:center;font-size:29px}.avatar.dark{background:#334c3e;color:#f5f0df}.seat{margin-left:auto;font-size:9px;letter-spacing:1.5px;color:var(--muted)}.board-frame{padding:10px;background:#354c3e;border-radius:5px;box-shadow:0 10px 24px #203b3214}.board{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;overflow:hidden}.square{border-radius:0;padding:0;aspect-ratio:1;position:relative;display:grid;place-items:center;background:#ece8d9;color:#263b30;font-size:clamp(25px,4.3vw,59px);font-family:'Segoe UI Symbol','DejaVu Sans',serif;line-height:1;user-select:none}.square.dark{background:#8c9f84}.square.piece-w{color:#fffdf0;text-shadow:0 2px 1px #334c3e,1px 0 #334c3e,-1px 0 #334c3e}.square.piece-b{color:#24382f;text-shadow:0 1px 1px #fff9}.square.selected{background:#d6bd75}.square.last{box-shadow:inset 0 0 0 100px #eac56444}.square.check{background:#bf7770}.square .coord{position:absolute;font:600 9px 'DM Sans',sans-serif;color:#42583d;text-shadow:none;left:4px;top:4px}.square.dark .coord{color:#f1f0dc}.square .file{top:auto;left:auto;bottom:3px;right:4px}.square.legal:after{content:'';position:absolute;width:24%;height:24%;border-radius:50%;background:#263b3038}.square.legal.occupied:after{width:88%;height:88%;border:5px solid #263b3045;background:none}.board-toolbar{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:7px}.quiet{background:transparent;color:var(--muted);font-size:11px;padding:13px 7px}.quiet:hover{color:var(--ink);background:#e9eadf}aside{display:flex;flex-direction:column;gap:18px;padding-top:9px}.card{background:#fffefa;border:1px solid var(--line);border-radius:9px;padding:24px}h2{font:500 24px 'Playfair Display',Georgia,serif;margin-bottom:12px}.card p{font-size:13px}.primary{background:var(--green);color:white;display:flex;justify-content:space-between;align-items:center;gap:15px}.primary:hover{background:#1e4030}#create{width:100%;margin-top:18px}.secondary{background:#eeeee5;color:var(--ink);white-space:nowrap}.divider{display:flex;align-items:center;gap:10px;margin:18px 0;color:#9b9d94;font-size:10px}.divider:before,.divider:after{content:'';height:1px;background:var(--line);flex:1}label{font-size:11px;display:block;margin-bottom:7px}input{width:100%;min-width:0;border:1px solid var(--line);background:#fafaf5;padding:12px;border-radius:5px;text-transform:uppercase;letter-spacing:2px}.input-row{display:flex;gap:8px}.room-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.room-heading h2{font-family:monospace;letter-spacing:2px;font-size:22px;margin:0}.room-heading button{font-size:11px}.card-title{display:flex;justify-content:space-between;align-items:center}.card-title h2{font-size:21px;margin-bottom:0}.spark{font-size:32px;color:var(--gold)}#analysis{padding:24px 0 15px}#analysis h3{font:500 19px 'Playfair Display',Georgia,serif;margin:10px 0}#analysis p{margin-bottom:10px;line-height:1.7}.empty-icon{color:#a1b098;font-size:38px}#analysis .grade{display:inline-block;background:#e5eddf;color:#3d6542;font-size:11px;padding:6px 10px;border-radius:4px;font-weight:bold}#analysis .grade.error{background:#f2e1d9;color:#965c43}.eval-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-top:1px solid var(--line);font-size:11px}.eval-row strong{font-size:17px}.line{font-family:monospace;color:#365845;background:#f0f2e9;padding:12px;border-radius:4px;font-size:13px}.coach-footer{border-top:1px solid var(--line);padding-top:13px;font-size:10px;color:var(--muted);display:flex;gap:7px;align-items:center}.dot{width:5px;height:5px;background:#78976a;border-radius:50%}.history-head,.move-row{display:grid;grid-template-columns:30px 1fr 1fr;gap:5px;padding:10px}.history-head{margin-top:18px;border-bottom:1px solid var(--line);font-size:9px;letter-spacing:1px;color:var(--muted)}.history{max-height:145px;overflow:auto}.history>p{padding:15px 10px 0;margin:0;font-size:11px}.move-row:nth-child(even){background:#f5f5ee}.move-row{font-size:12px}.move-row span:first-child{color:var(--muted)}.theory{display:flex;align-items:center;gap:20px;margin-top:32px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:25px 0}.theory-icon{font-size:28px;color:var(--gold)}.theory p:last-child{margin:0;color:var(--muted);font-size:12px;line-height:1.8}.chapter{margin-left:auto;white-space:nowrap;font-size:9px;letter-spacing:1.6px;color:var(--muted)}footer{max-width:1240px;margin:0 auto;padding:25px 24px;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90vw;background:#243b32;color:#fff;padding:15px 24px;border-radius:7px;box-shadow:0 5px 25px #0002;z-index:10}dialog{border:1px solid var(--line);border-radius:10px;padding:30px;color:var(--ink);background:var(--bg)}dialog::backdrop{background:#172d24aa}#promotion-choices{display:flex;gap:8px}#promotion-choices button{font-size:40px;background:#e5e8da}[hidden]{display:none!important}@media(min-width:1200px){.square{font-size:58px}}@media(max-width:850px){main{padding-top:30px}.layout{gap:22px;grid-template-columns:1fr}.play{max-width:650px;width:100%;margin:auto}aside{display:grid;grid-template-columns:1fr 1fr;align-items:start}.history-card{grid-column:1/-1}.square{font-size:clamp(28px,8vw,60px)}.room-tag,.header-right .muted,.chapter{display:none}h1{font-size:38px}}@media(max-width:520px){header{padding:0 18px;height:70px}.brand span{font-size:13px}main{padding:28px 14px 0}aside{display:flex}.card{padding:22px}.intro{margin-bottom:20px}.board-frame{padding:7px}.square{font-size:9vw}.board-toolbar .quiet{font-size:10px}.theory{gap:12px}.header-right{gap:5px}footer{padding:22px 14px}.subtitle{font-size:13px}}

.coach-section{margin-top:20px}.coach-section h4{margin:0 0 9px;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--gold);line-height:1.6}.coach-facts{padding-left:18px;margin:0}.coach-facts li{padding-left:3px;margin-bottom:9px;font-size:13px;line-height:1.8}.coach-facts li::marker{color:#8c9f84}#analysis .coach-section p{color:#506154;line-height:1.8}#analysis .line-note{font-size:12px;margin:9px 0}.coach-section small{display:block;margin-top:9px;font-size:10px;line-height:1.6}.coach-lesson{background:#eef2e7;border-left:3px solid #8c9f84;padding:14px;border-radius:0 5px 5px 0}.coach-lesson h4{color:#567149}.coach-lesson p{margin-bottom:0!important}.coach-section .line{line-height:1.9;overflow-wrap:anywhere}.coach .eval-row{margin-top:20px;gap:8px;flex-wrap:wrap}.coach .eval-row strong{font-size:15px}

.color-choice{border:0;padding:0;margin:18px 0 0}.color-choice legend{font-size:11px;margin-bottom:8px}.color-options{display:flex;gap:7px}.color-options label{flex:1;position:relative;margin:0;cursor:pointer}.color-options input{position:absolute;opacity:0;width:1px;height:1px;padding:0;pointer-events:none}.color-options span{display:block;text-align:center;border:1px solid var(--line);border-radius:5px;padding:11px 7px;font-size:12px;white-space:nowrap}.color-options input:checked+span{background:#e6eddf;border-color:#6f8d68;color:#2e5544;font-weight:700}.color-options input:focus-visible+span{outline:3px solid var(--gold);outline-offset:2px}.color-choice #color-hint{font-size:11px;margin:10px 0 0;line-height:1.6}.room-colors{border-top:1px solid var(--line);padding-top:15px;margin-top:15px}.room-colors button{width:100%;font-size:12px}.room-colors #color-note{font-size:11px;line-height:1.7;margin:9px 0 0}#request{border-top:1px solid var(--line);padding-top:14px;margin-top:14px}

.history-card .history-help{font-size:11px;line-height:1.7;margin:12px 0 0}.history-card .history-head{margin-top:10px}.history{max-height:225px}.move-row{align-items:center;min-height:43px;padding:5px 8px}.move-row .history-san{font-size:12px;padding:7px 8px;color:var(--ink)}.review-move{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;justify-content:space-between;text-align:left;padding:7px 8px;background:#edf2e7;color:var(--ink);border:1px solid transparent;font-size:12px;min-width:0}.review-move:hover{background:#e2eadb}.review-move.selected{border-color:#79956d;background:#dde8d5}.move-row .review-move span{color:var(--ink);font-weight:600}.review-move small{font-size:9px;color:#617552;font-weight:500}.review-controls{border-bottom:1px solid var(--line);margin-top:20px;padding-bottom:15px}#review-label{font-size:11px;color:#65785e;margin:0 0 9px;font-weight:600}.review-navigation{display:flex;gap:6px;flex-wrap:wrap}.review-navigation button{font-size:10px;padding:8px 10px;flex:1;white-space:nowrap}.review-navigation button:disabled{opacity:.4}#review-controls+#analysis{padding-top:15px}@media(max-width:850px){aside>.card{grid-column:1/-1}}@media(max-width:520px){.review-move{gap:3px;flex-direction:column;align-items:flex-start}.review-navigation button{padding:9px 8px}}

.wide{width:100%;margin-top:10px;font-size:12px}.spectator-meta{display:flex;justify-content:space-between;gap:10px;margin-top:15px;color:#6a7b62;font-size:11px}.spectator-meta #role-label{font-weight:700}#copy-watch{padding-left:0}#watch-instead{display:block;padding-left:0;color:#47704b}#spectator-controls{padding:3px 0 12px}.spectating .square{cursor:default}#advantage-graph svg{display:block;width:100%;height:auto}#advantage-graph circle[role=button]{cursor:pointer}#advantage-graph circle:focus-visible{outline:none;stroke:#b38b4d;stroke-width:4}#advantage-card h2{margin-bottom:12px}.advantage-summary{font-size:13px;line-height:1.7;color:#3c5b40;font-weight:600}#analysis-progress{font-size:11px;margin:4px 0 6px}.graph-help{font-size:10px!important;line-height:1.7;margin:0}

/* Keep piece artwork in its own fixed palette so automatic darkening cannot
   turn both armies into pale font glyphs. */
.board,.piece-image{color-scheme:only light;forced-color-adjust:none}.square{background:#e8e8d7;color:#17212b;text-shadow:none!important}.square.dark{background:#8da188}.square .piece-image{width:86%;height:86%;max-width:100%;display:block;object-fit:contain;pointer-events:none;user-select:none;filter:none!important;position:relative;z-index:1}.square .coord{z-index:2}.square.legal:after{z-index:2}.avatar .piece-image{width:33px;height:33px;filter:none!important}.avatar{background:#dce6d6}.avatar.dark{background:#52695b}#promotion-choices button{width:65px;height:70px;padding:5px}#promotion-choices .piece-image{width:100%;height:100%;filter:none!important}
.coach{scroll-margin-top:20px}.key-lesson{background:#e4eedb;border:1px solid #c7d9b8;border-left:5px solid #5b7947;border-radius:7px;padding:19px 20px;margin-top:20px}.lesson-kicker{font-size:10px;font-weight:800;letter-spacing:1.7px;color:#496b35}.key-lesson #lesson-text{font-size:17px;font-weight:600;line-height:1.75;color:#26422d;margin:8px 0 0}.coach .review-controls{margin-top:15px;padding-bottom:12px}.coach .coach-section{margin-top:15px}.more-analysis{margin-top:18px;border-top:1px solid var(--line);padding-top:13px}.more-analysis>summary{cursor:pointer;font-weight:600;font-size:12px;color:var(--ink);padding:5px 0 12px}.more-analysis small{font-size:11px;line-height:1.7;display:block;margin-top:10px}.settings-card{padding:0;overflow:hidden}.settings-card>summary{cursor:pointer;list-style-position:inside;padding:18px 22px;font-size:12px;font-weight:600}.settings-card>summary span{float:right;color:var(--gold);font-size:11px}.settings-body{padding:2px 22px 20px}.settings-body label:not(.setting-switch){margin-top:14px}.settings-body select{width:100%;font:inherit;font-size:12px;border:1px solid var(--line);border-radius:5px;background:#fafaf5;color:var(--ink);padding:12px 9px}.settings-body input{letter-spacing:normal;text-transform:none;font-size:12px}.settings-body .setting-note{font-size:10px;line-height:1.7;margin:8px 0 10px}.settings-body #level-help{font-size:11px;line-height:1.7;margin-top:9px}.setting-switch{display:flex;align-items:center;gap:10px;padding:12px 0 3px;font-size:12px;font-weight:600;cursor:pointer}.setting-switch input{width:18px;height:18px;accent-color:#537447;padding:0;cursor:pointer}.name-input{letter-spacing:normal;text-transform:none;font-size:13px}#lobby label[for=lobby-name]{margin-top:18px}.hide-advantage .eval-row,.hide-advantage #advantage-card{display:none!important}#advantage-graph{background:#f8faf2;border-radius:7px;color-scheme:only light;forced-color-adjust:none}#theme-cycle{white-space:nowrap;font-size:11px}
:root[data-theme=dark]{--bg:#101b21;--ink:#e6ede5;--muted:#a5b5ad;--green:#3f7056;--line:#34463f;--gold:#d3b77f;color-scheme:dark}
[data-theme=dark] .card{background:#19282b}[data-theme=dark] .square{background:#bcc9b4}[data-theme=dark] .square.dark{background:#648169}[data-theme=dark] .board-frame{background:#344e43}[data-theme=dark] .square .coord{color:#233e31}[data-theme=dark] .square.dark .coord{color:#f5f5db}[data-theme=dark] .square.last{box-shadow:inset 0 0 0 100px #ead16145}[data-theme=dark] .square.selected{background:#c8ad62}[data-theme=dark] .square.check{background:#c77c73}
[data-theme=dark] .key-lesson{background:#293f31;border-color:#4f704c;border-left-color:#a6ca87}[data-theme=dark] .lesson-kicker{color:#c7dfa7}[data-theme=dark] .key-lesson #lesson-text{color:#f0f6e6}[data-theme=dark] #analysis .coach-section p{color:#ccdbcc}[data-theme=dark] .secondary{background:#2b3e3b;color:var(--ink)}[data-theme=dark] input,[data-theme=dark] .settings-body select{background:#132126;color:var(--ink)}[data-theme=dark] .quiet:hover{background:#293e36;color:var(--ink)}[data-theme=dark] .line{background:#233c32;color:#d9ebce}[data-theme=dark] #analysis .grade{background:#314c38;color:#d1edc5}[data-theme=dark] #analysis .grade.error{background:#54352d;color:#ffd1bc}[data-theme=dark] .move-row:nth-child(even){background:#1c3030}[data-theme=dark] .review-move{background:#273f34;color:var(--ink)}[data-theme=dark] .review-move.selected{background:#3b5740;border-color:#b0c88f}[data-theme=dark] .review-move:hover{background:#3a5040}[data-theme=dark] .review-move small{color:#c1d4af}[data-theme=dark] #review-label,[data-theme=dark] .spectator-meta{color:#bacdb0}[data-theme=dark] .advantage-summary{color:#d1e7bc}[data-theme=dark] .color-options input:checked+span{background:#36503c;border-color:#a5c08c;color:#eff6df}[data-theme=dark] #watch-instead{color:#bfd9aa}[data-theme=dark] a{color:#c0dbaf}[data-theme=dark] .brand{color:var(--ink)}[data-theme=dark] .more-analysis>summary{color:var(--ink)}
@media(max-width:850px){.layout{display:flex;flex-direction:column}.layout>aside{display:contents}#lobby{order:-2}.layout .coach{order:0}.layout>.play{order:1}.settings-card{order:2}#room-card{order:3}#advantage-card{order:4}.history-card{order:5}.layout aside>.card{max-width:650px;width:100%;margin-left:auto;margin-right:auto}.header-right{gap:10px}#theme-cycle{font-size:10px}}

.captured-tray{min-height:29px;display:flex;align-items:center;flex-wrap:wrap;gap:2px;padding:2px 0 8px;font-size:10px}.captured-tray .piece-image{width:22px;height:24px;object-fit:contain;filter:none!important}.captured-label{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-right:8px}.captured-tray>.muted{font-size:10px}.bot-setup{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.bot-setup>summary{cursor:pointer;font-weight:600;font-size:12px}.bot-setup label{margin-top:14px}.bot-setup .setting-note,#bot-status{font-size:10px;line-height:1.7;margin:10px 0}.bot-elo-row{display:flex;align-items:center;gap:12px}.bot-elo-row input[type=range]{padding:0;accent-color:#688c56;flex:1}.bot-elo-row input[type=number]{width:90px;letter-spacing:normal;text-transform:none}#bot-panel{padding:14px 0;border-top:1px solid var(--line);margin-top:12px}#bot-panel input{letter-spacing:normal}#retry-bot{font-size:11px}
.import-card{padding:0}.import-card>summary{cursor:pointer;list-style-position:inside;padding:18px 22px;font-weight:600;font-size:12px}.import-card .setting-note{font-size:10px;line-height:1.7;margin:10px 0}.import-card input[type=file]{font-size:11px;letter-spacing:normal;text-transform:none;padding:10px}.import-card textarea{width:100%;resize:vertical;min-height:130px;border:1px solid var(--line);border-radius:5px;background:#fafaf5;color:var(--ink);font:12px/1.8 monospace;padding:11px}.import-card #pgn-error{font-size:12px;line-height:1.7;color:#a64b32;margin:12px 0}.import-navigation{margin:12px 0;padding:12px 0;border-top:1px solid var(--line)}.import-navigation .input-row{align-items:center;justify-content:space-between}.import-navigation button{font-size:11px;padding:10px}.import-navigation #position-label{font-size:11px;color:var(--muted);white-space:nowrap}.analysis-rail{position:sticky;top:18px;align-self:start;min-width:0}.analysis-rail .card{padding:19px}.analysis-rail h2{font-size:21px}.analysis-rail .advantage-summary{font-size:12px}.observer-mode main{max-width:1640px}.observer-mode .layout{grid-template-columns:minmax(210px,.72fr) minmax(350px,1.45fr) minmax(300px,1fr);gap:24px;align-items:start}.observer-mode .play{width:100%}.observer-mode.hide-advantage main{max-width:1240px}.observer-mode.hide-advantage .layout{grid-template-columns:minmax(0,1.48fr) minmax(300px,1fr)}[data-theme=dark] .import-card textarea{background:#132126;color:var(--ink)}[data-theme=dark] .import-card #pgn-error{color:#ffbba0}
@media(min-width:651px) and (max-width:1050px){.observer-mode .layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px}.observer-mode .analysis-rail{grid-column:1;grid-row:1/span 20;top:12px}.observer-mode .play{grid-column:2;grid-row:1}.observer-mode aside{display:contents}.observer-mode aside>.card{grid-column:2;width:100%;max-width:none}.observer-mode aside>.coach{grid-row:2}.observer-mode.hide-advantage .layout{display:grid;grid-template-columns:minmax(0,1fr)}.observer-mode.hide-advantage .play,.observer-mode.hide-advantage aside>.card{grid-column:1}.import-card{order:3}}
@media(max-width:650px){.observer-mode .layout,.observer-mode.hide-advantage .layout{display:flex;flex-direction:column}.observer-mode .analysis-rail{order:-1;position:sticky;top:0;z-index:8;width:100%;background:var(--bg);padding-bottom:6px}.observer-mode .analysis-rail .card{padding:10px 14px}.observer-mode .analysis-rail .eyebrow,.observer-mode .analysis-rail .graph-help{display:none}.observer-mode .analysis-rail h2{font-size:17px;margin-bottom:4px}.observer-mode .analysis-rail .advantage-summary{font-size:11px;margin-bottom:2px}.observer-mode #advantage-graph svg{height:88px;width:100%}.observer-mode #analysis-progress{font-size:9px;margin:3px 0 0}.observer-mode .play{order:1}.import-card{order:3}.captured-tray .piece-image{width:19px;height:22px}}

.game-recap{order:-1;border-top:3px solid var(--gold);scroll-margin-top:18px}.game-recap h2{font-size:22px;line-height:1.5}.game-recap h3{font-size:14px;margin:20px 0 12px}.game-recap ul{list-style:none;padding:0;margin:0}.game-recap li{padding:13px 0;border-top:1px solid var(--line)}.game-recap li strong{font-size:12px;color:var(--gold)}.game-recap li p{font-size:13px;line-height:1.8;margin:7px 0 0}.game-recap li button{padding-left:0}.game-recap #recap-progress{font-size:10px;margin:10px 0 0}.game-recap .primary{justify-content:center}
@media(min-width:651px) and (max-width:1050px){.observer-mode #game-recap{grid-row:2}.observer-mode #game-recap:not([hidden])+.coach{grid-row:3}}

.mode-controls{border-top:1px solid var(--line);margin-top:12px;padding-top:15px!important}.mode-controls .mode-label{font-size:11px;font-weight:600;margin-bottom:8px}.mode-switch{display:flex;gap:7px}.mode-switch button{flex:1;font-size:12px;padding:12px 8px!important;margin:0}.mode-switch button[aria-pressed=true]{background:#dce9d3;border:1px solid #779266;color:#2b4830;opacity:1}.mode-controls #mode-help{font-size:10px;line-height:1.7;margin:10px 0 0}[data-theme=dark] .mode-switch button[aria-pressed=true]{background:#35553d;border-color:#9dbd85;color:#eaf3df}

.move-lesson{margin-top:12px;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:6px;padding:16px 18px;background:#f7f5eb}.move-lesson .lesson-kicker{color:#8b6937}.move-lesson #move-lesson-text{font-size:13px;line-height:1.8;margin:8px 0 0;color:var(--ink)}[data-theme=dark] .move-lesson{background:#26332e}[data-theme=dark] .move-lesson .lesson-kicker{color:#dfc28c}

.followup-panel{margin-top:16px;padding:17px;border:2px solid #6c9760;border-radius:7px;background:#edf4e5}.followup-panel .lesson-kicker{color:#476d34}.followup-panel h3{font:600 20px/1.5 "DM Sans",sans-serif;margin:8px 0 14px}.followup-panel ol{list-style:none;margin:0;padding:0}.followup-panel li{padding:12px 0;border-top:1px solid #c8d9ba}.followup-panel li:first-child{background:#dceccd;border:1px solid #b0ca98;border-left:4px solid #557b3c;border-radius:5px;padding:13px}.followup-panel li strong{font-size:11px;letter-spacing:.4px;color:#3c622c}.followup-panel .followup-words{font-size:14px;font-weight:600;line-height:1.7;margin:7px 0}.followup-panel .followup-why{font-size:12px;line-height:1.8;margin:0}.followup-panel #followup-note{font-size:10px;line-height:1.8;margin:12px 0 0}.board{position:relative}.best-move-arrow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4;overflow:visible}[data-theme=dark] .followup-panel{background:#203b2e;border-color:#91ba75}[data-theme=dark] .followup-panel .lesson-kicker,[data-theme=dark] .followup-panel li strong{color:#c7e6aa}[data-theme=dark] .followup-panel li{border-color:#496444}[data-theme=dark] .followup-panel li:first-child{background:#355434;border-color:#8daf72;border-left-color:#b8dc8b}

/* A focused workspace: persistent context above five clear sections. */
.workspace-top{position:sticky;top:0;z-index:10;background:var(--bg);padding:0 0 10px;width:100%}.workspace-heading{display:flex;flex-direction:column;gap:6px;padding:12px 3px}.workspace-heading>span{font-size:9px;letter-spacing:1.3px;color:var(--gold);font-weight:700}.workspace-heading strong{font-size:12px;line-height:1.6}.workspace-top .key-lesson{padding:12px 14px;margin:0 0 10px}.workspace-top #lesson-text{font-size:14px;line-height:1.65;margin:6px 0 0}.workspace-top .mode-controls{padding:0!important;border:0;margin:0 0 9px}.workspace-top .mode-label{display:none}.workspace-top .mode-switch button{font-size:10px;padding:9px!important}.workspace-top #mode-help{display:none}body[data-workspace=room] .workspace-top #mode-help{display:block}.workspace-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;border:1px solid var(--line);padding:4px;border-radius:7px;background:var(--bg)}.workspace-tabs button{background:transparent;color:var(--muted);font-size:11px;font-weight:600;padding:11px 3px;border-radius:4px}.workspace-tabs button[aria-selected=true]{background:var(--green);color:white}.workspace-tabs button:focus-visible{outline:2px solid var(--gold);outline-offset:0}.layout aside{gap:10px}.layout aside>.card{margin:0;width:100%}.history-card .history{max-height:none}.history-card .card-title{position:sticky;top:0}.board-next-move{border:1px solid #789866;border-left:4px solid #577e40;border-radius:6px;padding:10px 12px;background:#edf4e6;margin:0 0 8px;display:grid;gap:4px}.board-next-move strong{font-size:12px;line-height:1.6}.board-next-move>span{font-size:10px;line-height:1.6;color:var(--muted)}.board-next-move button{padding:3px 0;text-align:left;font-size:10px;color:#456b31}.header-game-status{font-size:11px;font-weight:600;max-width:280px;line-height:1.5}.in-game header{position:sticky;top:0;z-index:30;height:64px;background:var(--bg)}.in-game .intro{display:none}.in-game main{padding-top:18px}.in-game aside{position:sticky;top:82px;max-height:calc(100dvh - 96px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding:0 5px 10px 0;display:flex;flex-direction:column}.in-game .analysis-rail{top:82px}.in-game .play{position:sticky;top:82px;align-self:start;max-width:min(100%,calc(100dvh - 250px));margin-inline:auto}.in-game.observer-mode .play{max-width:min(100%,calc(100dvh - 325px))}.in-game.review-mode .play{max-width:min(100%,calc(100dvh - 395px))}.in-game .player{min-height:43px}.in-game .captured-tray{min-height:22px;padding-bottom:4px}.in-game .board-toolbar{margin-top:2px}.in-game .board-toolbar button{padding-top:9px;padding-bottom:9px}.in-game .import-navigation{padding:6px 0;margin:5px 0}.in-game .import-navigation button{padding:7px}.in-game .import-navigation .wide{margin-top:6px}.in-game .theory{display:none}.in-game footer{padding-top:14px;padding-bottom:14px}.in-game .coach{border-top:0}.in-game .game-recap{order:0}.in-game .workspace-top{order:-1}.in-game .settings-card[open],.in-game .import-card[open]{overflow:visible}[data-theme=dark] .board-next-move{background:#203b2e;border-color:#91b475}[data-theme=dark] .board-next-move button{color:#c2e3a4}
@media(min-width:851px) and (max-width:1050px){.observer-mode .layout{grid-template-columns:190px minmax(0,1fr)}.in-game.observer-mode aside{grid-column:2;grid-row:2;position:relative;top:auto;max-height:650px;display:flex}.in-game.observer-mode .play{grid-column:2;position:relative;top:auto;max-width:100%}.in-game.observer-mode .analysis-rail{grid-row:1/span 3;top:82px}}
@media(max-width:850px){.in-game .layout{display:flex;flex-direction:column}.in-game .layout>aside{display:contents;position:static;overflow:visible;max-height:none}.in-game .workspace-top{order:0;position:relative;top:0;max-width:650px;margin:auto}.in-game .layout>.play{order:1;position:relative;top:0;max-width:550px;width:100%}.in-game .layout aside>[data-workspace-panel]{order:2;max-width:650px;width:100%;margin:0 auto;scroll-margin-top:78px}.in-game .analysis-rail{order:-1;top:64px;width:100%;max-width:650px;margin:auto;z-index:9}.in-game.observer-mode .analysis-rail .card{padding:10px 14px}.in-game.observer-mode .analysis-rail h2,.in-game.observer-mode .analysis-rail .eyebrow,.in-game.observer-mode .analysis-rail .graph-help{display:none}.in-game.observer-mode #advantage-graph svg{height:65px;width:100%}.in-game.observer-mode .advantage-summary{margin-bottom:3px}.in-game.observer-mode #analysis-progress{font-size:9px;margin:2px 0}.in-game .workspace-top .key-lesson{padding:10px 12px}.in-game .workspace-top #lesson-text{font-size:13px}.header-game-status{max-width:130px;font-size:10px}.in-game header .header-right>.muted{display:none}.in-game .brand span{font-size:11px;letter-spacing:1px}.in-game .brand{font-size:29px}.in-game .header-right{gap:7px}.in-game header{padding-inline:12px}#theme-cycle{font-size:9px;padding:7px}}

.practice-panel{padding:14px;margin-bottom:10px;border:2px solid var(--gold);border-radius:8px;background:#f7f2df}.practice-panel h3{font-size:17px;line-height:1.6;margin:7px 0}.practice-panel p{font-size:11px;line-height:1.7;margin:6px 0}.practice-panel #practice-instruction{font-weight:600}.practice-actions{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.practice-actions button{font-size:10px;padding:8px}.practice-mode .board-next-move,.practice-mode #import-navigation{display:none!important}.practice-mode .player{min-height:32px}[data-theme=dark] .practice-panel{background:#393624}#sound-toggle{font-size:10px;white-space:nowrap}@media(max-width:850px){#sound-toggle{font-size:9px;padding:7px}.header-game-status{max-width:95px}.header-right .pill{padding:5px;font-size:9px}}

.in-game footer{display:none}.in-game .play,.in-game.observer-mode .play,.in-game.review-mode .play{max-width:100%}.board-next-move{padding:8px 10px;gap:3px}.board-next-move>span{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.board-next-move>button{padding:2px 0}.in-game .player{min-height:38px}.workspace-tabs{flex-shrink:0}.workspace-top{flex-shrink:0}

.stockfish-launch{width:100%;margin:0 0 10px;padding:13px 14px;font-size:14px;font-weight:700;flex-shrink:0;box-shadow:0 2px 8px #182e2518}.stockfish-launch span{font-size:10px;font-weight:500}.stockfish-launch:focus-visible{outline:3px solid var(--gold);outline-offset:2px}#stockfish-game{width:440px;max-width:92vw;max-height:90dvh;overflow:auto}#stockfish-game select{width:100%;font:inherit;padding:12px;border:1px solid var(--line);border-radius:5px;background:var(--bg);color:var(--ink);margin-bottom:20px}#stockfish-game .bot-elo-row{margin-top:10px}#stockfish-game .setting-note,#stockfish-game .stockfish-room-note{font-size:11px;line-height:1.7;margin:12px 0}#stockfish-game #stockfish-error{color:#b65a40;margin-top:12px;font-size:12px}[data-theme=dark] #stockfish-game #stockfish-error{color:#ffb69b}@media(max-width:520px){.stockfish-launch{padding:12px;font-size:13px}.stockfish-launch span{font-size:9px}}

.friend-launch{background:#d1b77d;color:#24362b;border:1px solid #bca069}.friend-launch:hover{background:#dfc994}.invite-dialog{width:460px;max-width:92vw;max-height:90dvh;overflow:auto}.invite-dialog select{width:100%;font:inherit;padding:12px;border:1px solid var(--line);border-radius:5px;background:var(--bg);color:var(--ink)}.invite-dialog input{font-size:12px;text-transform:none;letter-spacing:normal}.invite-dialog details{border-top:1px solid var(--line);padding-top:15px;margin-top:15px}.invite-dialog summary{cursor:pointer;font-weight:600;font-size:13px;margin-bottom:15px}.invite-dialog .invite-note{font-size:11px;line-height:1.7;margin:12px 0}.invite-dialog #friend-error{color:#ad5137;font-size:12px;margin-top:14px}.invite-dialog #friend-invite-status{font-size:12px;line-height:1.7;margin:12px 0}[data-theme=dark] .friend-launch{background:#d1b77d;color:#192a20}[data-theme=dark] .friend-launch:hover{background:#e2cc9a}[data-theme=dark] .invite-dialog #friend-error{color:#ffb69b}

#opening-profile{width:440px;max-width:92vw}#opening-profile label{margin-top:18px}#opening-profile input{letter-spacing:normal;text-transform:none}#opening-profile .profile-note{font-size:11px;line-height:1.8;margin:12px 0}#opening-profile .primary{justify-content:center}

.notation-reference{display:inline;border:0;border-bottom:1px dotted currentColor;border-radius:2px;padding:0 2px;margin:0;background:transparent!important;color:inherit!important;font:inherit;font-weight:inherit;line-height:inherit;vertical-align:baseline;cursor:help;white-space:nowrap}.notation-reference:hover,.notation-reference:focus-visible{background:#dce8cc!important;outline:2px solid #8baa71;outline-offset:1px;color:#243d29!important}.history-san.has-move-preview{cursor:help;text-decoration:underline dotted;text-underline-offset:4px}.review-move.has-move-preview>span{text-decoration:underline dotted;text-underline-offset:4px}.notation-hint{font-size:9px;color:var(--muted);line-height:1.6;margin:8px 2px 0}.notation-preview{position:fixed;z-index:1000;width:270px;max-width:calc(100vw - 20px);border:1px solid var(--gold);border-radius:9px;box-shadow:0 10px 35px #0004;background:#fffefa;color:#243b32;padding:13px;pointer-events:auto}.notation-preview>strong{display:block;font-size:14px;line-height:1.5}.notation-preview>p{font-size:11px;line-height:1.6;margin:6px 0 10px}.notation-preview>small{display:block;font-size:9px;line-height:1.5;color:var(--muted);margin-top:8px}.notation-mini-board{position:relative;display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;border:4px solid #3b5543;overflow:hidden;border-radius:3px;color-scheme:only light;forced-color-adjust:none}.notation-mini-square{position:relative;aspect-ratio:1;display:grid;place-items:center;background:#e8e8d7}.notation-mini-square.dark{background:#7f9b78}.notation-mini-square.highlight{box-shadow:inset 0 0 0 100px #ebcd5955}.notation-mini-square.captured{outline:2px solid #ba654d;outline-offset:-3px}.notation-mini-square img{width:90%;height:90%;object-fit:contain;filter:none!important;pointer-events:none;forced-color-adjust:none}.notation-mini-square img.ghost{opacity:.23}.notation-mini-square>span{position:absolute;top:1px;left:2px;font-size:7px;font-weight:700;color:#234329}.notation-mini-square>span.file{top:auto;left:auto;bottom:0;right:2px}.notation-mini-arrows{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}[data-theme=dark] .notation-preview{background:#19282b;color:#edf4e5}[data-theme=dark] .notation-reference:hover,[data-theme=dark] .notation-reference:focus-visible{background:#496842!important;color:#f0f7e8!important}@media(max-height:460px){.notation-preview{width:220px;padding:10px}.notation-preview>p{font-size:10px;margin:4px 0}.notation-preview>small{display:none}}

.missed-mate-training{border:1px solid var(--gold);border-radius:7px;padding:14px;margin:16px 0;background:#f4eedb}.missed-mate-training h3{margin:0 0 10px}.missed-mate-item{border-top:1px solid var(--line);padding-top:13px;margin-top:13px}.missed-mate-item>strong{font-size:12px;line-height:1.7;display:block}.missed-mate-item p{font-size:11px;line-height:1.8;margin:8px 0}.missed-mate-item button{font-size:11px}.mate-puzzle-dialog{width:490px;max-width:94vw;max-height:94dvh;overflow:auto;padding:22px}.mate-puzzle-dialog select{width:100%;padding:9px;font:inherit;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:5px}.mate-puzzle-dialog h2{margin-bottom:12px}.mate-puzzle-dialog p{font-size:12px;line-height:1.7}.mate-puzzle-dialog #mate-puzzle-goal{font-size:11px;margin:10px 0}.mate-puzzle-board{width:min(100%,340px);display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;position:relative;border:7px solid #3b5543;border-radius:5px;margin:auto;overflow:hidden;color-scheme:only light;forced-color-adjust:none}.mate-puzzle-square{aspect-ratio:1;position:relative;display:grid;place-items:center;padding:0;border:0;border-radius:0;background:#e8e8d7}.mate-puzzle-square.dark{background:#7f9b78}.mate-puzzle-square:disabled{opacity:1;cursor:default}.mate-puzzle-square.selected{background:#d6bd75}.mate-puzzle-square.last{box-shadow:inset 0 0 0 100px #ebce6655}.mate-puzzle-square.legal:after{content:"";width:22%;height:22%;border-radius:50%;position:absolute;background:#234d3b55}.mate-puzzle-square img{width:88%;height:88%;object-fit:contain;filter:none!important;forced-color-adjust:none}.mate-puzzle-square>span{position:absolute;left:2px;top:2px;color:#234329;font-size:8px}.mate-puzzle-square>span.file{left:auto;top:auto;right:2px;bottom:1px}.mate-puzzle-actions{display:flex;gap:6px;flex-wrap:wrap}.mate-puzzle-actions button{font-size:11px;padding:10px}.mate-puzzle-dialog #mate-puzzle-feedback{font-weight:600;margin:12px 0 7px}.mate-puzzle-dialog #mate-puzzle-explanation{font-size:11px;margin-bottom:12px}[data-theme=dark] .missed-mate-training{background:#383522}@media(max-height:650px){.mate-puzzle-board{max-width:265px}.mate-puzzle-dialog{padding:15px}.mate-puzzle-dialog h2{font-size:21px}}

.workspace-content{min-width:0}.workspace-content>.card{width:100%;margin:0 0 10px}.in-game aside{height:calc(100dvh - 96px);overflow:hidden;min-height:0}.in-game .workspace-top{position:relative;top:auto}.in-game .workspace-content{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:4px}.in-game .workspace-content>.card:last-child{margin-bottom:0}@media(min-width:851px) and (max-width:1050px){.in-game.observer-mode aside{height:650px;max-height:650px}}@media(max-width:850px){.workspace-content,.in-game .workspace-content{display:contents;overflow:visible;padding:0}.in-game .layout>aside{height:auto}.in-game .layout [data-workspace-panel]{order:2;max-width:650px;width:100%;margin:0 auto;scroll-margin-top:78px}}

.material-tip{padding:9px 12px;margin:0 0 10px;border:1px solid #9caf8b;border-radius:6px;background:#edf3e7}.material-tip strong{display:block;font-size:10px;line-height:1.5;color:#3d6037}.material-tip p{font-size:11px;line-height:1.65;margin:4px 0 0}.tactical-alert{padding:12px 14px;border:1px solid #d6a681;border-left:3px solid #b66b45;border-radius:5px;background:#fbf0e5}.tactical-alert h4{color:#854a2d}.tactical-alert p{margin-bottom:0!important}[data-theme=dark] .material-tip{background:#24382d;border-color:#718b61}[data-theme=dark] .material-tip strong{color:#c4dfa7}[data-theme=dark] .tactical-alert{background:#3a3028;border-color:#a77b57}[data-theme=dark] #analysis .tactical-alert p,[data-theme=dark] .tactical-alert h4{color:#f2d9c0}

/* Fill the board column before applying the viewport height limit. */
.in-game .play{width:100%}.board-frame{width:100%}.feedback-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 0;flex-wrap:wrap}.feedback-heading h3{font:500 20px/1.5 'Playfair Display',Georgia,serif;margin:0;flex:1;min-width:130px}.coach .move-evaluation{display:grid;gap:3px;text-align:right;border:0;border-radius:6px;background:#edf3e7;padding:8px 11px;margin:0;flex:none}.move-evaluation span,.move-evaluation small{font-size:9px;line-height:1.5;color:var(--muted)}.coach .move-evaluation strong{font-size:19px;line-height:1.35;color:var(--ink)}.feedback-heading+.move-lesson{margin-top:14px}[data-theme=dark] .move-evaluation{background:#24382d}#analysis>.grade{margin-bottom:10px}
.coach .move-evaluation{max-width:100%;min-width:0}.move-evaluation-result{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.move-evaluation .move-quality{display:inline-block;border-radius:4px;padding:5px 8px;background:#e5eddf;color:#3d6542;font-size:11px;font-weight:700;line-height:1.5}.move-evaluation .move-quality.error{background:#f2e1d9;color:#965c43}[data-theme=dark] .move-evaluation .move-quality{background:#314c38;color:#d1edc5}[data-theme=dark] .move-evaluation .move-quality.error{background:#54352d;color:#ffd1bc}

.workspace-tabs{background:#dcded1;border-color:#a5af9e;box-shadow:0 2px 8px #142b1910}.workspace-tabs button{background:#f0eee3;color:#314e40}.workspace-tabs button:hover{background:#d2dfc8}.workspace-tabs button[aria-selected=true]{background:#2e5544;color:#fff}[data-theme=dark] .workspace-tabs{background:#253c46;border-color:#718d97}[data-theme=dark] .workspace-tabs button{background:#3b5663;color:#edf5f6}[data-theme=dark] .workspace-tabs button:hover{background:#4c6e7c}[data-theme=dark] .workspace-tabs button[aria-selected=true]{background:#d3b77f;color:#172d26}.loss-review ol{padding-left:20px}.loss-review li{margin:16px 0;padding-bottom:15px;border-bottom:1px solid var(--line)}.loss-review li strong{font-size:12px;line-height:1.7}.loss-review li p{font-size:12px;line-height:1.7;margin:8px 0}.loss-review li button{font-size:11px}.piece-image{will-change:transform}.practice-panel{padding:10px 12px}.practice-panel h3{font-size:14px;line-height:1.5;margin:4px 0}.practice-panel p{font-size:10px;line-height:1.6;margin:3px 0}.practice-actions{gap:4px;margin-top:7px}.practice-actions button{font-size:10px;padding:7px}#practice-comparison{overflow-wrap:anywhere}#analysis>p:first-child{margin-top:10px}
.in-game.page-scroll-layout .layout>aside{position:static;top:auto;height:auto;max-height:none;overflow:visible}.in-game.page-scroll-layout .workspace-content{flex:none;min-height:auto;height:auto;max-height:none;overflow:visible;overscroll-behavior:auto}.in-game.page-scroll-layout .workspace-top{position:static;top:auto}.in-game.page-scroll-layout .layout>.play{position:relative;top:auto}.in-game .workspace-content{overscroll-behavior-y:auto}

.practice-auto-choice{display:flex;align-items:center;gap:7px;margin:7px 0;font-size:11px;font-weight:600}.practice-auto-choice input{width:16px;height:16px;accent-color:var(--green);padding:0}#practice-opponent-note:empty{display:none}#practice-opponent-note{border-left:2px solid var(--gold);padding-left:8px;margin-top:7px}

.practice-puzzle,.friend-online-sharing{padding:14px;border:1px solid var(--gold);border-radius:8px;margin:12px 0;background:var(--surface)}
#practice-puzzle-feedback[data-verdict="solved"]{border-left:4px solid #8fc58d;padding-left:10px}#practice-puzzle-feedback[data-verdict="retry"]{border-left:4px solid #e7b15b;padding-left:10px}.puzzle-attempt-log{padding-left:20px;font-size:.85rem}.puzzle-attempt-log li{margin-bottom:10px}

.practice-puzzle,.friend-online-sharing{background:var(--bg)}#followup-explanation-dialog{max-width:600px;width:calc(100vw - 32px);max-height:85vh;overflow-y:auto}.followup-dialog-moves{padding-left:22px}.followup-dialog-moves li{padding:14px 0;border-bottom:1px solid var(--line)}.followup-dialog-moves p{margin:8px 0;line-height:1.6}

.material-balance{margin-left:auto;order:2;font-weight:700;font-size:14px;padding:4px 8px;border:1px solid var(--line);border-radius:5px;line-height:1}.material-balance.ahead{color:var(--ink);background:var(--bg)}.material-balance.behind{color:var(--muted)}

.archive-list{padding:0;list-style:none;margin:20px 0 0}.archive-list>li{padding:18px 0;border-top:1px solid var(--line)}.archive-list h3{font-size:17px;margin-bottom:8px}.archive-list p{line-height:1.6;margin-bottom:8px}#animation-speed{width:100%;accent-color:var(--green)}#animation-speed-value{float:right;font-weight:600}.animation-speed-scale{display:flex;justify-content:space-between;font-size:11px;margin:6px 0 10px}@media(max-width:600px){.workspace-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}}
