:root{--bg:#0e151a;--bg2:#151e24;--panel:#18232a;--border:#2d3940;--border2:#37454a;--white:#f5f0e8;--muted:#a4afb2;--soft:#74868c;--accent:#e3a96d;--gold:#ffd29a;--green:#85b3a7;--light:#e8ddc9;--dark:#819d8d;--shadow:0 12px 40px #05090c38}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--white);font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;font-size:14px;line-height:1.55}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:disabled{opacity:.4;cursor:default}button,button:hover{transition:background .15s,border-color .15s,color .15s}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.035em}a{color:inherit}main{max-width:1660px;margin:auto}
.site-header{height:74px;display:flex;justify-content:space-between;align-items:center;padding:0 clamp(18px,4vw,64px);border-bottom:1px solid #ffffff0d;background:#111a1f}.brand{display:flex;align-items:center;gap:12px}.brand-icon{color:var(--accent);font-size:40px;line-height:1}.brand strong{font-size:18px;font-weight:850;letter-spacing:.11em}.brand-accent{color:var(--accent)}.brand small{display:block;color:#809198;letter-spacing:.19em;font-size:8px;font-weight:700;margin-top:-2px}.topnav{display:flex;gap:20px;align-items:center;color:#85969c;font-size:11px;letter-spacing:.13em;font-weight:700}.edition-tag{border:1px solid #60727555;border-radius:20px;padding:5px 11px;color:#d2af83}.nav-separator,.meta-divider{width:1px;height:18px;background:#71808544}
.hero{margin:0;padding:52px clamp(18px,4vw,64px) 48px;display:flex;justify-content:space-between;align-items:center;min-height:318px;position:relative;overflow:hidden;background:radial-gradient(circle at 75% 52%,#26403954,transparent 35%),linear-gradient(110deg,#10191e 0%,#17232a 70%,#141e24 100%);border-bottom:1px solid var(--border)}.hero-main{position:relative;z-index:1}.eyebrow,.overline,.field-caption,.section-label,.progress-label,.coach-top{font-size:10px;letter-spacing:.19em;font-weight:800;color:var(--accent)}.eyebrow{display:flex;align-items:center;gap:11px;margin:0 0 20px}.eyebrow-line{width:26px;height:1px;background:var(--accent)}h1{font-family:Georgia,Times,serif;font-weight:500;font-size:clamp(38px,4vw,58px);line-height:1.1;margin:0 0 17px}h1 em{font-style:normal;color:var(--accent)}.hero-sub{color:#acb7b7;font-size:14px;max-width:540px;margin-bottom:28px}.hero-meta{display:flex;gap:20px;align-items:center;color:#95a5aa;font-size:12px}.hero-meta strong{color:#f6e6d0;font-size:16px}.hero-art{position:absolute;right:9%;top:-40px;bottom:-50px;width:380px;opacity:.9}.hero-rook{position:absolute;right:80px;top:34px;font-size:300px;font-family:Georgia,serif;color:#dfa36620;text-shadow:0 0 60px #d69b5430}.art-circle{position:absolute;border:1px solid #d2b18626;border-radius:50%;width:360px;height:360px;top:20px;right:0}.art-circle.b{width:270px;height:270px;top:65px;right:45px}.art-note{position:absolute;left:0;bottom:45px;color:#86a9a38a;font:23px/1.4 Georgia,serif;transform:rotate(-12deg)}
.app-shell{padding:32px clamp(18px,3vw,48px) 50px;display:grid;grid-template-columns:minmax(235px,295px) minmax(340px,1fr) minmax(245px,300px);gap:24px;align-items:start}.panel{background:var(--bg2);border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow)}.navigator{padding:23px 16px;max-height:calc(100vh - 36px);overflow:auto;scrollbar-color:#53656b transparent;scrollbar-width:thin;position:sticky;top:16px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px;padding:0 5px}.panel-heading h2{font-size:22px;margin:3px 0 0;font-weight:650}.panel-heading h3{font-size:17px;margin:3px 0 0;font-weight:650}.panel-heading .overline{margin:0}.heading-icon{font-size:25px;color:#5e747a}.search-field{height:42px;display:flex;align-items:center;border:1px solid var(--border);border-radius:9px;background:#0f171c;margin-bottom:25px}.search-field:focus-within{border-color:var(--accent)}.search-field input{width:100%;height:100%;outline:0;border:0;background:transparent;color:#fff;padding:0 10px;font-size:12px}.search-icon{padding-left:12px;font-size:24px;line-height:1;color:var(--soft)}.field-caption{color:#7e9197;display:block;margin-bottom:10px}.group-filters{display:flex;flex-wrap:wrap;gap:6px}.group-chip{border:1px solid #425258;background:transparent;color:#9aadb0;border-radius:6px;padding:6px 9px;font-size:10px;font-weight:650}.group-chip:hover{border-color:var(--accent);color:var(--white)}.group-chip.selected{background:#e1ae7430;border-color:#cb975b;color:#ffd09a}.fav-filter{display:flex;gap:10px;align-items:center;color:#a6b5b7;margin:19px 3px;font-size:12px;cursor:pointer}.fav-filter input{accent-color:var(--accent)}.star-small{margin-left:auto;color:var(--accent)}.divider{height:1px;background:var(--border);margin:15px 0}.section-label{display:flex;justify-content:space-between;align-items:center;color:#819299;margin:0 4px 11px;gap:8px}.section-label span:last-child{color:#64787f}.section-label .label-sub{font-size:8px}.chapter-list{display:flex;flex-direction:column;gap:3px;max-height:300px;overflow:auto;scrollbar-width:thin}.chapter{width:100%;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--white);display:flex;align-items:center;text-align:left;padding:9px 8px;gap:10px}.chapter:hover,.line-item:hover{background:#26343b}.chapter.current{background:#254037;border-color:#53685e}.ch-no{color:#71858d;font-size:13px;font-weight:800;font-variant-numeric:tabular-nums}.ch-content{display:flex;flex-direction:column;min-width:0;flex:1}.ch-content strong{font-weight:660;font-size:12px}.ch-content small{color:#82959a;font-size:10px}.ch-count{font-size:10px;color:#8da09e;background:#ffffff0c;border-radius:5px;padding:2px 5px}.line-list{max-height:340px;overflow:auto;scrollbar-width:thin;display:flex;flex-direction:column;gap:3px}.line-item{display:flex;align-items:center;text-align:left;gap:9px;width:100%;padding:9px 7px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--white)}.line-item.current{background:#433727;border-color:#8d7048}.line-code{background:#28383b;color:#d8b98b;font-weight:750;font-size:10px;letter-spacing:.02em;min-width:42px;text-align:center;border-radius:5px;padding:5px 3px}.line-main{min-width:0;flex:1}.line-main strong{font-weight:600;font-size:12px;display:block}.line-main small{font-size:10px;color:#7f9197;display:block}.line-star{color:var(--accent)}.empty{padding:14px 8px;color:#88999d;font-size:12px}
.workspace{min-width:0}.workspace-heading{display:flex;justify-content:space-between;align-items:start;gap:12px;margin:5px 0 22px}.workspace-heading h2{font-size:clamp(25px,2.2vw,35px);line-height:1.22;margin:5px 0 8px;font-weight:680}.workspace-heading .overline{color:#d6aa7d;margin:0}.separator{color:#6c7d83;padding:0 7px}.chapter-subtitle{color:#879a9e;font-size:12px;margin:0}.outline-action{white-space:nowrap;background:transparent;border:1px solid var(--border2);border-radius:8px;color:#abbabd;padding:9px 11px;font-size:12px}.outline-action:hover,.outline-action.favorited{border-color:var(--accent);color:var(--gold)}.training-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px;gap:12px}.mode-buttons{display:flex;gap:3px;border:1px solid var(--border);border-radius:9px;padding:3px;background:#141e23}.mode-button{border:0;border-radius:6px;padding:8px 12px;background:transparent;color:#8e9fa3;font-size:12px;font-weight:650}.mode-button.selected{background:#33483e;color:#d5e7d7}.side-indicator{display:flex;align-items:center;gap:7px;font-size:12px;color:#a8b7b7;white-space:nowrap}.turn-dot{width:11px;height:11px;border-radius:50%;border:1px solid #58666c;background:#f9f1e4}.turn-dot.black-turn{background:#1b2126;border-color:#84969a}
.board-panel{background:#101820;padding:9px;border:1px solid #43514e;border-radius:8px;box-shadow:0 16px 55px #0307097f}.chessboard{width:100%;aspect-ratio:1/1;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));overflow:hidden;border-radius:3px}.square{min-width:0;position:relative;display:flex;align-items:center;justify-content:center;border:0;border-radius:0;padding:0;font-family:Georgia,'DejaVu Sans',serif}.square.light{background:var(--light)}.square.dark{background:var(--dark)}.square.lastmove::before{content:'';position:absolute;inset:0;background:#eac06a55}.square.hint::before{content:'';position:absolute;inset:0;background:#efc95b8c}.square.picked::before{content:'';position:absolute;inset:0;background:#f4c153ab}.square:hover::after{content:'';position:absolute;inset:3px;border:2px solid #173d3a66;pointer-events:none}.piece{position:relative;z-index:1;line-height:1;font-size:clamp(31px,4.2vw,59px);font-family:'DejaVu Sans','Segoe UI Symbol',Georgia,serif;font-weight:400;user-select:none;pointer-events:none}.white-piece{color:#fff9e7;text-shadow:0 1px 1px #1c2626,1px 0 1px #192022,-1px 0 1px #192022,0 -1px 1px #192022,1px 2px 2px #172021}.black-piece{color:#172b2e;text-shadow:0 1px 1px #ffffff77}.rank-label,.file-label{position:absolute;z-index:2;font-size:clamp(9px,.8vw,11px);font-weight:800;line-height:1;pointer-events:none;color:#33514c}.square.dark .rank-label,.square.dark .file-label{color:#edede1}.rank-label{top:5px;left:5px}.file-label{bottom:5px;right:5px}.target-ring{position:absolute;z-index:3;width:19%;aspect-ratio:1;border-radius:50%;background:#185d3f88;pointer-events:none}.square:has(.piece:not(:empty)) .target-ring{width:86%;background:transparent;border:4px solid #23734fa6}
.progress-block{margin-top:18px}.progress-label{color:#85989d;display:flex;justify-content:space-between;letter-spacing:.15em}.progress-label strong{color:#c9bca8;font-weight:600;letter-spacing:0}.progress-track{background:#29353a;height:5px;border-radius:99px;margin-top:10px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#8eb4a6,#e8ae73);border-radius:99px;transition:width .18s}.board-controls{display:flex;gap:9px;margin-top:16px}.control{flex:1;min-height:42px;border-radius:8px;font-weight:700;font-size:12px;padding:8px}.control.primary{flex:1.4;background:var(--accent);border:1px solid var(--accent);color:#19231f}.control.primary:hover:not(:disabled){background:#ffcb91}.control.secondary{background:#1d292e;border:1px solid var(--border2);color:#bac6c5}.control.secondary:hover:not(:disabled){border-color:#7a9b9a}.secondary-controls{margin-top:8px;justify-content:space-between}.text-control{color:#b5a38b;font-size:11px;background:none;border:0;padding:6px;text-decoration:underline;text-underline-offset:3px}.text-control:hover{color:#ffd49e}.keyboard-hint{text-align:center;color:#63777b;font-size:10px;margin-top:12px}kbd{border:1px solid #506066;padding:1px 5px;border-radius:4px;color:#c4b4a4}.promotion-panel{background:#26383b;border:1px solid #788d8d;padding:15px;margin-top:10px;border-radius:8px}.promotion-panel p{margin:0 0 10px}.promotion-buttons{display:flex;gap:5px}.small-btn,.draw-control{background:#293c3e;border:1px solid #71817f;color:#f6e3d0;padding:8px;border-radius:5px}.draw-control{margin:10px 0}
.coach-column{display:flex;flex-direction:column;gap:17px}.coach-card{background:linear-gradient(150deg,#314b3f,#213930 75%);border:1px solid #567363;border-radius:13px;padding:23px;box-shadow:var(--shadow)}.coach-top{color:#bdd5bb;display:flex;align-items:center;gap:9px;letter-spacing:.16em;margin-bottom:25px}.coach-mark{font-size:26px;color:var(--gold);line-height:1}.coach-card h3{font:26px/1.15 Georgia,serif;font-weight:500;letter-spacing:-.02em;margin-bottom:12px;color:#f7ead7}.coach-card p{font-size:12px;line-height:1.8;color:#c0d0c6;margin-bottom:17px}.coach-actions{display:flex;gap:7px;flex-wrap:wrap}.hint-btn{background:var(--accent);border:1px solid var(--accent);border-radius:7px;padding:9px 13px;font-weight:800;color:#1c2a23;font-size:11px}.micro-btn{background:transparent;color:#d6d6c2;border:1px solid #718879;border-radius:7px;padding:9px 13px;font-weight:750;font-size:11px}.coach-card .coach-disclaimer{font-size:10px;margin:20px 0 0;color:#94b19e}.info-card,.moves-card,.reference-card{padding:22px}.panel-heading.small{margin:0 0 17px;padding:0}.panel-heading.small .overline{color:#b0a085}.subtle-icon{font-size:25px;color:#758585}.score-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.score{padding:14px 4px;background:#202e32;border-radius:7px;text-align:center}.score strong{font:26px Georgia,serif;color:#f1cf9c;display:block}.score small{color:#8ea3a6;font-size:9px;font-weight:800;letter-spacing:.06em}.score-footer{font-size:11px;color:#7c9398;text-align:center;margin:15px 0 8px}.export-btn{display:block;width:100%;background:transparent;border:1px solid #4b6167;padding:8px;color:#b5c6c7;font-size:11px;border-radius:6px}.export-btn:hover{border-color:var(--gold)}.copy-btn{border:1px solid var(--border2);background:#28373a;color:#b8c7c4;padding:7px;border-radius:6px;font-size:10px}.move-history{max-height:255px;min-height:66px;overflow-y:auto;scrollbar-width:thin}.move-row{display:grid;grid-template-columns:27px 1fr 1fr;gap:8px;align-items:center;margin-bottom:4px}.number{color:#798e94;font-size:12px}.move-token{background:#223138;color:#d3dbd5;text-align:left;border:0;border-radius:5px;padding:5px 9px;font-size:12px;min-width:0}.move-token.latest{background:#51442f;color:#ffdfad}.reference-card{background:#182025}.reference-card .overline{color:#b89c75}.reference-card p{color:#97a5a6;font-size:11px;line-height:1.85}.reference-card strong{color:#e3d5c2}.reference-card .reference-page{color:#dfae7a;font-weight:700;margin-bottom:15px}.reference-card .tiny-muted{font-size:10px;color:#87989b}.reference-facts{border-top:1px solid var(--border);padding-top:12px;display:flex;justify-content:space-between;color:#7e9195;font-size:9px;gap:10px}.reference-facts strong{color:#d9b78d}
.footnotes{border-top:1px solid var(--border);padding:25px clamp(18px,3vw,48px);display:flex;justify-content:space-between;gap:40px;color:#829598}.footnotes>div{display:flex;align-items:center;gap:13px;max-width:680px}.footnotes p{font-size:11px;margin:0}.footnotes strong{color:#d0c7b8}.footer-symbol{font-size:30px;color:var(--accent)}.footnotes>p{max-width:320px}.site-footer{display:flex;justify-content:space-between;gap:15px;max-width:1660px;margin:auto;padding:21px clamp(18px,3vw,48px);border-top:1px solid #ffffff14;color:#667e84;font-size:10px;font-weight:750;letter-spacing:.12em}.site-footer span:first-child{color:#efebe4}.toast{position:fixed;z-index:20;bottom:25px;left:50%;transform:translate(-50%,20px);background:#e2b580;color:#15211e;padding:12px 18px;border-radius:9px;font-weight:750;font-size:12px;box-shadow:0 12px 40px #0007;opacity:0;pointer-events:none;transition:.2s}.toast.visible{opacity:1;transform:translate(-50%,0)}[hidden]{display:none!important}
@media(max-width:1190px){.app-shell{grid-template-columns:265px minmax(350px,1fr);gap:19px}.coach-column{grid-column:2;display:grid;grid-template-columns:1fr 1fr}.coach-card{grid-column:span 2}.reference-card{grid-column:span 2}.navigator{grid-row:span 2}.hero-art{right:3%}}
@media(max-width:800px){.topnav .nav-title,.nav-separator{display:none}.hero{padding-top:38px;padding-bottom:40px;min-height:auto}.hero-art{opacity:.25;right:-130px}.app-shell{grid-template-columns:1fr;gap:20px;padding-top:20px}.navigator{position:static;max-height:none;grid-row:auto}.chapter-list{max-height:200px}.line-list{max-height:205px}.workspace{max-width:650px;width:100%;margin:0 auto}.coach-column{grid-column:auto;max-width:650px;width:100%;margin:0 auto}.coach-card{grid-column:span 2}.reference-card{grid-column:span 2}.piece{font-size:clamp(29px,7.5vw,62px)}.footnotes{flex-direction:column;gap:15px}}
@media(max-width:480px){.site-header{height:64px}.hero{padding-top:28px;padding-bottom:29px}.hero-sub{font-size:13px;margin-bottom:20px}.hero-meta{gap:10px;flex-wrap:wrap;font-size:11px}.hero-meta strong{font-size:13px}.app-shell{padding-left:12px;padding-right:12px}.navigator{padding:17px 12px}.workspace-heading{flex-wrap:wrap}.workspace-heading h2{font-size:26px}.board-panel{padding:5px}.rank-label,.file-label{font-size:9px}.square:has(.piece:not(:empty)) .target-ring{border-width:3px}.coach-column{display:flex}.control{font-size:11px;padding:8px 5px}.site-footer{font-size:9px;letter-spacing:0}}

.active-code{display:inline-block;margin-top:8px;background:#493b2d;border:1px solid #776047;border-radius:5px;color:#f1c695;padding:2px 8px;font-size:10px;font-weight:800;letter-spacing:.06em}
/* Volume switching, spaced review and book summaries */
.volume-switch{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}.volume-tab{border:1px solid var(--line,#34424a);background:transparent;color:inherit;border-radius:8px;padding:9px 10px;font-size:.76rem;cursor:pointer}.volume-tab.selected{background:#c7a66c;color:#172028;border-color:#c7a66c;font-weight:800}.review-card,.summary-card{padding:20px}.review-metrics{display:flex;gap:25px;margin:16px 0}.review-metrics>div{display:flex;flex-direction:column;gap:3px}.review-metrics strong{font-size:1.65rem}.review-metrics small{font-size:.61rem;letter-spacing:.1em;opacity:.65}.review-small,.summary-body{font-size:.85rem;line-height:1.65;color:var(--text-secondary,#aab8bc)}.review-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.review-actions .control{font-size:.76rem;flex:1;min-width:125px;padding:10px 9px}.grade-panel{border-top:1px solid #34424a;margin-top:16px;padding-top:12px}.grade-panel p{font-size:.8rem;margin-bottom:10px}.grades{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.grades button{padding:10px 3px;border-radius:7px;cursor:pointer;border:1px solid #51636a;color:#e8f0ed;background:#223239;font-size:.73rem}.grades button[data-grade="good"]{background:#bda16c;border-color:#bda16c;color:#172028;font-weight:700}.summary-card{border-left:3px solid #bda16c}.summary-body p{margin:9px 0}.summary-body strong{color:var(--foreground,#f1ede5)}.summary-body .summary-note{font-size:.72rem;opacity:.7}.summary-card .text-control{margin-top:10px}.review-active{outline:2px solid #bda16c}

/* Three-volume source selector: balanced on both narrow and wide screens. */
.volume-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.volume-tab{min-width:0;white-space:nowrap;text-align:center}

/* French Lab V4 — configurable palettes and insight-first reading layout. */
html[data-theme="midnight"]{
 --bg:#0a1324;--bg2:#121f34;--panel:#162741;--border:#2b4160;--border2:#3e5876;
 --white:#f4f7fc;--muted:#a9b9cc;--soft:#8ba1bb;--accent:#7adce1;--gold:#f1c77f;
 --green:#8cd5d0;--light:#edf2ef;--dark:#8babb8;--shadow:0 12px 36px #020b1f4f;
 --field:#0c1b32;--chip:#203650;--on:#184a60;--muted-text:#a4b5c9;--card:#14263d;
 --tag:#182f4b;--active:#1c4657;--board-shell:#0c1c31;
}
html[data-theme="paper"]{
 --bg:#f5f1e9;--bg2:#fffdfa;--panel:#fffdfa;--border:#d9d6cc;--border2:#bcc7c6;
 --white:#1f3445;--muted:#59717c;--soft:#70848b;--accent:#176f7c;--gold:#9b6630;
 --green:#187d78;--light:#faf2e1;--dark:#89b5b1;--shadow:0 10px 28px #3c50501c;
 --field:#f5f8f6;--chip:#e9f1ef;--on:#dbebeb;--muted-text:#5b7680;--card:#ffffff;
 --tag:#e5f1f2;--active:#d7ebec;--board-shell:#dae1dc;
}
html[data-theme="classic"]{
 --field:#0f171c;--chip:#26343b;--on:#254037;--muted-text:#a4afb2;--card:#18232a;--tag:#253339;--active:#254037;--board-shell:#101820;
}
/* Compact the masthead so studying starts sooner. */
.site-header{height:67px}
.hero{min-height:170px;padding:22px clamp(18px,4vw,64px) 24px}
.hero h1{font-size:clamp(36px,3.2vw,47px);margin-bottom:5px}
.hero .eyebrow{margin-bottom:5px}
.hero-sub{font-size:13px;margin-bottom:12px}
.hero-meta{gap:12px;font-size:11px}
.hero-meta strong{font-size:13px}
.hero-art{top:-90px;bottom:-110px;opacity:.56}
.hero-rook{font-size:250px;top:52px}
.art-circle{width:270px;height:270px;top:68px}
.art-circle.b{width:210px;height:210px;top:100px;right:30px}
.theme-picker{display:flex;align-items:center;gap:9px;letter-spacing:.1em;color:var(--muted);font-weight:700;font-size:10px}
.theme-picker select{max-width:167px;border-radius:8px;background:var(--bg2);color:var(--white);border:1px solid var(--border2);padding:8px 29px 8px 10px;letter-spacing:normal;font-size:12px;font-weight:650}
.theme-picker select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* Under the board: move explanation first. Quiet strategic notes remain nearby. */
.board-insight{margin-top:12px;padding:18px 20px 14px;background:var(--card);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:11px;box-shadow:var(--shadow)}
.board-insight .insight-eyebrow{display:flex;align-items:center;gap:10px;color:var(--accent);font-size:10px;letter-spacing:.16em;font-weight:850;margin:0 0 7px}
.board-insight .coach-mark{font-size:20px;color:var(--accent)}
.board-insight .insight-move-tag{margin-left:auto;border:1px solid var(--border2);border-radius:99px;padding:4px 9px;color:var(--muted);font-size:9px;letter-spacing:.08em;white-space:nowrap}
.board-insight h3{font-size:clamp(19px,2vw,25px);line-height:1.2;color:var(--white);margin-bottom:6px}
.board-insight #coachBody{font-size:13px;line-height:1.65;color:var(--muted);margin:0 0 6px}
.board-insight .coach-actions{margin-top:10px}
.board-insight .coach-disclaimer{font-size:10px;line-height:1.5;color:var(--soft);margin:11px 0 0}
.last-move-insight{margin-top:12px;padding:10px 12px 8px;background:var(--tag);border:1px solid var(--border);border-radius:7px}
.last-move-insight .insight-caption{font-size:10px;letter-spacing:.14em;font-weight:850;color:var(--accent);margin-right:8px}
.last-move-insight strong{font-size:12px;color:var(--white)}
.last-move-insight p{font-size:12px!important;line-height:1.5!important;color:var(--muted)!important;margin:4px 0 0!important}
.workspace > .summary-card{margin-top:19px;padding:18px 20px;border-left:3px solid var(--accent)}
.workspace > .summary-card .panel-heading{margin-bottom:8px}
.summary-body .chapter-note strong{display:block;margin-bottom:4px;color:var(--accent)}
.summary-body .chapter-note span{display:block}
.summary-body .summary-note{border-top:1px solid var(--border);padding-top:10px;line-height:1.5}
.endpoint-details{border-top:1px solid var(--border);padding-top:9px;margin-top:12px}
/* Chapter/branch fast switching above the board. */
.quick-variation{display:flex;justify-content:space-between;align-items:center;gap:15px;background:var(--bg2);border:1px solid var(--border);padding:9px 11px;border-radius:10px;margin:0 0 15px}
.quick-select-label{display:flex;flex-direction:column;gap:2px;min-width:118px}
.quick-select-label span{font-weight:850;letter-spacing:.12em;font-size:10px;color:var(--accent)}
.quick-select-label small{font-size:10px;color:var(--soft)}
.quick-select-controls{display:flex;align-items:stretch;gap:5px;flex:1;min-width:0;justify-content:flex-end}
.quick-select-controls select{min-width:0;max-width:390px;width:100%;background:var(--field);border:1px solid var(--border2);border-radius:6px;color:var(--white);font-size:12px;padding:9px 7px;white-space:nowrap;text-overflow:ellipsis}
.quick-select-controls button{width:34px;flex:0 0 34px;background:var(--field);border:1px solid var(--border2);color:var(--white);font-size:23px;border-radius:6px;line-height:1}
.quick-select-controls button:hover:not(:disabled){border-color:var(--accent)}
/* Shared palette fixes for elements whose original styles used hardcoded forest/gold colours. */
html[data-theme="midnight"] .site-header{background:#0e1b2d}
html[data-theme="paper"] .site-header{background:#ffffff;border-bottom:1px solid var(--border)}
html[data-theme="midnight"] .hero{background:radial-gradient(circle at 83% 51%,#164c7180,transparent 38%),linear-gradient(110deg,#101d36,#112942 75%,#13263b)}
html[data-theme="paper"] .hero{background:radial-gradient(circle at 81% 40%,#d8e9e8aa,transparent 43%),linear-gradient(110deg,#fcfcfa,#e6f0ed 75%,#e8eeea)}
html[data-theme="midnight"] .hero-rook{color:#80d7df2c;text-shadow:0 0 60px #1aacc631}
html[data-theme="paper"] .hero-rook{color:#3a7e7930;text-shadow:none}
html[data-theme="midnight"] .art-circle{border-color:#7fd8e333}
html[data-theme="paper"] .art-circle{border-color:#4d837b2a}
html[data-theme="midnight"] .hero-sub,html[data-theme="midnight"] .hero-meta{color:#aac4d7}
html[data-theme="paper"] .hero-sub,html[data-theme="paper"] .hero-meta{color:#5a7376}
html[data-theme="midnight"] .hero-meta strong{color:#e3f8fe}
html[data-theme="paper"] .hero-meta strong{color:#24434d}
html[data-theme="midnight"] .edition-tag{border-color:#426583;color:#79d9e4}
html[data-theme="paper"] .edition-tag{border-color:#bfcecb;color:#356971}
html[data-theme="paper"] .brand small,html[data-theme="paper"] .topnav{color:#657982}
html[data-theme="midnight"] .brand small,html[data-theme="midnight"] .topnav{color:#a2bdd0}
html[data-theme="midnight"] .panel-heading .overline,html[data-theme="midnight"] .section-label,html[data-theme="midnight"] .field-caption,html[data-theme="midnight"] .workspace-heading .overline{color:#76cbd4}
html[data-theme="paper"] .panel-heading .overline,html[data-theme="paper"] .section-label,html[data-theme="paper"] .field-caption,html[data-theme="paper"] .workspace-heading .overline{color:#346e78}
html[data-theme="midnight"] .search-field,html[data-theme="paper"] .search-field{background:var(--field)}
html[data-theme="midnight"] .search-field input,html[data-theme="paper"] .search-field input{color:var(--white)}
html[data-theme="midnight"] .group-chip,html[data-theme="paper"] .group-chip{color:var(--muted);border-color:var(--border2)}
html[data-theme="midnight"] .group-chip.selected,html[data-theme="paper"] .group-chip.selected{color:var(--white);background:var(--on);border-color:var(--accent)}
html[data-theme="midnight"] .chapter:hover,html[data-theme="midnight"] .line-item:hover,
html[data-theme="paper"] .chapter:hover,html[data-theme="paper"] .line-item:hover{background:var(--chip)}
html[data-theme="midnight"] .chapter.current,html[data-theme="paper"] .chapter.current{background:var(--on);border-color:var(--accent)}
html[data-theme="midnight"] .line-item.current,html[data-theme="paper"] .line-item.current{background:var(--on);border-color:var(--accent)}
html[data-theme="midnight"] .line-code,html[data-theme="paper"] .line-code{background:var(--tag);color:var(--accent)}
html[data-theme="midnight"] .volume-tab.selected,html[data-theme="paper"] .volume-tab.selected{background:var(--accent);border-color:var(--accent);color:var(--bg2)}
html[data-theme="midnight"] .ch-content small,html[data-theme="midnight"] .line-main small,html[data-theme="midnight"] .chapter-subtitle,
html[data-theme="paper"] .ch-content small,html[data-theme="paper"] .line-main small,html[data-theme="paper"] .chapter-subtitle{color:var(--muted)}
html[data-theme="paper"] .fav-filter,html[data-theme="paper"] .outline-action,html[data-theme="paper"] .side-indicator{color:var(--muted)}
html[data-theme="midnight"] .fav-filter,html[data-theme="midnight"] .outline-action,html[data-theme="midnight"] .side-indicator{color:var(--muted)}
html[data-theme="midnight"] .mode-buttons,html[data-theme="paper"] .mode-buttons{background:var(--field)}
html[data-theme="midnight"] .mode-button,html[data-theme="paper"] .mode-button{color:var(--muted)}
html[data-theme="midnight"] .mode-button.selected,html[data-theme="paper"] .mode-button.selected{background:var(--on);color:var(--white)}
html[data-theme="midnight"] .board-panel,html[data-theme="paper"] .board-panel{background:var(--board-shell);border-color:var(--border2)}
html[data-theme="midnight"] .control.secondary,html[data-theme="paper"] .control.secondary{background:var(--field);color:var(--white)}
html[data-theme="midnight"] .control.primary{color:#062933}
html[data-theme="paper"] .control.primary{color:#ffffff}
html[data-theme="midnight"] .control.primary:hover:not(:disabled){background:#a1f2f2}
html[data-theme="paper"] .control.primary:hover:not(:disabled){background:#278490}
html[data-theme="midnight"] .progress-fill,html[data-theme="paper"] .progress-fill{background:var(--accent)}
html[data-theme="midnight"] .progress-track,html[data-theme="paper"] .progress-track{background:var(--border)}
html[data-theme="midnight"] .progress-label,html[data-theme="midnight"] .progress-label strong,html[data-theme="paper"] .progress-label,html[data-theme="paper"] .progress-label strong{color:var(--muted)}
html[data-theme="midnight"] .text-control,html[data-theme="paper"] .text-control{color:var(--accent)}
html[data-theme="midnight"] .keyboard-hint,html[data-theme="paper"] .keyboard-hint{color:var(--soft)}
html[data-theme="paper"] kbd{color:var(--muted);border-color:var(--border)}
html[data-theme="midnight"] .score,html[data-theme="paper"] .score{background:var(--field)}
html[data-theme="midnight"] .score strong,html[data-theme="paper"] .score strong{color:var(--accent)}
html[data-theme="midnight"] .score small,html[data-theme="paper"] .score small{color:var(--muted)}
html[data-theme="midnight"] .score-footer,html[data-theme="paper"] .score-footer{color:var(--muted)}
html[data-theme="midnight"] .copy-btn,html[data-theme="paper"] .copy-btn{background:var(--field);color:var(--white)}
html[data-theme="midnight"] .move-token,html[data-theme="paper"] .move-token{background:var(--field);color:var(--white)}
html[data-theme="midnight"] .move-token.latest,html[data-theme="paper"] .move-token.latest{background:var(--on);color:var(--white)}
html[data-theme="midnight"] .reference-card,html[data-theme="paper"] .reference-card{background:var(--bg2)}
html[data-theme="midnight"] .reference-card p,html[data-theme="paper"] .reference-card p{color:var(--muted)}
html[data-theme="midnight"] .reference-card strong,html[data-theme="paper"] .reference-card strong{color:var(--white)}
html[data-theme="midnight"] .reference-card .reference-page,html[data-theme="paper"] .reference-card .reference-page{color:var(--accent)}
html[data-theme="midnight"] .review-small,html[data-theme="paper"] .review-small{color:var(--muted)}
html[data-theme="paper"] .review-metrics strong,html[data-theme="paper"] .panel-heading h3{color:var(--white)}
html[data-theme="midnight"] .grades button,html[data-theme="paper"] .grades button{background:var(--field);border-color:var(--border2);color:var(--white)}
html[data-theme="midnight"] .grades button[data-grade="good"],html[data-theme="paper"] .grades button[data-grade="good"]{background:var(--accent);color:var(--bg2)}
html[data-theme="midnight"] .hint-btn{color:#052a36}
html[data-theme="paper"] .hint-btn{color:#ffffff}
html[data-theme="paper"] .micro-btn{color:var(--white);border-color:var(--border2)}
html[data-theme="midnight"] .micro-btn{color:var(--white);border-color:var(--border2)}
html[data-theme="paper"] .export-btn{color:var(--white);border-color:var(--border2)}
html[data-theme="midnight"] .export-btn{color:var(--white);border-color:var(--border2)}
html[data-theme="paper"] .summary-body strong{color:var(--white)}
html[data-theme="midnight"] .summary-body strong{color:var(--white)}
html[data-theme="midnight"] .footnotes,html[data-theme="midnight"] .site-footer{color:var(--muted)}
html[data-theme="paper"] .footnotes,html[data-theme="paper"] .site-footer{color:var(--muted);border-color:var(--border)}
html[data-theme="midnight"] .footnotes strong,html[data-theme="midnight"] .site-footer span:first-child,html[data-theme="paper"] .footnotes strong,html[data-theme="paper"] .site-footer span:first-child{color:var(--white)}
html[data-theme="midnight"] .toast{background:var(--accent);color:#0a2630}
html[data-theme="paper"] .toast{background:var(--accent);color:#ffffff}
/* Mobile: put the board and its commentary first, not hundreds of chapter names. */
@media(max-width:800px){
 .app-shell{display:flex;flex-direction:column;gap:19px;padding-top:15px}
 .workspace{order:1;max-width:650px;width:100%;margin:0 auto}
 .navigator{order:2;max-width:650px;width:100%;max-height:none;position:static;margin:0 auto}
 .coach-column{order:3;max-width:650px;width:100%;margin:0 auto;display:flex;flex-direction:column}
 .hero{padding-top:17px;padding-bottom:19px;min-height:125px}
 .hero-art{right:-170px}
 .hero-meta{flex-wrap:wrap}
 .quick-select-label small{display:none}
}
@media(max-width:560px){
 .site-header{padding-left:13px;padding-right:13px;height:63px}
 .brand{gap:6px}.brand-icon{font-size:30px}.brand strong{font-size:14px}.brand small{font-size:6px;letter-spacing:.1em}
 .topnav .edition-tag{display:none}
 .theme-picker{gap:4px}.theme-picker span{display:none}
 .theme-picker select{font-size:11px;max-width:145px;padding:7px 6px}
 .hero h1{font-size:35px;margin-bottom:4px}
 .hero .eyebrow{font-size:9px;letter-spacing:.07em}
 .hero .hero-sub{font-size:12px;margin-bottom:7px}
 .hero-meta{gap:9px;font-size:10px}
 .quick-variation{gap:5px;flex-direction:column;align-items:stretch}
 .quick-select-label{flex-direction:row;min-width:0}
 .quick-select-controls select{max-width:none}
 .board-insight{padding:13px 14px 12px}
 .board-insight h3{font-size:21px}
 .board-insight #coachBody{font-size:12px}
 .workspace > .summary-card{padding:15px}
 .hero-art{display:none}
}

/* Automatic White move control, only visible while testing. */
.autoplay-toggle{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:650;color:var(--muted);white-space:nowrap;cursor:pointer;border:1px solid var(--border2);padding:8px 10px;border-radius:10px;background:var(--field);}
.autoplay-toggle[hidden]{display:none!important}
.autoplay-toggle input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}
.autoplay-toggle small{font-size:10px;font-weight:700;color:var(--accent);}
@media(max-width:560px){.training-header{flex-wrap:wrap}.autoplay-toggle{order:3;width:100%;justify-content:center;padding:7px}.side-indicator{margin-left:auto}}

/* V5 — board transport: immediately under board, ahead of coaching. */
.board-transport{margin:10px 0 16px;padding:10px 10px 8px;background:var(--bg2);border:1px solid var(--border2);border-radius:12px;box-shadow:0 6px 18px #050a141c}
.transport-actions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;align-items:stretch}
.transport-btn{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:7px 3px 6px;min-height:60px;border:1px solid var(--border2);border-radius:8px;color:var(--white);background:var(--panel);touch-action:manipulation}
.transport-btn:hover:not(:disabled){border-color:var(--accent);background:var(--bg2)}
.transport-btn:active:not(:disabled){transform:translateY(1px)}
.transport-btn:disabled{opacity:.33}
.transport-btn.transport-play{background:var(--accent);border-color:var(--accent);color:#10222d}
.transport-btn.transport-play:hover:not(:disabled){filter:brightness(1.09);background:var(--accent)}
.transport-btn.transport-play.playing{box-shadow:0 0 0 2px var(--accent)}
.transport-icon{font-family:'Segoe UI Symbol','DejaVu Sans',system-ui,sans-serif;font-size:23px;line-height:1.05;letter-spacing:-.03em;white-space:nowrap}
.transport-name{font-size:10px;font-weight:750;letter-spacing:.01em;line-height:1.15}
.transport-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 2px 0;font-size:10px;color:var(--muted)}
.transport-meta label{white-space:nowrap;display:flex;gap:7px;align-items:center}
.transport-meta select{background:var(--panel);color:var(--white);border:1px solid var(--border2);border-radius:6px;padding:3px 5px;font-size:11px}
@media(max-width:480px){.board-transport{padding:7px 6px 6px;margin:8px 0 13px;border-radius:9px}.transport-actions{gap:3px}.transport-btn{padding:8px 1px 6px;min-height:56px;border-radius:6px}.transport-icon{font-size:21px}.transport-name{font-size:9px}.transport-meta{font-size:9px;gap:5px}.transport-meta label{gap:3px}.transport-meta select{font-size:10px;padding:3px}}

.transport-icon{display:flex;align-items:center;justify-content:center;height:24px;width:28px}
.transport-icon svg{display:block;width:23px;height:23px;fill:currentColor;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}
.transport-icon svg[hidden]{display:none!important}
.transport-btn:nth-child(1) svg path:last-child,.transport-btn:nth-child(5) svg path:first-child{fill:currentColor}
.transport-btn:nth-child(6) svg{fill:none;stroke-width:2.2}
