:root{--toastify-color-success:var(--success);--toastify-color-error:var(--error);--toastify-color-warning:var(--warning);--toastify-color-info:var(--info);--toastify-icon-color-success:var(--success);--toastify-icon-color-error:var(--error);--toastify-icon-color-warning:var(--warning);--toastify-icon-color-info:var(--info)}.Toastify__toast-container{max-height:100vh;overflow-y:auto}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-600:oklch(57.7% .245 27.325);--color-blue-500:oklch(62.3% .214 259.815);--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-xl:36rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--ease-out:cubic-bezier(0, 0, .2, 1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--color-accent:var(--accent);--color-primary:var(--accent);--color-primary-foreground:var(--accent-fg);--color-background:var(--bg-primary);--color-foreground:var(--fg-primary);--color-card:var(--bg-surface);--color-card-foreground:var(--fg-primary);--color-popover:var(--bg-elevated);--color-secondary:var(--bg-secondary);--color-muted:var(--bg-secondary);--color-muted-foreground:var(--fg-muted);--color-accent-foreground:var(--accent-fg);--color-destructive:var(--error);--color-destructive-foreground:var(--fg-inverse);--color-input:var(--border-primary);--color-ring:var(--accent)}}@layer base{button{color:inherit;background-color:#0000}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-x-0{inset-inline:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.top-0{top:calc(var(--spacing) * 0)}.top-1{top:calc(var(--spacing) * 1)}.top-1\.5{top:calc(var(--spacing) * 1.5)}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-\[50\%\]{top:50%}.right-0{right:calc(var(--spacing) * 0)}.right-1{right:calc(var(--spacing) * 1)}.right-1\.5{right:calc(var(--spacing) * 1.5)}.right-2{right:calc(var(--spacing) * 2)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.bottom-0{bottom:calc(var(--spacing) * 0)}.left-0{left:calc(var(--spacing) * 0)}.left-2{left:calc(var(--spacing) * 2)}.left-\[50\%\]{left:50%}.z-10{z-index:10}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[1200\]{z-index:1200}.z-\[1201\]{z-index:1201}.col-span-full{grid-column:1/-1}.row-1{grid-row:1}.row-2{grid-row:2}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.m-0{margin:calc(var(--spacing) * 0)}.m-1{margin:calc(var(--spacing) * 1)}.m-2{margin:calc(var(--spacing) * 2)}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mb-0{margin-bottom:calc(var(--spacing) * 0)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.ml-0\!{margin-left:calc(var(--spacing) * 0)!important}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-1\.5{width:calc(var(--spacing) * 1.5);height:calc(var(--spacing) * 1.5)}.size-3\.5{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-11{width:calc(var(--spacing) * 11);height:calc(var(--spacing) * 11)}.size-12{width:calc(var(--spacing) * 12);height:calc(var(--spacing) * 12)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-11{height:calc(var(--spacing) * 11)}.h-\[18px\]{height:18px}.h-\[22px\]{height:22px}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-48{max-height:calc(var(--spacing) * 48)}.max-h-72{max-height:calc(var(--spacing) * 72)}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[90vh\]{max-height:90vh}.min-h-11{min-height:calc(var(--spacing) * 11)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-16{min-height:calc(var(--spacing) * 16)}.min-h-\[44px\]{min-height:44px}.min-h-\[88px\]{min-height:88px}.min-h-\[240px\]{min-height:240px}.min-h-full{min-height:100%}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-20{width:calc(var(--spacing) * 20)}.w-24{width:calc(var(--spacing) * 24)}.w-\[18px\]{width:18px}.w-\[22px\]{width:22px}.w-\[min\(640px\,100vw\)\]{width:min(640px,100vw)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-\[12rem\]{max-width:12rem}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-6{min-width:calc(var(--spacing) * 6)}.min-w-11{min-width:calc(var(--spacing) * 11)}.min-w-20{min-width:calc(var(--spacing) * 20)}.min-w-\[8rem\]{min-width:8rem}.min-w-\[14rem\]{min-width:14rem}.min-w-\[16rem\]{min-width:16rem}.min-w-\[44px\]{min-width:44px}.min-w-\[200px\]{min-width:200px}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.flex-1{flex:1}.flex-auto{flex:auto}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.translate-x-\[-50\%\]{--tw-translate-x:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-full{--tw-translate-y:-100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-\[-50\%\]{--tw-translate-y:-50%;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.resize{resize:both}.resize-y{resize:vertical}.list-none{list-style-type:none}.\[grid-auto-rows\:1fr\]{grid-auto-rows:1fr}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[repeat\(auto-fit\,minmax\(280px\,1fr\)\)\]{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0{gap:calc(var(--spacing) * 0)}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-\[3px\]{border-radius:3px}.rounded-app{border-radius:var(--radius-md,8px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-\[3px\]{border-style:var(--tw-border-style);border-width:3px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-\[color-mix\(in_srgb\,var\(--accent\)_25\%\,var\(--border\)\)\]{border-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.border-\[color-mix\(in_srgb\,var\(--accent\)_25\%\,var\(--border\)\)\]{border-color:color-mix(in srgb,var(--accent) 25%,var(--border))}}.border-\[var\(--accent\)\]{border-color:var(--accent)}.border-\[var\(--border\)\]{border-color:var(--border)}.border-\[var\(--border-strong\)\]{border-color:var(--border-strong)}.border-\[var\(--danger\)\]{border-color:var(--danger)}.border-\[var\(--exercise-correct\)\]{border-color:var(--exercise-correct)}.border-\[var\(--exercise-selected\)\]{border-color:var(--exercise-selected)}.border-\[var\(--exercise-wrong\)\]{border-color:var(--exercise-wrong)}.border-\[var\(--matching-pair-color\)\]{border-color:var(--matching-pair-color)}.border-\[var\(--success\)\]{border-color:var(--success)}.border-accent{border-color:var(--accent)}.border-border,.border-border\/60{border-color:var(--border-primary)}@supports (color:color-mix(in lab, red, red)){.border-border\/60{border-color:color-mix(in oklab, var(--border-primary) 60%, transparent)}}.border-destructive{border-color:var(--error)}.border-fg-muted\/40{border-color:var(--fg-muted)}@supports (color:color-mix(in lab, red, red)){.border-fg-muted\/40{border-color:color-mix(in oklab, var(--fg-muted) 40%, transparent)}}.border-input{border-color:var(--border-primary)}.border-primary{border-color:var(--accent)}.border-success{border-color:var(--success)}.border-transparent{border-color:#0000}.border-warning{border-color:var(--warning)}.bg-\[color-mix\(in_srgb\,var\(--accent\)_8\%\,var\(--surface\)\)\]{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--accent\)_8\%\,var\(--surface\)\)\]{background-color:color-mix(in srgb,var(--accent) 8%,var(--surface))}}.bg-\[color-mix\(in_srgb\,var\(--accent\)_10\%\,var\(--surface\)\)\]{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--accent\)_10\%\,var\(--surface\)\)\]{background-color:color-mix(in srgb,var(--accent) 10%,var(--surface))}}.bg-\[color-mix\(in_srgb\,var\(--accent\)_12\%\,var\(--surface\)\)\]{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--accent\)_12\%\,var\(--surface\)\)\]{background-color:color-mix(in srgb,var(--accent) 12%,var(--surface))}}.bg-\[color-mix\(in_srgb\,var\(--accent\)_14\%\,transparent\)\]{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--accent\)_14\%\,transparent\)\]{background-color:color-mix(in srgb,var(--accent) 14%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--accent\)_16\%\,var\(--bg-surface\)\)\]{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--accent\)_16\%\,var\(--bg-surface\)\)\]{background-color:color-mix(in srgb,var(--accent) 16%,var(--bg-surface))}}.bg-\[color-mix\(in_srgb\,var\(--accent-fg\)_22\%\,transparent\)\]{background-color:var(--accent-fg)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--accent-fg\)_22\%\,transparent\)\]{background-color:color-mix(in srgb,var(--accent-fg) 22%,transparent)}}.bg-\[color-mix\(in_srgb\,var\(--danger\)_14\%\,var\(--surface\)\)\]{background-color:var(--danger)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--danger\)_14\%\,var\(--surface\)\)\]{background-color:color-mix(in srgb,var(--danger) 14%,var(--surface))}}.bg-\[color-mix\(in_srgb\,var\(--exercise-correct\)_18\%\,var\(--surface\)\)\]{background-color:var(--exercise-correct)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--exercise-correct\)_18\%\,var\(--surface\)\)\]{background-color:color-mix(in srgb,var(--exercise-correct) 18%,var(--surface))}}.bg-\[color-mix\(in_srgb\,var\(--exercise-selected\)_12\%\,var\(--surface\)\)\]{background-color:var(--exercise-selected)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--exercise-selected\)_12\%\,var\(--surface\)\)\]{background-color:color-mix(in srgb,var(--exercise-selected) 12%,var(--surface))}}.bg-\[color-mix\(in_srgb\,var\(--exercise-selected\)_15\%\,var\(--surface\)\)\]{background-color:var(--exercise-selected)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--exercise-selected\)_15\%\,var\(--surface\)\)\]{background-color:color-mix(in srgb,var(--exercise-selected) 15%,var(--surface))}}.bg-\[color-mix\(in_srgb\,var\(--exercise-wrong\)_12\%\,var\(--surface\)\)\]{background-color:var(--exercise-wrong)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--exercise-wrong\)_12\%\,var\(--surface\)\)\]{background-color:color-mix(in srgb,var(--exercise-wrong) 12%,var(--surface))}}.bg-\[color-mix\(in_srgb\,var\(--matching-pair-color\)_18\%\,var\(--bg-surface\)\)\]{background-color:var(--matching-pair-color)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--matching-pair-color\)_18\%\,var\(--bg-surface\)\)\]{background-color:color-mix(in srgb,var(--matching-pair-color) 18%,var(--bg-surface))}}.bg-\[color-mix\(in_srgb\,var\(--success\)_14\%\,var\(--surface\)\)\]{background-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.bg-\[color-mix\(in_srgb\,var\(--success\)_14\%\,var\(--surface\)\)\]{background-color:color-mix(in srgb,var(--success) 14%,var(--surface))}}.bg-\[var\(--bg-elevated\)\]{background-color:var(--bg-elevated)}.bg-\[var\(--bg-overlay\)\]{background-color:var(--bg-overlay)}.bg-\[var\(--bg-primary\)\]{background-color:var(--bg-primary)}.bg-\[var\(--bg-surface\)\]{background-color:var(--bg-surface)}.bg-\[var\(--info-bg\)\]{background-color:var(--info-bg)}.bg-\[var\(--matching-correct-bg\)\]{background-color:var(--matching-correct-bg)}.bg-\[var\(--matching-error-bg\)\]{background-color:var(--matching-error-bg)}.bg-\[var\(--matching-side-a-bg\)\]{background-color:var(--matching-side-a-bg)}.bg-\[var\(--matching-side-b-bg\)\]{background-color:var(--matching-side-b-bg)}.bg-\[var\(--success-bg\)\]{background-color:var(--success-bg)}.bg-\[var\(--surface\)\]{background-color:var(--surface)}.bg-\[var\(--surface-2\)\]{background-color:var(--surface-2)}.bg-\[var\(--warning-bg\)\]{background-color:var(--warning-bg)}.bg-accent,.bg-accent\/5{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-accent\/5{background-color:color-mix(in oklab, var(--accent) 5%, transparent)}}.bg-background,.bg-bg-primary{background-color:var(--bg-primary)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-border{background-color:var(--border-primary)}.bg-card,.bg-card\/60{background-color:var(--bg-surface)}@supports (color:color-mix(in lab, red, red)){.bg-card\/60{background-color:color-mix(in oklab, var(--bg-surface) 60%, transparent)}}.bg-destructive{background-color:var(--error)}.bg-fg-muted\/30{background-color:var(--fg-muted)}@supports (color:color-mix(in lab, red, red)){.bg-fg-muted\/30{background-color:color-mix(in oklab, var(--fg-muted) 30%, transparent)}}.bg-muted{background-color:var(--bg-secondary)}.bg-popover{background-color:var(--bg-elevated)}.bg-primary,.bg-primary\/20{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--accent) 20%, transparent)}}.bg-secondary{background-color:var(--bg-secondary)}.bg-success{background-color:var(--success)}.bg-transparent{background-color:#0000}.bg-warning{background-color:var(--warning)}.bg-gradient-to-t{--tw-gradient-position:to top in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-bg-primary{--tw-gradient-from:var(--bg-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-transparent{--tw-gradient-to:transparent;--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.fill-\[var\(--star\,currentColor\)\]{fill:var(--star,currentColor)}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-0\.5{padding:calc(var(--spacing) * .5)}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.px-0{padding-inline:calc(var(--spacing) * 0)}.px-0\.5{padding-inline:calc(var(--spacing) * .5)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-3\.5{padding-inline:calc(var(--spacing) * 3.5)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-\[0\.4em\]{padding-inline:.4em}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-\[0\.1em\]{padding-block:.1em}.pt-0{padding-top:calc(var(--spacing) * 0)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-8{padding-left:calc(var(--spacing) * 8)}.pl-\[6px\]{padding-left:6px}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-middle{vertical-align:middle}.\[font-family\:var\(--font-sans\)\]{font-family:var(--font-sans)}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.75rem\]{font-size:.75rem}.text-\[0\.625rem\]{font-size:.625rem}.text-\[0\.6875rem\]{font-size:.6875rem}.text-\[0\.8125rem\]{font-size:.8125rem}.text-\[0\.9375rem\]{font-size:.9375rem}.text-\[1\.0625rem\]{font-size:1.0625rem}.leading-\[1\.3\]{--tw-leading:1.3;line-height:1.3}.leading-\[1\.8\]{--tw-leading:1.8;line-height:1.8}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.04em\]{--tw-tracking:.04em;letter-spacing:.04em}.tracking-\[0\.05em\]{--tw-tracking:.05em;letter-spacing:.05em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.\[overflow-wrap\:normal\]{overflow-wrap:normal}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.text-ellipsis{text-overflow:ellipsis}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.whitespace-pre-wrap{white-space:pre-wrap}.\[tab-size\:2\]{tab-size:2}.text-\[var\(--accent\)\]{color:var(--accent)}.text-\[var\(--accent-fg\)\]{color:var(--accent-fg)}.text-\[var\(--accent-text\)\]{color:var(--accent-text)}.text-\[var\(--danger\)\]{color:var(--danger)}.text-\[var\(--error\)\]{color:var(--error)}.text-\[var\(--exercise-correct\)\]{color:var(--exercise-correct)}.text-\[var\(--exercise-wrong\)\]{color:var(--exercise-wrong)}.text-\[var\(--fg\)\]{color:var(--fg)}.text-\[var\(--fg-muted\)\]{color:var(--fg-muted)}.text-\[var\(--fg-primary\)\]{color:var(--fg-primary)}.text-\[var\(--fg-secondary\)\]{color:var(--fg-secondary)}.text-\[var\(--info\)\]{color:var(--info)}.text-\[var\(--matching-correct-fg\)\]{color:var(--matching-correct-fg)}.text-\[var\(--matching-error-fg\)\]{color:var(--matching-error-fg)}.text-\[var\(--matching-side-a-fg\)\]{color:var(--matching-side-a-fg)}.text-\[var\(--matching-side-b-fg\)\]{color:var(--matching-side-b-fg)}.text-\[var\(--star\)\]{color:var(--star)}.text-\[var\(--success\)\]{color:var(--success)}.text-\[var\(--text-muted\)\]{color:var(--text-muted)}.text-\[var\(--warning\)\]{color:var(--warning)}.text-accent{color:var(--accent)}.text-accent-fg,.text-accent-foreground{color:var(--accent-fg)}.text-card-foreground{color:var(--fg-primary)}.text-destructive-foreground{color:var(--fg-inverse)}.text-fg-muted,.text-fg-muted\/40{color:var(--fg-muted)}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\/40{color:color-mix(in oklab, var(--fg-muted) 40%, transparent)}}.text-fg-muted\/60{color:var(--fg-muted)}@supports (color:color-mix(in lab, red, red)){.text-fg-muted\/60{color:color-mix(in oklab, var(--fg-muted) 60%, transparent)}}.text-fg-primary{color:var(--fg-primary)}.text-fg-secondary{color:var(--fg-secondary)}.text-foreground{color:var(--fg-primary)}.text-muted-foreground{color:var(--fg-muted)}.text-popover-foreground{color:var(--fg-primary)}.text-primary{color:var(--accent)}.text-primary-foreground{color:var(--accent-fg)}.text-red-600{color:var(--color-red-600)}.text-secondary-foreground{color:var(--fg-primary)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-\[var\(--accent\)\]{accent-color:var(--accent)}.accent-foreground{accent-color:var(--fg-primary)}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-85{opacity:.85}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[0_0_0_3px_color-mix\(in_srgb\,var\(--exercise-selected\)_30\%\,transparent\)\]{--tw-shadow:0 0 0 3px var(--tw-shadow-color,var(--exercise-selected))}@supports (color:color-mix(in lab, red, red)){.shadow-\[0_0_0_3px_color-mix\(in_srgb\,var\(--exercise-selected\)_30\%\,transparent\)\]{--tw-shadow:0 0 0 3px var(--tw-shadow-color,color-mix(in srgb,var(--exercise-selected) 30%,transparent))}}.shadow-\[0_0_0_3px_color-mix\(in_srgb\,var\(--exercise-selected\)_30\%\,transparent\)\]{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-\[var\(--shadow-elevated\)\]{--tw-shadow:var(--shadow-elevated);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring,.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-card{--tw-shadow-color:var(--bg-surface)}@supports (color:color-mix(in lab, red, red)){.shadow-card{--tw-shadow-color:color-mix(in oklab, var(--bg-surface) var(--tw-shadow-alpha), transparent)}}.ring-\[var\(--border-strong\)\]{--tw-ring-color:var(--border-strong)}.ring-offset-background{--tw-ring-offset-color:var(--bg-primary)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.sepia{--tw-sepia:sepia(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\[background\,border-color\]{transition-property:background,border-color;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.placeholder\:text-muted-foreground::placeholder{color:var(--fg-muted)}@media (hover:hover){.hover\:border-\[var\(--accent\)\]:hover{border-color:var(--accent)}.hover\:border-border:hover{border-color:var(--border-primary)}.hover\:bg-\[var\(--surface\)\]:hover{background-color:var(--surface)}.hover\:bg-\[var\(--surface-2\)\]:hover{background-color:var(--surface-2)}.hover\:bg-accent:hover{background-color:var(--accent)}.hover\:bg-accent-hover:hover{background-color:var(--accent-hover)}.hover\:bg-destructive\/80:hover{background-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/80:hover{background-color:color-mix(in oklab, var(--error) 80%, transparent)}}.hover\:bg-destructive\/90:hover{background-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--error) 90%, transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--bg-secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--bg-secondary) 50%, transparent)}}.hover\:bg-primary\/80:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--accent) 80%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--accent) 90%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--bg-secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--bg-secondary) 80%, transparent)}}.hover\:text-\[var\(--accent-text\)\]:hover{color:var(--accent-text)}.hover\:text-accent-foreground:hover{color:var(--accent-fg)}.hover\:text-fg-primary:hover,.hover\:text-foreground:hover{color:var(--fg-primary)}.hover\:no-underline:hover{text-decoration-line:none}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-100:hover{opacity:1}}.focus\:border-\[var\(--accent\)\]:focus{border-color:var(--accent)}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-fg)}.focus\:shadow-\[0_0_0_2px_color-mix\(in_srgb\,var\(--accent\)_30\%\,transparent\)\]:focus{--tw-shadow:0 0 0 2px var(--tw-shadow-color,var(--accent))}@supports (color:color-mix(in lab, red, red)){.focus\:shadow-\[0_0_0_2px_color-mix\(in_srgb\,var\(--accent\)_30\%\,transparent\)\]:focus{--tw-shadow:0 0 0 2px var(--tw-shadow-color,color-mix(in srgb,var(--accent) 30%,transparent))}}.focus\:shadow-\[0_0_0_2px_color-mix\(in_srgb\,var\(--accent\)_30\%\,transparent\)\]:focus{box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-1:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:ring-ring:focus{--tw-ring-color:var(--accent)}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.focus\:outline:focus{outline-style:var(--tw-outline-style);outline-width:1px}.focus\:outline-2:focus{outline-style:var(--tw-outline-style);outline-width:2px}.focus\:outline-offset-2:focus{outline-offset:2px}.focus\:outline-\[var\(--accent\)\]:focus{outline-color:var(--accent)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.focus-visible\:ring-1:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--accent)}.focus-visible\:outline-none:focus-visible{--tw-outline-style:none;outline-style:none}@media (hover:hover){.enabled\:hover\:bg-\[var\(--surface-2\)\]:enabled:hover{background-color:var(--surface-2)}.enabled\:hover\:text-\[var\(--accent-text\)\]:enabled:hover{color:var(--accent-text)}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-default:disabled{cursor:default}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-\[var\(--surface-2\)\]:disabled{background-color:var(--surface-2)}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-\[\.55\]:disabled{opacity:.55}.disabled\:opacity-\[0\.85\]:disabled{opacity:.85}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}@media (prefers-reduced-motion:no-preference){.motion-safe\:scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.motion-safe\:scale-\[1\.02\]{scale:1.02}.motion-safe\:animate-\[matching-flash_600ms_ease\]{animation:.6s matching-flash}.motion-safe\:animate-\[matching-pulse_0\.5s_ease-in-out_infinite_alternate\]{animation:.5s ease-in-out infinite alternate matching-pulse}.motion-safe\:animate-\[matching-shake_0\.2s_ease-in-out\]{animation:.2s ease-in-out matching-shake}.motion-safe\:transition-\[transform\,box-shadow\]{transition-property:transform,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.motion-safe\:duration-150{--tw-duration:.15s;transition-duration:.15s}}@media (prefers-reduced-motion:reduce){.motion-reduce\:animate-none{animation:none}.motion-reduce\:transition-none{transition-property:none}}@media (width>=600px){.min-\[600px\]\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.min-\[600px\]\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=40rem){.sm\:flex{display:flex}.sm\:inline{display:inline}.sm\:min-h-\[190px\]{min-height:190px}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-center{justify-content:center}.sm\:justify-end{justify-content:flex-end}.sm\:rounded-lg{border-radius:var(--radius-lg)}.sm\:text-left{text-align:left}}@media (width>=48rem){.md\:inline{display:inline}.md\:h-3{height:calc(var(--spacing) * 3)}.md\:w-3{width:calc(var(--spacing) * 3)}.md\:w-auto{width:auto}.md\:flex-none{flex:none}.md\:flex-row{flex-direction:row}.md\:justify-start{justify-content:flex-start}.md\:gap-1{gap:calc(var(--spacing) * 1)}.md\:gap-3{gap:calc(var(--spacing) * 3)}}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\]\:border-border tr{border-color:var(--border-primary)}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\>span\]\:line-clamp-1>span{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}:root,[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f5f7fb;--bg-surface:#fff;--bg-elevated:#f8fafc;--bg-overlay:#0f172a73;--fg-primary:#1a1a1a;--fg-secondary:#475569;--fg-muted:#64748b;--fg-inverse:#fff;--border-primary:#e2e8f0;--border-subtle:#eef2f7;--border-accent:#cbd5e1;--interactive-bg:#f1f5f9;--interactive-hover:#e2e8f0;--interactive-active:#cbd5e1;--interactive-disabled:#e2e8f0;--accent:#4f46e5;--accent-hover:#4338ca;--accent-fg:#fff;--accent-text:#4f46e5;--accent-subtle:#4f46e51a;--accent-rgb:79, 70, 229;--success:#15803d;--success-bg:#dcfce7;--error:#dc2626;--error-bg:#fee2e2;--warning:#b45309;--warning-bg:#fef3c7;--info:#1d4ed8;--info-bg:#dbeafe;--exercise-correct:#16a34a;--exercise-wrong:#dc2626;--exercise-selected:#4f46e5;--exercise-matched:#0d9488;--matching-side-a-bg:color-mix(in srgb, var(--info) 16%, var(--bg-surface));--matching-side-a-fg:var(--fg-primary);--matching-side-b-bg:color-mix(in srgb, var(--success) 16%, var(--bg-surface));--matching-side-b-fg:var(--fg-primary);--matching-paired-bg:color-mix(in srgb, var(--exercise-matched) 22%, var(--bg-surface));--matching-paired-fg:var(--fg-primary);--star:#f59e0b;--chart-1:#3b82f6;--chart-2:#8b5cf6;--chart-3:#ef4444;--chart-4:#10b981;--chart-5:#f59e0b;--chart-6:#6366f1;--shadow-card:0 1px 2px #0f172a0a, 0 8px 24px #0f172a0f;--shadow-elevated:0 4px 12px #0f172a14, 0 24px 48px #0f172a1a;--shadow-md:0 4px 12px #0f172a1a}[data-theme=dark]{--bg-primary:#0f0f10;--bg-secondary:#16161a;--bg-surface:#1c1c20;--bg-elevated:#232328;--bg-overlay:#0009;--fg-primary:#ececec;--fg-secondary:#cbd5e1;--fg-muted:#94a3b8;--fg-inverse:#0f0f10;--border-primary:#2a2a30;--border-subtle:#232328;--border-accent:#3a3a42;--interactive-bg:#232328;--interactive-hover:#2a2a30;--interactive-active:#3a3a42;--interactive-disabled:#232328;--accent:#818cf8;--accent-hover:#a5b4fc;--accent-fg:#1e1b4b;--accent-text:#818cf8;--accent-subtle:#818cf826;--accent-rgb:129, 140, 248;--success:#4ade80;--success-bg:#22c55e26;--error:#f87171;--error-bg:#ef444426;--warning:#fbbf24;--warning-bg:#f59e0b2e;--info:#60a5fa;--info-bg:#3b82f62e;--exercise-correct:#4ade80;--exercise-wrong:#f87171;--exercise-selected:#818cf8;--exercise-matched:#2dd4bf;--matching-side-a-bg:color-mix(in srgb, var(--info) 16%, var(--bg-surface));--matching-side-a-fg:var(--fg-primary);--matching-side-b-bg:color-mix(in srgb, var(--success) 16%, var(--bg-surface));--matching-side-b-fg:var(--fg-primary);--matching-paired-bg:color-mix(in srgb, var(--exercise-matched) 22%, var(--bg-surface));--matching-paired-fg:var(--fg-primary);--star:#fbbf24;--chart-1:#60a5fa;--chart-2:#a78bfa;--chart-3:#f87171;--chart-4:#34d399;--chart-5:#fbbf24;--chart-6:#818cf8;--shadow-card:0 1px 2px #0006, 0 8px 24px #00000073;--shadow-elevated:0 4px 12px #00000080, 0 24px 48px #0000008c;--shadow-md:0 4px 12px #00000073}[data-theme=ocean]{--bg-primary:#0b1f33;--bg-secondary:#0e2740;--bg-surface:#123150;--bg-elevated:#173a5e;--bg-overlay:#020c18a6;--fg-primary:#e6f0fa;--fg-secondary:#b8d2ea;--fg-muted:#8fb0cf;--fg-inverse:#0b1f33;--border-primary:#1d4368;--border-subtle:#163450;--border-accent:#2a5a86;--interactive-bg:#15395a;--interactive-hover:#1d4368;--interactive-active:#2a5a86;--interactive-disabled:#15395a;--accent:#38bdf8;--accent-hover:#7dd3fc;--accent-fg:#04263b;--accent-text:#38bdf8;--accent-subtle:#38bdf829;--accent-rgb:56, 189, 248;--success:#34d399;--success-bg:#10b98133;--error:#fb7185;--error-bg:#f43f5e33;--warning:#fbbf24;--warning-bg:#f59e0b33;--info:#60a5fa;--info-bg:#3b82f633;--exercise-correct:#34d399;--exercise-wrong:#fb7185;--exercise-selected:#38bdf8;--exercise-matched:#2dd4bf;--matching-side-a-bg:color-mix(in srgb, var(--info) 16%, var(--bg-surface));--matching-side-a-fg:var(--fg-primary);--matching-side-b-bg:color-mix(in srgb, var(--success) 16%, var(--bg-surface));--matching-side-b-fg:var(--fg-primary);--matching-paired-bg:color-mix(in srgb, var(--exercise-matched) 22%, var(--bg-surface));--matching-paired-fg:var(--fg-primary);--star:#fbbf24;--chart-1:#38bdf8;--chart-2:#818cf8;--chart-3:#fb7185;--chart-4:#34d399;--chart-5:#fbbf24;--chart-6:#22d3ee;--shadow-card:0 1px 2px #00000073, 0 8px 24px #00000080;--shadow-elevated:0 4px 12px #0000008c, 0 24px 48px #0009;--shadow-md:0 4px 12px #00000080}[data-theme=forest]{--bg-primary:#14201a;--bg-secondary:#1a2a22;--bg-surface:#1f322a;--bg-elevated:#263d33;--bg-overlay:#08100ca6;--fg-primary:#eef3ec;--fg-secondary:#cad8c5;--fg-muted:#a3b89d;--fg-inverse:#14201a;--border-primary:#2c4438;--border-subtle:#223529;--border-accent:#3c5c4a;--interactive-bg:#233a2e;--interactive-hover:#2c4438;--interactive-active:#3c5c4a;--interactive-disabled:#233a2e;--accent:#e0a458;--accent-hover:#eab676;--accent-fg:#2a1c08;--accent-text:#e0a458;--accent-subtle:#e0a45829;--accent-rgb:224, 164, 88;--success:#86efac;--success-bg:#22c55e33;--error:#fca5a5;--error-bg:#ef444433;--warning:#fcd34d;--warning-bg:#f59e0b33;--info:#93c5fd;--info-bg:#3b82f633;--exercise-correct:#86efac;--exercise-wrong:#fca5a5;--exercise-selected:#e0a458;--exercise-matched:#5eead4;--matching-side-a-bg:color-mix(in srgb, var(--info) 16%, var(--bg-surface));--matching-side-a-fg:var(--fg-primary);--matching-side-b-bg:color-mix(in srgb, var(--success) 16%, var(--bg-surface));--matching-side-b-fg:var(--fg-primary);--matching-paired-bg:color-mix(in srgb, var(--exercise-matched) 22%, var(--bg-surface));--matching-paired-fg:var(--fg-primary);--star:#fcd34d;--chart-1:#84cc16;--chart-2:#e0a458;--chart-3:#fca5a5;--chart-4:#86efac;--chart-5:#fcd34d;--chart-6:#5eead4;--shadow-card:0 1px 2px #00000073, 0 8px 24px #00000080;--shadow-elevated:0 4px 12px #0000008c, 0 24px 48px #0009;--shadow-md:0 4px 12px #00000080}[data-theme=high-contrast]{--bg-primary:#000;--bg-secondary:#000;--bg-surface:#0a0a0a;--bg-elevated:#141414;--bg-overlay:#000000d9;--fg-primary:#fff;--fg-secondary:#fff;--fg-muted:#e6e6e6;--fg-inverse:#000;--border-primary:#fff;--border-subtle:#b3b3b3;--border-accent:#ff0;--interactive-bg:#1a1a1a;--interactive-hover:#333;--interactive-active:#4d4d4d;--interactive-disabled:#1a1a1a;--accent:#ff0;--accent-hover:#ff6;--accent-fg:#000;--accent-text:#ff0;--accent-subtle:#ff03;--accent-rgb:255, 255, 0;--success:#00ff7f;--success-bg:#00ff7f33;--error:#ff6b6b;--error-bg:#ff000040;--warning:#ffd400;--warning-bg:#ffd40033;--info:#66d9ff;--info-bg:#66d9ff33;--exercise-correct:#00ff7f;--exercise-wrong:#ff6b6b;--exercise-selected:#ff0;--exercise-matched:#0ff;--matching-side-a-bg:color-mix(in srgb, var(--info) 16%, var(--bg-surface));--matching-side-a-fg:var(--fg-primary);--matching-side-b-bg:color-mix(in srgb, var(--success) 16%, var(--bg-surface));--matching-side-b-fg:var(--fg-primary);--matching-paired-bg:color-mix(in srgb, var(--exercise-matched) 22%, var(--bg-surface));--matching-paired-fg:var(--fg-primary);--star:#ffd400;--chart-1:#66d9ff;--chart-2:#f6f;--chart-3:#ff6b6b;--chart-4:#00ff7f;--chart-5:#ffd400;--chart-6:#fff;--shadow-card:0 0 0 1px #fff;--shadow-elevated:0 0 0 2px #fff;--shadow-md:0 0 0 1px #fff}[data-theme=sepia]{--bg-primary:#f4ecd8;--bg-secondary:#ece2c9;--bg-surface:#faf3e0;--bg-elevated:#fff8e8;--bg-overlay:#3c2d1973;--fg-primary:#3b2f1e;--fg-secondary:#5c4a33;--fg-muted:#6a5a40;--fg-inverse:#faf3e0;--border-primary:#d8c9a8;--border-subtle:#e6dcc2;--border-accent:#c2ad82;--interactive-bg:#ece2c9;--interactive-hover:#e0d4b6;--interactive-active:#d2c29c;--interactive-disabled:#ece2c9;--accent:#9a5b2d;--accent-hover:#7e4a24;--accent-fg:#faf3e0;--accent-text:#9a5b2d;--accent-subtle:#9a5b2d1f;--accent-rgb:154, 91, 45;--success:#4f6f25;--success-bg:#e3ead0;--error:#993325;--error-bg:#f0dcd4;--warning:#8a5e16;--warning-bg:#f2e6c8;--info:#355283;--info-bg:#dce5f0;--exercise-correct:#4f6f25;--exercise-wrong:#993325;--exercise-selected:#9a5b2d;--exercise-matched:#2d7d6e;--matching-side-a-bg:color-mix(in srgb, var(--info) 16%, var(--bg-surface));--matching-side-a-fg:var(--fg-primary);--matching-side-b-bg:color-mix(in srgb, var(--success) 16%, var(--bg-surface));--matching-side-b-fg:var(--fg-primary);--matching-paired-bg:color-mix(in srgb, var(--exercise-matched) 22%, var(--bg-surface));--matching-paired-fg:var(--fg-primary);--star:#b8860b;--chart-1:#355283;--chart-2:#6b4f8c;--chart-3:#993325;--chart-4:#4f6f25;--chart-5:#8a5e16;--chart-6:#2d7d6e;--shadow-card:0 1px 2px #503c1e14, 0 8px 24px #503c1e1a;--shadow-elevated:0 4px 12px #503c1e1f, 0 24px 48px #503c1e24;--shadow-md:0 4px 12px #503c1e1f}[data-theme=catppuccin-latte]{--bg-primary:#eff1f5;--bg-secondary:#ccd0da;--bg-surface:#fff;--bg-elevated:#ccd0da;--bg-overlay:#00000073;--fg-primary:#4c4f69;--fg-secondary:#555870;--fg-muted:#67697e;--fg-inverse:#fff;--border-primary:#bcc0cc;--border-subtle:#d6d8e0;--border-accent:#a6a9b8;--interactive-bg:#e5e7ed;--interactive-hover:#dfe1e7;--interactive-active:#d5d7df;--interactive-disabled:#ccd0da;--accent:#8839ef;--accent-hover:#7531ce;--accent-fg:#fff;--accent-text:#8839ef;--accent-subtle:#8839ef1f;--accent-rgb:136, 57, 239;--success:#147a3a;--success-bg:#147a3a26;--error:#d20f39;--error-bg:#d20f3926;--warning:#ab4f09;--warning-bg:#ab4f0926;--info:#1d4ed8;--info-bg:#1d4ed826;--exercise-correct:#147a3a;--exercise-wrong:#d20f39;--exercise-selected:#8839ef;--exercise-matched:#0d9488;--matching-side-a-bg:color-mix(in srgb, var(--info) 16%, var(--bg-surface));--matching-side-a-fg:var(--fg-primary);--matching-side-b-bg:color-mix(in srgb, var(--success) 16%, var(--bg-surface));--matching-side-b-fg:var(--fg-primary);--matching-paired-bg:color-mix(in srgb, var(--exercise-matched) 22%, var(--bg-surface));--matching-paired-fg:var(--fg-primary);--star:#d97706;--chart-1:#8839ef;--chart-2:#04a5e5;--chart-3:#40a02b;--chart-4:#fe640b;--chart-5:#dc8a78;--chart-6:#8839ef;--shadow-card:0 1px 2px #0000000a, 0 8px 24px #0000000f;--shadow-elevated:0 4px 12px #0000000f, 0 24px 48px #00000014;--shadow-md:0 4px 12px #00000012}[data-theme=supabase]{--bg-primary:#fcfcfc;--bg-secondary:#fdfdfd;--bg-surface:#fcfcfc;--bg-elevated:#f4f4f4;--bg-overlay:#00000073;--fg-primary:#171717;--fg-secondary:#1a1a1a;--fg-muted:#202020;--fg-inverse:#fff;--border-primary:#dfdfdf;--border-subtle:#eee;--border-accent:#b7b7b7;--interactive-bg:#eee;--interactive-hover:#e5e5e5;--interactive-active:#d7d7d7;--interactive-disabled:#fdfdfd;--accent:#72e3ad;--accent-hover:#62c395;--accent-fg:#0a0a0a;--accent-text:#3f7d5f;--accent-subtle:#72e3ad1f;--accent-rgb:114, 227, 173;--success:#15803d;--success-bg:#15803d26;--error:#ca3214;--error-bg:#ca321426;--warning:#b45309;--warning-bg:#b4530926;--info:#1d4ed8;--info-bg:#1d4ed826;--exercise-correct:#15803d;--exercise-wrong:#ca3214;--exercise-selected:#72e3ad;--exercise-matched:#0d9488;--matching-side-a-bg:color-mix(in srgb, var(--info) 16%, var(--bg-surface));--matching-side-a-fg:var(--fg-primary);--matching-side-b-bg:color-mix(in srgb, var(--success) 16%, var(--bg-surface));--matching-side-b-fg:var(--fg-primary);--matching-paired-bg:color-mix(in srgb, var(--exercise-matched) 22%, var(--bg-surface));--matching-paired-fg:var(--fg-primary);--star:#d97706;--chart-1:#72e3ad;--chart-2:#3b82f6;--chart-3:#8b5cf6;--chart-4:#f59e0b;--chart-5:#10b981;--chart-6:#72e3ad;--shadow-card:0 1px 2px #0000000a, 0 8px 24px #0000000f;--shadow-elevated:0 4px 12px #0000000f, 0 24px 48px #00000014;--shadow-md:0 4px 12px #00000012}[data-theme=graphite]{--bg-primary:#f0f0f0;--bg-secondary:#e0e0e0;--bg-surface:#f5f5f5;--bg-elevated:#f5f5f5;--bg-overlay:#00000073;--fg-primary:#333;--fg-secondary:#454545;--fg-muted:#666;--fg-inverse:#fff;--border-primary:#d0d0d0;--border-subtle:#e0e0e0;--border-accent:#b1b1b1;--interactive-bg:#e5e5e5;--interactive-hover:#ddd;--interactive-active:#d2d2d2;--interactive-disabled:#e0e0e0;--accent:#606060;--accent-hover:#535353;--accent-fg:#fff;--accent-text:#606060;--accent-subtle:#6060601f;--accent-rgb:96, 96, 96;--success:#147a3a;--success-bg:#147a3a26;--error:#c33;--error-bg:#cc333326;--warning:#ab4f09;--warning-bg:#ab4f0926;--info:#1d4ed8;--info-bg:#1d4ed826;--exercise-correct:#147a3a;--exercise-wrong:#c33;--exercise-selected:#606060;--exercise-matched:#0d9488;--matching-side-a-bg:color-mix(in srgb, var(--info) 16%, var(--bg-surface));--matching-side-a-fg:var(--fg-primary);--matching-side-b-bg:color-mix(in srgb, var(--success) 16%, var(--bg-surface));--matching-side-b-fg:var(--fg-primary);--matching-paired-bg:color-mix(in srgb, var(--exercise-matched) 22%, var(--bg-surface));--matching-paired-fg:var(--fg-primary);--star:#d97706;--chart-1:#606060;--chart-2:#476666;--chart-3:#909090;--chart-4:#a8a8a8;--chart-5:silver;--chart-6:#606060;--shadow-card:0 1px 2px #0000000a, 0 8px 24px #0000000f;--shadow-elevated:0 4px 12px #0000000f, 0 24px 48px #00000014;--shadow-md:0 4px 12px #00000012}[data-theme=catppuccin-mocha]{--bg-primary:#181825;--bg-secondary:#585b70;--bg-surface:#1e1e2e;--bg-elevated:#313244;--bg-overlay:#0009;--fg-primary:#cdd6f4;--fg-secondary:#bfc8e5;--fg-muted:#a6adc8;--fg-inverse:#0a0a0a;--border-primary:#313244;--border-subtle:#242534;--border-accent:#505367;--interactive-bg:#232331;--interactive-hover:#2a2b3a;--interactive-active:#353646;--interactive-disabled:#585b70;--accent:#cba6f7;--accent-hover:#d2b2f8;--accent-fg:#0a0a0a;--accent-text:#cba6f7;--accent-subtle:#cba6f71f;--accent-rgb:203, 166, 247;--success:#4ade80;--success-bg:#4ade8026;--error:#f38ba8;--error-bg:#f38ba826;--warning:#fbbf24;--warning-bg:#fbbf2426;--info:#60a5fa;--info-bg:#60a5fa26;--exercise-correct:#4ade80;--exercise-wrong:#f38ba8;--exercise-selected:#cba6f7;--exercise-matched:#2dd4bf;--matching-side-a-bg:color-mix(in srgb, var(--info) 16%, var(--bg-surface));--matching-side-a-fg:var(--fg-primary);--matching-side-b-bg:color-mix(in srgb, var(--success) 16%, var(--bg-surface));--matching-side-b-fg:var(--fg-primary);--matching-paired-bg:color-mix(in srgb, var(--exercise-matched) 22%, var(--bg-surface));--matching-paired-fg:var(--fg-primary);--star:#fbbf24;--chart-1:#cba6f7;--chart-2:#89dceb;--chart-3:#a6e3a1;--chart-4:#fab387;--chart-5:#f5e0dc;--chart-6:#cba6f7;--shadow-card:0 1px 2px #00000059, 0 8px 24px #00000080;--shadow-elevated:0 4px 12px #00000080, 0 24px 48px #000000b3;--shadow-md:0 4px 12px #0000008c}[data-theme=soft-pop]{--bg-primary:#000;--bg-secondary:#121821;--bg-surface:#1a212b;--bg-elevated:#1a212b;--bg-overlay:#0009;--fg-primary:#fff;--fg-secondary:#ededed;--fg-muted:#ccc;--fg-inverse:#0a0a0a;--border-primary:#545454;--border-subtle:#2a2a2a;--border-accent:#767676;--interactive-bg:#0f0f0f;--interactive-hover:#1a1a1a;--interactive-active:#292929;--interactive-disabled:#2dd4bf;--accent:#818cf8;--accent-hover:#939cf9;--accent-fg:#0a0a0a;--accent-text:#818cf8;--accent-subtle:#818cf81f;--accent-rgb:129, 140, 248;--success:#4ade80;--success-bg:#4ade8026;--error:#f87171;--error-bg:#f8717126;--warning:#fbbf24;--warning-bg:#fbbf2426;--info:#60a5fa;--info-bg:#60a5fa26;--exercise-correct:#4ade80;--exercise-wrong:#f87171;--exercise-selected:#818cf8;--exercise-matched:#2dd4bf;--matching-side-a-bg:color-mix(in srgb, var(--info) 16%, var(--bg-surface));--matching-side-a-fg:var(--fg-primary);--matching-side-b-bg:color-mix(in srgb, var(--success) 16%, var(--bg-surface));--matching-side-b-fg:var(--fg-primary);--matching-paired-bg:color-mix(in srgb, var(--exercise-matched) 22%, var(--bg-surface));--matching-paired-fg:var(--fg-primary);--star:#fbbf24;--chart-1:#818cf8;--chart-2:#2dd4bf;--chart-3:#fcd34d;--chart-4:#f472b6;--chart-5:#4ade80;--chart-6:#818cf8;--shadow-card:0 1px 2px #00000059, 0 8px 24px #00000080;--shadow-elevated:0 4px 12px #00000080, 0 24px 48px #000000b3;--shadow-md:0 4px 12px #0000008c}[data-theme=amethyst-haze]{--bg-primary:#1a1823;--bg-secondary:#5a5370;--bg-surface:#232030;--bg-elevated:#232030;--bg-overlay:#0009;--fg-primary:#e0ddef;--fg-secondary:#cac6d8;--fg-muted:#a09aad;--fg-inverse:#0a0a0a;--border-primary:#302c40;--border-subtle:#252232;--border-accent:#534f63;--interactive-bg:#26242f;--interactive-hover:#2e2c37;--interactive-active:#3a3844;--interactive-disabled:#5a5370;--accent:#a995c9;--accent-hover:#b5a4d1;--accent-fg:#0a0a0a;--accent-text:#a995c9;--accent-subtle:#a995c91f;--accent-rgb:169, 149, 201;--success:#4ade80;--success-bg:#4ade8026;--error:#e57373;--error-bg:#e5737326;--warning:#fbbf24;--warning-bg:#fbbf2426;--info:#60a5fa;--info-bg:#60a5fa26;--exercise-correct:#4ade80;--exercise-wrong:#e57373;--exercise-selected:#a995c9;--exercise-matched:#2dd4bf;--matching-side-a-bg:color-mix(in srgb, var(--info) 16%, var(--bg-surface));--matching-side-a-fg:var(--fg-primary);--matching-side-b-bg:color-mix(in srgb, var(--success) 16%, var(--bg-surface));--matching-side-b-fg:var(--fg-primary);--matching-paired-bg:color-mix(in srgb, var(--exercise-matched) 22%, var(--bg-surface));--matching-paired-fg:var(--fg-primary);--star:#fbbf24;--chart-1:#a995c9;--chart-2:#f2b8c6;--chart-3:#77b8a1;--chart-4:#f0c88d;--chart-5:#a0bbe3;--chart-6:#a995c9;--shadow-card:0 1px 2px #00000059, 0 8px 24px #00000080;--shadow-elevated:0 4px 12px #00000080, 0 24px 48px #000000b3;--shadow-md:0 4px 12px #0000008c}:root{--method-deductive:#3b82f6;--method-inductive:#8b5cf6;--method-error_based:#ef4444;--method-dialogic:#10b981;--method-contextual:#f59e0b;--method-ai_adaptive:#6366f1;--matching-pair-1:#3b82f6;--matching-pair-2:#22c55e;--matching-pair-3:#06b6d4;--matching-pair-4:#a855f7;--matching-pair-5:#14b8a6;--matching-pair-6:#eab308;--matching-pair-7:#ec4899;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-8:3rem;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-1:var(--radius-sm);--radius-2:var(--radius-md);--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--bg:var(--bg-primary);--bg-alt:var(--bg-secondary);--surface:var(--bg-surface);--surface-2:var(--bg-elevated);--surface-3:var(--interactive-active);--border:var(--border-primary);--border-strong:var(--border-accent);--fg:var(--fg-primary);--fg-inverted:var(--fg-inverse);--text:var(--fg-primary);--text-muted:var(--fg-muted);--muted:var(--fg-muted);--danger:var(--error);--danger-fg:#fff;--matching-correct-bg:color-mix(in srgb, var(--exercise-correct) 22%, var(--bg-surface));--matching-correct-fg:var(--fg-primary);--matching-error-bg:color-mix(in srgb, var(--exercise-wrong) 22%, var(--bg-surface));--matching-error-fg:var(--fg-primary);--mark-bg:#f59e0b4d;--mark-swatch-bg:#f59e0b66;--code-keyword:#8b5cf6;--code-string:#10b981;--code-number:#f59e0b;--code-comment:#94a3b8;--code-function:#3b82f6;--code-tag:#ef4444;--code-attr:#6366f1;--code-meta:#64748b}*{box-sizing:border-box}html,body,#root{background:var(--bg);height:100%;color:var(--fg);font-family:var(--font-sans);margin:0;padding:0}#root{overflow:hidden auto}html,body{max-width:100vw;overflow:hidden}img,video,canvas{max-width:100%;height:auto}svg{max-width:100%}pre{max-width:100%;overflow-x:auto}code{overflow-wrap:break-word;overflow-wrap:break-word}.code-block{border:1px solid var(--border);background:var(--surface-2);border-radius:8px;margin:.75rem 0;overflow:hidden}.code-block-head{background:var(--surface-3);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding:.25rem .5rem;display:flex}.code-block-lang{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.75rem}.code-block-head .code-block-copy{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:.25rem;margin-left:auto;padding:.15rem .35rem;display:inline-flex}.code-block-head .code-block-copy:hover{color:var(--accent)}.code-block-pre{margin:0;padding:.6rem .75rem;overflow-x:auto}.code-block-pre code{white-space:pre;overflow-wrap:normal;font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:.85rem}.code-block-output{border-top:1px solid var(--border);background:var(--surface);padding:.4rem .75rem}.code-block-output-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.2rem;font-size:.72rem;display:block}.code-block-output pre{margin:0;font-family:ui-monospace,Cascadia Code,Fira Code,monospace;font-size:.82rem;overflow-x:auto}.cloze-sentence-code{font-family:ui-monospace,Cascadia Code,Fira Code,monospace}a:not([data-slot=button]):not(.btn){color:var(--accent);text-decoration:none}a:not([data-slot=button]):not(.btn):hover{text-decoration:underline}[hidden]{display:none!important}:where(a,button,input,select,textarea,summary,[tabindex],[role=button],[role=tab],[role=radio],[role=link]):focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-to-content{z-index:1000;background:var(--accent);color:var(--accent-fg);border-radius:var(--radius-md);padding:8px 16px;font-weight:600;text-decoration:none;transition:top .15s ease-in-out;position:absolute;top:-100px;left:8px}.skip-to-content:focus,.skip-to-content:focus-visible{outline:3px solid var(--fg);outline-offset:2px;top:8px}@media (prefers-reduced-motion:reduce){.skip-to-content{transition:none}}@media (forced-colors:active){.skip-to-content{color:linktext;background:canvas;border:2px solid canvastext}.skip-to-content:focus,.skip-to-content:focus-visible{outline:3px solid highlight}}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.55}input,textarea,select{color:var(--fg);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-family:inherit;font-size:1rem}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);color:var(--fg-primary);border:1px solid #0000;font-size:1rem;font-weight:500;text-decoration:none;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.btn-primary{background:var(--accent);color:var(--accent-fg)}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-secondary{color:var(--fg);border-color:var(--border-strong);background:0 0}.btn-secondary:hover:not(:disabled){background:var(--surface-2)}.btn-danger{background:var(--danger);color:var(--danger-fg)}.btn-danger:hover:not(:disabled){filter:brightness(1.08)}.landing-page{max-width:40rem;min-height:100%;padding:var(--space-8) var(--space-5);text-align:center;align-items:center;gap:var(--space-6);flex-direction:column;margin:0 auto;display:flex}.landing-brand{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.landing-logo{border-radius:var(--radius-lg)}.landing-title{letter-spacing:-.02em;margin:0;font-size:2.25rem;font-weight:700}.landing-subtitle{color:var(--fg-muted);margin:0;font-size:1.125rem}.landing-intro{color:var(--fg-muted);max-width:36rem;font-size:1rem}.landing-intro p{margin:0;line-height:1.55}.landing-lang{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.landing-lang-label{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.875rem}.landing-lang-options{gap:var(--space-2);display:flex}.landing-lang-btn{min-width:3rem;padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--fg);font-size:.9rem;font-weight:500}.landing-lang-btn:hover{background:var(--surface-2)}.landing-lang-btn.is-active{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.landing-cta{background:var(--accent);color:var(--accent-fg);border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);box-shadow:var(--shadow-card);border:none;font-size:1.125rem;font-weight:500}.landing-cta:hover:not(:disabled){background:var(--accent-hover)}.landing-secondary{margin-top:var(--space-4);text-align:center}.landing-secondary-link{color:var(--fg-muted);text-underline-offset:3px;font-size:.95rem;text-decoration:underline}.landing-secondary-link:hover{color:var(--accent)}.onboarding-page{max-width:38rem;padding:var(--space-6) var(--space-5);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}.onboarding-header-row{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.onboarding-header h1{letter-spacing:-.01em;margin:0;font-size:1.75rem;font-weight:700}.onboarding-skip-top{padding:var(--space-2) var(--space-4);flex-shrink:0;font-size:.9rem}.onboarding-intro{color:var(--fg-muted);margin:0;line-height:1.5}.onboarding-form{gap:var(--space-4);flex-direction:column;display:flex}.form-row{gap:var(--space-2);flex-direction:column;display:flex}.form-row-toggle{flex-direction:row;justify-content:space-between;align-items:center}.form-label-stack{flex-direction:column;gap:.125rem;display:flex}.form-label{font-size:.95rem;font-weight:500}.form-required{color:var(--danger);margin-left:var(--space-1)}.form-optional{color:var(--fg-muted);font-size:.85em;font-weight:400}.form-hint{color:var(--fg-muted);font-size:.85rem}.form-actions{gap:var(--space-3);margin-top:var(--space-4);justify-content:flex-end;display:flex}.assessment-page{max-width:42rem;padding:var(--space-6) var(--space-5);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}.assessment-page h1{margin:0 0 var(--space-2) 0;font-size:1.75rem}.assessment-progress{gap:var(--space-2);flex-direction:column;display:flex}.assessment-progress-caption{color:var(--fg-muted);margin:0;font-size:.85rem}.assessment-progress-bar{background:var(--surface-2);border-radius:999px;height:.5rem;overflow:hidden}.assessment-progress-fill{background:var(--accent);height:100%;transition:width .25s}.assessment-question-wrap{will-change:transform, opacity;touch-action:pan-y;transition:transform .2s ease-out,opacity .2s ease-out}.assessment-slide-left{animation:.2s ease-out assessment-slide-left}.assessment-slide-right{animation:.2s ease-out assessment-slide-right}@keyframes assessment-slide-left{0%{opacity:1;transform:translate(0)}50%{opacity:.6;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes assessment-slide-right{0%{opacity:1;transform:translate(0)}50%{opacity:.6;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.assessment-slide-left,.assessment-slide-right{animation:none}}.assessment-swipe-hint{margin:var(--space-3) 0 0 0;color:var(--text-muted);text-align:center;font-size:.875rem;font-style:italic;animation:6s ease-out forwards assessment-hint-fade}@keyframes assessment-hint-fade{0%{opacity:0}10%{opacity:1}85%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.assessment-swipe-hint{opacity:1;animation:none}}.question-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-card);gap:var(--space-4);flex-direction:column;display:flex}.question-text{margin:0;font-size:1.25rem;font-weight:600;line-height:1.4}.question-answers{gap:var(--space-2);flex-direction:column;display:flex}.answer-option{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--fg);text-align:left;width:100%;font-size:1rem;transition:background .15s,border-color .15s;display:flex}.answer-option:hover:not(:disabled){background:var(--surface-2);border-color:var(--accent)}.answer-option.is-selected{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface))}.answer-bullet{color:var(--accent);font-size:1rem;line-height:1.4}.answer-text{flex:1;line-height:1.4}.profile-dominant{align-items:center;gap:var(--space-2);margin:0;font-size:1.05rem;display:flex}.muted{color:var(--fg-muted)}.error-text{color:var(--danger)}.dashboard-page{max-width:76rem;padding:var(--space-6) var(--space-5);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}.dashboard-header h1{margin:0;font-size:1.75rem}.dashboard-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-card);gap:var(--space-3);flex-direction:column;min-width:0;display:flex}.dashboard-card-wide{grid-column:1/-1}.dashboard-card-title{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:1rem;font-weight:600}.quick-start-btn{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:linear-gradient(135deg, var(--accent), var(--accent-hover));color:var(--accent-fg);border-radius:var(--radius-lg);text-align:left;box-shadow:var(--shadow-card);border:none;width:100%;font-size:1rem;display:flex}.quick-start-title{flex:1;font-size:1.25rem;font-weight:600;display:block}.quick-start-subtitle{opacity:.85;flex:1;font-size:.875rem;display:block}.quick-start-btn .method-badge{margin-left:auto}.metric-tile{flex:1;align-items:center;display:flex}.metric-grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));width:100%;display:grid}.metric-grid-5{gap:var(--space-3);grid-template-columns:repeat(5,minmax(0,1fr));width:100%;display:grid}@media (width<=900px){.metric-grid-5{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=560px){.metric-grid-5{grid-template-columns:repeat(2,minmax(0,1fr))}}.metric-cell{gap:var(--space-1);flex-direction:column;display:flex}.metric-label{text-transform:uppercase;letter-spacing:.06em;color:var(--fg-muted);overflow-wrap:anywhere;font-size:.75rem}.metric-value{font-size:1.5rem;font-weight:700}.tile{background:var(--surface-2);border-radius:var(--radius-md);padding:var(--space-4);justify-content:center;align-items:center;min-height:120px;display:flex}.chart-tile{width:100%}.chart-summary{margin-top:var(--space-2);font-size:.85rem}.chart-summary-caption{margin:var(--space-2) 0 0;color:var(--fg-muted);font-style:italic}.chart-summary-details{margin-top:var(--space-2)}.chart-summary-details>summary{cursor:pointer;color:var(--fg-primary);-webkit-user-select:none;user-select:none;padding:var(--space-1) 0;font-weight:500}.chart-summary-details>summary:hover{color:var(--accent)}.chart-summary-details>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.step-eval-insights{gap:var(--space-3);flex-direction:column;display:flex}.step-eval-metrics{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.step-eval-metric{background:var(--surface-2);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);gap:var(--space-1);flex-direction:column;align-items:flex-start;display:flex}.step-eval-metric-value{color:var(--accent);font-size:1.4rem;font-weight:700;line-height:1.1}.step-eval-metric-label{color:var(--fg-muted);font-size:.85rem;line-height:1.3}.step-eval-stickiest{margin:0;font-size:.95rem}.tool-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.tool-card{background:var(--surface-2);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);gap:var(--space-2);flex-direction:column;display:flex}.tool-name{font-size:1rem;font-weight:600}.tool-why{color:var(--fg-muted);margin:0;font-size:.9rem;line-height:1.4}.tool-methods{gap:var(--space-2);flex-wrap:wrap;display:flex}.session-page{max-width:60rem;padding:var(--space-5);gap:var(--space-4);flex-direction:column;margin:0 auto;display:flex}.session-header{gap:var(--space-3);flex-direction:column;display:flex}.session-header-row{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.session-header-chips{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.provider-chip{padding:var(--space-1) var(--space-3);background:var(--surface-2);color:var(--fg-muted);border:1px solid var(--border);border-radius:999px;font-size:.8rem;font-weight:500}.session-header h1{margin:0;font-size:1.5rem}.session-header-topic{color:var(--fg-muted);margin:0;font-size:.95rem}.session-header-topic-label{margin-right:var(--space-1);font-weight:500}.cycle-progress{gap:var(--space-2);touch-action:pan-y;flex-direction:column;display:flex;position:relative}.cycle-peek-overlay{padding:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md,6px);box-shadow:var(--shadow-card);text-align:left;font:inherit;color:inherit;cursor:pointer;z-index:1;flex-direction:column;gap:.25rem;animation:.2s ease-out cycle-peek-fade;display:flex;position:absolute;inset:auto 0 -8px;transform:translateY(100%)}.cycle-peek-step{font-size:.95rem}.cycle-peek-description{color:var(--text-muted);font-size:.875rem}@keyframes cycle-peek-fade{0%{opacity:0;transform:translateY(110%)}to{opacity:1;transform:translateY(100%)}}@media (prefers-reduced-motion:reduce){.cycle-peek-overlay{animation:none}}.cycle-caption{color:var(--fg-muted);margin:0;font-size:.85rem}.cycle-steps{gap:var(--space-1);grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.cycle-step{align-items:center;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--fg-muted);flex-direction:column;font-size:.75rem;transition:background .15s,border-color .15s;display:flex}.cycle-step.is-complete{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--fg)}.cycle-step.is-current{border-color:var(--accent);background:var(--accent);color:var(--accent-fg);transition:background .25s,color .25s,border-color .25s}@keyframes cycle-pulse{0%{box-shadow:0 0 0 0 var(--accent);transform:scale(1)}40%{transform:scale(1.06);box-shadow:0 0 0 6px #0000}to{transform:scale(1);box-shadow:0 0 #0000}}.cycle-step.is-just-advanced{animation:.8s ease-out cycle-pulse}@media (prefers-reduced-motion:reduce){.cycle-step.is-just-advanced{animation:none}.cycle-step.is-current{transition:none}}.qr-viewfinder{pointer-events:none;position:absolute;inset:0}.qr-viewfinder-cutout{aspect-ratio:1;border-radius:12px;width:60%;max-width:240px;max-height:240px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.qr-viewfinder-corner{border:0 solid #fffffff2;width:32px;height:32px;position:absolute}.qr-viewfinder-corner.is-tl{border-top-width:4px;border-left-width:4px;border-top-left-radius:12px;top:0;left:0}.qr-viewfinder-corner.is-tr{border-top-width:4px;border-right-width:4px;border-top-right-radius:12px;top:0;right:0}.qr-viewfinder-corner.is-bl{border-bottom-width:4px;border-left-width:4px;border-bottom-left-radius:12px;bottom:0;left:0}.qr-viewfinder-corner.is-br{border-bottom-width:4px;border-right-width:4px;border-bottom-right-radius:12px;bottom:0;right:0}.qr-viewfinder-scanline{background:linear-gradient(90deg, transparent, rgba(var(--accent-rgb,99, 102, 241), .95), transparent);height:2px;animation:1.8s ease-in-out infinite qr-scanline;position:absolute;top:12%;left:8%;right:8%}@keyframes qr-scanline{0%,to{opacity:.4;top:12%}50%{opacity:1;top:78%}}.qr-success-checkmark{color:var(--success);font-size:3rem;animation:.32s ease-out qr-success-pop;display:inline-block}@keyframes qr-success-pop{0%{opacity:0;transform:scale(0)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.qr-viewfinder-scanline{opacity:.6;animation:none;top:50%}.qr-success-checkmark{animation:none}}.cycle-evaluation-reason{margin:var(--space-1) 0 var(--space-3) 0;color:var(--fg-muted);font-size:.85rem;font-style:italic;line-height:1.4}.cycle-step-index{font-size:.85rem;font-weight:600}.cycle-step-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}@media (width<=720px){.cycle-steps{grid-template-columns:repeat(4,minmax(0,1fr))}.cycle-step-label{display:none}}.session-chat{gap:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-card);flex-direction:column;display:flex}.chat-messages{gap:var(--space-2);max-height:50vh;padding-right:var(--space-2);flex-direction:column;display:flex;overflow-y:auto}.chat-message{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-2);max-width:90%}.chat-message.is-user{background:var(--accent);color:var(--accent-fg);align-self:flex-end}.chat-message.is-assistant{background:var(--surface-2);align-self:flex-start}.chat-message.is-system{background:color-mix(in srgb, var(--accent) 8%, var(--surface));color:var(--fg-muted);align-self:stretch;font-size:.9rem}.chat-message-content{white-space:pre-wrap;margin:0;font-family:inherit;font-size:1rem;line-height:1.5}.chat-message-content-markdown{white-space:normal;font-family:inherit;font-size:1rem;line-height:1.55}.chat-message-content-markdown p{margin:0 0 var(--space-2)}.chat-message-content-markdown p:last-child{margin-bottom:0}.chat-message-content-markdown h1,.chat-message-content-markdown h2,.chat-message-content-markdown h3,.chat-message-content-markdown h4{margin:var(--space-3) 0 var(--space-2);line-height:1.3}.chat-message-content-markdown h1{font-size:1.25rem}.chat-message-content-markdown h2{font-size:1.15rem}.chat-message-content-markdown h3{font-size:1.05rem}.chat-message-content-markdown h4{font-size:1rem;font-weight:600}.chat-message-content-markdown ul,.chat-message-content-markdown ol{margin:0 0 var(--space-2);padding-left:1.5rem}.chat-message-content-markdown li{margin-bottom:2px}.chat-message-content-markdown code{background:color-mix(in srgb, var(--fg) 6%, var(--surface));font-family:var(--font-mono);border-radius:3px;padding:1px 6px;font-size:.92em}.chat-message-content-markdown pre{margin:var(--space-2) 0;padding:var(--space-3);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--fg) 6%, var(--surface));overflow-x:auto}.chat-message-content-markdown pre code{background:0 0;padding:0;font-size:.92em}.chat-message-content-markdown blockquote{margin:var(--space-2) 0;padding:var(--space-1) var(--space-3);border-left:3px solid var(--border-strong);color:var(--fg-muted)}.chat-message-content-markdown a{color:var(--accent);text-decoration:underline}.chat-message-content-markdown strong{font-weight:600}.chat-message-content-markdown .chat-message-table-wrapper{max-width:100%;margin:var(--space-2) 0;overflow-x:auto}.chat-message-content-markdown table{border-collapse:collapse;min-width:100%;font-size:.92em}.chat-message-content-markdown th,.chat-message-content-markdown td{border:1px solid var(--border);text-align:left;padding:6px 10px}.chat-message-content-markdown th{background:var(--surface-2);font-weight:600}.chat-message-content-markdown>.chat-message-cursor{vertical-align:baseline;margin-left:2px;display:inline-block}.chat-input-row{gap:var(--space-3);align-items:flex-end;display:flex}.chat-input-row textarea{resize:vertical;flex:1;min-height:3rem}.method-switch-banner{gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb, var(--warning) 18%, var(--surface));border:1px solid var(--warning);flex-direction:column;display:flex}.method-switch-banner-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.method-switch-banner-body{color:var(--fg);margin:0}.method-switch-actions{gap:var(--space-3);justify-content:flex-end;display:flex}.modal-overlay{background:var(--bg-overlay);z-index:1000;padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-elevated);gap:var(--space-4);flex-direction:column;width:100%;max-width:32rem;display:flex}.modal-title{margin:0;font-size:1.25rem;font-weight:600}.rating-form{gap:var(--space-4);flex-direction:column;display:flex}.rating-value{margin-left:var(--space-2);color:var(--fg-muted);font-weight:400}.rating-row{gap:var(--space-2);flex-direction:column;display:flex}.rating-row-label{align-items:baseline;gap:var(--space-2);display:flex}.rating-buttons{gap:var(--space-2);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.rating-button{border:1px solid var(--border-strong);color:var(--fg);border-radius:var(--radius-md);padding:var(--space-3) var(--space-2);cursor:pointer;background:0 0;min-height:44px;font-size:1.1rem;font-weight:600;transition:background .12s,color .12s,border-color .12s}.rating-button:hover:not(:disabled){background:var(--surface-2)}.rating-button.is-active{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.rating-button:disabled{opacity:.5;cursor:not-allowed}.settings-page{max-width:48rem;padding:var(--space-6) var(--space-5);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}.mode-cards{gap:var(--space-3);flex-wrap:wrap;display:flex}.mode-card{gap:var(--space-3);padding:var(--space-3) var(--space-4);border:2px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);flex:14rem;align-items:flex-start;display:flex}.mode-card.is-active{border-color:var(--accent)}.mode-card.is-disabled{opacity:.6;cursor:not-allowed}.mode-card-icon{color:var(--accent);flex:none;display:flex}.mode-card.is-disabled .mode-card-icon{color:var(--fg-muted)}.mode-card-text{flex-direction:column;gap:4px;display:flex}.mode-card-title{align-items:center;gap:var(--space-2);font-weight:600;display:flex}.mode-card-badge{border-radius:var(--radius-sm);background:var(--surface);color:var(--fg-muted);text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;font-size:.7rem;font-weight:600}.mode-card-desc{color:var(--fg-muted);font-size:.85rem}.daily-missions{position:relative}.mission-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.mission-row{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-2);border-radius:var(--radius-md);display:flex}.mission-row[data-completed=true] .mission-title{color:var(--fg-muted);text-decoration:line-through}.mission-icon{color:var(--accent);flex:none;display:flex}.mission-body{flex-direction:column;flex:auto;gap:4px;min-width:0;display:flex}.mission-title{font-weight:500}.mission-progressbar{background:var(--surface);border-radius:var(--radius-sm);height:18px;position:relative;overflow:hidden}.mission-progressfill{background:color-mix(in srgb, var(--accent) 35%, transparent);height:100%;transition:width .4s}.mission-progresslabel{font-variant-numeric:tabular-nums;color:var(--fg);justify-content:center;align-items:center;font-size:.75rem;display:flex;position:absolute;inset:0}.mission-xp{color:var(--warning);flex:none;font-size:.8rem;font-weight:600}.mission-done-icon{color:var(--success);flex:none}.daily-missions-alldone{margin-top:var(--space-2);color:var(--success);text-align:center;font-weight:600}.daily-missions-tomorrow{margin-top:var(--space-1);font-size:.8rem}@media (prefers-reduced-motion:reduce){.mission-progressfill{transition:none}}.settings-tabs{gap:var(--space-1);border-bottom:1px solid var(--border);padding-bottom:var(--space-2);flex-wrap:wrap;display:flex}.settings-tab{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--fg-muted);cursor:pointer;background:0 0;border:none;font-size:.95rem;font-weight:500}.settings-tab:hover{background:var(--surface-2);color:var(--fg)}.settings-tab.is-active{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent)}.settings-tabpanel{gap:var(--space-5);flex-direction:column;display:flex}.settings-page h1{margin:0;font-size:1.75rem}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);box-shadow:var(--shadow-card);gap:var(--space-3);flex-direction:column;display:flex}.settings-section-title{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:1rem;font-weight:600}.storage-mode-fieldset{gap:var(--space-3);border:0;flex-direction:column;margin:0;padding:0;display:flex}.storage-mode-option{align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;display:flex}.storage-mode-option:has(input:checked){border-color:var(--accent);background:var(--surface-2,var(--surface))}.storage-mode-option>input{margin-top:.25rem}.storage-mode-option>span{gap:var(--space-1);flex-direction:column;display:flex}.storage-mode-warning{color:var(--fg-muted);border-left:3px solid var(--warning,var(--accent));padding-left:var(--space-3);margin:0;font-size:.85rem}.storage-mode-counts{gap:var(--space-1) var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;font-size:.875rem;list-style:none;display:grid}.storage-mode-counts li{justify-content:space-between;gap:var(--space-2);display:flex}.storage-mode-table{color:var(--fg-muted)}.storage-mode-count{font-variant-numeric:tabular-nums;font-weight:500}.api-key-row{gap:var(--space-2);border-top:1px solid var(--border);padding-top:var(--space-3);flex-direction:column;display:flex}.api-key-row:first-of-type{border-top:none;padding-top:0}.api-key-row-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.api-key-row-input{gap:var(--space-2);align-items:center;display:flex}.api-key-row-input input{flex:1;min-width:0}.api-key-status{padding:var(--space-1) var(--space-3);background:var(--surface-2);color:var(--fg-muted);border-radius:999px;font-size:.85rem}.api-key-status.is-set{background:color-mix(in srgb, var(--success) 18%, var(--surface));color:var(--success)}.api-key-active-badge{text-transform:uppercase;letter-spacing:.06em;padding:var(--space-1) var(--space-2);background:var(--accent);color:var(--accent-fg);border-radius:999px;font-size:.75rem;font-weight:600}.api-key-row.is-active-provider{border-left:3px solid var(--accent);padding-left:var(--space-3)}.api-key-warning{color:var(--warning);background:color-mix(in srgb, var(--warning) 12%, var(--surface));border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);margin:0;font-size:.85rem}.api-key-source{border-radius:var(--radius-sm);background:var(--surface-2);color:var(--text-muted);overflow-wrap:break-word;padding:.15rem .5rem;font-size:.75rem}.api-key-source-secrets_yaml,.api-key-source-env{background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--accent)}.api-key-external-hint{color:var(--text-muted);background:color-mix(in srgb, var(--accent) 8%, var(--surface));border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);border-left:3px solid var(--accent);margin:0;font-size:.85rem}.commit-table-wrap{overflow-x:auto}.commit-table{border-collapse:collapse;width:100%;font-size:.95rem}.commit-table th,.commit-table td{text-align:left;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border)}.commit-table th{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.commit-table tr:last-child td{border-bottom:none}.app-nav{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--surface);border-bottom:1px solid var(--border);z-index:50;display:flex;position:sticky;top:0}.nav-brand{align-items:center;gap:var(--space-2);color:var(--fg);font-weight:600;text-decoration:none;display:inline-flex}.nav-brand img{border-radius:var(--radius-sm)}.nav-brand-name{display:inline-block}@media (width<=600px){.nav-brand-name{display:none}}.nav-dev-badge{margin-left:var(--space-2);border-radius:var(--radius-sm);background:var(--danger);color:var(--danger-fg);letter-spacing:.05em;align-items:center;padding:2px 6px;font-size:.7rem;font-weight:700;line-height:1.2;text-decoration:none;display:inline-flex}.nav-dev-badge:hover{filter:brightness(.9)}.nav-mode-badge{margin-left:var(--space-2);border-radius:var(--radius-sm);letter-spacing:.02em;border:1px solid var(--border-strong);align-items:center;padding:2px 8px;font-size:.7rem;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}.nav-mode-badge-content{background:color-mix(in srgb, var(--accent) 12%, var(--surface));color:var(--accent)}.nav-mode-badge-ai-augmented{background:color-mix(in srgb, var(--success) 15%, var(--surface));color:var(--success);border-color:color-mix(in srgb, var(--success) 30%, var(--border))}.nav-mode-badge:hover{filter:brightness(1.05)}.content-page{max-width:64rem;padding:var(--space-4);margin:0 auto}.content-header{align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.content-header h1{flex-grow:1;margin:0}.content-refresh-btn{border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border-strong);color:var(--fg);cursor:pointer;align-items:center;gap:6px;padding:6px 10px;font-size:.875rem;display:inline-flex}.content-refresh-btn:disabled{opacity:.6;cursor:not-allowed}.content-intro{color:var(--fg-muted);margin-bottom:var(--space-4);font-size:.9375rem}.content-sources{color:var(--fg-muted);margin-bottom:var(--space-4);font-size:.8125rem}.content-empty{padding:var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface-2);color:var(--fg-muted);text-align:center}.content-set-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.content-set-row{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);flex-wrap:wrap;display:flex}.content-set-meta{flex:280px;min-width:0}.content-set-meta h2,.content-set-meta h4{margin:0 0 4px;font-size:1.125rem;font-weight:600}.content-tree{gap:var(--space-4);flex-direction:column;display:flex}.content-source-heading{margin:0 0 var(--space-2) 0;color:var(--fg);font-size:1.25rem}.content-source-sub{margin:var(--space-2) 0;color:var(--fg-muted);font-size:1rem}.content-source-native{color:var(--fg-muted);font-size:.9rem;font-weight:400}.content-tree-toggle{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--fg);cursor:pointer;text-align:left;font-size:1rem;display:flex}.content-tree-toggle:hover{background:var(--surface-hover,var(--surface))}.content-tree-label{flex:auto;font-weight:600}.content-tree-count{color:var(--fg-muted);font-size:.8125rem}.content-target-group{margin-bottom:var(--space-3)}.content-target-body{padding:var(--space-2) 0 0 var(--space-3)}.content-level-group{margin-bottom:var(--space-3)}.content-level-title{margin:var(--space-2) 0;color:var(--fg-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.9rem}.content-set-native{color:var(--fg-muted);font-weight:400}.content-other-toggle{margin-top:var(--space-3)}.content-other-body{padding-left:var(--space-3)}.settings-source-languages{gap:var(--space-1);flex-direction:column;display:flex}.content-share-passed{color:var(--success,var(--fg));font-weight:600}.content-share-failed{color:var(--fg);font-weight:600}.content-share-issues{margin:var(--space-2) 0;padding-left:var(--space-4);color:var(--fg-muted);gap:var(--space-1);flex-direction:column;font-size:.9rem;display:flex}.content-ai-validation{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.content-ai-privacy{color:var(--fg-muted);font-size:.8125rem}.content-ai-issues{margin:var(--space-2) 0;padding-left:var(--space-4);gap:var(--space-2);flex-direction:column;font-size:.875rem;display:flex}.content-ai-issue{color:var(--fg-muted)}.content-ai-issue-warn{color:var(--fg);align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:space-between;display:flex}.content-ai-issue-flag{color:var(--status-error-fg,var(--fg));font-weight:600}.content-ai-applied{color:var(--fg-muted);font-size:.8125rem;font-style:italic}.content-share-extra{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border)}.content-share-placement-path{margin:var(--space-1) 0;border-radius:var(--radius-sm,4px);background:var(--surface-hover,var(--surface));color:var(--fg-muted);padding:2px 6px;font-size:.8125rem;display:inline-block}.content-share-warning{color:var(--status-warning-fg,var(--fg));font-size:.875rem;font-weight:600}.content-share-warnings{margin:var(--space-2) 0 0;padding-left:var(--space-4);color:var(--status-warning-fg,var(--fg-muted));gap:var(--space-1);flex-direction:column;font-size:.8125rem;display:flex}.content-set-tags{color:var(--fg-muted);flex-wrap:wrap;gap:8px;margin:0 0 6px;font-size:.8125rem;display:flex}.content-set-source{border:1px solid var(--border);letter-spacing:.02em;text-transform:uppercase;color:var(--fg-muted);background:var(--bg-secondary);vertical-align:middle;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:.6875rem;font-weight:600;display:inline-block}.content-set-cached{color:var(--success);font-weight:600}.content-set-update{color:var(--accent);font-weight:600}.content-set-desc{margin:0;font-size:.875rem}.content-set-action{align-items:flex-start;gap:var(--space-2);flex-wrap:wrap;flex-shrink:0;display:flex}.content-set-download-btn{align-items:center;gap:6px;min-height:44px;padding:0 12px;display:inline-flex}@media (width<=600px){.content-set-row{flex-direction:column}.content-set-action{width:100%}.content-set-download-btn,.content-set-open-btn{justify-content:center;width:100%}}.lesson-page{max-width:56rem;padding:var(--space-4);margin:0 auto}.lesson-header{margin-bottom:var(--space-3)}.lesson-header h1{margin:var(--space-2) 0 0 0}.lesson-header-set{margin:var(--space-2) 0 0 0;color:var(--fg-muted);font-size:.9rem}.lesson-header-set-label{margin-right:var(--space-1);font-weight:500}.lesson-back-btn{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:4px 0;font-size:.875rem;display:inline-flex}.lesson-back-btn:hover{color:var(--fg)}.lesson-description{color:var(--fg-muted);margin:var(--space-2) 0 0 0}.lesson-progress-bar{background:var(--surface-2);border-radius:var(--radius-sm);width:100%;height:28px;margin:var(--space-3) 0;border:1px solid var(--border);position:relative;overflow:hidden}.lesson-progress-fill{background:color-mix(in srgb, var(--accent) 35%, var(--surface));transition:width .25s ease-out;position:absolute;inset:0 auto 0 0}.lesson-progress-label{color:var(--fg);justify-content:center;align-items:center;font-size:.8125rem;font-weight:600;display:flex;position:absolute;inset:0}.lesson-step{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-height:240px}.lesson-step h2{margin-top:0}.lesson-theory.markdown-body{font-size:1rem;line-height:1.6}.lesson-exercise-placeholder{padding:var(--space-3);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--fg-muted)}.lesson-exercise-prompt-preview{margin-top:var(--space-2);color:var(--fg);font-style:italic}.lesson-not-cached-body{padding:var(--space-3);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-2)}.lesson-summary{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.lesson-summary h2{align-items:center;gap:8px;margin-top:0;display:inline-flex}.lesson-summary-stats{margin:var(--space-3) 0;flex-direction:column;gap:4px;padding:0;list-style:none;display:flex}.lesson-correction-block{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-md);background:color-mix(in srgb, var(--warning) 8%, var(--surface));border:1px solid color-mix(in srgb, var(--warning) 24%, var(--border));margin-top:var(--space-3);flex-direction:column;display:flex}.lesson-correction-block-header{gap:var(--space-1);flex-direction:column;display:flex}.lesson-correction-block-header h3{color:var(--fg);margin:0;font-size:1.0625rem}.lesson-correction-block-progress{color:var(--fg-muted);font-size:.875rem;font-weight:400}.lesson-correction-block-subtitle{color:var(--fg-muted);margin:0;font-size:.9375rem}.lesson-correction-block-skip{align-self:flex-start;align-items:center;gap:var(--space-1);color:var(--fg-muted);cursor:pointer;background:0 0;border:none;padding:4px 10px;font-size:.875rem;display:inline-flex}.lesson-correction-block-skip:hover{color:var(--fg);text-decoration:underline}.lesson-correction-block-complete{background:color-mix(in srgb, var(--success) 10%, var(--surface));border-color:color-mix(in srgb, var(--success) 32%, var(--border))}.lesson-correction-block-complete h3{margin:0;font-size:1.0625rem}.lesson-summary-actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.lesson-next-step{margin-top:var(--space-4)}.lesson-next-step-title{margin:0 0 var(--space-3) 0;color:var(--fg);font-size:1.0625rem}.lesson-next-step-cards{gap:var(--space-2);flex-direction:column;display:flex}.lesson-next-step-card{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);display:flex}.lesson-next-step-card.is-primary{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface))}.lesson-next-step-card.is-secondary{background:var(--surface-2)}.lesson-next-step-card.is-complete{border-color:color-mix(in srgb, var(--success) 32%, var(--border));background:color-mix(in srgb, var(--success) 10%, var(--surface))}.lesson-next-step-card.is-animated{animation:.3s both lesson-next-step-slide-up}@keyframes lesson-next-step-slide-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.lesson-next-step-card-icon{border-radius:var(--radius-sm);width:40px;height:40px;color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--surface));flex:none;justify-content:center;align-items:center;display:inline-flex}.lesson-next-step-card.is-complete .lesson-next-step-card-icon{color:var(--success);background:color-mix(in srgb, var(--success) 14%, var(--surface))}.lesson-next-step-card-body{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.lesson-next-step-card-kicker{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);font-size:.75rem}.lesson-next-step-card-title{color:var(--fg);font-weight:600}.lesson-next-step-card-sub{color:var(--fg-muted);font-size:.875rem}.lesson-next-step-card .btn{flex:none;min-height:44px}.lesson-summary-secondary-actions{align-items:center;gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.lesson-summary-link{min-height:44px;color:var(--fg-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:6px 4px;font-size:.9rem;display:inline-flex}.lesson-summary-link:hover{color:var(--fg);text-decoration:underline}@media (prefers-reduced-motion:reduce){.lesson-next-step-card.is-animated{animation:none}}.lesson-summary-stars{margin:var(--space-3) 0;color:var(--star);gap:6px;display:flex}.lesson-summary-star{transition:transform .2s,color .2s}.lesson-summary-star[data-earned=false]{color:var(--border-strong)}.lesson-summary-score-bar{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);height:36px;margin:0 0 var(--space-3) 0;position:relative;overflow:hidden}.lesson-summary-score-fill{background:color-mix(in srgb, var(--accent) 35%, var(--surface));transition:width .4s;position:absolute;inset:0 auto 0 0}.lesson-summary-score-label{height:100%;color:var(--fg);align-items:center;gap:6px;padding:0 12px;font-size:.9375rem;display:inline-flex;position:relative}.lesson-summary-breakdown{margin:var(--space-3) 0}.lesson-summary-breakdown h3{margin:0 0 var(--space-2) 0;font-size:1rem}.lesson-summary-breakdown-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.lesson-summary-breakdown-row{border-radius:var(--radius-sm);border-left:3px solid var(--border-strong);background:var(--surface-2);grid-template-columns:1fr auto;align-items:baseline;gap:4px 12px;padding:8px 10px;display:grid}.lesson-summary-breakdown-row.is-correct{border-left-color:var(--exercise-correct)}.lesson-summary-breakdown-row.is-wrong{border-left-color:var(--danger)}.lesson-summary-breakdown-row.is-unattempted{border-left-color:var(--fg-muted);opacity:.75}.lesson-summary-breakdown-title{font-weight:500}.lesson-summary-breakdown-score{font-variant-numeric:tabular-nums;color:var(--fg-muted);font-size:.875rem}.lesson-summary-breakdown-unattempted{font-style:italic}.lesson-summary-breakdown-canonical{color:var(--fg-muted);grid-column:1/-1;padding-top:2px;font-size:.8125rem}@keyframes lesson-summary-celebrate{0%{filter:drop-shadow(0 0 #0000);transform:scale(1)}20%{filter:drop-shadow(0 0 6px var(--star));transform:scale(1.3)}40%{filter:drop-shadow(0 0 2px var(--star));transform:scale(1)}60%{filter:drop-shadow(0 0 4px var(--star));transform:scale(1.15)}to{filter:drop-shadow(0 0 #0000);transform:scale(1)}}.lesson-summary.is-celebrating .lesson-summary-star[data-earned=true]{animation:1.5s ease-out .1s lesson-summary-celebrate}.lesson-summary.is-celebrating .lesson-summary-star[data-earned=true]:nth-child(2){animation-delay:.25s}.lesson-summary.is-celebrating .lesson-summary-star[data-earned=true]:nth-child(3){animation-delay:.4s}@media (prefers-reduced-motion:reduce){.lesson-summary.is-celebrating .lesson-summary-star{animation:none}.lesson-summary-score-fill,.lesson-summary-star{transition:none}}.lesson-summary{position:relative}.lesson-summary-message{margin:var(--space-2) 0 var(--space-3);text-align:center;color:var(--fg);font-size:1.15rem;font-weight:700}.lesson-summary-message[data-stars="3"]{color:var(--accent)}.confetti{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.confetti-piece{opacity:0;will-change:transform, opacity;width:8px;height:12px;animation:confetti-fall var(--confetti-duration,2s) ease-in var(--confetti-delay,0s) 1 forwards;border-radius:2px;position:absolute;top:-14px}.confetti-piece.is-round{border-radius:50%;width:9px;height:9px}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-14px)rotate(0)}to{transform:translate3d(var(--confetti-drift,0), 420px, 0) rotate(var(--confetti-rotate,360deg));opacity:0}}@media (prefers-reduced-motion:reduce){.confetti{display:none}.confetti-piece{animation:none}}.milestone-overlay{top:var(--space-3);z-index:200;gap:var(--space-3);max-width:min(420px, calc(100vw - 2 * var(--space-3)));padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);cursor:pointer;align-items:center;animation:.32s ease-out milestone-fly-in;display:flex;position:fixed;left:50%;transform:translate(-50%)}.milestone-overlay[data-milestone-type=streak]{border-left-color:var(--warning)}.milestone-overlay[data-milestone-type=mastery]{border-left-color:var(--success)}.milestone-overlay[data-milestone-type=badge]{border-left-color:var(--star)}.milestone-overlay-icon{color:var(--accent);flex:none;display:flex}.milestone-overlay[data-milestone-type=streak] .milestone-overlay-icon{color:var(--warning)}.milestone-overlay[data-milestone-type=mastery] .milestone-overlay-icon{color:var(--success)}.milestone-overlay[data-milestone-type=badge] .milestone-overlay-icon{color:var(--star)}.milestone-overlay-text{flex-direction:column;gap:2px;display:flex}.milestone-overlay-title{font-size:1rem}.milestone-overlay-subtitle{color:var(--fg-muted);font-size:.85rem}.milestone-overlay-link{color:var(--accent);text-align:left;cursor:pointer;background:0 0;border:none;margin-top:2px;padding:0;font-size:.8rem;text-decoration:underline}@keyframes milestone-fly-in{0%{opacity:0;transform:translate(-50%,-16px)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.milestone-overlay{animation:none}}.form-row-fieldset{gap:var(--space-2);border:none;flex-direction:column;margin:0;padding:0;display:flex}.theme-picker-grid{gap:var(--space-3);margin-top:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));display:grid}.theme-card{gap:var(--space-2);padding:var(--space-2);border:2px solid var(--border-primary);border-radius:var(--radius-md);background:var(--bg-surface);cursor:pointer;flex-direction:column;transition:border-color .15s;display:flex}.theme-card:hover{border-color:var(--border-accent)}.theme-card:focus-within{outline:3px solid var(--accent);outline-offset:2px}.theme-card[data-active=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.theme-card-preview{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);justify-content:center;align-items:center;height:60px;display:flex;overflow:hidden}.theme-card-preview-split>span{width:50%;height:100%;display:block}.theme-card-mini{border-radius:4px;flex-direction:column;gap:4px;width:64px;padding:8px;display:flex}.theme-card-accent{border-radius:2px;width:60%;height:8px}.theme-card-line{opacity:.85;border-radius:2px;width:100%;height:5px}.theme-card-line-short{opacity:.55;width:60%}.theme-card-label{text-align:center;color:var(--fg-primary);font-size:.85rem;font-weight:600}.feedback-intensity-options{gap:var(--space-2);margin-top:var(--space-1);flex-direction:column;display:flex}.feedback-intensity-option{gap:var(--space-2);cursor:pointer;align-items:flex-start;display:flex}.feedback-intensity-option input[type=radio]{flex:none;margin-top:4px}.feedback-intensity-option-text{flex-direction:column;gap:2px;display:flex}.form-row-stack{align-items:stretch;gap:var(--space-1);flex-direction:column;display:flex}.sounds-volume-row{align-items:center;gap:var(--space-3);display:flex}.sounds-volume-row input[type=range]{flex:auto}.sounds-volume-value{text-align:right;font-variant-numeric:tabular-nums;min-width:3.5ch;color:var(--fg-muted)}.streak-widget__value[data-at-best=true]{color:var(--warning)}@media (width<=600px){.lesson-summary-actions .btn{width:100%}.lesson-summary-breakdown-row{grid-template-columns:1fr}.lesson-summary-breakdown-score{grid-column:1/-1}.lesson-next-step-card{flex-wrap:wrap}.lesson-next-step-card .btn{justify-content:center;width:100%}}@keyframes matching-pulse{0%{opacity:.8}to{opacity:1}}@keyframes matching-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes matching-flash{0%,to{background:var(--surface)}50%{background:color-mix(in srgb, var(--exercise-wrong) 25%, var(--surface))}}.exercise-direction-instruction{color:var(--fg-muted);align-items:center;gap:.35rem;margin:.25rem 0 .75rem;font-size:.8125rem;font-style:italic;display:flex}.nav-links{gap:var(--space-1);margin-left:auto;display:flex}.nav-link{color:var(--fg-muted);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:.95rem;font-weight:500;text-decoration:none}.nav-link:hover{background:var(--surface-2);color:var(--fg)}.nav-link.is-active{color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.nav-link-button{cursor:pointer;background:0 0;border:none;font-family:inherit}.nav-online-indicator{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);color:var(--fg-muted);cursor:default;border-radius:999px;font-size:.85rem;display:inline-flex}.nav-online-dot{background:var(--accent);border-radius:999px;width:.55rem;height:.55rem;transition:background .2s,box-shadow .2s}.nav-online-indicator.is-online .nav-online-dot{background:var(--success);box-shadow:0 0 0 2px color-mix(in srgb, var(--success) 20%, transparent)}.nav-online-indicator.is-offline .nav-online-dot{background:var(--danger);box-shadow:0 0 0 2px color-mix(in srgb, var(--danger) 20%, transparent)}.nav-online-indicator.is-offline .nav-online-label{color:var(--danger)}.nav-theme-toggle{border:1px solid var(--border-strong);width:2.25rem;height:2.25rem;color:var(--fg);background:0 0;border-radius:999px;justify-content:center;align-items:center;font-size:1rem;display:inline-flex}.nav-theme-toggle:hover{background:var(--surface-2)}.curriculum-toolbar{align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.curriculum-create-form{gap:var(--space-2);flex:1;align-items:center;min-width:0;display:flex}.curriculum-create-form input{flex:1;min-width:0}.curriculum-tree-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.topic-tree{margin:0;padding:0;list-style:none}.topic-children{padding-left:var(--space-5);margin:0;list-style:none}.topic-node{padding:var(--space-1) 0}.topic-row{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface-2);display:flex}.topic-row:hover{background:color-mix(in srgb, var(--accent) 6%, var(--surface-2))}.topic-toggle{color:var(--fg-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:1.25rem;height:1.25rem;padding:0;display:inline-flex}.topic-toggle.is-leaf{cursor:default}.topic-title{flex:1;font-size:.95rem}.topic-actions{gap:var(--space-1);opacity:.6;transition:opacity .2s ease-out,transform .2s ease-out;display:flex}.topic-row:hover .topic-actions{opacity:1}.topic-row{touch-action:pan-y}@media (width<=768px){.topic-row .topic-actions{opacity:0;pointer-events:none;transform:translate(20px)}.topic-row[data-actions-revealed=true] .topic-actions{opacity:1;pointer-events:auto;transform:translate(0)}.topic-row[data-actions-revealed=true]{background:var(--surface);box-shadow:inset 2px 0 0 var(--accent)}}@media (prefers-reduced-motion:reduce){.topic-actions{transition:none}}.topic-action-btn{color:var(--fg-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;width:1.75rem;height:1.75rem;font-size:.9rem}.topic-action-btn:hover{background:var(--surface);border-color:var(--border);color:var(--fg)}.topic-action-btn.is-danger:hover{color:var(--danger);border-color:var(--danger)}.add-topic-form,.lesson-list-wrap{gap:var(--space-3);flex-direction:column;display:flex}.lesson-create-form{gap:var(--space-2);display:flex}.lesson-create-form input{flex:1;min-width:0}.lesson-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.lesson-row{gap:var(--space-2);background:var(--surface-2);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);flex-direction:column;display:flex}.lesson-row.is-editing{background:var(--surface);border:1px solid var(--border-strong)}.lesson-row-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.lesson-title{font-size:1rem}.lesson-content{color:var(--fg-muted);white-space:pre-wrap;margin:0;font-size:.9rem}.lesson-row-actions{gap:var(--space-2);display:flex}.lesson-row.is-editing textarea{resize:vertical}.recent-sessions{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.recent-session-row{gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--surface-2);border-radius:var(--radius-md);cursor:pointer;flex-direction:column;transition:background .15s;display:flex}.recent-session-row:hover{background:color-mix(in srgb, var(--accent) 6%, var(--surface-2))}.recent-session-row:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.recent-session-line{align-items:center;gap:var(--space-2);display:flex}.recent-session-date{color:var(--fg-muted);font-size:.85rem}.recent-session-stats{gap:var(--space-4);color:var(--fg-muted);flex-wrap:wrap;font-size:.85rem;display:flex}.method-badge{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--surface-2);color:var(--fg);border-radius:999px;font-size:.85rem;font-weight:500;display:inline-flex}.method-dot{background:var(--accent);border-radius:999px;width:.55rem;height:.55rem;display:inline-block}.diff-highlight{word-break:break-word;line-height:1.6;display:inline}.diff-token{vertical-align:baseline;display:inline-block}.diff-token-insert{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--success) 18%, var(--surface));color:var(--success);padding:0 6px;font-weight:500}.diff-token-delete{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--danger) 18%, var(--surface));color:var(--danger);padding:0 6px}.diff-token-delete .diff-token-text{text-decoration:line-through}.diff-token-replace{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--warning) 18%, var(--surface));padding:0 6px}.diff-token-user-word{color:var(--danger);text-decoration:line-through}.diff-token-expected-word{color:var(--success);font-weight:500}.diff-token-arrow{color:var(--fg-muted);margin:0 6px;font-weight:700}.diff-token-icon{margin-right:3px;font-size:.95em;font-weight:700;display:inline-block}@keyframes answer-correct-pulse{0%{background-color:#0000}30%{background-color:color-mix(in srgb, var(--success) 22%, transparent)}to{background-color:#0000}}@keyframes answer-wrong-flash{0%{background-color:#0000}40%{background-color:color-mix(in srgb, var(--danger) 16%, transparent)}to{background-color:#0000}}@keyframes answer-icon-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}@keyframes answer-praise-fade{0%{opacity:0;transform:translateY(4px)}15%{opacity:1;transform:translateY(0)}75%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(0)}}.answer-feedback{border-radius:var(--radius-sm)}.answer-feedback.is-correct{animation:.3s ease-out answer-correct-pulse}.answer-feedback.is-wrong{animation:.2s ease-out answer-wrong-flash}.answer-feedback svg{animation:.2s ease-out answer-icon-in}.answer-feedback-praise{margin:var(--space-1) 0 0;color:var(--success);font-size:.95rem;font-weight:600;animation:2s ease-out forwards answer-praise-fade}@media (prefers-reduced-motion:reduce){.answer-feedback.is-correct,.answer-feedback.is-wrong,.answer-feedback svg,.answer-feedback-praise{animation:none}.answer-feedback-praise{opacity:1}}.install-prompt{left:var(--space-3);right:var(--space-3);bottom:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);align-items:center;gap:var(--space-3);z-index:100;display:flex;position:fixed}.install-prompt-text{gap:var(--space-1);flex-direction:column;flex:1;min-width:0;display:flex}.install-prompt-subtitle{font-size:.85rem}.install-prompt-actions{gap:var(--space-2);flex-shrink:0;display:flex}@media (width>=769px){.install-prompt{left:auto;right:var(--space-5);bottom:var(--space-5);max-width:28rem}}@media (width<=480px){.install-prompt{flex-direction:column;align-items:stretch}.install-prompt-actions{width:100%}.install-prompt-actions .btn{flex:1;min-height:44px}}.nav-hamburger{border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:2.75rem;height:2.75rem;color:var(--fg);cursor:pointer;background:0 0;justify-content:center;align-items:center;margin-left:auto;font-size:1.25rem;display:none}.nav-hamburger:hover{background:var(--surface-2)}.app-nav.is-lesson-compact{padding-top:var(--space-2);padding-bottom:var(--space-2);min-height:48px}.app-nav.is-lesson-compact .nav-hamburger{display:inline-flex}.app-nav.is-lesson-compact .nav-links{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-card);padding:var(--space-2);z-index:60;flex-direction:column;gap:0;max-height:80vh;margin-left:0;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.app-nav.is-lesson-compact .nav-links.is-open{display:flex}.app-nav.is-lesson-compact .nav-link{padding:var(--space-3) var(--space-4);align-items:center;min-height:44px;font-size:1rem;display:flex}.app-nav.is-lesson-compact .nav-dev-badge,.app-nav.is-lesson-compact .nav-mode-badge,.app-nav.is-lesson-compact .nav-sync-indicator,.app-nav.is-lesson-compact .nav-online-indicator,.app-nav.is-lesson-compact .nav-brand-name{display:none}@media (orientation:landscape) and (height<=600px){.app-nav{padding-top:var(--space-1);padding-bottom:var(--space-1);min-height:44px}.app-nav .nav-hamburger{display:inline-flex}.app-nav .nav-links{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-card);padding:var(--space-2);z-index:60;flex-direction:column;gap:0;max-height:85vh;margin-left:0;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.app-nav .nav-links.is-open{display:flex}.app-nav .nav-online-label,.app-nav .nav-brand-name{display:none}.lesson-header{padding-top:var(--space-2);padding-bottom:var(--space-2)}.lesson-header h1{margin:0;font-size:1.1rem}.lesson-header .lesson-description,.lesson-header .lesson-credit{display:none}}@media (width<=768px){.nav-hamburger{display:inline-flex}.nav-online-label{display:none}.nav-online-indicator{padding:var(--space-1)}.nav-links{background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-card);padding:var(--space-2);flex-direction:column;gap:0;margin-left:0;display:none;position:absolute;top:100%;left:0;right:0}.nav-links.is-open{display:flex}.nav-link{padding:var(--space-3) var(--space-4);align-items:center;min-height:44px;font-size:1rem;display:flex}.app-nav.is-menu-open{box-shadow:none}.nav-theme-toggle{width:2.75rem;height:2.75rem;margin-left:var(--space-2)}.btn{min-height:44px;padding:var(--space-3) var(--space-5)}input[type=text],input[type=number],input[type=email],input[type=password],select,textarea{min-height:44px;font-size:16px}textarea{padding:var(--space-2) var(--space-3)}.form-actions{align-items:stretch;gap:var(--space-2);flex-direction:column}.form-actions .btn{width:100%}.onboarding-header-row{align-items:stretch;gap:var(--space-2);flex-direction:column}.onboarding-skip-top{width:100%;min-height:44px}.api-key-row-input,.model-override-row-input{align-items:stretch;gap:var(--space-2);flex-direction:column}.api-key-row-input input,.model-override-row-input input,.api-key-row-input .btn,.model-override-row-input .btn{width:100%}.landing-page{padding:var(--space-4) var(--space-4)}.landing-title{font-size:1.6rem;line-height:1.2}.landing-cta{width:100%;min-height:44px}.landing-lang-options{flex-wrap:wrap;justify-content:center}.landing-lang-btn{min-width:44px;min-height:44px}.answer-option{min-height:44px;padding:var(--space-3)}.assessment-page{padding:var(--space-4) var(--space-4)}.spaced-rec-card{align-items:stretch;gap:var(--space-2);flex-direction:column}.spaced-rec-actions{gap:var(--space-2);flex-direction:row}.spaced-rec-actions .btn{flex:1;min-height:44px}.dashboard-page{padding:var(--space-4) var(--space-3)}.dashboard-card{padding:var(--space-3) var(--space-3)}.dashboard-card-title{font-size:1rem}.commit-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.commit-table{min-width:32rem}.step-eval-metrics{grid-template-columns:1fr}.session-chat{min-height:calc(100vh - 14rem);padding:var(--space-3);gap:var(--space-2)}.chat-messages{flex:1;max-height:none}.chat-input-row{gap:var(--space-2);align-items:stretch}.chat-input-row textarea{min-height:3rem;font-size:16px}.chat-input-row .btn{min-width:4rem;min-height:44px}.cycle-steps{grid-template-columns:repeat(7,minmax(2.4rem,1fr))}.cycle-step-label{display:none}.modal-card{width:100%;max-height:92vh;overflow-y:auto}}@media (width<=360px){.app-nav{padding:var(--space-2) var(--space-3);gap:var(--space-2)}.dashboard-page,.assessment-page,.onboarding-page,.landing-page{padding-left:var(--space-3);padding-right:var(--space-3)}}.export-row{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.export-row:last-child{border-bottom:none}.export-row-label{flex:200px;font-weight:600}.export-row-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.export-preview{margin-top:var(--space-4);background:var(--surface-2,var(--surface));border:1px solid var(--border);border-radius:var(--radius-2);padding:var(--space-3)}.export-preview-header{margin-bottom:var(--space-2);justify-content:space-between;align-items:center;display:flex}.export-preview-body{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-1);padding:var(--space-3);font-family:var(--font-mono,monospace);white-space:pre-wrap;max-height:300px;font-size:.85rem;overflow:auto}.chat-transition-card{border:2px dashed var(--accent);background:var(--surface-2,var(--surface));border-radius:var(--radius-2);padding:var(--space-3);margin:var(--space-3) auto;text-align:center;max-width:90%}.chat-transition-header{margin-bottom:var(--space-2)}.chat-transition-badge{background:var(--accent);color:#fff;border-radius:var(--radius-1);letter-spacing:.05em;text-transform:uppercase;padding:.2em .6em;font-size:.85rem;font-weight:600;display:inline-block}.chat-transition-summary{margin:var(--space-2) 0;color:var(--text);font-style:italic}.chat-transition-next{margin-top:var(--space-2);color:var(--text)}.cycle-counter-badge{background:var(--accent);color:#fff;border-radius:var(--radius-1);letter-spacing:.04em;padding:.25em .6em;font-size:.85rem;font-weight:600;display:inline-block}.rating-cycles-summary{background:var(--surface-2,var(--surface));border:1px solid var(--border);border-radius:var(--radius-1);padding:var(--space-3);margin-bottom:var(--space-3)}.rating-cycles-list{margin:var(--space-2) 0 0 var(--space-3);padding:0;font-size:.95rem;list-style:decimal}.rating-cycles-list li{margin:var(--space-1) 0}.model-picker{flex:auto;min-width:0;position:relative}.model-picker-input-row{gap:var(--space-1);display:flex}.model-picker-input{min-width:0;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);color:var(--text);flex:auto}.model-picker-toggle{padding:var(--space-1) var(--space-2);min-width:2.5rem}.model-picker-chip{align-items:baseline;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--surface-2);border-radius:var(--radius-sm,4px);flex-wrap:wrap;display:flex}.model-picker-context{background:var(--accent);color:var(--accent-fg);border-radius:8px;padding:2px 6px;font-size:.8rem}.model-picker-default-hint{margin:var(--space-1) 0 0;font-size:.85rem}.model-picker-default-hint code{background:var(--surface-2);border-radius:3px;padding:1px 4px;font-size:.8rem}.model-picker-dropdown{margin-top:var(--space-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm,4px);max-height:360px;box-shadow:var(--shadow-md);z-index:100;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.model-picker-group-title{padding:var(--space-1) var(--space-2);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--border);font-size:.75rem}.model-picker-row{gap:2px var(--space-2);width:100%;padding:var(--space-2);border:none;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;color:var(--text);background:0 0;grid-template-columns:1fr auto;grid-template-areas:"name context""id id";display:grid}.model-picker-row:hover,.model-picker-row:focus{background:var(--surface-2)}.model-picker-row.is-selected{background:var(--accent-subtle)}.model-picker-row-name{grid-area:name;font-weight:500}.model-picker-row-id{font-size:.8rem;font-family:var(--font-mono,monospace);grid-area:id}.model-picker-row-context{background:var(--accent);color:var(--accent-fg);border-radius:8px;grid-area:context;align-self:start;padding:2px 6px;font-size:.75rem}.model-picker-loading,.model-picker-empty{padding:var(--space-3);color:var(--muted);text-align:center}.model-picker-error{padding:var(--space-3)}.model-picker-error p{margin:0 0 var(--space-2)}.model-picker-static{padding:0}.backup-compare-section{margin-top:var(--space-4);padding-top:var(--space-3);border-top:1px solid var(--border)}.backup-compare-pickers{gap:var(--space-3);margin:var(--space-2) 0;flex-wrap:wrap;align-items:flex-end;display:flex}.backup-compare-slot{gap:var(--space-1);flex-direction:column;min-width:220px;display:flex}.backup-compare-slot-label{color:var(--muted);font-size:.85rem}.backup-compare-error{color:var(--danger);margin:var(--space-2) 0}.backup-compare-loading{padding:var(--space-3);text-align:center;color:var(--muted)}.backup-compare{margin-top:var(--space-3)}.backup-compare-header{align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--surface-2);border-radius:var(--radius-sm,4px);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.backup-compare-side{flex-direction:column;min-width:160px;display:flex}.backup-compare-arrow{color:var(--muted);font-size:1.2rem}.backup-compare-totals{gap:var(--space-1);margin-left:auto;display:flex}.diff-chip{font-size:.75rem;font-weight:600;font-family:var(--font-mono,monospace);border-radius:8px;align-items:center;padding:1px 8px;display:inline-flex}.diff-chip-added{background:var(--success);color:#fff}.diff-chip-removed{background:var(--danger);color:#fff}.diff-chip-changed{background:var(--warning);color:#fff}.diff-chip-unchanged{background:var(--surface-2);color:var(--muted)}.diff-marker{text-align:center;width:1.2em;font-family:var(--font-mono,monospace);font-weight:600;display:inline-block}.diff-marker-added{color:var(--success)}.diff-marker-removed{color:var(--danger)}.diff-marker-changed{color:var(--warning)}.backup-compare-controls{align-items:center;gap:var(--space-3);margin:var(--space-2) 0;flex-wrap:wrap;display:flex}.backup-compare-control{align-items:center;gap:var(--space-1);font-size:.9rem;display:inline-flex}.backup-compare-table-list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.backup-compare-table-card{border:1px solid var(--border);border-radius:var(--radius-sm,4px);overflow:hidden}.backup-compare-table-head{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);text-align:left;cursor:pointer;color:var(--text);background:0 0;border:none;font-size:.95rem;display:flex}.backup-compare-table-head:hover{background:var(--surface-2)}.backup-compare-table-name{font-weight:500;font-family:var(--font-mono,monospace)}.backup-compare-table-chips{gap:var(--space-1);display:flex}.backup-compare-toggle-icon{color:var(--muted);margin-left:auto}.backup-compare-table-body{padding:var(--space-2);border-top:1px solid var(--border)}.backup-compare-section h4{margin:var(--space-2) 0 var(--space-1);font-size:.9rem}.backup-compare-section ul{margin:0;padding:0;list-style:none}.backup-compare-section li{font-family:var(--font-mono,monospace);padding:2px 0;font-size:.85rem}.backup-compare-changed-head{text-align:left;cursor:pointer;width:100%;color:var(--text);font-family:var(--font-mono,monospace);background:0 0;border:none;padding:0}.backup-compare-field-table{margin-top:var(--space-1);border-collapse:collapse;width:100%;font-size:.8rem}.backup-compare-field-table th,.backup-compare-field-table td{border:1px solid var(--border);vertical-align:top;padding:2px 6px}.backup-compare-field-table th{background:var(--surface-2);text-align:left}.diff-value-old{color:var(--danger);word-break:break-all}.diff-value-new{color:var(--success);word-break:break-all}.rich-text-editor{border:1px solid var(--border);border-radius:var(--radius-md,8px);background:var(--surface);overflow:hidden}.rich-text-editor .rich-text-prosemirror{padding:var(--space-3,.75rem) var(--space-4,1rem);min-height:var(--rich-text-min-height,140px);color:var(--fg);font-family:var(--font-sans);outline:none;line-height:1.55}.rich-text-editor .rich-text-prosemirror:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.rich-text-prosemirror p{margin:0 0 .6em}.rich-text-prosemirror p:last-child{margin-bottom:0}.rich-text-prosemirror h1,.rich-text-prosemirror h2,.rich-text-prosemirror h3{margin:1em 0 .4em;line-height:1.25}.rich-text-prosemirror h1:first-child,.rich-text-prosemirror h2:first-child,.rich-text-prosemirror h3:first-child{margin-top:0}.rich-text-prosemirror h1{font-size:1.5rem}.rich-text-prosemirror h2{font-size:1.25rem}.rich-text-prosemirror h3{font-size:1.1rem}.rich-text-prosemirror ul,.rich-text-prosemirror ol{margin:0 0 .6em;padding-left:1.4em}.rich-text-prosemirror ul[data-type=taskList]{padding-left:0;list-style:none}.rich-text-prosemirror ul[data-type=taskList] li{align-items:flex-start;gap:.5em;display:flex}.rich-text-prosemirror ul[data-type=taskList] li>label{-webkit-user-select:none;user-select:none;flex-shrink:0;margin-top:.2em}.rich-text-prosemirror ul[data-type=taskList] li>div{flex:1}.rich-text-prosemirror blockquote{border-left:3px solid var(--border-strong);color:var(--fg-muted);margin:.4em 0;padding:.1em 0 .1em .8em}.rich-text-prosemirror code{background:var(--surface-2);border:1px solid var(--border);font-family:var(--font-mono);border-radius:3px;padding:0 .25em;font-size:.9em}.rich-text-prosemirror pre{background:var(--surface-2);color:var(--fg);border:1px solid var(--border);border-radius:var(--radius-sm,4px);font-family:var(--font-mono);margin:.4em 0;padding:.75em 1em;font-size:.875rem;overflow-x:auto}.rich-text-prosemirror pre code{background:0 0;border:none;padding:0}.rich-text-prosemirror a{color:var(--accent);text-underline-offset:.2em;text-decoration:underline}.rich-text-prosemirror mark{background:var(--mark-bg);color:inherit;border-radius:2px;padding:0 .1em}.rich-text-prosemirror img{max-width:100%;height:auto}.rich-text-prosemirror table{border-collapse:collapse;table-layout:fixed;width:100%;margin:.4em 0}.rich-text-prosemirror th,.rich-text-prosemirror td{border:1px solid var(--border);vertical-align:top;padding:.3em .5em}.rich-text-prosemirror th{background:var(--surface-2);font-weight:600}.rich-text-prosemirror p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:var(--fg-muted);pointer-events:none;height:0}.rich-text-prosemirror .has-focus{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 20%, transparent);border-radius:2px}.editor-toolbar{border:1px solid var(--border);border-radius:var(--radius-md,8px) var(--radius-md,8px) 0 0;background:var(--surface-2);scrollbar-width:thin;border-bottom:none;flex-wrap:nowrap;align-items:center;gap:4px;padding:6px 8px;display:flex;overflow-x:auto}.editor-toolbar+.rich-text-editor{border-top-left-radius:0;border-top-right-radius:0}.editor-toolbar-group{flex-shrink:0;align-items:center;gap:2px;display:inline-flex}.editor-toolbar-divider{background:var(--border-strong);flex-shrink:0;width:1px;height:22px;margin:0 4px;display:inline-block}.editor-toolbar-btn{border-radius:var(--radius-sm,4px);min-width:32px;height:32px;color:var(--fg);cursor:pointer;background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;padding:0 6px;font-size:.875rem;line-height:1;display:inline-flex}.editor-toolbar-btn:hover:not(:disabled){background:color-mix(in srgb, var(--fg) 8%, transparent)}.editor-toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.editor-toolbar-btn.is-active{background:color-mix(in srgb, var(--accent) 15%, transparent);border-color:color-mix(in srgb, var(--accent) 30%, transparent);color:var(--accent)}.editor-toolbar-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.editor-toolbar-highlight-swatch{background:var(--mark-swatch-bg);border-radius:2px;padding:0 .25em}@media (width<=768px){.editor-toolbar-btn{min-width:36px;height:40px;font-size:1rem}}.editor-character-count{color:var(--fg-muted);justify-content:flex-end;padding:4px 8px;font-size:.75rem;display:flex}[data-theme=dark]{--mark-bg:#f59e0b59;--mark-swatch-bg:#f59e0b73}.commit-notes-row>td{padding:0 var(--space-3,.75rem) var(--space-3,.75rem);background:var(--surface-2);border-top:none}.commit-notes-row .rich-text-editor{background:var(--surface)}.rich-text-prosemirror .code-block-view{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface-2);margin:.4em 0;overflow:hidden}.code-block-view-toolbar{background:color-mix(in srgb, var(--fg) 6%, transparent);border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:4px 8px;font-size:.75rem;display:flex}.code-block-view-language{border:1px solid var(--border);background:var(--surface);height:24px;color:var(--fg);font-size:.75rem;font-family:var(--font-mono);cursor:pointer;border-radius:3px;padding:0 4px}.code-block-view-language:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.code-block-view-copy{border:1px solid var(--border);background:var(--surface);height:24px;color:var(--fg);cursor:pointer;border-radius:3px;margin-left:auto;padding:0 8px;font-size:.75rem}.code-block-view-copy:hover{background:color-mix(in srgb, var(--fg) 6%, transparent)}.code-block-view-copy:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.rich-text-prosemirror .code-block-view>pre{background:var(--surface);border:none;border-radius:0;margin:0}.rich-text-prosemirror .hljs-keyword,.rich-text-prosemirror .hljs-built_in,.rich-text-prosemirror .hljs-literal{color:var(--code-keyword)}.rich-text-prosemirror .hljs-string,.rich-text-prosemirror .hljs-meta-string{color:var(--code-string)}.rich-text-prosemirror .hljs-number,.rich-text-prosemirror .hljs-symbol{color:var(--code-number)}.rich-text-prosemirror .hljs-comment,.rich-text-prosemirror .hljs-quote{color:var(--code-comment);font-style:italic}.rich-text-prosemirror .hljs-title,.rich-text-prosemirror .hljs-function,.rich-text-prosemirror .hljs-class .hljs-title{color:var(--code-function)}.rich-text-prosemirror .hljs-tag,.rich-text-prosemirror .hljs-name,.rich-text-prosemirror .hljs-selector-tag{color:var(--code-tag)}.rich-text-prosemirror .hljs-attr,.rich-text-prosemirror .hljs-attribute,.rich-text-prosemirror .hljs-selector-attr,.rich-text-prosemirror .hljs-selector-id,.rich-text-prosemirror .hljs-selector-class,.rich-text-prosemirror .hljs-variable{color:var(--code-attr)}.rich-text-prosemirror .hljs-meta{color:var(--code-meta)}[data-theme=dark]{--code-keyword:#c4b5fd;--code-string:#6ee7b7;--code-number:#fbbf24;--code-comment:#64748b;--code-function:#93c5fd;--code-tag:#fca5a5;--code-attr:#a5b4fc}.xp-widget{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:8px;padding:12px 16px;display:flex}.xp-widget--empty{text-align:center;color:var(--text-muted)}.xp-widget__header{justify-content:space-between;align-items:baseline;font-size:.9rem;display:flex}.xp-widget__level{color:var(--accent);font-weight:600}.xp-widget__total{color:var(--text-muted)}.xp-widget__footer{color:var(--text-muted);font-size:.8rem}.xp-notification{z-index:1000;background:var(--accent);color:var(--accent-fg);box-shadow:var(--shadow-elevated);border-radius:8px;flex-direction:column;gap:4px;padding:10px 16px;animation:.5s ease-out xp-rise;display:flex;position:fixed;top:80px;right:16px}.xp-notification__amount{font-size:1.05rem;font-weight:700}.xp-notification__level-up{opacity:.9;font-size:.85rem}@keyframes xp-rise{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.xp-notification{animation:none}}.badge-showcase{flex-direction:column;gap:16px;display:flex}.badge-showcase__summary{color:var(--text-muted);font-size:.9rem;font-weight:500}.badge-showcase__category{flex-direction:column;gap:8px;display:flex}.badge-showcase__category-title{color:var(--text);margin:0;font-size:.95rem}.badge-showcase__grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}.badge-tile{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;padding:12px;transition:filter .2s;display:flex}.badge-tile--locked{filter:grayscale();opacity:.55}.badge-tile__icon{font-size:1.7rem;line-height:1}.badge-tile__name{color:var(--text);font-weight:600}.badge-tile__description{color:var(--text-muted);font-size:.78rem}.badge-tile__earned-at{color:var(--accent);margin-top:2px;font-size:.72rem}@media (prefers-reduced-motion:reduce){.badge-tile{transition:none}}.streak-widget{flex-wrap:wrap;gap:24px;padding:8px 0 12px;display:flex}.streak-widget__cell{flex-direction:column;gap:2px;display:flex}.streak-widget__label{color:var(--text-muted);font-size:.75rem}.streak-widget__value{color:var(--accent);font-size:1.5rem;font-weight:700}.streak-calendar{gap:3px;padding:6px 0;display:flex;overflow-x:auto}.streak-calendar__week{flex-direction:column;gap:3px;display:flex}.streak-cell{background:var(--border);border-radius:2px;width:12px;height:12px}.streak-cell--empty{visibility:hidden}.streak-cell--tier-0{background:var(--border)}.streak-cell--tier-1{background:color-mix(in srgb, var(--accent) 25%, transparent)}.streak-cell--tier-2{background:color-mix(in srgb, var(--accent) 50%, transparent)}.streak-cell--tier-3{background:color-mix(in srgb, var(--accent) 75%, transparent)}.streak-cell--tier-4{background:var(--accent)}.anki-page{max-width:1100px;margin:0 auto;padding:24px}.anki-toolbar{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;align-items:end;gap:16px;margin-bottom:16px;padding:12px 16px;display:flex}.anki-toolbar__summary{color:var(--text-muted);margin-left:auto;font-size:.9rem}.anki-card-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.anki-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;gap:8px;padding:16px;display:grid}.anki-card--accepted{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 5%, var(--bg-elevated))}.anki-card__type{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.75rem}.anki-card__front{color:var(--text);white-space:pre-wrap;font-size:1.05rem;font-weight:600}.anki-card__back{color:var(--text-muted);white-space:pre-wrap;font-size:.95rem}.anki-card__tags{flex-wrap:wrap;gap:6px;display:flex}.anki-tag{background:var(--border);color:var(--text-muted);border-radius:999px;padding:2px 8px;font-size:.75rem}.anki-card__actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.speech-button{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:.85rem;transition:background .15s,color .15s;display:inline-flex}.speech-button:hover{background:var(--bg-elevated);color:var(--text)}.speech-button--speaking{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);border-color:var(--accent)}.speech-button__icon{font-size:.85rem;line-height:1}.read-aloud-button{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;vertical-align:middle;background:0 0;border-radius:6px;align-items:center;gap:4px;padding:2px 6px;line-height:1;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.read-aloud-button:hover{background:var(--bg-elevated);color:var(--text)}.read-aloud-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.read-aloud-button.is-speaking{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);border-color:var(--accent);animation:1.2s ease-in-out infinite read-aloud-pulse}.read-aloud-button__icon{line-height:0;display:inline-flex}.read-aloud-button__label{font-size:.8rem}@keyframes read-aloud-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 45%, transparent)}50%{box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.read-aloud-button.is-speaking{animation:none}}.exercise-prompt-row{align-items:flex-start;gap:8px;display:flex}.exercise-prompt-row>p{flex:auto;margin:0}.exercise-prompt-row .read-aloud-button{flex:none;margin-top:2px}.lesson-theory-tts{margin-bottom:var(--space-2);justify-content:flex-end;display:flex}.lesson-tts-controls{margin:var(--space-2) 0;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lesson-tts-autoread{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.85rem;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.lesson-tts-autoread:hover{background:var(--bg-elevated);color:var(--text)}.lesson-tts-autoread.is-on{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);border-color:var(--accent)}.lesson-tts-autoread:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lesson-tts-speed{align-items:center;gap:4px;display:inline-flex}.lesson-tts-speed-label{color:var(--text-muted);margin-right:2px;font-size:.8rem}.lesson-tts-speed-btn{border:1px solid var(--border);min-width:2.4em;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;padding:2px 6px;font-size:.78rem;transition:background .15s,color .15s,border-color .15s}.lesson-tts-speed-btn:hover{background:var(--bg-elevated);color:var(--text)}.lesson-tts-speed-btn.is-active{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent);border-color:var(--accent);font-weight:600}.lesson-tts-speed-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lesson-tts-novoice{color:var(--warning,var(--text-muted));font-size:.8rem}.lesson-read-along{white-space:pre-wrap;line-height:1.8}.lesson-read-along-word{border-radius:3px;transition:background-color .12s}.lesson-read-along-word.tts-active{background:color-mix(in srgb, var(--accent) 20%, transparent);color:var(--text)}@media (prefers-reduced-motion:reduce){.lesson-read-along-word{transition:none}.lesson-read-along-word.tts-active{text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:2px;background:0 0}}.lesson-tts-player{left:50%;bottom:var(--space-4);z-index:60;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card);max-width:calc(100vw - 2 * var(--space-4));border-radius:999px;align-items:center;gap:8px;padding:6px 12px;display:flex;position:fixed;transform:translate(-50%)}.lesson-tts-player-btn{border:1px solid var(--border);width:2rem;height:2rem;color:var(--text);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.lesson-tts-player-btn:hover:not(:disabled){background:var(--bg-elevated)}.lesson-tts-player-btn:disabled{opacity:.4;cursor:not-allowed}.lesson-tts-player-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lesson-tts-player-playpause{background:color-mix(in srgb, var(--accent) 15%, transparent);border-color:var(--accent);width:2.4rem;height:2.4rem;color:var(--accent)}.lesson-tts-player-pos{color:var(--text-muted);white-space:nowrap;padding:0 4px;font-size:.8rem}.lesson-tts-player-stop{color:var(--text-muted)}.chat-message-actions{justify-content:flex-end;margin-top:4px;display:flex}.assessment-result-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.mic-button{border:1px solid var(--border);width:36px;height:36px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;transition:background .15s,color .15s,transform .15s;display:inline-flex}.mic-button:hover{background:var(--bg-elevated);color:var(--text)}.mic-button--listening{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);animation:1.2s ease-in-out infinite mic-pulse}.mic-button__icon{font-size:1rem;line-height:1}@keyframes mic-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 50%, transparent)}50%{box-shadow:0 0 0 8px color-mix(in srgb, var(--accent) 0%, transparent)}}@media (prefers-reduced-motion:reduce){.mic-button--listening{animation:none}}.pronunciation-page{flex-direction:column;gap:16px;max-width:720px;margin:0 auto;padding:24px;display:flex}.pronunciation-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:8px;padding:16px;display:flex}.pronunciation-card__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.pronunciation-card__label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.78rem}.pronunciation-card__target{color:var(--text);font-size:1.25rem;font-weight:600;line-height:1.4}.pronunciation-verdict{border:1px solid;border-radius:8px;flex-direction:column;gap:6px;padding:14px 16px;display:flex}.pronunciation-verdict--match{background:color-mix(in srgb, var(--accent) 8%, transparent);border-color:var(--accent)}.pronunciation-verdict--miss{background:color-mix(in srgb, var(--warning) 12%, transparent);border-color:var(--warning)}.pronunciation-verdict__score{margin:0;font-size:1.05rem}.pronunciation-verdict__feedback{color:var(--text);margin:0}.pronunciation-verdict__sounds{color:var(--text-muted);margin:4px 0 0;font-size:.85rem}.dashboard-pronunciation-quick-start{width:100%;margin-top:8px;padding:14px}.notebooklm-actions{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.notebooklm-filter{margin:var(--space-2) 0 var(--space-4)}.notebooklm-question-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.notebooklm-question{background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.notebooklm-question__meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-size:.8rem;display:flex}.notebooklm-question__topic{font-style:italic}.notebooklm-question__type{text-transform:lowercase;letter-spacing:.05em}.notebooklm-question__q{color:var(--text);margin:4px 0}.notebooklm-question__a{color:var(--text-muted);margin:4px 0}.notebooklm-question__actions{justify-content:flex-end;margin-top:6px;display:flex}.badge{text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-block}.badge--easy{background:color-mix(in srgb, var(--success) 15%, transparent);color:var(--success)}.badge--medium{background:color-mix(in srgb, var(--warning) 15%, transparent);color:var(--warning)}.badge--hard{background:color-mix(in srgb, var(--error) 15%, transparent);color:var(--error)}@media (width<=720px){.help-link{padding:12px!important}}.help-term{transition:background-color .12s ease-in-out}.help-term:hover,.help-term:focus-within{background-color:color-mix(in srgb, var(--accent) 10%, transparent)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.badge-gallery-header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);background:var(--surface);z-index:1;justify-content:space-between;align-items:flex-start;display:flex;position:sticky;top:0}.badge-gallery-title{margin:0;font-size:1.25rem;font-weight:600}.badge-gallery-count{color:var(--fg-muted);margin:4px 0 0;font-size:.8125rem}.badge-gallery-close{cursor:pointer;color:var(--fg-muted);border-radius:var(--radius-sm);background:0 0;border:none;padding:4px;display:inline-flex}.badge-gallery-controls{gap:var(--space-3);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.badge-gallery-filters{flex-wrap:wrap;gap:6px;display:flex}.badge-gallery-filter{border:1px solid var(--border);background:var(--surface);color:var(--fg-muted);cursor:pointer;border-radius:999px;padding:4px 10px;font-size:.8125rem}.badge-gallery-filter.is-active{background:color-mix(in srgb, var(--accent) 15%, var(--surface));border-color:var(--accent);color:var(--fg);font-weight:600}.badge-gallery-sort{color:var(--fg-muted);align-items:center;gap:6px;font-size:.8125rem;display:inline-flex}.badge-gallery-grid{gap:var(--space-3);padding:var(--space-4) var(--space-5);flex:1;grid-template-columns:repeat(3,1fr);display:grid;overflow-y:auto}@media (width<=600px){.badge-gallery-grid{grid-template-columns:repeat(2,1fr)}}.badge-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);padding:var(--space-3);text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.badge-card.is-locked{opacity:.7}.badge-card.is-earned[data-tier=gold]{border-color:var(--star);box-shadow:0 0 10px color-mix(in srgb, var(--star) 45%, transparent);animation:2s ease-in-out infinite alternate badge-gold-glow}@keyframes badge-gold-glow{0%{box-shadow:0 0 6px color-mix(in srgb, var(--star) 30%, transparent)}to{box-shadow:0 0 14px color-mix(in srgb, var(--star) 60%, transparent)}}@media (prefers-reduced-motion:reduce){.badge-card.is-earned[data-tier=gold]{animation:none}}.badge-card-main{cursor:pointer;width:100%;color:var(--fg);background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;display:flex}.badge-card-icon{display:block}.badge-card-name{font-size:.8125rem;font-weight:600;line-height:1.2}.badge-card-tier{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);font-size:.6875rem}.badge-card-pips{gap:4px;margin-top:2px;display:inline-flex}.badge-pip{border-radius:2px;width:14px;height:4px}.badge-card-date,.badge-card-next,.badge-card-locked-hint{color:var(--fg-muted);margin:0;font-size:.6875rem}.badge-card-detail{border-top:1px solid var(--border);text-align:left;width:100%;margin-top:6px;padding-top:6px;font-size:.75rem}.badge-tier-table{border-collapse:collapse;width:100%;font-size:.75rem}.badge-tier-table caption{text-align:left;color:var(--fg-muted);padding-bottom:2px;font-weight:600}.badge-tier-table th,.badge-tier-table td{text-align:left;padding:2px 4px}.badge-tier-table td{text-align:right;color:var(--fg-muted)}.badge-widget{gap:var(--space-3);flex-direction:column;align-items:flex-start;display:flex}.badge-widget-count{cursor:pointer;color:var(--fg);background:0 0;border:none;padding:0;font-size:1.125rem;font-weight:600}.badge-widget-recent{gap:8px;display:flex}.badge-widget-icon-btn{cursor:pointer;background:0 0;border:none;padding:0;line-height:0}.badge-widget-empty{color:var(--fg-muted);margin:0;font-size:.8125rem}.badge-widget-next{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--fg);align-items:center;gap:8px;padding:6px 10px;display:inline-flex}.badge-widget-next-text{text-align:left;flex-direction:column;display:flex}.badge-widget-next-label{text-transform:uppercase;letter-spacing:.04em;color:var(--fg-muted);font-size:.6875rem}.badge-widget-next-name{font-size:.875rem;font-weight:500}.api-key-input-wrap{flex:1;align-items:center;display:inline-flex;position:relative}.api-key-input-wrap input{width:100%}.api-key-format-valid input{border-color:var(--success)}.api-key-format-invalid input{border-color:var(--error)}.api-key-format-check{color:var(--success);pointer-events:none;font-weight:700;position:absolute;right:.5rem}.api-key-format-error{color:var(--error);margin:.35rem 0 0;font-size:.85rem}.api-key-test-result{align-items:center;gap:.4rem;margin:.35rem 0 0;font-size:.85rem;display:flex}.api-key-test-result.is-ok{color:var(--success)}.api-key-test-result.is-invalid{color:var(--error)}.api-key-test-result.is-warning{color:var(--warning)}.api-key-rollback{border:1px solid var(--warning);background:var(--warning-bg);border-radius:8px;margin:.5rem 0 0;padding:.75rem 1rem}.api-key-rollback-message{color:var(--fg-primary);margin:0 0 .6rem}.api-key-rollback-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.api-key-restore-link{margin-top:.4rem}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn-spinner{vertical-align:-.1em;border:2px solid;border-top-color:#0000;border-radius:50%;width:.9em;height:.9em;margin-right:.4em;animation:.8s linear infinite btn-spin;display:inline-block}.analysis-loading{border:1px solid var(--border-primary);background:var(--bg-surface);border-radius:8px;margin-bottom:2rem;padding:1rem 1.25rem}.analysis-loading-phase{color:var(--fg-primary);margin:0 0 .75rem;font-weight:600}.analysis-progress-track{background:var(--border-subtle);border-radius:4px;height:8px;overflow:hidden}.analysis-progress-fill{background:var(--accent);border-radius:4px;height:100%;transition:width .4s}.analysis-loading-estimate{color:var(--fg-muted);margin:.75rem 0 0;font-size:.85rem}.analysis-cancel-link{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:.5rem;padding:0;font-size:.9rem;text-decoration:underline}.analysis-cancel-link:hover{color:var(--accent-hover)}.analysis-error-inline{border:1px solid var(--error);background:var(--error-bg);border-radius:8px;margin-bottom:2rem;padding:.75rem 1rem}.analysis-error-inline p{color:var(--error);margin:0}@keyframes analysis-results-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.analysis-results-fade-in{animation:.35s analysis-results-in}@media (prefers-reduced-motion:reduce){.btn-spinner{display:none}.analysis-progress-fill{transition:none}.analysis-results-fade-in{animation:none}}.learning-path-page{gap:var(--space-2);height:calc(100vh - 80px);padding:var(--space-3);flex-direction:column;display:flex}.learning-path-header h1{margin:0}.learning-path-canvas{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg);flex:auto;min-height:60vh;overflow:hidden}.react-flow{--xy-background-color:var(--bg);--xy-node-background-color-default:var(--surface);--xy-node-color-default:var(--fg);--xy-node-border-default:1px solid var(--border);--xy-edge-stroke-default:var(--fg-muted);--xy-edge-stroke-selected-default:var(--accent);--xy-connectionline-stroke-default:var(--accent);--xy-attribution-background-color-default:transparent;--xy-controls-button-background-color-default:var(--surface);--xy-controls-button-background-color-hover-default:var(--surface-2);--xy-controls-button-color-default:var(--fg);--xy-controls-button-border-color-default:var(--border);--xy-minimap-background-color-default:var(--surface)}.react-flow__minimap-mask{fill:color-mix(in srgb, var(--bg) 70%, transparent)}.react-flow__controls-button{min-width:28px;min-height:28px}.lesson-node{border:2px solid var(--border);background:var(--surface);width:180px;min-height:80px;color:var(--fg);font:inherit;text-align:left;cursor:pointer;border-radius:8px;flex-direction:column;gap:4px;padding:8px 10px;display:flex;position:relative}.lesson-node:disabled{cursor:not-allowed}.lesson-node--not-started{border-color:var(--border);background:var(--surface-2)}.lesson-node--in-progress{border-color:var(--warning);background:color-mix(in srgb, var(--warning) 10%, var(--surface))}.lesson-node--paused{border-color:var(--warning);background:color-mix(in srgb, var(--warning) 8%, var(--surface));border-style:dashed}.lesson-node--completed{border-color:var(--success);background:color-mix(in srgb, var(--success) 10%, var(--surface))}.lesson-node--mastered{border-color:var(--success);background:color-mix(in srgb, var(--success) 22%, var(--surface));box-shadow:0 0 10px color-mix(in srgb, var(--success) 40%, transparent)}.lesson-node.is-recommended{border-color:var(--accent);animation:1.6s ease-in-out infinite lesson-node-pulse}.lesson-node.is-locked{opacity:.6}@keyframes lesson-node-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 45%, transparent)}50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--accent) 0%, transparent)}}.lesson-node-title{font-size:.85rem;line-height:1.2}.lesson-node-stars{color:var(--star);gap:2px;display:flex}.lesson-node-footer{justify-content:space-between;align-items:center;gap:4px;margin-top:auto;font-size:.7rem;display:flex}.lesson-node-mastery{gap:3px;display:flex}.lesson-node-mastery-pill{border-radius:4px;padding:0 4px;font-size:.65rem;font-weight:600}.lesson-node-mastery-pill.is-receptive{background:color-mix(in srgb, var(--accent) 18%, var(--surface));color:var(--accent)}.lesson-node-mastery-pill.is-productive{background:color-mix(in srgb, var(--success) 18%, var(--surface));color:var(--success)}.lesson-node-badge-xp{background:var(--accent);color:var(--accent-fg);border-radius:8px;padding:1px 5px;font-size:.6rem;position:absolute;top:-8px;right:-6px}.lesson-node-badge-recommended{background:var(--accent);color:var(--accent-fg);border-radius:8px;padding:1px 6px;font-size:.6rem;position:absolute;top:-9px;left:6px}.lesson-node-lock{color:var(--fg-muted);position:absolute;top:6px;right:6px}.lesson-node-handle{background:var(--border)}@media (prefers-reduced-motion:reduce){.lesson-node.is-recommended{animation:none}}.set-group{border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb, var(--accent) 5%, var(--surface));width:260px;overflow:hidden}.set-group.is-collapsed{width:240px}.set-group-header{background:color-mix(in srgb, var(--accent) 10%, var(--surface));width:100%;color:var(--fg);font:inherit;cursor:pointer;text-align:left;border:none;align-items:center;gap:6px;padding:8px 10px;font-weight:600;display:flex}.set-group-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.set-group-pair{color:var(--fg-muted);flex:none;font-size:.7rem;font-weight:500}.set-group-progress{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;height:18px;margin:8px 10px 0;position:relative;overflow:hidden}.set-group-progress-fill{background:color-mix(in srgb, var(--success) 45%, var(--surface));height:100%;transition:width .3s;position:absolute;inset:0 auto 0 0}.set-group-progress-label{text-align:center;color:var(--fg);font-size:.7rem;line-height:18px;display:block;position:relative}.set-group-mastery{margin:6px 10px 10px;font-size:.75rem}@media (prefers-reduced-motion:reduce){.set-group-progress-fill{transition:none}}.react-flow__edge.lp-edge--completed .react-flow__edge-path{stroke:var(--success);stroke-width:2px}.react-flow__edge.lp-edge--upcoming .react-flow__edge-path{stroke:var(--fg-muted);stroke-width:1.5px;stroke-dasharray:6 4}.react-flow__edge.lp-edge--adaptive .react-flow__edge-path{stroke:var(--accent);stroke-width:2px;stroke-dasharray:6 4}.learning-path-toolbar{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.learning-path-controls{gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.learning-path-search{min-width:180px}.learning-path-stats{gap:var(--space-3);margin-bottom:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-wrap:wrap;padding:6px 10px;font-size:.85rem;display:flex}.react-flow__node.lp-faded{opacity:.3;transition:opacity .2s}.react-flow__node.lp-highlighted .lesson-node{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 55%, transparent)}.react-flow__node.lp-cluster .lesson-node{box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 60%, transparent)}.learning-path-clusters{gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.learning-path-cluster{align-items:center;gap:var(--space-2);border:1px solid color-mix(in srgb, var(--danger) 30%, var(--border));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--danger) 8%, var(--surface));padding:6px 10px;display:flex}.learning-path-cluster.is-active{border-color:var(--danger)}.learning-path-cluster-label{color:var(--fg);font:inherit;cursor:pointer;background:0 0;border:none;font-weight:600}@media (prefers-reduced-motion:reduce){.react-flow__node.lp-faded{transition:none}.react-flow__edge.animated .react-flow__edge-path{animation:none}}
