:root{--bg:#090b13;--panel:#111522;--panel2:#171c2b;--text:#f4f6fb;--muted:#9ca5b8;--accent:#8b5cf6;--accent2:#6d4bf0;--line:#262d40;--green:#38c793;--yellow:#e8b34e;--red:#ef6575;--sq1:#d5d8e2;--sq2:#66708b}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 50% -10%,#1b1734 0,#090b13 38%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.topbar{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));border-bottom:1px solid #202638;background:#090b13dd;position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.brand{font-weight:900;font-size:22px;color:#fff;text-decoration:none}.brand span,h1 span{color:#a78bfa}.topbar nav{display:flex;gap:22px}.topbar nav a{color:var(--muted);text-decoration:none;font-size:14px}main{width:min(1180px,calc(100% - 32px));margin:auto}.hero{text-align:center;padding:78px 16px 50px}.eyebrow{font-size:12px;letter-spacing:.17em;font-weight:800;color:#a78bfa}.hero h1{font-size:clamp(42px,7vw,76px);line-height:.98;max-width:900px;margin:14px auto 20px;letter-spacing:-.05em}.hero p{max-width:720px;margin:auto;color:var(--muted);font-size:19px;line-height:1.65}.panel{background:linear-gradient(180deg,#141827,#101420);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 16px 60px #0004}.importer{display:grid;grid-template-columns:1fr 1.3fr;gap:22px;align-items:center}.importer h2,.section h2{margin:3px 0 7px}.importer p{margin:0;color:var(--muted)}form{display:flex;gap:10px}input{width:100%;background:#090c14;border:1px solid #343b50;border-radius:11px;padding:14px 15px;color:#fff;font-size:15px;outline:none}input:focus{border-color:var(--accent)}button{font:inherit;cursor:pointer}form button,.primary-wide{border:0;background:linear-gradient(135deg,var(--accent),var(--accent2));color:white;font-weight:800;padding:0 20px;border-radius:11px}.primary-wide{width:100%;padding:14px;margin-top:14px}.status{min-height:20px;color:var(--muted);font-size:14px;grid-column:1/-1}.status.error{color:#ff8f9a}.status.success{color:#70ddb6}.section{padding:64px 0 10px}.hidden{display:none!important}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}.ghost{background:#141827;color:#d8dcea;border:1px solid #343b50;border-radius:10px;padding:10px 14px}.games-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.game-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px}.game-meta,.player-row,.game-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.game-meta{color:var(--muted);font-size:12px;margin-bottom:16px}.player-row{font-size:15px}.rating{color:var(--muted)}.vs-line{height:1px;background:var(--line);margin:10px 0}.game-footer{margin-top:18px}.result-badge{font-size:12px;color:#c8cede;max-width:62%}.analyze-button{border:1px solid #514573;background:#221d36;color:#c9b8ff;border-radius:9px;padding:8px 10px}.review-layout{display:grid;grid-template-columns:minmax(380px,560px) 1fr;gap:26px;align-items:start}.board-column{min-width:0}.board-shell{position:relative;display:block;width:100%;aspect-ratio:1}.board{display:block;width:100%;height:100%;aspect-ratio:1;--light-color:#f0d9b5;--dark-color:#b58863;--highlight-color:#c6ca41;border-radius:12px;overflow:hidden;box-shadow:0 22px 60px #0008;border:1px solid #30364a;background:#b58863}.board::part(board){border-radius:11px;overflow:hidden}.board::part(piece){transform:scale(.94)}.board::part(notation){font-weight:800;font-size:12px;opacity:.8}.board-arrows{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:2}.arrow-legend{display:flex;gap:18px;align-items:center;justify-content:center;margin-top:10px;color:var(--muted);font-size:12px}.arrow-legend span{display:flex;align-items:center;gap:8px}.swatch{width:22px;height:5px;border-radius:999px;display:inline-block}.swatch.best{background:rgba(36,214,112,.88)}.swatch.played{background:rgba(249,115,22,.84)}.board-controls{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:13px}.board-controls button{background:#151a29;border:1px solid #32394d;color:#fff;border-radius:8px;padding:8px 12px}.board-controls span{min-width:150px;text-align:center;color:var(--muted);font-size:13px}.analysis-column{min-width:0}.facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.fact-row{display:flex;justify-content:space-between;gap:10px;padding:12px;background:#111522;font-size:13px}.fact-row span{color:var(--muted)}.summary{margin-top:15px;padding:16px;background:#111522;border:1px solid var(--line);border-radius:14px}.score-row{display:flex;align-items:center;justify-content:space-between}.score-big{font-size:42px;font-weight:900;color:#b9a4ff}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.chip{font-size:11px;padding:6px 8px;border-radius:999px;background:#1c2232;color:#ccd2df}.move-detail{margin-top:15px;padding:18px;background:#111522;border:1px solid var(--line);border-radius:14px}.move-detail h3{margin:0 0 7px}.class-best,.class-excellent{color:var(--green)}.class-good{color:#94d1ff}.class-inaccuracy{color:var(--yellow)}.class-mistake,.class-blunder{color:var(--red)}.candidate{padding:9px 0;border-top:1px solid var(--line);font-size:13px}.candidate code{color:#bca9ff}.lower-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;margin-top:22px}.lower-grid h3{margin-top:0}.move-list{display:flex;flex-wrap:wrap;gap:6px}.move-pill{border:1px solid #30374a;background:#161b29;color:#e6e9f2;border-radius:8px;padding:6px 8px;font-size:12px}.move-pill.active{outline:2px solid var(--accent)}.move-pill.bad{border-color:#683443}pre{white-space:pre-wrap;word-break:break-word;max-height:330px;overflow:auto;color:#b9c0d0;font-size:12px;line-height:1.5}.roadmap{text-align:center;padding-bottom:70px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:24px}.feature-grid article{text-align:left;background:#111522;border:1px solid var(--line);border-radius:15px;padding:18px}.feature-grid b{color:#a78bfa}.feature-grid p{color:var(--muted);font-size:14px;line-height:1.5}footer{text-align:center;padding:32px;color:#677086;border-top:1px solid #1c2230}.arrow-label{font-size:11px;color:#cfc5ff;margin-top:8px}@media(max-width:900px){.games-grid{grid-template-columns:1fr 1fr}.review-layout,.lower-grid{grid-template-columns:1fr}.importer{grid-template-columns:1fr}.feature-grid{grid-template-columns:1fr 1fr}}@media(max-width:600px){.games-grid,.feature-grid{grid-template-columns:1fr}.hero{padding-top:52px}.topbar nav{display:none}.section-head{align-items:start;flex-direction:column}.review-layout{display:block}.analysis-column{margin-top:20px}.facts{grid-template-columns:1fr}.arrow-legend{justify-content:flex-start;flex-wrap:wrap}}

/* v0.5 training features */
.learning-list{display:grid;gap:8px}.learning-moment{width:100%;display:flex;align-items:center;justify-content:space-between;gap:14px;text-align:left;background:#101522;border:1px solid #2a3144;color:#eef1f8;border-radius:10px;padding:11px 12px}.learning-moment:hover{border-color:#6654a3;background:#171b2b}.learning-moment em{font-style:normal;color:#b7a6f7;font-size:12px;white-space:nowrap}.puzzle-button{margin-top:14px;background:linear-gradient(135deg,#2fcf8a,#1ba56b);color:#07120d;border:0;border-radius:10px;padding:10px 13px;font-weight:900}.puzzle-panel{margin-top:15px;padding:18px;border:1px solid #2f765c;background:linear-gradient(180deg,#10251e,#0d1815);border-radius:14px}.puzzle-panel h3{margin:6px 0}.puzzle-panel p{color:#b7c9c2;line-height:1.5}.puzzle-actions{display:flex;gap:10px;margin-top:14px}.primary-small{border:0;background:linear-gradient(135deg,#38d996,#22ad75);color:#06120d;font-weight:900;border-radius:9px;padding:10px 13px}.primary-small:disabled{opacity:.55;cursor:default}.puzzle-answer{display:grid;gap:5px;margin-top:14px;padding:13px;border-radius:10px;background:#0a130f;border:1px solid #295a47}.puzzle-answer>b{color:#6ce2b0;font-size:18px}.puzzle-answer>span{color:#89a49a;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.puzzle-answer p{margin:3px 0 0}.eval-panel{margin-top:22px;padding:18px 20px 13px}.eval-head{display:flex;justify-content:space-between;align-items:end;gap:20px}.eval-head h3{margin:4px 0 0}.eval-label{font-size:28px;font-weight:900;color:#b9a4ff;font-variant-numeric:tabular-nums}.eval-graph{width:100%;height:220px;margin-top:12px;border-radius:12px;background:linear-gradient(180deg,rgba(54,199,147,.06),transparent 45%,transparent 55%,rgba(239,101,117,.05));cursor:crosshair}.eval-zero{stroke:#4c5365;stroke-width:1;stroke-dasharray:6 6}.eval-line{fill:none;stroke:#a78bfa;stroke-width:3;vector-effect:non-scaling-stroke}.eval-hit{fill:transparent;cursor:pointer}.eval-bad{fill:#e8b34e;stroke:#111522;stroke-width:2;vector-effect:non-scaling-stroke}.eval-bad.blunder{fill:#ef6575}.eval-cursor-line{stroke:#d5cbff;stroke-width:1.5;stroke-dasharray:4 5;opacity:.65;vector-effect:non-scaling-stroke}.eval-cursor-dot{fill:#fff;stroke:#8b5cf6;stroke-width:3;vector-effect:non-scaling-stroke}.eval-caption{display:flex;justify-content:space-between;gap:10px;color:#788197;font-size:11px;margin-top:4px}.eval-caption span:nth-child(2){color:#9ba4b7}.eval-point-group:hover .eval-hit{fill:rgba(255,255,255,.05)}
@media(max-width:700px){.eval-graph{height:170px}.eval-caption span:nth-child(2){display:none}.learning-moment{align-items:flex-start;flex-direction:column;gap:5px}.puzzle-actions{flex-wrap:wrap}}
.board-arrows.interactive{pointer-events:auto;cursor:pointer}.puzzle-answer{margin-top:14px;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#0f1420}.puzzle-answer p{margin:6px 0 0;color:var(--muted);line-height:1.45}.puzzle-answer.neutral{border-color:#35405a}.puzzle-answer.success{border-color:rgba(56,199,147,.55);background:rgba(56,199,147,.08)}.puzzle-answer.success b{color:#70ddb6}.puzzle-answer.incorrect{border-color:rgba(239,101,117,.55);background:rgba(239,101,117,.08)}.puzzle-answer.incorrect b{color:#ff8f9a}
.spoiler-lock{margin-top:12px;padding:13px 14px;border:1px dashed #4b4565;border-radius:12px;background:#151527;color:#cfc8e8}.spoiler-lock b{color:#c4b5fd}.spoiler-lock p{margin:6px 0 0;color:#969eb0;font-size:13px;line-height:1.45}

/* v0.6 multi-platform + UX */
.importer-copy{display:grid;gap:10px}.source-switch{display:inline-flex;gap:6px;padding:4px;background:#0b0f19;border:1px solid #2a3144;border-radius:12px;width:max-content}.source-button{border:0;background:transparent;color:#8f98aa;padding:8px 12px;border-radius:8px;font-weight:800;font-size:13px}.source-button:hover{color:#e9ecf5}.source-button.active{background:#201a35;color:#d8ccff;box-shadow:inset 0 0 0 1px #5b4b8c}.games-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-4px 0 16px}.source-summary{color:var(--muted);font-size:13px}.source-summary b{color:#d9ddea}.game-filters{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.filter-button{background:#111522;color:#8f98aa;border:1px solid #2d3548;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:800}.filter-button:hover{color:#e9ecf5;border-color:#4a5570}.filter-button.active{background:#251f3d;color:#cbbcff;border-color:#6654a3}.games-empty{padding:26px;text-align:center;color:var(--muted);border:1px dashed #30384b;border-radius:14px}.platform-pill{display:inline-flex;align-items:center;gap:5px;border:1px solid #353d52;border-radius:999px;padding:4px 7px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:#b8c0d1}.platform-pill.lichess{border-color:#5b5147;color:#d7c8bb;background:#1a1613}.platform-pill.chesscom{border-color:#385b36;color:#acd2a9;background:#101910}.focus-card{margin-top:14px;padding:15px;border:1px solid #4a3f72;border-radius:13px;background:linear-gradient(180deg,#17142b,#111320)}.focus-card .focus-label{color:#a78bfa;font-size:11px;letter-spacing:.14em;font-weight:900}.focus-card h4{margin:6px 0 7px;font-size:17px}.focus-card p{margin:0;color:#aab2c2;line-height:1.5;font-size:13px}.focus-card .focus-count{display:inline-block;margin-top:9px;color:#c6b9f7;font-size:11px;font-weight:800}.game-card .game-meta>span:first-child{display:flex;align-items:center;gap:7px}.fact-row.source-fact b{display:flex;align-items:center;gap:6px}
@media(max-width:900px){.games-toolbar{align-items:flex-start;flex-direction:column}.game-filters{justify-content:flex-start}.source-switch{width:100%}.source-button{flex:1}.importer-copy{width:100%}}

/* v0.7 progress dashboard + saved review history */
.section-copy{margin:8px 0 0;color:var(--muted);max-width:680px;line-height:1.55}.progress-head{align-items:flex-start}.progress-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.progress-controls label{font-size:12px;color:var(--muted);font-weight:800;letter-spacing:.05em;text-transform:uppercase}.progress-controls select{min-width:210px;background:#0c101a;color:#eef1f8;border:1px solid #343b50;border-radius:10px;padding:10px 34px 10px 12px;font:inherit}.danger-ghost{border-color:#553444;color:#d9b5c1}.danger-ghost:hover{border-color:#875168;color:#ffd7e2}.progress-empty{text-align:center;padding:42px 26px}.progress-empty .empty-icon{width:54px;height:54px;border-radius:16px;background:#201a35;color:#bba7ff;display:grid;place-items:center;margin:0 auto 14px;font-size:28px;font-weight:900}.progress-empty h3{margin:0 0 8px}.progress-empty p{color:var(--muted);max-width:620px;margin:0 auto 16px;line-height:1.55}.dashboard-link{display:inline-flex;text-decoration:none;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-weight:900;padding:10px 14px;border-radius:10px}.progress-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.metric-card{background:linear-gradient(180deg,#141827,#101420);border:1px solid var(--line);border-radius:16px;padding:18px}.metric-card span{display:block;color:var(--muted);font-size:12px;font-weight:800}.metric-card b{display:block;font-size:34px;letter-spacing:-.04em;margin:5px 0 1px;color:#f4f6fb}.metric-card small{color:#737d91;font-size:11px}.progress-grid{display:grid;grid-template-columns:1.55fr .85fr;gap:18px}.progress-card-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.progress-card-head h3,.weakness-panel h3{margin:5px 0 0}.trend-note{font-size:12px;font-weight:800;color:#b8a9f6;text-align:right}.trend-note.positive{color:#6fe0ae}.trend-note.negative{color:#ff9aa5}.progress-chart{width:100%;height:260px;margin-top:14px;border-radius:12px;background:linear-gradient(180deg,rgba(139,92,246,.07),rgba(139,92,246,.015));cursor:crosshair}.progress-gridline{stroke:#30374a;stroke-width:1;stroke-dasharray:5 7;vector-effect:non-scaling-stroke}.progress-grid-label{fill:#697287;font-size:16px;font-weight:700}.progress-score-line{fill:none;stroke:#9d7bff;stroke-width:4;vector-effect:non-scaling-stroke}.progress-area{fill:rgba(139,92,246,.08)}.progress-point{fill:#fff;stroke:#8b5cf6;stroke-width:4;vector-effect:non-scaling-stroke;cursor:pointer}.progress-point:hover{fill:#b9a4ff}.progress-point.best{stroke:#38c793}.progress-point.low{stroke:#ef6575}.progress-hit{fill:transparent;cursor:pointer}.progress-chart-caption{display:flex;justify-content:space-between;gap:10px;color:#6f788b;font-size:11px;margin-top:5px}.progress-chart-caption span:nth-child(2){color:#929bae}.progress-weaknesses{display:grid;gap:12px;margin-top:18px}.weakness-row{display:grid;gap:6px}.weakness-row-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.weakness-row-head b{font-size:13px}.weakness-row-head span{color:#aeb6c7;font-size:11px}.weakness-track{height:7px;background:#1c2230;border-radius:999px;overflow:hidden}.weakness-fill{height:100%;background:linear-gradient(90deg,#8b5cf6,#b392ff);border-radius:999px}.weakness-tip{margin:2px 0 0;color:#8f98aa;font-size:11px;line-height:1.4}.weakness-none{color:var(--muted);line-height:1.5}.recent-analysis-panel{margin-top:18px}.local-note{color:#778196;font-size:11px}.saved-reviews{display:grid;gap:9px;margin-top:16px}.saved-review{display:grid;grid-template-columns:minmax(0,1.6fr) auto auto;gap:14px;align-items:center;padding:12px 13px;border:1px solid #2a3144;border-radius:12px;background:#0f1420}.saved-review-main{min-width:0}.saved-review-title{display:flex;align-items:center;gap:8px;min-width:0}.saved-review-title b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.saved-review-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;color:#7f899e;font-size:11px}.saved-score{display:grid;justify-items:end}.saved-score b{font-size:22px;color:#b9a4ff}.saved-score span{font-size:10px;color:#758096}.open-saved-review{background:#211a37;color:#d6c8ff;border:1px solid #59498b;border-radius:9px;padding:8px 10px;font-weight:800;white-space:nowrap}.open-saved-review:hover{background:#2a2145}.saved-result.win{color:#6fddb0}.saved-result.loss{color:#ff9aa5}.saved-result.draw{color:#e8c778}
@media(max-width:900px){.progress-metrics{grid-template-columns:1fr 1fr}.progress-grid{grid-template-columns:1fr}.progress-head{flex-direction:column}.progress-controls{justify-content:flex-start;width:100%}.progress-controls select{flex:1}.saved-review{grid-template-columns:1fr auto}.open-saved-review{grid-column:1/-1}.saved-score{justify-items:end}}
@media(max-width:600px){.progress-metrics{grid-template-columns:1fr}.progress-controls{align-items:stretch;flex-direction:column}.progress-controls select{width:100%}.progress-card-head{align-items:flex-start;flex-direction:column}.trend-note{text-align:left}.progress-chart{height:210px}.progress-chart-caption span:nth-child(2){display:none}.saved-review{grid-template-columns:1fr}.saved-score{justify-items:start}.open-saved-review{grid-column:auto}}

.focus-progress-link{display:inline-flex;margin-top:10px;color:#c7b8ff;text-decoration:none;font-size:12px;font-weight:900}.focus-progress-link:hover{color:#e1d8ff}

/* v0.8 Personal Puzzle Library */
.puzzle-library-section{padding-top:64px}.puzzle-library-head{align-items:flex-end}.puzzle-library-controls{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.puzzle-library-controls label{color:#788297;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.puzzle-library-controls select{background:#101521;color:#e8ebf3;border:1px solid #343b50;border-radius:10px;padding:10px 34px 10px 12px;font:inherit}.puzzle-library-controls .primary-small{min-height:40px}.puzzle-library-panel{margin-top:18px}.puzzle-library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.puzzle-tabs{display:flex;gap:7px;flex-wrap:wrap}.puzzle-library-list{display:grid;gap:10px}.library-puzzle{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;background:#0f1420;border:1px solid #293145;border-radius:13px;padding:14px 15px;transition:border-color .18s,transform .18s}.library-puzzle:hover{border-color:#4f426d;transform:translateY(-1px)}.library-puzzle.due{border-color:#554584;background:linear-gradient(90deg,rgba(139,92,246,.08),#0f1420 35%)}.library-puzzle-main{min-width:0}.library-puzzle-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.library-puzzle-title b{font-size:14px}.library-puzzle-title>span:last-child{color:#bca9ff;font-size:11px;font-weight:800}.classification-badge{border-radius:999px;padding:5px 8px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;background:#1d2331;color:#bac2d0}.classification-badge.inaccuracy{background:#3a321c;color:#f0ca6a}.classification-badge.mistake{background:#3c2730;color:#ffacb5}.classification-badge.blunder{background:#4a202a;color:#ff8997}.library-puzzle-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:7px;color:#7e889c;font-size:11px}.library-puzzle-meta span+span:before{content:"·";margin-right:8px;color:#454d61}.library-puzzle-stats{display:grid;justify-items:end;gap:2px;min-width:112px}.library-puzzle-stats b{font-size:12px;color:#d8ddea}.library-puzzle-stats span{font-size:10px;color:#7d879a}.library-puzzle-stats em{font-style:normal;font-size:10px;font-weight:900;color:#9d86ed}.library-puzzle.due .library-puzzle-stats em{color:#6fe0ae}.open-library-puzzle{background:#241b3b;color:#d9cdff;border:1px solid #5d4b91;border-radius:9px;padding:9px 13px;font-weight:900;white-space:nowrap}.open-library-puzzle:hover{background:#30234f}.puzzle-metrics .metric-card:first-child b{color:#78deb5}.feature-grid strong{color:#7be0b7;font-size:11px;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:900px){.puzzle-library-head{align-items:flex-start;flex-direction:column}.puzzle-library-controls{width:100%}.puzzle-library-controls select{flex:1}.library-puzzle{grid-template-columns:1fr auto}.open-library-puzzle{grid-column:1/-1}.library-puzzle-stats{justify-items:end}}
@media(max-width:600px){.puzzle-library-controls{align-items:stretch;flex-direction:column}.puzzle-library-controls select{width:100%}.puzzle-library-toolbar{align-items:flex-start;flex-direction:column}.library-puzzle{grid-template-columns:1fr}.library-puzzle-stats{justify-items:start}.open-library-puzzle{grid-column:auto}}
.puzzle-session-actions{margin-top:12px;display:flex;gap:8px;flex-wrap:wrap}

/* v0.9 Opening Coach */
.opening-coach-section{padding-top:64px}.opening-head{align-items:flex-start}.opening-controls{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.opening-controls>label{color:#788297;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.opening-controls select{min-width:205px;background:#101521;color:#e8ebf3;border:1px solid #343b50;border-radius:10px;padding:10px 34px 10px 12px;font:inherit}.opening-side-tabs{display:flex;gap:6px}.opening-metrics .metric-text{font-size:19px;line-height:1.18;min-height:46px;display:flex;align-items:center;letter-spacing:-.02em;overflow:hidden}.opening-grid{display:grid;grid-template-columns:1.45fr .8fr;gap:18px}.repertoire-panel,.opening-priority-panel{min-width:0}.opening-repertoire{display:grid;gap:10px;margin-top:16px}.opening-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border:1px solid #293145;background:#0f1420;border-radius:13px}.opening-card-main{min-width:0}.opening-card-title{display:flex;align-items:center;gap:9px;min-width:0}.opening-card-title b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:4px 7px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;flex:0 0 auto}.side-badge.w{background:#e8e8e2;color:#252820;border:1px solid #fff}.side-badge.b{background:#222733;color:#ecf0f7;border:1px solid #4a5367}.opening-card-record{display:flex;gap:10px;flex-wrap:wrap;color:#7f899d;font-size:11px;margin-top:7px}.opening-health{height:6px;background:#1d2331;border-radius:999px;overflow:hidden;margin-top:10px}.opening-health-fill{height:100%;background:linear-gradient(90deg,#825cf0,#4dd4a0);border-radius:999px}.opening-card-stats{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px;color:#8993a7;font-size:10px}.opening-card-stats b{color:#d9dfea}.open-opening-review{background:#211a37;color:#d8cbff;border:1px solid #58478a;border-radius:9px;padding:9px 11px;font-weight:850;white-space:nowrap}.open-opening-review:hover{background:#2b2146}.opening-priorities{display:grid;gap:11px;margin-top:16px}.opening-priority{display:grid;grid-template-columns:30px 1fr;gap:10px;border-top:1px solid #282f41;padding-top:12px}.opening-priority:first-child{border-top:0;padding-top:0}.priority-rank{width:26px;height:26px;border-radius:8px;background:#211a37;color:#bca9ff;display:grid;place-items:center;font-size:11px;font-weight:900}.opening-priority b{font-size:13px}.opening-priority p{margin:5px 0;color:#8d97aa;font-size:11px;line-height:1.45}.opening-priority em{display:inline-block;font-style:normal;color:#d5c6ff;font-size:10px;font-weight:900;background:#211a37;border-radius:999px;padding:4px 7px}.opening-priority small{display:block;color:#717c90;font-size:10px;line-height:1.45;margin-top:7px}.opening-good-news{padding:15px;border:1px solid #2c604d;background:#0e1b17;border-radius:12px}.opening-good-news b{color:#79ddb3}.opening-good-news p{margin:5px 0 0;color:#8fa99e;font-size:12px;line-height:1.5}.opening-slip-panel{margin-top:18px}.opening-method-note{color:#717c90;font-size:10px;text-align:right;max-width:300px;line-height:1.4}.opening-slip-list{display:grid;gap:9px;margin-top:16px}.opening-slip{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(180px,.7fr) auto;gap:16px;align-items:center;padding:12px 13px;border:1px solid #293145;border-radius:12px;background:#0f1420}.opening-slip-main{display:flex;gap:9px;align-items:center;min-width:0}.opening-slip-main>div{min-width:0}.opening-slip-main b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opening-slip-main p{margin:4px 0 0;color:#7f899d;font-size:10px}.opening-slip-move{display:grid;gap:2px}.opening-slip-move b{font-size:12px;color:#f0e4b3}.opening-slip-move span{font-size:10px;color:#8c96aa}.opening-slip .open-opening-review{padding:8px 10px}.feature-grid article:nth-child(4){border-color:#4b3d73;background:linear-gradient(180deg,#17152a,#111522)}
@media(max-width:900px){.opening-head{flex-direction:column}.opening-controls{width:100%;justify-content:flex-start}.opening-controls select{flex:1}.opening-grid{grid-template-columns:1fr}.opening-slip{grid-template-columns:1fr auto}.opening-slip-move{grid-column:1/2}.opening-slip .open-opening-review{grid-row:1/3;grid-column:2/3}.opening-method-note{text-align:left}.opening-card{grid-template-columns:1fr auto}}
@media(max-width:600px){.opening-controls{align-items:stretch;flex-direction:column}.opening-controls select{width:100%}.opening-side-tabs{width:100%}.opening-side-tabs .filter-button{flex:1}.opening-card{grid-template-columns:1fr}.open-opening-review{width:100%}.opening-slip{grid-template-columns:1fr}.opening-slip-move,.opening-slip .open-opening-review{grid-column:auto;grid-row:auto}.opening-slip .open-opening-review{width:100%}.opening-method-note{max-width:none}.opening-card-stats{display:grid;grid-template-columns:1fr 1fr}}


/* v1.0 Game Phases, Time Coach & Post-game Lesson */
.review-insights{margin-top:18px}.review-insights-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.phase-panel,.time-panel{min-width:0}.phase-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}.phase-card{appearance:none;text-align:left;background:#0f1420;border:1px solid #2a3246;border-radius:13px;padding:14px;color:var(--text);transition:border-color .18s,transform .18s,background .18s}.phase-card:hover:not(:disabled){transform:translateY(-1px);border-color:#5b4b85}.phase-card.active{border-color:#8b5cf6;background:linear-gradient(180deg,rgba(139,92,246,.12),#0f1420)}.phase-card:disabled{opacity:.45;cursor:default}.phase-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.phase-card-head b{font-size:13px}.phase-score{font-size:24px;font-weight:950;color:#bca9ff}.phase-score small{font-size:10px;color:#768196;font-weight:700}.phase-card-stats{display:grid;gap:5px;margin-top:10px}.phase-stat{display:flex;justify-content:space-between;gap:8px;color:#7f899d;font-size:10px}.phase-stat strong{color:#dce1eb;font-size:10px}.phase-method-note{margin:12px 0 0;color:#6f798d;font-size:10px;line-height:1.45}.time-coach{margin-top:15px}.time-empty{border:1px dashed #343c50;border-radius:12px;padding:14px;color:#8f99ac;font-size:12px;line-height:1.55}.time-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.time-metric{background:#0f1420;border:1px solid #293145;border-radius:11px;padding:11px}.time-metric span{display:block;color:#778296;font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:900}.time-metric b{display:block;margin-top:4px;font-size:18px;color:#e3e7ef}.time-note{margin:11px 0 0;color:#858fa3;font-size:10px;line-height:1.5}.time-critical-list{display:grid;gap:7px;margin-top:14px}.time-critical{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;text-align:left;background:#0f1420;border:1px solid #293145;color:#dce1eb;border-radius:10px;padding:10px 11px}.time-critical:hover{border-color:#5b4b85}.time-critical-main{min-width:0}.time-critical-main b{font-size:11px}.time-critical-main span{display:block;color:#778296;font-size:9px;margin-top:3px}.time-critical-meta{display:grid;justify-items:end;gap:2px}.time-critical-meta b{font-size:11px;color:#f0c978}.time-critical-meta span{font-size:9px;color:#8690a3}.post-game-lesson{margin-top:18px;border-color:#3c315e;background:linear-gradient(180deg,#15172a,#101420)}.lesson-takeaways{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.lesson-card{background:#0f1420;border:1px solid #2b3347;border-radius:13px;padding:14px}.lesson-number{width:25px;height:25px;display:grid;place-items:center;border-radius:8px;background:#241b3b;color:#c9b8ff;font-size:10px;font-weight:950}.lesson-card h4{margin:10px 0 5px;font-size:13px}.lesson-card p{margin:0;color:#8791a5;font-size:11px;line-height:1.5}.lesson-focus{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:12px;padding:14px;border:1px solid #4b3d73;border-radius:13px;background:rgba(139,92,246,.08)}.lesson-focus-copy{min-width:0}.lesson-focus-label{font-size:9px;color:#a990f6;font-weight:950;letter-spacing:.09em;text-transform:uppercase}.lesson-focus h4{margin:4px 0;font-size:15px}.lesson-focus p{margin:0;color:#9ba5b7;font-size:11px;line-height:1.45}.lesson-action{background:#241b3b;color:#e0d5ff;border:1px solid #6653a0;border-radius:9px;padding:9px 12px;font-weight:900;white-space:nowrap}.lesson-action:hover{background:#30234f}.feature-grid article:nth-child(5),.feature-grid article:nth-child(6){border-color:#4b3d73;background:linear-gradient(180deg,#17152a,#111522)}
@media(max-width:900px){.review-insights-grid{grid-template-columns:1fr}.lesson-takeaways{grid-template-columns:1fr 1fr}.time-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:600px){.phase-cards,.lesson-takeaways,.time-metrics{grid-template-columns:1fr}.lesson-focus{align-items:flex-start;flex-direction:column}.lesson-action{width:100%}.time-critical{grid-template-columns:1fr}.time-critical-meta{justify-items:start}}

/* v1.1 Daily Coach */
.nav-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:#8b5cf6;color:#fff;font-size:9px;font-weight:950;vertical-align:1px}.daily-coach-section{padding-top:64px}.daily-head{align-items:flex-start}.daily-controls{display:flex;align-items:center;gap:9px}.daily-controls label{color:#788297;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.daily-controls select{min-width:220px;background:#101521;color:#e8ebf3;border:1px solid #343b50;border-radius:10px;padding:10px 34px 10px 12px;font:inherit}.daily-overview{border-color:#463871;background:linear-gradient(180deg,#17172b,#101420)}.daily-progress-top{display:flex;align-items:end;justify-content:space-between;gap:18px}.daily-progress-top h3{margin:5px 0 0;font-size:22px}.daily-estimate{color:#c9b8ff;background:#211a37;border:1px solid #50407c;border-radius:999px;padding:7px 10px;font-size:11px;font-weight:900}.daily-progress-track{height:10px;margin-top:15px;background:#1b2130;border-radius:999px;overflow:hidden}.daily-progress-bar{height:100%;width:0;background:linear-gradient(90deg,#8b5cf6,#38c793);border-radius:999px;transition:width .25s ease}.daily-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}.daily-stats>div{background:#0e1320;border:1px solid #293145;border-radius:11px;padding:11px}.daily-stats span{display:block;color:#778296;font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:900}.daily-stats b{display:block;margin-top:4px;font-size:15px;color:#e5e9f1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daily-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:18px;margin-top:18px}.daily-task-panel,.daily-focus-panel{min-width:0}.daily-tasks{display:grid;gap:9px;margin-top:15px}.daily-task{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px;border:1px solid #293145;background:#0f1420;border-radius:12px}.daily-task.done{border-color:#285744;background:#0f1916}.daily-task-number{width:29px;height:29px;display:grid;place-items:center;border-radius:9px;background:#221a39;color:#c9b8ff;font-size:11px;font-weight:950}.daily-task.done .daily-task-number{background:#163528;color:#72ddb0}.daily-task-copy{min-width:0}.daily-task-label{font-size:9px;color:#9d89ed;font-weight:950;letter-spacing:.07em;text-transform:uppercase;margin-bottom:3px}.daily-task.done .daily-task-label{color:#68cda3}.daily-task-copy b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daily-task-copy p{margin:4px 0 0;color:#7f899d;font-size:10px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daily-task-action{background:#211a37;color:#d8cbff;border:1px solid #58478a;border-radius:9px;padding:9px 11px;font-weight:850;white-space:nowrap}.daily-task-action:hover:not(:disabled){background:#2b2146}.daily-task-action:disabled{opacity:.7;cursor:default}.daily-task.done .daily-task-action{background:#12271f;border-color:#2f654f;color:#7cddb5}.daily-focus-panel{background:linear-gradient(180deg,#16172a,#101420);border-color:#3b315e}.daily-focus-card{margin-top:14px}.daily-theme-pill{display:inline-flex;padding:5px 8px;border-radius:999px;background:#211a37;color:#cdbfff;font-size:10px;font-weight:950}.daily-focus-card h3{margin:12px 0 7px;font-size:16px;line-height:1.45}.daily-focus-card p{margin:0 0 14px;color:#8791a5;font-size:11px;line-height:1.55}.daily-goal-set{display:inline-flex;align-items:center;gap:6px;color:#75ddb2;font-size:11px;font-weight:900}.daily-complete{display:flex;align-items:center;gap:16px;margin-top:18px;border-color:#2c6c52;background:linear-gradient(180deg,#10221b,#0d1714)}.daily-complete-mark{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:15px;background:#173c2c;color:#76e2b4;font-size:24px;font-weight:950}.daily-complete h3{margin:4px 0}.daily-complete p{margin:0;color:#89a49a;font-size:11px;line-height:1.5}.feature-grid article:nth-child(7){border-color:#3d654f;background:linear-gradient(180deg,#11241c,#111522)}
@media(max-width:900px){.daily-head{flex-direction:column}.daily-controls{width:100%}.daily-controls select{flex:1}.daily-grid{grid-template-columns:1fr}.topbar nav{gap:14px}}
@media(max-width:700px){.daily-stats{grid-template-columns:1fr 1fr}.daily-task{grid-template-columns:34px 1fr}.daily-task-action{grid-column:1/-1;width:100%}.daily-task-copy p{white-space:normal}.daily-progress-top{align-items:flex-start;flex-direction:column}.daily-estimate{align-self:flex-start}}
@media(max-width:600px){.daily-controls{align-items:stretch;flex-direction:column}.daily-controls select{width:100%}.daily-stats{grid-template-columns:1fr}.daily-complete{align-items:flex-start}}


/* v1.2 Coaching Loop + Weekly Coach Report */
.coach-report-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:18px;margin-bottom:18px}.weekly-coach-panel,.coaching-loop-panel{min-width:0;border-color:#3b315e}.weekly-coach-report{margin-top:15px}.weekly-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.weekly-stat{background:#0f1420;border:1px solid #293145;border-radius:12px;padding:12px;min-width:0}.weekly-stat span{display:block;color:#788297;font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:900}.weekly-stat b{display:block;margin-top:4px;font-size:19px;color:#e7eaf2}.weekly-stat small{display:block;margin-top:3px;color:#7f899d;font-size:9px;line-height:1.35}.weekly-stat.positive{border-color:#285744}.weekly-stat.positive b,.weekly-stat.positive small{color:#71d9ad}.weekly-stat.negative{border-color:#653442}.weekly-stat.negative b,.weekly-stat.negative small{color:#f09aa4}.weekly-recommendation{margin-top:11px;padding:13px;border-radius:12px;border:1px solid #4a3d71;background:rgba(139,92,246,.07)}.weekly-recommendation h4{margin:5px 0;font-size:14px}.weekly-recommendation p{margin:0;color:#9099ab;font-size:10px;line-height:1.5}.coaching-loop-panel h3{margin:5px 0 0}.coaching-loop-content{margin-top:15px}.coach-loop-goal h4{margin:10px 0 8px;font-size:13px;line-height:1.5}.coach-loop-meta{display:flex;gap:8px;flex-wrap:wrap;color:#7b8598;font-size:9px}.coach-loop-meta span{padding:5px 7px;border-radius:999px;background:#0e1320;border:1px solid #293145}.coach-checks{display:grid;gap:8px;margin-top:13px}.coach-check{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:8px;align-items:start;border-top:1px solid #242b3d;padding-top:9px}.coach-check-dot{width:8px;height:8px;border-radius:50%;margin-top:4px;background:#8b5cf6}.coach-check.met .coach-check-dot,.coach-check.improved .coach-check-dot{background:#38c793}.coach-check.needs-work .coach-check-dot{background:#ef6575}.coach-check b{font-size:10px}.coach-check p{margin:3px 0 0;color:#7f899d;font-size:9px;line-height:1.4}.coach-check em{font-style:normal;color:#6f798c;font-size:8px;white-space:nowrap}.coach-loop-wait,.coach-loop-empty{padding:13px;border:1px dashed #3a4256;border-radius:12px;color:#98a1b4}.coach-loop-wait b,.coach-loop-empty b{color:#e1e5ed;font-size:12px}.coach-loop-wait p,.coach-loop-empty p{margin:5px 0 0;font-size:10px;line-height:1.5}.coach-loop-empty .dashboard-link{margin-top:12px;font-size:10px;padding:8px 10px}.lesson-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.lesson-goal-action{background:linear-gradient(135deg,#38d996,#22ad75);color:#06120d;border:0;border-radius:9px;padding:9px 12px;font-weight:900;white-space:nowrap}.lesson-goal-action:disabled{opacity:.65;cursor:default}.feature-grid article:nth-child(8){border-color:#3b654f;background:linear-gradient(180deg,#11241c,#111522)}
@media(max-width:900px){.coach-report-grid{grid-template-columns:1fr}.weekly-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.weekly-stats{grid-template-columns:1fr}.lesson-actions{width:100%;justify-content:stretch}.lesson-action,.lesson-goal-action{width:100%}.coach-check{grid-template-columns:9px 1fr}.coach-check em{grid-column:2/3}}

/* v1.3 Adaptive Training */
.daily-stats{grid-template-columns:repeat(4,1fr)}
.daily-adaptive-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.daily-adaptive-meta span{font-size:9px;color:#8e99ad;background:#131a28;border:1px solid #2b3448;border-radius:999px;padding:4px 7px;line-height:1.35}
.daily-adaptive-meta span:first-child{color:#d3c5ff;background:#211a37;border-color:#4e4078;font-weight:900}
.adaptive-training-panel{margin:18px 0;border-color:#44366d;background:linear-gradient(180deg,#16172a,#101420)}
.adaptive-mode-pill{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;border:1px solid #4f417b;background:#211a37;color:#d5c8ff;font-size:10px;font-weight:950;white-space:nowrap}
.adaptive-mode-pill.foundation{border-color:#486378;background:#13202b;color:#9fd5f3}.adaptive-mode-pill.balanced{border-color:#4f417b;background:#211a37;color:#d5c8ff}.adaptive-mode-pill.challenge{border-color:#6b4c35;background:#2a1c14;color:#f2c392}
.adaptive-training-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}
.adaptive-summary-card{background:#0f1420;border:1px solid #293145;border-radius:12px;padding:12px;min-width:0}
.adaptive-summary-card span{display:block;color:#788297;font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:900}.adaptive-summary-card b{display:block;margin-top:5px;font-size:20px;color:#e7eaf2}.adaptive-summary-card b.adaptive-summary-text{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adaptive-summary-card small{display:block;margin-top:4px;color:#7f899d;font-size:9px;line-height:1.4}
.adaptive-training-themes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}
.adaptive-theme{padding:12px;border:1px solid #293145;border-radius:12px;background:#0f1420}.adaptive-theme.mastered{border-color:#285744;background:#0f1916}.adaptive-theme.needs-work{border-color:#553847}.adaptive-theme.improving{border-color:#3f4e78}
.adaptive-theme-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.adaptive-theme-head>div{display:flex;align-items:center;gap:8px;min-width:0}.adaptive-theme-head b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.adaptive-theme-head em{font-style:normal;font-size:9px;font-weight:900;color:#aab3c4;white-space:nowrap}.adaptive-theme.mastered .adaptive-theme-head em{color:#72dcb0}.adaptive-theme.improving .adaptive-theme-head em{color:#aebdff}.adaptive-theme.needs-work .adaptive-theme-head em{color:#f0a5ae}
.adaptive-priority-rank{width:22px;height:22px;border-radius:7px;background:#221a39;color:#cbbdff;display:grid;place-items:center;font-size:9px;font-weight:950;flex:0 0 auto}.adaptive-confidence-track{height:7px;background:#1b2130;border-radius:999px;overflow:hidden;margin-top:10px}.adaptive-confidence-track>div{height:100%;border-radius:999px;background:linear-gradient(90deg,#8b5cf6,#38c793)}.adaptive-theme-meta{display:flex;gap:7px;flex-wrap:wrap;margin-top:7px}.adaptive-theme-meta span{color:#778296;font-size:8px}
.puzzle-difficulty{display:inline-flex!important;padding:3px 6px;border-radius:999px;font-size:8px!important;font-weight:950!important;text-transform:uppercase;letter-spacing:.04em}.puzzle-difficulty.support{background:#13202b;color:#9fd5f3}.puzzle-difficulty.standard{background:#211a37;color:#d5c8ff}.puzzle-difficulty.challenge{background:#2a1c14;color:#f2c392}.puzzle-why{margin-top:8px;color:#7f899d;font-size:9px;line-height:1.45}.puzzle-why b{color:#b9a7f7}
.feature-grid article:nth-child(9){border-color:#51417a;background:linear-gradient(180deg,#18162b,#111522)}
@media(max-width:900px){.daily-stats{grid-template-columns:repeat(2,1fr)}.adaptive-training-themes{grid-template-columns:1fr}}
@media(max-width:700px){.adaptive-training-summary{grid-template-columns:1fr}.daily-stats{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.daily-stats{grid-template-columns:1fr}.adaptive-theme-head{align-items:flex-start;flex-direction:column}.adaptive-theme-head em{white-space:normal}}

/* v1.4 My Repertoire + Opening Trainer */
.repertoire-training-overview{margin:18px 0;border-color:#3c5e52;background:linear-gradient(180deg,#121d1a,#101420)}
.repertoire-training-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:15px}
.repertoire-training-stats>div{background:#0f1420;border:1px solid #293145;border-radius:12px;padding:12px;min-width:0}
.repertoire-training-stats span{display:block;color:#788297;font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:900}
.repertoire-training-stats b{display:block;margin-top:5px;font-size:20px;color:#e7eaf2}
.repertoire-training-stats small{display:block;margin-top:4px;color:#7f899d;font-size:9px;line-height:1.4}
.opening-card-title{gap:8px;flex-wrap:wrap}.opening-confidence{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;border:1px solid #4b405f;background:#1a1728;color:#c8b9f7;font-size:8px;font-weight:950;white-space:nowrap}
.opening-confidence.strong{border-color:#2d614c;background:#10231b;color:#75ddb2}.opening-confidence.improving{border-color:#42527b;background:#151c30;color:#afbdff}.opening-confidence.needs-work{border-color:#633a47;background:#26151b;color:#f1a7b0}
.opening-common-line{margin:9px 0 10px;padding:9px 10px;border-radius:10px;background:#0d1320;border:1px solid #252d40}.opening-common-line span{display:block;color:#737e92;font-size:8px;text-transform:uppercase;letter-spacing:.06em;font-weight:900}.opening-common-line b{display:block;margin-top:4px;color:#c6cedd;font-size:9px;line-height:1.5;font-weight:750}
.opening-card-actions{display:flex;flex-direction:column;gap:7px;align-self:center}.train-opening-line{background:linear-gradient(135deg,#38d996,#22ad75);color:#06120d;border:0;border-radius:9px;padding:9px 11px;font-weight:950;white-space:nowrap}.train-opening-line:hover{filter:brightness(1.05)}
.opening-branch-panel,.opening-training-panel{margin-top:18px;border-color:#3d315f}.opening-branches,.opening-training-queue{display:grid;gap:9px;margin-top:14px}
.opening-branch{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px;border:1px solid #293145;border-radius:12px;background:#0f1420}
.opening-tree-rail{height:100%;min-height:56px;position:relative;display:grid;place-items:center}.opening-tree-rail span{position:absolute;left:50%;top:-13px;bottom:-13px;width:1px;background:#3a3157}.opening-tree-rail i{position:relative;z-index:1;width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:#211a37;color:#cdbfff;font-size:9px;font-weight:950;font-style:normal;border:1px solid #4d4076}
.opening-branch:first-child .opening-tree-rail span{top:50%}.opening-branch:last-child .opening-tree-rail span{bottom:50%}.opening-branch-head{display:flex;align-items:center;gap:8px;min-width:0}.opening-branch-head b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opening-branch-head em{font-style:normal;color:#7d879a;font-size:9px;margin-left:auto}.opening-branch-copy p{margin:6px 0;color:#b8c0cf;font-size:9px;line-height:1.55}.opening-branch-meta{display:flex;gap:7px;flex-wrap:wrap}.opening-branch-meta span{font-size:8px;color:#7c879a;background:#121927;border:1px solid #293145;border-radius:999px;padding:4px 6px}
.opening-trainer-row{display:grid;grid-template-columns:30px minmax(0,1fr) 105px auto;gap:11px;align-items:center;padding:12px;border:1px solid #293145;border-radius:12px;background:#0f1420}.opening-trainer-row.due{border-color:#4c3e76;background:linear-gradient(90deg,rgba(139,92,246,.07),#0f1420 28%)}
.opening-trainer-rank{width:25px;height:25px;display:grid;place-items:center;border-radius:8px;background:#211a37;color:#cdbfff;font-size:9px;font-weight:950}.opening-trainer-title{display:flex;align-items:center;gap:8px;min-width:0}.opening-trainer-title b{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.opening-trainer-title em{font-style:normal;margin-left:auto}.opening-status{font-size:8px;font-weight:950;padding:4px 6px;border-radius:999px;background:#1b2030;color:#aab3c4}.opening-status.mastered{background:#10231b;color:#75ddb2}.opening-status.improving{background:#151c30;color:#afbdff}.opening-status.needs-work{background:#26151b;color:#f1a7b0}.opening-trainer-main>p{margin:6px 0;color:#b7bfce;font-size:9px;line-height:1.55}.opening-trainer-detail{display:flex;gap:7px;flex-wrap:wrap}.opening-trainer-detail span{color:#7b8699;font-size:8px}.opening-trainer-detail b{color:#d4dae5}.opening-trainer-stats{text-align:right;display:grid;gap:2px}.opening-trainer-stats b{font-size:13px;color:#e2e6ee}.opening-trainer-stats span,.opening-trainer-stats em{font-size:8px;color:#778296;font-style:normal}.opening-trainer-row.due .opening-trainer-stats em{color:#c7b6ff;font-weight:900}
.opening-slip-actions{display:flex;gap:7px;align-items:center}.opening-slip-actions .train-opening-line,.opening-slip-actions .open-opening-review{padding:8px 10px}
.feature-grid article:nth-child(10){border-color:#3d654f;background:linear-gradient(180deg,#11241c,#111522)}
@media(max-width:900px){.repertoire-training-stats{grid-template-columns:1fr 1fr 1fr}.opening-trainer-row{grid-template-columns:30px minmax(0,1fr) auto}.opening-trainer-stats{grid-column:2/3;text-align:left;display:flex;gap:9px}.opening-trainer-row>.train-opening-line{grid-column:3/4;grid-row:1/3}.opening-card-actions{flex-direction:row;grid-column:1/-1}}
@media(max-width:700px){.repertoire-training-stats{grid-template-columns:1fr}.opening-branch{grid-template-columns:30px minmax(0,1fr)}.opening-branch>.train-opening-line{grid-column:2/3;width:100%}.opening-trainer-row{grid-template-columns:28px 1fr}.opening-trainer-stats{grid-column:2/3}.opening-trainer-row>.train-opening-line{grid-column:2/3;grid-row:auto;width:100%}.opening-slip-actions{width:100%}.opening-slip-actions button{flex:1}}


/* v1.5 Serious Game / Tournament Mode */
.tournament-controls{display:flex;align-items:center;gap:9px}.tournament-controls label{color:#778296;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.tournament-controls select,.tournament-prep-form select,.serious-tag-grid select{background:#101522;border:1px solid #343b50;border-radius:9px;padding:9px 11px;color:#e9edf5;font:inherit}.tournament-grid{display:grid;grid-template-columns:1.45fr .85fr;gap:18px}.tournament-prep-panel{border-color:#50416e}.tournament-prep-form{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:14px}.tournament-prep-form>div,.serious-tag-grid>div{display:grid;gap:5px}.tournament-prep-form label,.serious-tag-grid label{color:#7f899d;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.tournament-prep-form textarea,.serious-tag-grid textarea{width:100%;background:#090c14;border:1px solid #343b50;border-radius:11px;padding:12px 14px;color:#fff;font:inherit;resize:vertical}.prep-wide{grid-column:1/-1}.prep-save{justify-self:start}.tournament-next-panel{border-color:#3b5e51;background:linear-gradient(180deg,#111d19,#101420)}.tournament-current-prep{margin-top:13px}.prep-card{display:grid;gap:9px}.prep-status{justify-self:start;padding:5px 8px;border-radius:999px;background:#103024;color:#70ddb6;border:1px solid #2c6b51;font-size:9px;font-weight:950}.prep-card h4{margin:0;font-size:19px}.prep-card p,.prep-card small{margin:0;color:#929daf;line-height:1.5}.prep-goal{padding:11px;border-radius:11px;background:#0e151d;border:1px solid #2c3846;display:grid;gap:4px}.prep-goal b{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#a78bfa}.prep-goal span{font-size:12px;line-height:1.5}.tournament-metrics{margin-top:18px}.tournament-history-panel{margin-top:18px;border-color:#43385e}.tournament-event-chips{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.tournament-event-chips>div{padding:10px 11px;border:1px solid #293145;background:#0f1420;border-radius:11px;display:grid;gap:4px}.tournament-event-chips b{font-size:10px}.tournament-event-chips span{color:#7e899c;font-size:8px}.tournament-game-list{display:grid;gap:8px}.tournament-game-row{display:grid;grid-template-columns:minmax(0,1fr) 82px auto;gap:12px;align-items:center;padding:12px;border:1px solid #293145;border-radius:12px;background:#0f1420}.tournament-game-title{display:flex;align-items:center;gap:7px}.tournament-game-title b{font-size:11px}.tournament-game-title em{font-style:normal;color:#9aa4b6;font-size:9px}.tournament-game-row p{margin:5px 0;color:#9aa4b6;font-size:9px}.tournament-game-row small{color:#747f92;font-size:8px}.tournament-game-score{text-align:center;display:grid}.tournament-game-score b{font-size:19px;color:#c4b5fd}.tournament-game-score span{font-size:8px;color:#778296}.tournament-game-row>button{border:1px solid #514573;background:#221d36;color:#c9b8ff;border-radius:9px;padding:8px 10px}.serious-mini{display:inline-flex;padding:3px 6px;border-radius:999px;background:#2a1d36;color:#d3b6ff;border:1px solid #5b4375;font-size:8px;font-weight:950}.serious-review-panel{margin:20px 0;border-color:#5d416f;background:linear-gradient(180deg,#191425,#101420)}.serious-status-pill{padding:6px 9px;border-radius:999px;border:1px solid #3c4559;background:#151a27;color:#98a3b8;font-size:9px;font-weight:900}.serious-status-pill.active{border-color:#36735a;background:#10281e;color:#73ddb0}.serious-tag-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.serious-wide{grid-column:1/-1}.serious-actions{display:flex;gap:9px;margin-top:11px}.serious-debrief{margin-top:16px}.serious-wait{padding:12px;border-radius:11px;background:#0e131e;border:1px solid #283044}.serious-wait b{font-size:11px}.serious-wait p{margin:5px 0;color:#8994a8;font-size:10px;line-height:1.5}.serious-wait small{color:#756f91}.serious-debrief-head{display:flex;justify-content:space-between;align-items:end;gap:10px;border-top:1px solid #342c46;padding-top:15px}.serious-debrief-head h4{margin:4px 0 0}.serious-debrief-head>span{font-size:11px;font-weight:900;color:#c5b5fa}.serious-debrief-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:11px}.serious-debrief-summary>div{padding:10px;border:1px solid #2c3346;background:#0e131e;border-radius:10px}.serious-debrief-summary span{display:block;color:#798497;font-size:8px;text-transform:uppercase;font-weight:900}.serious-debrief-summary b{display:block;margin-top:4px;font-size:11px}.serious-critical-list{display:grid;gap:8px;margin-top:10px}.serious-critical{width:100%;display:grid;grid-template-columns:28px 1fr;gap:10px;text-align:left;padding:11px;border:1px solid #333a4d;background:#0f1420;color:#eef1f8;border-radius:11px}.serious-critical:hover{border-color:#6654a3}.serious-critical-rank{width:25px;height:25px;border-radius:8px;background:#281d3d;color:#d0bfff;display:grid;place-items:center;font-size:9px;font-weight:950}.serious-critical b{font-size:10px}.serious-critical p{margin:3px 0;color:#9ba5b7;font-size:9px}.serious-critical small{display:block;color:#7e899c;font-size:9px;line-height:1.5}.serious-critical strong{color:#c8b8ff}.serious-good{padding:12px;border:1px solid #2d604c;background:#0d1d17;border-radius:11px}.serious-good p{margin:5px 0 0;color:#8fa99e;font-size:10px}.feature-grid article:nth-child(11){border-color:#60456f;background:linear-gradient(180deg,#1b1426,#111522)}
@media(max-width:900px){.tournament-grid{grid-template-columns:1fr}.tournament-event-chips{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.tournament-prep-form,.serious-tag-grid{grid-template-columns:1fr}.prep-wide,.serious-wide{grid-column:auto}.tournament-event-chips{grid-template-columns:1fr}.tournament-game-row{grid-template-columns:1fr auto}.tournament-game-score{grid-row:1/2;grid-column:2/3}.tournament-game-row>button{grid-column:1/-1}.serious-debrief-summary{grid-template-columns:1fr}}


/* v1.6 Long-Term Analytics */
.long-term-panel{margin-bottom:18px;border-color:#42507a;background:linear-gradient(180deg,#121728,#101420)}
.long-term-head{align-items:flex-start}.long-term-head p{margin:6px 0 0;color:#8791a5;font-size:10px;line-height:1.5;max-width:650px}.long-term-controls{display:grid;justify-items:end;gap:8px}.long-term-window{display:flex;gap:6px}.long-term-window .filter-button{padding:7px 10px;font-size:9px}
.long-term-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:15px}.long-term-metrics>div{padding:12px;border:1px solid #2d354a;background:#0d131f;border-radius:12px}.long-term-metrics span{display:block;color:#798397;font-size:8px;text-transform:uppercase;letter-spacing:.07em;font-weight:900}.long-term-metrics b{display:block;margin-top:5px;font-size:23px;color:#e9edf6}.long-term-metrics b.positive{color:#70ddb0}.long-term-metrics b.negative{color:#f19aa5}.long-term-metrics small{display:block;margin-top:2px;color:#6e788c;font-size:8px}
.long-term-grid{display:grid;grid-template-columns:1.35fr .85fr;gap:14px;margin-top:14px}.rating-chart-wrap,.growth-signals-wrap,.growth-milestones-wrap{border:1px solid #293145;background:#0d131f;border-radius:13px;padding:13px}.long-term-subhead{display:flex;justify-content:space-between;gap:12px;align-items:end}.long-term-subhead span{font-size:8px;color:#a991ff;font-weight:950;letter-spacing:.09em}.long-term-subhead h4{margin:4px 0 0;font-size:13px}.long-term-subhead small{color:#6f798d;font-size:8px}.rating-chart{width:100%;height:220px;margin-top:8px;border-radius:10px;background:linear-gradient(180deg,rgba(62,203,157,.05),rgba(139,92,246,.025));cursor:crosshair}.rating-line{fill:none;stroke:#45cfa1;stroke-width:4;vector-effect:non-scaling-stroke}.rating-area{fill:rgba(56,199,147,.07)}.rating-point{fill:#eafbf5;stroke:#38c793;stroke-width:4;vector-effect:non-scaling-stroke;cursor:pointer}.rating-point:hover{fill:#6fe0ae}.rating-empty-label{fill:#788397;font-size:17px;font-weight:700}
.growth-signals{margin-top:9px}.growth-signal-grid{display:grid;gap:7px}.growth-signal{padding:9px 10px;border:1px solid #293145;border-radius:10px;background:#101622}.growth-signal span{display:block;color:#788397;font-size:8px;text-transform:uppercase;font-weight:900;letter-spacing:.05em}.growth-signal b{display:block;margin-top:3px;font-size:13px}.growth-signal small{display:block;margin-top:2px;color:#748094;font-size:8px}.growth-signal.positive{border-color:#285744}.growth-signal.positive b{color:#71d9ad}.growth-signal.negative{border-color:#613542}.growth-signal.negative b{color:#f09aa4}.growth-weakness-strip{margin-top:9px;padding-top:9px;border-top:1px solid #273044;display:grid;gap:6px}.growth-weakness-strip>div:not(.eyebrow){display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:center}.growth-weakness-strip span{font-size:9px;color:#afb7c7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.growth-weakness-strip b{font-size:10px;color:#d6c9ff}.growth-weakness-strip em{font-size:8px;color:#7f899c;font-style:normal}.growth-weakness-strip p{color:#7f899c;font-size:9px}
.growth-milestones-wrap{margin-top:14px}.growth-milestones{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.growth-milestone{padding:10px;border:1px solid #293145;background:#101622;border-radius:10px}.growth-milestone.done{border-color:#2a614b;background:#0f1c18}.growth-milestone-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;align-items:center}.growth-milestone-head>span{color:#8d78dc;font-weight:950}.growth-milestone.done .growth-milestone-head>span{color:#69d9aa}.growth-milestone-head b{font-size:9px}.growth-milestone-head em{font-size:8px;color:#768196;font-style:normal}.growth-milestone-track{height:5px;background:#1d2433;border-radius:999px;overflow:hidden;margin-top:8px}.growth-milestone-track i{display:block;height:100%;background:linear-gradient(90deg,#8b5cf6,#43cfa2);border-radius:999px}
.feature-grid article:nth-child(12){border-color:#415f78;background:linear-gradient(180deg,#111d29,#111522)}
@media(max-width:900px){.long-term-metrics{grid-template-columns:1fr 1fr}.long-term-grid{grid-template-columns:1fr}.growth-milestones{grid-template-columns:1fr 1fr}.long-term-controls{justify-items:start}.long-term-head{flex-direction:column}}
@media(max-width:600px){.long-term-metrics,.growth-milestones{grid-template-columns:1fr}.long-term-window{flex-wrap:wrap}.rating-chart{height:190px}.long-term-subhead{align-items:flex-start;flex-direction:column}}

/* v1.6.1 Engine strength */
.analysis-strength-card{margin:10px 0 9px;padding:11px 12px;border:1px solid #30384d;border-radius:12px;background:linear-gradient(180deg,#111726,#0d121d)}
.analysis-strength-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.analysis-strength-head>div{display:grid;gap:2px}.analysis-strength-head span{color:#7f899d;font-size:8px;font-weight:950;text-transform:uppercase;letter-spacing:.08em}.analysis-strength-head b{font-size:13px}.analysis-strength-head select{min-width:190px;background:#090d16;border:1px solid #4a4566;border-radius:9px;padding:9px 10px;color:#eef1f8;font:inherit;font-weight:800}.analysis-strength-card small{display:block;margin-top:8px;color:#8994a8;font-size:9px;line-height:1.45}.analysis-strength-card[data-mode="tournament"]{border-color:#685138;background:linear-gradient(180deg,#1b1714,#0d121d)}.analysis-strength-card[data-mode="deep"]{border-color:#514276}.analysis-strength-card[data-mode="quick"]{border-color:#35515e}
@media(max-width:600px){.analysis-strength-head{align-items:stretch;flex-direction:column}.analysis-strength-head select{width:100%}}


/* v1.7 — Accounts foundation, profile registry, backup & restore */
.settings-section{scroll-margin-top:88px}.settings-head{align-items:flex-start}.account-status-pill{padding:8px 11px;border-radius:999px;border:1px solid #3f6f5a;background:#10261e;color:#70ddb3;font-size:9px;font-weight:950;white-space:nowrap}.settings-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:18px;margin-bottom:18px}.account-foundation-panel,.backup-panel,.profile-registry-panel,.cloud-readiness-panel{border-color:#44385f}.account-name-form{margin-top:15px;display:grid;gap:6px}.account-name-form>label{color:#7f899d;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.account-name-form>div{display:grid;grid-template-columns:1fr auto;gap:8px}.account-name-form input{width:100%;background:#090c14;border:1px solid #343b50;border-radius:10px;padding:11px 13px;color:#fff;font:inherit}.account-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:14px}.account-facts>div{padding:11px 12px;border:1px solid #293145;background:#0f1420;border-radius:11px;min-width:0}.account-facts span{display:block;color:#7e899c;font-size:8px;text-transform:uppercase;letter-spacing:.06em;font-weight:900}.account-facts b{display:block;margin-top:5px;font-size:13px;color:#e7eaf2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-facts small{display:block;margin-top:3px;color:#6f7a8e;font-size:8px}.settings-copy{color:#8f99ac;font-size:10px;line-height:1.6;margin:12px 0}.backup-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}.backup-warning{margin-top:14px;padding:11px 12px;border-radius:11px;border:1px solid #4e3e59;background:#17121d;display:grid;gap:4px}.backup-warning b{font-size:9px;color:#e8dff0}.backup-warning span{font-size:9px;color:#8f8398;line-height:1.45}.profile-registry-panel,.cloud-readiness-panel{margin-top:18px}.settings-profile-list{display:grid;gap:9px;margin-top:14px}.settings-profile-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;padding:12px;border:1px solid #2d3448;border-radius:12px;background:#0f1420}.settings-profile-avatar{width:36px;height:36px;border-radius:11px;background:linear-gradient(135deg,#8b5cf6,#5b7df6);display:grid;place-items:center;font-weight:950;color:white}.settings-profile-main{min-width:0}.settings-profile-main>div{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.settings-profile-main b{font-size:11px}.settings-profile-main span{font-size:9px;color:#929caf}.settings-profile-main small{display:block;margin-top:4px;color:#687386;font-size:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-profile-counts{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.settings-profile-counts span{padding:6px 8px;border-radius:9px;border:1px solid #2d3549;background:#0b101a;color:#7f8a9e;font-size:8px;white-space:nowrap}.settings-profile-counts b{color:#dcdff0;font-size:9px}.settings-empty{padding:14px;border:1px dashed #3b4356;border-radius:12px}.settings-empty b{font-size:11px}.settings-empty p{margin:5px 0 0;color:#8792a6;font-size:9px}.cloud-readiness-panel{border-color:#365846;background:linear-gradient(180deg,#111d19,#101420)}.cloud-not-connected{padding:6px 9px;border:1px solid #5c4b38;border-radius:999px;background:#221b12;color:#d7b77e;font-size:8px;font-weight:900}.cloud-readiness-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}.cloud-ready{padding:12px;border-radius:11px;border:1px solid #2e3b3a;background:#0e1617;display:grid;gap:5px}.cloud-ready b{font-size:10px}.cloud-ready span{color:#80918f;font-size:9px;line-height:1.45}.cloud-ready.done b{color:#6ed9ad}.cloud-ready.pending{border-color:#493f52;background:#15121a}.cloud-ready.pending b{color:#c7a8da}.feature-grid article:nth-child(13){border-color:#38674f;background:linear-gradient(180deg,#10221a,#111522)}
@media(max-width:900px){.settings-grid{grid-template-columns:1fr}.cloud-readiness-grid{grid-template-columns:repeat(2,1fr)}.settings-profile-row{grid-template-columns:38px 1fr}.settings-profile-counts{grid-column:2/3;justify-content:flex-start}}
@media(max-width:700px){.account-facts,.cloud-readiness-grid{grid-template-columns:1fr}.settings-profile-row{grid-template-columns:32px 1fr}.settings-profile-avatar{width:31px;height:31px}.account-name-form>div{grid-template-columns:1fr}.account-name-form button{width:100%}.backup-actions>*{width:100%}}


/* v1.7.1 — Game Review usability */
.keyboard-hint{margin-top:8px;text-align:center;color:#7f889d;font-size:11px}.keyboard-hint kbd{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:22px;padding:0 6px;border:1px solid #394158;border-bottom-width:2px;border-radius:6px;background:#121725;color:#dce2f1;font:700 12px ui-monospace,SFMono-Regular,Menlo,monospace}.critical-puzzle-alert{position:absolute;top:12px;right:12px;z-index:4;display:flex;align-items:center;gap:12px;max-width:min(360px,calc(100% - 24px));padding:10px 11px;border:1px solid rgba(167,139,250,.68);border-radius:12px;background:rgba(9,12,20,.94);box-shadow:0 12px 36px rgba(0,0,0,.42);backdrop-filter:blur(10px)}.critical-puzzle-alert>div{display:grid;gap:2px;min-width:0}.critical-puzzle-alert span{font-size:9px;letter-spacing:.15em;font-weight:900;color:#c4b5fd}.critical-puzzle-alert b{font-size:12px;line-height:1.25;color:#f2efff;white-space:normal}.critical-puzzle-alert button{border:0;border-radius:8px;padding:8px 10px;background:linear-gradient(135deg,#38d996,#22ad75);color:#06120d;font-size:11px;font-weight:900;white-space:nowrap}.board[draggable-pieces]{cursor:grab}.board[draggable-pieces]:active{cursor:grabbing}.board::part(dragged-piece){filter:drop-shadow(0 8px 12px rgba(0,0,0,.45))}.board-arrows.interactive{pointer-events:none}@media(max-width:600px){.critical-puzzle-alert{left:8px;right:8px;top:8px;max-width:none}.critical-puzzle-alert b{font-size:11px}.critical-puzzle-alert button{padding:7px 8px}}

/* v1.8 — Real accounts + cloud sync */
.settings-grid-secondary{margin-top:18px}.cloud-auth-panel{border-color:#3d4e70;background:linear-gradient(180deg,#121827,#101420)}.cloud-sync-panel{border-color:#365846;background:linear-gradient(180deg,#111d19,#101420)}
.account-status-pill.cloud-online,.cloud-connected{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;border:1px solid #2f7258;background:#10241b;color:#69deb0;font-size:8px;font-weight:900}.account-status-pill.cloud-ready-pill{border-color:#514379;background:#1c1830;color:#cbbdff}.account-status-pill.cloud-local{border-color:#4b4f5e;background:#171a23;color:#a7afbf}
.cloud-auth-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 10px;margin-top:14px}.cloud-auth-form label{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#788297;font-weight:900}.cloud-auth-form input{width:100%;box-sizing:border-box;background:#0b101a;border:1px solid #30384d;color:#edf0f7;border-radius:10px;padding:11px 12px;font:inherit}.cloud-auth-form input:disabled{opacity:.62}.cloud-auth-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;margin-top:3px}.cloud-signed-in-summary{margin-top:12px;padding:11px 12px;border:1px solid #2d5d49;background:#0d1914;border-radius:11px;display:grid;gap:4px}.cloud-signed-in-summary b{font-size:11px;color:#dff8ed}.cloud-signed-in-summary span{font-size:8px;color:#77a38f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cloud-sync-summary{margin-top:13px;padding:12px;border-radius:11px;border:1px solid #304039;background:#0d1714;display:grid;gap:5px}.cloud-sync-summary b{font-size:11px;color:#e3ede8}.cloud-sync-summary span{font-size:9px;color:#80928a;line-height:1.5}.cloud-sync-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.cloud-sync-actions button:disabled,.cloud-auth-actions button:disabled{opacity:.45;cursor:not-allowed}.cloud-auto-sync{display:flex;align-items:flex-start;gap:8px;margin-top:12px;color:#8e998f;font-size:9px;line-height:1.45}.cloud-auto-sync input{margin-top:1px;accent-color:#38c793}.cloud-warning{margin-top:12px}.settings-copy code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;color:#cbbdff;background:#18152a;border:1px solid #32284f;border-radius:5px;padding:1px 4px}.feature-grid article:nth-child(14){border-color:#3c5873;background:linear-gradient(180deg,#111e2a,#111522)}
@media(max-width:700px){.cloud-auth-form{grid-template-columns:1fr}.cloud-auth-actions,.cloud-sync-actions{display:grid;grid-template-columns:1fr}.cloud-auth-actions button,.cloud-sync-actions button{width:100%}}


/* v1.8.1 — Cloud reliability + account polish */
.header-cloud-status{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;text-decoration:none;padding:7px 9px;border-radius:999px;border:1px solid #3b4356;background:#131720;color:#aab3c3;font-size:9px;font-weight:900;white-space:nowrap;transition:.18s ease}.header-cloud-status:hover{transform:translateY(-1px);border-color:#59627a}.cloud-state-dot{width:7px;height:7px;border-radius:50%;background:#7a8394;box-shadow:0 0 0 3px #7a839422}.header-cloud-status.cloud-state-synced,.account-status-pill.cloud-state-synced{border-color:#2f7258;background:#10241b;color:#69deb0}.cloud-state-synced .cloud-state-dot{background:#45d39d;box-shadow:0 0 0 3px #45d39d22}.header-cloud-status.cloud-state-syncing,.account-status-pill.cloud-state-syncing{border-color:#3c6d83;background:#10202a;color:#8dd5f4}.cloud-state-syncing .cloud-state-dot{background:#6cc9ef;box-shadow:0 0 0 3px #6cc9ef22;animation:cloudPulse 1s infinite}.header-cloud-status.cloud-state-pending,.account-status-pill.cloud-state-pending{border-color:#6a5737;background:#241d12;color:#e7bf76}.cloud-state-pending .cloud-state-dot{background:#e8b34e;box-shadow:0 0 0 3px #e8b34e22}.header-cloud-status.cloud-state-attention,.account-status-pill.cloud-state-attention,.header-cloud-status.cloud-state-offline,.account-status-pill.cloud-state-offline{border-color:#713d4a;background:#261419;color:#f29aa7}.cloud-state-attention .cloud-state-dot,.cloud-state-offline .cloud-state-dot{background:#ef6575;box-shadow:0 0 0 3px #ef657522}.header-cloud-status.cloud-state-first,.account-status-pill.cloud-state-first,.header-cloud-status.cloud-state-ready,.account-status-pill.cloud-state-ready{border-color:#514379;background:#1c1830;color:#cbbdff}.cloud-state-first .cloud-state-dot,.cloud-state-ready .cloud-state-dot{background:#9d81f7;box-shadow:0 0 0 3px #9d81f722}.header-cloud-status.cloud-state-local,.account-status-pill.cloud-state-local{border-color:#4b4f5e;background:#171a23;color:#a7afbf}@keyframes cloudPulse{50%{opacity:.4;transform:scale(.75)}}
.cloud-sync-detail{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px}.cloud-sync-detail span{display:grid;gap:3px;padding:9px 10px;border-radius:10px;border:1px solid #2c3834;background:#0b1412;color:#8c9a94;font-size:8px;line-height:1.35;min-width:0}.cloud-sync-detail b{color:#d5e1dc;font-size:8px;text-transform:uppercase;letter-spacing:.06em}.cloud-last-attempt-row{display:flex;justify-content:space-between;gap:12px;margin-top:10px;padding-top:10px;border-top:1px solid #26332e;color:#73817b;font-size:8px}.cloud-last-attempt-row b{color:#a9b6b0;font-weight:800;text-align:right}.cloud-sync-panel .status.error{padding:8px 10px;border-radius:9px;background:#241419;border:1px solid #633642;margin-top:8px}.cloud-sync-panel .status.success{padding:8px 10px;border-radius:9px;background:#0f1d17;border:1px solid #285744;margin-top:8px}
@media(max-width:1000px){.topbar{gap:10px}.topbar nav{gap:12px}.header-cloud-status span:last-child{display:none}.header-cloud-status{padding:7px}}
@media(max-width:700px){.cloud-sync-detail{grid-template-columns:1fr}.header-cloud-status{display:none}}


/* v1.9 — Public deployment readiness */
.deployment-readiness-panel{margin-top:18px;border-color:#35506b;background:linear-gradient(180deg,#101b27,#101420)}.deployment-facts{margin-top:14px}.deployment-facts b{font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feature-grid article:nth-child(15){border-color:#35506b;background:linear-gradient(180deg,#101b27,#111522)}

/* v1.9.1 — First-time user experience + onboarding */
.hero-first-actions{margin-top:18px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}.hero-first-actions.hidden{display:none}.hero-first-actions span{color:#8e98aa;font-size:10px;max-width:440px;line-height:1.45}.hero-primary-cta{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:10px;text-decoration:none;background:linear-gradient(135deg,#8b5cf6,#5b7df6);color:white;font-size:11px;font-weight:950;box-shadow:0 8px 24px rgba(91,125,246,.2)}
.onboarding-section{margin-top:22px;border-color:#4b4679;background:radial-gradient(circle at 88% 10%,rgba(139,92,246,.16),transparent 34%),linear-gradient(180deg,#15162a,#101420)}.onboarding-head{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:20px;align-items:start}.onboarding-head h2{margin:5px 0 7px}.onboarding-head p{margin:0;color:#8f99ad;font-size:10px;line-height:1.55;max-width:700px}.onboarding-progress-wrap{display:grid;gap:8px;align-self:center}.onboarding-progress-wrap>span{font-size:9px;color:#c4b5fd;font-weight:900;text-align:right}.onboarding-progress-track{height:8px;border-radius:999px;background:#24283b;overflow:hidden;border:1px solid #30364f}.onboarding-progress-track>div{height:100%;width:0;background:linear-gradient(90deg,#8b5cf6,#38d996);transition:width .3s ease}.onboarding-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:18px}.onboarding-steps article{position:relative;display:grid;grid-template-columns:26px minmax(0,1fr) 18px;gap:8px;align-items:start;padding:11px;border-radius:11px;border:1px solid #30364b;background:#0e1320;min-height:92px;transition:.18s ease}.onboarding-steps article.current{border-color:#7c68ca;background:#17152a;box-shadow:inset 0 0 0 1px rgba(139,92,246,.12)}.onboarding-steps article.done{border-color:#2f6d57;background:#0e1a16}.onboarding-step-number{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:#24283a;color:#aeb7ca;font-size:9px;font-weight:950}.onboarding-steps article.current .onboarding-step-number{background:#5f4dc3;color:white}.onboarding-steps article.done .onboarding-step-number{background:#1f6e50;color:#dff8ed}.onboarding-steps b{display:block;font-size:9px;line-height:1.35;color:#e8ebf4}.onboarding-steps p{margin:5px 0 0;color:#747f94;font-size:8px;line-height:1.45}.onboarding-check{font-size:14px;color:#596274;text-align:right}.onboarding-steps article.done .onboarding-check{color:#52d59e}.onboarding-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:13px;border-top:1px solid #292d40}.onboarding-actions>span{margin-left:auto;color:#6f7a8e;font-size:8px}.onboarding-settings-panel{margin-top:18px;border-color:#4b4679;background:linear-gradient(180deg,#15162a,#101420)}.onboarding-settings-panel .backup-actions{margin-top:12px}.onboarding-complete{border-color:#2f7258;background:radial-gradient(circle at 88% 10%,rgba(56,217,150,.12),transparent 34%),linear-gradient(180deg,#111f1a,#101420)}
.progress-empty .dashboard-link{display:inline-flex;margin-top:4px}.progress-empty:has(.dashboard-link)::after{content:"ChessLift builds these areas automatically from your own reviewed games.";display:block;margin-top:10px;color:#667184;font-size:8px}
.feature-grid article:nth-child(16){border-color:#4b4679;background:linear-gradient(180deg,#17152a,#111522)}
@media(max-width:1100px){.onboarding-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.onboarding-steps article:last-child{grid-column:1/-1}.onboarding-head{grid-template-columns:1fr}.onboarding-progress-wrap{max-width:360px}.onboarding-progress-wrap>span{text-align:left}}
@media(max-width:700px){.onboarding-steps{grid-template-columns:1fr}.onboarding-steps article:last-child{grid-column:auto}.onboarding-actions{display:grid;grid-template-columns:1fr}.onboarding-actions button{width:100%}.onboarding-actions>span{margin-left:0}.hero-first-actions{display:grid}.hero-first-actions span{text-align:center}}


/* v1.9.2 — Production reliability + tester readiness */
.help-section{scroll-margin-top:88px}.help-head{align-items:flex-start}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.help-grid>.panel{min-width:0}.help-quickstart-panel,.feedback-panel{border-color:#4c416d}.service-health-panel{border-color:#355b67;background:linear-gradient(180deg,#101d24,#101420)}.tester-readiness-panel{border-color:#35604d;background:linear-gradient(180deg,#101f19,#101420)}.help-topic-list{display:grid;gap:8px;margin-top:14px}.help-topic-list details{border:1px solid #2d3448;border-radius:11px;background:#0e1320;padding:10px 12px}.help-topic-list summary{cursor:pointer;color:#e4e8f2;font-size:10px;font-weight:900}.help-topic-list p{margin:8px 0 2px;color:#8792a6;font-size:9px;line-height:1.55}.service-health-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.service-health-grid>div{padding:11px 12px;border:1px solid #29394a;background:#0d151c;border-radius:11px}.service-health-grid span{display:block;color:#77879a;font-size:8px;text-transform:uppercase;font-weight:900}.service-health-grid b{display:block;margin-top:4px;color:#e8edf6;font-size:12px}.service-health-grid small{display:block;margin-top:3px;color:#687688;font-size:8px}.compact-button{padding:7px 10px;font-size:9px}.feedback-form{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}.feedback-form label{display:grid;gap:6px;color:#8b96a9;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}.feedback-form label span{font-weight:600;text-transform:none;color:#687386}.feedback-form select,.feedback-form textarea,.feedback-form input{width:100%;background:#090c14;border:1px solid #343b50;border-radius:10px;padding:11px 12px;color:#fff;font:inherit}.feedback-form textarea{resize:vertical;min-height:110px;line-height:1.5}.feedback-actions{display:flex;gap:8px;flex-wrap:wrap}.tester-checks{display:grid;gap:9px;margin-top:14px}.tester-checks>div{padding:11px;border:1px solid #2b3c35;border-radius:10px;background:#0c1713;display:grid;gap:4px}.tester-checks b{font-size:10px;color:#72dcb2}.tester-checks span{font-size:9px;color:#83978f;line-height:1.45}.toast-stack{position:fixed;right:18px;bottom:18px;z-index:1000;display:grid;gap:8px;width:min(360px,calc(100vw - 36px));pointer-events:none}.toast{transform:translateY(12px);opacity:0;transition:.2s ease;display:grid;gap:3px;padding:11px 12px;border:1px solid #384159;border-radius:12px;background:#111724ee;box-shadow:0 18px 50px #0008;backdrop-filter:blur(10px)}.toast.show{transform:none;opacity:1}.toast b{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#c7d0e1}.toast span{font-size:10px;color:#e9edf6;line-height:1.4}.toast.error{border-color:#743c48;background:#251419f2}.toast.error b{color:#f49aa7}.toast.success{border-color:#31664f;background:#0f1e18f2}.toast.success b{color:#6ed9ad}.is-loading{position:relative;cursor:wait!important;opacity:.88}.is-loading::after{content:"";display:inline-block;width:11px;height:11px;margin-left:8px;vertical-align:-2px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:chessLiftSpin .75s linear infinite}@keyframes chessLiftSpin{to{transform:rotate(360deg)}}
.feature-grid article:nth-child(17){border-color:#3f5f69;background:linear-gradient(180deg,#101d24,#111522)}
@media(max-width:900px){.help-grid{grid-template-columns:1fr}.service-health-grid{grid-template-columns:repeat(4,1fr)}.topbar nav{gap:9px;max-width:70vw;overflow-x:auto;scrollbar-width:none}.topbar nav::-webkit-scrollbar{display:none}.topbar nav a{white-space:nowrap}}
@media(max-width:700px){.service-health-grid{grid-template-columns:1fr 1fr}.feedback-actions{display:grid;grid-template-columns:1fr}.feedback-actions button{width:100%}.panel{padding:18px}.section{padding-top:48px}}
@media(max-width:600px){.topbar{height:auto;min-height:68px;flex-wrap:wrap;padding:9px 16px}.topbar nav{display:flex;order:3;width:100%;max-width:none;gap:7px;padding:7px 0 2px;overflow-x:auto}.topbar nav a{padding:6px 9px;border:1px solid #252b3b;border-radius:8px;background:#111522;font-size:11px}.topbar .brand{font-size:20px}.service-health-grid{grid-template-columns:1fr}.toast-stack{right:10px;bottom:10px;width:calc(100vw - 20px)}main{width:min(1180px,calc(100% - 20px))}.hero{padding-left:4px;padding-right:4px}.hero p{font-size:16px}}
