.filters{gap:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-key);flex-direction:column;padding:16px 20px;display:flex}.filter-row{align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.filter-field{flex-direction:column;gap:6px;min-width:130px;display:flex}.filter-field.wide{flex:1;min-width:240px}.filter-field .select,.filter-field .input{padding-inline:14px}.pager{justify-content:center;align-items:center;gap:var(--space-3);display:flex}.review{gap:var(--space-4);flex-direction:column;display:flex}.review-title{flex-direction:column;gap:4px;display:flex}.review-sub{font-size:var(--size-ui-3)}.tag[data-result=win]{background:color-mix(in srgb, var(--cls-excellent) 18%, transparent);color:var(--cls-excellent)}.tag[data-result=loss]{background:color-mix(in srgb, var(--cls-mistake) 18%, transparent);color:var(--cls-mistake)}.tag[data-result=draw],.tag[data-result=unfinished]{background:var(--raised);color:var(--ink-muted)}.review-stats{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--line);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;display:grid;overflow:hidden}.review-stat{background:var(--surface);flex-direction:column;gap:3px;min-width:0;padding:14px 18px;display:flex}.review-stat-value{font-family:var(--font-display);font-size:var(--size-display-3);text-overflow:ellipsis;white-space:nowrap;line-height:1.1;overflow:hidden}.review-stat[data-accent=true] .review-stat-value{color:var(--accent)}.review-body{grid-template-columns:minmax(0, calc(var(--board-max) + var(--eval-gutter))) minmax(320px, 400px);gap:var(--space-5);justify-content:center;align-items:start;width:100%;display:grid}.review-left{gap:var(--space-4);flex-direction:column;min-width:0;display:flex}.review-nav{align-items:center;gap:var(--space-3);display:flex}.review-steps{align-items:center;gap:6px;display:flex}.review-ply{font-size:var(--size-mono-3);margin-left:6px}.review-nav .btn{margin-left:auto}.review-panel{gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);flex-direction:column;min-width:0;padding:16px 18px;display:flex}.review-empty{font-size:var(--size-ui-3);margin:0}.eval-graph{width:100%;position:relative}.eval-graph svg{border-radius:var(--radius-sm);background:var(--ground);width:100%;display:block}.eval-band[data-phase=opening]{fill:color-mix(in srgb, var(--cls-book) 10%, transparent)}.eval-band[data-phase=middlegame]{fill:#0000}.eval-band[data-phase=endgame]{fill:color-mix(in srgb, var(--cls-forced) 12%, transparent)}.eval-band-label{font-family:var(--font-mono);letter-spacing:var(--label-tracking);text-transform:uppercase;fill:var(--ink-dim);font-size:9px}.eval-book-edge line{stroke:var(--cls-book);stroke-width:1px;stroke-dasharray:2 3;opacity:.8}.eval-book-edge text{font-family:var(--font-mono);letter-spacing:var(--label-tracking);text-transform:uppercase;fill:var(--cls-book);font-size:9px}.eval-area.white{fill:color-mix(in srgb, var(--accent) 26%, transparent)}.eval-area.black{fill:color-mix(in srgb, var(--ink) 16%, transparent)}.eval-mid{stroke:var(--line);stroke-width:1px;stroke-dasharray:3 4}.eval-line{fill:none;stroke:var(--ink-muted);stroke-width:1.5px;stroke-linejoin:round}.eval-dot{fill:var(--cls,var(--ink-muted));stroke:var(--ground);stroke-width:1.5px;transition:r var(--dur-fast) var(--ease-out)}.eval-dot:hover,.eval-dot[data-active=true]{r:5.5}.eval-cursor line{stroke:var(--accent);stroke-width:1px;opacity:.7}.eval-cursor circle{fill:var(--accent);stroke:var(--ground);stroke-width:2px}.eval-cursor{transition:transform var(--dur-fast) var(--ease-out)}.eval-hit{fill:#0000;cursor:crosshair}.eval-readout{justify-content:space-between;align-items:baseline;gap:var(--space-3);font-size:var(--size-mono-3);color:var(--ink-muted);padding-top:6px;display:flex}.review-moves{grid-template-columns:34px minmax(0,1fr) minmax(0,1fr);align-content:start;gap:2px 6px;max-height:340px;display:grid;overflow-y:auto}.review-no{font-size:var(--size-mono-3);color:var(--ink-dim);text-align:right;align-self:center}.review-move{border-radius:var(--radius-sm);font-size:var(--size-ui-3);text-align:left;cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out);background:0 0;border:0;align-items:baseline;gap:5px;padding:3px 8px;display:flex}.review-move.empty{color:var(--ink-dim);cursor:default}.review-move:hover{background:var(--accent-tint)}.review-move[data-selected=true]{background:var(--accent);color:var(--ground)}.review-book-exit{justify-content:space-between;align-items:baseline;gap:var(--space-3);border-top:1px dashed color-mix(in srgb, var(--cls-book) 60%, var(--line));font-size:var(--size-mono-3);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--cls-book);grid-column:1/-1;margin:6px 0 4px;padding-top:6px;display:flex}.review-glyph{font-family:var(--font-mono);color:var(--cls,var(--ink-dim));font-size:10px}.review-move[data-selected=true] .review-book-exit{justify-content:space-between;align-items:baseline;gap:var(--space-3);border-top:1px dashed color-mix(in srgb, var(--cls-book) 60%, var(--line));font-size:var(--size-mono-3);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--cls-book);grid-column:1/-1;margin:6px 0 4px;padding-top:6px;display:flex}.review-move[data-book-exit]{box-shadow:inset 2px 0 0 var(--cls-book)}.review-move[data-cls=brilliant] .review-glyph{letter-spacing:-.5px;font-weight:700}.review-glyph{color:var(--ground)}.moments{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(120px,1fr));display:grid}.moment{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--ground);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);flex-direction:column;gap:8px;padding:10px;display:flex}.moment:hover{border-color:var(--cls,var(--accent));transform:translateY(-2px)}.moment[data-selected=true]{border-color:var(--accent)}.moment-foot{font-size:var(--size-ui-3);justify-content:space-between;align-items:baseline;gap:6px;display:flex}.moment-san{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.moment-swing{font-size:var(--size-mono-3);color:var(--cls,var(--ink-muted))}.game-puzzles{gap:var(--space-3);flex-direction:column;display:flex}.game-puzzle{gap:var(--space-3);grid-template-columns:78px minmax(0,1fr);align-items:center;display:grid}.game-puzzle-board{border:1px solid var(--line);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out);background:0 0;border-radius:10px;padding:0;overflow:hidden}.game-puzzle-board:hover{border-color:var(--accent)}.game-puzzle-body{flex-direction:column;gap:6px;min-width:0;display:flex}.game-puzzle-head{justify-content:space-between;align-items:baseline;gap:var(--space-2);font-size:var(--size-mono-3);display:flex}.game-puzzle-themes{flex-wrap:wrap;gap:4px;display:flex}.theme-chip{border-radius:var(--radius-pill);background:var(--raised);color:var(--ink-muted);padding:2px 8px;font-size:10px}.game-puzzle-link{font-size:var(--size-ui-3)}.tree{max-height:260px;font-size:var(--size-ui-3);flex-wrap:wrap;align-items:baseline;gap:3px;display:flex;overflow-y:auto}.tree-chain,.tree-branches{display:contents}.tree-move{border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--size-mono-3);color:var(--ink-muted);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);background:0 0;border:0;padding:2px 7px}.tree-move:hover{background:var(--accent-tint);color:var(--ink)}.tree-move[data-active=true]{color:var(--ink)}.tree-move[data-selected=true]{background:var(--accent);color:var(--ground)}.tree-move.root{letter-spacing:var(--label-tracking);text-transform:uppercase;font-size:9px}.tree-fold{border:1px solid var(--line);border-radius:var(--radius-pill);font-family:var(--font-mono);color:var(--ink-dim);cursor:pointer;background:0 0;padding:1px 6px;font-size:9px}.tree-fold:hover{border-color:var(--accent);color:var(--accent)}.tree-branch{border-left:1px solid var(--line);flex-wrap:wrap;flex-basis:100%;align-items:baseline;gap:3px;margin-left:18px;padding-left:8px;display:flex}@media (max-width:1180px){.review-body{grid-template-columns:minmax(0,1fr)}}.spar-panel{flex-direction:column;gap:10px;display:flex}.spar-panel-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spar-panel-goal{font-size:var(--size-ui-2);font-weight:650}.spar-panel-head .badge{margin-left:auto}.spar-rows{flex-direction:column;gap:6px;display:flex}.spar-row{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);transition:border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);border-left-width:3px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 10px;font-size:12.5px;display:grid}.spar-row:hover{color:var(--ink);transform:translate(2px)}.spar-row[data-outcome=converted]{border-left-color:var(--good)}.spar-row[data-outcome=missed]{border-left-color:var(--bad)}.spar-row-outcome{font-weight:650}.spar-elsewhere{flex-wrap:wrap;align-items:center;gap:6px;display:flex}
