:root{--app-bg:#f5f2e9;--surface-light:#fffdf8;--surface-dark:#153e32;--surface-subtle:#eeeae0;--border:#dcd7ca;--text-primary:#202d26;--text-secondary:#526157;--text-muted:#697368;--accent-gold:#ad9154;--success:#326344;--warning:#80612d;--error:#963f35;--sidebar-bg:#12382e;--card-radius:12px;--control-radius:7px;--page-gutter:34px;--section-gap:28px;--card-padding:24px;--control-height:44px;--font-display:Georgia,"Times New Roman",serif;--font-ui:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--bg:var(--app-bg);--panel:var(--surface-light);--ink:var(--text-primary);--muted:var(--text-muted);--line:var(--border);--accent:var(--surface-dark);--accent2:#e5ecdf;--accent-strong:#102f26;--accent-soft:#e5ecdf;--dark:var(--sidebar-bg);--warm:#e6d7af;--sq1:#ece2cf;--sq2:#6c816c;--danger:var(--error);--good:var(--success);--radius:var(--card-radius);--shadow:0 2px 8px rgba(25,36,28,.025)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.cw-shell{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.cw-sidebar{position:sticky;top:0;height:100vh;background:var(--dark);color:#f4f1e8;padding:28px 20px;display:flex;flex-direction:column;z-index:50}.cw-brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-weight:800;font-size:19px;padding:0 8px 28px}.cw-brand-mark{width:36px;height:36px;border-radius:11px;background:#e6d8ab;color:#171b17;display:grid;place-items:center;font-size:23px}.cw-nav{display:flex;flex-direction:column;gap:6px}.cw-nav a{color:#bbbfb6;text-decoration:none;padding:11px 12px;border-radius:11px;font-weight:650;font-size:14px}.cw-nav a:hover,.cw-nav a.is-active{background:#263229;color:#fff}.cw-sidebar-foot{margin-top:auto;color:#8f968d;font-size:12px;line-height:1.5;padding:12px 8px}.cw-mini-note{color:#dce5d8;font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:10px;margin-bottom:5px}.cw-main{min-width:0}.cw-topbar{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:rgba(244,241,232,.88);backdrop-filter:blur(12px);position:sticky;top:0;z-index:30}.cw-eyebrow,.cw-kicker{text-transform:uppercase;letter-spacing:.16em;font-size:10px;font-weight:900;color:#777a71}.cw-status-pill{display:flex;align-items:center;gap:7px;border:1px solid var(--line);padding:7px 10px;border-radius:999px;font-size:12px;background:#fff}.cw-status-pill span{width:7px;height:7px;border-radius:50%;background:#3b8d54}.cw-menu-button{display:none;border:0;background:none;font-size:23px}.cw-page{padding:46px 40px 70px;max-width:1440px;margin:0 auto}.cw-hero-row,.cw-page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:34px}.cw-page-heading{align-items:flex-start}.cw-hero-row h1,.cw-page-heading h1{font-size:clamp(36px,5vw,64px);line-height:.98;letter-spacing:-.055em;margin:10px 0 16px;max-width:850px}.cw-page-heading h1{font-size:clamp(34px,4vw,54px)}.cw-lead{font-size:18px;line-height:1.6;color:#5f625b;max-width:760px;margin:0}.cw-button{appearance:none;border:1px solid #c9c6bc;background:#fffdf8;color:var(--ink);border-radius:12px;padding:12px 16px;font:inherit;font-size:14px;font-weight:800;text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s ease}.cw-button:hover{border-color:var(--accent);box-shadow:none}.cw-button-primary{background:var(--accent);border-color:var(--accent);color:#fff}.cw-grid{display:grid;gap:18px}.cw-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.cw-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.cw-section-gap{margin-top:18px}.cw-stat-card,.cw-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.cw-stat-card{padding:22px}.cw-stat-card span,.cw-stat-card small{display:block;color:var(--muted);font-size:12px}.cw-stat-card strong{display:block;font-size:34px;letter-spacing:-.04em;margin:8px 0 2px}.cw-panel{padding:26px}.cw-panel h2{margin:4px 0 18px;font-size:25px;letter-spacing:-.03em}.cw-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.cw-chip{display:inline-flex;padding:6px 9px;border-radius:999px;background:var(--accent2);color:#33513c;font-size:11px;font-weight:850}.cw-workout-list{display:grid;gap:0;margin:5px 0 22px}.cw-workout-list>div{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #e6e2d7}.cw-workout-list>div>span{width:32px;height:32px;border-radius:50%;background:#eeebe1;display:grid;place-items:center;font-size:11px;font-weight:800}.cw-workout-list strong,.cw-workout-list small{display:block}.cw-workout-list small{color:var(--muted);margin-top:3px}.cw-profile-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 22px}.cw-profile-summary>div{padding:13px;border:1px solid #e4e0d6;border-radius:12px}.cw-profile-summary span,.cw-profile-summary strong{display:block}.cw-profile-summary span{font-size:11px;color:var(--muted);margin-bottom:5px}.cw-profile-summary strong{font-size:18px}.cw-text-link{font-size:13px;font-weight:850;color:var(--accent);text-decoration:none}.cw-muted{color:var(--muted);line-height:1.6}.cw-analyze-box{padding:20px}.cw-analyze-form{display:grid;grid-template-columns:minmax(220px,1fr) 150px minmax(280px,1fr) auto;gap:14px;align-items:end}.cw-analyze-form label>span{display:block;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px;color:#6e7169}.cw-analyze-form input[type=text],.cw-analyze-form select{width:100%;height:46px;border:1px solid #d6d2c8;border-radius:11px;background:#fff;padding:0 13px;font:inherit;outline:none}.cw-analyze-form input:focus,.cw-analyze-form select:focus{border-color:#68826e;box-shadow:0 0 0 3px rgba(66,100,74,.09)}.cw-checkbox{height:46px;border:1px solid #d6d2c8;border-radius:11px;padding:8px 12px;display:flex!important;align-items:center;gap:9px;background:#fff}.cw-checkbox>span{margin:0!important;text-transform:none!important;letter-spacing:0!important}.cw-checkbox strong,.cw-checkbox small{display:block}.cw-checkbox small{font-size:10px;color:var(--muted);font-weight:500}.cw-analyze-status{margin-top:16px;padding:13px 14px;border-radius:12px;background:#efede5;color:#5e6159;font-size:13px}.cw-analysis-results{display:grid;gap:18px;margin-top:18px}.cw-analysis-hero{display:flex;align-items:center;gap:15px}.cw-analysis-avatar{width:60px;height:60px;border-radius:16px;object-fit:cover;background:#ece9df}.cw-record{display:flex;gap:8px;flex-wrap:wrap}.cw-record span{padding:6px 9px;border-radius:8px;background:#f0eee6;font-size:12px;font-weight:800}.cw-table-list{display:grid}.cw-table-list>div{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #e6e2d7}.cw-table-list>div:last-child{border-bottom:0}.cw-table-list span{font-size:13px}.cw-table-list strong{font-size:12px;color:#666a62;text-align:right}.cw-game-list{display:grid;gap:8px}.cw-game-row{display:grid;grid-template-columns:90px 65px minmax(140px,1fr) 1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid #e8e4da;font-size:12px}.cw-result-win{color:var(--good)}.cw-result-loss{color:var(--danger)}.cw-result-draw{color:#7c6e3f}.cw-engine-note{padding:12px 14px;border-radius:12px;background:#f0eee5;font-size:12px;color:#60635c}.cw-mistake-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.cw-mistake-grid>div{padding:14px;border:1px solid #e3dfd4;border-radius:12px}.cw-mistake-grid span,.cw-mistake-grid strong{display:block}.cw-mistake-grid span{font-size:11px;color:var(--muted);min-height:32px}.cw-mistake-grid strong{font-size:25px;margin-top:6px}.cw-puzzle-layout{display:grid;grid-template-columns:minmax(360px,620px) minmax(280px,1fr);gap:20px;align-items:start}.cw-board-panel{padding:18px}.cw-board-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:12px;font-weight:850}.cw-board{display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1/1;width:100%;max-width:620px;border:1px solid #b9b4aa;overflow:hidden;border-radius:10px}.cw-square{border:0;padding:0;display:grid;place-items:center;font-size:clamp(28px,5vw,62px);line-height:1;cursor:pointer;position:relative;font-family:"Segoe UI Symbol","Noto Sans Symbols 2",serif}.cw-square.light{background:var(--sq1)}.cw-square.dark{background:var(--sq2)}.cw-square.is-selected{box-shadow:inset 0 0 0 5px rgba(224,188,76,.78)}.cw-square.is-target:after{content:"";width:22%;aspect-ratio:1;border-radius:50%;background:rgba(40,55,37,.3);position:absolute}.cw-piece-white{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.75)}.cw-piece-black{color:#111;text-shadow:0 1px 0 rgba(255,255,255,.18)}.cw-puzzle-side{position:sticky;top:92px}.cw-feedback{padding:14px;border:1px solid #dfdbd0;background:#f3f0e8;border-radius:12px;min-height:60px;font-size:13px;line-height:1.45;margin:18px 0}.cw-feedback.good{border-color:#a8c3ad;background:#eaf3ea;color:#2f6541}.cw-feedback.bad{border-color:#d8b2ad;background:#f8ecea;color:#8a372f}.cw-puzzle-actions{display:flex;gap:9px}.cw-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.cw-mini-stats>div{padding:12px;border-top:1px solid #e3dfd4}.cw-mini-stats span,.cw-mini-stats strong{display:block}.cw-mini-stats span{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.cw-mini-stats strong{font-size:22px;margin-top:4px}.cw-progress-track{height:8px;background:#e6e2d8;border-radius:999px;overflow:hidden;margin-top:22px}.cw-progress-track>div{height:100%;width:0;background:var(--accent);transition:.2s}.cw-focus-banner{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:14px;background:#263b2f;color:#fff;margin-bottom:18px}.cw-focus-banner span{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#c9d6c9}.cw-focus-banner small{margin-left:auto;color:#c8d0c8}.cw-empty{text-align:center;padding:48px}.cw-footer{padding:24px 40px 38px;color:#8a8c84;font-size:11px}.cw-chart-wrap{min-height:220px}canvas{max-width:100%}
@media(max-width:1050px){.cw-grid-4{grid-template-columns:repeat(2,1fr)}.cw-analyze-form{grid-template-columns:1fr 150px}.cw-checkbox{grid-column:1/2}.cw-puzzle-layout{grid-template-columns:1fr}.cw-puzzle-side{position:static}.cw-mistake-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.cw-shell{grid-template-columns:1fr}.cw-sidebar{position:fixed;left:-270px;width:250px;transition:.2s}.cw-sidebar.is-open{left:0}.cw-topbar{padding:0 18px}.cw-menu-button{display:block}.cw-page{padding:30px 18px 55px}.cw-hero-row,.cw-page-heading{display:block}.cw-hero-row .cw-button{margin-top:20px}.cw-grid-4,.cw-grid-2{grid-template-columns:1fr}.cw-profile-summary{grid-template-columns:1fr}.cw-analyze-form{grid-template-columns:1fr}.cw-checkbox{grid-column:auto}.cw-game-row{grid-template-columns:70px 55px 1fr}.cw-game-row .cw-game-opening,.cw-game-row .cw-game-link{display:none}.cw-board{max-width:100%}.cw-focus-banner{align-items:flex-start;flex-direction:column}.cw-focus-banner small{margin-left:0}.cw-footer{padding-left:18px}.cw-mistake-grid{grid-template-columns:1fr 1fr}}

/* Shared stable board shell and bounded live feedback. */
html{scrollbar-gutter:stable}
.cw-stable-board-page{display:flex;flex-direction:column}
.cw-stable-board-page>#cwPuzzleBoard{order:1;width:100%;margin-bottom:18px}
.cw-stable-board-page>.cw-practice-runner-summary,.cw-stable-board-page>.cw-puzzle-rating-runner,.cw-stable-board-page>.cw-daily-runner-summary,.cw-stable-board-page>.cw-training-streak,.cw-stable-board-page>#cwPersonalContext{order:2;width:100%}
.cw-stable-board-page>#cwPracticeCompletion,.cw-stable-board-page>#cwRushCompletion,.cw-stable-board-page>#cwReviewCompletion,.cw-stable-board-page>#cwDailyCompletion,.cw-stable-board-page>#cwGameDateCompletion{order:3;width:100%}
.cw-board-status{display:flex;flex-direction:column;justify-content:center;height:84px;min-height:84px;margin:18px 0;overflow-y:auto;overscroll-behavior:contain}
.cw-board-status .cw-feedback-title{display:block;font-size:15px;font-weight:950;line-height:1.2}
.cw-board-status .cw-feedback-detail{display:block;margin-top:4px;font-size:12px;font-weight:750;line-height:1.3;opacity:.86}
.cw-board-status.checkmate{border-color:#6f9978;background:#dfeee1;color:#214f34;box-shadow:inset 4px 0 0 #2f6b45}
.cw-board-status.checkmate .cw-feedback-title{text-transform:uppercase;letter-spacing:.09em}

/* Actual board-state feedback never changes board geometry. */
.cw-board.is-checkmate{box-shadow:0 0 0 3px rgba(47,107,69,.42),0 10px 28px rgba(26,35,27,.12)}
.cw-board.is-check .cw-square.is-checked-king:before{box-shadow:inset 0 0 0 clamp(3px,.55vw,5px) rgba(147,57,47,.72)}
.cw-board.is-checkmate .cw-square.is-checkmated-king:before{background:radial-gradient(circle,rgba(240,218,112,.12) 25%,rgba(47,107,69,.42) 100%);box-shadow:inset 0 0 0 clamp(4px,.72vw,7px) rgba(31,92,55,.96),inset 0 0 18px rgba(242,218,112,.48)}
.cw-board.is-checkmate-entering{animation:cw-checkmate-board 560ms ease-out}
.cw-board.is-checkmate-entering .cw-square.is-checkmated-king:before{animation:cw-checkmate-king 560ms ease-out}
@keyframes cw-checkmate-board{0%{box-shadow:0 0 0 0 rgba(47,107,69,0),0 10px 28px rgba(26,35,27,.12)}45%{box-shadow:0 0 0 6px rgba(47,107,69,.28),0 10px 28px rgba(26,35,27,.12)}100%{box-shadow:0 0 0 3px rgba(47,107,69,.42),0 10px 28px rgba(26,35,27,.12)}}
@keyframes cw-checkmate-king{0%{opacity:.3}45%{opacity:1}100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.cw-board.is-checkmate-entering,.cw-board.is-checkmate-entering .cw-square.is-checkmated-king:before{animation:none}}

/* Chessboard interaction and local SVG piece rendering. */
.cw-board{grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));isolation:isolate;box-shadow:0 10px 28px rgba(26,35,27,.12);user-select:none;-webkit-user-select:none}
.cw-square{width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;touch-action:manipulation;font:inherit}
.cw-square:focus-visible{outline:3px solid #f1c95c;outline-offset:-3px;z-index:5}
.cw-square.is-last-move{background-image:linear-gradient(rgba(221,190,73,.35),rgba(221,190,73,.35))}
.cw-board.is-improving-success-display .cw-square.is-last-move{background-image:linear-gradient(rgba(77,137,91,.58),rgba(77,137,91,.58));box-shadow:inset 0 0 0 3px rgba(241,227,171,.88)}
.cw-square.is-selected{box-shadow:inset 0 0 0 5px rgba(241,201,92,.9);z-index:3}
.cw-square.is-target:after{z-index:4;width:24%;background:rgba(31,52,37,.34);pointer-events:none}
.cw-square.is-target.has-piece:after{width:78%;border:4px solid rgba(31,52,37,.34);background:transparent;box-sizing:border-box}
.cw-piece-svg{position:relative;z-index:2;width:86%;height:86%;min-width:0;min-height:0;display:block;pointer-events:none;filter:drop-shadow(0 2px 1px rgba(18,22,18,.22))}
.cw-coordinate{position:absolute;z-index:6;font-size:clamp(8px,1.2vw,11px);font-weight:900;line-height:1;pointer-events:none;opacity:.82}
.cw-coordinate-rank{top:5%;left:6%}
.cw-coordinate-file{right:6%;bottom:5%}
.cw-square.light .cw-coordinate{color:var(--sq2)}
.cw-square.dark .cw-coordinate{color:var(--sq1)}
.cw-board.is-busy .cw-square{cursor:wait}
.cw-board.is-solved{box-shadow:0 0 0 3px rgba(47,107,69,.28),0 10px 28px rgba(26,35,27,.12)}
.cw-board.has-error{display:grid;place-items:center;padding:24px;background:#f8ecea;color:var(--danger);text-align:center}
.cw-board-error{max-width:32rem;margin:0;font-size:14px;line-height:1.5}
.cw-button:disabled{cursor:not-allowed;opacity:.48;transform:none;box-shadow:none}
.cw-button-subtle{margin-top:2px;padding:7px 2px;border-color:transparent;background:transparent;color:var(--muted);font-size:12px;font-weight:750;box-shadow:none}
.cw-button-subtle:hover{color:var(--accent);background:transparent;box-shadow:none;transform:none}
.cw-mini-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:520px){.cw-mini-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Personalized puzzle source and mistake context. */
.cw-puzzle-tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
.cw-puzzle-tab{appearance:none;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:9px 13px;font:inherit;font-size:12px;font-weight:850;cursor:pointer}
.cw-puzzle-tab span{display:inline-grid;place-items:center;min-width:22px;margin-left:6px;padding:2px 6px;border-radius:999px;background:#ebe8df;color:var(--ink)}
.cw-puzzle-tab.is-active{background:var(--accent);border-color:var(--accent);color:#fff}
.cw-puzzle-tab.is-active span{background:rgba(255,255,255,.17);color:#fff}
.cw-personal-overview,.cw-personal-empty,.cw-personal-context{margin-bottom:18px}
.cw-personal-overview[hidden],.cw-personal-empty[hidden],.cw-personal-context[hidden],.cw-personal-solution[hidden]{display:none}
.cw-personal-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.cw-personal-summary>div{padding:13px;border:1px solid #e3dfd4;border-radius:12px}
.cw-personal-summary span,.cw-personal-summary strong{display:block}
.cw-personal-summary span{font-size:11px;color:var(--muted);min-height:28px}
.cw-personal-summary strong{font-size:22px;margin-top:5px}
.cw-personal-context-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.cw-personal-context h2{margin-bottom:8px}
.cw-personal-explanation{max-width:780px;font-size:16px;line-height:1.6;margin:8px 0 14px}
.cw-personal-meta{display:flex;gap:10px 18px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:12px}
.cw-personal-instruction{font-weight:800;color:var(--accent);margin:18px 0 0}
.cw-personal-solution{margin-top:20px;padding:18px;border-radius:14px;background:#eaf3ea;border:1px solid #a8c3ad;color:#2f6541}
.cw-personal-solution h3{margin:5px 0 8px;font-size:20px}
.cw-personal-solution p{margin:7px 0;line-height:1.5}
.cw-personal-save-status{margin-top:14px}
.cw-personal-save-status>strong,.cw-personal-save-status>small,.cw-personal-save-status>a{display:block}
.cw-personal-save-status>div{display:flex;gap:8px 18px;flex-wrap:wrap;margin:8px 0}
.cw-personal-save-status>div span{font-weight:800;color:var(--ink)}
.cw-personal-save-status>small{line-height:1.5;margin-bottom:7px}
@media(max-width:900px){.cw-personal-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.cw-personal-overview .cw-panel-head{display:block}.cw-personal-overview .cw-button{margin-bottom:16px}.cw-personal-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Free puzzle navigation, hints, and responsive board annotations. */
.cw-board-wrapper{position:relative;width:100%;max-width:620px;aspect-ratio:1/1}
.cw-board-wrapper .cw-board{width:100%;height:100%;max-width:none}
.cw-board-annotations{position:absolute;inset:0;z-index:8;display:block;width:100%;height:100%;overflow:visible;pointer-events:none}
.cw-board-annotations [data-cw-annotation-layer="user"] line{stroke:rgba(47,107,69,.72);stroke-width:.16;stroke-linecap:round}
.cw-board-annotations [data-cw-annotation-layer="hint"] line{stroke:rgba(36,76,58,.9);stroke-width:.18;stroke-linecap:round}
#cwUserArrowhead path{fill:rgba(47,107,69,.72)}
#cwHintArrowhead path,#cwLessonHintArrowhead path{fill:rgba(36,76,58,.9)}
.cw-square:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none}
.cw-square.is-user-highlight:before{background:rgba(47,107,69,.3)}
.cw-square.is-hint-source:before{background:rgba(47,107,69,.24);box-shadow:inset 0 0 0 clamp(3px,.55vw,5px) rgba(36,76,58,.92)}
.cw-square.is-hint-target:before{background:rgba(80,139,91,.32);box-shadow:inset 0 0 0 clamp(3px,.55vw,5px) rgba(36,76,58,.78)}
.cw-square.is-hint-reveal:before{background:rgba(80,139,91,.36);box-shadow:inset 0 0 0 clamp(3px,.55vw,5px) rgba(36,76,58,.88)}
.cw-square.is-user-highlight.is-hint-source:before{background:rgba(47,107,69,.36)}
.cw-puzzle-navigation{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;margin:18px 0 10px}
.cw-puzzle-navigation .cw-button:first-child{justify-self:start}
.cw-puzzle-navigation .cw-button:last-child{justify-self:end}
.cw-puzzle-navigation>span{min-width:64px;text-align:center;color:var(--muted);font-size:13px;font-weight:850;font-variant-numeric:tabular-nums}
.cw-puzzle-actions{flex-wrap:wrap}
.cw-puzzle-actions>.cw-button[hidden]{display:none!important}
.cw-improving-next-candidate{width:100%;margin:0 0 10px;white-space:normal}.cw-improving-next-candidate[hidden]{display:none!important}
@media(max-width:420px){.cw-puzzle-navigation{gap:7px}.cw-puzzle-navigation .cw-button{padding:10px 11px;font-size:12px}.cw-puzzle-navigation>span{min-width:52px;font-size:12px}}

/* White-relative engine evaluation and incorrect-move feedback. */
.cw-board-stage{display:flex;align-items:stretch;gap:8px;width:100%;max-width:662px}
.cw-side-to-move{display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;margin:0 0 8px;padding:5px 9px 5px 6px;border:1px solid #d8d4c9;border-radius:999px;background:#f7f4ec;color:var(--ink);font-size:12px;font-weight:850;line-height:1.2}
.cw-side-to-move-piece{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-family:"Segoe UI Symbol","Noto Sans Symbols 2",serif;font-size:17px;line-height:1}
.cw-side-to-move.is-white .cw-side-to-move-piece{background:#263229;color:#fff;text-shadow:0 1px 1px #000}
.cw-side-to-move.is-black .cw-side-to-move-piece{background:#e8e3d6;color:#111;border:1px solid #c9c3b5}
.cw-board-stage .cw-board-wrapper{flex:1 1 auto;min-width:0}
.cw-evaluation-bar{position:relative;flex:0 0 34px;align-self:stretch;overflow:hidden;border:1px solid #b9b4aa;border-radius:8px;background:#26312a;color:#fff;box-shadow:0 6px 16px rgba(26,35,27,.12);font-variant-numeric:tabular-nums}
.cw-evaluation-fill{position:absolute;inset:auto 0 0;height:50%;background:#f4f1e8;transition:height .22s ease}
.cw-evaluation-value{position:absolute;z-index:2;left:50%;bottom:5px;transform:translateX(-50%);font-size:10px;font-weight:900;letter-spacing:-.02em;color:#26312a;text-shadow:0 1px rgba(255,255,255,.65)}
.cw-evaluation-bar.is-black-advantage .cw-evaluation-value{top:5px;bottom:auto;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8)}
.cw-evaluation-bar.is-loading .cw-evaluation-fill{height:50%;background:#d8d5cb}
.cw-evaluation-bar.is-loading .cw-evaluation-value,.cw-evaluation-bar.is-unavailable .cw-evaluation-value{top:50%;bottom:auto;transform:translate(-50%,-50%);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8)}
.cw-evaluation-bar.is-unavailable{background:repeating-linear-gradient(135deg,#59605a 0,#59605a 6px,#676e68 6px,#676e68 12px)}
.cw-evaluation-bar.is-unavailable .cw-evaluation-fill{display:none}
.cw-square.is-incorrect-destination:before{background:rgba(176,54,45,.5);box-shadow:inset 0 0 0 clamp(3px,.55vw,5px) rgba(133,35,29,.9)}
.cw-incorrect-feedback{margin:0 0 18px;padding:16px;border:1px solid #d8b2ad;border-radius:12px;background:#fbf0ee;color:#71322d}
.cw-incorrect-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cw-incorrect-head strong{font-size:18px;color:#772e28}
.cw-incorrect-head span{padding:5px 8px;border-radius:999px;background:#efd4d0;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}
.cw-incorrect-feedback>p{margin:11px 0 14px;font-size:13px;line-height:1.55}
.cw-incorrect-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 14px}
.cw-incorrect-details>div{padding:9px 10px;border:1px solid rgba(138,55,47,.14);border-radius:9px;background:rgba(255,255,255,.5)}
.cw-incorrect-details dt{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em;color:#99615b}
.cw-incorrect-details dd{margin:4px 0 0;font-size:13px;font-weight:850;color:#5f2c28}
.cw-mini-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:520px){.cw-board-stage{gap:5px}.cw-evaluation-bar{flex-basis:27px;border-radius:6px}.cw-evaluation-value{font-size:9px}.cw-incorrect-details{grid-template-columns:1fr}}

/* Table-backed personal training collections. */
.cw-collection-list,.cw-collection-puzzle-list{display:grid;gap:10px}
.cw-collection-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border:1px solid #e3dfd4;border-radius:14px;background:#fffdf8;color:inherit;text-decoration:none}
.cw-collection-card h3,.cw-collection-card p{margin:0 0 5px}.cw-collection-card small{color:var(--muted)}
.cw-collection-actions{display:flex;gap:8px;flex-wrap:wrap}
.cw-collection-progress{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 20px;padding:13px 15px;border-radius:12px;background:#edf2e9;color:#365341}
.cw-collection-complete{font-weight:850;color:var(--good)}
.cw-collection-puzzle-list>.cw-kicker{margin:8px 0 3px}
.cw-collection-puzzle-row{display:grid;grid-template-columns:28px minmax(0,1fr);gap:11px;align-items:center;padding:12px 10px;border-bottom:1px solid #e7e3d9;color:inherit;text-decoration:none;border-radius:9px}
.cw-collection-puzzle-row:hover{background:#f3f1e9}.cw-collection-puzzle-row small,.cw-collection-puzzle-row strong{display:block}.cw-collection-puzzle-row small{margin-top:3px;color:var(--muted);font-size:11px}
.cw-puzzle-state{font-size:20px;font-weight:900;color:#777}.cw-collection-puzzle-row.is-done .cw-puzzle-state{color:var(--good)}.cw-collection-puzzle-row.is-needs_review .cw-puzzle-state{color:#8a6a2e}
.cw-personal-debug{margin-top:20px;padding-top:14px;border-top:1px solid #e3dfd4}.cw-personal-debug summary{cursor:pointer;color:var(--muted);font-size:12px;font-weight:800}.cw-personal-debug form{margin-top:12px}
.cw-button-danger{border-color:#d4aaa4;color:var(--danger);background:#fff7f5}
.cw-personal-notice{padding:11px 13px;border-radius:10px;background:#eaf3ea;color:var(--good);font-weight:750}.cw-personal-notice.is-error{background:#f8ecea;color:var(--danger)}
.cw-personal-collection-created{margin:14px 0;padding:18px;border:1px solid #a8c3ad;border-radius:14px;background:#eaf3ea}.cw-personal-collection-created h3{margin:5px 0}.cw-personal-collection-created p{margin:7px 0 14px}
@media(max-width:600px){.cw-collection-card,.cw-personal-overview .cw-panel-head{align-items:stretch;flex-direction:column}.cw-collection-actions{display:grid}.cw-collection-actions .cw-button{margin:0}}

/* Pass 3: persisted scan jobs, brilliant candidates, and evidence-backed profiles. */
.cw-analysis-job{margin-top:18px}.cw-job-count{display:flex;justify-content:space-between;align-items:center;margin:12px 0 8px}.cw-job-progress{height:14px;overflow:hidden;border-radius:999px;background:#e5e1d6}.cw-job-progress span{display:block;width:0;height:100%;border-radius:inherit;background:var(--good);transition:width .25s ease}.cw-job-stats{margin-top:16px}.cw-job-stats>div{padding:12px;border-radius:10px;background:#f5f2e9}.cw-job-stats span,.cw-job-stats strong{display:block}.cw-job-stats span{font-size:11px;color:var(--muted)}.cw-job-actions,.cw-collection-filters{display:flex;gap:8px;flex-wrap:wrap}.cw-job-diagnostics{font-size:12px;color:#6c6252;white-space:pre-line}.cw-collection-filters{margin:0 0 18px}.cw-collection-filters .is-active{border-color:var(--good);background:#e8f0e6;color:var(--good)}
.cw-collection-puzzle-row.is-brilliant{background:#fff9e8;border-color:#e4c66f}.cw-collection-puzzle-row.is-brilliant .cw-puzzle-state{color:#a16b00;font-size:17px}.cw-brilliant-details{margin:18px 0;border-color:#dfbd5c;background:#fff9e8}.cw-brilliant-chip{display:grid;place-items:center;min-width:46px;height:46px;border-radius:50%;background:#e0a51c;color:#fff;font-size:22px;font-weight:950;box-shadow:0 4px 14px rgba(146,95,0,.2)}.cw-square.is-brilliant-target::after{content:'!!';position:absolute;right:3px;top:3px;z-index:5;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#e0a51c;color:#fff;font-size:11px;font-weight:950;box-shadow:0 2px 5px rgba(0,0,0,.2)}
.cw-profile-category{padding:15px;border:1px solid #e3dfd4;border-radius:12px;background:#fffdf8}.cw-profile-category span,.cw-profile-category strong,.cw-profile-category small,.cw-profile-category em{display:block}.cw-profile-category strong{font-size:28px;color:#365341}.cw-profile-category small{margin-top:2px;color:var(--muted)}.cw-profile-category em{margin-top:6px;color:#746a58;font-size:11px;font-style:normal}.cw-profile-category.is-critical{border-color:#e29a45;background:#fff2df}.cw-profile-category.is-critical strong,.cw-profile-category.is-critical small{color:#c36812}
@media(max-width:600px){.cw-job-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.cw-job-actions,.cw-collection-filters{display:grid}.cw-job-actions .cw-button,.cw-collection-filters .cw-button{margin:0}}

/* Shared physical piece dragging and the free analysis board. */
.cw-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.cw-square.has-piece{cursor:grab}
.cw-board.is-piece-dragging,.cw-board.is-piece-dragging .cw-square{cursor:grabbing}
.cw-board.is-piece-dragging{touch-action:none}
.cw-square.is-drag-origin .cw-piece-svg{visibility:hidden}
.cw-drag-piece{position:fixed;z-index:1000;display:grid;place-items:center;pointer-events:none;user-select:none;-webkit-user-select:none;will-change:left,top;filter:drop-shadow(0 8px 8px rgba(18,22,18,.28))}
.cw-drag-piece .cw-piece-svg{width:86%;height:86%;display:block}
.cw-drag-piece.is-snapping-back{transition:left .15s ease-out,top .15s ease-out}
.cw-promotion-backdrop{position:fixed;inset:0;z-index:1200;background:transparent;touch-action:none;user-select:none;-webkit-user-select:none}
.cw-promotion-chooser{position:fixed;display:grid;grid-template-columns:1fr auto;grid-template-areas:"label cancel" "choices choices";gap:7px;padding:9px;border:1px solid #b9b4aa;border-radius:12px;background:#fffdf8;box-shadow:0 12px 34px rgba(18,27,20,.28);color:var(--ink)}
.cw-promotion-label{grid-area:label;align-self:center;padding-left:3px;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cw-promotion-choices{grid-area:choices;display:grid;grid-template-columns:repeat(4,minmax(44px,56px));gap:5px}
.cw-promotion-choice{width:clamp(44px,11vw,56px);aspect-ratio:1;border:1px solid #d7d2c6;border-radius:9px;background:#f4f1e8;display:grid;place-items:center;padding:2px;cursor:pointer}
.cw-promotion-choice:hover,.cw-promotion-choice:focus-visible{background:#e8eee5;border-color:var(--accent);outline:2px solid rgba(47,107,69,.28);outline-offset:1px}
.cw-promotion-choice .cw-piece-svg{width:90%;height:90%}
.cw-promotion-cancel{grid-area:cancel;width:24px;height:24px;border:0;border-radius:7px;background:transparent;color:var(--muted);font:700 20px/1 sans-serif;cursor:pointer}
.cw-promotion-cancel:hover,.cw-promotion-cancel:focus-visible{background:#ece8dd;color:var(--ink);outline:2px solid rgba(47,107,69,.24)}
.cw-square.is-promotion-pending{box-shadow:inset 0 0 0 5px rgba(241,201,92,.95);z-index:7}
.cw-board.is-promotion-open .cw-square{cursor:default}
.cw-workout-breadcrumb{margin:-12px 0 18px}
.cw-auth-required{margin-bottom:18px;padding:18px;border:1px solid #d8c89e;border-radius:14px;background:#f8f1dc}
.cw-auth-required strong,.cw-auth-required p{display:block;margin:0 0 9px}
.cw-auth-login-link{margin-left:5px}
.cw-analysis-controls{display:flex;gap:8px;flex-wrap:wrap}
.cw-analysis-engine-line{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:18px}
.cw-analysis-engine-line>div{padding:12px;border:1px solid #e3dfd4;border-radius:11px;background:#fffdf8}
.cw-analysis-engine-line span,.cw-analysis-engine-line strong{display:block}
.cw-analysis-engine-line span{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.cw-analysis-engine-line strong{margin-top:5px;font-size:18px}
.cw-analysis-engine-line>p{grid-column:1/-1;margin:0;padding:12px;border-radius:10px;background:#f1eee5;color:#555b54;font-size:13px;line-height:1.55}
.cw-analysis-move-list{display:grid;gap:4px;max-height:220px;overflow:auto;margin-top:8px;padding:8px;border:1px solid #e3dfd4;border-radius:11px;background:#fffdf8}
.cw-analysis-move-row{display:grid;grid-template-columns:38px repeat(2,minmax(0,1fr));gap:4px;align-items:center}
.cw-analysis-move-row>span{color:var(--muted);font-size:11px;font-weight:800;text-align:right;padding-right:5px}
.cw-analysis-move-row button{appearance:none;border:0;border-radius:7px;background:transparent;padding:6px 8px;text-align:left;font:inherit;font-size:13px;font-weight:750;cursor:pointer}
.cw-analysis-move-row button:hover{background:#eeebe1}.cw-analysis-move-row button.is-future{opacity:.42}
.cw-analysis-fen summary{cursor:pointer;font-size:12px;font-weight:850;color:var(--accent)}
.cw-analysis-fen label{display:block;margin:12px 0 6px;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.cw-analysis-fen textarea{width:100%;resize:vertical;border:1px solid #d6d2c8;border-radius:10px;background:#fff;padding:10px;font:12px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;margin-bottom:9px}
#cwAnalysisArrowhead path{fill:rgba(47,107,69,.72)}
@media(max-width:760px){.cw-grid-3{grid-template-columns:1fr}.cw-analysis-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Collection-owned player imitation setup and game. */
.cw-imitation-entry{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:18px;border:1px solid #cfd9ca;border-radius:14px;background:#f0f4eb}
.cw-imitation-entry h3{margin:5px 0}.cw-imitation-entry p{margin:0}
.cw-imitation-facts{display:flex;gap:8px 18px;flex-wrap:wrap;margin-top:10px;color:#4d5d50;font-size:12px;font-weight:750}
.cw-imitation-setup{max-width:860px}
.cw-imitation-model-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.cw-imitation-model-grid>div{padding:14px;border:1px solid #e3dfd4;border-radius:12px;background:#fffdf8}
.cw-imitation-model-grid span,.cw-imitation-model-grid strong{display:block}.cw-imitation-model-grid span{margin-bottom:6px;color:var(--muted);font-size:11px}.cw-imitation-model-grid strong{font-size:16px}
.cw-imitation-side-choices,.cw-imitation-controls,.cw-imitation-post-actions{display:flex;gap:9px;flex-wrap:wrap}
.cw-imitation-side-choices .cw-button{min-width:125px}
.cw-board-stage-no-eval{max-width:620px}.cw-board.is-input-disabled .cw-square.has-piece{cursor:default}
#cwPuzzleBoard .cw-board-stage-no-eval{margin-inline:auto}
.cw-imitation-move{padding:6px 8px;font-size:13px;font-weight:750}
.cw-imitation-complete{margin-top:20px;padding:17px;border:1px solid #a8c3ad;border-radius:13px;background:#eaf3ea;color:#2f6541}
.cw-imitation-complete h3{margin:5px 0 7px;font-size:22px}.cw-imitation-complete p{margin:0 0 12px;line-height:1.5}
.cw-imitation-complete dl{display:grid;gap:5px;margin:0 0 14px}.cw-imitation-complete dl>div{display:flex;justify-content:space-between;gap:12px}.cw-imitation-complete dt{color:#55705d}.cw-imitation-complete dd{margin:0;font-weight:850}
.cw-personal-debug pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;border-radius:10px;background:#efede5;color:#50554f;font:11px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}
#cwImitationArrowhead path{fill:rgba(47,107,69,.72)}
@media(max-width:760px){.cw-imitation-entry{align-items:stretch;flex-direction:column}.cw-imitation-model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cw-imitation-side-choices{display:grid;grid-template-columns:1fr}.cw-imitation-side-choices .cw-button{min-width:0}}
@media(max-width:440px){.cw-imitation-model-grid{grid-template-columns:1fr}.cw-imitation-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Phase 1 product structure: daily training, a quieter public shell, and admin isolation. */

html{scroll-behavior:smooth}
/* The hidden state must win over component display rules (analysis pause/cancel). */
[hidden]:not([hidden="until-found"]){display:none!important}
button,a,input,select,textarea{font:inherit}
.cw-shell{grid-template-columns:232px minmax(0,1fr)}
.cw-main{width:100%;min-width:0}
.cw-sidebar{width:232px;padding:24px 16px;background:var(--dark)}
.cw-sidebar-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.cw-brand{padding:0 8px 30px;gap:11px;font-size:21px;font-family:var(--font-display);font-weight:400;letter-spacing:-.025em;line-height:1.06;color:#f6f0df}
.cw-brand-wordmark>span{display:block}.cw-logo{display:block;width:100%;height:100%}.cw-nav-icon{width:19px;height:19px;flex:0 0 19px;opacity:.85}.cw-chevron{width:16px;height:16px}.cw-brand-wordmark{min-width:0}
.cw-brand-mark{--logo-detail:var(--sidebar-bg);width:40px;height:44px;flex:0 0 40px;border-radius:0;background:transparent;color:var(--warm)}
.cw-sidebar-close{display:none;width:38px;height:38px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:25px;cursor:pointer}
.cw-nav{gap:3px}
.cw-nav a{display:flex;align-items:center;gap:12px;min-height:46px;padding:11px 14px;border:1px solid transparent;border-radius:var(--control-radius);font-size:14px;font-weight:500;color:#c4d1c7}
.cw-nav a:hover{background:#204a3d;color:#fff}.cw-nav a.is-active{background:#294d3f;border-color:#48634f;color:#fff6df;box-shadow:inset 3px 0 var(--accent-gold)}
.cw-nav-beta{flex:0 0 auto;padding:2px 6px;border:1px solid var(--accent-gold);border-radius:999px;background:var(--warm);color:var(--surface-dark);font-size:11px;font-weight:600;line-height:1.2;letter-spacing:.02em;white-space:nowrap}
.cw-admin-nav{margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.1)}
.cw-admin-nav a{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cw-admin-nav small{padding:3px 6px;border-radius:99px;background:rgba(232,217,170,.12);color:#d9c98f;font-size:8px;letter-spacing:.09em;text-transform:uppercase}
.cw-sidebar-foot{padding:16px 9px 4px}
.cw-mini-note{font-size:11px;line-height:1.6;text-transform:none;letter-spacing:.02em;font-weight:400;color:#aebeb0;border-top:1px solid #365346;padding-top:18px}
.cw-sidebar-scrim{display:none}
.cw-topbar{height:60px;padding:0 var(--page-gutter);background:var(--app-bg);backdrop-filter:none}
.cw-topbar-premium{position:absolute;left:50%;transform:translateX(-50%);display:inline-flex;align-items:center;gap:7px;color:var(--warning);font-size:19px;font-weight:750;letter-spacing:.035em;line-height:1;white-space:nowrap}
.cw-topbar-premium svg{width:21px;height:21px;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cw-menu-button{width:44px;height:44px;padding:12px;border:0;border-radius:10px;background:transparent;cursor:pointer}
.cw-menu-button span{display:block;width:20px;height:2px;margin:4px auto;border-radius:2px;background:var(--ink)}
.cw-mobile-brand{display:none;color:var(--ink);font-weight:850;text-decoration:none;letter-spacing:-.02em}
.cw-topbar-spacer{flex:1}
.cw-account{position:relative}
.cw-account summary{display:flex;align-items:center;gap:8px;min-height:44px;padding:4px 8px 4px 5px;border-radius:999px;cursor:pointer;list-style:none;font-size:12px;font-weight:800}
.cw-account summary::-webkit-details-marker{display:none}
.cw-account summary:hover{background:rgba(36,76,58,.07)}
.cw-account-avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px}
.cw-account-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:170px;padding:7px;border:1px solid var(--line);border-radius:12px;background:var(--panel);box-shadow:0 14px 34px rgba(24,36,27,.14)}
.cw-account-menu a{display:block;padding:10px 11px;border-radius:8px;color:var(--ink);text-decoration:none;font-size:13px;font-weight:700}
.cw-account-menu a:hover{background:#efede5}
.cw-account-sign-in{color:var(--accent);font-size:13px;font-weight:850;text-decoration:none}
.cw-page{width:100%;max-width:1220px;padding:32px var(--page-gutter) 56px}
.cw-page-heading{margin-bottom:var(--section-gap)}
.cw-page-heading h1,.cw-hero-row h1{max-width:850px;margin:9px 0 10px;font-family:var(--font-display);font-weight:400;font-size:clamp(30px,3.1vw,42px);line-height:1.12;letter-spacing:-.035em}
.cw-lead{max-width:710px;font-size:14px;line-height:1.6;color:var(--text-secondary)}
.cw-panel{padding:var(--card-padding)}
.cw-panel h2{font-size:21px;font-weight:650}
.cw-button{min-height:var(--control-height);border-radius:var(--control-radius);padding:10px 15px;font-family:var(--font-ui);font-weight:600;font-size:13px;line-height:1.35;transition:background-color .16s,border-color .16s,color .16s;white-space:normal;text-align:center}
.cw-button-large{min-height:var(--control-height);padding-inline:18px}
.cw-button-primary{background:var(--accent);border-color:var(--accent)}
.cw-button-primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}
.cw-section-block{margin-top:var(--section-gap)}
.cw-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:15px}
.cw-section-heading h2{margin:5px 0 0;font-size:21px;font-weight:650;letter-spacing:-.025em}
.cw-section-heading>span{color:var(--muted);font-size:12px;font-weight:800}
.cw-empty{max-width:760px;margin-inline:auto;padding:32px var(--card-padding)}
.cw-empty h2,.cw-inline-empty h2,.cw-inline-empty h3{margin:0 0 8px;letter-spacing:-.03em}
.cw-empty p,.cw-inline-empty p{max-width:530px;margin:0 auto 20px;color:var(--muted);line-height:1.55}
.cw-empty-actions{display:flex;align-items:center;justify-content:center;gap:9px;flex-wrap:wrap}
.cw-inline-empty{padding:24px;border:1px dashed #cbc7bc;border-radius:14px;background:rgba(255,253,247,.55)}
.cw-inline-empty p{margin:0 0 15px}
.cw-footer{display:flex;justify-content:space-between;gap:20px;max-width:1220px;margin:0 auto;padding:24px 34px 34px;border-top:1px solid rgba(217,213,202,.72)}

/* Home / today's workout. */
.cw-home-heading{align-items:flex-end}
.cw-home-heading h1{font-size:clamp(30px,3.1vw,42px)}
.cw-today-date{padding-bottom:4px;color:var(--muted);font-family:Georgia,"Times New Roman",serif;font-size:15px;font-style:italic;white-space:nowrap}
.cw-today-card{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);overflow:hidden;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--surface-light);color:var(--ink);box-shadow:none}
.cw-today-main{padding:var(--card-padding)}
.cw-today-main .cw-kicker,.cw-today-card>.cw-kicker{color:var(--text-muted)}
.cw-today-card h2{max-width:660px;margin:8px 0;font-family:var(--font-ui);font-size:24px;font-weight:600;letter-spacing:-.025em}
.cw-today-card p{max-width:710px;margin:0 0 16px;color:var(--text-secondary);font-size:13px;line-height:1.6}
.cw-today-card .cw-button-primary{background:var(--accent);border-color:var(--accent);color:#fff}
.cw-today-breakdown{display:grid;align-content:center;padding:12px var(--card-padding);border-left:1px solid var(--line);background:var(--surface-subtle)}
.cw-today-breakdown>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 16px;padding:10px 0;border-bottom:1px solid var(--line)}
.cw-today-breakdown>div:last-child{border-bottom:0}
.cw-today-breakdown span{font-size:13px;font-weight:800}
.cw-today-breakdown strong{grid-row:1/3;grid-column:2;font-size:24px;font-weight:600;font-variant-numeric:tabular-nums}
.cw-today-breakdown small{color:var(--text-secondary);font-size:11px}
.cw-today-empty{display:block;padding:var(--card-padding);text-align:left;background:var(--panel);color:var(--ink)}
.cw-today-empty>.cw-kicker{color:var(--muted)}
.cw-today-empty h2{margin-inline:0;font-family:var(--font-ui)}
.cw-today-empty p{margin-inline:0;color:var(--text-secondary)}
.cw-admin-empty-link{display:inline-block;margin-top:20px}
.cw-home-daily-hub{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(280px,.88fr);overflow:hidden;border:1px solid var(--accent);border-radius:var(--card-radius);background:var(--accent);color:#fff;box-shadow:none}
.cw-home-daily-main{padding:var(--card-padding)}.cw-home-daily-main .cw-kicker{color:#cdd9ce}.cw-home-daily-main h2{max-width:600px;margin:9px 0 10px;font-family:Georgia,"Times New Roman",serif;font-size:32px;font-weight:400;letter-spacing:-.03em}.cw-home-daily-main>p{max-width:590px;margin:0 0 24px;color:#d4ddd5;line-height:1.55}.cw-home-daily-main .cw-button-primary{background:var(--warm);border-color:var(--warm);color:#1b2b21}
.cw-home-daily-action{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.cw-home-daily-action>span{color:#d4ddd5;font-size:12px;font-weight:700}.cw-home-daily-progress{display:grid;gap:10px;margin:0 0 16px}.cw-home-daily-progress>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.cw-home-daily-progress strong{font-size:21px;font-variant-numeric:tabular-nums}.cw-home-daily-progress span{color:#d4ddd5;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}.cw-home-daily-main .cw-workout-progress{background:rgba(255,255,255,.2)}.cw-home-daily-main .cw-workout-progress>span{background:var(--warm)}.cw-home-daily-main .cw-daily-plan-note{color:#fff4cf}
.cw-daily-source-progress{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 12px}.cw-daily-source-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:13px 14px;border:1px solid rgba(255,255,255,.24);border-radius:10px;background:rgba(255,255,255,.11)}.cw-daily-source-row>span{font-size:13px;font-weight:750}.cw-daily-source-row>strong{font-size:17px;font-variant-numeric:tabular-nums}
.cw-daily-type-progress{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 20px}.cw-daily-type-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 12px;padding:10px 12px;border:1px solid rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.07)}.cw-daily-type-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:750}.cw-daily-type-row>strong{font-size:12px;font-variant-numeric:tabular-nums}.cw-daily-type-bar{grid-column:1/-1;height:4px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.2)}.cw-daily-type-bar>span{display:block;height:100%;border-radius:inherit;background:var(--warm)}
.cw-home-daily-streak{display:flex;align-items:stretch;padding:22px;border-left:1px solid rgba(255,255,255,.13);background:rgba(7,24,15,.15)}.cw-home-daily-streak .cw-training-streak{width:100%;margin:0;border-color:transparent;box-shadow:none}.cw-home-daily-streak .cw-streak-history{grid-template-columns:repeat(7,minmax(0,1fr))}
.cw-home-links{display:flex;gap:22px;margin-top:20px;font-size:13px;font-weight:800}.cw-workout-home-shortcut{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1000px;margin:26px 0;padding:13px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:700}
.cw-recent-game-panel>.cw-section-heading p{max-width:680px;margin:8px 0 0;color:var(--text-secondary);font-size:13px;line-height:1.55}

/* Authenticated visual primitives. Board dimensions and feedback slots are owned below. */
.cw-shell{font-family:var(--font-ui)}
.cw-shell :is(.cw-kicker,.cw-eyebrow){font-family:var(--font-ui);font-size:10px;font-weight:650;letter-spacing:.13em}
.cw-shell :is(h2,h3){text-wrap:pretty}
.cw-shell :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea){max-width:100%;min-width:0;border:1px solid var(--border);border-radius:var(--control-radius);background:var(--surface-light);color:var(--ink);font:inherit}
.cw-shell :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select){min-height:var(--control-height);padding:9px 12px}
.cw-shell textarea{padding:12px;overflow-wrap:anywhere}
.cw-shell :is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--accent-gold);outline-offset:3px}
.cw-shell :is(button,input,select,textarea):disabled{cursor:not-allowed;opacity:.58}
.cw-button-ghost,.cw-button-subtle{background:transparent;border-color:transparent;color:var(--accent)}
.cw-button-subtle{background:var(--surface-subtle)}
.cw-button-small{min-height:36px;padding:7px 11px;font-size:12px}
.cw-button-icon{width:var(--control-height);padding:10px}
.cw-card-subtle{background:var(--surface-subtle);border:1px solid var(--line);border-radius:var(--card-radius)}
.cw-card-interactive:hover,.cw-card-selected{border-color:var(--accent-gold)}
.cw-skip-link{position:fixed;top:8px;left:8px;transform:translateY(-160%);z-index:100000;background:var(--panel);color:var(--accent);padding:12px 18px;border:2px solid var(--accent-gold);border-radius:var(--control-radius)}
.cw-skip-link:focus{transform:none}
.cw-account summary{font-weight:500;max-width:280px}
.cw-account-name{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cw-account-menu{width:270px;max-width:calc(100vw - 28px);border-radius:var(--card-radius)}
.cw-account-menu .cw-language-control{flex-wrap:wrap;padding:10px}
.cw-account-menu .cw-language-control select{min-width:0;flex:1}
.cw-mobile-brand{font-family:var(--font-display);font-weight:500}
.cw-public-brand-mark .cw-logo{--logo-detail:var(--cw-public-dark,#13231c);width:30px;height:34px}
.cw-player-identity-mark{--logo-detail:var(--warm)}
.cw-player-identity-mark .cw-logo{width:40px;height:44px}
.cw-training-summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 28px;border:1px solid var(--accent);border-radius:var(--card-radius);background:var(--surface-dark);color:#fff7e6}
.cw-training-summary .cw-kicker{color:#d5c9a8}
.cw-training-summary-state{min-width:0;flex:1}
.cw-training-summary h2{margin:8px 0 5px;font:400 clamp(26px,2.5vw,32px)/1.15 var(--font-display);letter-spacing:-.025em}
.cw-training-summary p{margin:0;color:#d1ded2;font-size:13px;line-height:1.5}
.cw-training-summary small{display:block;max-width:600px;margin-top:8px;font-size:12px;color:#e6d7af}
.cw-training-summary .cw-workout-progress{max-width:360px;margin-top:12px;background:#436052;height:5px}
.cw-training-summary .cw-workout-progress span{background:var(--warm)}
.cw-training-summary-action{display:grid;justify-items:end;gap:16px;max-width:45%}
.cw-summary-streak{font-size:12px;color:#d1ded2}
.cw-training-summary .cw-button-primary{background:var(--warm);border-color:var(--warm);color:#16392c}
.cw-training-summary .cw-button-primary:hover{background:#f2e7c9}
.cw-training-summary.is-complete{border-color:#68816a}
.cw-training-summary .cw-daily-plan-error{flex-basis:100%;color:#fff0c5}
.cw-recent-game-panel .cw-today-card h3{max-width:660px;margin:8px 0;font-size:24px;letter-spacing:-.025em}
.cw-recent-game-panel .cw-today-card>.cw-empty-actions{grid-column:1/-1;padding:16px var(--card-padding);justify-content:flex-start;border-top:1px solid var(--line);margin:0}
.cw-recent-game-panel .cw-today-empty>.cw-empty-actions{padding-inline:0}
.cw-recent-game-panel .cw-today-card>p{margin-bottom:16px}
.cw-recent-game-panel .cw-analysis-actions{background:var(--surface-subtle)}
.cw-recent-game-panel .cw-analysis-provider{width:auto;color:var(--text-secondary);flex-wrap:wrap}
.cw-recent-game-panel .cw-analysis-provider-choice.is-active{background:var(--accent-soft);border-color:#a3b39c;color:var(--accent)}
.cw-recent-game-panel .cw-premium-note{flex:1 1 100%;margin:0;font-size:12px}
.cw-recent-game-panel .cw-analysis-advanced{flex:1 1 100%;border-top:1px solid var(--line);margin-top:8px;padding-top:8px}
.cw-recent-game-panel .cw-analysis-advanced summary{font-weight:600}
.cw-recent-game-panel .cw-pending-game-row{border-color:var(--line)}
.cw-recent-game-panel .cw-pending-game-copy span{color:var(--text-secondary)}
.cw-recent-game-panel .cw-analysis-warning{color:var(--warning)!important}
.cw-recent-game-panel :is(#cwAnalysisMessage,#cwAnalysisProgress,#cwSyncMessage){flex-basis:100%;max-width:none;margin:0;color:var(--text-secondary)}
.cw-recent-game-panel :is(#cwAnalysisMessage,#cwAnalysisProgress,#cwSyncMessage):empty{display:none}
.cw-recent-game-panel .cw-sync-activity{color:var(--text-secondary)}
.cw-recent-game-panel .cw-sync-spinner{border-color:var(--line);border-top-color:var(--accent)}
.cw-recent-game-panel .cw-analysis-diagnostics{justify-content:flex-start;margin:12px 0 0;padding:10px 0;color:var(--text-secondary);font-size:12px}
.cw-home-shortcuts{margin-top:var(--section-gap)}
.cw-shortcut-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.cw-shortcut{display:flex;min-width:0;min-height:200px;flex-direction:column;justify-content:space-between;padding:24px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--panel);box-shadow:var(--shadow);color:var(--ink);text-decoration:none;transition:border-color .18s ease,background-color .18s ease,box-shadow .18s ease}
.cw-shortcut.is-personalized{border-color:var(--accent);background:var(--accent);color:#fff}
.cw-shortcut-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.cw-shortcut-icon{display:grid;width:48px;height:48px;flex:0 0 48px;place-items:center;border:1px solid var(--line);border-radius:12px;background:rgba(255,253,248,.76);color:var(--accent)}
.cw-shortcut.is-personalized .cw-shortcut-icon{border-color:rgba(255,255,255,.24);background:rgba(255,255,255,.1);color:var(--warm)}
.cw-shortcut-icon svg{display:block;width:24px;height:24px}
.cw-shortcut-arrow{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;color:var(--accent-gold);transition:transform .18s ease}
.cw-shortcut.is-personalized .cw-shortcut-arrow{color:var(--warm)}
.cw-shortcut-arrow svg{display:block;width:23px;height:23px}
.cw-shortcut-copy{display:block;min-width:0;margin-top:24px}
.cw-shortcut-title-row{display:flex;min-width:0;align-items:center;gap:9px;flex-wrap:wrap}
.cw-shortcut-title{min-width:0;font-size:24px;font-weight:700;letter-spacing:-.035em;line-height:1.15;overflow-wrap:anywhere}
.cw-shortcut-description{display:block;margin-top:10px;color:var(--text-secondary);font-size:14px;line-height:1.55;overflow-wrap:anywhere}
.cw-shortcut.is-personalized .cw-shortcut-description{color:#d4ddd5}
.cw-shortcut:hover{border-color:var(--accent-gold);background:#faf7ef;box-shadow:0 8px 22px rgba(25,36,28,.06)}
.cw-shortcut.is-personalized:hover{border-color:var(--accent-strong);background:var(--accent-strong);box-shadow:0 8px 22px rgba(25,36,28,.16)}
.cw-shortcut:hover .cw-shortcut-arrow{transform:translateX(3px)}
.cw-shortcut:focus-visible{outline:3px solid var(--accent-gold);outline-offset:3px}
.cw-shortcut.is-personalized:focus-visible{outline-color:var(--warm);box-shadow:0 0 0 2px var(--surface-light)}
.cw-profile-fact-grid.cw-profile-primary-ratings{grid-template-columns:repeat(3,minmax(0,1fr))}
.cw-profile-primary-ratings .cw-profile-fact-card:nth-child(2){border-top:3px solid var(--accent-gold)}
.cw-profile-primary-ratings .cw-profile-fact-card>strong{font-family:var(--font-display);font-weight:400;font-size:34px;line-height:1.15}
.cw-profile-primary-ratings .cw-profile-fact-card>strong.is-status{font-family:var(--font-ui);font-size:22px;font-weight:500}
.cw-profile-secondary{display:flex;align-items:center;gap:24px;padding:16px 0;border-block:1px solid var(--line)}
.cw-profile-secondary .cw-profile-section-heading{margin:0;flex:1}
.cw-profile-secondary .cw-profile-fact-grid{display:block;flex:2}
.cw-profile-secondary .cw-profile-fact-card{min-height:0;padding:0;border:0;background:transparent;box-shadow:none}
.cw-profile-secondary .cw-profile-fact-card>strong{font-size:22px}
.cw-profile-secondary .cw-profile-section-heading h2{font-size:18px}
.cw-shell :is(.cw-training-status,.cw-chip,.cw-premium-badge,.cw-plan-pill,.cw-verified-pill,.cw-lessons-beta){font-family:var(--font-ui);font-weight:600;letter-spacing:.025em;line-height:1.4;border-radius:5px;font-size:10px}
.cw-shell .cw-training-status{white-space:normal}
.cw-account-page>.cw-account-section{margin-bottom:18px}
.cw-usage-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 22px;padding:16px 18px;border:1px solid var(--line);border-left:4px solid var(--accent-gold);border-radius:var(--card-radius);background:var(--surface-light)}
.cw-usage-banner>div:first-child{display:grid;gap:3px}.cw-usage-banner strong{font-size:15px}.cw-usage-banner small{color:var(--text-secondary)}.cw-usage-exempt-copy{max-width:720px;margin:2px 0 0;color:var(--text-secondary);line-height:1.45}
.cw-usage-banner.is-exhausted{border-left-color:#a33;background:#fff8f6}.cw-usage-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}
.cw-account-usage{display:grid;gap:10px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.cw-account-usage>div{display:flex;align-items:center;justify-content:space-between;gap:16px}.cw-account-usage>div>span,.cw-account-usage>small{color:var(--text-secondary)}.cw-account-usage .cw-usage-exempt-copy{font-size:13px}
.cw-account-preferences{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.cw-account-preferences h2{font-size:18px;margin:0}
.cw-account-preferences .cw-language-control{flex:1;max-width:360px}
.cw-account-preferences .cw-danger-link{margin:0 0 0 auto;min-height:44px;display:inline-flex;align-items:center}
@media(min-width:861px){body.admin-bar .cw-topbar{top:32px}}
@media(max-width:1050px){.cw-recent-game-panel .cw-today-breakdown{border-color:var(--line)}.cw-recent-game-panel .cw-today-breakdown>div{border-color:var(--line)}}
@media(max-width:900px){.cw-shortcut-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:640px){
  :root{--page-gutter:14px;--card-padding:20px;--section-gap:24px}
  .cw-daily-source-progress,.cw-daily-type-progress{grid-template-columns:1fr}
  .cw-training-summary{align-items:flex-start;flex-direction:column;gap:18px;padding:20px}
  .cw-training-summary-state,.cw-training-summary-action{width:100%;max-width:none}
  .cw-training-summary-action{justify-items:stretch;gap:12px}.cw-summary-streak{font-size:12px}
  .cw-recent-game-panel .cw-today-card>.cw-empty-actions{padding:16px 20px;align-items:center}
  .cw-recent-game-panel .cw-analysis-quick{justify-content:flex-start}
  .cw-recent-game-panel .cw-analysis-provider>span{width:auto}
  .cw-shortcut{min-height:200px;padding:22px}
  .cw-profile-fact-grid.cw-profile-primary-ratings{grid-template-columns:1fr}
  .cw-profile-primary-ratings .cw-profile-fact-card{min-height:112px}
  .cw-profile-secondary{gap:16px;align-items:flex-start;flex-direction:column}
  .cw-account-preferences{gap:14px}.cw-account-preferences .cw-language-control{flex-basis:100%}
  .cw-usage-banner{align-items:flex-start;flex-direction:column}.cw-usage-actions{width:100%;justify-content:flex-start}
  body.admin-bar .cw-topbar{top:0}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.cw-sidebar,.cw-sidebar-scrim,.cw-button,.cw-shortcut,.cw-shortcut-arrow{transition:none}.cw-shortcut:hover .cw-shortcut-arrow{transform:none}.cw-sync-spinner{animation:none}}

/* Workout library and overview. */
.cw-workout-section{max-width:1000px}
[data-cw-workout-library]{display:grid;gap:var(--section-gap)}
[data-cw-workout-library]>.cw-section-block,[data-cw-workout-library]>.cw-recent-daily-plans{margin-top:0}
.cw-game-date-card{display:grid;grid-template-columns:minmax(150px,1fr) minmax(210px,1.2fr) minmax(150px,auto);align-items:center;gap:12px 24px}
.cw-game-date-card .cw-workout-card-head{display:block}
.cw-game-date-card .cw-training-status{margin-top:8px}
.cw-game-date-card .cw-workout-card-foot{display:grid;justify-items:end;margin:0;gap:8px}
.cw-game-date-card .cw-workout-metrics{margin:0}
.cw-game-date-card .cw-workout-progress{grid-column:1/-1;grid-row:2;margin:0}
.cw-account-preferences .cw-language-control>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:1050px){.cw-game-date-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cw-game-date-card .cw-workout-card-foot{grid-column:1/-1;display:flex;justify-content:space-between}.cw-game-date-card .cw-workout-progress{grid-row:3}}
@media(max-width:640px){.cw-game-date-card{grid-template-columns:1fr;gap:14px}.cw-game-date-card .cw-workout-card-foot{align-items:stretch;justify-items:stretch}.cw-game-date-card .cw-workout-progress{grid-row:3}}
.cw-workout-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.cw-workout-section:first-child .cw-workout-cards{grid-template-columns:minmax(0,1fr)}
.cw-workout-section:first-child .cw-workout-card{max-width:none}
.cw-workout-card{min-width:0;padding:20px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--panel);box-shadow:none}
.cw-workout-card-head,.cw-workout-card-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.cw-workout-card h3{margin:0 0 4px;font-size:21px;letter-spacing:-.03em;overflow-wrap:anywhere}
.cw-workout-card h3 a{color:inherit;text-decoration:none}
.cw-workout-card p{margin:0;color:var(--muted);font-size:12px}
.cw-training-status{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#eeeae0;color:#62675f;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}
.cw-training-status.is-active{background:var(--accent-soft);color:var(--accent)}
.cw-training-status.is-complete{background:#edf0e8;color:var(--good)}
.cw-workout-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0 14px}
.cw-workout-metrics>div{padding-right:8px;border-right:1px solid #e5e1d7}
.cw-workout-metrics>div:last-child{border:0}
.cw-workout-metrics span,.cw-workout-metrics strong{display:block}
.cw-workout-metrics span{color:var(--muted);font-size:10px}
.cw-workout-metrics strong{margin-top:3px;font-size:20px}
.cw-workout-progress{height:6px;overflow:hidden;border-radius:999px;background:#e8e4da}
.cw-workout-progress>span{display:block;height:100%;border-radius:inherit;background:var(--accent)}
.cw-workout-card-foot{align-items:center;margin-top:14px}
.cw-workout-card-foot small{color:var(--muted);font-size:11px}
.cw-puzzle-hub-section{max-width:1000px}
.cw-puzzle-hub-section.is-primary .cw-workout-cards{grid-template-columns:minmax(0,1fr)}
.cw-puzzle-hub-section .cw-workout-card{display:flex;min-height:164px;flex-direction:column}
.cw-puzzle-hub-section .cw-workout-card-foot{margin-top:auto;padding-top:18px}
.cw-puzzle-primary-card{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--panel) 92%,var(--accent)),var(--panel))}
.cw-puzzle-primary-card h3{font-size:25px}
.cw-puzzle-rating{display:flex;align-items:baseline;gap:10px;margin:20px 0 0;color:var(--muted);font-size:12px;font-weight:750}
.cw-puzzle-rating strong{color:var(--ink);font-size:28px;font-variant-numeric:tabular-nums;letter-spacing:-.04em}
.cw-puzzle-rating-summary{display:flex;align-items:center;gap:18px;margin:0 0 18px;padding:15px 18px}.cw-puzzle-rating-summary>div{display:flex;flex-direction:column;gap:2px}.cw-puzzle-rating-summary small,.cw-puzzle-rating-summary>span{color:var(--muted);font-size:12px;font-weight:750}.cw-puzzle-rating-summary strong{font-size:30px;font-variant-numeric:tabular-nums;letter-spacing:-.04em}.cw-puzzle-rating-runner{max-width:1000px;margin:0 auto 16px}
.cw-rating-result{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 14px}.cw-rating-result strong,.cw-rating-result span,.cw-rating-result b{display:block}.cw-rating-result>strong{grid-column:1/-1;font-size:15px}.cw-rating-result .cw-rating-player-label{grid-column:1;grid-row:auto;font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;opacity:.78}.cw-rating-result .cw-rating-player-value{grid-column:2;grid-row:auto;justify-self:end;font-size:18px;font-variant-numeric:tabular-nums;white-space:nowrap}
.cw-puzzle-category-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
.cw-puzzle-category-cards .cw-workout-card{min-height:190px}
.cw-practice-runner-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 auto 16px;max-width:1000px;padding:16px 20px}
.cw-practice-runner-summary strong{display:block;margin-top:3px;font-size:18px;font-variant-numeric:tabular-nums}
.cw-practice-completion{margin-top:18px}
.cw-completion-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.cw-puzzle-hub-section .cw-button:focus-visible,.cw-completion-actions .cw-button:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:3px}
.cw-daily-training-card{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--panel) 94%,var(--accent)),var(--panel))}
.cw-daily-plan-note,.cw-daily-plan-error{margin:14px 0 0;color:var(--muted);font-size:13px}
.cw-daily-plan-error{color:var(--danger,#9d2d2d)}
.cw-daily-runner-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin:0 auto 16px;max-width:1000px;padding:16px 20px}.cw-daily-runner-summary strong{display:block;margin-top:3px;font-size:18px}.cw-daily-runner-summary p{margin:4px 0 0;color:var(--accent);font-weight:700}
.cw-training-streak{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px 24px;align-items:center;margin:0 0 12px;padding:16px 18px;border:1px solid color-mix(in srgb,var(--warm) 70%,var(--line));border-radius:16px;background:#fbf7e9;color:var(--ink);box-shadow:var(--shadow)}
.cw-home-daily-streak .cw-streak-stats dt,.cw-home-daily-streak .cw-streak-history-label{color:var(--accent)}
.cw-streak-summary{display:flex;align-items:center;gap:12px;min-width:0}.cw-streak-flame{display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;border-radius:12px;background:#f0dfaa;color:#8a5424}.cw-streak-flame svg{width:24px;height:24px;fill:currentColor}.cw-streak-copy{display:grid;gap:3px;min-width:0}.cw-streak-copy strong{font-size:19px;letter-spacing:-.025em}.cw-streak-copy span{color:#665f50;font-size:12px;font-weight:700}.cw-streak-copy span[hidden]{display:none}
.cw-streak-stats{display:flex;gap:18px;margin:0}.cw-streak-stats div{display:grid;gap:2px}.cw-streak-stats dt{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.cw-streak-stats dd{margin:0;font-size:13px;font-weight:850;white-space:nowrap}
.cw-streak-history-wrap{grid-column:1/-1;display:grid;gap:7px;min-width:0}.cw-streak-history-label{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.cw-streak-history{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:5px;margin:0;padding:0;list-style:none}.cw-streak-day{min-width:0}.cw-streak-day time{position:relative;display:grid;place-items:center;min-width:0;height:30px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-variant-numeric:tabular-nums}.cw-streak-day-number{font-size:9px;font-weight:850}.cw-streak-day-mark{position:absolute;right:3px;bottom:1px;font-size:9px;font-weight:950;line-height:1}.cw-streak-day.is-complete time{border-color:#8cad92;background:#e7f1e5;color:#285e39}.cw-streak-day.is-missed time{border-color:#cfb8b3;background:#f5e9e6;color:#873c33}.cw-streak-day.is-pending time{border-style:dashed;background:#fffdf7;color:#6b6e67}.cw-streak-day.is-neutral time{border-color:#c7c4b8;background:#efede5;color:#62645e}.cw-streak-day.is-future time{border-color:#ddd8c9;background:#f7f4eb;color:#9a978d}.cw-streak-day.is-today time{outline:2px solid var(--accent);outline-offset:1px}
.cw-training-streak.is-compact{max-width:1000px;margin:0 auto 16px;padding:12px 16px}.cw-training-streak.is-compact .cw-streak-flame{width:34px;height:34px;flex-basis:34px;border-radius:10px}.cw-training-streak.is-compact .cw-streak-flame svg{width:20px;height:20px}.cw-training-streak.is-compact .cw-streak-copy strong{font-size:16px}
.cw-personal-overview{max-width:1000px}
.cw-personal-overview .cw-personal-summary{grid-template-columns:repeat(3,minmax(0,1fr));max-width:620px}
.cw-personal-overview .cw-collection-puzzle-list{margin-top:28px}
.cw-collection-filters{padding-bottom:14px;border-bottom:1px solid var(--line)}
.cw-collection-filters .cw-button{min-height:38px;padding:8px 12px;border-radius:999px;font-size:12px}

/* General puzzle catalog and board containment. */
.cw-puzzle-catalog{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:24px;margin-bottom:18px;padding:22px 24px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}
.cw-puzzle-catalog h2{margin:5px 0 4px;font-size:24px;letter-spacing:-.035em}
.cw-puzzle-catalog p{margin:0;color:var(--muted)}
.cw-puzzle-catalog-meta{display:flex;gap:7px;flex-wrap:wrap}
.cw-puzzle-catalog-meta span{padding:6px 9px;border-radius:999px;background:#efede4;color:#646960;font-size:11px;font-weight:800}
.cw-puzzle-layout,.cw-board-panel,.cw-puzzle-side,.cw-board-stage,.cw-board-wrapper{min-width:0}
.cw-board-panel{overflow:hidden}

/* Progress. */
.cw-progress-summary{display:grid;grid-template-columns:1.35fr repeat(2,minmax(0,1fr));gap:14px}
.cw-progress-summary>article{padding:23px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}
.cw-progress-summary span,.cw-progress-summary strong,.cw-progress-summary small{display:block}
.cw-progress-summary span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em}
.cw-progress-summary strong{margin:7px 0 2px;font-size:36px;letter-spacing:-.04em}
.cw-progress-summary small{color:var(--muted);font-size:11px}
.cw-progress-primary{background:var(--accent)!important;color:#fff}
.cw-progress-primary span,.cw-progress-primary small{color:#cdd8cf}
.cw-progress-primary .cw-workout-progress{margin-top:16px;background:rgba(255,255,255,.16)}
.cw-progress-primary .cw-workout-progress>span{background:var(--warm)}
.cw-progress-content{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:34px}
.cw-progress-recent-list{display:grid;border-top:1px solid var(--line)}
.cw-progress-recent-list>a{display:flex;justify-content:space-between;gap:20px;padding:16px 2px;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}
.cw-progress-recent-list>a:hover strong{color:var(--accent)}
.cw-progress-recent-list span:last-child{text-align:right}
.cw-progress-recent-list strong,.cw-progress-recent-list small{display:block}
.cw-progress-recent-list small{margin-top:3px;color:var(--muted);font-size:11px}
.cw-focus-list{display:grid;gap:8px}
.cw-focus-list article{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 15px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.cw-focus-list article.is-priority{border-color:#d8b68d;background:#fff7e9}
.cw-focus-list strong,.cw-focus-list small{display:block}
.cw-focus-list small{margin-top:3px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.cw-focus-list article>span{font-size:22px;font-weight:900;color:var(--accent)}
.cw-progress-trend{padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}
.cw-progress-trend .cw-section-heading>strong{font-size:28px}

/* Restricted admin hub. */
.cw-admin-badge{padding:7px 10px;border-radius:999px;background:#eee4c6;color:#62501b;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap}
.cw-admin-tool-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:16px}
.cw-admin-tool-card{display:flex;flex-direction:column;justify-content:space-between;gap:24px;padding:25px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}
.cw-admin-tool-card h2{margin:6px 0 8px;font-size:25px;letter-spacing:-.035em}
.cw-admin-tool-card p{margin:0;color:var(--muted);line-height:1.5}
.cw-admin-tool-card .cw-button{align-self:flex-start}
.cw-registration-admin-card{border-top:4px solid var(--warm)}
.cw-registration-admin-control{display:grid;gap:14px}.cw-registration-admin-control form{margin:0}.cw-registration-admin-status strong{display:inline-flex;margin-left:4px;padding:5px 9px;border-radius:999px;font-size:12px}.cw-registration-admin-status strong.is-enabled{background:#e2eee6;color:#285f40}.cw-registration-admin-status strong.is-disabled{background:#eee4c6;color:#62501b}.cw-registration-admin-override{padding:12px;border-radius:10px;background:#f3eee2;font-size:13px}
.cw-admin-tool-primary{background:var(--accent);color:#fff}
.cw-admin-tool-primary .cw-kicker,.cw-admin-tool-primary p{color:#ced9d0}
.cw-admin-tool-primary .cw-button-primary{background:var(--warm);border-color:var(--warm);color:#1b2b21}
.cw-admin-facts{display:grid;gap:11px;margin:0}
.cw-admin-facts>div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:11px;border-bottom:1px solid var(--line)}
.cw-admin-facts>div:last-child{padding:0;border:0}
.cw-admin-facts dt{color:var(--muted);font-size:12px}
.cw-admin-facts dd{margin:0;font-weight:900}
.cw-admin-library{max-width:1050px}
.cw-admin-library .cw-section-heading form,.cw-admin-collection-actions form{margin:0}
.cw-text-button{appearance:none;border:0;background:transparent;color:var(--accent);padding:8px;font-size:12px;font-weight:850;cursor:pointer}
.cw-text-button.is-danger{color:var(--danger)}
.cw-admin-collection-list{display:grid;gap:10px}
.cw-admin-collection{padding:19px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.cw-admin-collection-main{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.cw-admin-collection h3{margin:0 0 4px;font-size:20px}
.cw-admin-collection p{margin:0;color:var(--muted);font-size:11px}
.cw-admin-collection-meta,.cw-admin-collection-actions{display:flex;align-items:center;gap:8px 18px;flex-wrap:wrap}
.cw-admin-collection-meta{margin:16px 0;color:#5e655f;font-size:11px}
.cw-admin-collection-actions .cw-button{min-height:38px;padding:8px 11px;font-size:12px}
.cw-admin-diagnostics{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.cw-admin-diagnostics>summary,.cw-admin-raw-profile>summary{cursor:pointer;color:var(--accent);font-size:12px;font-weight:850}
.cw-admin-profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:13px}
.cw-admin-profile-grid article{padding:12px;border:1px solid var(--line);border-radius:10px;background:#faf8f1}
.cw-admin-profile-grid span,.cw-admin-profile-grid strong,.cw-admin-profile-grid small{display:block}
.cw-admin-profile-grid span{font-size:11px;font-weight:800}
.cw-admin-profile-grid strong{margin:4px 0 2px;font-size:23px;color:var(--accent)}
.cw-admin-profile-grid small{color:var(--muted);font-size:9px;line-height:1.4}
.cw-admin-raw-profile{margin-top:12px}
.cw-admin-raw-profile pre{max-height:320px;overflow:auto;padding:13px;border-radius:10px;background:#efede5;color:#4f554f;font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}

@media(min-width:861px){
  .cw-shell{display:block}
  .cw-sidebar{position:fixed;inset:0 auto 0 0;width:232px;height:auto;max-height:none;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}
  .cw-main{width:auto;min-width:0;margin-left:232px}
  body.admin-bar .cw-sidebar{top:0;bottom:0;height:auto;max-height:none;padding-top:56px}
}

/* Locale selector stays within the existing account controls. */
.cw-language-control{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.35rem .15rem;font-size:.82rem;color:#68706a}
.cw-language-control select{min-width:9rem;max-width:100%;border:1px solid #d8d8d0;border-radius:.45rem;background:#fff;color:inherit;padding:.35rem .45rem;font:inherit}
.cw-language-guest{padding:0;margin-right:.35rem}.cw-language-guest>span{display:none}
@media (max-width:520px){.cw-language-guest{margin-right:0}.cw-language-guest select{min-width:7.2rem}}

@media(max-width:1050px){
  .cw-today-card{grid-template-columns:1fr}
  .cw-home-daily-hub{grid-template-columns:1fr}.cw-home-daily-streak{border-top:1px solid rgba(255,255,255,.13);border-left:0}
  .cw-today-breakdown{grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(255,255,255,.13);border-left:0}
  .cw-today-breakdown>div{display:block;padding:12px 16px;border-right:1px solid rgba(255,255,255,.12);border-bottom:0}
  .cw-today-breakdown>div:last-child{border-right:0}
  .cw-today-breakdown strong{display:block;margin-top:5px}
  .cw-progress-content{grid-template-columns:1fr}
}

@media(max-width:860px){
  .cw-shell{display:block}
  .cw-sidebar{position:fixed;inset:0 auto 0 0;left:0;transform:translateX(-260px);width:250px;height:100dvh;transition:transform .2s ease;box-shadow:10px 0 35px rgba(10,20,13,.22)}
  .cw-sidebar.is-open{transform:translateX(0)}
  .cw-sidebar-close{display:block}
  .cw-sidebar-scrim{display:block;position:fixed;inset:0;z-index:45;border:0;background:rgba(10,18,12,.45);opacity:0;visibility:hidden;transition:.2s;cursor:pointer}
  .cw-navigation-open .cw-sidebar-scrim{opacity:1;visibility:visible}
  .cw-navigation-open{overflow:hidden}
  .cw-topbar{height:62px;padding:0 20px}
  .cw-menu-button,.cw-mobile-brand{display:block}
  .cw-page{padding:34px 24px 62px}
  .cw-footer{padding-inline:24px}
  .cw-home-secondary,.cw-admin-tool-grid{grid-template-columns:1fr}
  .cw-workout-cards{grid-template-columns:1fr}
  .cw-progress-summary{grid-template-columns:1.2fr 1fr 1fr}
}

@media(max-width:640px){
  .cw-topbar{padding:0 14px}
  .cw-topbar-premium{gap:5px;font-size:16px;letter-spacing:.025em}
  .cw-topbar-premium svg{width:18px;height:18px}
  .cw-mobile-brand{font-size:13px;white-space:nowrap}
  .cw-account-name{display:none}
  .cw-page{padding:28px 14px 52px}
  .cw-page-heading{display:block;margin-bottom:24px}
  .cw-page-heading h1,.cw-hero-row h1{font-size:30px}
  .cw-lead{font-size:14px}
  .cw-today-date{display:block;margin-top:12px}
  .cw-today-main{padding:20px}
  .cw-today-card h2{font-size:23px}
  .cw-today-breakdown{grid-template-columns:1fr;padding:10px 24px 18px}
  .cw-today-breakdown>div{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:15px 0;border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}
  .cw-today-breakdown>div:last-child{border-bottom:0}
  .cw-today-breakdown strong{grid-row:1/3;grid-column:2;margin:0}
  .cw-today-empty{padding:20px}
  .cw-home-progress{display:block}
  .cw-home-progress .cw-text-link{display:inline-block;margin-top:15px}
  .cw-home-secondary>section{padding:21px}
  .cw-home-daily-main{padding:30px 24px}.cw-home-daily-main h2{font-size:30px}.cw-home-daily-streak{padding:16px}.cw-home-links{justify-content:space-between;gap:12px}
  .cw-section-block{margin-top:34px}
  .cw-section-heading{align-items:flex-start}
.cw-workout-card{padding:18px}
.cw-puzzle-category-cards{grid-template-columns:1fr}
.cw-puzzle-hub-section .cw-workout-card,.cw-puzzle-category-cards .cw-workout-card{min-height:0}
.cw-puzzle-primary-card .cw-chip{margin-top:10px}
.cw-practice-runner-summary{align-items:center;padding:14px 16px}
.cw-puzzle-rating-summary{flex-wrap:wrap;gap:10px 16px;padding:14px 16px}.cw-puzzle-rating-summary>span{flex-basis:100%}
  .cw-training-streak{grid-template-columns:1fr;padding:14px}.cw-streak-stats{justify-content:flex-start}.cw-streak-history{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.cw-streak-day time{height:28px}
  .cw-workout-card-head{display:block}
  .cw-training-status{display:inline-block;margin-top:11px}
  .cw-workout-card-foot{align-items:center}
  .cw-personal-overview{padding:19px}
  .cw-personal-overview .cw-personal-summary{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cw-personal-summary>div{padding:10px}
  .cw-personal-summary span{min-height:0}
  .cw-personal-summary strong{font-size:20px}
  .cw-collection-filters{display:flex;overflow-x:auto;flex-wrap:nowrap;padding-bottom:12px;scrollbar-width:none}
  .cw-collection-filters::-webkit-scrollbar{display:none}
  .cw-collection-filters .cw-button{flex:0 0 auto}
  .cw-puzzle-catalog{grid-template-columns:1fr;gap:16px;padding:20px}
  .cw-puzzle-catalog .cw-button{justify-self:stretch}
  .cw-panel.cw-board-panel{padding:10px}
  .cw-panel.cw-puzzle-side{padding:19px}
  .cw-progress-summary{grid-template-columns:1fr 1fr}
  .cw-progress-primary{grid-column:1/-1}
  .cw-progress-recent-list>a{gap:12px}
  .cw-admin-badge{display:inline-flex;margin-top:14px}
  .cw-admin-collection-actions{display:grid;grid-template-columns:1fr 1fr}
  .cw-admin-collection-actions .cw-button,.cw-admin-collection-actions form,.cw-admin-collection-actions .cw-text-button{width:100%}
  .cw-footer{display:block;padding:22px 14px 30px}
  .cw-admin-profile-grid{grid-template-columns:1fr 1fr}
  .cw-footer span{display:block;margin-top:4px}
}
@media(max-width:480px){.cw-mobile-brand{max-width:68px;overflow:hidden;text-overflow:ellipsis}.cw-topbar-premium{font-size:15px}}

@media(max-width:430px){
  .cw-mobile-brand{font-size:14px}
  .cw-page-heading h1,.cw-hero-row h1{font-size:33px}
  .cw-panel{padding:18px}
  .cw-today-main{padding:27px 20px}
  .cw-today-breakdown{padding-inline:20px}
  .cw-empty-actions{display:grid}
  .cw-empty-actions .cw-button{width:100%}
  .cw-workout-metrics{gap:7px}
  .cw-workout-metrics span{font-size:9px}
  .cw-workout-card-foot .cw-button{min-width:110px}
  .cw-personal-overview .cw-personal-summary{grid-template-columns:1fr 1fr}
  .cw-personal-overview .cw-personal-summary>div:first-child{grid-column:1/-1}
  .cw-progress-summary{grid-template-columns:1fr}
  .cw-progress-primary{grid-column:auto}
  .cw-progress-recent-list>a{display:grid;grid-template-columns:minmax(0,1fr) auto}
  .cw-admin-collection-actions{grid-template-columns:1fr}
  .cw-admin-profile-grid{grid-template-columns:1fr}
  .cw-puzzle-navigation{grid-template-columns:1fr 1fr}
  .cw-puzzle-navigation>span{grid-row:2;grid-column:1/-1}
  .cw-puzzle-navigation .cw-button{width:100%}
  .cw-puzzle-navigation .cw-button:last-child{grid-column:2}
  .cw-analysis-controls .cw-button{min-width:0;padding-inline:9px}
  .cw-promotion-chooser{max-width:calc(100vw - 20px)}
}

/* Mobile training Focus Mode. The live board stays mounted; only its container changes presentation. */
.cw-board-toolbar-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;flex:1}
.cw-focus-enter,.cw-focus-topbar,.cw-focus-explanation-trigger{display:none}
.cw-focus-enter svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cw-focus-explanation-layer[hidden]{display:none!important}
.cw-focus-explanation-layer{position:fixed;inset:0;z-index:80;display:grid;align-items:end}
.cw-focus-explanation-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(12,20,15,.58);cursor:pointer}
.cw-focus-explanation-sheet{position:relative;display:flex;flex-direction:column;width:min(100%,680px);max-height:min(78dvh,660px);margin:0 auto;padding:10px 18px max(18px,env(safe-area-inset-bottom));border:1px solid #cfcabd;border-bottom:0;border-radius:22px 22px 0 0;background:var(--panel);box-shadow:0 -18px 48px rgba(9,19,12,.24);outline:none;overflow:hidden}
.cw-focus-sheet-handle{flex:0 0 auto;width:46px;height:4px;margin:0 auto 13px;border-radius:999px;background:#c7c3b8}
.cw-focus-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex:0 0 auto;padding-bottom:13px;border-bottom:1px solid var(--line)}
.cw-focus-sheet-head h2{margin:4px 0 0;font-size:24px}
.cw-focus-sheet-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:#f4f1e8;color:var(--ink);font-size:27px;line-height:1;cursor:pointer}
.cw-focus-explanation-body{flex:1 1 auto;min-height:0;padding:16px 2px;overflow-y:auto;overscroll-behavior:contain}
.cw-focus-explanation-section{padding:0 0 15px}
.cw-focus-explanation-section h3{margin:0 0 6px;color:var(--accent);font-size:11px;text-transform:uppercase;letter-spacing:.09em}
.cw-focus-explanation-section p{margin:0;font-size:14px;line-height:1.58;color:#4d554f}
.cw-focus-explanation-section.is-wrong h3,.cw-focus-explanation-section.is-wrong p{color:var(--danger)}
.cw-focus-explanation-section.is-good h3,.cw-focus-explanation-section.is-good p{color:var(--good)}
.cw-focus-explanation-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 0 16px}
.cw-focus-explanation-facts>div{padding:11px;border:1px solid var(--line);border-radius:10px;background:#f7f4ec}
.cw-focus-explanation-facts dt{color:var(--muted);font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}
.cw-focus-explanation-facts dd{margin:5px 0 0;font-size:13px;font-weight:850;overflow-wrap:anywhere}
.cw-focus-explanation-actions{margin-top:2px}
.cw-focus-sheet-footer{flex:0 0 auto;padding-top:12px;border-top:1px solid var(--line)}
.cw-focus-sheet-footer .cw-button{width:100%;min-height:48px}
.cw-focus-sheet-close:focus-visible,.cw-focus-close:focus-visible,.cw-focus-explanation-backdrop:focus-visible{outline:3px solid #f1c95c;outline-offset:2px}

body.cw-training-focus-open{overflow:hidden;overscroll-behavior:none}
/* WordPress utility chrome sits above the runner's stacking layer. Keep its
   layout intact, but remove it from hit testing and keyboard navigation here. */
body.cw-training-focus-open #wpadminbar{visibility:hidden}
.cw-puzzle-layout.is-focus-mode{--cw-focus-board-size:min(calc(100vw - 39px),calc(100dvh - 226px));position:fixed;inset:0;z-index:950;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;gap:0;width:100%;max-width:none;height:100vh;height:100dvh;margin:0;padding:max(4px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:var(--bg);overflow:hidden;overscroll-behavior:none}
.cw-puzzle-layout.is-focus-mode .cw-focus-topbar{position:sticky;top:0;z-index:90;display:flex;grid-row:1;align-items:center;justify-content:space-between;gap:14px;min-height:50px;padding:3px 2px 7px;border-bottom:1px solid var(--accent-gold);background:var(--surface-dark);color:var(--surface-light)}
.cw-focus-close{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:7px;min-width:92px;min-height:44px;padding:8px 12px;border:1px solid var(--accent-gold);border-radius:var(--control-radius);background:var(--panel);color:var(--ink);font-family:var(--font-ui);font-size:13px;font-weight:600;line-height:1.3;white-space:nowrap;touch-action:manipulation;cursor:pointer}
.cw-focus-close:hover{background:var(--surface-light);border-color:var(--surface-light)}
.cw-puzzle-layout.is-focus-mode .cw-focus-progress span{color:var(--surface-light)}
.cw-focus-progress{display:flex;align-items:baseline;gap:8px;min-width:0;font-variant-numeric:tabular-nums}
.cw-focus-progress span{max-width:125px;overflow:hidden;color:var(--muted);font-size:10px;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
.cw-focus-progress strong{font-size:14px;white-space:nowrap}
.cw-puzzle-layout.is-focus-mode .cw-board-panel{grid-row:2;display:grid;place-items:center;min-width:0;min-height:0;margin:0;padding:5px 0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}
.cw-puzzle-layout.is-focus-mode .cw-board-toolbar{display:none}
.cw-puzzle-layout.is-focus-mode .cw-side-to-move{justify-self:center;margin-bottom:5px;padding-block:4px;background:var(--surface-dark);border-color:#59645b;color:var(--surface-light)}
.cw-puzzle-layout.is-focus-mode .cw-board-stage{width:calc(var(--cw-focus-board-size) + 23px);max-width:100%;height:var(--cw-focus-board-size);gap:5px;align-items:stretch}
.cw-puzzle-layout.is-focus-mode .cw-board-stage.cw-board-stage-no-eval{width:var(--cw-focus-board-size)}
.cw-puzzle-layout.is-focus-mode .cw-evaluation-bar{flex:0 0 18px;width:18px;border-radius:6px}
.cw-puzzle-layout.is-focus-mode .cw-evaluation-value{font-size:8px}
.cw-puzzle-layout.is-focus-mode .cw-board-wrapper{flex:0 0 var(--cw-focus-board-size);width:var(--cw-focus-board-size);height:var(--cw-focus-board-size);max-width:none;min-width:0;min-height:0}
.cw-puzzle-layout.is-focus-mode .cw-board{width:100%;height:100%;max-width:none;border-radius:7px;touch-action:none}
.cw-puzzle-layout.is-focus-mode .cw-square{touch-action:none}
.cw-puzzle-layout.is-focus-mode .cw-puzzle-side{grid-row:3;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;position:static;min-width:0;margin:0;padding:7px 0 0;border:0;border-radius:0;background:transparent;box-shadow:none}
.cw-puzzle-layout.is-focus-mode .cw-puzzle-side>#cwPositionKicker,.cw-puzzle-layout.is-focus-mode .cw-puzzle-side>#cwPuzzleTitle,.cw-puzzle-layout.is-focus-mode .cw-puzzle-side>#cwPuzzlePrompt,.cw-puzzle-layout.is-focus-mode .cw-puzzle-side>.cw-mini-stats{display:none}
.cw-puzzle-layout.is-focus-mode #cwPuzzleFeedback{grid-column:1/-1;grid-row:1;min-height:42px;margin:0;padding:10px 12px;border-radius:10px;font-size:12px;line-height:1.35}
.cw-puzzle-layout.is-focus-mode #cwIncorrectFeedback{display:none!important}
.cw-puzzle-layout.is-focus-mode .cw-puzzle-navigation,.cw-puzzle-layout.is-focus-mode .cw-puzzle-actions{display:contents}
.cw-puzzle-layout.is-focus-mode #cwPuzzlePosition{display:none}
.cw-puzzle-layout.is-focus-mode #cwPreviousPuzzle{grid-column:1/3;grid-row:2}
.cw-puzzle-layout.is-focus-mode #cwResetPuzzle{grid-column:3/5;grid-row:2}
.cw-puzzle-layout.is-focus-mode #cwContinueImproving{grid-column:1/5;grid-row:2;margin:0}
.cw-puzzle-layout.is-focus-mode #cwNextPuzzle{grid-column:5/7;grid-row:2}
.cw-puzzle-layout.is-focus-mode #cwHintPuzzle{grid-column:1/3;grid-row:3}
.cw-puzzle-layout.is-focus-mode #cwPracticeAgain{grid-column:3/5;grid-row:3}
.cw-puzzle-layout.is-focus-mode.has-wrong-move-recovery #cwAnalyzeFromExercise{grid-column:3/5;grid-row:3;white-space:normal}
.cw-puzzle-layout.is-focus-mode .cw-focus-explanation-trigger{display:inline-flex;grid-column:5/7;grid-row:3}
.cw-puzzle-layout.is-focus-mode .cw-puzzle-side .cw-button{justify-self:stretch;width:100%;min-width:0;min-height:48px;margin:0;padding:8px 6px;border-radius:11px;font-size:11px;line-height:1.2;white-space:nowrap;touch-action:manipulation}
.cw-puzzle-layout.is-focus-mode .cw-focus-explanation-trigger.is-attention{border-color:#b45a4f;background:#9a3d32;color:#fff;box-shadow:0 0 0 3px rgba(154,61,50,.14)}

@media(max-width:900px){
  .cw-focus-enter{display:inline-flex;flex:0 0 auto;min-height:44px;padding:9px 12px}
}

@media(max-width:640px){
  .cw-puzzle-layout:not(.is-focus-mode){width:calc(100% + 28px);margin-inline:-14px;gap:12px}
  .cw-puzzle-layout:not(.is-focus-mode) .cw-board-panel{padding:7px}
  .cw-puzzle-layout:not(.is-focus-mode) .cw-board-stage{gap:5px}
  .cw-puzzle-layout:not(.is-focus-mode) .cw-evaluation-bar{flex-basis:22px}
  .cw-board-toolbar{gap:9px;margin-bottom:9px}
  .cw-board-toolbar-meta{gap:7px;font-size:11px}
  .cw-focus-enter{padding-inline:10px;font-size:12px}
  .cw-focus-explanation-sheet{padding-inline:14px}
}

@media(max-width:390px){
  .cw-board-toolbar-meta .cw-chip{display:none}
  .cw-focus-explanation-facts{grid-template-columns:1fr}
  .cw-puzzle-layout.is-focus-mode .cw-puzzle-side{gap:6px}
  .cw-puzzle-layout.is-focus-mode .cw-puzzle-side .cw-button{font-size:10px;padding-inline:4px}
}

/* Rolling browser-analysis selection. */
.cw-analysis-quick{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;font-weight:750}
.cw-analysis-provider{display:flex;align-items:center;gap:7px;width:100%;font-size:12px;font-weight:800;color:#d4ddd5}.cw-analysis-provider-choice{min-height:38px;padding:8px 13px}.cw-analysis-provider-choice.is-active{border-color:var(--warm);background:var(--warm);color:#203329}
.cw-analysis-quick-choice{min-width:42px;min-height:40px;padding:8px 11px}
.cw-analysis-quick-choice.is-active{border-color:var(--good);background:var(--accent-soft);color:var(--good)}
.cw-analysis-advanced{width:100%;margin-top:4px;text-align:left;border-top:1px solid rgba(255,255,255,.14);padding-top:10px}
.cw-analysis-advanced summary{cursor:pointer;font-size:13px;font-weight:850;padding:8px 0}
.cw-analysis-advanced p{margin:8px 0 12px!important;font-size:12px!important}
.cw-pending-game-list{display:grid;gap:0;width:100%;max-height:420px;overflow:auto}
.cw-pending-game-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.12);cursor:pointer}
.cw-pending-game-row input{width:22px;height:22px;flex:0 0 22px;accent-color:var(--warm)}
.cw-pending-game-copy{display:grid;gap:3px;min-width:0}
.cw-pending-game-copy strong{font-size:13px}.cw-pending-game-copy span{font-size:11px;color:#d4ddd5;white-space:normal}
.cw-analysis-selected-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:13px}
.cw-analysis-selected-actions .cw-button{min-height:42px}.cw-analysis-warning{color:#f3ddb1!important;font-weight:700}
@media(max-width:520px){.cw-analysis-quick{width:100%;justify-content:center}.cw-analysis-quick-choice{flex:1}.cw-analysis-selected-actions{display:grid}.cw-analysis-selected-actions .cw-button{width:100%}.cw-pending-game-list{max-height:none}}

/* Rolling-sync state is deliberately distinct from a cooldown rejection. */
.cw-sync-activity{display:inline-flex;align-items:center;gap:8px;color:#dce5d8;font-size:13px;font-weight:800;line-height:1.3}
.cw-sync-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--warm);border-radius:50%;animation:cw-sync-spin .75s linear infinite}
@keyframes cw-sync-spin{to{transform:rotate(360deg)}}
.cw-improving-discovery{display:grid;gap:3px;margin:3px 0 13px;padding:11px 13px;border:1px solid #d8e1d3;border-radius:12px;background:#f5f8f2;font-variant-numeric:tabular-nums}.cw-improving-discovery-label{color:#42604b;font-size:10px;font-weight:900;letter-spacing:.11em;text-transform:uppercase}.cw-improving-discovery-main{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.cw-improving-discovery strong{color:var(--ink);font-size:clamp(20px,3vw,27px);letter-spacing:-.045em;line-height:1}.cw-improving-discovery-main span{color:var(--muted);font-size:11px;font-weight:750;text-align:right}.cw-improving-discovery[hidden]{display:none!important}.cw-puzzle-layout.is-focus-mode .cw-improving-discovery{display:none!important}.cw-puzzle-layout.is-focus-mode #cwFocusDiscovery{display:inline;max-width:86px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Why Was My Move Bad? is a reason-selection exercise, not a move board. */
.cw-why-bad-question{display:grid;gap:10px;margin:14px 0}.cw-why-bad-question[hidden]{display:none!important}.cw-why-bad-played{margin:0;color:var(--ink);font-size:13px;font-weight:850}.cw-why-bad-choices{display:grid;gap:8px}.cw-why-bad-choice{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fffdf8;color:var(--ink);font:inherit;font-size:13px;font-weight:750;line-height:1.35;text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.cw-why-bad-choice:hover:not(:disabled){border-color:#809481;box-shadow:0 5px 15px rgba(30,35,29,.06)}.cw-why-bad-choice.is-incorrect{border-color:#d8a49e;background:#f8ecea;color:#87392f}.cw-why-bad-choice.is-correct{border-color:#8eb39a;background:#e7f2e8;color:#285f3b}.cw-why-bad-choice:disabled{cursor:default}.cw-why-bad-choice:focus-visible{outline:3px solid rgba(36,76,58,.2);outline-offset:2px}.cw-board[data-interaction-mode="reason_selection"] .cw-square{cursor:default}
.cw-compare-question{display:grid;gap:10px;margin:14px 0}.cw-compare-question[hidden]{display:none!important}.cw-compare-question>p{margin:0;color:var(--ink);font-size:13px;font-weight:850}.cw-compare-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cw-compare-choice{display:grid;gap:7px;min-width:0;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fffdf8}.cw-compare-choice-label{font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.cw-compare-choice strong{font-size:22px;letter-spacing:-.03em;overflow-wrap:anywhere}.cw-compare-choice small{font-size:11px;font-weight:850;color:#5a665b}.cw-compare-choice-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:2px}.cw-compare-choice-actions .cw-button{min-height:40px;padding:8px 10px;font-size:12px;flex:1}.cw-compare-choice.is-incorrect{border-color:#d8a49e;background:#f8ecea}.cw-compare-choice.is-correct{border-color:#8eb39a;background:#e7f2e8}.cw-compare-choice.is-worse{border-color:#d4cba8;background:#fbf8ec}.cw-board[data-interaction-mode="move_comparison_selection"] .cw-square{cursor:default}
@media(max-width:620px){.cw-compare-choices{grid-template-columns:1fr}.cw-compare-choice-actions .cw-button{min-height:46px}.cw-puzzle-layout.is-focus-mode .cw-compare-question{grid-column:1/-1;grid-row:1;margin:0}.cw-puzzle-layout.is-focus-mode .cw-compare-question>p{display:none}.cw-puzzle-layout.is-focus-mode .cw-compare-question~#cwPuzzleFeedback{display:none}.cw-puzzle-layout.is-focus-mode .cw-compare-choices{grid-template-columns:1fr 1fr}.cw-puzzle-layout.is-focus-mode .cw-compare-choice{padding:8px}.cw-puzzle-layout.is-focus-mode .cw-compare-choice strong{font-size:16px}.cw-puzzle-layout.is-focus-mode .cw-compare-choice-actions .cw-button{min-height:36px;font-size:10px}}

/* Phase 4F.2F: rolling Endless Practice and authoritative 30-second Rush. */
.cw-puzzle-hub-section.is-primary .cw-puzzle-practice-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
.cw-puzzle-rush-card{border-color:color-mix(in srgb,var(--warm) 55%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--panel) 91%,var(--warm)),var(--panel))}
.cw-puzzle-rush-card h3{font-size:25px}.cw-chip.is-rush{border-color:color-mix(in srgb,var(--warm) 70%,var(--line));background:color-mix(in srgb,var(--panel) 76%,var(--warm));color:var(--ink)}
.cw-practice-live-stats,.cw-rush-runner-metrics{display:grid;grid-template-columns:repeat(3,minmax(88px,1fr));gap:8px}
.cw-rush-runner-metrics{grid-template-columns:repeat(2,minmax(92px,1fr))}
.cw-practice-live-stats>div,.cw-rush-runner-metrics>div{display:grid;gap:3px;padding:10px 13px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 82%,var(--bg))}
.cw-practice-live-stats span,.cw-rush-runner-metrics span,.cw-rush-result-score span{color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
.cw-practice-live-stats strong,.cw-rush-runner-metrics strong{margin:0;font-size:20px;font-variant-numeric:tabular-nums}
.cw-rush-runner-metrics #cwRushTime{color:var(--accent);font-size:27px;letter-spacing:-.04em}
.cw-rush-result-score{display:grid;gap:6px;justify-items:center;margin:20px auto}.cw-rush-result-score strong{font-size:72px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.07em;color:var(--accent)}
.cw-rush-completion .cw-practice-live-stats{grid-template-columns:repeat(2,minmax(110px,150px));justify-content:center;margin:0 auto 22px}
.cw-rush-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.cw-rush-stats strong{font-variant-numeric:tabular-nums}.cw-rush-stats>div:first-child strong{color:var(--accent)}
.cw-puzzle-layout.is-rush-mode .cw-puzzle-side{border-color:color-mix(in srgb,var(--warm) 45%,var(--line))}

@media(max-width:760px){
  .cw-puzzle-hub-section.is-primary .cw-puzzle-practice-cards{grid-template-columns:1fr}
  .cw-endless-runner-summary,.cw-rush-runner-summary{align-items:stretch;flex-direction:column}
  .cw-practice-live-stats,.cw-rush-runner-metrics{width:100%}
}
@media(max-width:420px){
  .cw-practice-live-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .cw-practice-live-stats>div,.cw-rush-runner-metrics>div{min-width:0;padding:8px}
  .cw-practice-live-stats span,.cw-rush-runner-metrics span{font-size:8px}
  .cw-practice-live-stats strong,.cw-rush-runner-metrics strong{font-size:17px}
  .cw-rush-result-score strong{font-size:60px}
  .cw-puzzle-layout:not(.is-focus-mode) .cw-rush-stats{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Administrator analysis monitoring. */
.cw-analysis-monitor-page{display:grid;gap:18px}.cw-monitor-heading{margin-bottom:4px}.cw-monitor-filters{display:grid;grid-template-columns:minmax(180px,260px) minmax(220px,340px) auto 1fr;align-items:end;gap:14px;padding:18px 22px}.cw-monitor-filters label>span{display:block;margin-bottom:6px;color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}.cw-monitor-filters select{width:100%;height:44px;border:1px solid #d6d2c8;border-radius:11px;background:#fff;padding:0 12px;font:inherit}.cw-monitor-filters p{margin:0;text-align:right;color:var(--muted);font-size:12px;line-height:1.55}.cw-monitor-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.cw-monitor-status-grid .cw-stat-card strong{font-size:22px;line-height:1.15}.cw-monitor-status-grid .cw-stat-card small{line-height:1.5}.cw-monitor-status-grid .is-good{color:var(--good)}.cw-monitor-status-grid .is-bad{color:var(--danger)}.cw-monitor-backlog-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.cw-monitor-backlog-cards a{text-decoration:none;color:inherit}.cw-monitor-backlog-cards a:hover{border-color:var(--accent)}.cw-monitor-chart-panel{min-width:0}.cw-monitor-chart-panel canvas{display:block;width:100%;height:260px;margin-top:8px}.cw-monitor-summary{text-align:right}.cw-monitor-summary strong,.cw-monitor-summary span{display:block}.cw-monitor-summary strong{font-size:22px}.cw-monitor-summary span{margin-top:4px;color:var(--muted);font-size:12px}.cw-monitor-inline-facts{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.cw-monitor-inline-facts>span,.cw-monitor-inline-facts>a{padding:8px 10px;border-radius:9px;background:#f0eee6;color:#555a52;text-decoration:none;font-size:12px}.cw-monitor-inline-facts>a:hover{outline:1px solid var(--accent)}.cw-monitor-table-wrap{overflow:auto;margin-top:14px}.cw-monitor-table-wrap table{width:100%;border-collapse:collapse;font-size:12px}.cw-monitor-table-wrap th,.cw-monitor-table-wrap td{padding:11px 10px;border-bottom:1px solid #e4e0d6;text-align:left;vertical-align:top;line-height:1.45}.cw-monitor-table-wrap th{color:#666b63;font-size:10px;text-transform:uppercase;letter-spacing:.08em}.cw-monitor-definitions summary{cursor:pointer}.cw-monitor-definitions dl{display:grid;gap:0;margin:18px 0 0}.cw-monitor-definitions dl>div{display:grid;grid-template-columns:180px 1fr;gap:16px;padding:11px 0;border-top:1px solid #e4e0d6}.cw-monitor-definitions dt{font-weight:850}.cw-monitor-definitions dd{margin:0;color:var(--muted);line-height:1.55}.cw-analysis-monitor-page code{font-size:.92em}.cw-monitor-chart-panel .cw-inline-empty{padding:20px 0;text-align:left;color:var(--muted)}
@media(max-width:1050px){.cw-monitor-status-grid,.cw-monitor-backlog-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.cw-monitor-filters{grid-template-columns:1fr 1fr auto}.cw-monitor-filters p{grid-column:1/-1;text-align:left}}
@media(max-width:620px){.cw-monitor-status-grid,.cw-monitor-backlog-cards,.cw-monitor-filters{grid-template-columns:1fr}.cw-monitor-filters p{grid-column:auto}.cw-monitor-chart-panel .cw-panel-head{display:grid}.cw-monitor-summary{text-align:left}.cw-monitor-definitions dl>div{grid-template-columns:1fr;gap:5px}.cw-monitor-chart-panel canvas{height:240px}}
.cw-puzzle-layout.is-focus-mode.is-rush-mode .cw-puzzle-side>.cw-rush-stats{display:grid;grid-column:1/-1;grid-row:1;gap:5px}
.cw-puzzle-layout.is-focus-mode.is-rush-mode #cwPuzzleFeedback{grid-row:2}
.cw-puzzle-layout.is-focus-mode.is-rush-mode #cwResetPuzzle{grid-column:1/3;grid-row:3}
.cw-puzzle-layout.is-focus-mode.is-rush-mode #cwFlipPuzzleBoard{grid-column:3/5;grid-row:3}
.cw-puzzle-layout.is-focus-mode.is-rush-mode #cwNextPuzzle{grid-column:5/7;grid-row:3}

/* Task 5.4: archive access stays clickable and uses a real navigation state. */
.cw-training-status.is-archived{background:#ece9df;color:#666255}.cw-archive-game-list{display:grid;gap:8px}.cw-archive-game-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);text-decoration:none}.cw-archive-game-row:hover{border-color:#9b988c}.cw-archive-game-row>span:first-child{display:grid;gap:3px}.cw-archive-game-row small{color:var(--muted)}.cw-archive-game-row>span:last-child{color:var(--muted);font-size:12px;font-weight:800;white-space:nowrap}.cw-archive-loading{position:fixed;z-index:1200;inset:auto 18px 18px auto;display:flex;align-items:center;gap:9px;padding:12px 15px;border-radius:12px;background:#243d31;color:#fff;font-size:13px;font-weight:850;box-shadow:0 12px 30px rgba(23,32,27,.24)}.cw-archive-loading[hidden]{display:none}.cw-archive-loading .cw-spinner{width:15px;height:15px;border:2px solid rgba(255,255,255,.32);border-top-color:#fff;border-radius:50%;animation:cw-sync-spin .75s linear infinite}@media(max-width:520px){.cw-archive-game-row{align-items:flex-start}.cw-archive-loading{inset:auto 10px 10px 10px;justify-content:center}}

/* Task 5.5: Player Profile. Elo values are primary; no percentage bars. */
.cw-player-profile-page{max-width:1040px}.cw-player-identity{display:flex;align-items:center;gap:16px;padding:20px 22px;border:1px solid var(--line);border-radius:16px;background:var(--dark);color:#fff;box-shadow:var(--shadow)}.cw-player-identity-mark{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:14px;background:#e6d8ab;color:#171b17;font-size:30px}.cw-player-identity-copy{display:grid;gap:2px;min-width:0}.cw-player-identity-copy small{color:#aeb8ae;font-size:9px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}.cw-player-identity-copy strong{overflow:hidden;font-size:22px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.cw-player-identity-copy span{color:#d1d9d1;font-size:12px}.cw-profile-section{margin-top:34px}.cw-profile-section-heading{margin-bottom:13px}.cw-profile-section-heading h2{margin:5px 0 0;font-size:25px;letter-spacing:-.035em}.cw-profile-fact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.cw-profile-fact-card{display:grid;align-content:start;min-height:134px;padding:20px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--panel);box-shadow:none}.cw-profile-fact-card>span{color:var(--muted);font-size:11px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}.cw-profile-fact-card>strong{margin:8px 0 2px;color:var(--ink);font-size:38px;letter-spacing:-.05em;line-height:1;font-variant-numeric:tabular-nums}.cw-profile-fact-card>strong.is-status{font-size:24px;letter-spacing:-.025em;line-height:1.15}.cw-profile-fact-card>small{align-self:end;margin-top:9px;color:var(--muted);font-size:11px}.cw-skill-rating-list{padding:4px 24px}.cw-skill-rating-group-title{margin:0;padding:18px 0 8px;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.cw-skill-rating-group-title:not(:first-child){margin-top:8px;border-top:1px solid var(--line)}.cw-skill-rating-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,auto);align-items:center;gap:24px;min-height:56px;padding:11px 0;border-bottom:1px solid var(--line)}.cw-skill-rating-row>span:first-child{font-size:15px;font-weight:780}.cw-skill-rating-value{display:grid;justify-items:end;min-width:0;text-align:right}.cw-skill-rating-value strong{font-size:26px;letter-spacing:-.035em;line-height:1;font-variant-numeric:tabular-nums}.cw-skill-rating-value small{margin-top:5px;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.cw-skill-rating-value.is-insufficient strong{color:var(--muted);font-size:14px;letter-spacing:0;line-height:1.3}.cw-profile-explanation{margin:13px 2px 0;color:var(--muted);font-size:12px;line-height:1.55}
@media(max-width:640px){.cw-player-identity{padding:17px}.cw-profile-section{margin-top:28px}.cw-profile-fact-grid{grid-template-columns:1fr}.cw-profile-fact-card{min-height:126px;padding:19px}.cw-skill-rating-list{padding:3px 18px}.cw-skill-rating-row{grid-template-columns:minmax(0,1fr) minmax(128px,auto);gap:12px;min-height:66px}.cw-skill-rating-row>span:first-child{font-size:14px}.cw-skill-rating-value strong{font-size:24px}.cw-skill-rating-value.is-insufficient strong{max-width:128px;font-size:13px;white-space:normal}}
@media(max-width:390px){.cw-player-identity-copy strong{font-size:19px}.cw-profile-section-heading h2{font-size:23px}.cw-skill-rating-list{padding-inline:14px}.cw-skill-rating-row{grid-template-columns:minmax(0,1fr) minmax(112px,auto);gap:9px}.cw-skill-rating-row>span:first-child{font-size:13px}.cw-skill-rating-value.is-insufficient strong{max-width:112px;font-size:12px}}

/* Task 5.6: Chess Lessons V1. */
.cw-lesson-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.cw-lessons-title-row{display:flex;align-items:center;gap:11px;flex-wrap:wrap}.cw-lessons-title-row h1{margin-right:0}.cw-lessons-beta-badge{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border:1px solid #5e7c6b;border-radius:999px;background:#dce9df;color:#294b39;font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.cw-lessons-beta-copy{margin:7px 0 0;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.02em}
.cw-lesson-course-card{display:grid;grid-template-rows:1fr auto auto;gap:18px;min-height:260px;overflow:hidden;position:relative}
.cw-lesson-course-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--accent)}
.cw-lesson-course-card.is-opening:before{background:#8f7040}.cw-lesson-course-card.is-endgame:before{background:#4f5e55}
.cw-lesson-course-card h2{margin:8px 0 10px;font-size:24px}.cw-lesson-course-card p{margin:0;color:var(--muted);font-size:14px;line-height:1.6}
.cw-lesson-card-progress{display:grid;gap:5px}.cw-lesson-card-progress>span{color:var(--muted);font-size:12px;font-weight:800}.cw-lesson-card-progress .cw-progress-track{margin:0}
.cw-lesson-breadcrumb{display:flex;align-items:center;gap:14px;margin:-12px 0 20px;color:var(--muted);font-size:12px;font-weight:800}.cw-lesson-breadcrumb a{color:var(--accent);text-decoration:none}
.cw-lessons-course-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:22px;padding:24px 27px;border-radius:17px;background:var(--dark);color:#fff}.cw-lessons-course-heading h2{margin:5px 0 7px;font-size:34px;letter-spacing:-.04em}.cw-lessons-course-heading p{max-width:680px;margin:0;color:#cbd3ca;line-height:1.5}.cw-lessons-course-heading .cw-kicker{color:#b8c3b9}.cw-lessons-course-heading .cw-chip{white-space:nowrap}
.cw-lesson-module-list{display:grid;gap:16px}.cw-lesson-module{padding:22px 24px}.cw-lesson-module-head{display:flex;align-items:start;justify-content:space-between;gap:20px}.cw-lesson-module-head h3{margin:0 0 6px;font-size:22px;letter-spacing:-.025em}.cw-lesson-module-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.cw-lesson-module-head>span{color:var(--muted);font-size:12px;font-weight:850;white-space:nowrap}
.cw-lesson-list{display:grid;margin-top:16px;border-top:1px solid var(--line)}.cw-lesson-list a{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;padding:13px 2px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.cw-lesson-list a:last-child{border-bottom:0}.cw-lesson-list a:hover strong{color:var(--accent)}.cw-lesson-list a>span{display:grid;gap:4px;min-width:0}.cw-lesson-list strong{font-size:14px}.cw-lesson-list small{color:var(--muted);font-size:12px;line-height:1.4}.cw-lesson-list em{flex:0 0 auto;color:var(--accent);font-size:12px;font-style:normal;font-weight:900}
.cw-lesson-runner{display:grid;grid-template-columns:minmax(300px,.9fr) minmax(360px,1.1fr);gap:20px;align-items:start}.cw-lesson-content-panel{min-width:0}.cw-lesson-board-panel{position:sticky;top:92px;min-width:0;padding:18px}.cw-lesson-board-panel .cw-board-wrapper{max-width:600px;margin:auto}.cw-lesson-board-panel>.cw-muted{margin:13px 2px 0;font-size:12px}
.cw-lesson-progress-copy{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:11px;font-weight:850}.cw-lesson-content-panel>.cw-progress-track{margin:8px 0 26px}
.cw-lesson-step-content h2{margin:7px 0 17px;font-size:30px;line-height:1.08}.cw-lesson-step-content h3{margin:22px 0 8px;font-size:16px}.cw-lesson-step-content p{margin:0 0 14px;color:#4f554f;font-size:15px;line-height:1.68}.cw-lesson-step-content ul{display:grid;gap:8px;margin:0;padding-left:20px;color:#4f554f;font-size:14px;line-height:1.5}
.cw-lesson-answers{display:grid;gap:9px;margin-top:18px}.cw-lesson-answer{width:100%;min-height:48px;padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:#fffdf8;color:var(--ink);font:inherit;font-size:13px;font-weight:750;line-height:1.4;text-align:left;cursor:pointer}.cw-lesson-answer:hover,.cw-lesson-answer:focus-visible{border-color:#809481;outline:3px solid rgba(36,76,58,.13);outline-offset:1px}.cw-lesson-answer.is-incorrect{border-color:#d8a49e;background:#f8ecea;color:#87392f}.cw-lesson-answer.is-correct{border-color:#8eb39a;background:#e7f2e8;color:#285f3b}
.cw-lesson-controls{display:flex;flex-wrap:wrap;gap:9px;margin-top:18px}.cw-lesson-controls #cwLessonContinue{margin-left:auto;min-width:128px}.cw-lesson-controls .cw-button{min-height:46px}.cw-lesson-controls button[hidden]{display:none}.cw-lesson-answer.is-revealed{border-color:#5e7c6b;background:#e3eee5;color:#294b39;box-shadow:inset 0 0 0 2px rgba(36,76,58,.12)}
.cw-opening-library{margin-top:22px}.cw-opening-library-head{display:flex;align-items:end;justify-content:space-between;gap:24px}.cw-opening-library-head h2{margin:5px 0 7px}.cw-opening-library-head p{max-width:720px;margin:0;color:var(--muted);font-size:13px;line-height:1.5}.cw-opening-library input{width:min(300px,100%);height:44px;padding:0 13px;border:1px solid var(--line);border-radius:11px;background:#fff;font:inherit}.cw-opening-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:20px}.cw-opening-rows article{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fffdf8}.cw-opening-rows article[hidden]{display:none}.cw-opening-rows article>div{display:grid;gap:4px;min-width:0}.cw-opening-rows strong{font-size:13px}.cw-opening-rows small{color:var(--muted);font-size:11px}.cw-opening-rows code{overflow-wrap:anywhere;color:#4d594f;font:11px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace}.cw-opening-attribution{margin:16px 0 0;color:var(--muted);font-size:11px}.cw-opening-attribution a{color:var(--accent)}
/* Task 5.7: Opening Library, My Openings, Explorer, and Opening Rush. */
.cw-opening-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 20px}.cw-opening-tools>a{display:grid;gap:8px;min-height:132px;padding:20px;color:var(--ink);text-decoration:none}.cw-opening-tools>a:hover{border-color:#9cad9d;transform:translateY(-1px)}.cw-opening-tools strong{font-size:20px}.cw-opening-tools small{color:var(--muted);font-size:12px;line-height:1.5}
.cw-opening-library{padding:24px}.cw-opening-filter-bar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,220px);gap:12px;margin-top:20px}.cw-opening-filter-bar label,.cw-opening-side{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:850}.cw-opening-filter-bar input,.cw-opening-filter-bar select,.cw-opening-side select{width:100%;height:44px;padding:0 12px;border:1px solid var(--line);border-radius:11px;background:#fffdf8;color:var(--ink);font:inherit}.cw-opening-facets{display:flex;flex-wrap:wrap;gap:20px;margin-top:16px}.cw-opening-facets>div{display:grid;gap:7px}.cw-opening-facets>div>span{color:var(--muted);font-size:11px;font-weight:850}.cw-opening-filter-chips{display:flex;flex-wrap:wrap;gap:7px}.cw-opening-filter-chip{min-height:34px;padding:6px 11px;border:1px solid var(--line);border-radius:999px;background:#fffdf8;color:var(--ink);font:inherit;font-size:12px;font-weight:800;cursor:pointer}.cw-opening-filter-chip.is-active{border-color:var(--accent);background:var(--accent);color:#fff}
.cw-opening-rows article{grid-template-columns:minmax(0,1fr) auto;gap:16px}.cw-opening-rows article>div.cw-opening-row-main{display:flex;align-items:flex-start;gap:12px}.cw-opening-row-main>div{display:grid;gap:4px;min-width:0}.cw-opening-row-actions{display:flex!important;align-items:end;justify-content:flex-end;gap:7px}.cw-opening-row-actions .cw-button{min-height:40px;padding:9px 12px;white-space:nowrap}.cw-opening-side{min-width:150px}.cw-opening-side select{height:40px;font-size:12px}.cw-opening-empty{padding:22px;color:var(--muted);text-align:center}
.cw-opening-section{display:grid;gap:18px}.cw-opening-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px}.cw-opening-section-head h2{margin:5px 0 7px;font-size:30px}.cw-opening-section-head p{max-width:680px;margin:0;color:var(--muted);font-size:13px;line-height:1.55}.cw-my-openings{display:grid;gap:14px}.cw-my-openings>section{padding:20px}.cw-my-openings h3{margin:0 0 10px;font-size:19px}.cw-my-openings>section>div{display:grid}.cw-my-openings article{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 0;border-top:1px solid var(--line)}.cw-my-openings article>div:first-child{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:4px 10px}.cw-my-openings article>div:first-child .cw-chip{grid-row:1/4}.cw-my-openings article small{color:var(--muted);font-size:11px}.cw-my-openings article>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.cw-my-openings .cw-button{min-height:38px;padding:8px 11px}
.cw-opening-explorer,.cw-opening-rush{display:grid;grid-template-columns:minmax(340px,1fr) minmax(300px,.62fr);gap:18px;align-items:start}.cw-opening-explorer-board,.cw-opening-rush-board{padding:18px}.cw-opening-explorer-board .cw-board-wrapper,.cw-opening-rush-board .cw-board-wrapper{max-width:680px;margin:auto}.cw-opening-explorer-side,.cw-opening-rush-side{position:sticky;top:86px;padding:22px}.cw-opening-explorer-side h2,.cw-opening-rush-side h2{margin:6px 0 8px;font-size:27px}.cw-opening-explorer-side>p{margin:0 0 14px;color:var(--muted)}.cw-opening-current-move{display:block;margin:16px 0 10px;font-size:13px}.cw-opening-move-list{display:grid;max-height:330px;overflow:auto;border-block:1px solid var(--line)}.cw-opening-move-list>div{display:grid;grid-template-columns:38px 1fr 1fr;gap:4px;padding:5px 0}.cw-opening-move-list span{padding:7px;color:var(--muted);font-size:12px}.cw-opening-move-list button{padding:7px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;font-size:13px;font-weight:750;text-align:left;cursor:pointer}.cw-opening-move-list button:hover{background:var(--accent2)}.cw-opening-move-list button.is-current{background:var(--accent);color:#fff}.cw-opening-move-list button.is-future{color:#9b9d97}.cw-opening-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:15px 0 9px}.cw-opening-nav .cw-button{min-height:42px;padding:8px 6px;font-size:11px}.cw-opening-explorer-side>#cwOpeningAnalyze{width:100%}.cw-opening-explorer-side .cw-feedback{margin-top:10px}
.cw-opening-rush-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:17px 0}.cw-opening-rush-stats>div{display:grid;gap:3px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fffdf8}.cw-opening-rush-stats span{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.cw-opening-rush-stats strong{font-size:24px}.cw-opening-rush-mastery{margin:0 0 6px;font-size:13px;font-weight:850}.cw-opening-rush-side .cw-muted{margin:0 0 15px}.cw-opening-rush-side .cw-feedback{min-height:48px;margin:12px 0}.cw-opening-rush-actions{display:flex;flex-wrap:wrap;gap:8px}
@media(max-width:1050px){.cw-lesson-course-grid{grid-template-columns:1fr}.cw-lesson-course-card{min-height:0}.cw-lesson-runner{grid-template-columns:1fr}.cw-lesson-board-panel{position:static}.cw-lesson-board-panel .cw-board-wrapper{max-width:620px}.cw-opening-explorer,.cw-opening-rush{grid-template-columns:1fr}.cw-opening-explorer-side,.cw-opening-rush-side{position:static}.cw-opening-tools{grid-template-columns:1fr}.cw-opening-tools>a{min-height:0}}
@media(max-width:700px){.cw-lessons-course-heading,.cw-opening-section-head{align-items:flex-start;flex-direction:column}.cw-opening-library-head{align-items:stretch;flex-direction:column}.cw-opening-library input{width:100%}.cw-opening-rows{grid-template-columns:1fr}.cw-opening-filter-bar{grid-template-columns:1fr}.cw-opening-rows article{grid-template-columns:1fr}.cw-opening-row-actions{align-items:stretch;justify-content:flex-start}.cw-my-openings article{align-items:flex-start;flex-direction:column}.cw-my-openings article>div:last-child{justify-content:flex-start}}
@media(max-width:480px){.cw-lessons-page{padding-inline:14px}.cw-lesson-course-card,.cw-lesson-module,.cw-lesson-content-panel{padding:19px}.cw-lesson-board-panel{padding:7px}.cw-lesson-board-panel .cw-board-toolbar{padding:3px 4px 0}.cw-lesson-runner{gap:12px}.cw-lesson-module-head{align-items:flex-start;flex-direction:column;gap:8px}.cw-lesson-list a{align-items:flex-start}.cw-lesson-controls{display:grid;grid-template-columns:1fr 1fr}.cw-lesson-controls .cw-button{width:100%;padding-inline:9px}.cw-lesson-controls #cwLessonContinue{grid-column:1/-1;justify-self:stretch;margin-left:0}.cw-lesson-step-content h2{font-size:26px}.cw-lesson-step-content p{font-size:14px}.cw-opening-library{padding:16px}.cw-opening-rows article{padding:11px}.cw-opening-row-actions{display:grid!important;grid-template-columns:1fr 1fr}.cw-opening-row-actions .cw-opening-side{grid-column:1/-1}.cw-opening-row-actions .cw-button{white-space:normal}.cw-opening-explorer,.cw-opening-rush{grid-template-columns:minmax(0,1fr);gap:10px}.cw-opening-explorer-board,.cw-opening-rush-board{padding:6px}.cw-opening-explorer-side,.cw-opening-rush-side{padding:17px}.cw-opening-nav{grid-template-columns:1fr 1fr}.cw-my-openings>section{padding:16px}.cw-my-openings article>div:last-child{display:grid;width:100%;grid-template-columns:1fr 1fr}.cw-my-openings article>div:last-child .cw-button{width:100%;padding-inline:7px}.cw-opening-rush-actions{display:grid;grid-template-columns:1fr 1fr}.cw-opening-rush-actions .cw-button{width:100%;padding-inline:7px}}

/* Task 5.8: server-paginated opening families and generic move-prefix browsing. */
.cw-opening-path{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px;padding-bottom:2px}.cw-opening-path:empty{display:none}.cw-opening-library[aria-busy="true"] .cw-opening-rows{opacity:.55;pointer-events:none}.cw-opening-rows{grid-template-columns:minmax(0,1fr);gap:14px}.cw-opening-family{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#fffdf8}.cw-opening-family>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 15px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 72%,var(--accent2))}.cw-opening-family>header h3{margin:0;font-size:16px;letter-spacing:-.01em}.cw-opening-family>header span{color:var(--muted);font-size:11px;font-weight:800}.cw-opening-family>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 10px;padding:0 12px}.cw-opening-rows .cw-opening-family article{border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}.cw-opening-line-title{font-size:13px}.cw-opening-pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:16px;color:var(--muted);font-size:12px;font-weight:750}.cw-opening-pagination .cw-button{min-width:120px}.cw-opening-pagination button[hidden]{display:none}
@media(max-width:820px){.cw-opening-family>div{grid-template-columns:1fr}}
@media(max-width:480px){.cw-opening-family>header{align-items:flex-start;padding:12px}.cw-opening-family>header h3{font-size:15px}.cw-opening-family>div{padding-inline:9px}.cw-opening-pagination{align-items:stretch;flex-direction:column}.cw-opening-pagination .cw-button{width:100%}.cw-opening-filter-chip{min-height:38px}}

/* Completed personalized workout summary. This is ordinary document flow so
 * mobile completion never inherits the fixed runner or its body scroll lock. */
.cw-training-summary-page{max-width:1060px}
.cw-training-summary-hero{display:grid;grid-template-columns:68px minmax(0,1fr);gap:22px;align-items:center;margin-bottom:24px}
.cw-training-summary-icon{display:grid;place-items:center;width:68px;height:68px;border:1px solid #ccb97c;border-radius:19px;background:#f4ecd7;color:#725b2d}
.cw-training-summary-icon svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cw-training-summary-hero h1{margin:0;font:700 clamp(38px,5vw,58px)/1 var(--font-display);letter-spacing:-.045em}
.cw-training-summary-hero p{max-width:690px;margin:10px 0 0;color:var(--text-muted);font-size:16px;line-height:1.55}
.cw-training-summary-section{margin-top:16px;padding:24px}
.cw-training-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:17px}
.cw-training-summary-head h2{margin:0;font-size:21px;letter-spacing:-.025em}
.cw-training-summary-head p{margin:4px 0 0;color:var(--text-muted);font-size:12px}
.cw-training-summary-stats{display:grid;border:1px solid #e4e0d6;border-radius:13px;overflow:hidden}
.cw-training-summary-stats.is-analysis{grid-template-columns:repeat(3,minmax(0,1fr))}
.cw-training-summary-stats.is-performance{grid-template-columns:repeat(4,minmax(0,1fr))}
.cw-training-summary-stats.is-daily-overview{grid-template-columns:minmax(0,2fr) minmax(150px,1fr)}
.cw-training-summary-stats.is-daily-overview>div:first-child strong{font-size:21px;line-height:1.2;letter-spacing:-.025em}
.cw-training-summary-stats.is-completion-only{grid-template-columns:minmax(0,1fr);max-width:260px}
.cw-training-summary-stats>div{min-width:0;padding:16px 18px;border-right:1px solid #e4e0d6}
.cw-training-summary-stats>div:last-child{border-right:0}
.cw-training-summary-stats strong,.cw-training-summary-stats span{display:block}
.cw-training-summary-stats strong{margin-bottom:4px;font-size:28px;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.cw-training-summary-stats strong.cw-training-summary-assistance-counts{font-size:17px;line-height:1.25;letter-spacing:-.02em}
.cw-training-summary-stats span{color:var(--text-muted);font-size:12px;line-height:1.4}
.cw-training-summary-definition{margin:13px 0 0;color:var(--text-muted);font-size:12px;line-height:1.55}
.cw-training-summary-evidence-note{margin:14px 0 0;padding:11px 13px;border-radius:10px;background:var(--surface-subtle);color:var(--text-secondary);font-size:12px;line-height:1.5}
.cw-training-summary-details{margin-top:14px;border-top:1px solid var(--line)}
.cw-training-summary-details>summary{padding:16px 2px 2px;cursor:pointer;color:var(--accent);font-weight:800}
.cw-training-summary-details>summary:focus-visible{outline:3px solid var(--accent-gold);outline-offset:4px}
.cw-training-summary-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}
.cw-training-summary-types>div{display:grid;gap:3px;padding:11px 12px;border-radius:10px;background:#f0eee6}
.cw-training-summary-types strong{font-size:12px}.cw-training-summary-types span{color:var(--text-muted);font-size:11px}
.cw-training-summary-exercises{display:grid;margin-top:13px;border-top:1px solid var(--line)}
.cw-training-summary-exercises article{display:grid;grid-template-columns:minmax(170px,1fr) minmax(320px,1.2fr);gap:18px;align-items:center;padding:13px 2px;border-bottom:1px solid var(--line)}
.cw-training-summary-exercises article>div:first-child{display:grid;gap:3px}.cw-training-summary-exercises small{color:var(--text-muted);font-size:11px}
.cw-training-summary-exercises dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}
.cw-training-summary-exercises dl>div{display:grid;gap:2px}.cw-training-summary-exercises dt{color:var(--text-muted);font-size:10px;font-weight:750}.cw-training-summary-exercises dd{margin:0;font-size:12px;font-weight:800}
.cw-training-summary-unrecorded{justify-self:end;color:var(--text-muted);font-size:11px;font-weight:750}
.cw-training-summary-actions{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:10px;margin-top:18px}
.cw-training-summary-actions .cw-button{min-height:48px}.cw-training-summary-actions svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cw-training-summary-unavailable{max-width:760px;margin-inline:auto}.cw-training-summary-unavailable .cw-empty-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
@media(max-width:820px){.cw-training-summary-page{padding-top:30px}.cw-training-summary-stats.is-performance{grid-template-columns:repeat(2,minmax(0,1fr))}.cw-training-summary-stats.is-performance>div:nth-child(2){border-right:0}.cw-training-summary-stats.is-performance>div:nth-child(-n+2){border-bottom:1px solid #e4e0d6}.cw-training-summary-exercises article{grid-template-columns:1fr}}
@media(max-width:480px){.cw-training-summary-page{padding-top:24px}.cw-training-summary-hero{grid-template-columns:50px minmax(0,1fr);gap:14px;align-items:start}.cw-training-summary-icon{width:50px;height:50px;border-radius:14px}.cw-training-summary-icon svg{width:27px;height:27px}.cw-training-summary-hero h1{font-size:35px}.cw-training-summary-hero p{font-size:14px}.cw-training-summary-section{padding:18px 16px}.cw-training-summary-head{display:grid;gap:8px}.cw-training-summary-head .cw-chip{justify-self:start}.cw-training-summary-stats.is-analysis,.cw-training-summary-stats.is-performance,.cw-training-summary-stats.is-daily-overview{grid-template-columns:1fr}.cw-training-summary-stats>div,.cw-training-summary-stats.is-performance>div:nth-child(2){display:grid;grid-template-columns:44px 1fr;gap:10px;align-items:center;border-right:0;border-bottom:1px solid #e4e0d6}.cw-training-summary-stats.is-daily-overview>div:first-child{grid-template-columns:1fr}.cw-training-summary-stats>div:last-child{border-bottom:0}.cw-training-summary-stats strong{margin:0;font-size:23px}.cw-training-summary-stats.is-daily-overview>div:first-child strong{font-size:18px}.cw-training-summary-types{grid-template-columns:1fr}.cw-training-summary-exercises dl{grid-template-columns:1fr}.cw-training-summary-unrecorded{justify-self:start}.cw-training-summary-actions{grid-template-columns:1fr}.cw-training-summary-actions .cw-button,.cw-training-summary-unavailable .cw-empty-actions .cw-button{width:100%}.cw-training-summary-unavailable .cw-empty-actions{align-items:stretch;flex-direction:column}}

/* Final personalized-workout handoff. The runner is removed from view before
 * the authoritative completion check and destination preload begin. */
body.cw-training-summary-transition-open{overflow:auto}
.cw-training-summary-transition[hidden]{display:none}
.cw-training-summary-transition{display:grid;place-items:center;width:100%;min-height:clamp(430px,calc(100svh - 150px),720px);padding:48px 20px;background:var(--app-bg);text-align:center}
.cw-training-summary-transition-inner{display:grid;justify-items:center;max-width:520px}
.cw-training-summary-spinner{width:68px;height:68px;margin-bottom:25px;overflow:visible;transform-origin:center;animation:cw-training-summary-spin 1s linear infinite}
.cw-training-summary-spinner circle{fill:none;stroke-width:6}
.cw-training-summary-spinner-track{stroke:#d8c898}
.cw-training-summary-spinner-progress{stroke:var(--surface-dark);stroke-linecap:round;stroke-dasharray:58 94}
.cw-training-summary-error-icon{width:68px;height:68px;margin-bottom:25px;overflow:visible;color:var(--error)}
.cw-training-summary-error-icon circle,.cw-training-summary-error-icon path{fill:none;stroke:var(--error);stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.cw-training-summary-error-icon[hidden]{display:none}
.cw-training-summary-transition h1{margin:0;font:700 clamp(31px,4vw,43px)/1.08 var(--font-display);letter-spacing:-.035em;color:var(--surface-dark)}
.cw-training-summary-transition p{margin:12px 0 0;color:var(--text-muted);font-size:15px;line-height:1.55}
.cw-training-summary-transition-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:24px}
.cw-training-summary-transition-actions[hidden]{display:none}
.cw-training-summary-transition .cw-button{min-width:140px}
.cw-training-summary-transition.is-error h1{color:var(--error)}
.cw-training-summary-transition.is-error .cw-training-summary-spinner{display:none;animation:none}
@keyframes cw-training-summary-spin{to{transform:rotate(360deg)}}
@media(max-width:480px){.cw-training-summary-transition{min-height:calc(100svh - 76px);padding:38px 14px}.cw-training-summary-spinner,.cw-training-summary-error-icon{width:60px;height:60px;margin-bottom:21px}.cw-training-summary-transition h1{font-size:31px}.cw-training-summary-transition p{font-size:14px}.cw-training-summary-transition-actions{width:100%;flex-direction:column;align-items:center}.cw-training-summary-transition .cw-button{width:min(100%,280px)}}
@media(prefers-reduced-motion:reduce){.cw-training-summary-spinner{animation:none}.cw-training-summary-spinner-progress{stroke-dasharray:38 114;transform:rotate(-35deg);transform-origin:center}}

/* Task 5.9: persisted personalized positional recommendations. */
.cw-positional-recommendations{display:grid;gap:18px;margin:0 0 18px;padding:22px 24px;border-left:4px solid var(--accent)}
.cw-positional-recommendations-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.cw-positional-recommendations-head h3{margin:4px 0 0;font-size:22px;letter-spacing:-.025em}
.cw-positional-recommendation-list{display:grid;border-top:1px solid var(--line)}.cw-positional-recommendation-list article{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;padding:12px 0;border-bottom:1px solid var(--line)}.cw-positional-recommendation-list article:last-child{border-bottom:0}.cw-positional-recommendation-list article>div:first-child{display:grid;gap:4px}.cw-positional-recommendation-list strong{font-size:14px}.cw-positional-recommendation-list small{color:var(--muted);font-size:12px}.cw-positional-recommendation-list article>div:last-child{display:flex;gap:8px;flex:0 0 auto}.cw-positional-recommendation-list .cw-button{min-height:40px;padding:8px 12px;font-size:12px}
.cw-positional-profile-section{margin-top:28px}.cw-positional-weakness-list{padding:4px 22px}.cw-positional-weakness-list a{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;min-height:58px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}.cw-positional-weakness-list a:last-child{border-bottom:0}.cw-positional-weakness-list a:hover strong{color:var(--accent)}.cw-positional-weakness-list strong{font-size:14px}.cw-positional-weakness-list span{color:var(--muted);font-size:12px;font-weight:750;text-align:right}
@media(max-width:640px){.cw-positional-recommendations{padding:19px}.cw-positional-recommendations-head{align-items:flex-start;flex-direction:column}.cw-positional-recommendation-list article{align-items:stretch;flex-direction:column;padding:15px 0}.cw-positional-recommendation-list article>div:last-child{display:grid;grid-template-columns:1fr 1fr}.cw-positional-recommendation-list .cw-button{width:100%;white-space:normal}.cw-positional-weakness-list{padding-inline:16px}.cw-positional-weakness-list a{grid-template-columns:minmax(0,1fr) minmax(118px,auto);gap:10px}}
@media(max-width:390px){.cw-positional-recommendation-list article>div:last-child{grid-template-columns:1fr}.cw-positional-weakness-list a{grid-template-columns:1fr;gap:3px;padding:10px 0}.cw-positional-weakness-list span{text-align:left}}

/* Task 5.10: endgame recommendations reuse the compact lesson/profile system. */
.cw-endgame-recommendations{border-left-color:#4f5e55}.cw-endgame-profile-section .cw-profile-section-heading .cw-kicker{color:#4f5e55}

/* Task 5.11: persisted opening patterns from real games. */
.cw-opening-from-games{display:grid;gap:18px;margin-top:22px;padding:22px 24px;border-left:4px solid #8f7040}.cw-opening-game-list{display:grid;border-top:1px solid var(--line)}.cw-opening-game-list article{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:84px;padding:13px 0;border-bottom:1px solid var(--line)}.cw-opening-game-list article>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 9px;min-width:0}.cw-opening-game-list .cw-chip{grid-row:1/5}.cw-opening-game-list strong{font-size:15px}.cw-opening-game-list small,.cw-opening-game-list span:not(.cw-chip){color:var(--muted);font-size:11px}.cw-opening-game-list article>a{flex:0 0 auto}.cw-opening-game-detail{gap:20px}.cw-opening-repertoire-prompt{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 19px;border-left:4px solid #8f7040}.cw-opening-repertoire-prompt p{margin:0}.cw-opening-decision-list{display:grid;gap:11px}.cw-opening-decision-list article{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px}.cw-opening-decision-list article>div:first-child{display:grid;gap:5px}.cw-opening-decision-list article>div:last-child{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.cw-opening-decision-list span,.cw-opening-decision-list small{color:var(--muted);font-size:12px}.cw-opening-recent-games{display:grid;gap:0}.cw-opening-recent-games h3{margin:4px 0 10px}.cw-opening-recent-games>a{display:grid;grid-template-columns:minmax(110px,.6fr) minmax(120px,1fr) auto;gap:14px;padding:12px 2px;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}.cw-opening-recent-games>a:hover{color:var(--accent)}.cw-opening-recent-games small,.cw-opening-recent-games em{color:var(--muted);font-size:11px;font-style:normal}.cw-opening-pattern-list{padding:8px 22px 18px}.cw-opening-pattern-list>div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}.cw-opening-pattern-list>div strong{color:var(--muted);font-size:12px}.cw-opening-pattern-list>p{margin:15px 0 12px;color:var(--muted);font-size:12px}
@media(max-width:640px){.cw-opening-from-games{padding:18px}.cw-opening-game-list article,.cw-opening-decision-list article,.cw-opening-repertoire-prompt{align-items:stretch;flex-direction:column}.cw-opening-game-list article>a,.cw-opening-repertoire-prompt .cw-button{width:100%}.cw-opening-decision-list article>div:last-child{display:grid;grid-template-columns:1fr 1fr}.cw-opening-decision-list .cw-button{width:100%;white-space:normal}.cw-opening-recent-games>a{grid-template-columns:1fr auto}.cw-opening-recent-games>a small{grid-column:1}.cw-opening-recent-games>a em{grid-column:2;grid-row:1/3;text-align:right}.cw-opening-pattern-list{padding-inline:16px}}
@media(max-width:390px){.cw-opening-decision-list article>div:last-child{grid-template-columns:1fr}.cw-opening-recent-games>a{grid-template-columns:1fr}.cw-opening-recent-games>a em{grid-column:1;grid-row:auto;text-align:left}.cw-opening-pattern-list>div{align-items:flex-start;flex-direction:column;gap:3px}}

/* Product tier indicators stay subordinate to the protected analysis/Profile UI. */
.cw-premium-badge{display:inline-flex;margin-left:5px;padding:2px 6px;border-radius:999px;background:#ede3c8;color:#655022;font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.cw-premium-note{margin:0;color:var(--muted);font-size:12px}.cw-plan-status{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;padding:13px 17px;border:1px solid var(--line);border-radius:13px;background:var(--panel)}.cw-plan-status strong{font-size:15px}.cw-analysis-provider-choice[aria-disabled="true"]{border-style:dashed;color:var(--muted)}
.cw-home-analysis-panel .cw-premium-note{color:var(--text-secondary)}@media(max-width:480px){.cw-analysis-provider{flex-wrap:wrap}.cw-analysis-provider>span{width:100%}.cw-plan-status{padding:12px 14px}}

/* Task 7: local-day Daily history and chronological game-date workout queue. */
.cw-recent-daily-plans,.cw-game-date-queue{max-width:1000px;margin-top:28px}.cw-recent-daily-list,.cw-game-date-batches{display:grid;gap:10px}.cw-recent-daily-row{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:68px;padding:12px 16px;border:1px solid var(--line);border-radius:13px;background:var(--panel);color:var(--ink);text-decoration:none;box-shadow:var(--shadow)}.cw-recent-daily-row:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.cw-recent-daily-row>span:first-child{display:grid;gap:3px}.cw-recent-daily-row small{color:var(--muted);font-size:11px}.cw-game-date-batches{grid-template-columns:minmax(0,1fr)}.cw-game-date-card:first-child{border-color:color-mix(in srgb,var(--accent) 40%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--panel) 94%,var(--accent)),var(--panel))}.cw-game-date-card .cw-workout-card-foot{align-items:center}.cw-batch-pagination{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.cw-review-completion .cw-empty-actions{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.cw-review-completion .cw-empty-actions strong{color:var(--muted);font-size:13px}
@media(max-width:480px){.cw-recent-daily-row{align-items:flex-start;flex-direction:column;gap:8px}.cw-recent-daily-row .cw-training-status{margin-top:0}.cw-game-date-card .cw-workout-card-foot{align-items:stretch;flex-direction:column}.cw-game-date-card .cw-workout-card-foot .cw-button,.cw-batch-pagination .cw-button,.cw-review-completion .cw-empty-actions .cw-button{width:100%}.cw-batch-pagination{align-items:stretch;flex-direction:column}.cw-review-completion .cw-empty-actions{align-items:stretch;flex-direction:column}}

/* Puzzle Rating V2 feedback shows only the player's rating movement. */
.cw-skill-rating-row:last-child{border-bottom:0}
.cw-puzzle-layout.is-focus-mode #cwPuzzleFeedback.cw-board-status{height:54px;min-height:54px;margin:0;overflow-y:auto}
@media(max-width:1050px){.cw-lesson-board-panel{order:-1}.cw-lesson-board-panel .cw-board-status{margin-bottom:0}}
/* Launch information uses the existing page and panel primitives. */
.cw-legal-links{display:flex;flex-wrap:wrap;gap:12px 24px;padding:24px 0;font-size:13px}
.cw-main>.cw-legal-links{justify-content:center;width:100%;max-width:1220px;margin:0 auto;padding-inline:34px;text-align:center}
.cw-main>.cw-legal-links a{max-width:100%;overflow-wrap:anywhere}
.cw-legal-links a{color:inherit;text-underline-offset:4px}
.cw-legal-content{max-width:850px;padding:clamp(20px,4vw,40px);line-height:1.75;overflow-wrap:anywhere}
.cw-legal-content p+p{margin-top:20px}
.cw-billing-controls{margin:0 0 24px}
@media(max-width:860px){.cw-main>.cw-legal-links{padding-inline:24px}}
@media(max-width:640px){.cw-main>.cw-legal-links{padding-inline:14px}}

/* Phone board runners only. Board dimensions never depend on feedback height. */
.cw-runner-close{display:none}
@media(max-width:480px){
  html:has(.cw-stable-board-page #cwPuzzleBoard){scrollbar-gutter:auto;scrollbar-width:none}
  body:has(.cw-stable-board-page #cwPuzzleBoard) .cw-topbar{height:44px;padding-inline:8px}
  .cw-stable-board-page:has(#cwPuzzleBoard){padding:8px max(8px,calc(env(safe-area-inset-right) + 4px)) max(20px,env(safe-area-inset-bottom)) max(8px,calc(env(safe-area-inset-left) + 4px))}
  .cw-stable-board-page:has(#cwPuzzleBoard)>.cw-page-heading{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%)}
  .cw-stable-board-page:has(#cwPuzzleBoard)>.cw-workout-breadcrumb{display:none}
  .cw-stable-board-page>#cwPuzzleBoard{width:100%;margin:0 0 14px;gap:10px}
  #cwPuzzleBoard .cw-board-panel{padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
  #cwPuzzleBoard .cw-board-toolbar{gap:8px;min-height:44px;margin:0 0 6px}
  #cwPuzzleBoard .cw-board-toolbar-meta{order:1;flex:1;justify-content:flex-end;min-width:0;font-size:11px}
  #cwPuzzleBoard .cw-board-toolbar-meta .cw-chip{display:none}
  #cwPuzzleBoard .cw-runner-close{display:inline-flex;order:0;min-height:44px;padding:8px 10px;border-radius:var(--control-radius);font-size:12px}
  #cwPuzzleBoard .cw-focus-enter{order:2;min-width:44px;min-height:44px;padding:8px;border-radius:var(--control-radius)}
  #cwPuzzleBoard .cw-focus-enter-label{display:none}
  #cwPuzzleBoard .cw-board-stage{width:calc(100% + 8px);max-width:none;height:auto;margin-inline:-4px;gap:4px}
  #cwPuzzleBoard .cw-evaluation-bar{flex:0 0 12px;width:12px;border-radius:3px;box-shadow:none}
  #cwPuzzleBoard .cw-evaluation-value{font-size:10px;line-height:1;writing-mode:vertical-rl;text-orientation:mixed;white-space:nowrap}
  #cwPuzzleBoard .cw-board-wrapper{flex:1 1 0;width:auto;height:auto;max-width:none;min-width:0;aspect-ratio:1}
  #cwPuzzleBoard .cw-board{width:100%;height:auto;max-width:none;aspect-ratio:1;border-radius:5px}
  #cwPuzzleBoard .cw-puzzle-side{display:flex;flex-direction:column;gap:8px;position:static;min-width:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}
  #cwPuzzleBoard .cw-puzzle-side>#cwPositionKicker,#cwPuzzleBoard .cw-puzzle-side>#cwPuzzleTitle,#cwPuzzleBoard .cw-puzzle-side>#cwPuzzlePrompt{display:none}
  #cwPuzzleBoard #cwPuzzleFeedback.cw-board-status{order:0;height:62px;min-height:62px;margin:0;padding:10px 12px;overflow-y:auto;border-radius:var(--control-radius);font-size:13px;line-height:1.4;overflow-wrap:anywhere}
  #cwPuzzleBoard #cwPuzzleFeedback.solved{border-color:#a8bda8;background:#eaf0e5;color:var(--surface-dark);box-shadow:inset 3px 0 var(--accent-gold)}
  #cwPuzzleBoard #cwPuzzleFeedback.checkmate{border-color:#6f9978;background:#dfeee1;box-shadow:inset 4px 0 #2f6b45}
  #cwPuzzleBoard .cw-feedback-title{font-size:16px;font-weight:700}
  #cwPuzzleBoard .cw-feedback-detail{font-size:12px;font-weight:500}
  #cwPuzzleBoard #cwIncorrectFeedback{order:1;margin:0;padding:10px 12px;border-radius:var(--control-radius)}
  #cwPuzzleBoard .cw-incorrect-head{gap:8px;flex-wrap:wrap}
  #cwPuzzleBoard .cw-incorrect-head strong{font-size:15px}
  #cwPuzzleBoard .cw-incorrect-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  #cwPuzzleBoard .cw-incorrect-details>div{min-width:0;padding:8px;overflow-wrap:anywhere}
  #cwPuzzleBoard :is(.cw-why-bad-question,.cw-compare-question,.cw-improving-discovery){order:2;margin:0;min-width:0}
  #cwPuzzleBoard .cw-improving-next-candidate{order:3;margin:0;min-height:48px}
  #cwPuzzleBoard .cw-puzzle-actions{order:5;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:0}
  #cwPuzzleBoard .cw-puzzle-side .cw-button{grid-area:auto;justify-self:stretch;width:100%;min-width:0;min-height:44px;margin:0;padding:9px 8px;border-radius:var(--control-radius);font-family:var(--font-ui);font-size:12px;font-weight:600;line-height:1.3;white-space:normal;overflow-wrap:anywhere;touch-action:manipulation}
  #cwPuzzleBoard .cw-puzzle-actions>.cw-button{grid-column:span 2}
  #cwPuzzleBoard #cwFlipPuzzleBoard{order:0}
  #cwPuzzleBoard #cwHintPuzzle{order:1}
  #cwPuzzleBoard #cwResetPuzzle{order:2}
  #cwPuzzleBoard #cwAnalyzeFromExercise{order:3;grid-column:1/4}
  #cwPuzzleBoard #cwFocusExplanation{order:4;display:inline-flex;grid-column:4/7}
  #cwPuzzleBoard #cwPracticeAgain{order:6;grid-column:1/-1;border-color:transparent;background:transparent;color:var(--text-secondary);font-size:11px;text-decoration:underline;text-underline-offset:3px}
  #cwPuzzleBoard .cw-focus-explanation-trigger.is-attention{border-color:#c89f88;background:#f6eee2;color:var(--surface-dark);box-shadow:none}
  #cwPuzzleBoard .cw-puzzle-navigation{order:4;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,5fr);gap:8px;margin:2px 0 0}
  #cwPuzzleBoard #cwPuzzlePosition{display:none}
  #cwPuzzleBoard .cw-puzzle-navigation:has(#cwPreviousPuzzle[hidden]){grid-template-columns:minmax(0,1fr)}
  #cwPuzzleBoard #cwNextPuzzle{grid-column:auto;min-height:48px;background:var(--surface-dark);border-color:var(--surface-dark);color:var(--surface-light);font-size:14px;font-weight:650}
  #cwPuzzleBoard #cwNextPuzzle:hover:not(:disabled){background:var(--accent-strong)}
  #cwPuzzleBoard.has-improving-alternative #cwNextPuzzle{background:transparent;border-color:#829b91;color:var(--ink);box-shadow:none}
  #cwPuzzleBoard.has-improving-alternative #cwNextPuzzle:hover:not(:disabled){background:#eeebe1}
  #cwPuzzleBoard .cw-puzzle-side>.cw-mini-stats{order:6;gap:8px;margin:4px 0 0}
  #cwPuzzleBoard .cw-mini-stats>div{min-width:0;padding:8px}
  #cwPuzzleBoard .cw-mini-stats strong{font-size:18px}
  #cwPuzzleBoard .cw-mini-stats span{font-size:9px;overflow-wrap:anywhere}
  #cwPuzzleBoard .cw-compare-choice{min-width:0;padding:10px}
  #cwPuzzleBoard .cw-compare-choice-actions{display:grid;grid-template-columns:minmax(0,1fr)}
  #cwPuzzleBoard.is-focus-mode{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;padding-top:0;padding-inline:max(8px,calc(env(safe-area-inset-left) + 4px)) max(8px,calc(env(safe-area-inset-right) + 4px));background:var(--surface-dark);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
  /* Sticky chrome stays in flow; safe-area padding belongs to the header so it
     also protects the exit after the runner scrolls. Status never adds rows. */
  #cwPuzzleBoard.is-focus-mode>.cw-focus-topbar{flex:none;min-height:52px;padding:max(4px,env(safe-area-inset-top)) 0 4px;gap:8px}
  #cwPuzzleBoard .cw-focus-close{min-width:0;min-height:44px;padding:8px 10px;border-radius:var(--control-radius);font-size:12px;font-weight:600}
  #cwPuzzleBoard .cw-focus-progress{flex:1;gap:6px;flex-wrap:nowrap;justify-content:flex-end;overflow:hidden}
  #cwPuzzleBoard .cw-focus-progress strong{flex:none;font-size:12px}
  #cwPuzzleBoard.is-focus-mode .cw-board-panel{display:block;flex:none;overflow:visible}
  #cwPuzzleBoard.is-focus-mode .cw-board-toolbar{display:none}
  #cwPuzzleBoard.is-focus-mode .cw-puzzle-side{flex:none;padding:0}
  #cwPuzzleBoard.is-focus-mode #cwPracticeAgain{display:none!important}
  #cwPuzzleBoard.is-focus-mode #cwAnalyzeFromExercise[hidden]{display:inline-flex!important;visibility:hidden;pointer-events:none}
  #cwPuzzleBoard.is-focus-mode .cw-board-stage.cw-board-stage-no-eval{width:var(--cw-focus-board-size);max-width:100%;margin-inline:auto}
  #cwPuzzleBoard.is-focus-mode #cwIncorrectFeedback:not([hidden]){display:block!important}
  #cwPuzzleBoard.is-focus-mode #cwIncorrectFeedback>:not(#cwTryAgain){display:none}
  #cwPuzzleBoard.is-focus-mode .cw-compare-question~#cwPuzzleFeedback{display:flex}
  #cwPuzzleBoard.is-rush-mode .cw-puzzle-side>.cw-rush-stats{display:grid;order:-1;grid-template-columns:repeat(3,minmax(0,1fr));margin:0}
  #cwPuzzleBoard.is-rush-mode .cw-puzzle-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  #cwPuzzleBoard.is-rush-mode .cw-puzzle-actions>.cw-button{grid-column:auto}
  #cwPuzzleBoard .cw-focus-explanation-sheet{padding-bottom:max(14px,env(safe-area-inset-bottom))}
}

/* Compact runner: phones enter the existing focus surface automatically. */
.cw-focus-tools-trigger,.cw-focus-sheet-back{display:none}
.cw-focus-tools-body{flex:1 1 auto;min-height:0;padding:16px 2px;overflow-y:auto;overscroll-behavior:contain}
.cw-focus-tools-actions{display:grid;grid-template-columns:1fr;gap:8px}
.cw-focus-tools-actions>.cw-button{justify-content:flex-start;width:100%;min-height:48px;text-align:left}
.cw-focus-tools-actions>#cwPracticeAgain{margin-top:8px;border-color:transparent;border-top:1px solid var(--line);border-radius:0;background:transparent;color:var(--muted);font-size:12px;text-decoration:underline;text-underline-offset:3px}
.cw-focus-sheet-back{place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:#f4f1e8;color:var(--ink);font-size:20px;cursor:pointer}
.cw-focus-tools-layer{z-index:1200}

@media(max-width:480px), (max-width:900px) and (max-height:520px) and (pointer:coarse){
  body.cw-training-focus-open{overflow:hidden;overscroll-behavior:none}
  #cwPuzzleBoard.has-mobile-tools .cw-focus-tools-trigger{display:inline-flex}
  #cwPuzzleBoard.is-focus-mode{position:fixed;inset:0;z-index:950;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:8px;width:100%;max-width:none;height:100vh;height:100dvh;margin:0;padding:0 max(8px,calc(env(safe-area-inset-right) + 4px)) max(8px,env(safe-area-inset-bottom)) max(8px,calc(env(safe-area-inset-left) + 4px));background:var(--surface-dark);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none}
  #cwPuzzleBoard.is-focus-mode>.cw-focus-topbar{position:sticky;top:0;z-index:90;display:flex;flex:none;align-items:center;justify-content:space-between;gap:8px;min-height:52px;padding:max(4px,env(safe-area-inset-top)) 0 4px;border-bottom:1px solid var(--accent-gold);background:var(--surface-dark);color:var(--surface-light)}
  #cwPuzzleBoard.is-focus-mode .cw-focus-close{min-width:0;min-height:44px;padding:8px 10px;border-radius:var(--control-radius);font-size:12px;font-weight:600}
  #cwPuzzleBoard.is-focus-mode .cw-focus-progress{display:grid;grid-template-columns:minmax(0,1fr);flex:1;gap:1px;justify-items:end;overflow:hidden;text-align:right}
  #cwPuzzleBoard.is-focus-mode .cw-focus-progress span{max-width:100%;color:var(--surface-light);font-size:12px;letter-spacing:.035em;text-transform:none}
  #cwPuzzleBoard.is-focus-mode .cw-focus-progress strong{display:none}
  #cwPuzzleBoard.is-focus-mode .cw-focus-progress small{max-width:100%;overflow:hidden;color:#c9d6c9;font-size:10px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}
  #cwPuzzleBoard.is-focus-mode .cw-board-panel{display:grid;place-items:center;flex:none;min-width:0;min-height:0;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
  #cwPuzzleBoard.is-focus-mode .cw-board-toolbar{display:none}
  #cwPuzzleBoard.is-focus-mode .cw-board-stage{display:flex;width:calc(var(--cw-focus-board-size) + 23px);max-width:100%;height:var(--cw-focus-board-size);margin-inline:auto;gap:5px;align-items:stretch}
  #cwPuzzleBoard.is-focus-mode .cw-board-stage.cw-board-stage-no-eval{width:var(--cw-focus-board-size)}
  #cwPuzzleBoard.is-focus-mode .cw-evaluation-bar{flex:0 0 18px;width:18px;height:var(--cw-focus-board-size);border-radius:5px}
  #cwPuzzleBoard.is-focus-mode .cw-board-wrapper{flex:0 0 var(--cw-focus-board-size);width:var(--cw-focus-board-size);height:var(--cw-focus-board-size);max-width:none;min-width:0;min-height:0;aspect-ratio:1}
  #cwPuzzleBoard.is-focus-mode .cw-board{width:100%;height:100%;max-width:none;aspect-ratio:1;border-radius:5px;touch-action:none}
  #cwPuzzleBoard.is-focus-mode .cw-puzzle-side{display:flex;flex:none;flex-direction:column;gap:8px;position:static;min-width:0;margin:0;padding:0 0 max(4px,env(safe-area-inset-bottom));border:0;border-radius:0;background:transparent;box-shadow:none}
  #cwPuzzleBoard.is-focus-mode .cw-puzzle-side>#cwPositionKicker,#cwPuzzleBoard.is-focus-mode .cw-puzzle-side>#cwPuzzleTitle,#cwPuzzleBoard.is-focus-mode .cw-puzzle-side>#cwPuzzlePrompt,#cwPuzzleBoard.is-focus-mode .cw-puzzle-side>.cw-mini-stats{display:none}
  #cwPuzzleBoard.is-focus-mode #cwPuzzleFeedback.cw-board-status{order:0;height:auto;min-height:44px;margin:0;padding:9px 11px;overflow:visible;border-radius:var(--control-radius);font-size:12px;line-height:1.35}
  #cwPuzzleBoard.is-focus-mode.has-generic-instruction #cwPuzzleFeedback{display:none}
  #cwPuzzleBoard.is-focus-mode #cwIncorrectFeedback{order:1;margin:0;padding:9px 11px}
  #cwPuzzleBoard.is-focus-mode #cwIncorrectFeedback:not([hidden]){display:block!important}
  #cwPuzzleBoard.is-focus-mode #cwIncorrectFeedback>:not(#cwTryAgain){display:none}
  #cwPuzzleBoard.is-focus-mode :is(.cw-why-bad-question,.cw-compare-question,.cw-improving-discovery,#cwCalculationProgress){order:2;margin:0;min-width:0}
  #cwPuzzleBoard.is-focus-mode .cw-improving-next-candidate{order:3}
  #cwPuzzleBoard.is-focus-mode .cw-puzzle-navigation{order:4;display:grid;grid-template-columns:minmax(0,3fr) minmax(0,5fr);gap:8px;margin:0}
  #cwPuzzleBoard.is-focus-mode .cw-puzzle-navigation:has(#cwPreviousPuzzle[hidden]){grid-template-columns:1fr}
  #cwPuzzleBoard.is-focus-mode #cwPuzzlePosition{display:none}
  #cwPuzzleBoard.is-focus-mode .cw-puzzle-navigation .cw-button{width:100%;min-width:0;min-height:46px;margin:0;padding:9px 10px;white-space:normal}
  #cwPuzzleBoard.is-focus-mode #cwNextPuzzle{grid-column:auto;background:transparent;border-color:#829b91;color:var(--surface-light);font-size:13px;font-weight:650;box-shadow:none}
  #cwPuzzleBoard.is-focus-mode #cwNextPuzzle.is-completion-action:not(:disabled){min-height:50px;background:#d9b447;border-color:#e5c565;color:#102f26;font-size:15px;font-weight:850;opacity:1;filter:none;box-shadow:0 8px 18px rgba(0,0,0,.28);transition:transform .08s ease,box-shadow .08s ease}
  #cwPuzzleBoard.is-focus-mode #cwNextPuzzle.is-completion-action:hover:not(:disabled){background:#e4c25a;border-color:#efd37a;opacity:1;filter:none;transform:translateY(-1px)}
  #cwPuzzleBoard.is-focus-mode #cwNextPuzzle.is-completion-action:active:not(:disabled){background:#c89c34;border-color:#d5ac4c;opacity:1;filter:none;transform:translateY(1px);box-shadow:0 3px 9px rgba(0,0,0,.28)}
  #cwPuzzleBoard.is-focus-mode #cwNextPuzzle.is-completion-action:focus-visible:not(:disabled){outline:3px solid var(--surface-light);outline-offset:3px;box-shadow:0 0 0 6px rgba(217,180,71,.48),0 8px 18px rgba(0,0,0,.28)}
  #cwPuzzleBoard.is-focus-mode #cwNextPuzzle.is-completion-action:disabled{background:#68766f;border-color:#829087;color:#d9dfda;opacity:.48;filter:none;box-shadow:none}
  #cwPuzzleBoard.is-focus-mode .cw-puzzle-actions{order:5;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}
  #cwPuzzleBoard.is-focus-mode .cw-puzzle-actions>.cw-button{grid-column:auto;justify-self:stretch;width:100%;min-width:0;min-height:44px;margin:0;padding:8px 10px;border-radius:var(--control-radius);font-size:12px;white-space:normal}
  #cwPuzzleBoard.is-focus-mode .cw-puzzle-actions>#cwHintPuzzle{order:0}
  #cwPuzzleBoard.is-focus-mode .cw-puzzle-actions>.cw-focus-tools-trigger{display:inline-flex;order:1}
  #cwPuzzleBoard.is-focus-mode .cw-puzzle-actions>#cwResetPuzzle{order:2}
  #cwPuzzleBoard.is-focus-mode .cw-focus-tools-actions .cw-focus-explanation-trigger{display:inline-flex}
  #cwPuzzleBoard.is-focus-mode .cw-focus-tools-actions>.cw-button{grid-column:1/-1;order:initial;justify-content:flex-start;justify-self:stretch;width:100%;min-height:48px;margin:0;text-align:left}
  #cwPuzzleBoard.is-focus-mode .cw-focus-tools-actions>#cwFocusExplanation{grid-column:1/-1;order:initial}
  #cwPuzzleBoard.is-focus-mode .cw-focus-tools-actions>.cw-button[hidden]{display:none!important}
  #cwPuzzleBoard.is-focus-mode .cw-focus-tools-actions>#cwPracticeAgain:not([hidden]){display:inline-flex!important}
  #cwPuzzleBoard.is-focus-mode.is-tools-open>:not(.cw-focus-tools-layer){pointer-events:none}
  #cwPuzzleBoard.is-focus-mode .cw-focus-tools-layer{pointer-events:auto}
  #cwPuzzleBoard.is-focus-mode .cw-focus-explanation-sheet{width:min(100%,560px);max-height:calc(100dvh - max(12px,env(safe-area-inset-top)));padding:10px 16px max(14px,env(safe-area-inset-bottom))}
  #cwPuzzleBoard.is-focus-mode .cw-focus-sheet-back:not([hidden]){display:grid}
  #cwPuzzleBoard.is-focus-mode .cw-focus-sheet-head{align-items:center}
  #cwPuzzleBoard.is-focus-mode .cw-focus-sheet-head h2{font-size:22px}
  #cwPuzzleBoard.is-focus-mode .cw-focus-tools-body,#cwPuzzleBoard.is-focus-mode .cw-focus-explanation-body{overflow-y:auto}
}

@media(min-width:481px) and (max-width:900px) and (max-height:520px) and (pointer:coarse){
  #cwPuzzleBoard.is-focus-mode{display:grid;grid-template-columns:minmax(0,58fr) minmax(250px,42fr);grid-template-rows:auto minmax(0,1fr);gap:8px 12px;overflow:hidden}
  #cwPuzzleBoard.is-focus-mode>.cw-focus-topbar{grid-column:1/-1;grid-row:1}
  #cwPuzzleBoard.is-focus-mode .cw-board-panel{grid-column:1;grid-row:2;align-self:start}
  #cwPuzzleBoard.is-focus-mode .cw-puzzle-side{grid-column:2;grid-row:2;align-self:stretch;min-height:0;padding-right:max(4px,env(safe-area-inset-right));overflow-x:hidden;overflow-y:auto}
}

.cw-game-analysis-panel{margin-top:0}
.cw-game-analysis-panel .cw-today-card{display:grid;gap:16px}
.cw-game-analysis-panel .cw-analysis-actions{display:grid;gap:12px;min-width:0}
.cw-analysis-stay-open{max-width:72ch;margin:0;padding:12px 14px;border-left:4px solid var(--gold,#d9b447);border-radius:8px;background:rgba(217,180,71,.1);color:var(--ink,#23372f);line-height:1.55}
.cw-analysis-upgrade{display:flex;flex-wrap:wrap;gap:14px;align-items:center;padding-top:14px;border-top:1px solid rgba(49,92,70,.18)}
.cw-analysis-upgrade p{flex:1 1 480px;margin:0;line-height:1.55}
#cwAnalysisMessage,#cwAnalysisProgress,#cwAnalysisSaved{margin:0;overflow-wrap:anywhere}

@media(max-width:600px){
  .cw-game-analysis-panel .cw-empty-actions .cw-button,.cw-analysis-upgrade .cw-button{width:100%}
  .cw-analysis-upgrade{align-items:stretch}
}

/* Compact game-to-workout analysis card. */
.cw-game-analysis-panel{max-width:920px}
.cw-analysis-card{display:grid;gap:18px;padding:24px 26px;text-align:left}
.cw-analysis-card h2{margin:6px 0 7px;font:400 clamp(25px,3vw,32px)/1.14 var(--font-display);letter-spacing:-.03em}
.cw-analysis-card>p,.cw-analysis-card-heading p{max-width:700px;margin:0;color:var(--text-secondary);font-size:14px;line-height:1.55}
.cw-analysis-card-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,310px);align-items:start;gap:22px}
.cw-analysis-card-heading>div:first-child{min-width:0}
.cw-analysis-card-heading .cw-chip{margin-top:4px}
.cw-analysis-workflow{display:grid;gap:16px;min-width:0}
.cw-analysis-workflow>[hidden],.cw-analysis-card [hidden]{display:none!important}
.cw-analysis-allowance{display:grid;gap:7px;padding:11px 13px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface-subtle)}
.cw-analysis-allowance-row{display:flex;align-items:baseline;justify-content:space-between;gap:18px}
.cw-analysis-allowance-row>span{color:var(--text-secondary);font-size:11px;font-weight:750}
.cw-analysis-allowance-row>strong{font-size:12px;font-variant-numeric:tabular-nums;text-align:right}
.cw-analysis-allowance-explainer,.cw-analysis-reset{color:var(--text-muted);font-size:10px;line-height:1.4}
.cw-analysis-reset{color:var(--danger);font-weight:750}
.cw-analysis-start-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cw-analysis-text-action{appearance:none;border:0;padding:2px 0;background:none;font:inherit;cursor:pointer}
.cw-analysis-text-action:hover{text-decoration:underline}
.cw-analysis-text-action:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}
.cw-analysis-credit-note{margin:10px 0 0;color:var(--accent-dark);font-size:13px;font-weight:700}
.cw-analysis-custom{display:grid;gap:12px;margin-top:16px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface-subtle)}
.cw-analysis-custom-head,.cw-analysis-custom-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.cw-analysis-custom-spacer{flex:1 1 auto}
.cw-analysis-custom-head span{color:var(--text-secondary);font-size:12px;font-weight:750;font-variant-numeric:tabular-nums}
.cw-analysis-card .cw-pending-game-list{max-height:330px;background:transparent}
.cw-analysis-card .cw-pending-game-row{border-color:var(--line)}
.cw-analysis-card .cw-pending-game-row:last-child{border-bottom:0}
.cw-analysis-card .cw-pending-game-copy strong{color:var(--ink)}
.cw-analysis-card .cw-pending-game-copy span{color:var(--text-secondary)}
.cw-analysis-empty{display:grid;justify-items:start;gap:8px;padding:15px 16px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface-subtle)}
.cw-analysis-empty p{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.5}
.cw-analysis-active{display:grid;gap:12px}
.cw-analysis-active .cw-workout-progress{height:8px;margin:0}
.cw-analysis-progress{margin:0;color:var(--ink);font-size:14px;font-weight:750;font-variant-numeric:tabular-nums}
.cw-analysis-stay-open{max-width:72ch;margin:0;padding:11px 13px;border-left:3px solid var(--accent-gold);border-radius:7px;background:#f6f0dd;color:var(--text-secondary);font-size:13px;line-height:1.5}
.cw-analysis-message:empty,.cw-analysis-active .cw-muted:empty{display:none}
.cw-analysis-message{margin:0;color:var(--text-secondary);font-size:13px;line-height:1.5}
.cw-analysis-primary-actions{display:flex;gap:10px}
.cw-analysis-completion{display:grid;justify-items:start;gap:12px;padding:15px 16px;border:1px solid #aec6b2;border-radius:var(--control-radius);background:#eef5ed}
.cw-analysis-completion p{margin:0;color:#294d36;line-height:1.5}
.cw-analysis-upgrade{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.cw-analysis-upgrade p{max-width:680px;margin:0;color:var(--text-secondary);font-size:12px;line-height:1.55}
.cw-analysis-upgrade .cw-text-link{flex:0 0 auto}
.cw-analysis-link-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;max-width:560px}
.cw-analysis-link-form input{width:100%}

/* Premium workout-ready Home dialog. */
body.cw-modal-open{overflow:hidden}
.cw-modal-backdrop{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;padding:20px;background:rgba(14,29,23,.56);backdrop-filter:blur(3px)}
.cw-modal-backdrop[hidden]{display:none!important}
.cw-modal-card{position:relative;width:min(100%,520px);padding:30px;border:1px solid #cfbf91;border-radius:var(--card-radius);background:var(--panel);box-shadow:0 24px 70px rgba(12,27,20,.3)}
.cw-modal-card h2{margin:8px 40px 10px 0;font:400 clamp(28px,5vw,38px)/1.08 var(--font-display);letter-spacing:-.035em}
.cw-modal-card p{margin:0;color:var(--text-secondary);font-size:15px;line-height:1.6}
.cw-modal-close{position:absolute;top:14px;right:14px;display:grid;width:40px;height:40px;place-items:center;border:1px solid var(--line);border-radius:50%;background:var(--surface-light);color:var(--ink);font:400 25px/1 var(--font-ui);cursor:pointer}
.cw-modal-actions{display:flex;gap:10px;margin-top:24px}
.cw-manual-scan-notice{position:fixed;right:20px;bottom:20px;z-index:1390;display:flex;align-items:center;gap:10px;max-width:min(520px,calc(100vw - 40px));margin:0;box-shadow:var(--shadow)}
.cw-manual-scan-notice[hidden]{display:none!important}.cw-manual-scan-notice .cw-text-button{margin-left:auto;white-space:nowrap}
.cw-monitor-chart-panel{position:relative}
.cw-monitor-tooltip{margin:.75rem 0 0;padding:.75rem 1rem;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:inherit;box-shadow:var(--shadow);font-size:.875rem;line-height:1.45}
.cw-monitor-tooltip-time{display:block;margin-bottom:.35rem}.cw-monitor-tooltip a{font-weight:700;text-decoration:underline}

@media(max-width:600px){
  .cw-analysis-card{padding:20px 18px}
  .cw-analysis-card-heading{grid-template-columns:1fr}
  .cw-analysis-card-heading .cw-chip{justify-self:start}
  .cw-analysis-allowance{width:100%}
  .cw-analysis-start-row{align-items:flex-start;flex-direction:column}
  .cw-analysis-start-row .cw-button,.cw-analysis-custom-actions .cw-button,.cw-analysis-primary-actions .cw-button{width:100%}
  .cw-analysis-custom-head,.cw-analysis-custom-actions,.cw-analysis-upgrade{align-items:stretch;flex-direction:column}
  .cw-analysis-upgrade p{flex-basis:auto}
  .cw-analysis-custom-spacer{display:none}
  .cw-analysis-primary-actions{display:grid}
  .cw-analysis-link-form{grid-template-columns:1fr}
  .cw-modal-backdrop{align-items:end;padding:12px}
  .cw-modal-card{padding:24px 20px max(20px,env(safe-area-inset-bottom));border-radius:18px}
  .cw-modal-actions{display:grid}
  .cw-modal-actions .cw-button{width:100%}
  .cw-manual-scan-notice{right:12px;bottom:12px;left:12px;max-width:none;align-items:flex-start;flex-wrap:wrap}
}

@media(max-width:390px){
  .cw-analysis-custom{padding:12px}
  .cw-pending-game-row{align-items:flex-start}
}

/* Puzzles overview: the compact Home card language, with runners left intact. */
.cw-puzzles-overview{max-width:1180px}
.cw-puzzle-overview-heading{max-width:850px;margin-bottom:24px}
.cw-puzzle-overview-heading h1{margin-bottom:12px}
.cw-puzzle-statusbar{display:flex;align-items:stretch;gap:10px;max-width:900px;margin-bottom:20px}
.cw-puzzle-rating-compact,.cw-puzzle-entitlement{display:flex;align-items:center;gap:11px;min-width:0;padding:11px 14px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface-light)}
.cw-puzzle-rating-compact>span:last-child,.cw-puzzle-entitlement>span:last-child{display:flex;align-items:baseline;gap:7px;min-width:0}
.cw-puzzle-rating-compact small,.cw-puzzle-entitlement small{color:var(--text-muted);font-size:11px;font-weight:700;line-height:1.35}
.cw-puzzle-rating-compact strong,.cw-puzzle-entitlement strong{font-size:13px;line-height:1.35}
.cw-puzzle-rating-compact strong{font-size:19px;font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.cw-puzzle-rating-compact em{color:var(--text-muted);font-size:10px;font-style:normal;font-weight:750}
.cw-puzzle-entitlement{flex:1 1 auto}
.cw-puzzle-entitlement.is-exhausted{border-color:#d3b3ad;background:#f8ece9}
.cw-puzzle-entitlement a{color:var(--accent);font-weight:850}
.cw-puzzle-status-icon{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:8px;background:var(--surface-subtle);color:var(--accent)}
.cw-puzzle-status-icon .cw-nav-icon{width:18px;height:18px}
.cw-puzzle-actions-grid{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:14px;max-width:1000px}
.cw-puzzle-action-card,.cw-puzzle-category-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;min-width:0;border:1px solid var(--line);border-radius:var(--card-radius);text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.cw-puzzle-action-card{min-height:190px;padding:26px}
.cw-puzzle-action-card:hover,.cw-puzzle-category-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(22,48,38,.09)}
.cw-puzzle-action-card:focus-visible,.cw-puzzle-category-card:focus-visible,.cw-puzzle-personal-shortcut:focus-visible{outline:3px solid var(--accent-gold);outline-offset:4px}
.cw-puzzle-action-card.is-solve{border-color:var(--surface-dark);background:var(--surface-dark);color:#fffdf8}
.cw-puzzle-action-card.is-category{border-color:#d8ca9f;background:#f4ecd7;color:var(--ink)}
.cw-puzzle-card-icon{display:grid;place-items:center;flex:0 0 auto;width:52px;height:52px;border:1px solid currentColor;border-radius:14px;color:inherit;opacity:.94}
.cw-puzzle-card-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.cw-puzzle-action-copy{display:grid;gap:7px;min-width:0}
.cw-puzzle-action-copy>strong{font:400 clamp(25px,3vw,34px)/1.08 var(--font-display);letter-spacing:-.035em}
.cw-puzzle-action-copy>span{font-size:14px;line-height:1.45}
.cw-puzzle-action-copy>small{color:#d7e1d9;font-size:11px;font-weight:750}
.cw-puzzle-action-card.is-category .cw-puzzle-action-copy>span{color:var(--text-secondary)}
.cw-puzzle-card-arrow{font-size:23px;font-weight:500;line-height:1}
.cw-puzzle-challenges{max-width:1000px;margin-top:28px}
.cw-puzzle-challenges>h2{margin:0 0 12px;font:400 25px/1.2 var(--font-display);letter-spacing:-.03em}
.cw-puzzle-rush-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:18px 20px;border:1px solid #d8ca9f;border-radius:var(--card-radius);background:var(--surface-light)}
.cw-puzzle-rush-row .cw-puzzle-card-icon{width:44px;height:44px;border-color:#b79c57;color:#715d2c}
.cw-puzzle-rush-row .cw-puzzle-card-icon svg{width:24px;height:24px}
.cw-puzzle-rush-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.cw-puzzle-rush-title h3{margin:0;font-size:18px;letter-spacing:-.02em}
.cw-puzzle-rush-row p{margin:5px 0 0;color:var(--text-secondary);font-size:13px;line-height:1.45}
.cw-puzzle-personal-shortcut{display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:1000px;margin-top:16px;padding:15px 18px;border:1px solid var(--line);border-radius:var(--control-radius);background:transparent;color:var(--ink);text-decoration:none}
.cw-puzzle-personal-shortcut>span:first-child{display:grid;gap:3px}
.cw-puzzle-personal-shortcut strong{font-size:13px}
.cw-puzzle-personal-shortcut small{color:var(--text-secondary);font-size:11px}
.cw-puzzle-personal-shortcut:hover{border-color:var(--accent);background:var(--surface-light)}
.cw-puzzle-category-back{margin-bottom:18px}
.cw-puzzle-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:1000px}
.cw-puzzle-category-card{min-height:132px;padding:19px 20px;background:var(--surface-light);color:var(--ink)}
.cw-puzzle-category-card .cw-puzzle-card-icon{width:44px;height:44px;border-color:#c4b171;color:#6f5b26;background:#f5edd8}
.cw-puzzle-category-card .cw-puzzle-card-icon svg{width:24px;height:24px}
.cw-puzzle-category-copy{display:grid;gap:5px;min-width:0}
.cw-puzzle-category-copy strong{font-size:17px;letter-spacing:-.02em}
.cw-puzzle-category-copy small{color:var(--text-secondary);font-size:12px;line-height:1.45}
.cw-puzzle-category-copy em{color:var(--accent);font-size:10px;font-style:normal;font-weight:850;letter-spacing:.05em;text-transform:uppercase}
.cw-workout-subheading{margin:20px 0 10px;color:var(--text-secondary);font-size:12px;letter-spacing:.08em;text-transform:uppercase}

@media(max-width:760px){
  .cw-puzzle-overview-heading{margin-bottom:20px}
  .cw-puzzle-statusbar{align-items:stretch;flex-direction:column}
  .cw-puzzle-rating-compact>span:last-child,.cw-puzzle-entitlement>span:last-child{flex-wrap:wrap}
  .cw-puzzle-actions-grid,.cw-puzzle-category-grid{grid-template-columns:1fr}
  .cw-puzzle-action-card{min-height:158px;padding:22px 20px}
  .cw-puzzle-rush-row{grid-template-columns:auto minmax(0,1fr)}
  .cw-puzzle-rush-row>.cw-button{grid-column:1/-1;width:100%}
}
@media(max-width:420px){
  .cw-puzzle-action-card{grid-template-columns:auto minmax(0,1fr);gap:14px;min-height:150px;padding:19px 17px}
  .cw-puzzle-action-card>.cw-puzzle-card-arrow{display:none}
  .cw-puzzle-card-icon{width:44px;height:44px;border-radius:12px}
  .cw-puzzle-action-copy>strong{font-size:25px}
  .cw-puzzle-category-card{grid-template-columns:auto minmax(0,1fr);gap:13px;padding:17px 15px}
  .cw-puzzle-category-card>.cw-puzzle-card-arrow{display:none}
  .cw-puzzle-rush-row{gap:13px;padding:16px}
  .cw-puzzle-personal-shortcut{padding:14px}
}

/* Workouts overview and dedicated training indexes. */
.cw-workouts-overview{max-width:1180px}
.cw-workout-overview-heading{max-width:900px;margin-bottom:22px}
.cw-workout-overview-heading h1{margin-bottom:12px}
.cw-workout-screen-back{margin-bottom:18px}
.cw-game-analysis-panel{max-width:1000px;margin-bottom:14px}
.cw-game-analysis-panel .cw-analysis-card{padding:16px 18px}
.cw-game-analysis-panel .cw-analysis-card-heading h2{margin:3px 0 5px;font-size:20px}
.cw-game-analysis-panel .cw-analysis-card-heading p{margin:0;font-size:12px;line-height:1.45}
.cw-game-analysis-panel .cw-analysis-link-form{max-width:650px}
.cw-game-analysis-panel .cw-analysis-workflow{margin-top:11px}
.cw-game-analysis-panel .cw-analysis-start-row .cw-button{min-height:38px;padding:8px 12px}
.cw-game-analysis-panel .cw-analysis-upgrade{margin-top:10px;padding-top:9px}
.cw-analysis-status-compact{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:64px;padding:11px 14px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface-light)}
.cw-analysis-status-compact>span:nth-child(2){display:grid;gap:2px;min-width:0}
.cw-analysis-status-compact small{color:var(--text-muted);font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.cw-analysis-status-compact strong{font-size:14px;line-height:1.3}
.cw-analysis-status-compact em{color:var(--text-secondary);font-size:11px;font-style:normal;line-height:1.35}
.cw-analysis-status-compact.is-processing .cw-puzzle-status-icon{background:#e8eedf;color:#315d42}
.cw-analysis-status-compact.is-failed{border-color:#d8b2ad;background:#f8ece9}
.cw-analysis-status-compact.is-failed .cw-puzzle-status-icon{background:#f1d9d5;color:var(--danger)}
.cw-workout-actions-grid{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:14px;max-width:1000px}
.cw-workout-primary-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;min-height:184px;padding:25px;border:1px solid var(--line);border-radius:var(--card-radius);color:var(--ink);text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
a.cw-workout-primary-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(22,48,38,.09)}
.cw-workout-primary-card.is-continue{border-color:var(--surface-dark);background:var(--surface-dark);color:#fffdf8}
.cw-workout-primary-card.is-review{border-color:#d8ca9f;background:#f4ecd7}
.cw-workout-primary-card.is-zero{opacity:.78}
.cw-workout-primary-icon{display:grid;place-items:center;width:54px;height:54px;border:1px solid currentColor;border-radius:15px}
.cw-workout-primary-icon svg,.cw-workout-nav-icon svg,.cw-workout-type-icon svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.cw-workout-primary-copy{display:grid;gap:7px;min-width:0}
.cw-workout-primary-copy small{font-size:10px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;opacity:.76}
.cw-workout-primary-copy strong{font:400 clamp(25px,3vw,34px)/1.08 var(--font-display);letter-spacing:-.035em}
.cw-workout-primary-copy em{font-size:13px;font-style:normal;line-height:1.45;opacity:.86}
.cw-workout-primary-status{font-size:12px;font-weight:750;line-height:1.35;letter-spacing:.01em}
.cw-workout-navigation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:1000px;margin-top:12px}
.cw-workout-navigation-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;min-height:92px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--control-radius);background:var(--surface-light);color:var(--ink);text-decoration:none;transition:border-color .16s ease,transform .16s ease}
.cw-workout-navigation-card:hover{transform:translateY(-1px);border-color:var(--accent)}
.cw-workout-navigation-card>span:nth-child(2){display:grid;gap:4px;min-width:0}
.cw-workout-navigation-card strong{font-size:16px;letter-spacing:-.015em}
.cw-workout-navigation-card small{color:var(--text-secondary);font-size:11px;line-height:1.4}
.cw-workout-nav-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:11px;background:var(--surface-subtle);color:var(--accent)}
.cw-workout-nav-icon svg{width:22px;height:22px}
.cw-workout-primary-card:focus-visible,.cw-workout-navigation-card:focus-visible,.cw-workout-type-card:focus-visible{outline:3px solid var(--accent-gold);outline-offset:4px}
.cw-workout-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:1000px}
.cw-workout-type-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:17px;min-height:142px;padding:20px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--surface-light);color:var(--ink);text-decoration:none;transition:border-color .16s ease,transform .16s ease,box-shadow .16s ease}
a.cw-workout-type-card:hover{transform:translateY(-2px);border-color:#bda969;box-shadow:0 8px 22px rgba(22,48,38,.07)}
.cw-workout-type-card.is-unavailable{background:transparent;opacity:.62}
.cw-workout-type-icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid #c7b577;border-radius:13px;background:#f5edd8;color:#695725}
.cw-workout-type-icon svg{width:25px;height:25px}
.cw-workout-type-copy{display:grid;gap:5px;min-width:0}
.cw-workout-type-copy strong{font-size:17px;letter-spacing:-.02em}
.cw-workout-type-copy small{color:var(--text-secondary);font-size:12px;line-height:1.45}
.cw-workout-type-copy em{color:var(--accent);font-size:10px;font-style:normal;font-weight:850;letter-spacing:.05em;text-transform:uppercase}
.cw-workout-history-filters{display:flex;gap:8px;max-width:1000px;margin-bottom:14px}
.cw-workout-history-filters .cw-button.is-active{border-color:var(--surface-dark);background:var(--surface-dark);color:#fff}
.cw-workout-history-list{display:grid;gap:10px;max-width:1000px}
.cw-workout-history-card{padding:18px 20px;border:1px solid var(--line);border-radius:var(--card-radius);background:var(--surface-light)}
.cw-workout-history-head,.cw-workout-history-foot,.cw-workout-history-progress-copy{display:flex;align-items:center;justify-content:space-between;gap:18px}
.cw-workout-history-head h2{margin:3px 0 2px;font-size:19px;letter-spacing:-.02em}
.cw-workout-history-head p{margin:0;color:var(--text-secondary);font-size:11px}
.cw-workout-history-progress-copy{margin-top:14px;color:var(--text-secondary);font-size:11px}
.cw-workout-history-progress-copy strong{color:var(--ink);font-size:12px}
.cw-workout-history-card .cw-workout-progress{margin-top:7px}
.cw-workout-history-foot{margin-top:13px;color:var(--text-secondary);font-size:11px}
.cw-workout-history-pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;max-width:1000px;margin-top:16px;color:var(--text-secondary);font-size:12px;font-weight:750}
.cw-workout-history-pagination .cw-button:first-child{justify-self:start}.cw-workout-history-pagination .cw-button:last-child{justify-self:end}
.cw-workout-history-empty{max-width:1000px}

@media(max-width:760px){
  .cw-workout-actions-grid,.cw-workout-navigation-grid,.cw-workout-type-grid{grid-template-columns:1fr}
  .cw-workout-primary-card{min-height:152px;padding:21px 19px}
  .cw-workout-navigation-card{min-height:86px}
  .cw-analysis-status-compact{grid-template-columns:auto minmax(0,1fr)}
  .cw-analysis-status-compact>.cw-button{grid-column:1/-1;width:100%}
  .cw-workout-history-filters{overflow-x:auto;padding:3px 3px 9px;scrollbar-width:none}
  .cw-workout-history-filters::-webkit-scrollbar{display:none}
  .cw-workout-history-filters .cw-button{flex:0 0 auto}
}
@media(max-width:420px){
  .cw-workout-primary-card{grid-template-columns:auto minmax(0,1fr);gap:14px;padding:19px 16px}
  .cw-workout-primary-card>.cw-puzzle-card-arrow{display:none}
  .cw-workout-primary-icon{width:45px;height:45px;border-radius:12px}.cw-workout-primary-icon svg{width:24px;height:24px}
  .cw-workout-primary-copy strong{font-size:25px}
  .cw-workout-navigation-card,.cw-workout-type-card{gap:12px;padding:15px}
  .cw-workout-type-card{grid-template-columns:auto minmax(0,1fr)}.cw-workout-type-card>.cw-puzzle-card-arrow{display:none}
  .cw-workout-history-card{padding:16px}.cw-workout-history-head{align-items:flex-start}.cw-workout-history-head .cw-training-status{margin-top:0}
  .cw-workout-history-pagination{grid-template-columns:1fr 1fr}.cw-workout-history-pagination>span{grid-row:1;grid-column:1/-1;text-align:center}.cw-workout-history-pagination .cw-button{width:100%}
}
