*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box}button{appearance:none;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;padding:0}.container{width:100%}@media (width>=640px){.container{max-width:640px}}@media (width>=768px){.container{max-width:768px}}@media (width>=1024px){.container{max-width:1024px}}@media (width>=1280px){.container{max-width:1280px}}@media (width>=1536px){.container{max-width:1536px}}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.left-1\/2{left:50%}.right-0{right:0}.right-4{right:1rem}.top-1\/2{top:50%}.top-4{top:1rem}.top-full{top:100%}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.-ml-1{margin-left:-.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.ml-6{margin-left:1.5rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.max-h-72{max-height:18rem}.min-h-svh{min-height:100svh}.w-12{width:3rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-full{width:100%}.min-w-0{min-width:0}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-5xl{max-width:64rem}.max-w-md{max-width:28rem}.max-w-sm{max-width:24rem}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:1s linear infinite spin}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.place-items-center{place-items:center}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-8{gap:2rem}.overflow-y-auto{overflow-y:auto}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-none{border-style:none}.border-border,.border-input{border-color:var(--border)}.border-primary{border-color:var(--accent-soft)}.bg-\[color\:var\(--surface\)\]{background-color:var(--surface)}.bg-accent{background-color:var(--accent-bg)}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-background{background-color:var(--bg)}.bg-black\/50{background-color:#00000080}.bg-card{background-color:var(--surface)}.bg-destructive{background-color:var(--badge-red)}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 237 213/var(--tw-bg-opacity,1))}.bg-primary{background-color:var(--accent-soft)}.bg-transparent{background-color:#0000}.bg-zinc-200{--tw-bg-opacity:1;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))}.p-2{padding:.5rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-2{padding-bottom:.5rem}.pr-1{padding-right:.25rem}.pt-0{padding-top:0}.pt-4{padding-top:1rem}.text-center{text-align:center}.font-mono{font-family:var(--mono)}.text-2xl{font-size:1.5rem;line-height:2rem}.text-\[0\.65rem\]{font-size:.65rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.leading-none{line-height:1}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-accent-foreground{color:var(--accent)}.text-amber-500{--tw-text-opacity:1;color:rgb(245 158 11/var(--tw-text-opacity,1))}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-card-foreground{color:var(--text-h)}.text-destructive{color:var(--badge-red)}.text-destructive-foreground{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-foreground{color:var(--text-h)}.text-muted-foreground{color:var(--text-muted)}.text-orange-700{--tw-text-opacity:1;color:rgb(194 65 12/var(--tw-text-opacity,1))}.text-primary{color:var(--accent-soft)}.text-primary-foreground{color:var(--accent-soft-text)}.text-zinc-600{--tw-text-opacity:1;color:rgb(82 82 91/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.underline-offset-4{text-underline-offset:4px}.accent-\[var\(--accent\)\]{accent-color:var(--accent)}.opacity-0{opacity:0}.opacity-55{opacity:.55}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.blur{--tw-blur:blur(8px);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)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);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)}.invert{--tw-invert:invert(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,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-\[filter\,background-color\,border-color\,opacity\]{transition-property:filter,background-color,border-color,opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-opacity{transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.\!running{animation-play-state:running!important}.running{animation-play-state:running}:root{--radius:.7rem;--sidebar-w:320px;--text:#5f5e5b;--text-muted:#91918e;--text-h:#37352f;--bg:#fff;--surface:#fff;--border:#e9e9e7;--code-bg:#f7f7f5;--accent:#8350e8;--accent-bg:#8350e81a;--accent-border:#8350e873;--accent-soft:color-mix(in srgb, var(--accent) 16%, var(--surface));--accent-soft-text:color-mix(in srgb, var(--accent) 85%, var(--text-h));--social-bg:#f7f7f580;--shadow:#0f0f0f1f 0 4px 14px -2px, #0f0f0f0f 0 2px 6px -2px;--card-shadow:#0f0f0f14 0 2px 8px -1px, #0f0f0f0d 0 1px 2px;--card-shadow-sm:#0f0f0f0f 0 1px 4px;--term-bg:#161009;--term-bg-2:#221708;--term-line:#4a3414;--term-fg:#ffb43c;--term-dim:#9a6e25;--term-prompt:#ffd277;--term-in:#ffe6b0;--term-err:#ff7a45;--term-glow:#ffb43c73;--badge-red:#b23a5b;--badge-red-bg:#b23a5b1a;--badge-red-bd:#b23a5b4d;--badge-green:#2f855a;--badge-green-bg:#2f855a1a;--badge-green-bd:#2f855a4d;--var-color-0:#ef4444;--var-color-1:#f97316;--var-color-2:#eab308;--var-color-3:#22c55e;--var-color-4:#06b6d4;--var-color-5:#3b82f6;--var-color-6:#a855f7;--var-color-7:#ec4899;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}:root[data-theme=dark]{--text:#9ca3af;--text-muted:#6b7280;--text-h:#f3f4f6;--bg:#16171d;--surface:#1c1d26;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--card-shadow:#00000059 0 2px 8px -1px;--card-shadow-sm:#00000040 0 1px 4px;--term-bg:#060d06;--term-bg-2:#0d1a0d;--term-line:#1a2e1a;--term-fg:#4ade4a;--term-dim:#2f7f37;--term-prompt:#ffd35a;--term-in:#b6ff7a;--term-err:#ff7a33;--term-glow:#4ade4a73;--badge-red:#f38ba8;--badge-red-bg:#f38ba824;--badge-red-bd:#f38ba84d;--badge-green:#a6e3a1;--badge-green-bg:#a6e3a124;--badge-green-bd:#a6e3a14d}@media (prefers-color-scheme:dark){:root:not([data-theme]){--text:#9ca3af;--text-muted:#6b7280;--text-h:#f3f4f6;--bg:#16171d;--surface:#1c1d26;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px;--card-shadow:#00000059 0 2px 8px -1px;--card-shadow-sm:#00000040 0 1px 4px;--term-bg:#060d06;--term-bg-2:#0d1a0d;--term-line:#1a2e1a;--term-fg:#4ade4a;--term-dim:#2f7f37;--term-prompt:#ffd35a;--term-in:#b6ff7a;--term-err:#ff7a33;--term-glow:#4ade4a73;--badge-red:#f38ba8;--badge-red-bg:#f38ba824;--badge-red-bd:#f38ba84d;--badge-green:#a6e3a1;--badge-green-bg:#a6e3a124;--badge-green-bd:#a6e3a14d}:root:not([data-theme]) #social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:1126px;max-width:100%;min-height:100svh;margin:0 auto;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{font-family:var(--mono);background:var(--code-bg);color:var(--text-h);border-radius:4px;padding:4px 8px;font-size:15px;line-height:135%}pre code{background:0 0;padding:0;font-size:.9rem;display:block}.placeholder\:text-muted-foreground::placeholder{color:var(--text-muted)}.hover\:border-primary:hover{border-color:var(--accent-soft)}.hover\:bg-accent:hover{background-color:var(--accent-bg)}.hover\:text-accent-foreground:hover{color:var(--accent)}.hover\:text-destructive:hover{color:var(--badge-red)}.hover\:text-foreground:hover{color:var(--text-h)}.hover\:text-primary:hover{color:var(--accent-soft)}.hover\:underline:hover{text-decoration-line:underline}.hover\:brightness-110:hover{--tw-brightness:brightness(1.1);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)}.focus-visible\:border-ring:focus-visible{border-color:var(--accent)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color:var(--accent)}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color:var(--bg)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.data-\[state\=open\]\:animate-in[data-state=open]{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-name:enter;animation-duration:.15s}.data-\[state\=closed\]\:animate-out[data-state=closed]{--tw-exit-opacity:initial;--tw-exit-scale:initial;--tw-exit-rotate:initial;--tw-exit-translate-x:initial;--tw-exit-translate-y:initial;animation-name:exit;animation-duration:.15s}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity:0}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity:0}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale:.95}.dark\:bg-amber-500\/15:where([data-theme=dark],[data-theme=dark] *){background-color:#f59e0b26}.dark\:bg-orange-500\/15:where([data-theme=dark],[data-theme=dark] *){background-color:#f9731626}.dark\:bg-zinc-500\/15:where([data-theme=dark],[data-theme=dark] *){background-color:#71717a26}.dark\:text-amber-400:where([data-theme=dark],[data-theme=dark] *){--tw-text-opacity:1;color:rgb(251 191 36/var(--tw-text-opacity,1))}.dark\:text-orange-400:where([data-theme=dark],[data-theme=dark] *){--tw-text-opacity:1;color:rgb(251 146 60/var(--tw-text-opacity,1))}.dark\:text-zinc-300:where([data-theme=dark],[data-theme=dark] *){--tw-text-opacity:1;color:rgb(212 212 216/var(--tw-text-opacity,1))}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}svg.lucide{stroke-width:1.75px;width:18px;height:18px}.users-group-chip svg.lucide,.users-groups-pop-item svg.lucide,.gci-list svg.lucide,.tsched svg.lucide{width:14px;height:14px}.home{max-width:760px;padding:clamp(40px, 7vh, 64px) var(--sp-5) var(--sp-7);margin:0 auto}.topic-section{margin-bottom:var(--sp-4);padding:var(--sp-4) var(--sp-5);background:var(--surface);box-shadow:var(--card-shadow-sm);border-radius:14px;transition:box-shadow .15s}.topic-section:hover{box-shadow:var(--card-shadow)}.course-title-row{justify-content:space-between;align-items:baseline;gap:var(--sp-4);flex-wrap:wrap;display:flex}.course-title-row h1{margin-bottom:var(--sp-5)}.course-scenario-link{padding:6px var(--sp-4);background:var(--accent-soft);color:var(--accent-soft-text);box-shadow:var(--card-shadow);white-space:nowrap;border-radius:9px;align-items:center;gap:.3rem;font-size:.92rem;font-weight:600;transition:box-shadow .15s;display:inline-flex}.course-scenario-link:hover{box-shadow:var(--shadow)}.course-scenario-link svg{width:16px;height:16px;transition:transform .15s}.course-scenario-link:hover svg{transform:translate(2px)}.topic-desc{color:var(--text-muted);margin:var(--sp-1) 0 var(--sp-3) 26px;max-width:620px;font-size:.85rem;line-height:1.5}.topic-toggle{cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex-shrink:0;align-items:center;padding:.15rem;display:inline-flex}.topic-toggle svg{width:18px;height:18px;transition:transform .15s}.topic-toggle.is-open svg{transform:rotate(90deg)}.topic-toggle-sm svg{width:14px;height:14px}.topic-head-main,.sidebar-topic-main{cursor:pointer;flex:1;gap:.4rem;min-width:0;display:flex}.topic-head-main{align-items:center}.sidebar-topic-main{flex-basis:60%;align-items:flex-start}.topic-head-main:hover .topic-toggle,.sidebar-topic-main:hover .topic-toggle{color:var(--accent)}.lesson-list{flex-direction:column;gap:2px;margin:0 0 0 26px;padding:0;list-style:none;display:flex}.lesson-link{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);color:var(--text-h);border-radius:8px;text-decoration:none;transition:background .12s;display:flex}.lesson-link:hover{background:var(--accent-bg)}.lesson-num{font-size:.8rem;font-family:var(--mono);color:var(--accent);min-width:1.5rem}.lesson-layout{min-height:100svh;display:flex}.sidebar{border-right:1px solid var(--border);z-index:30;flex-direction:column;flex-shrink:0;height:100svh;transition:width .2s;display:flex;position:sticky;top:0}.sidebar.open{width:var(--sidebar-w)}.sidebar.closed{width:40px}.sidebar-nav{width:var(--sidebar-w);box-sizing:border-box;flex:1;padding:1.5rem 1.1rem .5rem;overflow-y:auto}.sidebar nav{width:var(--sidebar-w);box-sizing:border-box;flex:1;height:auto;padding:1.5rem 1.1rem .5rem;overflow-y:auto}.sidebar-topic{margin-bottom:1.5rem}.sidebar-topic-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0;font-size:.72rem;font-weight:700;line-height:1.3}.sidebar-topic ul{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.sidebar-link{color:var(--text-h);border-radius:8px;padding:.55rem .7rem;font-size:.92rem;line-height:1.35;text-decoration:none;transition:background .15s;display:block}.sidebar-link:hover{background:var(--accent-bg)}.sidebar-link.active{background:var(--accent-bg);color:var(--accent);font-weight:500}.sidebar-toggle{border:1px solid var(--border);background:var(--bg);width:32px;height:32px;color:var(--text);cursor:pointer;z-index:25;border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;transition:border-color .15s;display:flex;position:absolute;top:1.5rem;right:-16px}.sidebar-toggle-seam{top:-16px;bottom:auto}.sidebar-toggle:hover{border-color:var(--accent);color:var(--accent)}.lesson-content{flex:1;min-width:0;padding:2.5rem clamp(1.5rem,4vw,3.5rem) 4rem}.lesson-topbar-inner,.markdown-body,.step-review{max-width:860px;margin-left:auto;margin-right:auto}.markdown-body{font-size:.95rem}.markdown-body h1{letter-spacing:-.02em;margin:0 0 var(--sp-5);font-size:1.8rem;font-weight:700}.markdown-body h2{letter-spacing:-.01em;margin:var(--sp-6) 0 var(--sp-3);font-size:1.3rem;font-weight:700}.markdown-body h3{margin:var(--sp-5) 0 var(--sp-2);font-size:1.08rem;font-weight:600}.markdown-body p{margin:var(--sp-3) 0;line-height:1.75}.markdown-body .code-runner{max-width:none}.markdown-body pre{background:var(--code-bg);padding:var(--sp-4) var(--sp-5);margin:var(--sp-4) 0;border-radius:10px;overflow-x:auto}.markdown-body code{font-family:var(--mono);word-break:normal;overflow-wrap:break-word;font-size:.9rem}.markdown-body pre code{background:0 0;padding:0}.markdown-body table{border-collapse:collapse;width:100%;margin:1rem 0}.markdown-body th,.markdown-body td{border:1px solid var(--border);text-align:left;padding:.5rem .75rem}.markdown-body th{background:var(--accent-bg)}.state-msg.error{color:red}#root{text-align:left;border:none;width:100%;max-width:100%}.lesson-topbar{--topbar-h:3.25rem;z-index:20;margin:-2.5rem calc(-1 * clamp(1.5rem, 4vw, 3.5rem)) calc(var(--topbar-h) + 1.4rem);background:var(--bg);border-bottom:1px solid var(--border);padding:.55rem clamp(1.5rem,4vw,3.5rem);transition:transform .28s;position:sticky;top:0}.lesson-topbar.is-hidden{transform:translateY(-100%)}.lesson-topbar-inner{align-items:center;gap:.6rem;min-width:0;display:flex}.lesson-title-h1{background:color-mix(in srgb, var(--text-h) 5%, transparent);color:var(--text-h);-webkit-line-clamp:2;border-radius:8px;-webkit-box-orient:vertical;min-width:0;margin:0;padding:.3rem .65rem;font-size:.92rem;line-height:1.25;display:-webkit-box;overflow:hidden}.sidebar-topic.is-current>.sidebar-topic-head .sidebar-topic-title{color:var(--accent);font-weight:600}.sidebar-topic.is-current>.sidebar-topic-head .topic-toggle{color:var(--accent)}.lesson-edit-btn{border:1px solid var(--border);cursor:pointer;color:var(--text-muted);background:0 0;border-radius:8px;align-items:center;padding:.4rem;display:inline-flex}.lesson-edit-btn:hover{color:var(--accent);border-color:var(--accent)}.lesson-edit-btn svg{width:16px;height:16px}.markdown-render-error{color:var(--text-muted);border:1px dashed var(--border);border-radius:8px;padding:.75rem 1rem}.step-progress{scrollbar-width:none;flex-wrap:nowrap;gap:.4rem;margin-left:auto;padding:2px;display:flex;overflow-x:auto}.step-progress::-webkit-scrollbar{display:none}.step-dot{border:1px solid var(--border);background:var(--surface);min-width:28px;height:28px;color:var(--text-muted);cursor:pointer;border-radius:7px;flex:none;justify-content:center;align-items:center;padding:0 .4rem;font-size:.8rem;font-weight:600;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.step-dot:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.step-dot.is-done{background:var(--badge-green-bg);border-color:var(--badge-green-bd);color:var(--badge-green)}.step-dot.is-current{background:var(--accent);border-color:var(--accent);color:#fff}.step-dot.is-locked{cursor:not-allowed;opacity:.45}.editor-layout{flex-direction:column;height:100svh;display:flex}.editor-topbar{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:1rem;padding:.75rem 1.5rem;display:flex}.editor-title{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:500;overflow:hidden}.snippet-btns{gap:4px;margin-left:auto;display:flex}.snippet-btn{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:5px;justify-content:center;align-items:center;width:28px;height:28px;font-size:.95rem;line-height:1;transition:border-color .15s,background .15s;display:inline-flex;position:relative}.snippet-btn:hover{border-color:var(--accent);background:var(--accent-bg)}.snippet-btn:after{content:attr(data-tooltip);background:var(--bg);border:1px solid var(--border);font-size:.78rem;font-family:var(--mono);color:var(--text);white-space:pre;box-shadow:var(--shadow);pointer-events:none;opacity:0;z-index:100;border-radius:8px;min-width:220px;padding:.6rem .85rem;line-height:1.6;transition:opacity .15s;position:absolute;top:calc(100% + 6px);right:0}.snippet-btn:hover:after{opacity:1}.save-btn{background:var(--accent-soft);color:var(--accent-soft-text);cursor:pointer;box-shadow:var(--card-shadow);border:none;border-radius:8px;padding:.4rem 1.2rem;font-size:.9rem;font-weight:600;transition:opacity .15s,box-shadow .15s}.save-btn:hover:not(:disabled){box-shadow:var(--shadow)}.save-btn:disabled{opacity:.6;cursor:default}.editor-body{flex:1;display:flex;overflow:hidden}.editor-pane,.preview-pane{flex-direction:column;flex:1;display:flex;overflow:hidden}.editor-topbar{flex-wrap:wrap;row-gap:2px}.editor-steps-row{flex-basis:100%;order:10}.step-chips{flex-wrap:wrap;flex-shrink:1;align-items:center;gap:4px;min-width:0;display:flex}.step-chip{width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.step-chip:hover{background:var(--accent-bg);color:var(--text-h)}.step-chip.active,.step-chip.active:hover{background:var(--accent);color:#fff}.step-chip-add svg{width:14px!important;height:14px!important}.step-chip-wrap{flex-shrink:0;position:relative}.step-chip-menu{z-index:60;background:var(--surface);min-width:210px;max-width:260px;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:2px;padding:.35rem;display:flex;position:absolute;top:calc(100% + 6px);right:-60px}.step-chip-menu-title{color:var(--text-muted);border-bottom:1px solid color-mix(in srgb, var(--border) 55%, transparent);white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;padding:.35rem .6rem .45rem;font-size:.72rem;font-weight:600;overflow:hidden}.step-chip-menu-item{color:var(--text);cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.4rem .6rem;font-size:.82rem;display:flex}.step-chip-menu-item:hover:not(:disabled){background:var(--accent-bg);color:var(--text-h)}.step-chip-menu-item:disabled{opacity:.4;cursor:default}.step-chip-menu-item.danger{color:var(--badge-red)}.step-chip-menu-item.danger:hover{background:var(--badge-red-bg);color:var(--badge-red)}.step-chip-menu-item svg{width:14px!important;height:14px!important}.editor-pane{border-right:1px solid var(--border)}.pane-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;padding:.3rem .75rem;font-size:.75rem;font-weight:600;display:flex}.editor-textarea-wrap{flex:1;min-height:0;display:flex;overflow:hidden}.editor-gutter{font-family:var(--mono);text-align:right;color:color-mix(in srgb, var(--text-muted) 60%, transparent);-webkit-user-select:none;user-select:none;flex-direction:column;flex-shrink:0;padding:1.5rem .5rem 1.5rem .9rem;font-size:.66rem;line-height:1.7;display:flex;overflow:hidden}.editor-gutter span{padding-top:2px;display:block}.editor-textarea{box-sizing:border-box;resize:none;width:100%;font-family:var(--mono);background:var(--bg);color:var(--text-h);white-space:pre-wrap;border:none;outline:none;flex:1;padding:1.5rem;font-size:.82rem;line-height:1.7}.with-gutter .editor-textarea{white-space:pre;padding-left:.75rem;overflow:auto}.preview-scroll{flex:1;padding:1.5rem 2rem;overflow-y:auto}.code-runner{border:1px solid color-mix(in srgb, var(--border) 70%, transparent);margin:var(--sp-5) 0;box-shadow:var(--card-shadow);border-radius:12px;position:relative;overflow:hidden}.code-runner-header{background:var(--code-bg);border-bottom:1px solid var(--border);font-family:var(--mono);color:var(--text);justify-content:space-between;align-items:center;padding:.5rem 1rem;font-size:.8rem;display:flex}.code-runner-header-right{align-items:center;gap:.75rem;display:flex}.run-hint{color:var(--text);opacity:.5;font-size:.72rem}.run-btn{background:var(--accent-soft);color:var(--accent-soft-text);cursor:pointer;box-shadow:var(--card-shadow);border:none;border-radius:8px;padding:.3rem .9rem;font-size:.85rem;font-weight:600;transition:opacity .15s,box-shadow .15s}.run-btn:hover:not(:disabled){box-shadow:var(--shadow)}.run-btn:disabled{opacity:.4;cursor:default}.reset-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:5px;padding:.3rem .75rem;font-size:.85rem;transition:border-color .15s,color .15s}.reset-btn:hover{border-color:var(--accent);color:var(--accent)}.code-runner-header-left{align-items:center;gap:.75rem;display:flex}.cr-points-badge{font-family:var(--mono);color:var(--text-muted);background:var(--bg);border:1px solid var(--border);cursor:default;border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:600;transition:background .2s,border-color .2s,color .2s}.cr-points-badge.is-awarded{color:var(--accent);background:var(--accent-bg);border-color:var(--accent-border)}.cr-textarea-wrap{position:relative}.cr-textarea{box-sizing:border-box;resize:none;width:100%;font-family:var(--mono);background:var(--code-bg);color:var(--text-h);border:none;outline:none;padding:1rem;font-size:.9rem;line-height:1.7;display:block}.lines-left{font-size:.72rem;font-family:var(--mono);color:var(--text);opacity:.4;pointer-events:none;position:absolute;bottom:.4rem;right:.75rem}.cr-typing{background:var(--code-bg);cursor:text;outline:none;min-height:3rem;padding:1rem;transition:box-shadow .15s;position:relative}.cr-typing.cr-focused{box-shadow:inset 0 0 0 2px var(--accent-border)}.cr-pre{font-family:var(--mono);white-space:pre-wrap;word-break:break-all;background:0 0;margin:0;padding:0;font-size:.9rem;line-height:1.7}.cr-typed{color:var(--text-h)}.cr-hint{color:var(--text);opacity:.35}.cr-caret{border-left:2px solid var(--accent);margin-left:-1px;animation:1s step-end infinite blink}.cr-caret-end{border-left:2px solid var(--accent);width:0;animation:1s step-end infinite blink;display:inline-block}.score-pop{z-index:30;font-family:var(--mono);color:var(--accent);background:radial-gradient(circle, var(--accent-bg) 0%, transparent 70%);text-shadow:0 0 28px var(--accent-border), 0 2px 10px #0000004d;pointer-events:none;justify-content:center;align-items:center;gap:.35rem;font-size:2.75rem;font-weight:800;animation:1.6s cubic-bezier(.22,.9,.3,1) forwards scorePop;display:flex;position:absolute;inset:0}.score-pop:before{content:"✓";font-size:.75em}@keyframes scorePop{0%{opacity:0;transform:scale(.4)}15%{opacity:1;transform:scale(1.2)}30%{transform:scale(1)}70%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.08)}}.cr-placeholder{font-family:var(--mono);color:var(--text);opacity:.35;pointer-events:none;font-size:.9rem;position:absolute;top:1rem;left:1rem}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes var-glow{0%{box-shadow:0 0 8px}to{box-shadow:0 0}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.jcell.shake,.code-runner.shake{animation:.35s shake}.console-output{--con-bg:#f3e9d3;--con-bg-2:#ecdfc0;--con-line:#d9c69e;--con-fg:#8a4519;--con-dim:#a98e5e;--con-prompt:#a12d12;--con-in:#5e2c10;--con-err:#c1271a;--con-glow:#a13c1447;border-top:1px solid var(--con-line);background:linear-gradient(180deg, var(--con-bg-2), var(--con-bg) 55%);position:relative;overflow:hidden}:root[data-theme=dark] .console-output{--con-bg:var(--term-bg);--con-bg-2:var(--term-bg-2);--con-line:var(--term-line);--con-fg:var(--term-fg);--con-dim:var(--term-dim);--con-prompt:var(--term-prompt);--con-in:var(--term-in);--con-err:var(--term-err);--con-glow:var(--term-glow)}@media (prefers-color-scheme:dark){:root:not([data-theme]) .console-output{--con-bg:var(--term-bg);--con-bg-2:var(--term-bg-2);--con-line:var(--term-line);--con-fg:var(--term-fg);--con-dim:var(--term-dim);--con-prompt:var(--term-prompt);--con-in:var(--term-in);--con-err:var(--term-err);--con-glow:var(--term-glow)}}.console-output:before{content:"";pointer-events:none;z-index:1;background:repeating-linear-gradient(#0000 0 3px,#0000000f 3px 4px);position:absolute;inset:0}.console-output:after{content:"";background:radial-gradient(90% 130% at 50% -12%, var(--con-glow), transparent 55%);opacity:.22;pointer-events:none;z-index:1;position:absolute;inset:0}.console-pre{z-index:2;font-family:var(--mono);white-space:pre-wrap;word-break:break-all;background:0 0;margin:0;padding:.75rem 1rem;font-size:.9rem;line-height:1.7;position:relative}.co-out{color:var(--con-fg);text-shadow:0 0 7px var(--con-glow)}.co-err{color:var(--con-err);text-shadow:0 0 7px var(--con-err)}.co-prompt{color:var(--con-prompt);text-shadow:0 0 8px var(--con-glow);font-weight:600}.co-in{color:var(--con-in);text-shadow:0 0 7px var(--con-glow)}.co-empty{color:var(--con-dim);font-style:italic}.co-input-row{display:inline}.co-input{border:none;border-bottom:1px dashed var(--con-line);font-family:var(--mono);color:var(--con-in);text-shadow:0 0 7px var(--con-glow);caret-color:var(--con-prompt);vertical-align:baseline;background:0 0;outline:none;width:40ch;min-width:8ch;max-width:80%;font-size:.9rem;line-height:1.7}.hljs{color:var(--text-h);background:0 0;display:block;overflow-x:auto}.hljs-keyword{color:#c678dd}.hljs-built_in{color:#61afef}.hljs-string{color:#98c379}.hljs-number{color:#d19a66}.hljs-comment{color:#5c6370;font-style:italic}.hljs-title{color:#61afef}.hljs-params{color:#abb2bf}.hljs-operator{color:#56b6c2}.tetris-idle{font-family:var(--mono);color:var(--text);background:var(--code-bg);padding:1.25rem 1rem;font-size:.88rem;line-height:1.7}.tetris-idle p{margin:.25rem 0}.tetris-idle-meta{opacity:.55;font-size:.8rem}.tetris-flex-tag{color:var(--term-prompt)}.tetris-lives{color:#f38ba8;gap:3px;font-size:.9rem;display:inline-flex}@keyframes lifeLost{0%{filter:brightness();transform:scale(1)}20%{filter:brightness(2.5)saturate(3);color:red;transform:scale(1.5)}50%{transform:scale(.85)}75%{transform:scale(1.2)}to{filter:brightness();transform:scale(1)}}.tetris-lives.lost{animation:.65s lifeLost}.tetris-level-badge{letter-spacing:.1em;border:1px solid;border-radius:4px;padding:2px 6px;font-size:.7rem;font-weight:700}.tetris-level-badge.lvl-easy{color:var(--term-fg);border-color:var(--term-line)}.tetris-level-badge.lvl-mid{color:var(--term-prompt);border-color:var(--term-line)}.tetris-level-badge.lvl-hard{color:var(--term-err);border-color:var(--term-line)}.tetris-score-inline{font-family:var(--mono);color:var(--term-fg);text-shadow:0 0 6px var(--term-glow);text-align:right;min-width:3ch;font-size:.85rem}.tetris-well{background:radial-gradient(100% 70% at 50% 0%, var(--term-glow), transparent 60%), linear-gradient(180deg, var(--term-bg-2), var(--term-bg) 60%);width:100%;height:480px;position:relative;overflow:hidden}.tetris-crt-overlay{pointer-events:none;z-index:2;background:repeating-linear-gradient(#0000 0 3px,#0000001a 3px 4px);position:absolute;inset:0}.tetris-chip{z-index:1;background:var(--term-bg-2);white-space:pre;max-width:calc(100% - 24px);box-shadow:0 0 16px var(--term-glow);border:1px solid #2a5c2a;border-radius:6px;padding:.65rem 1.1rem;position:absolute;top:0;left:50%;transform:translate(-50%)translateY(0)}.tetris-code{font-family:var(--mono);color:var(--term-fg);text-shadow:0 0 8px var(--term-glow);white-space:pre;background:0 0;margin:0;font-size:.9rem;line-height:1.65}.tetris-floor{background:var(--term-err);opacity:.6;z-index:3;height:2px;box-shadow:0 0 8px var(--term-err);position:absolute;bottom:0;left:0;right:0}.tetris-timer-track{background:var(--term-bg-2);height:3px;overflow:hidden}.tetris-timer-fill{height:100%;transition:background-color .3s}.tetris-input-hint{font-size:.7rem;font-family:var(--mono);color:var(--text);opacity:.4;pointer-events:none;position:absolute;bottom:.4rem;right:.75rem}.tetris-feedback{font-family:var(--mono);border-top:1px solid var(--term-line);background:var(--term-bg);padding:.5rem 1rem;font-size:.85rem}.tetris-feedback.ok{color:var(--term-fg);text-shadow:0 0 6px var(--term-glow)}.tetris-feedback.err{color:var(--term-err);text-shadow:0 0 6px var(--term-err)}.tetris-endscreen{background:linear-gradient(180deg, var(--term-bg-2), var(--term-bg) 60%);text-align:center;font-family:var(--mono);padding:2.5rem 1rem}.tetris-end-title{letter-spacing:.25em;text-transform:uppercase;margin-bottom:.75rem;font-size:1.2rem;font-weight:700}.tetris-end-title.gameover{color:var(--term-err);text-shadow:0 0 16px var(--term-err)}.tetris-end-title.completed{color:var(--term-fg);text-shadow:0 0 16px var(--term-glow)}.tetris-score-big{color:var(--term-fg);text-shadow:0 0 24px var(--term-glow);font-size:4rem;font-weight:700;line-height:1}.tetris-score-total{opacity:.4;font-size:1.8rem}.tetris-score-label{color:var(--term-dim);margin-top:.4rem;font-size:.9rem}.tetris-best{color:var(--term-dim);font-size:.82rem;font-family:var(--mono);letter-spacing:.03em;margin-top:.75rem}.hljs-punctuation{color:#abb2bf}.nav-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #3a3f5c;border-radius:6px;align-items:center;padding:.35rem .8rem;font-size:.82rem;text-decoration:none;display:inline-flex}.nav-btn:hover{color:var(--text);border-color:#7c6bc9}.lesson-item{align-items:center;gap:.4rem;display:flex}.lesson-item .lesson-link{flex:1}.lesson-item.draft .lesson-link .el-title,.lesson-item.draft .lesson-link .lesson-num{opacity:.35;font-style:italic;text-decoration:line-through}.lesson-item.draft .lesson-link:hover .el-title,.lesson-item.draft .lesson-link:hover .lesson-num{opacity:.6}.draft-badge{background:var(--badge-red-bg);color:var(--badge-red);border:1px solid var(--badge-red-bd);border-radius:4px;margin-left:.5rem;padding:1px 5px;font-size:.7rem;display:inline-block}.draft-toggle,.draft-toggle-lesson{cursor:pointer;width:24px;height:24px;color:var(--text-muted);opacity:.7;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,opacity .15s;display:inline-flex}.draft-toggle svg,.draft-toggle-lesson svg{width:15px;height:15px}.draft-toggle:hover,.draft-toggle-lesson:hover{opacity:1;color:var(--accent);background:var(--accent-bg)}.draft-toggle.is-draft,.draft-toggle-lesson.is-draft{opacity:.9}.add-btn{color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border:1px dashed #2a2e4a;border-radius:6px;width:100%;margin-top:.5rem;padding:.3rem .7rem;font-size:.8rem;display:block}.add-btn:hover{color:var(--text);border-color:#7c6bc9}.sidebar.open{flex-direction:column;display:flex}.sidebar-nav{flex:1;padding:1.25rem 1.1rem 0;overflow-y:auto}.sidebar-lesson-item{flex-direction:column;align-items:stretch;gap:1px;display:flex}.sidebar-lesson-item.draft .sidebar-link{opacity:.4;font-style:italic;text-decoration:line-through}.sidebar-lesson-item.draft .sidebar-link:hover{opacity:.65}.sidebar-lesson-item .sidebar-link{flex:1}.draft-toggle-sm{cursor:pointer;width:18px;height:18px;color:var(--text-muted);opacity:.55;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,opacity .15s;display:inline-flex}.draft-toggle-sm svg{width:12px;height:12px}.draft-toggle-sm:hover{opacity:1;color:var(--accent);background:var(--accent-bg)}.draft-toggle-sm.is-draft{opacity:.85}.add-btn-sm{border:1px dashed var(--border);color:var(--text-muted);cursor:pointer;text-align:left;background:0 0;border-radius:8px;width:100%;margin-top:.5rem;padding:.45rem .7rem;font-size:.8rem;font-weight:500;transition:border-color .15s,color .15s,background .15s}.add-btn-sm:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.editor-topbar-actions{align-items:center;gap:.5rem;display:flex}.import-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #3a3f5c;border-radius:6px;padding:.35rem .75rem;font-size:.82rem}.import-btn:hover{color:var(--text);border-color:#7c6bc9}.editor-topbar{background:var(--surface);gap:.6rem;padding:.6rem 1rem}.editor-breadcrumb{flex:1;align-items:center;gap:.4rem;min-width:0;font-size:.9rem;display:flex;overflow:hidden}.editor-lesson{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.editor-sep{color:var(--text-muted);opacity:.6}.editor-step{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.lesson-status-chip svg{width:13px;height:13px}.editor-divider{background:var(--border);width:1px;height:22px;margin:0 .15rem}.ghost-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.35rem;padding:.4rem .7rem;font-size:.82rem;transition:color .15s,background .15s;display:inline-flex}.ghost-btn:hover:not(:disabled){color:var(--text-h);background:var(--accent-bg)}.ghost-btn:disabled{opacity:.45;cursor:default}.ghost-btn svg{width:15px;height:15px}.ghost-btn.is-on{color:var(--accent);background:var(--accent-bg)}.md-toolbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:30;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:.35rem .5rem;padding:.4rem .6rem;display:flex;position:relative}.md-group{border-right:1px solid color-mix(in srgb, var(--border) 55%, transparent);align-items:center;gap:2px;padding-right:.5rem;display:flex}.md-group:last-child{border-right:none;padding-right:0}.md-group-right{border-right:none}.md-busy{font-size:.9rem}.md-tool,.md-toolbar .snippet-btn{width:30px;height:30px;color:var(--text);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.md-tool:hover,.md-toolbar .snippet-btn:hover{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.md-tool svg{width:16px;height:16px}.md-tool-caret{gap:.2rem;width:auto;padding:0 .45rem;font-size:.82rem;font-weight:500}.md-tool-caret.is-open{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.md-caret{opacity:.7;width:13px;height:13px}.md-pop{position:relative}.md-pop-menu{z-index:200;border:1px solid var(--border);background:var(--bg);min-width:200px;box-shadow:var(--shadow);border-radius:10px;padding:.35rem;position:absolute;top:calc(100% + 6px);left:0}.md-pop-wide{min-width:300px}.md-pop-right{left:auto;right:0}.md-pop-list{flex-direction:column;gap:1px;display:flex}.md-pop-item{width:100%;color:var(--text-h);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:.55rem;padding:.5rem .6rem;font-size:.85rem;display:flex}.md-pop-item:hover{background:var(--accent-bg);color:var(--accent)}.md-pop-item svg{flex-shrink:0;width:16px;height:16px}.md-color-grid{grid-template-columns:repeat(3,1fr);gap:6px;padding:.2rem;display:grid}.md-color{cursor:pointer;border:1px solid #00000026;border-radius:6px;width:34px;height:26px}.md-color:hover{box-shadow:var(--shadow);transform:scale(1.08)}.md-table-picker{padding:.3rem}.md-table-grid{flex-direction:column;gap:3px;display:flex}.md-table-row{gap:3px;display:flex}.md-table-cell{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:3px;width:20px;height:20px;padding:0}.md-table-cell.is-on{background:var(--accent);border-color:var(--accent)}.md-table-size{text-align:center;color:var(--text-muted);margin-top:.5rem;font-size:.78rem}.editor-body.preview-collapsed .editor-pane{border-right:none}.markup-issues{border:1px solid var(--badge-red,#dc2626);background:color-mix(in srgb, var(--badge-red,#dc2626) 8%, transparent);border-radius:10px;margin:.6rem;padding:.7rem .9rem;font-size:.83rem}.markup-issues-head{color:var(--badge-red,#dc2626);align-items:center;gap:.4rem;margin-bottom:.4rem;font-weight:600;display:flex}.markup-issues-head svg{width:16px;height:16px}.markup-issues ul{flex-direction:column;gap:.4rem;margin:0;padding-left:0;list-style:none;display:flex}.markup-issues li{color:var(--text-h)}.markup-issue-line{font-family:var(--mono);background:var(--accent-bg);color:var(--accent);border-radius:5px;margin-right:.35rem;padding:.05rem .35rem;font-size:.72rem;display:inline-block}.markup-issue-fix{color:var(--text-muted);margin-top:.1rem;font-size:.78rem;display:block}.jcell-exact{padding:0}.jcell-exact .cr-typing{background:0 0;border:none;margin:0;padding:.1rem 0}.jcell-exact .cr-pre{margin:0}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:.4rem;padding:.9rem 1.1rem 1.1rem;display:flex}.sidebar-header{border-top:none;border-bottom:1px solid var(--border);justify-content:center;min-height:57px;padding:.45rem 1.1rem}.sidebar-header .sidebar-toggle-seam{top:auto;bottom:-16px}.total-score{justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:1.5rem;padding:.15rem 0;display:flex}.total-score-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.72rem;font-weight:700;transition:color .15s}.total-score:hover .total-score-label{color:var(--accent)}.total-score-trophy{width:13px!important;height:13px!important}.total-score-value{font-family:var(--mono);color:var(--text-h);text-shadow:0 1px 2px color-mix(in srgb, var(--text-h) 22%, transparent);font-size:.95rem;font-weight:600}.total-score-max{color:var(--text-muted);text-shadow:none;font-size:.72rem;font-weight:400}.home-sidebar-nav{padding:1.5rem 1.1rem .5rem}.users-sidebar.open{width:300px}.users-sidebar.closed{width:40px}.role-tab.active{background:var(--accent);color:#fff}.math-block{text-align:center;margin:1.25rem 0;display:block;overflow-x:auto}.math-inline{display:inline}.katex{color:var(--text-h)}.lesson-delete-sm{width:22px;height:22px;color:var(--badge-red);opacity:.7;cursor:pointer;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,opacity .15s;display:inline-flex}.lesson-delete-sm svg{width:14px;height:14px}.lesson-delete-sm:hover{opacity:1;background:var(--badge-red-bg)}.topic-head{align-items:center;gap:.5rem;display:flex}.topic-head h2{letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:700}.topic-head-actions{align-items:center;gap:.3rem;display:flex}.topic-section.draft>.topic-head h2{opacity:.35;font-style:italic;text-decoration:line-through}.sidebar-topic-head{flex-wrap:wrap;align-items:flex-start;gap:.3rem .5rem;margin-bottom:.6rem;display:flex}.sidebar-topic-head .sidebar-topic-title{flex:1;min-width:60%;margin:0}.sidebar-topic-actions{flex-wrap:wrap;align-items:center;gap:3px;margin-top:1px;display:flex}.sidebar-topic.draft .sidebar-topic-title{opacity:.4;font-style:italic;text-decoration:line-through}.topic-delete-sm{width:18px;height:18px;color:var(--badge-red);opacity:.6;cursor:pointer;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,opacity .15s;display:inline-flex}.topic-delete-sm svg{width:12px;height:12px}.topic-delete-sm:hover{opacity:1;background:var(--badge-red-bg)}.inline-rename-input{font:inherit;color:var(--text-h);background:var(--bg);border:1px solid var(--accent);box-sizing:border-box;border-radius:5px;outline:none;width:100%;padding:2px 6px}.el-title-input{flex:1;min-width:0}.el-title{min-width:0}.lesson-link[title]:hover .el-title,.sidebar-link[title]:hover .el-title{text-decoration:none}.lesson-item .draft-toggle,.lesson-item .lesson-delete-sm,.topic-head-actions .draft-toggle,.topic-head-actions .lesson-delete-sm,.sidebar-lesson-item .draft-toggle-sm,.sidebar-lesson-item .topic-delete-sm,.sidebar-topic-actions .draft-toggle-sm,.sidebar-topic-actions .topic-delete-sm{opacity:0;pointer-events:none;transition:opacity .12s}.lesson-item:hover .draft-toggle,.lesson-item:hover .lesson-delete-sm,.topic-head:hover .draft-toggle,.topic-head:hover .lesson-delete-sm,.sidebar-lesson-item:hover .draft-toggle-sm,.sidebar-lesson-item:hover .topic-delete-sm,.sidebar-topic-head:hover .draft-toggle-sm,.sidebar-topic-head:hover .topic-delete-sm{opacity:.65;pointer-events:auto}.lesson-item:hover .draft-toggle:hover,.lesson-item:hover .lesson-delete-sm:hover,.topic-head:hover .draft-toggle:hover,.topic-head:hover .lesson-delete-sm:hover,.sidebar-lesson-item:hover .draft-toggle-sm:hover,.sidebar-lesson-item:hover .topic-delete-sm:hover,.sidebar-topic-head:hover .draft-toggle-sm:hover,.sidebar-topic-head:hover .topic-delete-sm:hover{opacity:1}.lesson-status-chip{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.8rem;font-weight:600;transition:filter .15s,border-color .15s;display:inline-flex;border:none!important}.lesson-status-chip.draft{color:#f38ba8;background:#f38ba81a;border-color:#f38ba855}.lesson-status-chip.published{color:var(--badge-green);background:var(--badge-green-bg);border-color:var(--badge-green-bd)}.lesson-status-chip:hover{filter:brightness(1.25)}.sidebar-footer{position:relative}.code-runner{box-shadow:var(--card-shadow);border-color:var(--term-line)}.move-btn{background:var(--code-bg);border:1px solid var(--border);cursor:pointer;width:24px;height:24px;color:var(--text-muted);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s,transform .1s;display:inline-flex}.move-btn svg{width:13px;height:13px}.move-btn:hover{color:var(--accent);background:var(--accent-bg);border-color:var(--accent-border)}.move-btn:active{transform:scale(.92)}.move-btn-sm{width:20px;height:20px}.move-btn-sm svg{width:11px;height:11px}.sidebar-lesson-actions{flex-shrink:0;justify-content:flex-start;align-items:center;gap:3px;padding:0 .35rem 3px;display:inline-flex}.lesson-item .move-btn,.topic-head-actions .move-btn,.sidebar-lesson-item .move-btn,.sidebar-topic-actions .move-btn{opacity:0;pointer-events:none;transition:opacity .12s}.lesson-item:hover .move-btn,.topic-head:hover .move-btn,.sidebar-lesson-item:hover .move-btn,.sidebar-topic-head:hover .move-btn{opacity:.65;pointer-events:auto}.lesson-item:hover .move-btn:hover,.topic-head:hover .move-btn:hover,.sidebar-lesson-item:hover .move-btn:hover,.sidebar-topic-head:hover .move-btn:hover{opacity:1}.markdown-body img{max-width:100%;height:auto;margin:var(--sp-5) auto;box-shadow:var(--card-shadow);border-radius:10px;display:block}.markdown-body .chat-avatar{border:none;border-radius:999px;margin:0}.markdown-body .pitosha-hint-avatar{margin-top:2px}.topic-points{font-family:var(--mono);color:var(--text-muted);flex-shrink:0;margin-left:.5rem;padding:.15rem 0;font-size:.78rem}.sidebar-topic-points{font-family:var(--mono);color:var(--text-muted);text-shadow:0 1px 2px color-mix(in srgb, var(--text-h) 18%, transparent);flex-shrink:0;margin-top:1px;padding:.15rem 0;font-size:.68rem}.user-row.editing{flex-wrap:wrap;gap:.5rem}.lesson-nav-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-h);cursor:pointer;box-shadow:var(--card-shadow);border-radius:8px;align-items:center;gap:.4rem;padding:.6rem 1.4rem;font-size:.95rem;font-weight:500;transition:border-color .15s,background .15s,transform .1s;display:inline-flex}.lesson-nav-btn.compact{height:28px;box-shadow:none;border-radius:7px;flex:none;gap:.2rem;padding:0 .6rem;font-size:.82rem;font-weight:600}.lesson-nav-btn.compact svg{width:15px;height:15px}.lesson-nav-btn.compact:first-child{margin-right:.15rem}@media (width<=560px){.lesson-nav-btn.compact .lnb-label{display:none}}.lesson-nav-btn:hover:not(:disabled):not(.is-disabled){border-color:var(--accent);color:var(--accent)}.lesson-nav-btn:active:not(:disabled):not(.is-disabled){transform:translateY(1px)}.lesson-nav-btn:disabled{opacity:.4;cursor:default}.lesson-nav-next{background:var(--accent);color:#fff;border-color:var(--accent)}.lesson-nav-next:hover:not(.is-disabled){filter:brightness(1.08);color:#fff}.lesson-nav-next.is-disabled{background:var(--code-bg);color:var(--text-muted);border-color:var(--border);cursor:not-allowed;box-shadow:none}.lesson-medal{flex-shrink:0;font-size:.95rem;line-height:1}.sidebar-link .lesson-medal{margin-right:1px;font-size:.85rem}.cp-header{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:1rem;padding:.3rem clamp(1rem,3vw,2rem);display:flex}.cp-brand{align-items:center;gap:.55rem;min-width:0;display:flex}.cp-brand.no-underline:hover .cp-brand-title{color:var(--accent)}.cp-page-title{max-width:64rem;padding:var(--sp-5) clamp(1rem, 3vw, 2rem) 0;color:var(--text-h);align-items:center;gap:.5rem;margin:0 auto;font-size:1.4rem;font-weight:800;display:flex}.cp-page-title svg,.cp-page-title img,.cp-page-title .chat-avatar{width:30px;height:30px}.cp-brand-mark{width:26px;height:26px;display:block}.cp-brand-text{flex-direction:column;line-height:1.15;display:flex}.cp-brand-title{color:var(--text-h);font-size:.95rem;font-weight:700}.cp-brand-sub{color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;font-size:.7rem}.cp-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.cp-tool{border:1px solid var(--border);background:var(--bg);width:32px;height:32px;color:var(--text-muted);border-radius:8px;justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:inline-flex}.cp-tool:hover{color:var(--accent);border-color:var(--accent)}.cp-tool svg{width:15px;height:15px}.cp-sep{background:var(--border);width:1px;height:20px;margin:0 .15rem}.cp-user-menu{flex-shrink:0}.cp-user-menu .sidebar-footer{border-top:none;gap:0;width:max-content;padding:0}.cp-user-menu .sidebar-footer span{white-space:nowrap}.cp-user-menu .sidebar-footer>.flex>button:first-child{padding-top:2px;padding-bottom:2px}.cp-user-menu .sidebar-footer .h-8.w-8{width:26px;height:26px;font-size:.78rem}.cp-user{border:1px solid var(--border);background:var(--bg);border-radius:10px;align-items:center;gap:.55rem;padding:.25rem .35rem .25rem .3rem;display:flex}.cp-avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:.85rem;font-weight:700;display:flex}.cp-user-text{flex-direction:column;min-width:0;line-height:1.15;display:flex}.cp-user-name{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;max-width:180px;font-size:.84rem;font-weight:600;overflow:hidden}.cp-user-sub{color:var(--text-muted);font-size:.7rem}.cp-logout{width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.cp-logout:hover{color:#dc2626;border-color:color-mix(in srgb, #dc2626 40%, var(--border));background:var(--surface)}.cp-logout svg{width:14px;height:14px}.cp-main{max-width:900px;padding:clamp(48px, 9vh, 76px) var(--sp-5) var(--sp-7);margin:0 auto}.cp-hero{margin-bottom:clamp(var(--sp-6), 8vh, 72px)}.cp-hero-date{margin:0 0 var(--sp-2);color:var(--text-muted);font-size:.82rem}.cp-hero-date:first-letter{text-transform:uppercase}.cp-hero-title{margin:0 0 var(--sp-5);letter-spacing:-.03em;color:var(--text-h);font-size:clamp(1.9rem,4vw,2.4rem);font-weight:800;line-height:1.15}.btn-soft{align-items:center;gap:var(--sp-2);background:var(--accent-soft);color:var(--accent-soft-text);box-shadow:var(--card-shadow);border-radius:10px;font-weight:600;transition:box-shadow .15s;display:inline-flex}.btn-soft:hover{box-shadow:var(--shadow)}.btn-soft svg{transition:transform .15s}.btn-soft:hover svg{transform:translate(2px)}.cp-hero-cta{padding:var(--sp-3) var(--sp-5);font-size:1rem}.cp-hero-links{gap:var(--sp-5);display:flex}.cp-hero-link{align-items:center;gap:var(--sp-2);color:var(--text);padding:var(--sp-2) var(--sp-3);border-radius:8px;font-size:.95rem;font-weight:500;transition:background .15s,color .15s;display:inline-flex}.cp-hero-link:hover{background:var(--accent-bg);color:var(--accent)}.cp-hero-facts{gap:var(--sp-7);margin-top:clamp(var(--sp-5), 5vh, var(--sp-7));flex-wrap:wrap;display:flex}.cp-hero-fact{gap:var(--sp-1);flex-direction:column;display:flex}.cp-hero-fact-value{letter-spacing:-.02em;color:var(--text-h);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:700}.cp-hero-fact-value em{color:var(--text-muted);font-size:1.05rem;font-style:normal;font-weight:500}.cp-hero-fact-label{color:var(--text-muted);font-size:.8rem}.cp-hero-fact.is-warn .cp-hero-fact-value{color:var(--badge-red)}.cp-section-head{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5);display:flex}.cp-section-title{letter-spacing:-.01em;color:var(--text-h);margin:0;font-size:1.25rem;font-weight:700}.cp-section-count{color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:999px;padding:.1rem .5rem;font-size:.75rem;font-weight:700}.cp-section-progress{color:var(--text-muted);font-size:.8rem;font-family:var(--mono);align-items:center;gap:.5rem;margin-left:auto;display:flex}.cp-section-bar{background:var(--code-bg);border-radius:4px;width:140px;height:6px;overflow:hidden}.cp-section-bar span{background:var(--accent);border-radius:4px;height:100%;transition:width .4s;display:block}@media (width<=640px){.cp-brand-sub,.cp-user-text{display:none}}.courses-grid{gap:var(--sp-4);grid-template-columns:repeat(2,1fr);display:grid}@media (width<=760px){.courses-grid{grid-template-columns:1fr}}.course-card{gap:var(--sp-3);background:var(--surface);box-shadow:var(--card-shadow);padding:var(--sp-4);border-radius:16px;flex-direction:column;transition:box-shadow .15s;display:flex;position:relative}.course-card:hover{box-shadow:var(--shadow)}.course-card.course-card-draft{opacity:.6}.course-card-main{gap:var(--sp-3);align-items:flex-start;min-width:0;display:flex}.course-card-thumb{border-radius:12px;flex-shrink:0;width:84px;height:84px;display:block;overflow:hidden}.course-card-thumb-img{-o-object-fit:cover;object-fit:cover;background:var(--code-bg);width:100%;height:100%;display:block}.course-card-cover-placeholder{background:radial-gradient(circle at 30% 20%, var(--accent-bg), var(--code-bg) 70%);width:100%;height:100%}.course-card-body{gap:var(--sp-1);flex-direction:column;flex:1;min-width:0;display:flex}.course-card-title-row{align-items:center;gap:var(--sp-2);display:flex}.course-card-title{color:var(--text-h);font-size:1.05rem;font-weight:700;line-height:1.3}.course-card-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.82rem;line-height:1.45;display:-webkit-box;overflow:hidden}.course-card-meta{gap:var(--sp-1) var(--sp-3);color:var(--text-muted);flex-wrap:wrap;font-size:.78rem;display:flex}.course-card-progress-row{align-items:center;gap:var(--sp-3);min-height:24px;display:flex}.course-card-progress{background:var(--code-bg);border-radius:999px;flex:1;height:5px;overflow:hidden}.course-card-progress-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .2s}.course-card-cta{padding:5px var(--sp-3);background:var(--accent-soft);color:var(--accent-soft-text);box-shadow:var(--card-shadow);border-radius:8px;flex-shrink:0;align-items:center;gap:.3rem;font-size:.84rem;font-weight:600;transition:box-shadow .15s;display:inline-flex}.course-card-cta:hover{box-shadow:var(--shadow)}.course-card-cta svg{transition:transform .15s}.course-card-cta:hover svg{transform:translate(2px)}.course-card-actions{flex-wrap:wrap;align-items:center;gap:.25rem;padding:0 1rem .75rem;display:flex}.chat-widget{z-index:200;flex-direction:column-reverse;align-items:flex-end;gap:.75rem;display:flex;position:fixed;top:1.25rem;right:1.25rem}.chat-widget-expanded{z-index:auto;flex:0 0 calc(var(--sidebar-w) + 1px);width:calc(var(--sidebar-w) + 1px);height:100svh;transition:flex-basis .2s,width .2s;position:sticky;top:0;right:auto;overflow:hidden}.chat-widget-wide{z-index:400;overflow:visible}.jcell{max-width:none;margin:var(--sp-5) auto;border:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:var(--surface);box-shadow:var(--card-shadow);border-radius:12px;position:relative;overflow:hidden}.jcell-toolbar{border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:.5rem;padding:.4rem .75rem;display:flex}.jcell-kind{font-family:var(--mono);color:var(--text-muted);font-size:.78rem}.jcell-hint{font-family:var(--mono);color:var(--text-muted);margin-left:auto;font-size:.75rem}.jcell-hint-exact{color:var(--accent);background:var(--accent-bg);border-radius:999px;margin-left:auto;padding:.1rem .5rem;font-size:.72rem}.jcell-hint-exact+.jcell-hint{margin-left:.5rem}.jcell-run{background:var(--accent-soft);color:var(--accent-soft-text);cursor:pointer;box-shadow:var(--card-shadow);border:none;border-radius:8px;padding:.3rem .7rem;font-size:.8rem;font-weight:600;transition:filter .15s,box-shadow .15s}.jcell-run:hover:not(:disabled){filter:brightness(1.08)}.jcell-run:disabled{opacity:.5;cursor:default}.jcell-row{align-items:flex-start;display:flex}.jcell-gutter{font-family:var(--mono);text-align:right;-webkit-user-select:none;user-select:none;white-space:nowrap;flex:0 0 62px;padding:.6rem .4rem 0 0;font-size:.72rem}.jcell-gutter-in{color:var(--accent)}.jcell-gutter-out{color:#c2410c}.jcell-input{resize:none;min-width:0;font-family:var(--mono);color:var(--text-h);background:0 0;border:none;border-left:3px solid #0000;outline:none;flex:1;padding:.55rem .75rem .55rem .25rem;font-size:.88rem;line-height:1.5}.jcell-input:focus{border-left-color:var(--accent)}.jcell-row-out{border-top:1px dashed var(--border)}.jcell-row-out+.jcell-row-out{border-top:none}.jcell-output{flex:1;min-width:0;padding:.3rem .75rem .3rem .25rem;overflow-x:auto}.markdown-body .jcell-output pre{background:0 0;border:none;border-radius:0;margin:0;padding:0}.jcell-stream,.jcell-value,.jcell-error{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;margin:0;font-size:.85rem;line-height:1.45}.jcell-value{color:var(--text-h)}.jcell-error{color:var(--badge-red,#dc2626)}.jcell-latex{padding:.25rem 0;overflow-x:auto}.jcell-image{background:#fff;border-radius:6px;max-width:100%}.groups-page{padding:1.25rem 1.5rem 3rem}.groups-header{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.groups-header h1{color:var(--text-h);flex:1;margin:0;font-size:1.4rem}.groups-layout{align-items:flex-start;gap:1rem;display:flex}.groups-list{flex-direction:column;flex:0 0 260px;gap:.25rem;padding:.6rem;display:flex;position:sticky;top:1rem}.groups-empty,.groups-note{color:var(--text-muted);margin:.25rem 0;font-size:.85rem}.groups-item{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-direction:column;gap:.1rem;padding:.5rem 2rem .5rem .7rem;display:flex;position:relative}.groups-item-pin{width:24px;height:24px;color:var(--text-muted);opacity:0;border-radius:6px;place-items:center;transition:opacity .12s,background .12s,color .12s;display:grid;position:absolute;top:.45rem;right:.4rem}.groups-item:hover .groups-item-pin{opacity:.7}.groups-item-pin:hover{background:var(--accent-bg);color:var(--accent);opacity:1!important}.groups-item.is-pinned .groups-item-pin{opacity:1;color:var(--accent)}.groups-item.is-pinned .groups-item-pin svg{fill:var(--accent-bg);transform:rotate(-30deg)}.groups-item-pin svg{width:15px;height:15px}.groups-item:hover{background:var(--bg)}.groups-item.is-active{border-color:var(--accent-border);background:var(--accent-bg)}.groups-item-title{color:var(--text-h);font-weight:600}.groups-item-meta{color:var(--text-muted);font-size:.75rem}.groups-detail{flex-direction:column;flex:1;gap:1rem;min-width:0;display:flex}.groups-block{padding:1rem 1.25rem}.groups-block-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.groups-block-head h2{color:var(--text-h);margin:0;font-size:1.15rem}.groups-subhead{color:var(--text-h);margin:.9rem 0 .3rem;font-size:.95rem}.groups-members-head .groups-subhead{margin:.9rem 0 0}.groups-courses,.groups-picker{flex-direction:column;gap:.35rem;margin:.4rem 0;display:flex}.groups-picker{border:1px dashed var(--border);border-radius:8px;max-height:260px;padding:.6rem .8rem;overflow-y:auto}.groups-course{cursor:pointer;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.groups-course input{accent-color:var(--accent)}.groups-course-title{min-width:0}.groups-members{flex-direction:column;gap:.15rem;margin-top:.35rem;display:flex}.groups-member{border-radius:6px;justify-content:space-between;align-items:center;padding:.15rem .25rem;display:flex}.groups-member:hover{background:var(--bg)}.groups-member-name{cursor:pointer;color:var(--text-h);font-size:inherit;text-align:left;background:0 0;border:none;padding:0}.groups-member-name:hover{color:var(--accent);text-decoration:underline}.groups-members-tools{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.sf-pop{box-shadow:var(--shadow)}.gci-panel{flex-direction:column;width:min(680px,94vw);height:auto;max-height:90vh;display:flex}.gci-body{flex-direction:column;flex:1;gap:1rem;padding:1rem 1.25rem 1.2rem;display:flex;overflow-y:auto}.gci-summary{flex-wrap:wrap;gap:.5rem;display:flex}.gci-chip{background:var(--code-bg);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:.25rem .7rem;font-size:.8rem;font-weight:600}.gci-chip.is-ok{color:var(--badge-green);background:var(--badge-green-bg);border-color:var(--badge-green-bd)}.gci-chip.is-warn{color:var(--badge-red);background:var(--badge-red-bg);border-color:var(--badge-red-bd)}.gci-block{flex-direction:column;gap:.5rem;display:flex}.gci-block .users-form-subhead.is-warn{color:var(--badge-red)}.gci-list{color:var(--text-h);margin:0;padding-left:1.1rem;font-size:.88rem;line-height:1.6}.gci-list code{font-size:.78rem}.gci-list em{color:var(--text-muted);font-size:.8rem;font-style:normal}.gci-fix-row{border:1px dashed var(--badge-red-bd);border-radius:9px;flex-direction:column;gap:.45rem;padding:.6rem .75rem;display:flex}.gci-fix-email{font-family:var(--mono);color:var(--text-h);font-size:.8rem}.gci-fix-fields{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.5rem;display:grid}.gci-fix-field>span{font-size:.74rem}.gci-remove-mode{flex-direction:column;gap:.3rem;padding-left:.4rem;display:flex}.groups-search{margin:.4rem 0 .1rem;position:relative}.groups-search-icon{width:14px;height:14px;color:var(--text-muted);pointer-events:none;position:absolute;top:50%;left:.55rem;transform:translateY(-50%)}.groups-search input{padding-left:2rem}.groups-table-wrap{margin-top:.9rem;overflow-x:auto}.groups-table{border-collapse:collapse;width:100%;font-size:.85rem}.groups-table th,.groups-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.45rem .7rem}.groups-table td+td,.groups-table th+th{text-align:right}.groups-table td:nth-child(2),.groups-table th:nth-child(2){text-align:left}.groups-table td{font-variant-numeric:tabular-nums}.groups-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--surface);font-size:.7rem;font-weight:600;position:sticky;top:0}.groups-table tbody tr:hover{background:var(--accent-bg)}.groups-table tr.is-inactive td{color:var(--text-muted)}.groups-review{margin-top:1rem}.groups-review .step-review{margin-top:.75rem}.cg-code{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;color:var(--text-h);margin:0;padding:.7rem .9rem;font-size:.88rem;line-height:1.9}.cg-gap{vertical-align:baseline;border:none;border-bottom:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);font:inherit;color:var(--text-h);border-radius:3px 3px 0 0;outline:none;margin:0 .1rem;padding:0 .25rem;transition:background .15s,border-color .15s;display:inline-block}.cg-gap:focus{background:color-mix(in srgb, var(--accent) 16%, transparent)}.cg-gap-free{border-bottom-style:dashed}.cg-gap-wrong{border-bottom-color:var(--badge-red,#dc2626);background:#dc26261a}.cg-gap::placeholder{color:var(--text-muted);opacity:.7}.jcell-preimports{border-bottom:1px dashed var(--border);font-family:var(--mono);color:var(--text-muted);padding:.3rem .9rem;font-size:.75rem}.cr-preloaded{font-family:var(--mono);color:var(--text-muted);white-space:pre-wrap;-webkit-user-select:none;user-select:none;margin:0;padding:.45rem 1rem 0;font-size:.88rem;line-height:1.5}.step-review{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:12px;align-items:flex-start;gap:.75rem;margin-top:1.75rem;padding:.9rem 1.1rem;animation:.35s ease-out step-review-in;display:flex}@keyframes step-review-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.step-review-body{flex:1;min-width:0}.step-review-refresh{cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex-shrink:0;padding:.2rem}.step-review-refresh:hover:not(:disabled){color:var(--accent)}.step-review-refresh:disabled{opacity:.5;cursor:default}.step-review-refresh svg{width:15px;height:15px}.step-review-refresh .spinning{animation:1s linear infinite spin}kbd{font-family:var(--mono);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);border-bottom-width:2px;border-radius:5px;padding:.1rem .35rem;font-size:.7rem}.kbd-on-accent{color:#ffffffd9;background:0 0;border-color:#fff6}.history-btn{align-items:center;gap:.35rem;display:inline-flex}.history-btn svg{width:15px;height:15px}.history-btn:disabled{opacity:.45;cursor:default}.step-review-title{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:.3rem;font-size:.7rem;font-weight:700;display:block}.step-review-waiting{color:var(--text-muted)}.widget-advisor{margin:.4rem 0 .6rem}.widget-advisor-btn{background:var(--accent-soft);color:var(--accent-soft-text);box-shadow:var(--card-shadow);cursor:pointer;border:none;border-radius:9px;align-items:center;gap:.4rem;padding:.45rem .8rem;font-size:.85rem;font-weight:600;display:inline-flex}.widget-advisor-btn:hover:not(:disabled){background:var(--accent);color:#fff}.widget-advisor-btn:disabled{opacity:.6;cursor:default}.widget-advisor-btn svg{width:15px;height:15px}.widget-advisor-panel{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:12px;align-items:flex-start;gap:.75rem;margin-top:.6rem;padding:.9rem 1.1rem;animation:.35s ease-out step-review-in;display:flex}.widget-advisor-body{flex:1;min-width:0}.widget-advisor-head{align-items:center;gap:.5rem;margin-bottom:.3rem;display:flex}.widget-advisor-title{text-transform:uppercase;letter-spacing:.06em;color:var(--accent);flex:1;font-size:.7rem;font-weight:700}.widget-advisor-refresh,.widget-advisor-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.1rem;display:inline-flex}.widget-advisor-refresh:hover:not(:disabled),.widget-advisor-close:hover{color:var(--accent)}.widget-advisor-refresh:disabled{opacity:.5;cursor:default}.widget-advisor-refresh svg,.widget-advisor-close svg{width:15px;height:15px}.widget-advisor-refresh .spinning{animation:1s linear infinite spin}.widget-advisor-waiting{color:var(--text-muted)}.sidebar-settings{border-left:2px solid var(--border);margin-left:.9rem;padding-left:.6rem}.st-page{flex-direction:column;gap:1rem;max-width:1100px;margin:0 auto;padding:1.25rem 1.5rem 3rem;display:flex}.st-kpis{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;display:grid}.st-kpi{gap:var(--sp-1);padding:var(--sp-3) var(--sp-4);background:var(--surface);box-shadow:var(--card-shadow);border-radius:12px;flex-direction:column;display:flex}.st-kpi-value{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700}.st-kpi-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.7rem}.st-kpi.is-good .st-kpi-value{color:var(--badge-green)}.st-kpi.is-bad .st-kpi-value{color:var(--badge-red)}.st-section{flex-direction:column;gap:.6rem;padding:1rem 1.2rem 1.1rem;display:flex}.st-section h2{color:var(--text-h);margin:0;font-size:1.02rem}.st-section-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.st-section-head h2{flex:1}.st-note{color:var(--text-muted);margin:0;font-size:.8rem;line-height:1.45}.st-empty{color:var(--text-muted);margin:0;font-size:.85rem;font-style:italic}.st-grid-2{grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:1rem;display:grid}.st-chart-wrap{position:relative}.st-svg{width:100%;height:auto;display:block}.st-tip{white-space:nowrap;background:var(--text-h);color:var(--bg);z-index:5;pointer-events:none;border-radius:6px;padding:.2rem .5rem;font-size:.72rem;position:absolute;top:-4px;transform:translate(-50%)}.st-axis-labels{color:var(--text-muted);justify-content:space-between;font-size:.72rem;display:flex}.st-scatter-name{fill:var(--text-muted);font-size:11px}.st-vbars{align-items:flex-end;gap:6px;display:flex}.st-vbar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:3px;min-width:0;height:100%;display:flex}.st-vbar{border-radius:5px 5px 0 0;width:100%;max-width:46px;min-height:2px}.st-vbar-val{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.7rem}.st-vbar-x{color:var(--text-muted);font-size:.7rem}.st-hbars{flex-direction:column;gap:.45rem;display:flex}.st-hbar-row{grid-template-columns:minmax(90px,160px) 1fr auto;align-items:center;gap:.6rem;display:grid}.st-hbar-label{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.st-hbar-track{background:var(--code-bg);border-radius:999px;height:10px;overflow:hidden}.st-hbar-fill{border-radius:999px;height:100%}.st-hbar-val{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.76rem}.st-split{background:var(--code-bg);border-radius:999px;display:flex;overflow:hidden}.st-split-part{height:100%}.st-split-rows{flex-direction:column;gap:.4rem;display:flex}.st-split-row{grid-template-columns:minmax(90px,160px) 1fr auto;align-items:center;gap:.6rem;display:grid}.st-legend{color:var(--text-muted);flex-wrap:wrap;gap:.9rem;font-size:.78rem;display:flex}.st-legend i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:.3rem;display:inline-block}.st-student-link{color:var(--text-h);text-decoration:none}.st-student-link:hover{color:var(--accent);text-decoration:underline}.llm-section{flex-direction:column;gap:.75rem;padding:1.1rem 1.35rem 1.25rem;display:flex}.llm-section-title{color:var(--text-h);align-items:center;gap:.5rem;margin:0;font-size:1.05rem;display:flex}.llm-section-title svg{color:var(--accent)}.llm-presets{flex-wrap:wrap;gap:.4rem;display:flex}.llm-preset{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:.3rem;padding:.35rem .75rem;font-size:.84rem;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.llm-preset:hover{border-color:var(--accent);color:var(--accent)}.llm-preset.is-active{border-color:var(--accent);background:var(--accent-bg);color:var(--accent);font-weight:600}.llm-provider-form{flex-direction:column;gap:.65rem;display:flex}.llm-provider-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.llm-test-result{font-size:.82rem}.llm-test-result.is-ok{color:var(--badge-green)}.llm-test-result.is-err{color:var(--badge-red)}.llm-prompt-card{border:1px solid var(--border);background:var(--bg);border-radius:10px;flex-direction:column;gap:.5rem;padding:.8rem .9rem;display:flex}.llm-section-toggle{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;width:100%;padding:0;display:flex}.llm-section-title-inline{flex:1;min-width:0;font-size:1.05rem}.llm-section-count{font-family:var(--mono);color:var(--text-muted);background:var(--code-bg);border-radius:999px;flex-shrink:0;padding:1px 8px;font-size:.72rem}.llm-section-body{margin-top:var(--sp-3);flex-direction:column;gap:.6rem;display:flex}.llm-prompt-chevron{color:var(--text-muted);flex-shrink:0;transition:transform .15s;width:16px!important;height:16px!important}.llm-prompt-chevron.is-open{transform:rotate(90deg)}.llm-prompt-head{cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.6rem;width:100%;padding:0;display:flex}.llm-prompt-card.is-open{background:var(--surface);box-shadow:var(--card-shadow);border-color:#0000}.llm-prompt-body{flex-direction:column;gap:.5rem;margin-top:.5rem;display:flex}.llm-prompt-desc-full{line-height:1.45}.llm-prompt-titles{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.llm-prompt-title{color:var(--text-h);font-size:.92rem;font-weight:600}.llm-prompt-desc{color:var(--text-muted);font-size:.78rem;line-height:1.4}.llm-prompt-badge{color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:999px;flex-shrink:0;padding:.1rem .5rem;font-size:.7rem;font-weight:600}.llm-prompt-text{box-sizing:border-box;resize:vertical;border:1px solid var(--border);background:var(--surface);width:100%;font-family:var(--mono);color:var(--text-h);border-radius:8px;outline:none;padding:.6rem .75rem;font-size:.78rem;line-height:1.55}.llm-prompt-text:focus{border-color:var(--accent-border)}.llm-prompt-actions{gap:.5rem;display:flex}.llm-models{flex-wrap:wrap;gap:1.5rem;margin-bottom:.75rem;display:flex}.llm-models-col{flex-direction:column;flex:1;gap:.3rem;min-width:200px;display:flex}.llm-model-row{justify-content:space-between;gap:.75rem;display:flex}.llm-model-name{font-family:var(--mono);color:var(--text-h);font-size:.8rem}.llm-model-size{font-family:var(--mono);color:var(--text-muted);font-size:.8rem}.llm-note{color:var(--text-muted);margin:.5rem 0 0;font-size:.78rem}.llm-metrics{margin-top:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem;display:grid}.llm-metric{background:var(--code-bg);border-radius:10px;flex-direction:column;gap:2px;padding:.5rem .7rem;display:flex}.llm-metric-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.65rem;font-weight:600}.llm-metric-value{font-family:var(--mono);color:var(--text-h);word-break:break-word;font-size:.9rem}.llm-caps{margin-top:var(--sp-3);flex-wrap:wrap;gap:4px;display:flex}.llm-cap{background:var(--accent-soft);color:var(--accent-soft-text);border-radius:999px;padding:1px 8px;font-size:.68rem;font-weight:600}.llm-sampling-title{margin-top:var(--sp-4);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.72rem;font-weight:700}.llm-note code{font-family:var(--mono)}.llm-bench{border-top:1px solid var(--border);margin-top:.85rem;padding-top:.85rem}.llm-bench-cards{margin-top:.75rem;margin-bottom:0}.progress-report-overlay{z-index:500;background:#00000059;place-items:center;display:grid;position:fixed;inset:0}.progress-report-panel{background:var(--surface);border:1px solid var(--border);width:min(520px,100vw - 2.5rem);height:min(520px,100vh - 4rem);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.progress-report-header{border-bottom:1px solid var(--border);align-items:center;gap:.6rem;padding:.75rem 1rem;display:flex}.progress-report-title{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.progress-report-body{color:var(--text);flex:1;padding:1rem 1.25rem;line-height:1.6;overflow-y:auto}.progress-report-waiting{color:var(--text-muted);font-style:italic}.pr-panel-wide{flex-direction:column;width:min(90vw,1000px);height:min(90vh,800px);display:flex}.pr-panel-wide .progress-report-body{flex-direction:column;display:flex}.progress-report-header-text{flex:1;min-width:0}.progress-report-subtitle{color:var(--text-muted);margin-top:2px;font-size:.75rem;font-weight:400;display:block}.pr-cards{grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:.5rem;margin-bottom:1rem;display:grid}.pr-card{border:1px solid var(--border);background:var(--bg);border-radius:10px;flex-direction:column;align-items:center;gap:.15rem;padding:.6rem .4rem;display:flex}.pr-card-value{color:var(--text-h);font-size:1.15rem;font-weight:700;font-family:var(--mono)}.pr-card-label{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);text-align:center;font-size:.68rem}.pr-courses{flex-direction:column;gap:.6rem;margin-bottom:1rem;display:flex}.pr-course-head{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:3px;display:flex}.pr-course-title{color:var(--text-h);font-size:.9rem;font-weight:600}.pr-course-nums{color:var(--text-muted);font-size:.75rem;font-family:var(--mono);white-space:nowrap}.pr-bar{background:var(--code-bg);border-radius:999px;height:7px;overflow:hidden}.pr-bar-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .3s}.pr-heatmap-controls{flex-wrap:wrap;justify-content:space-between;gap:.5rem;margin-bottom:.5rem;display:flex}.pr-toggle-group{gap:3px;display:inline-flex}.pr-toggle{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;padding:.2rem .6rem;font-size:.75rem;transition:border-color .15s,background .15s,color .15s}.pr-toggle:hover{border-color:var(--accent)}.pr-toggle.is-active{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.pr-heatmap{gap:3px;margin-bottom:1rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.pr-heatmap-week{flex-direction:column;gap:3px;display:flex}.pr-heatmap-cell{background:var(--code-bg);border-radius:2.5px;flex-shrink:0;width:11px;height:11px}.pr-hm-1{background:color-mix(in srgb, var(--accent) 25%, var(--code-bg))}.pr-hm-2{background:color-mix(in srgb, var(--accent) 50%, var(--code-bg))}.pr-hm-3{background:color-mix(in srgb, var(--accent) 75%, var(--code-bg))}.pr-hm-4{background:var(--accent)}.pr-hm-future{visibility:hidden}.pr-heatmap-tip{z-index:600;background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);color:var(--text);white-space:nowrap;pointer-events:none;border-radius:8px;flex-direction:column;gap:1px;padding:.35rem .55rem;font-size:.72rem;display:flex;position:fixed;transform:translate(-50%,calc(-100% - 6px))}.pr-tip-date{font-family:var(--mono);color:var(--text-muted);font-size:.68rem}.pr-review{border-top:1px solid var(--border);flex-direction:column;flex:1;min-height:0;padding-top:.85rem;display:flex;overflow-y:auto}.pr-review-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.pr-review-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.72rem;font-weight:700}.pr-review-btn{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--surface));color:var(--accent);cursor:pointer;white-space:nowrap;border-radius:8px;padding:.4rem .85rem;font-size:.75rem;font-weight:600;transition:background .15s,border-color .15s}.pr-review-btn:hover{background:color-mix(in srgb, var(--accent) 15%, var(--surface));border-color:var(--accent-light)}.pr-review-hint{color:var(--text-muted);text-align:center;padding:1.5rem;font-size:.9rem}.pr-review-error{color:var(--destructive);background:color-mix(in srgb, var(--destructive) 8%, var(--bg));border-radius:8px;padding:.75rem;font-size:.9rem}.progress-report-cursor{vertical-align:text-bottom;background:var(--accent);width:8px;height:1em;animation:1s steps(2,end) infinite report-blink;display:inline-block}@keyframes report-blink{50%{opacity:0}}.chat-fab-badge{border:2px solid var(--bg);z-index:2;background:#e5484d;border-radius:999px;width:14px;height:14px;position:absolute;top:-2px;right:-2px}.chat-widget-fab{background:var(--accent);color:#fff;cursor:pointer;width:52px;height:52px;box-shadow:var(--shadow);border:none;border-radius:999px;place-items:center;padding:0;transition:filter .15s;display:grid;position:relative;overflow:visible}.chat-widget-fab:hover{filter:brightness(1.08)}.chat-widget-fab svg{width:24px;height:24px}.chat-widget-fab .chat-avatar-fab{width:100%;height:100%;font-size:1.6rem}.chat-avatar{-o-object-fit:cover;object-fit:cover;background:var(--code-bg);border-radius:999px;flex-shrink:0;width:28px;height:28px}.chat-avatar-fallback{place-items:center;font-size:1rem;line-height:1;display:grid}.chat-widget-panel{background:var(--surface);border:1px solid var(--border);width:min(360px,100vw - 2.5rem);height:min(480px,100vh - 8rem);box-shadow:var(--shadow);border-radius:14px;flex-direction:column;transition:width .2s,height .2s,border-radius .2s;display:flex;overflow:hidden}.chat-widget-panel-expanded{border-top:none;border-bottom:none;border-right:none;border-left:1px solid var(--border);border-radius:0;width:100%;height:100%}.chat-widget-panel-wide{z-index:300;width:66vw;height:100svh;box-shadow:var(--shadow);position:fixed;top:0;right:0}.chat-widget-header{border-bottom:1px solid var(--border);color:var(--text-h);justify-content:space-between;align-items:center;padding:.75rem 1rem;font-weight:600;display:flex}.chat-widget-header-actions{align-items:center;gap:.25rem;display:flex}.chat-widget-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;padding:2px;display:grid}.chat-widget-close:hover{color:var(--text-h);background:var(--accent-bg)}.chat-widget-messages{flex-direction:column;flex:1;gap:.5rem;padding:.85rem;display:flex;overflow-y:auto}.chat-bubble-row{align-self:flex-start;align-items:flex-end;gap:.5rem;max-width:90%;display:flex}.chat-bubble-row-user{flex-direction:row-reverse;align-self:flex-end}.chat-bubble-col{flex-direction:column;gap:.2rem;min-width:0;display:flex}.chat-sender-name{color:var(--text-muted);padding-left:.1rem;font-size:.72rem;font-weight:600}.chat-bubble{white-space:pre-wrap;word-break:break-word;border-radius:12px;max-width:100%;padding:.55rem .75rem;font-size:.88rem;line-height:1.4}.chat-bubble-assistant{background:var(--code-bg);color:var(--text-h);border-bottom-left-radius:3px}.chat-bubble-user{background:var(--accent);color:#fff;border-bottom-right-radius:3px}.chat-bubble-typing{color:var(--text-muted);font-style:italic}.chat-markdown{font-size:.88rem;line-height:1.5}.chat-markdown>:first-child{margin-top:0}.chat-markdown>:last-child{margin-bottom:0}.chat-markdown p{margin:.5rem 0}.chat-markdown h1,.chat-markdown h2,.chat-markdown h3,.chat-markdown h4,.chat-markdown h5,.chat-markdown h6{color:var(--text-h);margin:.75rem 0 .35rem;font-size:1rem;font-weight:600}.chat-markdown ul,.chat-markdown ol{margin:.5rem 0;padding-left:1.25rem}.chat-markdown li{margin:.2rem 0}.chat-markdown code{font-family:var(--mono);background:var(--code-bg);border-radius:4px;padding:.1em .35em;font-size:.82em}.chat-markdown pre{background:var(--code-bg);border-radius:8px;margin:.5rem 0;padding:.6rem .75rem;overflow-x:auto}.chat-markdown pre code{background:0 0;padding:0;font-size:.8em}.chat-markdown a{color:inherit;text-decoration:underline}.chat-markdown blockquote{border-left:2px solid var(--border);color:var(--text-muted);margin:.5rem 0;padding-left:.75rem}.chat-markdown .math-block{margin:.5rem 0;overflow-x:auto}.chat-bubble-user .chat-markdown code,.chat-bubble-user .chat-markdown pre{background:#ffffff2e}.chat-widget-input-row{border-top:1px solid var(--border);align-items:center;gap:.5rem;padding:.65rem;display:flex}.chat-widget-input{border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;flex:1;padding:.45rem .65rem;font-size:.88rem}.chat-widget-input:focus{border-color:var(--accent);outline:none}.hint{margin:var(--sp-4) 0;border-left:3px solid var(--accent);background:var(--accent-bg);border-radius:8px;overflow:hidden}.hint-note{border-left-color:var(--text-muted);background:var(--code-bg)}.hint-warn{background:#f59e0b12;border-left-color:#f59e0b}.hint-head{cursor:pointer;width:100%;color:var(--text-h);text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;padding:.6rem .9rem;font-size:.9rem;font-weight:600;display:flex}.hint-head:hover{color:var(--accent)}.hint-note .hint-head:hover{color:var(--text-h)}.hint-caret{width:15px;height:15px;color:var(--text-muted);flex-shrink:0;transition:transform .15s}.hint.is-open .hint-caret{transform:rotate(90deg)}.hint-icon{display:inline-flex}.hint-icon svg{width:16px;height:16px}.hint-idea .hint-icon{color:var(--accent)}.hint-warn .hint-icon{color:#f59e0b}.hint-note .hint-icon{color:var(--text-muted)}.hint-body{color:var(--text);padding:0 .9rem .8rem 2.5rem}.hint-body>:first-child{margin-top:0}.hint-body>:last-child{margin-bottom:0}.term-wrap{display:inline;position:relative}.term{font:inherit;color:var(--accent);cursor:help;border:none;border-bottom:1px dashed var(--accent);background:0 0;padding:0}.term:hover,.term.is-open{background:var(--accent-bg)}.term-pop{z-index:300;border:1px solid var(--border);background:var(--bg);width:max-content;max-width:280px;box-shadow:var(--shadow);color:var(--text);white-space:normal;border-radius:8px;padding:.55rem .75rem;font-size:.83rem;font-weight:400;line-height:1.45;display:block;position:absolute;top:calc(100% + 6px);left:0}.jt-chip{align-items:flex-start;gap:.6rem;display:flex}.jt-gutter{font-family:var(--mono);color:var(--term-prompt,#c2410c);flex-shrink:0;padding-top:.15rem;font-size:.78rem}.jt-code{font-family:var(--mono);white-space:pre-wrap;text-align:left;margin:0;font-size:.85rem;line-height:1.9}.jt-code .cg-gap{vertical-align:baseline}.jt-reveal{z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:.7rem;padding:1rem;display:flex;position:absolute;inset:0}.jt-reveal .tetris-chip{position:static;transform:none}.jt-answer{color:var(--term-prompt);text-shadow:0 0 8px var(--term-glow);border-bottom:2px solid var(--term-prompt);padding:0 .15rem;font-weight:700}.jt-out-box{background:var(--term-bg-2);border:1px solid var(--term-line);font-family:var(--mono);box-shadow:0 0 16px var(--term-glow);border-radius:6px;align-items:baseline;gap:.6rem;max-width:calc(100% - 24px);padding:.55rem 1.1rem;font-size:.88rem;display:flex}.jt-out-text.ok{color:var(--term-fg);text-shadow:0 0 7px var(--term-glow)}.jt-out-text.err{color:var(--term-err);text-shadow:0 0 7px var(--term-err)}.jt-output-hint{border-top:1px solid color-mix(in srgb, var(--term-prompt,#c2410c) 25%, transparent);align-items:flex-start;gap:.6rem;margin-top:.5rem;padding:.5rem .75rem;font-size:.85rem;display:flex}.jt-output-text{color:var(--term-fg,var(--text-muted));flex:1;font-style:italic}.md-tool[data-tip]{position:relative}.md-tool[data-tip]:hover:after,.md-tool[data-tip]:focus-visible:after{content:attr(data-tip);z-index:400;border:1px solid var(--border);background:var(--bg);box-shadow:var(--shadow);color:var(--text-h);white-space:nowrap;pointer-events:none;border-radius:7px;padding:.3rem .55rem;font-size:.75rem;font-weight:400;animation:90ms ease-out md-tip-in;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%)}@keyframes md-tip-in{0%{opacity:0;transform:translate(-50%)translateY(-2px)}}.editor-text-col{flex:1;min-width:0;display:flex;position:relative}.editor-mirror{visibility:hidden;pointer-events:none;box-sizing:border-box;font-family:var(--mono);white-space:pre-wrap;overflow-wrap:break-word;padding:1.5rem 1.5rem 1.5rem .75rem;font-size:.82rem;line-height:1.7;position:absolute;inset:0;overflow:hidden}.with-gutter .editor-textarea{white-space:pre-wrap;overflow-wrap:break-word;padding-left:.75rem;overflow-x:hidden}.editor-gutter span{display:block}.fp{margin:var(--sp-5) 0;border:1px solid color-mix(in srgb, var(--border) 70%, transparent);background:var(--surface);box-shadow:var(--card-shadow);border-radius:14px;overflow:hidden}.fp-error{border-color:var(--badge-red,#dc2626);color:var(--badge-red,#dc2626);background:color-mix(in srgb, var(--badge-red,#dc2626) 8%, transparent);padding:.9rem 1.1rem}.fp-formula-bar{text-align:center;flex-direction:column;align-items:center;gap:.35rem;padding:.9rem 1rem .6rem;display:flex}.fp-title{color:var(--text-muted);font-size:.85rem}.fp-formula{font-size:1.55rem;line-height:1.3}.fp-formula .fp-live{transform-origin:50% 60%;animation:.7s ease-in-out 3 fp-pulse;display:inline-block}@keyframes fp-pulse{0%,to{filter:drop-shadow(0 0);transform:scale(1.15)}50%{filter:drop-shadow(0 0 7px);transform:scale(1.55)}}.fp-plot-row{align-items:stretch;gap:.4rem;padding:0 .9rem;display:flex}.fp-compact .fp-body{align-items:flex-start;gap:.8rem;padding:.2rem .6rem .6rem;display:flex}.fp-compact .fp-left{flex:auto;min-width:0}.fp-compact .fp-plot-row{padding:0}.fp-compact .fp-svg{width:460px;max-width:100%}.fp-compact .fp-formula-bar{align-items:center}.fp-knobs-col{flex-direction:column;flex:none;align-items:center;gap:.7rem;padding:.4rem .2rem 0}.fp-compact .fp-spread-x{margin:.15rem 0 0 14px}.fp-transport{align-items:center;gap:.5rem;margin:.35rem 0 0 14px;display:flex}.fp-btn{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text-h);cursor:pointer;border-radius:7px;flex-shrink:0;font-size:.85rem;line-height:1}.fp-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.fp-btn:disabled{opacity:.4;cursor:default}.fp-readline{gap:.5rem;margin:.3rem 0 0 14px;display:flex}.fp-xread{font-family:var(--mono);color:#b06a00;background:#fff2d9;border:1px solid #e9c98a;border-radius:5px;padding:.08rem .4rem;font-size:.78rem}:root[data-theme=dark] .fp-xread{color:#ffb46b;background:#2a1e0a;border-color:#5a4420}@media (prefers-color-scheme:dark){:root:not([data-theme]) .fp-xread{color:#ffb46b;background:#2a1e0a;border-color:#5a4420}}.fp-marker{stroke:#fff;stroke-width:1.2px}.fp-marker-line{stroke:#f59e0b;stroke-width:1px;stroke-dasharray:3 3;opacity:.55}.fp-curve-done{filter:drop-shadow(0 0 4px #f59e0b);stroke:#f59e0b!important}.fp-pannable{cursor:grab;touch-action:none}.fp-pannable:active{cursor:grabbing}.fp-playbar{cursor:pointer;touch-action:none;flex:1;min-width:60px;height:22px;position:relative}.fp-playbar-track{background:var(--border);border-radius:2px;height:4px;margin-top:-2px;position:absolute;top:50%;left:0;right:0}.fp-playbar-fill{pointer-events:none;background:#e9c98a;border-radius:2px;height:4px;margin-top:-2px;position:absolute;top:50%;left:0}.fp-playbar.is-active .fp-playbar-fill{background:#f59e0b}.fp-playbar-divider{background:var(--text-muted);opacity:.5;pointer-events:none;width:2px;height:10px;margin-top:-5px;position:absolute;top:50%}.fp-playhead{background:var(--surface);border:2px solid var(--text-muted);pointer-events:none;border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;position:absolute;top:50%}.fp-playbar.is-active .fp-playhead{background:#fff2d9;border-color:#f59e0b}:root[data-theme=dark] .fp-playbar.is-active .fp-playhead{background:#2a1e0a}@media (prefers-color-scheme:dark){:root:not([data-theme]) .fp-playbar.is-active .fp-playhead{background:#2a1e0a}}@media (width<=620px){.fp-compact .fp-body{flex-direction:column;align-items:center}.fp-knobs-col{flex-flow:wrap}.fp-compact .fp-svg{max-width:88vw}}.fp-svg{aspect-ratio:1;flex:auto;width:100%;min-width:0;height:auto}.fp-frame{fill:none;stroke:var(--border)}.fp-grid{stroke:var(--border);stroke-width:1px;opacity:.4}.fp-axis{stroke:var(--text-muted);stroke-width:1.3px;opacity:.7}.fp-curve{fill:none;stroke:var(--text-h);stroke-width:2.4px;stroke-linejoin:round;transition:stroke .12s}.fp-ghost{fill:none;stroke-width:2.4px;stroke-linejoin:round}.fp-tick{fill:var(--text-muted);font-size:12px;font-family:var(--mono)}.fp-cell{fill:var(--text-muted);font-size:11px;font-family:var(--mono);opacity:.8}.fp-spread{touch-action:none;opacity:.7;transition:opacity .15s;position:relative}.fp-spread:hover{opacity:1}.fp-spread-y{flex-shrink:0;width:14px;margin:34px 0}.fp-spread-x{height:14px;margin:.15rem .9rem 0}.fp-spread-line{background:var(--border);border-radius:1px;position:absolute}.fp-spread-y .fp-spread-line{width:2px;margin-left:-1px;top:0;bottom:0;left:50%}.fp-spread-x .fp-spread-line{height:2px;margin-top:-1px;top:50%;left:0;right:0}.fp-grip{width:14px;height:12px;color:var(--text-muted);background:var(--code-bg);border:1px solid var(--border);-webkit-user-select:none;user-select:none;border-radius:4px;justify-content:center;align-items:center;font-size:10px;line-height:1;display:flex;position:absolute}.fp-spread-y .fp-grip{cursor:ns-resize;left:50%;transform:translate(-50%)}.fp-spread-x .fp-grip{cursor:ew-resize;width:12px;height:14px;top:50%;transform:translateY(-50%)}.fp-grip:hover{color:var(--accent);border-color:var(--accent)}.fp-knobs{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:1rem;padding:.9rem 1rem 1rem;display:flex}.fp-knob{flex-direction:column;align-items:center;gap:.3rem;width:76px;display:flex}.fp-dial{cursor:ns-resize;touch-action:none;background:radial-gradient(circle at 35% 28%,#b9895c,#6f4a2a 72%);border:2px solid #4a2f18;border-radius:50%;width:56px;height:56px;transition:box-shadow .15s;position:relative;box-shadow:inset 0 2px 5px #ffffff47,inset 0 -3px 6px #00000059,0 3px 7px #0000004d}.fp-knob.is-active .fp-dial{box-shadow:inset 0 2px 5px #ffffff4d,0 0 0 3px,0 3px 9px #00000059}.fp-dial:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fp-dial-pointer{transform-origin:50% 22px;background:var(--text-muted);border-radius:2px;width:3px;height:18px;margin-left:-1.5px;position:absolute;top:6px;left:50%}.fp-knob.is-active .fp-dial-pointer{box-shadow:0 0 6px}.fp-knob-name{font-size:.95rem}.fp-nixie{font-family:var(--mono);letter-spacing:.06em;text-align:center;color:#6f4a2a;cursor:default;background:#efe2d0;border:1px solid #cdb79a;border-radius:5px;min-width:52px;padding:.12rem .4rem;font-size:.82rem}.fp-nixie-edit{box-sizing:border-box;outline:none;width:52px}.fp-nixie-edit:focus{border-color:var(--accent)}.fp-knob.is-active .fp-nixie{text-shadow:0 0 6px}:root[data-theme=dark] .fp-nixie{color:#ffb46b;background:#17131a;border-color:#3a2f42}@media (prefers-color-scheme:dark){:root:not([data-theme]) .fp-nixie{color:#ffb46b;background:#17131a;border-color:#3a2f42}}.fp-reset{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;align-self:center;margin-top:1.4rem;padding:.35rem .7rem;font-size:.78rem}.fp-reset:hover{border-color:var(--accent);color:var(--accent)}:root[data-theme=dark] .fp-dial{background:radial-gradient(circle at 35% 30%,#4a4a52,#22222a 70%);border-color:#14141a;box-shadow:inset 0 2px 4px #ffffff1f,0 3px 7px #0006}@media (prefers-color-scheme:dark){:root:not([data-theme]) .fp-dial{background:radial-gradient(circle at 35% 30%,#4a4a52,#22222a 70%);border-color:#14141a;box-shadow:inset 0 2px 4px #ffffff1f,0 3px 7px #0006}}@media (width<=560px){.fp-formula{font-size:1.2rem}}.s3 .fp-body{align-items:flex-start;gap:.8rem;padding:.2rem .6rem .7rem;display:flex}.s3-stage{flex:1;min-width:0}.s3-svg{touch-action:none;cursor:grab;width:480px;max-width:100%;height:auto;display:block}.s3-svg:active{cursor:grabbing}.s3-face{stroke:#0000001a;stroke-width:.4px}.s3-trail{fill:none;stroke:#f59e0b;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;opacity:.9;filter:drop-shadow(0 0 3px #f59e0b)}.s3-coords{flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.3rem;display:flex}.s3-cfield{color:var(--text-muted);font-size:.78rem;font-family:var(--mono);align-items:center;gap:.25rem;display:flex}.s3-cinput{width:58px;font-family:var(--mono);text-align:center;color:#b06a00;background:#fff2d9;border:1px solid #e9c98a;border-radius:5px;padding:.12rem .25rem;font-size:.78rem}:root[data-theme=dark] .s3-cinput{color:#ffb46b;background:#2a1e0a;border-color:#5a4420}@media (prefers-color-scheme:dark){:root:not([data-theme]) .s3-cinput{color:#ffb46b;background:#2a1e0a;border-color:#5a4420}}.s3-stepread{font-family:var(--mono);color:var(--text-muted);white-space:nowrap;font-size:.74rem}.s3-trailtoggle{color:var(--text-muted);cursor:pointer;align-items:center;gap:.3rem;margin-left:auto;font-size:.78rem;display:flex}.s3-hintline{margin-top:.25rem}.s3-ball{fill:#f43f5e;stroke:#fff;stroke-width:1.5px}.s3-arrow{stroke:#111827;stroke-width:2px;opacity:.75}.s3-arrow-head{fill:#111827;opacity:.75}.s3-transport{flex-wrap:wrap;align-items:center;gap:.55rem;margin:.35rem 0 0;display:flex}.s3-read{font-family:var(--font-mono,monospace);color:var(--text-muted);font-size:.78rem}.s3-hint{color:var(--text-muted);opacity:.7;margin-left:auto;font-size:.72rem}.s3-knob{flex-direction:column;align-items:center;gap:.2rem;display:flex}.s3-dial{cursor:ns-resize;touch-action:none;background:radial-gradient(circle at 35% 30%,#efe4d2,#d8c3a0 70%);border:2px solid #b79b6e;border-radius:50%;width:44px;height:44px;position:relative;box-shadow:inset 0 2px 4px #fff9,0 3px 6px #00000040}.s3-dot{transform-origin:50% 16px;border-radius:3px;width:5px;height:14px;margin-left:-2.5px;position:absolute;top:6px;left:50%}.s3-kname{font-size:.95rem}.s3-kval{font-family:var(--font-mono,monospace);color:var(--text-muted);font-size:.72rem}:root[data-theme=dark] .s3-dial{background:radial-gradient(circle at 35% 30%,#4a4a52,#22222a 70%);border-color:#14141a;box-shadow:inset 0 2px 4px #ffffff1f,0 3px 7px #0006}:root[data-theme=dark] .s3-arrow,:root[data-theme=dark] .s3-arrow-head{stroke:#e5e7eb;fill:#e5e7eb}:root[data-theme=dark] .s3-face{stroke:#ffffff14}@media (prefers-color-scheme:dark){:root:not([data-theme]) .s3-dial{background:radial-gradient(circle at 35% 30%,#4a4a52,#22222a 70%);border-color:#14141a;box-shadow:inset 0 2px 4px #ffffff1f,0 3px 7px #0006}:root:not([data-theme]) .s3-arrow{stroke:#e5e7eb}:root:not([data-theme]) .s3-arrow-head{fill:#e5e7eb}:root:not([data-theme]) .s3-face{stroke:#ffffff14}}@media (width<=620px){.s3 .fp-body{flex-direction:column;align-items:center}.s3-svg{max-width:92vw}.s3 .fp-knobs-col{flex-flow:wrap}}.lesson-nav-next.is-disabled{position:relative}.lesson-nav-next.is-disabled[data-tip]:hover:after{content:attr(data-tip);z-index:400;border:1px solid var(--border);background:var(--bg);width:max-content;max-width:320px;box-shadow:var(--shadow);color:var(--text-h);white-space:normal;text-align:left;pointer-events:none;border-radius:8px;padding:.5rem .7rem;font-size:.8rem;font-weight:400;line-height:1.4;animation:90ms ease-out md-tip-in;position:absolute;bottom:calc(100% + 8px);right:0}.sc{border:1px solid var(--border);background:var(--surface);border-radius:14px;margin:1.5rem 0;overflow:hidden}.sc-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:baseline;gap:.6rem;padding:.6rem .9rem;display:flex}.sc-kind{color:var(--text-h);font-weight:600}.sc-title{color:var(--text-muted);font-size:.85rem}.sc-hint,.sc-foot-hint{color:var(--text-muted);margin-left:auto;font-size:.76rem}.sc-board{background:repeating-linear-gradient(45deg, transparent, transparent 11px, color-mix(in srgb, var(--border) 22%, transparent) 11px, color-mix(in srgb, var(--border) 22%, transparent) 12px), var(--code-bg);touch-action:none;width:100%;position:relative;overflow:hidden}.sc-wires{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.sc-cable{fill:none;stroke-width:4px;opacity:.85;pointer-events:stroke;cursor:pointer}.sc-cable-live{stroke-dasharray:6 5;opacity:.7}.sc-node{background:var(--surface);cursor:grab;-webkit-user-select:none;user-select:none;border:2px solid;border-radius:12px;position:absolute;box-shadow:0 3px 10px #0000002e}.sc-node.is-live{z-index:5}.sc-node-head{color:#fff;text-align:center;border-radius:9px 9px 0 0;padding:.25rem;font-size:.8rem;font-weight:600}.sc-node-body{flex-direction:column;align-items:center;gap:.4rem;padding:.5rem .6rem .6rem;display:flex}.sc-formula,.sc-src-x{font-size:1.05rem}.sc-source .sc-node-body{padding-top:.7rem}.sc-src-x{font-size:1.6rem}.sc-port{color:#fff;background:var(--text-muted);border:2px solid var(--surface);cursor:crosshair;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;display:flex;position:absolute}.sc-port-in{transition:transform .1s,box-shadow .1s;left:-11px}.sc-port-out{cursor:grab;right:-11px}.sc-port-in.is-hot{background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 30%, transparent), 0 0 10px var(--accent);z-index:5;transform:scale(1.55)}.sc-knobs{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.sc-knob{flex-direction:column;align-items:center;gap:.15rem;display:flex}.sc-dial{cursor:ns-resize;touch-action:none;background:radial-gradient(circle at 35% 28%,#b9895c,#6f4a2a 72%);border:2px solid #4a2f18;border-radius:50%;width:34px;height:34px;position:relative;box-shadow:inset 0 1px 3px #ffffff4d,0 2px 4px #0000004d}.sc-dial-dot{transform-origin:50% 13px;border-radius:1px;width:2px;height:11px;margin-left:-1px;position:absolute;top:4px;left:50%}.sc-knob-name{font-size:.8rem}.sc-knob-val{font-family:var(--mono);color:var(--text-muted);font-size:.68rem}:root[data-theme=dark] .sc-dial{background:radial-gradient(circle at 35% 30%,#4a4a52,#22222a 70%);border-color:#14141a}@media (prefers-color-scheme:dark){:root:not([data-theme]) .sc-dial{background:radial-gradient(circle at 35% 30%,#4a4a52,#22222a 70%);border-color:#14141a}}.sc-crt{background:#0a0f0a;border-color:#22c55e!important}.sc-crt .sc-port-in{top:34px}.sc-crt-screen{padding:8px}.sc-crt-bg{fill:#05160a}.sc-crt-axis{stroke:#2f8f4f;stroke-width:1px;opacity:.9}.sc-crt-grid{stroke:#1c6b34;stroke-width:.5px;opacity:.45}.sc-crt-scale{fill:#2f8f4f;font-family:var(--mono);opacity:.9;font-size:10px}.sc-crt-curve{fill:none;stroke:#46f08a;stroke-width:2px;filter:drop-shadow(0 0 3px #46f08a)}.sc-crt-nosig{fill:#2f8f4f;font-family:var(--mono);font-size:12px}.sc-crt-label{color:#7be0a0;text-align:center;padding:0 0 .4rem;font-size:.72rem}.sc-foot{border-top:1px solid var(--border);align-items:center;gap:.7rem;padding:.5rem .9rem;display:flex}.sc-reset{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;padding:.3rem .7rem;font-size:.78rem}.sc-reset:hover{border-color:var(--accent);color:var(--accent)}.pitosha-hint{justify-content:flex-start;align-items:flex-start;gap:1.1rem;margin:.5rem .75rem .65rem;font-size:.88rem;line-height:1.45;display:flex}.pitosha-hint-avatar{flex-shrink:0;width:30px;height:30px;margin-top:2px}.pitosha-hint-bubble{background:color-mix(in srgb, var(--accent) 7%, var(--surface));border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-radius:4px 14px 14px;flex-direction:column;gap:.15rem;width:fit-content;max-width:46rem;margin-right:auto;padding:.5rem .8rem .55rem;display:flex;position:relative}.pitosha-hint-bubble:before{content:"";background:inherit;border-left:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-bottom:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-radius:0 0 0 3px;width:10px;height:10px;position:absolute;top:9px;left:-6px;transform:rotate(45deg)}.pitosha-hint-text{white-space:pre-wrap;color:var(--text-h)}.pitosha-hint-cursor{opacity:.7;animation:1s steps(2,end) infinite pitosha-blink}@keyframes pitosha-blink{50%{opacity:0}}.pitosha-offer{align-items:center;gap:.6rem;margin:.5rem .75rem .65rem;display:flex}.pitosha-ask-btn{border:1px solid color-mix(in srgb, var(--accent) 40%, var(--border));background:color-mix(in srgb, var(--accent) 8%, var(--surface));color:var(--accent);cursor:pointer;border-radius:8px;align-items:center;gap:.3rem;padding:.35rem .75rem;font-size:.84rem;font-weight:600;transition:background .15s;display:inline-flex}.pitosha-ask-btn:hover{background:var(--accent);color:#fff}.pitosha-ask-btn .pitosha-btn-avatar{width:20px;height:20px}.pitosha-offer-note{color:var(--text-muted);font-size:.78rem}.widget-advisor-chips{flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.6rem;display:flex}.widget-advisor-chips-label{color:var(--text-muted);font-size:.78rem}.widget-advisor-chip{border:1px solid var(--accent-border);background:var(--surface);color:var(--accent);font-size:.8rem;font-weight:600;font-family:var(--mono);cursor:pointer;border-radius:7px;align-items:center;gap:.25rem;padding:.25rem .6rem;transition:background .15s;display:inline-flex}.widget-advisor-chip:hover{background:var(--accent);color:#fff}.widget-advisor-chip svg{width:13px;height:13px}.course-card-access{color:var(--text-muted);margin-top:.15rem;font-size:.74rem}.course-card-access.is-not_yet,.course-card-access.is-soft_over{color:#b06a00}.course-card-access.is-closed{color:var(--text-muted)}.course-banner{border:1px solid var(--border);border-radius:10px;margin:.6rem 0 1rem;padding:.7rem 1rem;font-size:.92rem}.course-banner.is-locked{background:color-mix(in srgb, #64748b 10%, var(--surface))}.course-banner.is-soft{background:color-mix(in srgb, #f59e0b 12%, var(--surface));border-color:color-mix(in srgb, #f59e0b 40%, var(--border))}.course-banner.is-closed{background:color-mix(in srgb, #64748b 12%, var(--surface));opacity:.9}.course-dates-pop{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.45rem;min-width:240px;padding:.7rem;display:flex;position:absolute;top:2.2rem;right:.5rem;box-shadow:0 8px 24px #0000002e}.course-dates-pop label{color:var(--text-muted);flex-direction:column;gap:.15rem;font-size:.74rem;display:flex}.course-dates-pop input{border:1px solid var(--border);background:var(--code-bg);color:var(--text-h);border-radius:6px;padding:.25rem .4rem;font-size:.82rem}.course-dates-row{justify-content:flex-end;gap:.4rem;display:flex}.course-dates-row .fp-reset{margin-top:0}.course-dates-save{border-color:var(--accent);color:var(--accent)}.course-card-actions{position:relative}.groups-hist{align-items:flex-end;gap:6px;margin:.8rem 0 .4rem;padding-bottom:1.4rem;display:flex;position:relative}.groups-hist-col{flex-direction:column;align-items:center;gap:2px;width:30px;display:flex}.groups-hist-bar{background:color-mix(in srgb, var(--accent) 55%, var(--surface));border-radius:4px 4px 0 0;width:100%;min-height:2px}.groups-hist-x{color:var(--text-muted);font-size:.62rem;font-family:var(--mono)}.groups-hist-cap{color:var(--text-muted);font-size:.7rem;position:absolute;bottom:0;left:0}.step-history{position:relative}.step-history-pop{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.3rem;width:340px;padding:.5rem;display:flex;position:absolute;top:2.3rem;right:0;box-shadow:0 10px 28px #0003}.step-history-empty{color:var(--text-muted);padding:.35rem;font-size:.8rem}.step-history-item{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;flex-direction:column;gap:.15rem;width:100%;padding:.45rem .55rem;display:flex}.step-history-item:hover{background:var(--accent-bg);border-color:var(--accent-border)}.step-history-when{color:var(--text-h);align-items:center;gap:.3rem;font-size:.82rem;font-weight:600;display:flex}.step-history-when svg{width:13px;height:13px}.step-history-date{color:var(--text-muted);font-size:.7rem;font-family:var(--mono)}.step-history-preview{color:var(--text-muted);font-size:.72rem;font-family:var(--mono);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.wc-panel{flex-direction:column;width:min(1100px,94vw);height:min(760px,92vh);display:flex}.wc-icon{font-size:1.1rem}.wc-body{flex:1;gap:1rem;padding:.9rem 1.1rem;display:flex;overflow:hidden}.wc-form{flex-direction:column;flex:0 0 42%;gap:.7rem;padding-right:.4rem;display:flex;overflow-y:auto}.wc-preview{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex;overflow-y:auto}.wc-preview-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.7rem}.wc-preview-box{border:1px dashed var(--border);background:var(--bg);border-radius:10px;min-height:120px;padding:.6rem}.wc-problem{color:#b06a00;margin:.3rem;font-size:.85rem}.wc-snippet{background:var(--code-bg);border:1px solid var(--border);font-family:var(--mono);white-space:pre-wrap;word-break:break-word;border-radius:8px;margin:0;padding:.55rem .7rem;font-size:.75rem}.wc-field{flex-direction:column;gap:.2rem;display:flex}.wc-label{color:var(--text-h);font-size:.8rem;font-weight:600}.wc-label em{color:var(--accent);font-style:normal}.wc-hint{color:var(--text-muted);font-size:.72rem}.wc-input{border:1px solid var(--border);background:var(--surface);color:var(--text-h);border-radius:7px;width:100%;padding:.35rem .5rem;font-size:.85rem}.wc-input:focus{border-color:var(--accent);outline:none}.wc-code{font-family:var(--mono);resize:vertical;font-size:.78rem}.wc-bool{align-items:center;gap:.4rem;display:flex}.wc-bool-txt{color:var(--text-muted);font-size:.82rem}.wc-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:.5rem;padding:.7rem 1.1rem;display:flex}.wc-foot .save-btn:disabled{opacity:.45;cursor:default}.wg-panel{flex-direction:column;width:min(1100px,94vw);height:min(780px,92vh);display:flex}.wg-head{border-bottom:1px solid var(--border);align-items:center;gap:.6rem;padding:.85rem 1.1rem .7rem;display:flex}.wg-head-icon{font-size:1.15rem}.wg-head-title{color:var(--text-h);flex:1;font-size:1.02rem;font-weight:700}.wg-close{width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.wg-close:hover{border-color:var(--border);color:var(--text-h);background:var(--bg)}.wg-close svg{width:16px;height:16px}.wg-searchrow{flex-wrap:wrap;align-items:flex-start;gap:.6rem;padding:.6rem 1.1rem .1rem;display:flex}.wg-searchrow .wg-search{flex:1;min-width:240px}.wg-searchrow .widget-advisor{margin:0}.wg-searchrow .widget-advisor-panel{width:100%}.wg-search{border:1px solid var(--border);background:var(--bg);border-radius:9px;align-items:center;gap:.45rem;padding:.42rem .75rem;display:flex}.wg-search:focus-within{border-color:var(--accent)}.wg-search svg{width:15px;height:15px;color:var(--text-muted);flex-shrink:0}.wg-search input{color:var(--text-h);background:0 0;border:none;outline:none;flex:1;font-size:.88rem}.wg-search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:.8rem}.wg-body{flex:1;padding:.9rem 1.1rem;overflow-y:auto}.wg-empty{color:var(--text-muted);text-align:center;margin-top:2rem}.wg-shelf+.wg-shelf{margin-top:1.1rem}.wg-shelf-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 .5rem;font-size:.72rem;font-weight:700}.wg-grid{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:.55rem;display:grid}.wg-tile{border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.65rem .7rem .6rem;transition:border-color .12s,transform .12s,box-shadow .12s;display:flex;position:relative}.wg-tile:hover{border-color:var(--accent);box-shadow:0 3px 10px color-mix(in srgb, var(--accent) 16%, transparent);transform:translateY(-1px)}.wg-tile-icon{font-size:1.5rem;line-height:1}.wg-tile-label{color:var(--text-h);font-size:.84rem;font-weight:600;line-height:1.25}.wg-tile-tag{font-family:var(--mono);color:var(--accent);font-size:.68rem}.wg-tile-desc{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.72rem;line-height:1.35;display:-webkit-box;overflow:hidden}.wg-tile-raw{font-family:var(--mono);color:var(--text-muted);opacity:0;border:1px solid #0000;border-radius:5px;padding:.05rem .3rem;font-size:.72rem;transition:opacity .12s;position:absolute;top:.45rem;right:.5rem}.wg-tile:hover .wg-tile-raw{opacity:1}.wg-tile-raw:hover{border-color:var(--border);color:var(--accent);background:var(--bg)}.wg-foot{border-top:1px solid var(--border);color:var(--text-muted);padding:.55rem 1.1rem;font-size:.76rem}.wg-tile-media{background:var(--code-bg);border-radius:7px;width:100%;height:86px;margin-bottom:.15rem;display:block;position:relative;overflow:hidden}.wg-tile-media img{width:100%;height:100%;display:block}.wg-tile-media-icon{filter:drop-shadow(0 1px 2px #00000059);font-size:.95rem;position:absolute;bottom:.25rem;left:.3rem}.we-page{max-width:1100px;margin:0 auto;padding:1.2rem 1.2rem 2.5rem}.we-page .wg-shelf+.wg-shelf{margin-top:1.1rem}.we-search{flex:0 340px;margin-left:.6rem;padding:.3rem .65rem}.we-storage-note{color:var(--text-muted);margin-top:1.4rem;font-size:.8rem}.we-panel{height:auto;max-height:min(820px,94vh)}.we-body{flex:1;gap:1.1rem;padding:.9rem 1.1rem;display:flex;overflow-y:auto}.we-form{flex-direction:column;flex:1;gap:.7rem;min-width:0;display:flex}.we-side{flex-direction:column;flex:0 0 240px;gap:.4rem;display:flex}.we-tile-stage{pointer-events:none}.we-tile-stage .wg-tile{width:100%}.we-icon-input{max-width:6rem}.we-preview-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.we-fit{max-width:12rem}.we-remove{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text-muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.we-remove:hover{color:#dc2626;border-color:#dc2626}.we-remove svg{width:14px;height:14px}.we-foot{align-items:center;gap:.5rem;display:flex}.we-foot-note{flex:1}.fp-btn.is-on{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.fp-micro-dot{fill:#f59e0b;opacity:.55}.sc-crt-formula{text-align:center;color:#6ef7a0;text-shadow:0 0 6px #6ef7a0bf,0 0 14px #6ef7a059;max-width:100%;padding:.15rem .3rem;font-size:.95rem;display:block;overflow-x:auto}.sc-crt-formula.is-idle{opacity:.45;font-family:var(--mono);font-size:.82rem}.sc-crt-formula .katex,.sc-crt-formula .katex *{color:#6ef7a0!important}.sc-formula-live{color:var(--accent);opacity:.95;margin-top:.15rem;font-size:.9rem;display:block}.sc-node-note{color:var(--text-muted);opacity:.8;margin-top:.2rem;font-size:.62rem;display:block}.sc-crt-screen.is-panning{cursor:grabbing}.sc-crt-screen:hover{cursor:crosshair}.users-table{flex-direction:column;display:flex}.users-table .users-row{border-radius:8px;transition:background .12s}.users-table .users-row+.users-row{border-top:1px solid color-mix(in srgb, var(--border) 55%, transparent)}.users-table .users-row:hover{background:var(--accent-bg)}.users-group-chip{cursor:pointer;color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:999px;align-items:center;gap:.25rem;padding:.1rem .45rem;font-size:.7rem;display:inline-flex}.users-group-chip:hover{filter:brightness(.97);text-decoration:underline}.users-add-panel{width:min(520px,94vw);height:auto;max-height:92vh;overflow-y:auto}.users-form{flex-direction:column;gap:1.1rem;padding:1.1rem 1.35rem 1.25rem;display:flex}.users-form-section{flex-direction:column;gap:.65rem;display:flex}.users-form-section+.users-form-section{border-top:1px solid var(--border);padding-top:.9rem}.users-form-subhead{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.72rem;font-weight:700}.users-role-toggle{align-self:flex-start}.users-field{flex-direction:column;gap:.3rem;display:flex}.users-field>span{color:var(--text-h);align-items:baseline;gap:.4rem;font-size:.8rem;font-weight:500;display:flex}.users-req{color:var(--badge-red);font-weight:700}.users-field-note{color:var(--text-muted);font-size:.72rem;font-style:normal;font-weight:400}.users-fio-grid{flex-direction:column;gap:.55rem;display:flex}.users-check{cursor:pointer;background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--text-h);border-radius:9px;align-items:flex-start;gap:.6rem;padding:.6rem .75rem;font-size:.82rem;line-height:1.45;display:flex}.users-check input{accent-color:var(--accent);flex-shrink:0;margin-top:.2rem}.users-check em{color:var(--text-muted);font-size:.74rem;font-style:normal}.users-form-actions{justify-content:flex-end;gap:.5rem;display:flex}.tsched{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:.25rem;padding:.12rem .5rem;font-size:.74rem;font-weight:500;display:inline-flex}.tsched-ok{color:#157347;background:#16a34a1f;border-color:#16a34a52}.tsched-soon{color:#a16207;background:#eab30829;border-color:#eab30866}.tsched-hard{color:#b91c1c;background:#ef44441a;border-color:#ef444447}.tsched-locked{color:var(--text-muted);border-color:var(--border);background:#64748b1f}.tsched-closed{color:var(--text-muted);border-color:var(--border);background:#64748b24}.tsched-panel{flex-direction:column;width:min(760px,95vw);max-height:90vh;display:flex}.tsched-head-icon{width:18px;height:18px;color:var(--accent);flex-shrink:0}.tsched-badge-btn{cursor:pointer;background:0 0;border:none;padding:0;display:inline-flex}.tsched-badge-btn:hover .tsched{filter:brightness(.95)}.tsched-pop-panel{width:min(480px,94vw);height:auto;max-height:80vh}.tsched-pop-body{flex-direction:column;gap:.55rem;padding:.9rem 1.1rem 1.1rem;display:flex;overflow-y:auto}.tsched-pop-row{background:var(--code-bg);border:1px solid var(--border);border-radius:9px;grid-template-columns:auto 1fr auto auto;align-items:baseline;gap:.6rem;padding:.5rem .7rem;font-size:.88rem;display:grid}.tsched-pop-row.is-empty{opacity:.55}.tsched-pop-label{color:var(--text-h);font-weight:600}.tsched-pop-when{color:var(--text);font-variant-numeric:tabular-nums}.tsched-pop-left{color:#157347;white-space:nowrap;font-weight:600}.tsched-pop-left.is-past{color:var(--text-muted);font-weight:400}.tsched-body{flex-direction:column;gap:.75rem;padding:.9rem 1.1rem 1.1rem;display:flex;overflow-y:auto}.tsched-note{color:var(--text-muted);margin:0;font-size:.78rem;line-height:1.5}.tsched-legend{background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:9px;flex-wrap:wrap;gap:.3rem 1rem;padding:.55rem .8rem;display:flex}.tsched-legend-item{color:var(--text-muted);font-size:.76rem}.tsched-legend-item b{color:var(--text-h);font-weight:600}.tsched-row{border:1px solid var(--border);background:var(--surface);border-radius:12px;flex-direction:column;gap:.55rem;padding:.75rem .9rem .65rem;display:flex}.tsched-row.is-default{border-color:var(--accent-border);background:color-mix(in srgb, var(--accent) 4%, var(--surface))}.tsched-row-head{align-items:center;gap:.5rem;display:flex}.tsched-row-title{color:var(--text-h);font-size:.9rem;font-weight:600}.tsched-chip{border:1px solid var(--border);color:var(--text-muted);background:var(--bg);border-radius:999px;padding:.1rem .5rem;font-size:.68rem}.tsched-chip.is-accent{border-color:var(--accent-border);color:var(--accent);background:var(--accent-bg)}.tsched-fields{grid-template-columns:1fr 1fr 1fr;gap:.6rem;display:grid}.tsched-field{flex-direction:column;gap:.22rem;display:flex}.tsched-field span{color:var(--text-muted);font-size:.7rem}.tsched-field input{border:1px solid var(--border);background:var(--bg);color:var(--text-h);font-size:.82rem;font-family:var(--mono);border-radius:8px;padding:.4rem .55rem;transition:border-color .15s}.tsched-field input:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.tsched-field input:focus{border-color:var(--accent);outline:none}.tsched-row-foot{align-items:center;gap:.6rem;display:flex}.tsched-summary{color:var(--text-muted);flex:1;font-size:.75rem;line-height:1.4}.tsched-summary.is-bad{color:#dc2626;font-weight:600}.tsched-row-actions{flex-shrink:0;gap:.4rem;display:flex}.tsched-btn{border-radius:8px;padding:.32rem .8rem;font-size:.8rem}.tsched-btn:disabled{opacity:.55;cursor:default}@media (width<=640px){.tsched-fields{grid-template-columns:1fr}}.groups-default-tag{color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:999px;margin-left:.35rem;padding:.05rem .35rem;font-size:.62rem}.users-identity{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;flex:auto;gap:.05rem;min-width:0;padding:.15rem .2rem;display:flex}.users-identity:hover{background:var(--accent-bg)}.users-identity-name{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.3rem;font-size:.9rem;font-weight:600;display:flex;overflow:hidden}.users-identity-sub{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.35rem;font-size:.72rem;display:flex;overflow:hidden}.users-identity-prog{text-overflow:ellipsis;overflow:hidden}.gdl-panel{flex-direction:column;width:min(640px,95vw);max-height:90vh;display:flex}.gdl-body{flex-direction:column;gap:.9rem;padding:.9rem 1.1rem 1.1rem;display:flex;overflow-y:auto}.gdl-note{color:var(--text-muted);margin:0;font-size:.8rem}.gdl-course-title{color:var(--text-h);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;width:100%;padding:.3rem .1rem;font-size:.92rem;font-weight:600;display:flex}.gdl-course-title:hover{color:var(--accent)}.gdl-chevron{flex-shrink:0;width:14px;height:14px;transition:transform .15s}.gdl-chevron.is-open{transform:rotate(90deg)}.gdl-course-count{color:var(--text-muted);margin-left:auto;font-size:.68rem;font-weight:400}.gdl-always{color:var(--text-muted);font-size:.68rem;font-weight:400}.gdl-topics{flex-direction:column;gap:.3rem;margin:.35rem 0 0;padding:0;list-style:none;display:flex}.gdl-topic{border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:.6rem;padding:.3rem .5rem;display:flex}.gdl-topic-title{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-size:.83rem;overflow:hidden}.gdl-topic-open{color:var(--text-muted);white-space:nowrap;font-size:.7rem}.cr-diagnose{border:1px solid #0000;border-radius:8px;margin:.5rem .75rem 0;padding:.5rem .75rem;font-size:.85rem;line-height:1.4;animation:.18s cr-diagnose-in}@keyframes cr-diagnose-in{0%{opacity:0;transform:translateY(-3px)}}.cr-diagnose-layout,.cr-diagnose-lookalike{color:#b06a00;background:#fff2d9;border-color:#e9c98a}.cr-diagnose-case{color:#1d4ed8;background:#dbeafe;border-color:#bfdbfe}.cr-diagnose-generic{color:var(--text-muted);background:var(--code-bg);border-color:var(--border)}:root[data-theme=dark] .cr-diagnose-layout,:root[data-theme=dark] .cr-diagnose-lookalike{color:#ffb46b;background:#2a1e0a;border-color:#5a4420}:root[data-theme=dark] .cr-diagnose-case{color:#93c5fd;background:#0e1e3a;border-color:#1e3a6a}@media (prefers-color-scheme:dark){:root:not([data-theme]) .cr-diagnose-layout,:root:not([data-theme]) .cr-diagnose-lookalike{color:#ffb46b;background:#2a1e0a;border-color:#5a4420}:root:not([data-theme]) .cr-diagnose-case{color:#93c5fd;background:#0e1e3a;border-color:#1e3a6a}}.users-group-more{font-weight:600}.users-groups-pop{z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.15rem;min-width:170px;padding:.4rem;display:flex;position:absolute;top:1.7rem;left:0;box-shadow:0 8px 24px #0000002e}.users-groups-pop-right{left:auto;right:0}.users-groups-pop-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:.15rem .35rem;font-size:.66rem}.users-groups-pop-item{text-align:left;cursor:pointer;color:var(--text-h);background:0 0;border:none;border-radius:6px;align-items:center;gap:.35rem;padding:.3rem .4rem;font-size:.82rem;display:flex}.users-groups-pop-item:hover{background:var(--accent-bg)}.av-stage,.gc-stage,.rt-stage,.dp-stage,.ss-stage{padding:.4rem .9rem 0}.av-transport{margin:.4rem .9rem .7rem}.av-note{color:var(--text-h);min-height:2.6em;margin:.5rem .2rem 0;font-size:.85rem}.av-main{flex-wrap:wrap;align-items:stretch;gap:.8rem;display:flex}.av-main .av-stage{flex:300px;min-width:260px}.av-debug{border:1px solid var(--border);background:var(--code-bg);border-radius:10px;flex-direction:column;flex:0 340px;min-width:280px;margin:.4rem .9rem .4rem 0;display:flex;overflow:hidden}.av-debug-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--surface);padding:.3rem .7rem;font-size:.68rem;font-weight:700}.av-code{flex:1;margin:0;padding:.45rem 0;overflow-x:auto}.av-code-line{font-family:var(--mono);white-space:pre;align-items:baseline;gap:.4rem;padding:.06rem .6rem;font-size:.78rem;line-height:1.55;transition:background .15s;display:flex}.av-code-line.is-cur{background:#f59e0b33;box-shadow:inset 3px 0 #f59e0b}.av-code-arrow{color:#b45309;flex-shrink:0;width:.8em;font-size:.66rem}.av-code-num{text-align:right;width:1.4em;color:var(--text-muted);-webkit-user-select:none;user-select:none;flex-shrink:0;font-size:.7rem}.av-code-line code{color:var(--text-h);font-size:inherit;background:0 0;padding:0}.av-vars{border-top:1px solid var(--border);background:var(--surface);flex-direction:column;gap:.5rem;min-height:2.2em;padding:.45rem .6rem;display:flex}.av-phase-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--accent);opacity:.8;font-size:.68rem;font-weight:600}.av-var{font-family:var(--mono);color:var(--text-h);background:color-mix(in srgb, #f59e0b 12%, var(--surface));border:1px solid color-mix(in srgb, #f59e0b 35%, var(--border));border-radius:6px;width:fit-content;padding:.08rem .45rem;font-size:.74rem;display:inline-block}.av-var b{color:#b45309;font-weight:700}.av-var.is-highlighted-var b{animation:var-glow .3s cubic-in-out;font-weight:700}.av-var.is-highlighted-var b.color-0{color:var(--var-color-0)}.av-var.is-highlighted-var b.color-1{color:var(--var-color-1)}.av-var.is-highlighted-var b.color-2{color:var(--var-color-2)}.av-var.is-highlighted-var b.color-3{color:var(--var-color-3)}.av-var.is-highlighted-var b.color-4{color:var(--var-color-4)}.av-var.is-highlighted-var b.color-5{color:var(--var-color-5)}.av-var.is-highlighted-var b.color-6{color:var(--var-color-6)}.av-var.is-highlighted-var b.color-7{color:var(--var-color-7)}.av-vars-empty{color:var(--text-muted);font-size:.74rem}@media (width<=720px){.av-debug{flex-basis:100%;margin-left:.9rem}}.av-cells{align-items:flex-end;gap:6px;min-height:130px;display:flex}.av-col{flex-direction:column;flex:1;align-items:center;gap:3px;min-width:0;display:flex}.av-cell{background:var(--code-bg);border:1px solid var(--border);border-radius:6px 6px 0 0;justify-content:center;align-items:flex-start;width:100%;max-width:46px;transition:background .15s,border-color .15s;display:flex}.av-val{font-family:var(--mono);color:var(--text-h);padding-top:3px;font-size:.78rem}.av-compare{background:#fff2d9;border-color:#e9c98a}.av-swap{background:#f59e0b;border-color:#d97706}.av-sorted{background:color-mix(in srgb, #16a34a 22%, var(--surface));border-color:#16a34a}.av-found{background:#16a34a;border-color:#157347}.av-ptr{font-family:var(--mono);color:var(--accent);height:.8rem;font-size:.6rem}.av-idx{font-family:var(--mono);color:var(--text-muted);font-size:.62rem}:root[data-theme=dark] .av-compare{background:#2a1e0a;border-color:#5a4420}.gc-svg{touch-action:none;width:440px;max-width:100%;height:auto;display:block}.gc-edge{stroke:var(--border);stroke-width:2px}.gc-edge-path{stroke:#f59e0b;stroke-width:3.5px}.gc-weight{font-family:var(--mono);fill:var(--text-muted);font-size:11px}.gc-node circle{fill:var(--surface);stroke:var(--border);stroke-width:2px}.gc-node .gc-label{fill:var(--text-h);font-size:12px;font-weight:600}.gc-dist{font-family:var(--mono);fill:var(--accent);font-size:11px}.gc-frontier circle{fill:color-mix(in srgb, #2563eb 16%, var(--surface));stroke:#2563eb}.gc-visited circle{fill:color-mix(in srgb, #16a34a 20%, var(--surface));stroke:#16a34a}.gc-current circle{fill:#f59e0b;stroke:#d97706;stroke-width:3px}.gc-path circle{fill:color-mix(in srgb, #f59e0b 30%, var(--surface));stroke:#f59e0b;stroke-width:3px}.cr2-body{align-items:flex-start;gap:.8rem;padding:.2rem .9rem 0;display:flex}.cr2-curve{fill:none;stroke-width:2.4px}.cr2-nline{stroke:var(--text-muted);stroke-dasharray:3 3;opacity:.5}.cr2-legend{flex-direction:column;flex:none;gap:.3rem;min-width:130px;padding-top:.5rem;display:flex}.cr2-nread{color:var(--text-muted);font-size:.72rem}.cr2-row{align-items:center;gap:.4rem;font-size:.8rem;display:flex}.cr2-swatch{border-radius:3px;flex-shrink:0;width:12px;height:12px}.cr2-label{color:var(--text-h)}.cr2-count{font-family:var(--mono);color:var(--text-muted);margin-left:auto;font-size:.76rem}.rt-svg{width:100%;height:auto;max-height:340px}.rt-edge{stroke:var(--border);stroke-width:1.5px}.rt-node rect{fill:var(--surface);stroke:var(--border);stroke-width:1.5px}.rt-node .rt-label{font-family:var(--mono);fill:var(--text-h);font-size:15px}.rt-node .rt-val{font-family:var(--mono);fill:#16a34a;font-size:13px;font-weight:600}.rt-calling rect{stroke:#2563eb}.rt-active rect{fill:#f59e0b;stroke:#d97706;stroke-width:2.5px}.rt-returned rect{fill:color-mix(in srgb, #16a34a 15%, var(--surface));stroke:#16a34a}.dp-table{border-collapse:collapse;margin:.3rem auto}.dp-table th,.dp-table td{border:1px solid var(--border);text-align:center;min-width:34px;height:32px;font-family:var(--mono);padding:0 .35rem;font-size:.82rem}.dp-table th{color:var(--text-muted);background:var(--code-bg);font-weight:600}.dp-table td{color:var(--text-h)}.dp-filled{background:#16a34a14}.dp-dep{background:#fff2d9;box-shadow:inset 0 0 0 2px #e9c98a}.dp-active{color:#fff;background:#f59e0b;font-weight:700}:root[data-theme=dark] .dp-dep{background:#2a1e0a;box-shadow:inset 0 0 0 2px #5a4420}.dp-vars{background:0 0;border-top:none;flex-direction:row;justify-content:center;padding:.3rem .9rem}.ss-bars{align-items:flex-end;gap:7px;min-height:150px;display:flex}.ss-bar{background:color-mix(in srgb, var(--accent) 40%, var(--surface));border:1px solid var(--accent-border);cursor:pointer;border-radius:6px 6px 0 0;flex:1;justify-content:center;align-items:flex-start;max-width:54px;transition:transform .12s,background .15s;display:flex}.ss-bar:hover{transform:translateY(-2px)}.ss-sel{background:#f59e0b;border-color:#d97706;box-shadow:0 0 0 2px #f59e0b66}.ss-ok{background:color-mix(in srgb, #16a34a 40%, var(--surface));cursor:default;border-color:#16a34a}.ss-bar .ss-val{font-family:var(--mono);color:var(--text-h);padding-top:4px;font-size:.82rem}.ss-status{min-height:1.3em;margin-top:.6rem;font-size:.88rem}.ss-win{color:#157347;font-weight:600}.ss-better{color:#157347}.ss-worse{color:#b45309}.ss-hint{color:var(--text-muted)}.ss-log{max-height:260px}.ss-log .av-code{overflow-y:auto}.ss-log-empty{color:var(--text-muted)}.ss-log-done{background:var(--badge-green-bg)!important;border-color:var(--badge-green-bd)!important}.ss-log-done b{color:var(--badge-green)!important}.al-tabs,.cv-tabs{flex-wrap:wrap;gap:.4rem;padding:.5rem .75rem 0;display:flex}.al-tab{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:7px;padding:.25rem .7rem;font-size:.8rem;font-weight:600;transition:all .15s}.al-tab:hover{border-color:var(--accent);color:var(--accent)}.al-tab.is-on{background:var(--accent);border-color:var(--accent);color:#fff}.tg-body{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;padding:1rem;display:flex}.tg-panel{flex-direction:column;align-items:center;gap:.5rem;display:flex}.tg-shape{font-family:var(--mono);color:var(--text-muted);font-size:.8rem}.tg-grid{gap:4px;display:grid}.tg-cell{width:38px;height:38px;font-family:var(--mono);background:color-mix(in srgb, var(--accent) 14%, var(--surface));border:1px solid var(--accent-border);color:var(--text-h);border-radius:7px;justify-content:center;align-items:center;font-size:.9rem;transition:background .2s;display:flex}.tg-result .tg-cell{background:color-mix(in srgb, #16a34a 16%, var(--surface));border-color:#a5e0b3}.tg-arrow{color:var(--text-muted);font-size:1.6rem}.tg-body{position:relative}.tg-cell-pending{color:#0000;background:var(--code-bg);border-style:dashed}.tg-ghost{z-index:5;width:38px;height:38px;font-family:var(--mono);background:var(--accent);color:#fff;border:1px solid var(--accent);box-shadow:0 3px 12px color-mix(in srgb, var(--accent) 45%, transparent);pointer-events:none;border-radius:7px;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;transition:transform .5s cubic-bezier(.25,.8,.35,1);display:flex;position:absolute;top:0;left:0}.tg-reveal{border:1px dashed var(--accent-border);background:var(--accent-bg);color:var(--accent);cursor:pointer;border-radius:8px;padding:.5rem .9rem;font-weight:600}.tg-reveal:hover{background:var(--accent);color:#fff}.tg-explain{flex-direction:column;gap:.3rem;padding:.5rem .9rem .9rem;display:flex}.tg-code{font-family:var(--mono);background:var(--code-bg);border-radius:6px;align-self:flex-start;padding:.2rem .5rem;font-size:.85rem}.tg-note{color:var(--text-muted);font-size:.86rem;line-height:1.5}.al-axis{stroke:var(--border);stroke-width:1px}.al-curve{fill:none;stroke:var(--accent);stroke-width:2.5px}.al-guide{stroke:#f59e0b;stroke-width:1px;stroke-dasharray:3 3}.al-dot{fill:#f59e0b;stroke:#fff;stroke-width:1.5px}.al-readout,.lc-readout,.nl-readout{flex-direction:column;gap:.3rem;padding:.4rem .9rem .2rem;display:flex}.al-readout code,.lc-readout code,.nl-readout code{font-family:var(--mono);color:var(--text-h);font-size:.85rem}.al-note{color:var(--text-muted);font-size:.84rem;line-height:1.5}.nl-body{flex-direction:column;gap:.6rem;padding:.5rem;display:flex}.nl-svg{width:100%;max-width:460px;margin:0 auto;display:block}.nl-wire{stroke-linecap:round}.nl-node{fill:var(--surface);stroke:var(--accent-border);stroke-width:1.5px}.nl-in{fill:color-mix(in srgb, var(--accent) 12%, var(--surface))}.nl-sum{fill:color-mix(in srgb, var(--accent) 20%, var(--surface))}.nl-out{fill:color-mix(in srgb, #16a34a 20%, var(--surface));stroke:#16a34a}.nl-nodetext{font-family:var(--mono);fill:var(--text-h);font-size:.8rem}.nl-wlabel{font-family:var(--mono);fill:var(--text-muted);font-size:.62rem}.nl-collabel{fill:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.nl-controls{flex-direction:column;gap:.35rem;width:100%;max-width:420px;margin:0 auto;display:flex}.nl-ctl{align-items:center;gap:.6rem;display:flex}.nl-ctl-name{font-family:var(--mono);width:1.6rem;color:var(--text-h);font-size:.8rem}.nl-ctl-val{font-family:var(--mono);text-align:right;width:2.8rem;color:var(--text-muted);font-size:.8rem}.ng-svg{width:100%;max-width:480px;margin:0 auto;display:block}.ng-wire{stroke:var(--border);stroke-width:1px;opacity:.5;transition:stroke .3s,opacity .3s}.ng-wire.is-live{stroke:var(--accent);opacity:.9;stroke-width:1.6px}.ng-wire.is-done{stroke:color-mix(in srgb, var(--accent) 45%, transparent);opacity:.6}.ng-node{fill:var(--surface);stroke:var(--accent-border);stroke-width:1.5px;transition:fill .3s}.ng-node.is-fired{stroke:var(--accent)}.ng-actval{font-family:var(--mono);fill:var(--text-h);font-size:.62rem}.ng-collabel{fill:var(--text-muted);font-size:.68rem;font-family:var(--mono)}.lc-curve{fill:none;stroke:var(--accent);stroke-width:2.5px}.lc-curve.is-bad{stroke:#dc2626}.lc-dot{fill:var(--accent);stroke:#fff;stroke-width:1.5px}.lc-dot.is-bad{fill:#dc2626}.lc-verdict{color:#157347;font-size:.86rem;font-weight:600}.lc-verdict.is-bad{color:#dc2626}.cv-body{flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;padding:1rem .5rem;display:flex}.cv-panel{flex-direction:column;align-items:center;gap:.4rem;display:flex}.cv-grid{gap:3px;display:grid}.cv-cell{width:30px;height:30px;font-family:var(--mono);border:1px solid var(--border);color:var(--text-h);border-radius:5px;justify-content:center;align-items:center;font-size:.75rem;transition:outline .15s;display:flex}.cv-cell.cv-win{outline-offset:-1px;z-index:1;outline:3px solid #f59e0b}.cv-mid{flex-direction:column;align-items:center;gap:.4rem;display:flex}.cv-kergrid{gap:2px}.cv-kcell{width:26px;height:26px;font-family:var(--mono);background:color-mix(in srgb, #f59e0b 18%, var(--surface));color:var(--text-h);border:1px solid #f5c073;border-radius:4px;justify-content:center;align-items:center;font-size:.66rem;display:flex}.cv-arrow{color:var(--text-muted);font-size:1.4rem}.cv-ocell{width:30px;height:30px;font-family:var(--mono);background:var(--surface);border:1px dashed var(--border);color:var(--text-muted);border-radius:5px;justify-content:center;align-items:center;font-size:.75rem;display:flex}.cv-ocell.is-filled{background:color-mix(in srgb, #16a34a 16%, var(--surface));color:var(--text-h);border-style:solid;border-color:#a5e0b3}.cv-ocell.is-cur{outline-offset:-1px;outline:3px solid #f59e0b}.ci-panel{flex-direction:column;width:min(760px,95vw);max-height:90vh;display:flex}.ci-body{flex-direction:column;flex:1;gap:.8rem;padding:.8rem 1.1rem;display:flex;overflow-y:auto}.ci-note{color:var(--text-muted);margin:0;font-size:.82rem;line-height:1.5}.ci-group{flex-direction:column;gap:.25rem;display:flex}.ci-group-title{text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.4rem;margin:0 0 .15rem;font-size:.72rem;font-weight:700;display:flex}.ci-group-title svg{width:14px;height:14px}.ci-group-title.ci-mod{color:var(--accent)}.ci-group-title.ci-add{color:#157347}.ci-group-title.ci-del{color:#b91c1c}.ci-group-title.ci-meta{color:#b45309}.ci-toggle-all{color:var(--text-muted);cursor:pointer;text-transform:none;letter-spacing:0;background:0 0;border:none;margin-left:auto;font-size:.7rem}.ci-toggle-all:hover{color:var(--accent)}.ci-change{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;align-items:flex-start;gap:.55rem;padding:.4rem .6rem;transition:border-color .12s;display:flex}.ci-change:hover{border-color:var(--accent)}.ci-change.ci-del{background:color-mix(in srgb, #ef4444 5%, var(--surface))}.ci-change input{accent-color:var(--accent);margin-top:.2rem}.ci-change-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.ci-change-path{color:var(--text-h);font-size:.84rem;font-weight:600}.ci-change-detail{color:var(--text-muted);font-size:.76rem}.ci-foot{align-items:center;gap:.5rem;display:flex}.ci-foot-note{flex:1}.hint-codeblock{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;margin:.5rem 0;padding:.7rem .9rem;font-size:.85rem;line-height:1.55;display:block;overflow-x:auto}.hint-codeblock code{font-family:var(--mono);background:0 0;padding:0}.mm-body{flex-wrap:wrap;justify-content:center;align-items:center;gap:1rem;padding:1.3rem .75rem .6rem;display:flex}.mm-panel{flex-direction:column;align-items:center;gap:.5rem;display:flex}.mm-op{color:var(--text-muted);background:var(--code-bg);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:1.15rem;font-weight:600;display:flex}.mm-grid{gap:5px;display:grid}.mm-cell{width:44px;height:44px;font-family:var(--mono);background:var(--surface);border:1px solid var(--border);color:var(--text-h);border-radius:10px;justify-content:center;align-items:center;font-size:.98rem;transition:background .25s,border-color .25s,transform .25s,box-shadow .25s;display:flex;box-shadow:0 1px 2px #0000000d}.mm-cell.mm-soft-a{background:color-mix(in srgb, var(--accent) 10%, var(--surface));border-color:var(--accent-border)}.mm-cell.mm-soft-b{background:color-mix(in srgb, #0d9488 10%, var(--surface));border-color:color-mix(in srgb, #0d9488 35%, var(--border))}.mm-cell.mm-strong{color:#fff;font-weight:700;transform:scale(1.12)}.mm-cell.mm-strong-a{background:var(--accent);border-color:var(--accent);box-shadow:0 2px 10px color-mix(in srgb, var(--accent) 45%, transparent)}.mm-cell.mm-strong-b{background:#0d9488;border-color:#0d9488;box-shadow:0 2px 10px #0d948873}.mm-ocell{width:48px;height:44px;font-family:var(--mono);background:var(--code-bg);border:1px dashed var(--border);color:var(--text-muted);border-radius:10px;justify-content:center;align-items:center;font-size:.95rem;transition:background .25s,border-color .25s,transform .25s;display:flex}.mm-ocell.is-active{color:var(--text-h);background:color-mix(in srgb, #f59e0b 16%, var(--surface));border-style:solid;border-color:#f59e0b;font-weight:700;transform:scale(1.08);box-shadow:0 2px 10px #f59e0b59}.mm-ocell.is-done{color:var(--text-h);background:color-mix(in srgb, #16a34a 14%, var(--surface));border-style:solid;border-color:#a5e0b3}.mm-formula{justify-content:center;align-items:center;height:2.7em;padding:.5rem .9rem .25rem;display:flex}.mm-formula-chip{font-family:var(--mono);color:var(--text-h);background:var(--surface);border:1px solid var(--border);white-space:nowrap;border-radius:9px;max-width:100%;padding:.35rem .85rem;font-size:.9rem;overflow-x:auto;box-shadow:0 1px 3px #0000000f}.mm-fcell{color:#b45309;font-weight:600}.mm-fa{color:var(--accent);font-weight:700}.mm-fb{color:#0d9488;font-weight:700}.mm-term{opacity:.62}.mm-term.is-cur{opacity:1}.mm-more{color:var(--text-muted)}.mm-frun{color:#b45309;font-size:1.02rem}.mm-fdone{color:#157347;font-weight:700}.mm-hint{color:var(--text-muted);font-size:.84rem}.colab{border:1px solid var(--accent-border);background:var(--accent-bg);border-radius:12px;margin:1rem 0;padding:1rem 1.2rem}.colab.is-done{background:color-mix(in srgb, #16a34a 8%, var(--surface));border-color:#a5e0b3}.colab-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.colab-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--accent);font-size:.72rem;font-weight:700}.colab-points{font-family:var(--mono);background:var(--surface);border:1px solid var(--accent-border);color:var(--accent);border-radius:6px;padding:.1rem .5rem;font-size:.85rem;font-weight:700}.colab-points.is-awarded{background:var(--badge-green-bg);border-color:var(--badge-green-bd);color:var(--badge-green)}.colab-title{color:var(--text-h);margin-bottom:.5rem;font-size:1.02rem;font-weight:600}.colab-steps{color:var(--text-muted);margin:0 0 .7rem;padding-left:1.2rem;font-size:.9rem;line-height:1.6}.colab-donebox{background:var(--badge-green-bg);color:var(--badge-green);border-radius:8px;margin-bottom:.7rem;padding:.5rem .7rem;font-size:.9rem}.colab-actions{flex-wrap:wrap;gap:.5rem;display:flex}.colab-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-h);cursor:pointer;border-radius:8px;align-items:center;gap:.3rem;padding:.45rem .85rem;font-size:.86rem;font-weight:600;text-decoration:none;display:inline-flex}.colab-open{background:var(--accent);color:#fff;border-color:var(--accent)}.colab-open:hover{filter:brightness(1.08)}.colab-open.is-disabled{background:var(--code-bg);color:var(--text-muted);border-color:var(--border);cursor:not-allowed}.colab-getcode:hover:not(:disabled),.colab-refresh:hover{border-color:var(--accent);color:var(--accent)}.colab-btn:disabled{opacity:.6;cursor:default}.colab-codebox{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;margin-top:.7rem;padding:.6rem .8rem}.colab-codelabel{color:var(--text-muted);margin-bottom:.35rem;font-size:.8rem}.colab-coderow{align-items:center;gap:.5rem;display:flex}.colab-code{font-family:var(--mono);color:var(--text-h);word-break:break-all;background:var(--surface);border:1px solid var(--border);border-radius:6px;flex:1;padding:.3rem .5rem;font-size:.82rem}.colab-copy{border:1px solid var(--accent-border);background:var(--surface);color:var(--accent);cursor:pointer;border-radius:6px;flex-shrink:0;padding:.3rem .6rem;font-size:.78rem}.colab-seedhint{color:var(--text-muted);margin-top:.35rem;font-size:.76rem}.colab-howto-toggle{color:var(--accent);cursor:pointer;background:0 0;border:none;margin-top:.7rem;padding:0;font-size:.82rem}.colab-howto{color:var(--text-muted);margin-top:.4rem;font-size:.86rem;line-height:1.55}.colab-howto p{margin:.3rem 0}html{-webkit-hyphens:none;hyphens:none;word-break:break-word}code,pre,.mono,[class*=mono],[class*=code]{word-break:break-all}.is-highlighted-var{animation:var-glow .3s cubic-in-out;font-weight:600}.is-highlighted-var.color-0{color:var(--var-color-0)}.is-highlighted-var.color-1{color:var(--var-color-1)}.is-highlighted-var.color-2{color:var(--var-color-2)}.is-highlighted-var.color-3{color:var(--var-color-3)}.is-highlighted-var.color-4{color:var(--var-color-4)}.is-highlighted-var.color-5{color:var(--var-color-5)}.is-highlighted-var.color-6{color:var(--var-color-6)}.is-highlighted-var.color-7{color:var(--var-color-7)}.code-runner,.jcell,.fp,.sc,.colab,.av-debug,.step-review,.course-banner,.tsched-row,.tsched-pop-row,.llm-prompt-card,.pr-card{box-shadow:var(--card-shadow);border-color:#0000}.users-groups-pop,.course-dates-pop,.md-pop-menu,.progress-report-panel{box-shadow:var(--shadow);border-color:#0000}.smart-badge{background:var(--accent-soft);color:var(--accent-soft-text);letter-spacing:.08em;vertical-align:middle;border-radius:999px;flex-shrink:0;align-items:center;padding:1px 7px;font-size:.6rem;font-weight:700;display:inline-flex}.kindpick-overlay{z-index:90;background:color-mix(in srgb, var(--text-h) 32%, transparent);padding:var(--sp-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.kindpick{background:var(--surface);width:min(460px,100%);box-shadow:var(--shadow);padding:var(--sp-5);gap:var(--sp-3);border-radius:16px;flex-direction:column;display:flex}.kindpick-title{margin:0 0 var(--sp-2);color:var(--text-h);font-size:1.15rem}.kindpick-option{text-align:left;padding:var(--sp-4);background:var(--bg);box-shadow:var(--card-shadow);cursor:pointer;border:none;border-radius:12px;grid-template-columns:26px 1fr;gap:2px 10px;transition:box-shadow .15s;display:grid}.kindpick-option:hover{box-shadow:var(--shadow)}.kindpick-option svg{color:var(--accent);grid-row:span 2;margin-top:3px}.kindpick-name{color:var(--text-h);align-items:center;gap:6px;font-weight:600;display:flex}.kindpick-desc{color:var(--text-muted);font-size:.82rem;line-height:1.45}.sd-topbar{border-bottom:1px solid var(--border);background:var(--surface);z-index:20;align-items:center;gap:.6rem;padding:.6rem 1rem;display:flex;position:sticky;top:0}.sd-topbar-title{min-width:0;color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;flex:1;align-items:center;gap:8px;font-weight:600;display:flex;overflow:hidden}.sd-topbar-actions{align-items:center;gap:.4rem;display:flex}.sd-topbar-actions .ghost-btn{text-decoration:none}.sd-main,.sc-main{max-width:760px;padding:var(--sp-6) var(--sp-4) var(--sp-7);margin:0 auto}.sd-h1{color:var(--text-h);margin:0 0 var(--sp-3);font-size:1.7rem;font-weight:800}.sd-h2{color:var(--text-h);margin:var(--sp-6) 0 var(--sp-3);font-size:1.05rem;font-weight:700}.sd-lead{color:var(--text-muted);max-width:620px;margin:0 0 var(--sp-4);line-height:1.55}.sd-field{margin-bottom:var(--sp-4);display:block}.sd-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:6px;font-size:.72rem;font-weight:700;display:block}.sd-field textarea,.sd-topic-title{box-sizing:border-box;background:var(--code-bg);width:100%;color:var(--text-h);font:inherit;resize:vertical;border:none;border-radius:10px;outline:none;padding:.6rem .8rem;font-size:.92rem;line-height:1.5}.sd-field textarea:focus,.sd-topic-title:focus{box-shadow:0 0 0 2px var(--accent-border)}.sd-topic{background:var(--surface);box-shadow:var(--card-shadow);padding:var(--sp-4);margin-bottom:var(--sp-4);border-radius:14px}.sd-topic-head{margin-bottom:var(--sp-3);align-items:center;gap:10px;display:flex}.sd-topic-num{background:var(--accent-soft);width:26px;height:26px;color:var(--accent-soft-text);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:inline-flex}.sd-topic-title{font-weight:600}.sd-topic-actions{flex-shrink:0;gap:2px;display:flex}.sd-add{align-items:center;gap:6px;display:inline-flex}.sd-topbar .ghost-btn input{display:none}.sc-hero{padding-top:var(--sp-6)}.sc-generate{align-items:center;gap:8px;padding:.6rem 1.4rem;font-size:1rem;display:inline-flex}.sc-not-ready{color:var(--text-muted);font-style:italic}.sc-progress-row{margin-bottom:var(--sp-4);justify-content:space-between;align-items:center;display:flex}.sc-progress-right{align-items:center;gap:var(--sp-3);display:flex}.sc-units{gap:var(--sp-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.sc-unit{background:var(--surface);box-shadow:var(--card-shadow);border-radius:14px;transition:box-shadow .15s;overflow:hidden}.sc-unit:hover{box-shadow:var(--shadow)}.sc-unit.is-skipped{opacity:.55}.sc-unit.is-done .sc-unit-title{color:var(--text-muted)}.sc-unit-head{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:.8rem 1rem;display:flex}.sc-unit-status{background:var(--code-bg);width:24px;height:24px;color:var(--text-muted);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.sc-unit.is-done .sc-unit-status{background:var(--badge-green-bg);color:var(--badge-green)}.sc-unit-status svg{width:14px!important;height:14px!important}.sc-unit-title{min-width:0;color:var(--text-h);flex:1;font-weight:600}.sc-chip{background:var(--code-bg);color:var(--text-muted);border-radius:999px;flex-shrink:0;padding:1px 8px;font-size:.68rem;font-weight:600}.sc-chip-expanded{background:var(--accent-soft);color:var(--accent-soft-text)}.sc-chip-extra{background:var(--badge-green-bg);color:var(--badge-green)}.sc-chip-reduced{background:var(--badge-red-bg);color:var(--badge-red)}.sc-unit-body{padding:0 1rem 1rem 2.7rem}.sc-unit-body .save-btn{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.sc-unit-finish{justify-content:space-between;align-items:center;gap:var(--sp-4);margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid color-mix(in srgb, var(--border) 55%, transparent);flex-wrap:wrap;display:flex}.sc-unit-finish-hint{color:var(--text-muted);max-width:380px;font-size:.82rem;line-height:1.45}.sc-rationale{color:var(--text-muted);margin:0 0 var(--sp-3);align-items:baseline;gap:6px;font-size:.82rem;font-style:italic;display:flex}.sc-bubble{margin-top:var(--sp-5);background:var(--accent-bg);box-shadow:var(--card-shadow);padding:var(--sp-4);border-radius:16px;align-items:flex-start;gap:12px;animation:.25s sc-bubble-in;display:flex}@keyframes sc-bubble-in{0%{opacity:0;transform:translateY(6px)}}.sc-bubble-avatar{border-radius:999px;flex-shrink:0;width:40px;height:40px}.sc-bubble-body{gap:var(--sp-2);flex-direction:column;flex:1;min-width:0;display:flex}.sc-bubble-text{color:var(--text-h);margin:0;line-height:1.5}.sc-bubble-reco{color:var(--text);margin:0;font-size:.9rem}.sc-bubble textarea{box-sizing:border-box;background:var(--surface);width:100%;color:var(--text-h);font:inherit;resize:vertical;border:none;border-radius:10px;outline:none;padding:.55rem .75rem;font-size:.92rem}.sc-bubble textarea:focus{box-shadow:0 0 0 2px var(--accent-border)}.sc-bubble-row{justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.sc-bubble-hint{color:var(--text-muted);font-size:.7rem;font-family:var(--mono);background:var(--code-bg);border-radius:6px;padding:2px 6px}.ss-main{max-width:1060px;padding:var(--sp-5) var(--sp-4) var(--sp-7);margin:0 auto}.ss-grid{gap:var(--sp-5);grid-template-columns:250px 1fr;align-items:start;display:grid}@media (width<=800px){.ss-grid{grid-template-columns:1fr}}.ss-students{flex-direction:column;gap:6px;display:flex}.ss-student{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;flex-direction:column;gap:2px;padding:.55rem .75rem;transition:background .15s;display:flex}.ss-student:hover{background:var(--accent-bg)}.ss-student.active{background:var(--accent-bg);box-shadow:inset 2px 0 0 var(--accent)}.ss-student-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ss-student-name{color:var(--text-h);font-size:.92rem;font-weight:600}.ss-grade{background:var(--accent-soft);min-width:26px;height:20px;color:var(--accent-soft-text);font-family:var(--mono);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:1px 7px;font-size:.72rem;font-weight:700;display:inline-flex}.ss-student-meta{color:var(--text-muted);font-size:.75rem}.ss-plan ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.ss-plan-unit{background:var(--surface);box-shadow:var(--card-shadow-sm);border-radius:8px;align-items:center;gap:8px;padding:.4rem .6rem;font-size:.88rem;display:flex}.ss-plan-unit.is-skipped{opacity:.55}.ss-plan-title{min-width:0;color:var(--text-h);flex:1}.ss-plan-status{color:var(--text-muted);flex-shrink:0;font-size:.72rem}.ss-plan-status.is-done{color:var(--badge-green)}.ss-plan-status.is-skipped{color:var(--badge-red)}.ss-journey-head{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.ss-journey-head .btn-soft{align-items:center;gap:6px;display:inline-flex}.ss-timeline{margin:var(--sp-4) 0 0;padding:0 0 0 var(--sp-4);border-left:2px solid color-mix(in srgb, var(--border) 70%, transparent);gap:var(--sp-3);flex-direction:column;list-style:none;display:flex}.ss-ev{flex-direction:column;gap:2px;display:flex;position:relative}.ss-ev:before{content:"";left:calc(-1 * var(--sp-4) - 5px);background:var(--text-muted);border-radius:999px;width:8px;height:8px;position:absolute;top:6px}.ss-ev.kind-checkin:before,.ss-ev.kind-checkin_answer:before{background:var(--accent)}.ss-ev.kind-plan_revised:before{background:var(--badge-green)}.ss-ev.kind-recommendation:before{background:#eab308}.ss-ev-kind{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.72rem;font-weight:700}.ss-ev-text{color:var(--text-h);font-size:.9rem;line-height:1.45}.ss-ev-date{color:var(--text-muted);font-size:.72rem}.sc-step{max-width:760px;padding:var(--sp-6) var(--sp-4) var(--sp-7);margin:0 auto}.sc-step-title{color:var(--text-h);margin:0 0 var(--sp-3);flex-wrap:wrap;align-items:center;gap:10px;font-size:1.7rem;font-weight:800;display:flex}.smart-plan-head{margin-bottom:var(--sp-3)}.smart-rebuild{width:20px;height:20px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.smart-rebuild:hover{background:var(--accent-bg);color:var(--text-h)}.smart-rebuild svg{width:12px!important;height:12px!important}.smart-side-units{margin:0 0 var(--sp-4);flex-direction:column;gap:3px;padding:0;list-style:none;display:flex}.smart-side-unit{text-align:left;cursor:pointer;width:100%;color:var(--text-h);background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:.5rem .6rem;font-size:.9rem;line-height:1.35;transition:background .15s;display:flex}.smart-side-unit:hover:not(:disabled){background:var(--accent-bg)}.smart-side-unit.active{background:var(--accent-bg);color:var(--accent);font-weight:500}.smart-side-unit.is-done .smart-side-title{color:var(--text-muted)}.smart-side-unit.is-skipped{opacity:.5}.smart-side-unit.is-skipped .smart-side-title{text-decoration:line-through}.smart-side-unit.is-locked{color:var(--text-muted);cursor:default;opacity:.6}.smart-side-status{background:var(--code-bg);width:18px;height:18px;color:var(--text-muted);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.smart-side-unit.is-done .smart-side-status{background:var(--badge-green-bg);color:var(--badge-green)}.smart-side-unit.active .smart-side-status{background:var(--accent);color:#fff}.smart-side-status svg{width:11px!important;height:11px!important}.smart-side-title{flex:1;min-width:0}.smart-side-unit .sc-chip{padding:1px 6px;font-size:.6rem}.smart-side-staff{margin-top:var(--sp-4);flex-direction:column;gap:2px;display:flex}.smart-side-staff .ghost-btn{justify-content:flex-start}.smart-log{width:var(--sidebar-w);border-left:1px solid var(--border);background:var(--surface);z-index:30;flex-direction:column;flex-shrink:0;height:100svh;transition:width .2s;display:flex;position:sticky;top:0}.smart-log-wide{z-index:320;width:min(50vw,720px);box-shadow:var(--shadow);position:fixed;top:0;right:0}.smart-log-head{border-bottom:1px solid var(--border);box-sizing:border-box;align-items:center;gap:6px;min-height:57px;padding:.6rem 1rem;display:flex}.smart-log-head .smart-log-title{flex:1}.smart-log-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.72rem;font-weight:700}.smart-log-toggle{width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;font-size:.7rem;transition:background .15s,color .15s;display:inline-flex}.smart-log-toggle:hover{background:var(--accent-bg);color:var(--text-h)}.smart-log-toggle svg{width:16px;height:16px}.smart-log-open{z-index:20;background:var(--surface);width:30px;height:30px;box-shadow:var(--shadow-sm,0 1px 3px #0000001f);position:fixed;top:1.4rem;left:auto;right:8px}.smart-log-open:hover{background:var(--accent-bg)}.smart-log-body{flex-direction:column;flex:1;gap:.6rem;padding:.8rem 1rem 1.2rem;font-size:.78rem;line-height:1.45;display:flex;overflow-y:auto}.smart-log-empty{color:var(--text-muted);font-size:.8rem}.smart-log-entry{flex-direction:column;gap:2px;display:flex}.smart-log-time{font-family:var(--mono);color:var(--text-muted);font-size:.65rem}.smart-log-text{color:var(--text-h)}.smart-log-entry.kind-send .smart-log-text{color:var(--text)}.smart-log-entry.kind-ok .smart-log-text{color:var(--badge-green)}.smart-log-entry.kind-warn .smart-log-text{color:var(--badge-red)}.smart-log-entry.kind-busy .smart-log-text{color:var(--accent)}.smart-log-details{flex-direction:column;gap:2px;margin-top:2px;display:flex}.smart-log-details summary{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;font-size:.72rem}.smart-log-details summary:hover{color:var(--accent)}.smart-log-details pre{background:var(--code-bg);font-family:var(--mono);white-space:pre-wrap;word-break:break-word;border-radius:8px;max-height:260px;margin:4px 0 6px;padding:.5rem .6rem;font-size:.68rem;line-height:1.5;overflow-y:auto}.smart-log-head-actions{align-items:center;gap:2px;display:flex}.smart-log-dl{background:var(--accent-soft);color:var(--accent-soft-text);cursor:pointer;box-shadow:var(--card-shadow);border:none;border-radius:7px;align-self:flex-start;margin-top:2px;padding:2px 8px;font-size:.68rem;font-weight:600;transition:box-shadow .15s}.smart-log-dl:hover{box-shadow:var(--shadow)}.smart-log-session{flex-direction:column;gap:.6rem;display:flex}.smart-log-session+.smart-log-session{margin-top:var(--sp-3)}.smart-log-session-head{z-index:2;background:var(--accent-bg);border-radius:8px;align-items:center;gap:6px;margin:0 -2px;padding:5px 8px;display:flex;position:sticky;top:-.8rem}.smart-log-session.is-collapsed{gap:0}.smart-log-session-toggle{width:18px;height:18px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;display:inline-flex}.smart-log-session-toggle:hover{color:var(--accent)}.smart-log-session-date{letter-spacing:.02em;min-width:0;color:var(--accent-soft-text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.74rem;font-weight:700;overflow:hidden}.smart-log-session-count{background:var(--surface);min-width:18px;height:16px;font-family:var(--mono);color:var(--text-muted);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:0 5px;font-size:.62rem;display:inline-flex}.llm-params-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;display:grid}@media (width<=640px){.llm-params-row{grid-template-columns:1fr}}.llm-params-row .users-field>span{white-space:normal;overflow-wrap:normal;word-break:normal}.llm-params-row .users-field-note{margin-top:1px;display:block}.sc-block-writing{padding:var(--sp-4);background:var(--accent-bg);color:var(--text);margin:var(--sp-4) 0;border-radius:14px;align-items:center;gap:12px;display:flex}.sc-block-writing p{margin:0}.jg{gap:var(--sp-3);flex-direction:column;display:flex}.jg-head{justify-content:space-between;align-items:center;gap:var(--sp-3);flex-wrap:wrap;display:flex}.jg-head-right{align-items:center;gap:var(--sp-3);display:flex}.jg-head .btn-soft{align-items:center;gap:6px;display:inline-flex}.jg-grade{background:var(--accent-soft);color:var(--accent-soft-text);font-family:var(--mono);border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700}.jg-grades{background:var(--code-bg);border-radius:10px;flex-wrap:wrap;align-items:center;gap:5px;padding:.5rem .7rem;display:flex}.jg-grades-label{color:var(--text-muted);margin-right:4px;font-size:.72rem}.jg-grade-pt{font-family:var(--mono);background:var(--surface);color:var(--text-muted);border-radius:6px;padding:1px 6px;font-size:.72rem;font-weight:700}.jg-grade-pt.up{color:var(--badge-green)}.jg-grade-pt.down{color:var(--badge-red)}.jg-flow{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.jg-node{position:relative}.jg-node-head{text-align:left;cursor:pointer;background:var(--surface);width:100%;box-shadow:var(--card-shadow);border:none;border-radius:12px;align-items:center;gap:8px;padding:.6rem .8rem;transition:box-shadow .15s;display:flex}.jg-node-head:hover{box-shadow:var(--shadow)}.jg-node.is-open .jg-node-head{border-bottom-right-radius:0;border-bottom-left-radius:0}.jg-node.is-skipped .jg-node-head{opacity:.55}.jg-node.is-skipped .jg-node-title{text-decoration:line-through}.jg-node.is-done .jg-node-num{background:var(--badge-green);color:#fff}.jg-node-num{background:var(--code-bg);width:24px;height:24px;font-family:var(--mono);color:var(--text-muted);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:inline-flex}.jg-node-title{min-width:0;color:var(--text-h);flex:1;font-size:.9rem;font-weight:600}.jg-node-marks{flex-shrink:0;gap:3px;display:flex}.jg-mark{background:var(--code-bg);width:18px;height:18px;color:var(--text-muted);border-radius:999px;justify-content:center;align-items:center;font-size:.65rem;font-weight:700;display:inline-flex}.jg-mark-unit_done{background:var(--badge-green-bg);color:var(--badge-green)}.jg-mark-checkin{background:var(--accent-soft);color:var(--accent-soft-text)}.jg-mark-grade_changed{color:#b45309;background:#fde68a55}.jg-node-status{color:var(--text-muted);flex-shrink:0;font-size:.7rem}.jg-node-status.is-done{color:var(--badge-green)}.jg-node-status.is-skipped{color:var(--badge-red)}.jg-node-body{background:var(--surface);box-shadow:var(--card-shadow);border-radius:0 0 12px 12px;flex-direction:column;gap:6px;margin-top:-2px;padding:.6rem .8rem .8rem;display:flex}.jg-goal,.jg-diff,.jg-empty{color:var(--text);margin:0;font-size:.82rem}.jg-diff{color:var(--text-muted);font-size:.75rem}.jg-ev{align-items:baseline;gap:8px;font-size:.8rem;display:flex}.jg-ev-kind{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);flex-shrink:0;min-width:92px;font-size:.66rem;font-weight:700}.jg-ev-text{min-width:0;color:var(--text-h);flex:1}.jg-ev-at{color:var(--text-muted);flex-shrink:0;font-size:.68rem}.jg-arrow{text-align:center;color:var(--text-muted);padding:2px 0;font-size:.9rem;line-height:1.2;display:block}.ss-tl-session{flex-direction:column;display:flex}.ss-tl-session+.ss-tl-session{margin-top:var(--sp-3)}.ss-tl-session-head{background:var(--code-bg);cursor:pointer;text-align:left;border:none;border-radius:8px;align-items:center;gap:6px;width:100%;padding:5px 8px;display:flex}.ss-tl-session-title{min-width:0;color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.78rem;font-weight:700;overflow:hidden}.ss-tl-session-date{color:var(--text-muted);flex-shrink:0;font-size:.7rem}.ss-tl-session .ss-timeline{margin-top:var(--sp-3)}.sd-mode{margin-bottom:var(--sp-4);grid-template-columns:1fr 1fr;gap:.7rem;display:grid}@media (width<=640px){.sd-mode{grid-template-columns:1fr}}.sd-mode-opt{text-align:left;background:var(--code-bg);cursor:pointer;border:none;border-radius:12px;flex-direction:column;gap:4px;padding:.8rem 1rem;transition:box-shadow .15s,background .15s;display:flex;box-shadow:inset 0 0 0 1px #0000}.sd-mode-opt:hover{background:var(--accent-bg)}.sd-mode-opt.is-active{background:var(--accent-bg);box-shadow:inset 0 0 0 2px var(--accent)}.sd-mode-title{color:var(--text-h);font-weight:700}.sd-mode-desc{color:var(--text-muted);font-size:.78rem;line-height:1.4}.sd-block-diff{background:var(--code-bg);color:var(--text-h);font:inherit;cursor:pointer;border:none;border-radius:8px;flex-shrink:0;padding:.4rem .5rem;font-size:.85rem}.sd-block-content{font-family:var(--mono);font-size:.82rem;line-height:1.5}.sd-status{background:var(--code-bg);color:var(--text-muted);vertical-align:middle;border-radius:999px;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-flex}.sd-status.is-saved{background:var(--badge-green-bg);color:var(--badge-green)}.sd-status.is-edit{background:var(--badge-amber-bg,var(--accent-bg));color:var(--accent)}.sd-empty{align-items:center;gap:var(--sp-3);text-align:center;padding:var(--sp-7) var(--sp-4);color:var(--text-muted);background:var(--code-bg);border-radius:16px;flex-direction:column;line-height:1.55;display:flex}.sd-empty p{max-width:460px;margin:0}.sd-empty-icon{width:34px;height:34px;color:var(--accent);opacity:.85}.sd-tile{background:var(--code-bg);border-radius:12px;margin-bottom:.5rem;transition:box-shadow .15s;box-shadow:inset 0 0 0 1px #0000}.sd-tile.is-open{box-shadow:inset 0 0 0 1px var(--accent-border)}.sd-tile-head{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:.7rem .9rem;display:flex}.sd-tile>.sd-tile-head{color:var(--text-h)}.sd-tile-chevron{width:16px;height:16px;color:var(--text-muted);flex-shrink:0;transition:transform .15s}.sd-tile-chevron.is-open{transform:rotate(90deg)}.sd-tile-chevron-btn{cursor:pointer;background:0 0;border:none;padding:0;display:flex}.sd-tile-label{color:var(--text-h);flex-shrink:0;font-weight:600}.sd-tile-preview{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:.82rem;overflow:hidden}.sd-tile-body{padding:0 .9rem .9rem}.sd-tile-body .sd-field:last-child{margin-bottom:0}.sd-tile-topic .sd-tile-head{cursor:default}.sd-tile-topictitle{min-width:0;color:var(--text-h);cursor:pointer;flex:1;font-weight:600}.sd-topic-title{flex:1}.sd-view-text{white-space:pre-wrap;word-break:break-word;color:var(--text);font-size:.9rem;line-height:1.55}.sd-view-text.is-mono{font-family:var(--mono);font-size:.82rem}.kindpick-option.is-smart svg{color:var(--smart,var(--accent))}.cp-actions .total-score{border-radius:8px;gap:.4rem;margin-bottom:0;padding:.2rem .5rem}.cp-actions .total-score:hover{background:var(--accent-bg)}.sd-count{color:var(--text-muted);flex-shrink:0;margin-left:auto;font-size:.72rem}.sd-topic-actions+.sd-count,.sd-tile-head .sd-count{margin-left:auto}.sd-node-desc{margin-bottom:.6rem}.sd-node-desc-view{color:var(--text-muted);margin-bottom:.6rem;font-size:.85rem}.sd-lesson{background:var(--surface);border-radius:10px;margin:.4rem 0;transition:box-shadow .15s;box-shadow:inset 0 0 0 1px #0000}.sd-lesson.is-open{box-shadow:inset 0 0 0 1px var(--border)}.sd-lesson-head{align-items:center;gap:8px;padding:.5rem .7rem;display:flex}.sd-lesson-num{background:var(--accent-bg);width:20px;height:20px;color:var(--accent);border-radius:6px;flex-shrink:0;place-items:center;font-size:.72rem;font-weight:700;display:grid}.sd-lesson-title{min-width:0;color:var(--text-h);cursor:pointer;flex:1;font-weight:600}.sd-lesson-body{padding:0 .7rem .7rem 2.2rem}.sd-lesson-smart{flex-wrap:wrap;gap:.6rem;margin-bottom:.6rem;display:flex}.sd-inline-field{color:var(--text-muted);flex-direction:column;gap:3px;font-size:.72rem;display:flex}.sd-inline-grow{flex:1;min-width:180px}.sd-lesson-test{color:var(--text-muted);margin-bottom:.5rem;font-size:.82rem}.sd-steps{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.sd-step{border-radius:8px;align-items:center;gap:8px;padding:.3rem .4rem;display:flex}.sd-step:hover{background:var(--accent-bg)}.sd-step-num{background:var(--code-bg);width:18px;height:18px;color:var(--text-muted);border-radius:5px;flex-shrink:0;place-items:center;font-size:.68rem;font-weight:600;display:grid}.sd-step-title{min-width:0;color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:.9rem;overflow:hidden}.sd-step-empty{color:var(--text-muted);background:var(--code-bg);border-radius:999px;flex-shrink:0;padding:1px 6px;font-size:.65rem}.sd-step-edit{color:var(--accent)}.sd-step-edit:hover{background:var(--accent-bg)}.sd-step:not(:hover) .sd-step-edit{opacity:.55}.sd-add-sm{margin-top:.5rem;padding:.3rem .7rem;font-size:.8rem}.sse-overlay{z-index:60;background:var(--bg);position:fixed;inset:0}.sse-layout{height:100vh}.st-main{max-width:64rem;padding:var(--sp-5) clamp(1rem, 3vw, 2rem) var(--sp-7);margin:0 auto}.st-section{margin-top:var(--sp-6)}.st-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:0 0 var(--sp-3);font-size:.8rem;font-weight:700}.st-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.7rem;display:grid}.st-card{-moz-column-gap:.6rem;text-align:left;background:var(--surface);box-shadow:var(--shadow-sm,0 1px 2px #0000000f);cursor:pointer;color:inherit;font:inherit;border:none;border-radius:14px;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:start;gap:2px .6rem;width:100%;padding:.9rem 1rem;transition:box-shadow .15s,transform .1s;display:grid}.st-card:hover:not(:disabled){box-shadow:var(--shadow)}.st-card:active:not(:disabled){transform:scale(.99)}.st-card:disabled{opacity:.6;cursor:default}.st-card-icon{width:22px;height:22px;color:var(--accent);grid-row:span 2;margin-top:2px}.st-card-name{color:var(--text-h);font-weight:600}.st-card-desc{color:var(--text-muted);font-size:.8rem;line-height:1.4}.st-card.is-danger .st-card-icon{color:var(--badge-red,#e5484d)}.st-card.is-danger:hover:not(:disabled){box-shadow:0 0 0 1px var(--badge-red-bg,#e5484d40), var(--shadow)}.sc-generate-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.sc-block-writing-body{flex-direction:column;gap:.5rem;display:flex}.sc-cancel{color:var(--badge-red,#e5484d)}.sc-cancel:hover{background:var(--badge-red-bg,#e5484d1f);color:var(--badge-red,#e5484d)}.smart-log-cancel{margin-left:auto;padding:2px 8px;font-size:.72rem}@font-face{font-display:block;font-family:KaTeX_AMS;font-style:normal;font-weight:400;src:url(/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2)format("woff2"),url(/assets/KaTeX_AMS-Regular-DMm9YOAa.woff)format("woff"),url(/assets/KaTeX_AMS-Regular-DRggAlZN.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Caligraphic;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2)format("woff2"),url(/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff)format("woff"),url(/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff)format("woff"),url(/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Fraktur;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2)format("woff2"),url(/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff)format("woff"),url(/assets/KaTeX_Fraktur-Regular-CB_wures.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:700;src:url(/assets/KaTeX_Main-Bold-Cx986IdX.woff2)format("woff2"),url(/assets/KaTeX_Main-Bold-Jm3AIy58.woff)format("woff"),url(/assets/KaTeX_Main-Bold-waoOVXN0.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2)format("woff2"),url(/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff)format("woff"),url(/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2)format("woff2"),url(/assets/KaTeX_Main-Italic-BMLOBm91.woff)format("woff"),url(/assets/KaTeX_Main-Italic-3WenGoN9.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Main;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Main-Regular-B22Nviop.woff2)format("woff2"),url(/assets/KaTeX_Main-Regular-Dr94JaBh.woff)format("woff"),url(/assets/KaTeX_Main-Regular-ypZvNtVU.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:700;src:url(/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2)format("woff2"),url(/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff)format("woff"),url(/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Math;font-style:italic;font-weight:400;src:url(/assets/KaTeX_Math-Italic-t53AETM-.woff2)format("woff2"),url(/assets/KaTeX_Math-Italic-DA0__PXp.woff)format("woff"),url(/assets/KaTeX_Math-Italic-flOr_0UB.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:700;src:url(/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff)format("woff"),url(/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:italic;font-weight:400;src:url(/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff)format("woff"),url(/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_SansSerif;font-style:normal;font-weight:400;src:url(/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2)format("woff2"),url(/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff)format("woff"),url(/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Script;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Script-Regular-D3wIWfF6.woff2)format("woff2"),url(/assets/KaTeX_Script-Regular-D5yQViql.woff)format("woff"),url(/assets/KaTeX_Script-Regular-C5JkGWo-.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size1;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2)format("woff2"),url(/assets/KaTeX_Size1-Regular-C195tn64.woff)format("woff"),url(/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size2;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2)format("woff2"),url(/assets/KaTeX_Size2-Regular-oD1tc_U0.woff)format("woff"),url(/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size3;font-style:normal;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAA4oAA4AAAAAHbQAAA3TAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAgRQIDgmcDBEICo1oijYBNgIkA14LMgAEIAWJAAeBHAyBHBvbGiMRdnO0IkRRkiYDgr9KsJ1NUAf2kILNxgUmgqIgq1P89vcbIcmsQbRps3vCcXdYOKSWEPEKgZgQkprQQsxIXUgq0DqpGKmIvrgkeVGtEQD9DzAO29fM9jYhxZEsL2FeURH2JN4MIcTdO049NCVdxQ/w9NrSYFEBKTDKpLKfNkCGDc1RwjZLQcm3vqJ2UW9Xfa3tgAHz6ivp6vgC2yD4/6352ndnN0X0TL7seypkjZlMsjmZnf0Mm5Q+JykRWQBKCVCVPbARPXWyQtb5VgLB6Biq7/Uixcj2WGqdI8tGSgkuRG+t910GKP2D7AQH0DB9FMDW/obJZ8giFI3Wg8Cvevz0M+5m0rTh7XDBlvo9Y4vm13EXmfttwI4mBo1EG15fxJhUiCLbiiyCf/ZA6MFAhg3pGIZGdGIVjtPn6UcMk9A/UUr9PhoNsCENw1APAq0gpH73e+M+0ueyHbabc3vkbcdtzcf/fiy+NxQEjf9ud/ELBHAXJ0nk4z+MXH2Ev/kWyV4k7SkvpPc9Qr38F6RPWnM9cN6DJ0AdD1BhtgABtmoRoFCvPsBAumNm6soZG2Gk5GyVTo2sJncSyp0jQTYoR6WDvTwaaEcHsxHfvuWhHA3a6bN7twRKtcGok6NsCi7jYRrM2jExsUFMxMQYuJbMhuWNOumEJy9hi29Dmg5zMp/A5+hhPG19j1vBrq8JTLr8ki5VLPmG/PynJHVul440bxg5xuymHUFPBshC+nA9I1FmwbRBTNHAcik3Oae0cxKoI3MOriM42UrPe51nsaGxJ+WfXubAsP84aabUlQSJ1IiE0iPETLUU4CATgfXSCSpuRFRmCGbO+wSpAnzaeaCYW1VNEysRtuXCEL1kUFUbbtMv3Tilt/1c11jt3Q5bbMa84cpWipp8Elw3MZhOHsOlwwVUQM3lAR35JiFQbaYCRnMF2lxAWoOg2gyoIV4PouX8HytNIfLhqpJtXB4vjiViUI8IJ7bkC4ikkQvKksnOTKICwnqWSZ9YS5f0WCxmpgjbIq7EJcM4aI2nmhLNY2JIUgOjXZFWBHb+x5oh6cwb0Tv1ackHdKi0I9OO2wE9aogIOn540CCCziyhN+IaejtgAONKznHlHyutPrHGwCx9S6B8kfS4Mfi4Eyv7OU730bT1SCBjt834cXsf43zVjPUqqJjgrjeGnBxSG4aYAKFuVbeCfkDIjAqMb6yLNIbCuvXhMH2/+k2vkNpkORhR59N1CkzoOENvneIosjYmuTxlhUzaGEJQ/iWqx4dmwpmKjrwTiTGTCVozNAYqk/zXOndWxuWSmJkQpJw3pK5KX6QrLt5LATMqpmPAQhkhK6PUjzHUn7E0gHE0kPE0iKkolgkUx9SZmVAdDgpffdyJKg3k7VmzYGCwVXGz/tXmkOIp+vcWs+EMuhhvN0h9uhfzWJziBQmCREGSIFmQIkgVpAnSBRmC//6hkLZwaVhwxlrJSOdqlFtOYxlau9F2QN5Y98xmIAsiM1HVp2VFX+DHHGg6Ecjh3vmqtidX3qHI2qycTk/iwxSt5UzTmEP92ZBnEWTk4Mx8Mpl78ZDokxg/KWb+Q0QkvdKVmq3TMW+RXEgrsziSAfNXFMhDc60N5N9jQzjfO0kBKpUZl0ZmwJ41j/B9Hz6wmRaJB84niNmQrzp9eSlQCDDzazGDdVi3P36VZQ+Jy4f9UBNp+3zTjqI4abaFAm+GShVaXlsGdF3FYzZcDI6cori4kMxUECl9IjJZpzkvitAoxKue+90pDMvcKRxLl53TmOKCmV/xRolNKSqqUxc6LStOETmFOiLZZptlZepcKiAzteG8PEdpnQpbOMNcMsR4RR2Bs0cKFEvSmIjAFcnarqwUL4lDhHmnVkwu1IwshbiCcgvOheZuYyOteufZZwlcTlLgnZ3o/WcYdzZHW/WGaqaVfmTZ1aWCceJjkbZqsfbkOtcFlUZM/jy+hXHDbaUobWqqXaeWobbLO99yG5N3U4wxco0rQGGcOLASFMXeJoham8M+/x6O2WywK2l4HGbq1CoUyC/IZikQhdq3SiuNrvAEj0AVu9x2x3lp/xWzahaxidezFVtdcb5uEnzyl0ZmYiuKI0exvCd4Xc9CV1KB0db00z92wDPde0kukbvZIWN6jUWFTmPIC/Y4UPCm8UfDTFZpZNon1qLFTkBhxzB+FjQRA2Q/YRJT8pQigslMaUpFyAG8TMlXigiqmAZX4xgijKjRlGpLE0GdplRfCaJo0JQaSxNBk6ZmMzcya0FmrcisDdn0Q3HI2sWSppYigmlM1XT/kLQZSNpMJG0WkjYbSZuDpM1F0uYhFc1HxU4m1QJjDK6iL0S5uSj5rgXc3RejEigtcRBtqYPQsiTskmO5vosV+q4VGIKbOkDg0jtRrq+Em1YloaTFar3EGr1EUC8R0kus1Uus00usL97ABr2BjXoDm/QGNhuWtMVBKOwg/i78lT7hBsAvDmwHc/ao3vmUbBmhjeYySZNWvGkfZAgISDSaDo1SVpzGDsAEkF8B+gEapViUoZgUWXcRIGFZNm6gWbAKk0bp0k1MHG9fLYtV4iS2SmLEQFARzRcnf9PUS0LVn05/J9MiRRBU3v2IrvW974v4N00L7ZMk0wXP1409CHo/an8zTRHD3eSJ6m8D4YMkZNl3M79sqeuAsr/m3f+8/yl7A50aiAEJgeBeMWzu7ui9UfUBCe2TIqZIoOd/3/udRBOQidQZUERzb2/VwZN1H/Sju82ew2H2Wfr6qvfVf3hqwDvAIpkQVFy4B9Pe9e4/XvPeceu7h3dvO56iJPf0+A6cqA2ip18ER+iFgggiuOkvj24bby0N9j2UHIkgqIt+sVgfodC4YghLSMjSZbH0VR/6dMDrYJeKHilKTemt6v6kvzvn3/RrdWtr0GoN/xL+Sex/cPYLUpepx9cz/D46UPU5KXgAQa+NDps1v6J3xP1i2HtaDB0M9aX2deA7SYff//+gUCovMmIK/qfsFcOk+4Y5ZN97XlG6zebqtMbKgeRFi51vnxTQYBUik2rS/Cn6PC8ADR8FGxsRPB82dzfND90gIcshOcYUkfjherBz53odpm6TP8txlwOZ71xmfHHOvq053qFF/MRlS3jP0ELudrf2OeN8DHvp6ZceLe8qKYvWz/7yp0u4dKPfli3CYq0O13Ih71mylJ80tOi10On8wi+F4+LWgDPeJ30msSQt9/vkmHq9/Lvo2b461mP801v3W4xTcs6CbvF9UDdrSt+A8OUbpSh55qAUFXWznBBfdeJ8a4d7ugT5tvxUza3h9m4H7ptTqiG4z0g5dc0X29OcGlhpGFMpQo9ytTS+NViZpNdvU4kWx+LKxNY10kQ1yqGXrhe4/1nvP7E+nd5A92TtaRplbHSqoIdOqtRWti+fkB5/n1+/VvCmz12pG1kpQWsfi1ftlBobm0bpngs16CHkbIwdLnParxtTV3QYRlfJ0KFskH7pdN/YDn+yRuSd7sNH3aO0DYPggk6uWuXrfOc+fa3VTxFVvKaNxHsiHmsXyCLIE5yuOeN3/Jdf8HBL/5M6shjyhxHx9BjB1O0+4NLOnjLLSxwO7ukN4jMbOIcD879KLSi6Pk61Oqm2377n8079PXEEQ7cy7OKEC9nbpet118fxweTafpt69x/Bt8UqGzNQt7aelpc44dn5cqhwf71+qKp/Zf/+a0zcizOUWpl/iBcSXip0pplkatCchoH5c5aUM8I7/dWxAej8WicPL1URFZ9BDJelUwEwTkGqUhgSlydVes95YdXvhh9Gfz/aeFWvgVb4tuLbcv4+wLdutVZv/cUonwBD/6eDlE0aSiKK/uoH3+J1wDE/jMVqY2ysGufN84oIXB0sPzy8ollX/LegY74DgJXJR57sn+VGza0x3DnuIgABFM15LmajjjsNlYj+JEZGbuRYcAMOWxFkPN2w6Wd46xo4gVWQR/X4lyI/R6K/YK0110GzudPRW7Y+UOBGTfNNzHeYT0fiH0taunBpq9HEW8OKSaBGj21L0MqenEmNRWBAWDWAk4CpNoEZJ2tTaPFgbQYj8HxtFilErs3BTRwT8uO1NXQaWfIotchmPkAF5mMBAliEmZiOGVgCG9LgRzpscMAOOwowlT3JhusdazXGSC/hxR3UlmWVwWHpOIKheqONvjyhSiTHIkVUco5bnji8m//zL7PKaT1Vl5I6UE609f+gkr6MZKVyKc7zJRmCahLsdlyA5fdQkRSan9LgnnLEyGSkaKJCJog0wAgvepWBt80+1yKln1bMVtCljfNWDueKLsWwaEbBSfSPTEmVRsUcYYMnEjcjeyCZzBXK9E9BYBXLKjOSpUDR+nEV3TFSUdQaz+ot98QxgXwx0GQ+EEUAKB2qZPkQQ0GqFD8UPFMqyaCHM24BZmSGic9EYMagKizOw9Hz50DMrDLrqqLkTAhplMictiCAx5S3BIUQdeJeLnBy2CNtMfz6cV4u8XKoFZQesbf9YZiIERiHjaNodDW6LgcirX/mPnJIkBGDUpTBhSa0EIr38D5hCIszhCM8URGBqImoWjpvpt1ebu/v3Gl3qJfMnNM+9V+kiRFyROTPHQWOcs1dNW94/ukKMPZBvDi55i5CttdeJz84DLngLqjcdwEZ87bFFR8CIG35OAkDVN6VRDZ7aq67NteYqZ2lpT8oYB2CytoBd6VuAx4WgiAsnuj3WohG+LugzXiQRDeM3XYXlULv4dp5VFYC)format("woff2"),url(/assets/KaTeX_Size3-Regular-CTq5MqoE.woff)format("woff"),url(/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Size4;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2)format("woff2"),url(/assets/KaTeX_Size4-Regular-BF-4gkZK.woff)format("woff"),url(/assets/KaTeX_Size4-Regular-DWFBv043.ttf)format("truetype")}@font-face{font-display:block;font-family:KaTeX_Typewriter;font-style:normal;font-weight:400;src:url(/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2)format("woff2"),url(/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff)format("woff"),url(/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf)format("truetype")}.katex{text-indent:0;text-rendering:auto;font:1.21em/1.2 KaTeX_Main,Times New Roman,serif;position:relative}.katex *{border-color:currentColor;-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:"0.17.0"}.katex .katex-mathml{clip-path:inset(50%);border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{white-space:nowrap;width:min-content;position:relative}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathnormal{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-style:italic;font-weight:700}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathboldfrak,.katex .textboldfrak{font-family:KaTeX_Fraktur;font-weight:700}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .mathsfit,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{border-collapse:collapse;table-layout:fixed;display:inline-table}.katex .vlist-r{display:table-row}.katex .vlist{vertical-align:bottom;display:table-cell;position:relative}.katex .vlist>span{height:0;display:block;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{width:0;overflow:hidden}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{vertical-align:bottom;width:2px;min-width:2px;font-size:1px;display:table-cell}.katex .vbox{flex-direction:column;align-items:baseline;display:inline-flex}.katex .hbox{width:100%}.katex .hbox,.katex .thinbox{flex-direction:row;display:inline-flex}.katex .thinbox{width:0;max-width:0}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .smash{line-height:0;display:inline}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{border:0 solid;display:inline-block;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{border-bottom-style:solid;width:100%;display:inline-block}.katex .hdashline{border-bottom-style:dashed;width:100%;display:inline-block}.katex .sqrt>.root{margin-left:.277778em;margin-right:-.555556em}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.833333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.714286em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.857143em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14286em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71429em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96286em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55429em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.416667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.583333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.833333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.347222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.416667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.486111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.694444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.833333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44028em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.289352em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.347222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.405093em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.462963em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.520833em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.578704em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.694444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.833333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.289296em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.337512em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.385728em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.433944em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.578592em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.694311em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.833173em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.200965em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.241158em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.281351em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.321543em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.361736em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.401929em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.482315em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.578778em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.694534em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.833601em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{width:.12em;display:inline-block}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{min-width:1px;display:inline-block}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{fill:currentColor;stroke:currentColor;height:inherit;width:100%;display:block;position:absolute}.katex svg path{stroke:none}.katex svg{fill-rule:nonzero;fill-opacity:1;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex img{border-style:none;min-width:0;max-width:none;min-height:0;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{width:50.2%;position:absolute;left:0;overflow:hidden}.katex .halfarrow-right{width:50.2%;position:absolute;right:0;overflow:hidden}.katex .brace-left{width:25.1%;position:absolute;left:0;overflow:hidden}.katex .brace-center{width:50%;position:absolute;left:25%;overflow:hidden}.katex .brace-right{width:25.1%;position:absolute;right:0;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .cd-arrow-pad{padding:0 .55556em 0 .27778em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex .angl{box-sizing:border-box;border-top:.049em solid;border-right:.049em solid;margin-right:.03889em}.katex .anglpad{padding:0 .03889em}.katex .eqn-num:before{content:"(" counter(katexEqnNo) ")";counter-increment:katexEqnNo}.katex .mml-eqn-num:before{content:"(" counter(mmlEqnNo) ")";counter-increment:mmlEqnNo}.katex .mtr-glue{width:50%}.katex .cd-vert-arrow{display:inline-block;position:relative}.katex .cd-label-left{text-align:left;display:inline-block;position:absolute;right:calc(50% + .3em)}.katex .cd-label-right{text-align:right;display:inline-block;position:absolute;left:calc(50% + .3em)}.katex-display{text-align:center;margin:1em 0;display:block}.katex-display>.katex{text-align:center;white-space:nowrap;display:block}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left;padding-left:2em}body{counter-reset:katexEqnNo mmlEqnNo}
