.boot{background:var(--surface);min-height:100dvh}.shell{min-height:100dvh}.topbar{align-items:center;gap:var(--space-6);padding:var(--space-3) var(--space-6);background:var(--surface-sunken);border-bottom:1px solid var(--border);transition:opacity var(--motion) var(--ease);display:flex}.brand{letter-spacing:-.02em;font-weight:660;text-decoration:none}.topbar nav{gap:var(--space-1);display:flex}.topbar nav a{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--text-muted);transition:color var(--motion-fast) var(--ease), background var(--motion-fast) var(--ease);font-weight:520;text-decoration:none}.topbar nav a:hover{color:var(--text);background:var(--surface-hover)}.topbar nav a[aria-current=page]{color:var(--text);background:var(--accent-soft)}.topbar-end{align-items:center;gap:var(--space-4);font-size:var(--text-sm);margin-left:auto;display:flex}.pending{color:var(--text-muted);font-variant-numeric:tabular-nums}.linkish{color:var(--text-muted);font-size:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.linkish:hover{color:var(--text)}.page{max-width:68rem;padding:var(--space-10) var(--space-6) var(--space-18);gap:var(--space-6);flex-direction:column;margin:0 auto;display:flex}.page-head{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.page>.btn{align-self:flex-start}.lede{max-width:70ch;color:var(--text-muted)}.muted{color:var(--text-muted)}.panel{padding:var(--space-6);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;white-space:nowrap;transition:background var(--motion-fast) var(--ease), border-color var(--motion-fast) var(--ease), color var(--motion-fast) var(--ease);border:1px solid #0000;font-weight:540;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-contrast)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{background:var(--surface-raised);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface-hover)}.btn-quiet{color:var(--text-muted);background:0 0}.btn-quiet:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn-danger{border-color:var(--wrong);color:var(--wrong);background:0 0}.btn-danger:hover:not(:disabled){background:var(--wrong-soft)}.field{gap:var(--space-2);flex-direction:column;display:flex}.field label{font-size:var(--text-sm);font-weight:540}.field input,.field textarea{padding:var(--space-2) var(--space-3);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);transition:border-color var(--motion-fast) var(--ease)}.field textarea{font-family:var(--font-mono);font-size:var(--text-sm);resize:vertical;line-height:1.6}.field input:hover,.field textarea:hover{border-color:var(--text-faint)}.field input[aria-invalid=true]{border-color:var(--wrong)}.field-hint,.field-error{font-size:var(--text-xs);color:var(--text-muted)}.field-error{color:var(--wrong)}.form-actions{gap:var(--space-2);align-items:center;display:flex}fieldset.colour-choice{align-items:center;gap:var(--space-2);border:0;margin:0;padding:0;display:flex}fieldset.colour-choice legend{margin-bottom:var(--space-2);font-size:var(--text-sm);padding:0;font-weight:540}fieldset.colour-choice label{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;display:inline-flex}fieldset.colour-choice label.selected{border-color:var(--accent);background:var(--accent-soft)}.notice{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken);font-size:var(--text-sm)}.notice-error{border-color:var(--wrong);background:var(--wrong-soft);color:var(--wrong)}.skeleton{gap:var(--space-3);flex-direction:column;display:flex}.skeleton-row{border-radius:var(--radius-sm);background:var(--surface-sunken);height:2.5rem;animation:pulse 1.6s var(--ease) infinite}@keyframes pulse{50%{opacity:.55}}.empty{max-width:52ch;padding:var(--space-10) 0;gap:var(--space-4);flex-direction:column;display:flex}.empty-body{gap:var(--space-3);color:var(--text-muted);flex-direction:column;display:flex}.empty-action{margin-top:var(--space-2)}.chip{padding:2px var(--space-2);border:1px solid var(--border-strong);font-size:var(--text-xs);text-transform:capitalize;border-radius:999px}.chip-black{background:var(--text);border-color:var(--text);color:var(--surface)}.stats-row{gap:var(--space-8);flex-wrap:wrap;display:flex}.stats-row.compact{gap:var(--space-5)}.stat{flex-direction:column;gap:2px;display:flex}.stat-value{font-size:var(--text-lg);font-variant-numeric:tabular-nums;font-weight:600}.stat-value[data-tone=correct]{color:var(--correct)}.stat-value[data-tone=wrong]{color:var(--wrong)}.stat-label{font-size:var(--text-xs);color:var(--text-muted)}.auth{place-content:center;gap:var(--space-8);min-height:100dvh;padding:var(--space-8) var(--space-6);max-width:26rem;margin:0 auto;display:grid}.auth-intro h1{font-size:var(--text-xl);margin-bottom:var(--space-3)}.auth-intro p{color:var(--text-muted)}.auth-form{gap:var(--space-4);padding:var(--space-6);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex}.auth-switch{font-size:var(--text-sm);color:var(--text-muted)}.rep-list{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.rep-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface-raised);border-bottom:1px solid var(--border);display:flex}.rep-row:last-child{border-bottom:0}.rep-main{flex-direction:column;gap:2px;min-width:0;display:flex}.rep-name{font-weight:540}.rep-meta{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums;display:flex}.rep-broken{color:var(--wrong)}.rep-actions{align-items:center;gap:var(--space-2);display:flex}.rep-confirm{font-size:var(--text-sm);color:var(--text-muted)}.add-rep{gap:var(--space-4);flex-direction:column;display:flex}.pick-list{gap:var(--space-2);flex-direction:column;display:flex}.pick{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color var(--motion-fast) var(--ease);display:flex}.pick:hover{border-color:var(--border-strong)}.pick.selected{border-color:var(--accent);background:var(--accent-soft)}.pick-name{font-weight:520}.pick .chip{margin-left:auto}.session{gap:var(--space-8);grid-template-columns:minmax(0,1fr) 19rem;align-items:start;max-width:64rem;display:grid}.shell:has(.session) .topbar{opacity:.55}:is(.shell:has(.session) .topbar:hover,.shell:has(.session) .topbar:focus-within){opacity:1}.board{border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow);overflow:hidden}.session-panel{gap:var(--space-5);flex-direction:column;display:flex}.session-line{flex-direction:column;gap:2px;display:flex}.session-source{font-weight:560}.session-progress{font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.verdict{align-items:center;gap:var(--space-3);min-height:3.25rem;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken);font-size:var(--text-sm);display:flex}.verdict[data-verdict=wrong]{border-color:var(--wrong);background:var(--wrong-soft);color:var(--wrong)}.verdict[data-verdict=complete]{border-color:var(--correct);background:var(--correct-soft);color:var(--correct)}.verdict-mark{font-size:var(--text-md);font-weight:700}.verdict-prompt{color:var(--text-muted);font-variant-numeric:tabular-nums}.session-actions{gap:var(--space-2);display:flex}.moves{gap:var(--space-1) var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--border);font-family:var(--font-mono);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.move-number{color:var(--text-faint);margin-right:2px}.session-exit{align-self:flex-start}.session-done{max-width:34rem}.sort-toggle{border:1px solid var(--border-strong);border-radius:var(--radius-sm);display:flex;overflow:hidden}.sort-toggle button{padding:var(--space-2) var(--space-3);background:var(--surface-raised);font-size:var(--text-sm);color:var(--text-muted);cursor:pointer;border:0}.sort-toggle button.selected{background:var(--accent-soft);color:var(--text)}.trouble-list{border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}.trouble{border-bottom:1px solid var(--border);background:var(--surface-raised)}.trouble:last-child{border-bottom:0}.trouble-head{align-items:center;gap:var(--space-4);width:100%;padding:var(--space-3) var(--space-4);text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.trouble-head:hover{background:var(--surface-hover)}.trouble-rate{font-variant-numeric:tabular-nums;min-width:3.5rem;color:var(--wrong);font-weight:620}.trouble-moves{min-width:0;font-family:var(--font-mono);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.trouble-counts{font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.trouble-detail{gap:var(--space-6);padding:var(--space-4) var(--space-4) var(--space-6);border-top:1px solid var(--border);background:var(--surface-sunken);grid-template-columns:16rem minmax(0,1fr);display:grid}.trouble-facts{gap:var(--space-3);flex-direction:column;align-items:flex-start;display:flex}@media (width<=52rem){.session,.trouble-detail{grid-template-columns:minmax(0,1fr)}}@media (width<=34rem){.page{padding:var(--space-6) var(--space-4) var(--space-14)}.topbar{gap:var(--space-3);padding:var(--space-3) var(--space-4);flex-wrap:wrap}.topbar nav{order:3;width:100%}.rep-row{flex-direction:column;align-items:flex-start}.stats-row{gap:var(--space-5)}}:root{--surface:oklch(98.2% .006 75);--surface-raised:oklch(99.8% .003 75);--surface-sunken:oklch(95.5% .008 75);--surface-hover:oklch(96.5% .008 75);--border:oklch(89% .008 75);--border-strong:oklch(80% .01 75);--text:oklch(25% .012 70);--text-muted:oklch(52% .01 70);--text-faint:oklch(65% .008 70);--accent:oklch(55% .13 62);--accent-hover:oklch(48% .13 62);--accent-soft:oklch(94% .04 65);--accent-contrast:oklch(99% .005 75);--correct:oklch(52% .11 150);--correct-soft:oklch(94% .04 150);--wrong:oklch(52% .16 27);--wrong-soft:oklch(94% .045 27);--board-light:oklch(93% .02 78);--board-dark:oklch(62% .035 65);--text-xs:.75rem;--text-sm:.8125rem;--text-base:.9375rem;--text-md:1.0625rem;--text-lg:1.3125rem;--text-xl:1.75rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-14:3.5rem;--space-18:4.5rem;--radius-sm:4px;--radius:6px;--radius-lg:10px;--motion-fast:.14s;--motion:.2s;--ease:cubic-bezier(.25, 1, .5, 1);--shadow-sm:0 1px 2px oklch(25% .012 70/.06);--shadow:0 2px 8px oklch(25% .012 70/.08);--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace}@media (prefers-color-scheme:dark){:root{--surface:oklch(20% .008 70);--surface-raised:oklch(24.5% .009 70);--surface-sunken:oklch(16.5% .008 70);--surface-hover:oklch(27.5% .009 70);--border:oklch(32% .01 70);--border-strong:oklch(42% .012 70);--text:oklch(93% .008 75);--text-muted:oklch(70% .008 75);--text-faint:oklch(56% .008 75);--accent:oklch(72% .12 68);--accent-hover:oklch(79% .12 68);--accent-soft:oklch(30% .045 65);--accent-contrast:oklch(18% .01 70);--correct:oklch(70% .12 150);--correct-soft:oklch(29% .045 150);--wrong:oklch(66% .15 27);--wrong-soft:oklch(30% .055 27);--board-light:oklch(72% .025 78);--board-dark:oklch(46% .03 65);--shadow-sm:0 1px 2px oklch(0% 0 0/.3);--shadow:0 2px 10px oklch(0% 0 0/.35)}}*,:before,:after{box-sizing:border-box}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--text);background:var(--surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.5}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:620;line-height:1.2}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-md)}p{margin:0}ul,ol{margin:0;padding:0;list-style:none}a{color:inherit}button,input,textarea,select{font:inherit;color:inherit}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
