/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-ease:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-orange-500:oklch(70.5% .213 47.604);--color-orange-600:oklch(64.6% .222 41.116);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-600:oklch(66.6% .179 58.318);--color-emerald-500:oklch(69.6% .17 162.48);--color-teal-600:oklch(60% .118 184.704);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-500:oklch(68.5% .169 237.323);--color-blue-600:oklch(54.6% .245 262.881);--color-violet-500:oklch(60.6% .25 292.717);--color-purple-600:oklch(55.8% .288 302.321);--color-neutral-100:oklch(97% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-lg:32rem;--container-xl:36rem;--container-3xl:48rem;--container-4xl:56rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-accent:#5e0ed7;--color-surface-soft:var(--surface-soft);--color-hairline:var(--hairline);--color-hairline-soft:var(--hairline-soft);--color-ink:var(--ink);--color-charcoal:var(--charcoal);--color-slate:var(--slate);--color-steel:var(--steel);--color-primary:var(--primary);--color-primary-deep:var(--primary-deep);--color-primary-soft:var(--primary-soft);--color-accent-lab:var(--accent-lab);--color-success:var(--success);--color-attention:var(--attention);--color-critical:var(--critical)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.z-10{z-index:10}.z-50{z-index:50}.z-\[60\]{z-index:60}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-0\.5{margin-left:calc(var(--spacing) * .5)}.ml-2{margin-left:calc(var(--spacing) * 2)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-\[18px\]{height:18px}.h-full{height:100%}.max-h-32{max-height:calc(var(--spacing) * 32)}.max-h-40{max-height:calc(var(--spacing) * 40)}.min-h-screen{min-height:100vh}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-7{width:calc(var(--spacing) * 7)}.w-8{width:calc(var(--spacing) * 8)}.w-9{width:calc(var(--spacing) * 9)}.w-\[18px\]{width:18px}.w-\[120px\]{width:120px}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[130px\]{max-width:130px}.max-w-lg{max-width:var(--container-lg)}.max-w-xl{max-width:var(--container-xl)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.border-collapse{border-collapse:collapse}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-none{list-style-type:none}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-8>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 8) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 8) * calc(1 - var(--tw-space-y-reverse)))}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-black\/5>:not(:last-child)){border-color:#0000000d}@supports (color:color-mix(in lab,red,red)){:where(.divide-black\/5>:not(:last-child)){border-color:color-mix(in oklab,var(--color-black) 5%,transparent)}}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-accent-lab{border-color:var(--color-accent-lab)}.border-accent\/30{border-color:#5e0ed74d}@supports (color:color-mix(in lab,red,red)){.border-accent\/30{border-color:color-mix(in oklab,var(--color-accent) 30%,transparent)}}.border-black\/10{border-color:#0000001a}@supports (color:color-mix(in lab,red,red)){.border-black\/10{border-color:color-mix(in oklab,var(--color-black) 10%,transparent)}}.border-black\/15{border-color:#00000026}@supports (color:color-mix(in lab,red,red)){.border-black\/15{border-color:color-mix(in oklab,var(--color-black) 15%,transparent)}}.border-hairline-soft{border-color:var(--color-hairline-soft)}.bg-accent\/10{background-color:#5e0ed71a}@supports (color:color-mix(in lab,red,red)){.bg-accent\/10{background-color:color-mix(in oklab,var(--color-accent) 10%,transparent)}}.bg-black{background-color:var(--color-black)}.bg-black\/70{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.bg-black\/70{background-color:color-mix(in oklab,var(--color-black) 70%,transparent)}}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-primary-soft{background-color:var(--color-primary-soft)}.bg-surface-soft{background-color:var(--color-surface-soft)}.bg-white{background-color:var(--color-white)}.bg-white\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.bg-white\/70{background-color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.bg-gradient-to-b{--tw-gradient-position:to bottom in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-\[radial-gradient\(1200px_700px_at_70\%_20\%\,rgba\(94\,14\,215\,0\.28\)\,transparent_55\%\)\,linear-gradient\(135deg\,\#f4f0ff_0\%\,\#ffffff_45\%\,\#ebe4ff_100\%\)\]{background-image:radial-gradient(1200px 700px at 70% 20%,#5e0ed747,#0000 55%),linear-gradient(135deg,#f4f0ff,#fff 45%,#ebe4ff)}.from-amber-500{--tw-gradient-from:var(--color-amber-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-cyan-500{--tw-gradient-from:var(--color-cyan-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-emerald-500{--tw-gradient-from:var(--color-emerald-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-orange-500{--tw-gradient-from:var(--color-orange-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-sky-500{--tw-gradient-from:var(--color-sky-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-violet-500{--tw-gradient-from:var(--color-violet-500);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-white\/55{--tw-gradient-from:#ffffff8c}@supports (color:color-mix(in lab,red,red)){.from-white\/55{--tw-gradient-from:color-mix(in oklab,var(--color-white) 55%,transparent)}}.from-white\/55{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-white\/35{--tw-gradient-via:#ffffff59}@supports (color:color-mix(in lab,red,red)){.via-white\/35{--tw-gradient-via:color-mix(in oklab,var(--color-white) 35%,transparent)}}.via-white\/35{--tw-gradient-via-stops:var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-via) var(--tw-gradient-via-position),var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-amber-600{--tw-gradient-to:var(--color-amber-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-blue-600{--tw-gradient-to:var(--color-blue-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-orange-600{--tw-gradient-to:var(--color-orange-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-purple-600{--tw-gradient-to:var(--color-purple-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-teal-600{--tw-gradient-to:var(--color-teal-600);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white\/70{--tw-gradient-to:#ffffffb3}@supports (color:color-mix(in lab,red,red)){.to-white\/70{--tw-gradient-to:color-mix(in oklab,var(--color-white) 70%,transparent)}}.to-white\/70{--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position),var(--tw-gradient-from) var(--tw-gradient-from-position),var(--tw-gradient-to) var(--tw-gradient-to-position))}.object-cover{object-fit:cover}.p-0{padding:calc(var(--spacing) * 0)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pb-8{padding-bottom:calc(var(--spacing) * 8)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.text-\[15px\]{font-size:15px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.text-accent{color:var(--color-accent)}.text-accent-lab{color:var(--color-accent-lab)}.text-attention{color:var(--color-attention)}.text-black{color:var(--color-black)}.text-black\/50{color:#00000080}@supports (color:color-mix(in lab,red,red)){.text-black\/50{color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.text-black\/55{color:#0000008c}@supports (color:color-mix(in lab,red,red)){.text-black\/55{color:color-mix(in oklab,var(--color-black) 55%,transparent)}}.text-black\/60{color:#0009}@supports (color:color-mix(in lab,red,red)){.text-black\/60{color:color-mix(in oklab,var(--color-black) 60%,transparent)}}.text-black\/65{color:#000000a6}@supports (color:color-mix(in lab,red,red)){.text-black\/65{color:color-mix(in oklab,var(--color-black) 65%,transparent)}}.text-black\/70{color:#000000b3}@supports (color:color-mix(in lab,red,red)){.text-black\/70{color:color-mix(in oklab,var(--color-black) 70%,transparent)}}.text-charcoal{color:var(--color-charcoal)}.text-critical{color:var(--color-critical)}.text-inherit{color:inherit}.text-primary{color:var(--color-primary)}.text-primary-deep{color:var(--color-primary-deep)}.text-slate{color:var(--color-slate)}.text-steel{color:var(--color-steel)}.text-success{color:var(--color-success)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040)}.shadow-2xl,.shadow-\[0_24px_60px_-24px_rgba\(10\,19\,23\,0\.35\)\]{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-\[0_24px_60px_-24px_rgba\(10\,19\,23\,0\.35\)\]{--tw-shadow:0 24px 60px -24px var(--tw-shadow-color,#0a131759)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px)}.blur,.invert{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{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,)}.backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (hover:hover){.hover\:border-hairline:hover{border-color:var(--color-hairline)}.hover\:bg-accent\/20:hover{background-color:#5e0ed733}@supports (color:color-mix(in lab,red,red)){.hover\:bg-accent\/20:hover{background-color:color-mix(in oklab,var(--color-accent) 20%,transparent)}}.hover\:bg-black\/5:hover{background-color:#0000000d}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/5:hover{background-color:color-mix(in oklab,var(--color-black) 5%,transparent)}}.hover\:bg-black\/85:hover{background-color:#000000d9}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/85:hover{background-color:color-mix(in oklab,var(--color-black) 85%,transparent)}}.hover\:bg-surface-soft:hover{background-color:var(--color-surface-soft)}.hover\:bg-white:hover{background-color:var(--color-white)}.hover\:text-charcoal:hover{color:var(--color-charcoal)}.hover\:text-ink:hover{color:var(--color-ink)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-primary:focus{border-color:var(--color-primary)}.focus\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\:ring-primary-soft:focus{--tw-ring-color:var(--color-primary-soft)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media (min-width:40rem){.sm\:block{display:block}.sm\:h-\[22px\]{height:22px}.sm\:w-\[22px\]{width:22px}.sm\:w-\[180px\]{width:180px}.sm\:max-w-\[160px\]{max-width:160px}.sm\:grid-cols-\[120px_1fr_auto\]{grid-template-columns:120px 1fr auto}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-2{gap:calc(var(--spacing) * 2)}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:gap-8{gap:calc(var(--spacing) * 8)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-8{padding-inline:calc(var(--spacing) * 8)}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.sm\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}@media (min-width:48rem){.md\:mt-4{margin-top:calc(var(--spacing) * 4)}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-\[42\%\]{width:42%}.md\:w-\[58\%\]{width:58%}.md\:w-\[280px\]{width:280px}.md\:max-w-xs{max-width:var(--container-xs)}.md\:flex-row{flex-direction:row}.md\:flex-row-reverse{flex-direction:row-reverse}.md\:gap-10{gap:calc(var(--spacing) * 10)}.md\:gap-12{gap:calc(var(--spacing) * 12)}.md\:gap-16{gap:calc(var(--spacing) * 16)}.md\:px-12{padding-inline:calc(var(--spacing) * 12)}.md\:py-0{padding-block:calc(var(--spacing) * 0)}.md\:py-24{padding-block:calc(var(--spacing) * 24)}.md\:py-28{padding-block:calc(var(--spacing) * 28)}.md\:pt-6{padding-top:calc(var(--spacing) * 6)}.md\:pb-12{padding-bottom:calc(var(--spacing) * 12)}.md\:text-right{text-align:right}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (min-width:64rem){.lg\:gap-24{gap:calc(var(--spacing) * 24)}.lg\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.lg\:text-\[2\.5rem\]{font-size:2.5rem}}}@font-face{font-family:NanumHuman;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/nanum-human/NanumHumanLight.woff2)format("woff2")}@font-face{font-family:NanumHuman;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/nanum-human/NanumHumanRegular.woff2)format("woff2")}@font-face{font-family:NanumHuman;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/nanum-human/NanumHumanBold.woff2)format("woff2")}@font-face{font-family:NanumHuman;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/nanum-human/NanumHumanEB.woff2)format("woff2")}@font-face{font-family:Montserrat;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/montserrat/montserrat-latin-var.woff2)format("woff2");unicode-range:u+??,u+131,u+152-153,u+2bb-2bc,u+2c6,u+2da,u+2dc,u+304,u+308,u+329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Montserrat;font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/montserrat/montserrat-latin-ext-var.woff2)format("woff2");unicode-range:u+100-2ba,u+2bd-2c5,u+2c7-2cc,u+2ce-2d7,u+2dd-2ff,u+304,u+308,u+329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}:root{--primary:#0064e0;--primary-deep:#0143b5;--primary-soft:#0064e026;--fb-blue:#1877f2;--link:#0866ff;--accent-lab:#5e0ed7;--canvas:#fff;--surface-soft:#f5f6f7;--hairline:#c9ccd1;--hairline-soft:#e4e6ea;--ink-deep:#0a1317;--ink:#14161a;--charcoal:#3a3f45;--slate:#5b6169;--steel:#6b727a;--stone:#a8aeb5;--disabled-text:#c4c9ce;--ink-button:#0a1317;--on-ink-button:#fff;--on-primary:#fff;--success:#31a24c;--attention:#f7b928;--warning:#ffd84d;--critical:#e41e3f;--critical-strong:#c7213a;--primary-ink:var(--primary-deep);--accent-lab-soft:#5e0ed71f;--success-soft:#31a24c29;--success-ink:#16703a;--attention-soft:#f7b92833;--attention-ink:#6b4400;--critical-soft:#e41e3f1a;--critical-ink:var(--critical-strong);--primary-light:#8fbff7;--accent-lab-light:#c2a6f5;--success-light:#7fd69a;--attention-light:#f8d98f;--critical-light:#f79fae;--r-xs:2px;--r-sm:4px;--r-md:6px;--r-lg:8px;--r-xl:16px;--r-xxl:24px;--r-xxxl:32px;--r-feature:40px;--r-full:100px;--r-circle:50%;--sp-xxs:4px;--sp-xs:8px;--sp-sm:10px;--sp-md:12px;--sp-base:16px;--sp-lg:20px;--sp-xl:24px;--sp-xxl:32px;--sp-xxxl:40px;--sp-section-sm:48px;--sp-section:64px;--sp-section-lg:80px;--sp-hero:120px;--elev-1:#0003 1px 1px 0px 0px;--elev-2:#14161a4d 0px 1px 4px 0px;--bg:var(--canvas);--card:var(--canvas);--card-elevated:var(--surface-soft);--border:var(--hairline-soft);--border-strong:#0a131773;--hover:#0a13170a;--hover-strong:#0a131714;--fg:var(--ink-deep);--text:var(--ink);--text-strong:var(--ink);--text-body:var(--charcoal);--muted:var(--slate);--muted-faint:var(--steel);--brand:var(--ink-button);--brand-dark:#000;--brand-soft:#0a13170a;--on-brand:var(--on-ink-button);--accent:var(--accent-lab);--shadow-inset:#fff3 0 .5px 0 0 inset,#0003 0 0 0 .5px inset,#0000000d 0 1px 2px 0;--shadow-focus:#0000001a 0 4px 12px;--shadow-soft:0 1px 2px #1c1c1c0d;--wf-canvas:var(--canvas);--wf-soft:var(--surface-soft);--wf-ink:var(--ink-deep);--wf-ink-strong:var(--ink);--wf-body:var(--charcoal);--wf-body-mid:var(--slate);--wf-mute:var(--steel);--wf-mute-soft:var(--stone);--wf-hairline:var(--hairline-soft);--wf-code-bg:#f7f7f8;--wf-accent-purple:#7a3dff;--wf-accent-pink:#ed52cb;--wf-accent-blue:#3b89ff;--wf-accent-orange:#ff6b00;--wf-accent-green:#00d722;--wf-accent-blue-info:#146ef5;--wf-accent-yellow:#ffae13;--wf-accent-red:#ee1d36;--wf-chroma-stripe:linear-gradient(to right,var(--accent-lab) 0%,var(--primary) 100%);--wf-shadow-feature:0 84px 24px #0000,0 54px 22px #00000003,0 30px 18px #0000000a,0 13px 13px #00000014,0 3px 7px #00000017;--wf-shadow-feature-strong:0 84px 24px #0000,0 54px 22px #00000005,0 30px 18px #0000000f,0 13px 13px #0000001a,0 3px 7px #0000001f}body,html{background:var(--bg);color:var(--text);font-feature-settings:"ss03","tnum";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Montserrat,NanumHuman,-apple-system,BlinkMacSystemFont,system-ui,Segoe UI,Apple SD Gothic Neo,Malgun Gothic,sans-serif}.font-pretendard{font-family:inherit}h1,h2,h3,h4,h5,h6{color:var(--ink-deep)}h1{font-size:36px;line-height:1.28}h1,h2{font-weight:600}h2{font-size:24px;line-height:1.25}h3{font-size:18px;line-height:1.44}h3,h4,h5,h6{font-weight:700}h4,h5,h6{letter-spacing:-.16px;font-size:16px;line-height:1.5}.t-hero-display{font-size:64px;font-weight:600;line-height:1.16}.t-display-lg{font-size:48px;font-weight:600;line-height:1.17}.t-heading-lg{font-size:36px;font-weight:600;line-height:1.28}.t-heading-md{font-size:28px;font-weight:300;line-height:1.21}.t-heading-sm{font-size:24px;font-weight:600;line-height:1.25}.t-subtitle-lg{font-weight:700}.t-subtitle-lg,.t-subtitle-md{font-size:18px;line-height:1.44}.t-subtitle-md{font-weight:400}.t-body-md{font-weight:400}.t-body-md,.t-body-md-bold{letter-spacing:-.16px;font-size:16px;line-height:1.5}.t-body-md-bold{font-weight:700}.t-body-sm{font-weight:400}.t-body-sm,.t-body-sm-bold{letter-spacing:-.14px;font-size:14px;line-height:1.43}.t-body-sm-bold{font-weight:700}.t-caption{font-weight:400}.t-caption,.t-caption-bold{font-size:12px;line-height:1.33}.t-caption-bold{font-weight:700}@media (max-width:767px){.t-hero-display{font-size:36px;line-height:1.28}.t-display-lg{font-size:32px;line-height:1.2}h1{font-size:28px}}@media (max-width:479px){.t-display-lg,.t-hero-display{font-size:24px;line-height:1.25}h1{font-size:24px}}.card{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);padding:var(--sp-xl);box-shadow:none}.btn{border-radius:var(--r-full);letter-spacing:-.14px;cursor:pointer;border:2px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:9px 22px;font-size:14px;font-weight:700;line-height:1.43;transition:opacity .13s,background .13s,border-color .13s,box-shadow .18s,transform .1s;display:inline-flex}.btn:focus-visible{box-shadow:0 0 0 3px var(--primary-soft);outline:none}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-sm{padding:5px 14px;font-size:13px}.btn-lg,.btn-sm{border-radius:var(--r-full)}.btn-lg{padding:12px 28px;font-size:14px}.btn-primary{background:var(--ink-button);color:var(--on-ink-button);box-shadow:none;border-color:#0000}.btn-primary:active:not(:disabled),.btn-primary:hover:not(:disabled){background:var(--charcoal);color:var(--on-ink-button)}.btn-primary:disabled{background:var(--disabled-text);color:var(--canvas);opacity:1}.btn-buy{background:var(--primary);color:var(--on-primary);box-shadow:none;border-color:#0000}.btn-buy:active:not(:disabled),.btn-buy:hover:not(:disabled){background:var(--primary-deep);color:var(--on-primary)}.btn-buy:disabled{background:var(--disabled-text);color:var(--canvas);opacity:1}.btn-secondary{border-color:var(--ink-deep);color:var(--ink-deep);box-shadow:none;background:0 0}.btn-secondary:hover:not(:disabled){background:var(--hover);border-color:var(--ink-deep)}.btn-ghost,.btn-outline{color:var(--ink-deep);background:0 0;border-color:#0a13171f}.btn-ghost:hover:not(:disabled),.btn-outline:hover:not(:disabled){background:var(--hover);color:var(--ink-deep);border-color:#0a131747}.btn-danger{background:var(--critical);color:var(--canvas);box-shadow:none;border-color:#0000}.btn-danger:hover:not(:disabled){background:var(--critical-strong)}.btn-danger-outline{color:var(--critical-strong);background:0 0;border-color:#e41e3f73}.btn-danger-outline:hover:not(:disabled){border-color:var(--critical-strong);background:#e41e3f0f}.btn-danger-outline:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.badge{border-radius:var(--r-full);padding:4px 10px;font-size:12px;font-weight:700;line-height:1.33;display:inline-block}.badge-green,.badge-success{background:var(--success-ink);color:var(--canvas)}.badge-attention,.badge-yellow{background:var(--attention);color:var(--ink-deep)}.badge-promo-yellow{background:var(--warning);color:var(--ink-deep)}.badge-critical,.badge-red{background:var(--critical);color:var(--canvas)}.badge-blue{background:var(--primary);color:var(--on-primary)}.badge-violet{background:var(--accent-lab-soft);color:var(--accent-lab)}.badge-emerald{background:var(--success-soft);color:var(--success-ink)}.badge-orange{background:var(--attention-soft);color:#9a3412}.badge-sky{background:var(--primary-soft);color:var(--primary-deep)}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1rem;margin-bottom:1rem;display:flex}.page-header-titles{flex-wrap:wrap;align-items:baseline;gap:.15rem .5rem;display:flex}.page-title{letter-spacing:-.02em;color:var(--fg);font-size:1.5rem;font-weight:650;line-height:1.2}.page-desc{color:var(--muted);letter-spacing:-.005em;margin-top:.2rem;font-size:.875rem}.card-grid{gap:1rem;display:grid}.card-grid-2{grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:640px){.card-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}}.card-grid-3{grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:768px){.card-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.card-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}.card-grid-4{grid-template-columns:repeat(1,minmax(0,1fr))}@media (min-width:640px){.card-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.card-grid-4{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1280px){.card-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.feature-card{background:var(--card);border:1px solid var(--border);color:inherit;border-radius:14px;align-items:flex-start;gap:1rem;padding:1.25rem 1.35rem;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.feature-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 8px 24px #2563eb14}.feature-card-icon{color:#fff;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;font-size:1.35rem;display:flex}.accent-blue{background:linear-gradient(135deg,var(--primary),var(--accent-lab))}.accent-indigo{background:linear-gradient(135deg,var(--accent-lab),var(--accent-lab))}.accent-amber{background:linear-gradient(135deg,var(--attention),#ea580c)}.accent-slate{background:linear-gradient(135deg,var(--slate),var(--charcoal))}.accent-rose{background:linear-gradient(135deg,var(--critical),var(--critical))}.feature-card-body{flex:1;min-width:0}.feature-card-title{font-size:1.0625rem;font-weight:600}.feature-card-desc{color:var(--muted);margin-top:.25rem;font-size:.875rem;line-height:1.45}.feature-card-arrow{color:var(--steel);flex-shrink:0;margin-top:.15rem;font-size:1.25rem;transition:transform .15s,color .15s}.feature-card:hover .feature-card-arrow{color:var(--brand);transform:translate(3px)}.project-card{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-direction:column;transition:box-shadow .18s,border-color .18s,transform .18s;display:flex;position:relative;overflow:hidden}.project-card:hover{border-color:var(--hairline);transform:translateY(-2px);box-shadow:0 12px 30px #0f172a14}.project-card-banner{isolation:isolate;height:6.5rem;position:relative;overflow:hidden}.project-card-banner:before{content:"";pointer-events:none;background:radial-gradient(120% 80% at 20% 0,#ffffff52 0,#0000 60%);position:absolute;inset:0}.project-card-banner-glyph{opacity:.4;filter:drop-shadow(0 3px 6px #0000001f);pointer-events:none;font-size:5rem;position:absolute;bottom:-1rem;right:-.35rem;transform:rotate(-10deg)}.project-card-banner-content{z-index:1;align-items:center;gap:.4rem;padding:.85rem 1rem;display:flex;position:relative}.project-card-banner-chip{color:var(--canvas);letter-spacing:.02em;background:#0f172ac7;border-radius:6px;padding:.22rem .55rem;font-size:.6875rem;font-weight:700}.project-card-banner-pill{color:var(--ink-deep);background:#ffffffeb;border-radius:999px;padding:.18rem .55rem;font-size:.6875rem;font-weight:700;box-shadow:0 1px 3px #0000001a}.project-card-accent{display:none}.accent-violet{background:linear-gradient(90deg,var(--accent-lab),var(--accent-lab))}.accent-emerald{background:linear-gradient(90deg,var(--success),#14b8a6)}.accent-orange{background:linear-gradient(90deg,#f97316,var(--attention))}.accent-sky{background:linear-gradient(90deg,var(--primary),var(--primary))}.project-card-inner{flex-direction:column;flex:1;padding:1rem 1.15rem 1.15rem;display:flex}.project-card-icon{font-size:1.5rem}.project-card-title{letter-spacing:-.01em;font-size:1.0625rem;font-weight:700}.project-card-desc{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.35rem;font-size:.875rem;line-height:1.45;display:-webkit-box;overflow:hidden}.project-card-desc--muted{opacity:.75;font-style:italic}.project-card-meta{color:var(--slate);margin-top:.65rem;font-size:.75rem;font-weight:500}.project-card-actions{border-top:1px solid var(--border);margin-top:1rem;padding-top:.85rem}.project-card-actions .btn-primary{flex:1;min-width:7rem}.project-files-panel{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}.project-files-list{flex-direction:column;gap:.35rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.project-files-item{align-items:center;gap:.5rem;font-size:.75rem;display:flex}.project-files-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);flex:1;overflow:hidden}.project-files-size{color:var(--muted);flex-shrink:0}.courseware-card{background:var(--card);border:1px solid var(--border);color:inherit;border-radius:16px;flex-direction:column;text-decoration:none;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex;overflow:hidden}.courseware-card:hover{border-color:var(--primary);transform:translateY(-3px);box-shadow:0 8px 28px #2563eb1a}.courseware-card:hover .courseware-card-arrow{transform:translate(4px)}.courseware-card-banner{isolation:isolate;align-items:flex-end;gap:.5rem;height:9.5rem;padding:.85rem;display:flex;position:relative;overflow:hidden}.courseware-card-banner:before{content:"";pointer-events:none;background:radial-gradient(120% 80% at 30% 0,#ffffff59 0,#0000 60%);position:absolute;inset:0}.courseware-card-banner-title{color:#fffffff2;letter-spacing:-.01em;text-shadow:0 2px 10px #00000040;-webkit-line-clamp:2;z-index:1;-webkit-box-orient:vertical;font-size:1.35rem;font-weight:900;line-height:1.15;display:-webkit-box;position:absolute;inset:.75rem .85rem auto;overflow:hidden}.courseware-card-banner-glyph{opacity:.35;filter:drop-shadow(0 4px 6px #00000026);pointer-events:none;font-size:5.5rem;position:absolute;bottom:-.75rem;right:-.5rem;transform:rotate(-12deg)}.courseware-card-chip{z-index:1;color:var(--canvas);letter-spacing:.02em;background:#0f172ac7;border-radius:6px;padding:.22rem .55rem;font-size:.6875rem;font-weight:700;position:relative}.courseware-card-banner-icon{filter:drop-shadow(0 1px 2px #00000014);font-size:2rem}.courseware-card-banner-badge{color:var(--primary-deep);z-index:1;background:#ffffffeb;border-radius:999px;padding:.18rem .55rem;font-size:.6875rem;font-weight:700;position:absolute;top:.75rem;right:.75rem;box-shadow:0 1px 3px #0000001a}.courseware-card-body{flex-direction:column;flex:1;padding:.9rem 1.25rem 1.1rem;display:flex}.courseware-card-subject{text-transform:uppercase;letter-spacing:.06em;color:var(--brand);font-size:.6875rem;font-weight:700}.courseware-card-title{margin-top:.3rem;font-size:1rem;font-weight:700;line-height:1.35}.courseware-card-summary{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;margin-top:.35rem;font-size:.8125rem;line-height:1.5;display:-webkit-box;overflow:hidden}.courseware-card-tags{flex-wrap:wrap;gap:.3rem;margin-top:.6rem;display:flex}.courseware-card-tag{color:#374151;border-radius:6px;padding:.2rem .45rem;font-size:.6875rem;font-weight:600}.courseware-card-cta{color:var(--brand);align-items:center;gap:.25rem;font-size:.8125rem;font-weight:600;display:inline-flex}.courseware-card-arrow{transition:transform .18s;display:inline-block}.courseware-card-footer{border-top:1px dashed var(--border);justify-content:space-between;align-items:center;gap:.5rem;margin-top:.85rem;padding-top:.65rem;display:flex}.courseware-card-meta{color:var(--muted);font-size:.75rem;font-weight:600}.list-card{background:var(--card);border:1px solid var(--border);border-radius:12px;align-items:center;gap:1rem;padding:1.05rem 1.2rem;transition:border-color .18s;display:flex}.list-card--link{transition:border-color .15s}.list-card--link:hover,a:hover .list-card--link{border-color:var(--border-strong)}.list-card-icon{background:var(--hover);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;font-size:1.25rem;display:flex}.list-card-body{flex:1;min-width:0}.list-card-title{color:var(--fg);font-weight:600}.list-card-meta{color:var(--muted);margin-top:.25rem;font-size:.8125rem}.list-card-code{color:var(--fg);background:var(--hover-strong);letter-spacing:.02em;border-radius:4px;padding:.12rem .45rem;font-family:ui-monospace,SF Mono,monospace;font-weight:600}.create-project-card{background:var(--card);border:1px solid var(--border);border-radius:16px;margin-top:1.5rem;padding:1.5rem}.create-project-card h2{margin-bottom:1rem;font-size:1rem;font-weight:600}.type-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}@media (min-width:768px){.type-picker-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.type-picker-card{text-align:center;border:2px solid var(--border);cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:.35rem;padding:1rem .65rem;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.type-picker-card:hover{border-color:var(--primary)}.type-picker-card--active{border-color:var(--brand);background:var(--primary-soft);box-shadow:0 0 0 3px #2563eb1f}.type-picker-icon{font-size:1.75rem}.type-picker-label{font-size:.8125rem;font-weight:600}.type-picker-hint{color:var(--muted);font-size:.6875rem;line-height:1.3}.create-project-row{border-top:1px solid var(--border);flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-top:1.25rem;padding-top:1.25rem;display:flex}.input-label{flex-direction:column;gap:.35rem;font-size:.875rem;font-weight:500;display:flex}.input-field{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:0 var(--sp-md);letter-spacing:-.14px;min-width:12rem;min-height:44px;color:var(--ink);font-size:14px;transition:border-color .13s,box-shadow .13s}.input-field::placeholder{color:var(--steel)}.input-field:focus{border-color:var(--fb-blue);box-shadow:inset 0 0 0 1px var(--fb-blue);outline:none}.input-field.input-field--error,.input-field[aria-invalid=true]{border-color:var(--critical-strong)}textarea.input-field{padding:10px var(--sp-md);min-height:88px;line-height:1.5}select.input-field{padding-right:var(--sp-xl)}.input-error-text{margin-top:var(--sp-xxs);letter-spacing:-.14px;color:var(--critical-strong);font-size:14px;line-height:1.43}.empty-state{text-align:center;padding:2.5rem 1.5rem}.empty-state-icon{margin-bottom:.75rem;font-size:2.5rem;display:block}.empty-state-title{color:var(--charcoal);font-weight:600}.empty-state-desc{color:var(--muted);margin-top:.35rem;font-size:.875rem}.alert-card{border:1px solid;border-radius:14px;align-items:flex-start;gap:.75rem;padding:1rem 1.15rem;display:flex}.alert-card--warning{background:var(--attention-soft);border-color:var(--attention-soft);color:var(--attention-ink)}.alert-card-icon{font-size:1.25rem}.login-page{background:linear-gradient(160deg,var(--accent-lab-soft) 0,var(--surface-soft) 42%,var(--surface-soft) 100%);justify-content:center;align-items:center;min-height:100vh;padding:1.5rem 1rem;display:flex;position:relative;overflow:hidden}.login-page__glow{filter:blur(80px);pointer-events:none;border-radius:50%;position:absolute}.login-page__glow--a{background:#6366f138;width:28rem;height:28rem;top:-6rem;right:-4rem}.login-page__glow--b{background:#2563eb29;width:24rem;height:24rem;bottom:-5rem;left:-3rem}.login-card{z-index:1;background:var(--card);border:1px solid var(--border);border-radius:16px;grid-template-columns:1fr;width:100%;max-width:920px;display:grid;position:relative;overflow:hidden}@media (min-width:840px){.login-card{grid-template-columns:1.05fr 1fr;min-height:32rem}}.login-hero{background:var(--fg);color:var(--on-brand);flex-direction:column;gap:1.5rem;padding:2rem 1.75rem;display:flex}@media (min-width:840px){.login-hero{justify-content:center;padding:2.5rem 2rem}}.login-brand{color:inherit;align-items:center;gap:.85rem;width:fit-content;text-decoration:none;display:flex}.login-brand:hover .login-brand__mark{transform:scale(1.04)}.login-brand__mark{width:3rem;height:3rem;color:var(--canvas);background:#ffffff2e;border:1px solid #ffffff38;border-radius:14px;justify-content:center;align-items:center;font-size:1.35rem;font-weight:800;transition:transform .2s;display:inline-flex}.login-brand__text{flex-direction:column;gap:.1rem;display:flex}.login-brand__text strong{color:var(--canvas);letter-spacing:-.02em;font-size:1.25rem}.login-brand__text span{color:var(--accent-lab-light);font-size:.8125rem;font-weight:400}.login-hero__lead{color:var(--accent-lab-light);max-width:22rem;margin:0;font-size:.9375rem;line-height:1.6}.login-features{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.login-features__item{background:#ffffff14;border:1px solid #ffffff1a;border-radius:12px;align-items:flex-start;gap:.75rem;padding:.75rem .85rem;display:flex}.login-features__icon{width:2.25rem;height:2.25rem;color:var(--canvas);background:#ffffff24;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.login-features__item>span:last-child{flex-direction:column;gap:.15rem;min-width:0;display:flex}.login-features__item strong{color:var(--canvas);font-size:.875rem;font-weight:600}.login-features__item>span:last-child>span{color:var(--accent-lab-light);font-size:.75rem;line-height:1.45}.login-form-wrap{flex-direction:column;justify-content:center;gap:1rem;padding:2rem 1.75rem;display:flex}@media (min-width:840px){.login-form-wrap{padding:2.5rem 2.25rem}}.login-form-header{margin-bottom:.25rem}.login-title{color:var(--text);letter-spacing:-.02em;font-size:1.625rem;font-weight:700}.login-subtitle{color:var(--muted);margin-top:.35rem;font-size:.875rem}.login-shell--single{background:linear-gradient(160deg,var(--accent-lab-soft) 0,var(--surface-soft) 100%);place-items:center;min-height:100vh;padding:2rem 1rem;display:grid}.login-hint{color:var(--muted);font-size:.875rem}.login-error{background:var(--critical-soft);color:var(--critical-strong);border-radius:10px}.login-error,.login-notice{padding:.65rem .85rem;font-size:.875rem}.login-notice{background:var(--primary-soft);color:var(--primary-deep);border:1px solid #a5f3fc;border-radius:10px}.login-notice--warn{background:var(--attention-soft);color:var(--attention-ink);border-color:var(--attention-soft)}.page-loading{min-height:60vh;color:var(--muted);justify-content:center;align-items:center;gap:12px;font-size:.875rem;display:flex}.page-loading__spinner{border:2.5px solid var(--hairline-soft);border-bottom-color:var(--accent-lab);border-radius:50%;width:22px;height:22px;animation:css-loader-circle-rotation 1s linear infinite}.login-email-form{gap:.65rem}.login-email-form,.login-field{flex-direction:column;display:flex}.login-field{gap:.35rem}.login-label{color:var(--charcoal);font-size:.8125rem;font-weight:600}.login-input{border:1px solid var(--border);background:var(--surface-soft);border-radius:10px;width:100%;padding:.7rem .9rem;font-size:.9375rem;transition:border-color .15s,background .15s,box-shadow .15s}.login-input:hover:not(:disabled){border-color:var(--hairline)}.login-input:focus{border-color:var(--primary);background:var(--canvas);outline:none;box-shadow:0 0 0 3px #3b82f626}.login-submit{border-radius:10px;width:100%;margin-top:.5rem;padding:.72rem 1rem;font-size:.9375rem;box-shadow:0 1px 2px #2563eb33}.login-submit__spinner{border:2px solid #ffffff59;border-top:2px solid var(--canvas);border-radius:50%;width:1rem;height:1rem;animation:login-spin .65s linear infinite}@keyframes login-spin{to{transform:rotate(1turn)}}.login-divider{color:var(--muted);align-items:center;gap:.75rem;margin:.25rem 0;font-size:.75rem;display:flex}.login-divider:after,.login-divider:before{content:"";background:var(--border);flex:1;height:1px}.login-accounts{flex-direction:column;gap:.5rem;display:flex}.login-footer-links{text-align:center;color:var(--muted);flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:.5rem;font-size:.8125rem;display:flex}.login-footer-links a{color:var(--primary);text-decoration:none}.login-footer-links a:hover{text-decoration:underline}.login-loading{text-align:center;color:var(--muted)}.login-account-card{border:1px solid var(--border);text-align:left;cursor:pointer;background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;width:100%;padding:.85rem 1rem;transition:border-color .15s,background .15s;display:flex}.login-account-card:hover:not(:disabled){border-color:var(--primary);background:var(--surface-soft)}.login-account-card:disabled{opacity:.6;cursor:not-allowed}.login-account-label{font-size:.9375rem;font-weight:600}.login-account-email{color:var(--muted);font-size:.75rem}.asset-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.15rem 1.25rem;transition:border-color .15s,box-shadow .15s}.asset-card:hover{border-color:var(--primary-soft);box-shadow:0 2px 8px #2563eb0f}.asset-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.asset-card-info{flex:1;min-width:0}.asset-card-type-row{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.asset-card-icon{font-size:1.25rem;line-height:1}.asset-card-title{margin:0;font-size:.9375rem;font-weight:600}.asset-card-desc{color:var(--muted);margin-top:.25rem;font-size:.8125rem}.catalog-search-wrap{margin-top:1.25rem;position:relative}.catalog-search-icon{color:var(--muted);pointer-events:none;font-size:1rem;position:absolute;top:50%;left:1.1rem;transform:translateY(-50%)}.catalog-search-input{border:1px solid var(--border);background:var(--card);border-radius:14px;outline:none;width:100%;height:3.25rem;padding:0 1rem 0 2.85rem;font-size:.95rem;transition:border-color .15s,box-shadow .15s}.catalog-search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f62e}.catalog-toolbar{justify-content:space-between;gap:1rem;margin:1rem 0 1.25rem}.catalog-toolbar,.catalog-toolbar-filters{flex-wrap:wrap;align-items:center;display:flex}.catalog-toolbar-filters{gap:.6rem}.catalog-toolbar-right{align-items:center;gap:.85rem;margin-left:auto;display:flex}.catalog-result-count{color:var(--muted);font-size:.8125rem}.catalog-result-count strong{color:var(--fg,var(--ink-deep));font-weight:700}.catalog-filter-select,.catalog-sort-select{appearance:none;background:var(--card);border:1px solid var(--border);color:inherit;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%2364748b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right .7rem center;background-repeat:no-repeat;border-radius:10px;padding:.5rem 2rem .5rem .85rem;font-size:.8125rem;font-weight:500}.catalog-filter-select:hover,.catalog-sort-select:hover{border-color:var(--hairline)}.catalog-filter-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.55rem;padding:.4rem .2rem;font-size:.8125rem;font-weight:500;display:inline-flex}.catalog-filter-toggle input{opacity:0;pointer-events:none;position:absolute}.catalog-toggle-track{background:var(--hairline);border-radius:999px;flex-shrink:0;width:2.25rem;height:1.25rem;transition:background .18s;position:relative}.catalog-toggle-thumb{background:var(--canvas);border-radius:999px;width:1rem;height:1rem;transition:transform .18s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000026}.catalog-filter-toggle input:checked~.catalog-toggle-track{background:var(--brand)}.catalog-filter-toggle input:checked~.catalog-toggle-track .catalog-toggle-thumb{transform:translate(1rem)}.catalog-grid{margin-top:.25rem}.catalog-hero{background:var(--card);border:1px solid var(--border);color:var(--fg);isolation:isolate;border-radius:16px;margin-top:.75rem;padding:1.9rem 1.85rem 1.65rem;position:relative;overflow:hidden}.catalog-hero:before{content:"";opacity:.06;pointer-events:none;position:absolute;inset:0}.catalog-hero-meta{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex;position:relative}.catalog-hero-chip{color:var(--fg);border:1px solid var(--border-strong);background:0 0;border-radius:9999px;padding:.22rem .65rem;font-size:.75rem;font-weight:500}.catalog-hero-chip--accent{background:var(--fg);color:var(--on-brand);box-shadow:var(--shadow-inset);border-color:#0000}.catalog-hero-chip--ghost{background:var(--hover);color:var(--muted);border:1px solid var(--border)}.catalog-hero-title{letter-spacing:-.035em;color:var(--fg);margin:.9rem 0 0;font-size:2.25rem;font-weight:600;line-height:1.1;position:relative}.catalog-hero-summary{color:var(--muted);max-width:42rem;margin:.6rem 0 0;font-size:1rem;line-height:1.55;position:relative}.catalog-hero-action{margin-top:1.1rem;position:relative}.catalog-section-count{background:var(--accent-lab-soft);min-width:1.5rem;height:1.5rem;color:var(--accent-lab);vertical-align:middle;border-radius:999px;justify-content:center;align-items:center;margin-left:.4rem;padding:0 .4rem;font-size:.75rem;font-weight:700;display:inline-flex}.catalog-back-link{color:var(--brand);align-items:center;margin-bottom:.5rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.catalog-back-link:hover{text-decoration:underline}.catalog-cta-bar{background:linear-gradient(135deg,var(--primary-soft) 0,var(--accent-lab-soft) 100%);border:1px solid var(--primary-soft);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;padding:1rem 1.25rem;display:flex}.catalog-cta-title{color:var(--primary-deep);margin:0;font-size:.9375rem;font-weight:700}.catalog-cta-sub{color:var(--primary);margin:.1rem 0 0;font-size:.8125rem}.catalog-section-title{margin:1.75rem 0 .75rem;font-size:1.0625rem;font-weight:700}.catalog-asset-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.catalog-login-cta{text-align:center;padding:1.5rem}.catalog-login-cta-text{color:var(--muted);margin:0;font-size:.875rem}.notebook-preview{background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:10px;margin-top:.875rem;padding:.875rem 1rem}.notebook-preview-header{align-items:flex-start;gap:.65rem;display:flex}.notebook-preview-icon{flex-shrink:0;margin-top:.1rem;font-size:1.25rem}.notebook-preview-title{color:var(--ink);margin:0;font-size:.875rem;font-weight:600}.notebook-preview-meta{color:var(--muted);margin:.1rem 0 0;font-size:.75rem}.notebook-preview-code{color:var(--charcoal);white-space:pre-wrap;word-break:break-word;background:var(--surface-soft);border-left:3px solid var(--accent-lab-soft);border-radius:6px;margin-top:.625rem;padding:.5rem .75rem;font-family:SF Mono,Fira Code,Fira Mono,monospace;font-size:.75rem;line-height:1.6}.badge-red{background:var(--critical-soft);color:var(--critical-strong)}.badge-yellow{background:var(--attention-soft);color:var(--attention-ink)}.badge-purple{background:var(--accent-lab-soft);color:var(--accent-lab)}.badge-green{background:var(--success-soft);color:var(--success-ink)}.badge-pink{background:var(--accent-lab-soft);color:var(--accent-lab)}.badge-teal{background:var(--primary-soft);color:var(--primary-deep)}.badge-indigo{background:var(--accent-lab-soft);color:var(--accent-lab)}.subject-section{margin-top:2rem}.subject-section:first-of-type{margin-top:0}.subject-heading{color:var(--primary-deep);font-size:1.125rem;font-weight:600}.subject-desc{color:var(--muted);margin-top:.25rem;font-size:.875rem}.hero-grid{text-align:left;gap:1rem;margin-top:2rem;display:grid}@media (min-width:640px){.hero-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.hero-feature{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.15rem}.hero-feature-icon{margin-bottom:.5rem;font-size:1.5rem}.hero-feature-title{font-size:.9375rem;font-weight:600}.hero-feature-desc{color:var(--muted);margin-top:.25rem;font-size:.8125rem}.modal-overlay{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a73;justify-content:center;align-items:center;padding:1rem;animation:modal-fade-in .15s ease-out;display:flex;position:fixed;inset:0}.modal-panel{background:var(--card);border:1px solid var(--border);border-radius:16px;width:100%;max-width:36rem;max-height:min(90vh,640px);animation:modal-slide-in .2s ease-out;overflow-y:auto;box-shadow:0 24px 48px #0f172a2e}@media (min-width:640px){.modal-panel{max-width:42rem}}.modal-header{justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem 0;display:flex}.modal-title{font-size:1.25rem;font-weight:700}.modal-desc{color:var(--muted);margin-top:.35rem;font-size:.875rem}.modal-close{background:var(--surface-soft);width:2rem;height:2rem;color:var(--slate);cursor:pointer;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;line-height:1;transition:background .15s,color .15s;display:flex}.modal-close:hover{background:var(--hairline-soft);color:var(--ink-deep)}.confirm-dialog-panel{max-width:24rem}.confirm-dialog-header{padding:1.35rem 1.5rem .25rem}.confirm-dialog-message{color:var(--muted);white-space:pre-wrap;margin-top:.5rem;font-size:.9375rem;line-height:1.55}.confirm-dialog-footer{justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem 1.35rem;display:flex}.confirm-dialog-footer .btn{min-width:5.5rem}.modal-body{padding:1.25rem 1.5rem 1.5rem}.modal-body .type-picker-grid{margin-top:0}.modal-selected-type{margin-top:1rem}.modal-title-field{width:100%;margin-top:1.25rem;display:block}.modal-title-field .input-field{width:100%;margin-top:.35rem}.modal-error{color:var(--critical);margin-top:.75rem;font-size:.875rem}.modal-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:.5rem;margin-top:1.25rem;padding-top:1.25rem;display:flex}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-slide-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.projects-count{color:var(--muted);margin-bottom:1rem;font-size:.875rem}.projects-count strong{color:var(--text);font-weight:600}.projects-grid{margin-top:0}.projects-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.projects-toolbar .projects-count{margin-bottom:0}.projects-stats-bar{border:1px solid var(--border);background:#fff;border-radius:12px;flex-wrap:wrap;align-items:center;gap:1.5rem;margin-bottom:1rem;padding:.875rem 1.25rem;display:flex}.projects-stat{flex-direction:column;align-items:center;gap:.1rem;display:flex}.projects-stat-value{color:var(--ink-deep);font-size:1.25rem;font-weight:700;line-height:1}.projects-stat-label{color:var(--muted);font-size:.75rem}.projects-stat-action{display:none}.projects-toolbar-new,.projects-toolbar-row{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.projects-search-wrap{flex:1;min-width:220px;max-width:420px;position:relative}.projects-search-icon{color:var(--steel);pointer-events:none;font-size:1rem;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.projects-search-input{border:1px solid var(--border);width:100%;height:40px;color:var(--ink-deep);background:#fff;border-radius:10px;outline:none;padding:0 2.75rem 0 2.5rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.projects-search-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2563eb1a}.projects-search-input:focus~.projects-search-kbd{opacity:0}.projects-search-kbd{color:var(--slate);background:var(--surface-soft);border:1px solid var(--hairline-soft);pointer-events:none;border-radius:6px;padding:2px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;transition:opacity .12s;position:absolute;top:50%;right:.6rem;transform:translateY(-50%)}.projects-type-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:1rem;margin:.25rem 0 1rem;padding:0 .1rem;display:flex}.projects-type-tab{color:var(--slate);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.4rem;margin-bottom:-1px;padding:.55rem .25rem .7rem;font-size:.875rem;font-weight:500;transition:color .12s,border-color .12s;display:inline-flex}.projects-type-tab:hover{color:var(--ink)}.projects-type-tab--active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}.projects-type-tab-icon{font-size:1rem;line-height:1}.projects-type-tab-count{color:var(--steel);margin-left:.1rem;font-size:.6875rem;font-weight:600}.projects-type-tab--active .projects-type-tab-count{color:var(--brand)}.projects-result-count-total{color:var(--steel);font-weight:400}.project-pill{background:var(--hairline-soft);color:var(--charcoal);white-space:nowrap;border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.project-pill-jupyter{background:var(--accent-lab-soft);color:var(--accent-lab)}.project-pill-block,.project-pill-marimo{background:var(--success-soft);color:var(--success-ink)}.project-pill-text-drag{background:var(--attention-soft);color:var(--attention-ink)}.project-status-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.project-status-badge.is-public{background:var(--success-soft);color:var(--success-ink);border:1px solid var(--success-soft)}.project-status-badge.is-private{background:var(--surface-soft);color:var(--charcoal);border:1px solid var(--hairline-soft)}.project-fav-star{cursor:pointer;color:var(--hairline);background:0 0;border:none;padding:2px 4px;font-size:16px;line-height:1;transition:color .12s,transform 80ms}.project-fav-star:hover{color:var(--attention);transform:scale(1.1)}.project-fav-star--on{color:var(--attention)}.project-fav-star--on:hover{color:var(--attention-ink)}.project-table-title-inline,.project-table-title-row{align-items:center;gap:4px;display:inline-flex}.projects-pagination{justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:12px 4px;display:flex}.projects-pagination-total{color:var(--slate);font-size:13px}.projects-pagination-controls{align-items:center;gap:4px;display:inline-flex}.projects-pagination-arrow,.projects-pagination-num{border:1px solid var(--hairline-soft);background:var(--canvas);min-width:32px;height:32px;color:var(--charcoal);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:0 8px;font-size:13px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.projects-pagination-arrow:hover:not(:disabled),.projects-pagination-num:hover:not(.is-active){background:var(--surface-soft);border-color:var(--hairline);color:var(--ink-deep)}.projects-pagination-arrow:disabled{opacity:.4;cursor:not-allowed}.projects-pagination-num.is-active{background:var(--accent-lab);color:var(--canvas);border-color:var(--accent-lab);font-weight:600}.projects-pagination-size{border:1px solid var(--hairline-soft);background:var(--canvas);color:var(--charcoal);cursor:pointer;border-radius:8px;padding:6px 10px;font-size:13px}.projects-filter-chips{background:var(--surface-soft);border:1px solid var(--border);border-radius:10px;flex-shrink:0;gap:2px;padding:3px;display:inline-flex}.projects-filter-chip{color:var(--slate);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;align-items:center;gap:.35rem;padding:.375rem .65rem .375rem .625rem;font-size:.8125rem;font-weight:500;transition:background .13s,color .13s,box-shadow .13s;display:inline-flex}.projects-filter-chip:hover{color:var(--ink);background:#ffffffa6}.projects-filter-chip--active{color:var(--brand);background:#fff;font-weight:600;box-shadow:0 1px 3px #0f172a1a,0 1px 1px #0f172a0f}.projects-filter-chip-icon{font-size:.95rem;line-height:1}.projects-filter-chip-count{background:var(--hairline-soft);color:var(--charcoal);text-align:center;border-radius:999px;min-width:1.25rem;padding:.05rem .45rem;font-size:.6875rem;font-weight:700}.projects-filter-chip--active .projects-filter-chip-count{background:var(--primary-soft);color:var(--brand)}.projects-toolbar-right{align-items:center;gap:.5rem;margin-left:auto;display:flex}.projects-sort-select{border:1px solid var(--border);color:var(--charcoal);cursor:pointer;background:#fff;border-radius:10px;outline:none;padding:.45rem .75rem;font-size:.8125rem}.projects-sort-select:focus{border-color:var(--brand)}.projects-result-count{color:var(--muted);margin-bottom:1rem;font-size:.875rem}.projects-result-count strong{color:var(--ink-deep);font-weight:600}.projects-view-toggle{background:var(--surface-soft);border:1px solid var(--border);border-radius:10px;padding:.2rem;display:inline-flex}.projects-view-btn{color:var(--slate);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:.35rem;padding:.45rem .85rem;font-size:.8125rem;font-weight:600;transition:background .15s,color .15s,box-shadow .15s;display:inline-flex}.projects-view-btn:hover{color:var(--charcoal)}.projects-view-btn--active{color:var(--brand);background:#fff;box-shadow:0 1px 3px #0f172a14}.project-card--skeleton{background:linear-gradient(90deg,var(--surface-soft) 0,var(--hairline-soft) 50%,var(--surface-soft) 100%);border:1px solid var(--border);background-size:200% 100%;border-radius:16px;min-height:18rem;animation:skeleton-shimmer 1.2s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.project-table-wrap{border:1px solid var(--border);background:#fff;border-radius:12px;overflow-x:auto}.project-table{border-collapse:collapse;width:100%;font-size:.875rem}.project-table th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-soft);border-bottom:1px solid var(--border);white-space:nowrap;padding:.75rem 1rem;font-size:.75rem;font-weight:600}.project-table td{border-bottom:1px solid var(--surface-soft);vertical-align:middle;padding:.6rem 1rem}.project-table tbody tr:last-child td{border-bottom:none}.project-table tbody tr{transition:background .12s}.project-table tbody tr:hover{background:var(--surface-soft)}.project-table-title{align-items:center;gap:.75rem;min-width:14rem;display:flex}.project-table-title-icon{flex-shrink:0;font-size:1.35rem}.project-table-title-body{flex-direction:column;gap:.15rem;display:flex}.project-table-title-text{color:var(--ink-deep);font-size:.9375rem;font-weight:600;line-height:1.3}.project-table-title-eyebrow{color:var(--muted);align-items:center;gap:.35rem;margin-top:.1rem;font-size:.75rem;line-height:1.3;display:inline-flex}.project-table-title-type{font-weight:500}.project-table-title-sep{color:var(--hairline)}.project-table-title-date{color:var(--slate)}.project-table-title-desc{text-overflow:ellipsis;white-space:nowrap;max-width:16rem;overflow:hidden}.project-table tbody tr .more-menu-btn{opacity:.4;transition:opacity .12s}.project-table tbody tr:hover .more-menu-btn{opacity:1}.project-table-date{color:var(--muted);white-space:nowrap;font-size:.875rem}.project-table-col-actions{text-align:right;width:1%}.project-table-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:.5rem;display:flex}.project-table-actions .btn{padding:.35rem .75rem;font-size:.8125rem}.project-table-actions .btn-primary{opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;transform:translate(6px)}.project-table tbody tr:hover .project-table-actions .btn-primary{opacity:1;pointer-events:auto;transform:translate(0)}.create-project-open-after{background:var(--surface-soft);border:1px solid var(--hairline-soft);color:var(--charcoal);border-radius:8px;margin-top:16px;padding:10px 12px;font-size:13px}.create-project-open-after-row{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.create-project-open-after-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-lab);cursor:pointer}.create-project-open-target{gap:6px;margin-top:8px;padding-left:24px;display:flex}.create-project-open-target-opt{border:1px solid var(--hairline-soft);background:var(--canvas);color:var(--slate);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.create-project-open-target-opt:hover{border-color:var(--hairline);color:var(--ink)}.create-project-open-target-opt.is-active{background:var(--accent-lab-soft);border-color:var(--accent-lab);color:var(--accent-lab);font-weight:600}.create-project-open-target-opt input{display:none}.unit-card-wrap{position:relative}.unit-card-actions{z-index:2;position:absolute;top:10px;right:10px}.unit-card-actions-btn{border:1px solid var(--hairline-soft);width:28px;height:28px;color:var(--slate);cursor:pointer;background:#ffffffe6;border-radius:8px;justify-content:center;align-items:center;font-size:16px;line-height:1;transition:background .12s,border-color .12s;display:inline-flex}.unit-card-actions-btn:hover{background:var(--canvas);border-color:var(--hairline);color:var(--ink)}.unit-card-actions-btn:disabled{opacity:.6;cursor:not-allowed}.unit-card-actions-menu{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:8px;flex-direction:column;min-width:140px;padding:4px;display:flex;position:absolute;top:32px;right:0;box-shadow:0 8px 24px #0f172a1f}.unit-card-actions-item{text-align:left;cursor:pointer;color:var(--ink-deep);background:0 0;border:none;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:13px}.unit-card-actions-item:hover{background:var(--surface-soft)}.unit-card-actions-item--danger{color:var(--critical-strong)}.unit-card-actions-item--danger:hover{background:var(--critical-soft)}.unit-card{background:var(--card);border:1px solid var(--border);min-height:8.5rem;color:inherit;border-radius:14px;align-items:center;gap:1rem;padding:1.1rem 1.25rem;text-decoration:none;transition:border-color .18s,box-shadow .18s,background .18s;display:flex}.unit-card:hover{border-color:var(--primary);background:#fafcff;box-shadow:0 4px 16px #2563eb1a}.unit-card:hover .unit-card-arrow{color:var(--brand);transform:translate(3px)}.unit-card-icon-wrap{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;transition:background .18s;display:flex}.unit-card-icon-wrap,.unit-card:hover .unit-card-icon-wrap{background:var(--primary-soft)}.unit-card-icon{font-size:1.35rem;line-height:1}.unit-card-body{flex:1;min-width:0}.unit-card-top{align-items:center;gap:.4rem;margin-bottom:.2rem;display:flex}.unit-card-type{text-transform:uppercase;letter-spacing:.05em;color:var(--brand);font-size:.6875rem;font-weight:700}.unit-card-status-dot{background:var(--success);border-radius:50%;flex-shrink:0;width:6px;height:6px}.unit-card-title{margin:0;font-size:.9375rem;font-weight:600;line-height:1.35}.unit-card-meta-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.3rem;display:flex}.unit-card-meta{color:var(--muted);margin:0;font-size:.8125rem}.unit-card-progress{background:var(--primary-soft);color:var(--primary-deep);border-radius:999px;padding:1px 8px;font-size:.6875rem;font-weight:700}.unit-card-progress--done{background:var(--success-soft);color:var(--success-ink)}.unit-card-class-avg{background:var(--attention-soft);color:var(--attention-ink);border-radius:999px;padding:1px 8px;font-size:.6875rem;font-weight:600}.unit-card-progress-bar{background:var(--hairline-soft);border-radius:999px;height:3px;margin-top:.5rem;overflow:hidden}.unit-card-progress-fill{background:linear-gradient(90deg,var(--success) 0,var(--success) 100%);height:100%;transition:width .4s ease-out}.unit-card--done{background:linear-gradient(135deg,var(--success-soft) 0,var(--primary-soft) 100%);border-color:var(--success)}.unit-card--done .unit-card-icon-wrap{background:var(--success)}.unit-card--done .unit-card-icon{color:var(--canvas);font-weight:900}.unit-card-arrow{color:var(--hairline);flex-shrink:0;margin-left:.25rem;font-size:1.1rem;transition:transform .18s,color .18s}.type-picker-grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.unit-create-form{flex-direction:column;gap:0;display:flex}.unit-create-section{border-bottom:1px solid var(--border);padding:1.25rem 0}.unit-create-section:first-child{padding-top:0}.unit-create-section:last-of-type{border-bottom:none;padding-bottom:0}.unit-create-section-title{color:var(--charcoal);flex-wrap:wrap;align-items:baseline;gap:.5rem;margin:0 0 .75rem;font-size:.8125rem;font-weight:600;display:flex}.unit-create-optional{color:var(--muted);font-size:.75rem;font-weight:400}.unit-create-section-head{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:.75rem;display:flex}.unit-create-section-head .unit-create-section-title{margin-bottom:0}.unit-create-hint-badge{color:var(--brand);background:var(--primary-soft);white-space:nowrap;border-radius:999px;padding:.25rem .6rem;font-size:.75rem;font-weight:500}.unit-segment{background:var(--surface-soft);border-radius:9px;grid-template-columns:repeat(3,1fr);gap:.3rem;padding:.2rem;display:grid}.unit-segment-btn{color:var(--slate);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;justify-content:center;align-items:center;gap:.3rem;padding:.4rem .5rem;font-size:.8125rem;font-weight:600;transition:background .15s,color .15s,box-shadow .15s;display:flex}.unit-segment-btn:hover{color:var(--charcoal)}.unit-segment-btn--active{color:var(--brand);background:#fff;box-shadow:0 1px 3px #0f172a14}.unit-segment-icon{font-size:.95rem;line-height:1}.unit-range-panel{background:var(--surface-soft);border:1px solid var(--border);border-radius:12px;padding:1rem 1.15rem}.unit-range-inputs{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:.75rem;display:flex}.unit-range-field{flex-direction:column;align-items:center;gap:.35rem;min-width:0;display:flex}.unit-range-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.unit-range-input-wrap{border:1px solid var(--border);background:#fff;border-radius:10px;align-items:center;display:flex;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.unit-range-input-wrap:focus-within{border-color:var(--brand);outline-offset:0;outline:2px solid #2563eb33}.unit-range-input{text-align:center;-moz-appearance:textfield;background:0 0;border:none;width:4rem;padding:.6rem .5rem;font-size:1.125rem;font-weight:600}.unit-range-input::-webkit-inner-spin-button,.unit-range-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.unit-range-suffix{color:var(--muted);white-space:nowrap;padding:0 .65rem 0 0;font-size:.875rem;font-weight:500}.unit-range-sep{color:var(--hairline);-webkit-user-select:none;user-select:none;padding-bottom:.55rem;font-size:1.25rem;font-weight:300}.unit-range-summary{border-top:1px dashed var(--hairline-soft);color:var(--charcoal);text-align:center;margin:.85rem 0 0;padding-top:.85rem;font-size:.875rem}.unit-range-summary strong{color:var(--ink-deep)}.unit-preview{border:1px solid var(--hairline-soft);background:#fff;border-radius:10px;margin-top:.85rem;padding:.75rem 1rem}.unit-preview-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 .5rem;font-size:.6875rem;font-weight:700}.unit-preview-list{margin:0}.unit-preview-more{font-style:italic;color:var(--muted)!important;background:0 0!important}.unit-field{flex-direction:column;gap:.35rem;margin-bottom:.85rem;display:flex}.unit-field:last-child{margin-bottom:0}.unit-field-label{color:var(--charcoal);font-size:.875rem;font-weight:500}.unit-field-input{border:1px solid var(--border);border-radius:10px;width:100%;min-width:0;padding:.6rem .85rem;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.unit-field-input:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px #2563eb1f}.unit-field-textarea{resize:vertical;min-height:4.5rem}.unit-create-error{margin-top:.5rem}.unit-create-footer{margin-top:1rem}@media (max-width:480px){.unit-range-inputs{flex-direction:column}.unit-range-field,.unit-range-inputs{align-items:stretch}.unit-range-input-wrap{justify-content:center}.unit-range-sep{display:none}}.material-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.15rem 1.25rem}.material-card-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.input-field.min-h-\[4rem\]{resize:vertical;min-height:4rem}.app-shell{min-height:100vh}.app-shell,.app-sidebar{background:var(--bg);display:flex}.app-sidebar{z-index:40;border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:240px;height:100vh;padding:1.25rem .875rem;transition:width .22s;position:sticky;top:0}.app-sidebar>.app-nav{flex:auto;min-height:0;overflow-y:auto}.app-sidebar-foot{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:.4rem;margin-top:.5rem;padding-top:.75rem;display:flex}.app-sidebar-foot>*{width:100%}html[data-sidebar-collapsed="1"] .app-sidebar-foot{align-items:center;padding-top:.5rem}.app-sidebar-foot .app-notify-btn{border:1px solid var(--border);width:100%;height:auto;color:var(--ink-deep);background:0 0;border-radius:10px;justify-content:flex-start;align-items:center;gap:.5rem;padding:.5rem .7rem;font-size:.875rem;font-weight:600;display:flex}.app-sidebar-foot .app-notify-btn:hover{background:var(--hover)}.app-sidebar-foot .app-notify-btn:after{content:"알림";font-size:.8125rem;font-weight:600}.app-sidebar-foot .app-notify-badge{margin-left:auto;position:static;top:auto;right:auto}.app-sidebar-foot .header-user-trigger{border-color:var(--border);border-radius:12px;justify-content:flex-start;gap:.55rem;width:100%;padding:.4rem .6rem}.app-sidebar-foot .header-user-trigger .header-user-chevron{margin-left:auto}.app-sidebar-foot .header-notif-pop,.app-sidebar-foot .header-user-pop{z-index:100;inset:auto auto calc(100% + .5rem) 0}html[data-sidebar-collapsed="1"] .app-sidebar-foot .app-notify-btn{border-color:var(--border-strong);border-radius:9999px;justify-content:center;width:2.25rem;height:2.25rem;padding:0}html[data-sidebar-collapsed="1"] .app-sidebar-foot .app-notify-btn:after{display:none}html[data-sidebar-collapsed="1"] .app-sidebar-foot .app-notify-badge{margin-left:0;position:absolute;top:-4px;right:-4px}html[data-sidebar-collapsed="1"] .app-sidebar-foot .header-user-trigger{border-color:#0000;width:auto;padding:.25rem}html[data-sidebar-collapsed="1"] .app-sidebar-foot .header-user-trigger .app-user-meta,html[data-sidebar-collapsed="1"] .app-sidebar-foot .header-user-trigger .header-user-chevron{display:none}html[data-sidebar-collapsed="1"] .app-sidebar-foot .header-notif-pop,html[data-sidebar-collapsed="1"] .app-sidebar-foot .header-user-pop{bottom:0;left:calc(100% + .5rem)}.app-header--slim{min-height:auto;padding-block:.5rem}html[data-sidebar-collapsed="1"] .app-sidebar{width:4.25rem;padding:1.25rem .5rem}.app-sidebar-head{border-bottom:1px solid #0000;justify-content:space-between;align-items:center;gap:.4rem;padding:.25rem .5rem 1rem;display:flex}html[data-sidebar-collapsed="1"] .app-sidebar .app-sidebar-head{padding:.1rem 0 .85rem}.app-logo{color:var(--fg);align-items:center;gap:.55rem;line-height:1;text-decoration:none;display:inline-flex}.app-logo-mark{flex-shrink:0;display:none}html[data-sidebar-collapsed="1"] .app-sidebar .app-logo-mark{display:block}.app-logo-wordmark{max-width:100%;height:auto;display:block}.app-logo-text{flex-direction:column;gap:1px;display:flex}.app-logo-sub{color:var(--muted);letter-spacing:0;font-size:.6875rem;font-weight:400;line-height:1.2}html[data-sidebar-collapsed="1"] .app-sidebar .app-logo-text{display:none}html[data-sidebar-collapsed="1"] .app-sidebar .app-logo{justify-content:center}html[data-sidebar-collapsed="1"] .app-sidebar .app-sidebar-head{flex-direction:column-reverse;align-items:center;gap:.6rem;padding-left:0;padding-right:0}.app-sidebar-toggle{border:1px solid var(--border-strong);width:1.85rem;height:1.85rem;color:var(--fg);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:600;transition:background .13s,opacity .13s;display:inline-flex}.app-sidebar-toggle:hover{background:var(--hover);opacity:.8}.app-nav{flex-direction:column;flex:1;gap:.2rem;padding:0 .35rem;display:flex}.app-nav-section{flex-direction:column;flex:none;gap:.15rem;display:flex}.app-nav-section+.app-nav-section{border-top:1px solid var(--hairline-soft);margin-top:.8rem;padding-top:.6rem}.app-nav-section-label{color:var(--steel);letter-spacing:.04em;margin:0 .5rem .2rem;padding:0 .3rem;font-size:12px;font-weight:700;line-height:1.33}html[data-sidebar-collapsed="1"] .app-nav-section-label{display:none}.app-nav-link{border-radius:var(--r-lg);letter-spacing:-.14px;color:var(--charcoal);letter-spacing:-.005em;align-items:center;gap:.65rem;padding:.6rem .8rem;font-size:14px;font-weight:600;text-decoration:none;transition:background .13s,color .13s;display:flex}.app-nav-link:hover{background:var(--hover);color:var(--fg)}.app-nav-link--active{background:var(--ink-deep);color:var(--canvas);box-shadow:none;font-weight:700}.app-nav-link--active .app-nav-icon{color:var(--canvas)}.app-nav-icon{width:20px;height:20px;color:var(--steel);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.app-nav-label{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}html[data-sidebar-collapsed="1"] .app-sidebar .app-nav{align-items:center;padding:0 .1rem}html[data-sidebar-collapsed="1"] .app-sidebar .app-nav-link{justify-content:center;width:100%;padding:.65rem 0}html[data-sidebar-collapsed="1"] .app-sidebar .app-nav-link--active{background:var(--ink-deep);color:var(--canvas);border-radius:var(--r-lg);box-shadow:none}html[data-sidebar-collapsed="1"] .app-sidebar .app-nav-label{display:none}.more-menu{position:relative}.more-menu-btn{letter-spacing:.05em;width:2rem;height:2rem;color:var(--slate);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;font-size:1.1rem;transition:background .13s,border-color .13s,color .13s;display:inline-flex}.more-menu-btn:hover{background:var(--surface-soft);border-color:var(--border);color:var(--ink-deep)}.more-menu-btn:disabled{opacity:.5;cursor:not-allowed}.more-menu-dropdown{z-index:100;border:1px solid var(--border);background:#fff;border-radius:10px;min-width:148px;animation:menu-pop .1s ease-out;position:absolute;top:calc(100% + 4px);right:0;overflow:hidden;box-shadow:0 8px 24px #0f172a1f}@keyframes menu-pop{0%{opacity:0;transform:scale(.95)translateY(-4px)}to{opacity:1;transform:scale(1)translateY(0)}}.more-menu-item{text-align:left;width:100%;color:var(--charcoal);cursor:pointer;background:0 0;border:none;padding:.625rem 1rem;font-size:.875rem;font-weight:500;transition:background .1s;display:block}.more-menu-item:hover{background:var(--surface-soft)}.more-menu-divider{background:var(--border);height:1px;margin:.2rem 0}.more-menu-item--danger{color:var(--critical)}.class-picker{gap:12px}.class-picker,.class-picker-list{flex-direction:column;display:flex}.class-picker-list{gap:6px;max-height:320px;margin:0;padding:0;list-style:none;overflow-y:auto}.class-picker-item{background:var(--canvas);border:1px solid var(--hairline-soft);cursor:pointer;width:100%;color:var(--ink-deep);text-align:left;border-radius:10px;align-items:center;gap:10px;padding:12px 14px;font-family:inherit;font-size:14px;transition:background .12s,border-color .12s;display:flex}.class-picker-item:hover:not(:disabled){background:var(--surface-soft);border-color:var(--steel)}.class-picker-item.is-active{background:var(--accent-lab-soft);border-color:var(--accent-lab)}.class-picker-item:disabled{opacity:.55;cursor:not-allowed}.class-picker-icon{flex-shrink:0;font-size:18px;line-height:1}.class-picker-name{flex:1;font-weight:600}.class-picker-check{color:var(--accent-lab);background:var(--canvas);border:1px solid var(--accent-lab-soft);border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:700}.modal-empty,.modal-loading{color:var(--slate);text-align:center;padding:18px 0}.more-menu-item--danger:hover{background:var(--critical-soft)}.prompt-dialog-input{border:1px solid var(--border);border-radius:10px;outline:none;width:100%;margin-top:.75rem;padding:.6rem .875rem;font-size:.9375rem;transition:border-color .15s,box-shadow .15s}.prompt-dialog-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2563eb1a}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-header{background:var(--bg);border-bottom:1px solid var(--border);justify-content:space-between;gap:1rem;padding:.85rem 1.75rem}.app-breadcrumbs,.app-header{align-items:center;display:flex}.app-breadcrumbs{flex-wrap:wrap;gap:.35rem;font-size:.875rem}.app-breadcrumb-item{align-items:center;gap:.35rem;display:inline-flex}.app-breadcrumb-sep{color:var(--muted-faint)}.app-breadcrumb-link{color:var(--muted);text-decoration:none}.app-breadcrumb-link:hover{color:var(--fg);text-decoration:underline}.app-breadcrumb-current{color:var(--fg);font-weight:600}.app-header-actions{align-items:center;gap:.75rem;display:flex}.app-notify-btn{border:1px solid var(--border-strong);background:var(--card-elevated);width:2.25rem;height:2.25rem;color:var(--fg);cursor:pointer;border-radius:9999px;justify-content:center;align-items:center;font-size:1rem;transition:opacity .13s,box-shadow .18s;display:flex;position:relative}.app-notify-btn:hover{opacity:.8}.app-notify-btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.app-notify-badge{background:var(--wf-accent-red);color:#fff;text-align:center;border-radius:999px;min-width:1rem;height:1rem;padding:0 .25rem;font-size:.625rem;font-weight:600;line-height:1rem;position:absolute;top:-4px;right:-4px}.app-user{gap:.6rem}.app-user,.app-user-avatar{align-items:center;display:flex}.app-user-avatar{border-radius:var(--r-circle);background:var(--ink-deep);width:2.25rem;height:2.25rem;color:var(--canvas);letter-spacing:-.14px;flex-shrink:0;justify-content:center;font-size:14px;font-weight:700;position:relative;overflow:hidden}.app-user-meta{flex-direction:column;line-height:1.2;display:flex}.app-user-name{color:var(--fg);font-size:.875rem;font-weight:600}.app-user-role{color:var(--muted);font-size:.75rem}.app-logout-form{margin-left:.25rem}.app-content{box-sizing:border-box;flex:1;width:100%;max-width:1440px;margin:0 auto;padding:1.1rem 1.75rem 2.5rem}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--surface-soft);color:var(--ink-deep)}.btn-outline{border-color:var(--border);color:var(--charcoal);background:#fff}.btn-outline:hover{border-color:var(--primary);color:var(--brand);background:var(--surface-soft)}.drawer-root{z-index:60;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer;background:#0f172a59;border:none;position:absolute;inset:0}.drawer-panel{z-index:1;border-left:1px solid var(--border);background:#fff;flex-direction:column;width:min(100%,420px);height:100%;animation:drawer-slide-in .22s ease-out;display:flex;position:relative;box-shadow:-12px 0 40px #0f172a1f}@keyframes drawer-slide-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.35rem 1.5rem .75rem;display:flex}.drawer-title{margin:0;font-size:1.125rem;font-weight:700}.drawer-desc{color:var(--muted);margin:.35rem 0 0;font-size:.8125rem}.drawer-close{background:var(--surface-soft);width:2rem;height:2rem;color:var(--slate);cursor:pointer;border:none;border-radius:8px;flex-shrink:0;font-size:1.25rem}.drawer-body{flex:1;padding:0 1.5rem 1rem;overflow-y:auto}.drawer-footer{border-top:1px solid var(--border);background:var(--surface-soft);justify-content:flex-end;gap:.65rem;padding:1rem 1.5rem 1.25rem;display:flex}.class-back-link{color:var(--muted);align-items:center;gap:.25rem;margin-bottom:1rem;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.class-back-link:hover{color:var(--brand)}.class-page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.class-page-title{letter-spacing:-.02em;margin:0;font-size:1.75rem;font-weight:700}.class-page-sub{color:var(--muted);margin:.4rem 0 0;font-size:.9375rem}.class-page-actions{flex-flow:column wrap;align-items:flex-end;gap:.5rem;display:flex}.class-page-actions-danger,.class-page-actions-primary{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.class-info-card{border:1px solid var(--border);background:#fff;border-radius:12px;margin-bottom:2rem;padding:1.15rem 1.35rem}.class-info-row{color:var(--charcoal);margin:0;font-size:.875rem}.class-info-row+.class-info-row{margin-top:.5rem}.class-section{margin-bottom:2.25rem}.class-section-title{margin:0 0 .35rem;font-size:1.0625rem;font-weight:700}.class-section-desc{color:var(--muted);margin:0 0 1rem;font-size:.875rem}.class-unit-group-title{color:var(--brand);margin:0 0 .75rem;font-size:.8125rem;font-weight:700}.units-view-toolbar{justify-content:flex-end;margin:0 0 .85rem;display:flex}.units-view-toggle{background:var(--hover);border:1px solid var(--border);border-radius:9px;gap:2px;padding:2px;display:inline-flex}.units-view-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:4px;padding:.32rem .7rem;font-size:.8125rem;font-weight:600;display:inline-flex}.units-view-btn--active{background:var(--card-elevated);color:var(--fg);box-shadow:0 1px 2px #0f172a14}.units-table-wrap{border:1px solid var(--border);background:var(--card-elevated);border-radius:12px;overflow-x:auto}.units-table{border-collapse:collapse;width:100%;font-size:.875rem}.units-table thead th{text-align:left;background:var(--hover);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:.6rem .85rem;font-size:.72rem;font-weight:700}.units-table tbody td{border-bottom:1px solid var(--border-subtle,var(--surface-soft));color:var(--fg);vertical-align:middle;padding:.55rem .85rem}.units-table tbody tr:last-child td{border-bottom:0}.units-table tbody tr:hover td{background:var(--hover)}.units-table-col-num,.units-table-col-status,.units-table-col-type{width:7rem}.units-table-col-actions{width:9rem}.units-table-num{text-align:left;font-variant-numeric:tabular-nums;color:var(--muted)}.units-table-title-link{color:var(--fg);align-items:center;gap:.5rem;font-weight:600;text-decoration:none;display:inline-flex}.units-table-title-link:hover .units-table-title-text{text-decoration:underline}.units-table-icon{font-size:1.05rem}.units-table-type-badge{background:var(--hover);color:var(--muted);border-radius:999px;padding:.1rem .5rem;font-size:.72rem;font-weight:700}.unit-status-pill{white-space:nowrap;font-size:.75rem;font-weight:600}.unit-status-pill.is-private{color:var(--muted)}.units-table-actions{align-items:center;gap:.4rem;display:flex}.class-hero{background:linear-gradient(135deg,var(--primary-soft) 0,var(--surface-soft) 55%,var(--canvas) 100%);border:1px solid var(--primary-soft);border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.25rem;margin-bottom:1.25rem;padding:1.5rem 1.6rem;display:flex}.class-hero-eyebrow{color:var(--brand);text-transform:uppercase;letter-spacing:.06em;margin:0 0 .25rem;font-size:.75rem;font-weight:600}.class-hero-main .class-page-title{margin:0}.class-stats{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:.65rem;margin-bottom:2rem;display:grid}.class-stat-pill{background:var(--canvas);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.15rem;padding:.85rem 1rem;display:flex}.class-stat-pill--code{grid-column:span 1}.class-stat-pill--accent{background:var(--primary-soft);border-color:var(--primary-soft)}.class-stat-pill--accent .class-stat-value{color:var(--brand)}.page-header-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:inline-flex}.join-class-trigger{background:var(--canvas);border:1px solid var(--border,var(--hairline-soft));color:var(--charcoal);cursor:pointer;border-radius:8px;align-items:center;gap:.4rem;padding:.5rem .85rem;font-size:.875rem;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.join-class-trigger:hover{background:var(--surface-soft);border-color:var(--hairline)}.join-class-trigger--compact{padding:.4rem .65rem;font-size:.8125rem}.join-class-inline{background:var(--surface-soft);border:1px solid var(--hairline);border-radius:10px;align-items:center;gap:.4rem;padding:.35rem .5rem;display:inline-flex;position:relative}.join-class-inline-label{color:var(--slate);padding:0 .4rem;font-size:.75rem;font-weight:700}.join-class-inline-input{width:12rem;padding:.4rem .6rem;font-size:.875rem}.join-class-inline-error{color:var(--critical);margin-top:.35rem;font-size:.75rem;position:absolute;top:100%;left:0}.classes-teacher-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:.5rem 0 1.25rem;display:grid}@media (min-width:720px){.classes-teacher-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.classes-stat-card{background:var(--card,var(--canvas));border:1px solid var(--border,var(--hairline-soft));border-radius:10px;align-items:center;gap:.6rem;padding:.65rem .85rem;display:flex}.classes-stat-card--accent{background:linear-gradient(135deg,var(--accent-lab-soft) 0,var(--accent-lab-soft) 100%);border-color:var(--accent-lab-soft)}.classes-stat-icon{font-size:1.25rem}.classes-stat-value{color:var(--ink-deep);font-size:1.125rem;font-weight:800;line-height:1.1;display:block}.classes-stat-label{color:var(--slate);font-size:.6875rem;font-weight:600;display:block}.class-list-head{justify-content:space-between;align-items:baseline;gap:.75rem;margin-bottom:.75rem;display:flex}.class-list-head-title{letter-spacing:-.01em;margin:0;font-size:1rem;font-weight:800}.class-list-head-count{color:var(--muted);font-size:.8125rem;font-weight:600}.class-list-grid{margin-top:0}.class-list-card{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);flex-direction:column;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;overflow:hidden}.class-list-card:hover{border-color:var(--hairline);transform:translateY(-3px);box-shadow:0 18px 38px #0f172a1a}.class-list-card-head{align-items:center;gap:var(--sp-xs);margin-bottom:2px;display:flex}.class-list-card-thumb{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.class-list-card-banner:before{content:"";pointer-events:none;background:radial-gradient(120% 80% at 20% 0,#ffffff52 0,#0000 60%),radial-gradient(80% 60% at 100% 100%,#0000002e 0,#0000 70%);position:absolute;inset:0}.class-list-card-mark{background:var(--ink-deep);width:2rem;height:2rem;color:var(--canvas);border-radius:var(--r-md);letter-spacing:-.14px;letter-spacing:-.02em;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:inline-flex;overflow:hidden;box-shadow:0 4px 12px #0000002e}.class-list-card-chips{z-index:1;flex-direction:column;align-items:flex-end;gap:.3rem;display:flex;position:absolute;top:.7rem;right:.9rem}.class-list-card-chip{background:var(--surface-soft);color:var(--charcoal);border-radius:var(--r-full);padding:3px 9px;font-size:12px;font-weight:700;line-height:1.33}.class-list-card-chip--teacher{background:var(--accent-lab-soft);color:var(--accent-lab);box-shadow:0 1px 3px #00000026}.class-list-card-body{flex-direction:column;flex:1;gap:.65rem;padding:1rem 1.1rem 1.1rem;display:flex}.class-list-card-title-link{color:inherit;text-decoration:none}.class-list-card-title{letter-spacing:-.01em;margin:0;font-size:1.125rem;font-weight:800;line-height:1.3}.class-list-card-title-link:hover .class-list-card-title{color:var(--brand)}.class-list-card-owner{color:var(--muted);margin:0;font-size:.8125rem;font-weight:500}.class-list-card-stats{padding:var(--sp-md) var(--sp-sm);background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:var(--r-lg);gap:.5rem;display:flex}.class-list-card-stat{text-align:center;flex-direction:column;flex:1;align-items:center;gap:.1rem;display:flex}.class-list-card-stat-value{color:var(--ink-deep);font-size:1.1rem;font-weight:800;line-height:1}.class-list-card-stat-value--date{letter-spacing:-.01em;font-size:.9rem;font-weight:700}.class-list-card-stat-label{color:var(--muted);font-size:.6875rem;font-weight:600}.class-list-card-invite{padding:var(--sp-xs) var(--sp-sm);background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:var(--r-lg);align-items:center;gap:.5rem;display:flex}.class-list-card-invite-label{color:var(--slate);font-size:12px;font-weight:700;line-height:1.33}.class-list-card-invite .class-invite-btn{background:var(--canvas);border-color:var(--hairline);color:var(--ink-deep);margin-left:auto}.class-list-card-cta{justify-content:center;width:100%;margin-top:auto}.class-invite-btn{letter-spacing:.04em;align-items:center;gap:.5rem;font-family:SF Mono,Fira Code,Fira Mono,Roboto Mono,monospace;font-size:.8125rem;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.class-invite-btn--copied{background:var(--success-soft);border-color:var(--success);color:var(--success-ink)}.class-invite-code{font-weight:700}.class-invite-icon{opacity:.7;font-size:.9rem}.class-invite-chip{border:1px dashed var(--hairline);background:var(--surface-soft);color:var(--charcoal);cursor:pointer;border-radius:9999px;align-items:center;gap:.35rem;padding:.2rem .6rem;font-family:inherit;font-size:.75rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.class-invite-chip:hover{background:var(--canvas);border-color:var(--primary);color:var(--brand);border-style:solid}.class-invite-chip-code{letter-spacing:.04em;font-family:SF Mono,Fira Code,Fira Mono,Roboto Mono,monospace;font-weight:700}.class-invite-chip--copied{background:var(--success-soft);border-color:var(--success);color:var(--success-ink);border-style:solid}.class-invite-banner{background:linear-gradient(135deg,var(--accent-lab-soft) 0,var(--accent-lab-soft) 100%);border:1px solid var(--accent-lab-soft);border-radius:14px;flex-wrap:wrap;align-items:center;gap:1.25rem;margin-bottom:1.25rem;padding:1.1rem 1.35rem;display:flex}.class-invite-banner-body{flex:16rem;min-width:0}.class-invite-banner-eyebrow{color:var(--accent-lab);margin:0 0 .3rem;font-size:.9375rem;font-weight:800}.class-invite-banner-desc{color:var(--charcoal);margin:0;font-size:.8125rem;line-height:1.5}.class-invite-banner-code{border:1.5px solid var(--accent-lab);background:var(--canvas);cursor:pointer;border-radius:12px;align-items:center;gap:.65rem;padding:.7rem 1.1rem;font-family:inherit;transition:background .15s,border-color .15s,transform .13s,box-shadow .18s;display:inline-flex}.class-invite-banner-code:hover{border-color:var(--accent-lab);transform:translateY(-1px);box-shadow:0 4px 14px #6366f12e}.class-invite-banner-code-text{letter-spacing:.06em;color:#1e1b4b;font-family:SF Mono,Fira Code,Fira Mono,Roboto Mono,monospace;font-size:1.05rem;font-weight:800}.class-invite-banner-code-icon{color:var(--accent-lab);font-size:.8125rem;font-weight:700}.class-invite-banner-code--copied{background:var(--success-soft);border-color:var(--success)}.class-invite-banner-code--copied .class-invite-banner-code-icon,.class-invite-banner-code--copied .class-invite-banner-code-text{color:var(--success-ink)}.class-stat-value{color:var(--text);font-size:1.35rem;font-weight:700;line-height:1.2}.class-stat-label{color:var(--muted);font-size:.75rem}.unit-preset-row{flex-wrap:wrap;gap:.5rem;display:flex}.unit-preset-chip{border:1px solid var(--primary-soft);background:var(--primary-soft);color:var(--brand);cursor:pointer;border-radius:999px;padding:.45rem .85rem;font-size:.8125rem;font-weight:600;transition:background .15s,border-color .15s}.unit-preset-chip:hover{background:var(--primary-soft);border-color:var(--primary)}.unit-preview-list{flex-wrap:wrap;gap:.35rem;max-height:8rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.unit-preview-list li{background:var(--surface-soft);color:var(--charcoal);border-radius:6px;padding:.25rem .55rem;font-size:.75rem}.unit-create-hint-text{color:var(--muted);margin:0 0 .75rem;font-size:.8125rem;line-height:1.5}.material-add-section{margin-bottom:0}.material-add-tabs{background:var(--surface-soft);border:1px solid var(--border);border-bottom:none;border-radius:12px 12px 0 0;gap:.35rem;margin-bottom:0;padding:.35rem;display:flex}.material-add-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:.55rem 1rem;font-size:.875rem;font-weight:600;transition:background .15s,color .15s}.material-add-tab--active{background:var(--canvas);color:var(--brand);box-shadow:0 1px 3px #0f172a14}.material-add-card{background:var(--canvas);border:1px solid var(--border);border-radius:0 12px 12px;padding:1.25rem 1.35rem}.material-add-hint{color:var(--muted);margin:0 0 1rem;font-size:.875rem;line-height:1.55}.project-picker-trigger{border:1.5px dashed var(--hairline);background:var(--canvas);width:100%;font:inherit;color:var(--charcoal);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:.55rem;margin-top:.4rem;padding:.65rem .85rem;font-size:.9375rem;transition:border-color .15s,background .15s,color .15s;display:flex}.project-picker-trigger:hover{border-color:var(--brand);color:var(--brand);background:#f0f7ff;border-style:solid}.project-picker-trigger-hint{color:var(--steel);margin-left:auto;font-size:.75rem}.project-picker-selected{border:1px solid var(--primary);background:var(--primary-soft);border-radius:10px;align-items:center;gap:.75rem;margin-top:.4rem;padding:.65rem .85rem;display:flex}.project-picker-selected-icon{flex-shrink:0;font-size:1.4rem}.project-picker-selected-body{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.project-picker-selected-title{color:var(--ink-deep);white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:700;overflow:hidden}.project-picker-selected-meta{color:var(--muted);font-size:.75rem}.project-picker-search-row{border:1.5px solid var(--border);background:var(--canvas);border-radius:10px;align-items:center;gap:.5rem;margin-bottom:.65rem;padding:.55rem .75rem;display:flex}.project-picker-search-row:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px #2563eb1f}.project-picker-search-icon{color:var(--steel);font-size:1rem}.project-picker-search-input{font:inherit;color:var(--fg);background:0 0;border:0;outline:none;flex:1;font-size:.9375rem}.project-picker-search-clear{color:var(--steel);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 .25rem;font-size:1.25rem;line-height:1}.project-picker-search-clear:hover{background:var(--surface-soft);color:var(--charcoal)}.project-picker-chips{flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem;display:flex}.project-picker-chip{border:1px solid var(--border);background:var(--canvas);font:inherit;color:var(--charcoal);cursor:pointer;border-radius:9999px;padding:.3rem .65rem;font-size:.75rem;font-weight:600;transition:background .13s,border-color .13s,color .13s}.project-picker-chip:hover{border-color:var(--primary);color:var(--brand)}.project-picker-chip.is-active{background:var(--brand);border-color:var(--brand);color:var(--canvas)}.project-picker-list{flex-direction:column;gap:.35rem;max-height:60vh;margin:0 -.25rem;padding:0 .25rem;display:flex;overflow-y:auto}.project-picker-empty{text-align:center;color:var(--muted);padding:2rem 1rem;font-size:.875rem}.project-picker-item{font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:.75rem;width:100%;padding:.65rem .85rem;transition:background .13s,border-color .13s,transform .1s;display:flex}.project-picker-item:hover{background:var(--surface-soft);border-color:var(--border)}.project-picker-item.is-selected{background:var(--primary-soft);border-color:var(--primary)}.project-picker-item:active{transform:scale(.997)}.project-picker-item-icon{text-align:center;flex-shrink:0;width:2rem;font-size:1.5rem}.project-picker-item-body{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.project-picker-item-title{color:var(--ink-deep);font-size:.9375rem;font-weight:700}.project-picker-item-meta,.project-picker-item-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.project-picker-item-meta{color:var(--muted);align-items:center;gap:.3rem;font-size:.75rem;display:flex}.project-picker-item-type{color:var(--brand);font-weight:600}.project-picker-item-check{color:var(--brand);flex-shrink:0;font-size:1.1rem;font-weight:800}.material-type-grid{grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:1rem;display:grid}@media (max-width:600px){.material-type-grid{grid-template-columns:repeat(3,1fr)}}.material-type-btn{background:var(--surface-soft);border:2px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:.2rem;padding:.6rem .4rem;transition:border-color .15s,background .15s;display:flex}.material-type-btn-active,.material-type-btn:hover{border-color:var(--brand);background:var(--primary-soft)}.material-type-icon{font-size:1.35rem;line-height:1}.material-type-label{color:var(--foreground);font-size:.8rem;font-weight:600}.material-type-desc{color:var(--muted);text-align:center;font-size:.7rem}.material-dropzone{border:2px dashed var(--border);cursor:pointer;background:var(--surface-soft);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:.4rem;min-height:7rem;margin-bottom:.75rem;padding:1.5rem;transition:border-color .15s,background .15s;display:flex}.material-dropzone-over,.material-dropzone:hover{border-color:var(--brand);background:var(--primary-soft)}.material-dropzone-filled{border-style:solid;border-color:var(--success);background:var(--success-soft)}.material-dropzone-icon{font-size:1.75rem;line-height:1}.material-dropzone-text{color:var(--foreground);font-size:.875rem;font-weight:500}.material-dropzone-hint{color:var(--muted);font-size:.75rem}.material-dropzone-file{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.material-dropzone-file-icon{font-size:1.3rem}.material-dropzone-file-name{color:var(--success-ink);word-break:break-all;font-size:.875rem;font-weight:500}.material-dropzone-file-size{color:var(--muted);font-size:.75rem}.material-dropzone-remove{color:var(--critical);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.1rem .3rem;font-size:.9rem}.material-dropzone-remove:hover{background:var(--critical-soft)}.material-dropzone--hero{gap:.5rem;min-height:11rem;padding:2rem 1.25rem}.material-dropzone--hero .material-dropzone-icon{font-size:2.25rem}.material-dropzone--hero .material-dropzone-text{font-size:1rem}.material-dropzone-file-meta{flex-direction:column;flex:1;align-items:flex-start;min-width:0;display:flex}.material-altmode-btn{text-align:center;width:100%;color:var(--brand,var(--primary));cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.5rem;font-size:.8125rem;font-weight:600;display:block}.material-altmode-btn:hover{background:var(--primary-soft)}.material-url-card{background:var(--surface-soft);border:1px solid var(--border,var(--hairline-soft));border-radius:10px;margin-bottom:.75rem;padding:1rem}.material-url-hint{margin:.4rem 0 0}.material-url-cancel,.material-url-hint{color:var(--muted,var(--slate));font-size:.75rem}.material-url-cancel{cursor:pointer;background:0 0;border:0;margin-top:.6rem;padding:0}.material-url-cancel:hover{color:var(--foreground,var(--ink-deep))}.material-advanced{background:var(--surface-soft);border-radius:8px;margin-top:.5rem}.material-advanced[open]{padding:.75rem}.material-advanced-summary{color:var(--muted,var(--slate));cursor:pointer;-webkit-user-select:none;user-select:none;padding:.4rem .5rem;font-size:.75rem;font-weight:600}.material-advanced-summary:hover{color:var(--foreground,var(--ink-deep))}.html-embed-wrapper{margin-top:.75rem}.html-embed-toggle{color:var(--brand);cursor:pointer;background:0 0;border:none;padding:.25rem 0;font-size:.8rem;font-weight:500}.html-embed-toggle:hover{text-decoration:underline}.html-embed-frame{border:1px solid var(--border);border-radius:8px;width:100%;height:480px;margin-top:.5rem;display:block}.video-embed-container{border-radius:8px;height:0;margin-top:.5rem;padding-bottom:56.25%;position:relative;overflow:hidden}.video-embed-frame{border:none;width:100%;height:100%;position:absolute;inset:0}.card-grid-2{grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:.75rem;display:grid}@media (min-width:720px){.card-grid-2{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}}.unit-preview-chip{background:var(--primary-soft);color:var(--brand);border-radius:8px;padding:.3rem .65rem;font-size:.8125rem;font-weight:600;display:inline-block}.landing{min-height:100vh;color:var(--surface-soft);background:#0b1220;flex-direction:column;display:flex}.landing-header{z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0b1220d9;border-bottom:1px solid #94a3b81f;position:sticky;top:0}.landing-header-inner{justify-content:space-between;align-items:center;gap:1rem;max-width:72rem;margin:0 auto;padding:.85rem 1.25rem;display:flex}.landing-logo{color:inherit;align-items:center;gap:.75rem;text-decoration:none;display:flex}.landing-logo-mark{background:linear-gradient(135deg,var(--primary),var(--accent-lab));width:2.5rem;height:2.5rem;color:var(--canvas);border-radius:10px;justify-content:center;align-items:center;font-size:1.125rem;font-weight:800;display:inline-flex}.landing-logo-text{flex-direction:column;line-height:1.2;display:flex}.landing-logo-text strong{color:var(--canvas);font-size:1rem}.landing-logo-text span{color:var(--steel);font-size:.75rem;font-weight:400}.landing-nav{align-items:center;gap:.35rem;display:flex}.landing-nav-link{color:var(--hairline);border-radius:8px;padding:.45rem .75rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s,background .15s}.landing-nav-link:hover{color:var(--canvas);background:#ffffff0f}.landing-nav-cta{margin-left:.35rem}.landing-hero{padding:3.5rem 1.25rem 4.5rem;position:relative;overflow:hidden}.landing-hero:before{content:"";pointer-events:none;background:radial-gradient(80% 60% at 20% 0,#3b82f659,#0000),radial-gradient(60% 50% at 90% 20%,#6366f140,#0000);position:absolute;inset:0}.landing-hero-inner{align-items:center;gap:3rem;max-width:72rem;margin:0 auto;display:grid;position:relative}@media (min-width:960px){.landing-hero-inner{grid-template-columns:1fr 1fr;gap:4rem}}.landing-eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--primary);margin:0 0 .75rem;font-size:.8125rem;font-weight:600}.landing-hero-title{letter-spacing:-.03em;color:var(--canvas);margin:0;font-size:clamp(2rem,5vw,3.25rem);font-weight:800;line-height:1.15}.landing-hero-highlight{background:linear-gradient(90deg,var(--primary),var(--accent-lab));color:#0000;-webkit-background-clip:text;background-clip:text}.landing-hero-desc{color:var(--steel);max-width:32rem;margin-top:1.25rem;font-size:1.0625rem;line-height:1.65}.landing-hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.landing-btn-lg{padding:.65rem 1.35rem;font-size:.9375rem}.landing-btn-on-dark{color:var(--surface-soft);background:#ffffff14;border-color:#94a3b859}.landing-btn-on-dark:hover{background:#ffffff1f;border-color:#94a3b880}.landing-hero-tags{flex-wrap:wrap;gap:.5rem;margin:1.75rem 0 0;padding:0;list-style:none;display:flex}.landing-hero-tags li{color:var(--hairline);background:#ffffff0f;border:1px solid #94a3b833;border-radius:999px;padding:.35rem .75rem;font-size:.75rem;font-weight:600}.landing-hero-visual{justify-content:center;display:flex}.landing-preview{background:var(--ink-deep);border:1px solid #94a3b833;border-radius:16px;width:100%;max-width:22rem;overflow:hidden;box-shadow:0 24px 48px #00000059}.landing-preview-bar{background:var(--ink);border-bottom:1px solid #94a3b826;align-items:center;gap:.4rem;padding:.65rem .85rem;display:flex}.landing-preview-dot{background:var(--charcoal);border-radius:50%;width:.55rem;height:.55rem}.landing-preview-dot:first-child{background:var(--critical)}.landing-preview-dot:nth-child(2){background:var(--attention)}.landing-preview-dot:nth-child(3){background:var(--success)}.landing-preview-title{color:var(--slate);margin-left:.5rem;font-size:.6875rem}.landing-preview-code{color:var(--hairline-soft);margin:0;padding:1rem 1.1rem;font-family:ui-monospace,Cascadia Code,monospace;font-size:.8125rem;line-height:1.55}.landing-code-kw{color:#c084fc}.landing-code-fn{color:#7dd3fc}.landing-code-str{color:var(--success)}.landing-code-punc{color:var(--steel)}.landing-preview-blocks{flex-wrap:wrap;gap:.5rem;padding:0 1rem 1rem;display:flex}.landing-block{color:var(--canvas);border-radius:8px;padding:.4rem .75rem;font-size:.75rem;font-weight:700}.landing-block--start{background:var(--attention);color:#422006}.landing-block--move{background:var(--primary)}.landing-block--loop{background:var(--success);color:#052e16}.landing-section{padding:4rem 1.25rem}.landing-section--light{background:var(--bg);color:var(--text)}.landing-container{max-width:72rem;margin:0 auto}.landing-section-head{max-width:36rem;margin-bottom:2.5rem}.landing-section-head--center{text-align:center;margin-left:auto;margin-right:auto}.landing-section-title{letter-spacing:-.02em;margin:0;font-size:clamp(1.5rem,3vw,2rem);font-weight:700}.landing-section--light .landing-section-title{color:var(--text)}.landing-section-desc{color:var(--muted);margin-top:.65rem;font-size:1rem;line-height:1.6}.landing-features{gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}@media (min-width:640px){.landing-features{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.landing-features{grid-template-columns:repeat(4,1fr)}}.landing-feature-card{border:1px solid var(--border);background:var(--card);border-radius:14px;height:100%;padding:1.35rem;transition:box-shadow .2s,transform .2s}.landing-feature-card:hover{transform:translateY(-2px);box-shadow:0 12px 28px #0f172a14}.landing-accent-blue{border-top:3px solid var(--primary)}.landing-accent-violet{border-top:3px solid var(--accent-lab)}.landing-accent-emerald{border-top:3px solid var(--success)}.landing-accent-amber{border-top:3px solid var(--attention)}.landing-feature-icon{margin-bottom:.75rem;font-size:1.75rem;display:block}.landing-feature-title{margin:0;font-size:1rem;font-weight:700}.landing-feature-desc{color:var(--muted);margin-top:.5rem;font-size:.875rem;line-height:1.55}.landing-steps{counter-reset:none;gap:1.5rem;margin:0;padding:0;list-style:none;display:grid}@media (min-width:768px){.landing-steps{grid-template-columns:repeat(3,1fr);gap:2rem}}.landing-step{background:#ffffff0a;border:1px solid #94a3b81f;border-radius:14px;padding:1.5rem}.landing-step-num{color:var(--primary);letter-spacing:.05em;margin-bottom:.75rem;font-size:.75rem;font-weight:700;display:block}.landing-step-title{color:var(--canvas);margin:0;font-size:1.0625rem;font-weight:700}.landing-step-desc{color:var(--steel);margin-top:.5rem;font-size:.875rem;line-height:1.55}.landing-audience{background:#ffffff05;padding:4rem 1.25rem}.landing-audience-grid{gap:1.25rem;display:grid}@media (min-width:640px){.landing-audience-grid{grid-template-columns:1fr 1fr}}.landing-audience-card{background:#ffffff0d;border:1px solid #94a3b826;border-radius:16px;padding:1.75rem}.landing-audience-card--teacher{background:linear-gradient(135deg,#3b82f626,#6366f11a);border-color:#60a5fa40}.landing-audience-title{color:var(--canvas);margin:0;font-size:1.25rem;font-weight:700}.landing-audience-desc{color:var(--steel);margin-top:.5rem;font-size:.9375rem;line-height:1.55}.landing-audience-link{color:var(--primary);margin-top:1rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-block}.landing-audience-link:hover{color:var(--primary-light);text-decoration:underline}.landing-cta{text-align:center;padding:4rem 1.25rem 5rem}.landing-cta-inner{background:linear-gradient(135deg,var(--primary-deep),var(--accent-lab));border-radius:20px;max-width:40rem;margin:0 auto;padding:2.5rem 1.5rem;box-shadow:0 20px 40px #2563eb40}.landing-cta-title{color:var(--canvas);margin:0;font-size:clamp(1.35rem,3vw,1.75rem);font-weight:700}.landing-cta-desc{color:var(--primary-light);margin-top:.65rem;font-size:.9375rem;line-height:1.55}.landing-cta-actions{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-top:1.5rem;display:flex}.landing-footer{border-top:1px solid #94a3b81f;margin-top:auto;padding:1.5rem 1.25rem}.landing-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.landing-footer-brand{color:var(--slate);margin:0;font-size:.8125rem}.landing-footer-brand strong{color:var(--steel)}.landing-footer-nav{flex-wrap:wrap;gap:1rem;display:flex}.landing-footer-nav a{color:var(--slate);font-size:.8125rem;text-decoration:none}.landing-footer-nav a:hover{color:var(--hairline)}@media (max-width:639px){.landing-nav-link:not(.landing-nav-cta){display:none}.landing-nav-cta{margin-left:auto}}.prose{color:var(--text,var(--ink));font-size:.9375rem;line-height:1.75}.prose p{margin:.75em 0}.prose p:first-child{margin-top:0}.prose p:last-child{margin-bottom:0}.prose h1,.prose h2,.prose h3,.prose h4{margin:1.25em 0 .5em;font-weight:700;line-height:1.3}.prose h1{font-size:1.5rem}.prose h2{font-size:1.25rem}.prose h3{font-size:1.1rem}.prose h4{font-size:1rem}.prose ol,.prose ul{margin:.75em 0;padding-left:1.5em}.prose li{margin:.3em 0}.prose ul{list-style-type:disc}.prose ol{list-style-type:decimal}.prose a{color:var(--primary);text-decoration:underline}.prose a:hover{color:var(--primary-deep)}.prose strong{font-weight:700}.prose em{font-style:italic}.prose u{text-decoration:underline}.prose del,.prose s{text-decoration:line-through}.prose blockquote{border-left:3px solid var(--hairline);color:var(--slate);margin:1em 0;padding:.5em 1em;font-style:italic}.prose table{border-collapse:collapse;width:100%;margin:1em 0;font-size:.875rem}.prose td,.prose th{border:1px solid var(--hairline-soft);text-align:left;padding:6px 10px}.prose th{background:var(--surface-soft);font-weight:600}.prose code,.prose pre{font-family:D2coding,Nanum Gothic Coding,monospace;font-size:.875em}.prose pre{border:1px solid var(--hairline-soft);border-radius:6px;margin:.75em 0;padding:.75em 1em;overflow-x:auto}.prose code,.prose pre{background:var(--surface-soft)}.prose code{border-radius:3px;padding:.1em .35em}.prose pre code{background:0 0;padding:0}.prose hr{border:none;border-top:1px solid var(--hairline-soft);margin:1.5em 0}.dashboard-welcome{background:linear-gradient(135deg,var(--primary-soft) 0,var(--success-soft) 100%);border:1px solid var(--primary-soft);border-radius:18px;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.75rem;padding:1.5rem 1.75rem;display:flex}.dashboard-welcome-title{letter-spacing:-.02em;color:var(--ink);font-size:1.6rem;font-weight:700}.dashboard-welcome-sub{color:var(--muted);margin-top:.3rem;font-size:.9375rem}.dashboard-welcome-actions{flex-shrink:0;align-items:center;gap:.625rem;display:flex}.dashboard-cols{grid-template-columns:1fr;gap:1.25rem;margin-bottom:1.5rem;display:grid}@media (min-width:768px){.dashboard-cols{grid-template-columns:1fr 1fr}}.dashboard-col{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1.25rem 1.35rem}.dashboard-section-header{justify-content:space-between;align-items:center;margin-bottom:.875rem;display:flex}.dashboard-section-title{color:var(--ink-deep);letter-spacing:-.01em;margin:0;font-size:1rem;font-weight:700}.dashboard-section-more{color:var(--brand);font-size:.8125rem;font-weight:600;text-decoration:none;transition:opacity .15s}.dashboard-section-more:hover{opacity:.75}.dashboard-empty-card{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem;font-size:.9rem;display:flex}.dashboard-empty-icon{font-size:2rem;line-height:1}.dashboard-item-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.dashboard-item-card{background:var(--surface-soft);color:inherit;border:1px solid #0000;border-radius:10px;align-items:center;gap:.75rem;padding:.7rem .85rem;text-decoration:none;transition:background .12s,border-color .12s;display:flex}.dashboard-item-card:hover{background:var(--primary-soft);border-color:var(--primary-soft)}.dashboard-item-icon{flex-shrink:0;font-size:1.25rem}.dashboard-item-body{flex:1;min-width:0}.dashboard-item-title{white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;font-weight:600;overflow:hidden}.dashboard-item-meta{color:var(--muted);margin-top:.1rem;font-size:.8rem}.dashboard-item-arrow{color:var(--steel);flex-shrink:0;font-size:1rem;transition:transform .12s,color .12s}.dashboard-item-card:hover .dashboard-item-arrow{color:var(--brand);transform:translate(2px)}.dashboard-quick-links{grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem;margin-bottom:1rem;display:grid}@media (min-width:640px){.dashboard-quick-links{grid-template-columns:repeat(2,minmax(0,1fr))}}.btn-sm{padding:.35rem .875rem;font-size:.8125rem}.teacher-portal-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem;display:flex}.teacher-stats-bar{background:var(--card);border:1px solid var(--border);border-radius:14px;align-items:center;gap:0;margin-bottom:1.25rem;padding:1rem 1.5rem;display:flex}.teacher-stat{flex-direction:column;align-items:center;gap:.15rem;padding:0 1.5rem;display:flex}.teacher-stat:first-child{padding-left:0}.teacher-stat-value{color:var(--ink);font-size:1.75rem;font-weight:700;line-height:1}.teacher-stat-label{color:var(--muted);font-size:.8125rem}.teacher-stat-divider{background:var(--border);width:1px;height:2.5rem}.teacher-class-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem;display:grid}@media (min-width:640px){.teacher-class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.teacher-class-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.teacher-class-card{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:.875rem;padding:1.25rem 1.35rem;transition:border-color .15s,box-shadow .15s;display:flex}.teacher-class-card:hover{border-color:var(--primary);box-shadow:0 6px 20px #2563eb12}.teacher-class-card-header{align-items:flex-start;gap:.75rem;display:flex}.teacher-class-icon{flex-shrink:0;font-size:1.5rem}.teacher-class-card-info{flex:1;min-width:0}.teacher-class-name{white-space:nowrap;text-overflow:ellipsis;font-size:1.0625rem;font-weight:600;line-height:1.3;overflow:hidden}.teacher-class-stats{color:var(--muted);align-items:center;gap:.35rem;margin-top:.2rem;font-size:.8125rem;display:flex}.teacher-class-dot{opacity:.5}.teacher-class-invite{background:var(--surface-soft);border:1px solid var(--border);border-radius:8px;align-items:center;gap:.5rem;padding:.5rem .75rem;display:flex}.teacher-class-invite-label{color:var(--muted);flex-shrink:0;font-size:.75rem}.teacher-class-card-actions{gap:.5rem;display:flex}.prose img{border-radius:6px;max-width:100%;margin:.5em 0}.gallery-toolbar{margin-top:.25rem}.gallery-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem;margin-top:.5rem;display:grid}@media (min-width:640px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:960px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1280px){.gallery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.gallery-hero{background:radial-gradient(120% 100% at 0 0,var(--accent-lab-soft) 0,transparent 60%),radial-gradient(120% 100% at 100% 100%,var(--primary-soft) 0,transparent 55%),linear-gradient(180deg,var(--canvas) 0,var(--surface-soft) 100%);border:1px solid var(--hairline-soft);border-radius:20px;flex-wrap:wrap;align-items:center;gap:1.1rem;margin-bottom:1rem;padding:1.25rem 1.4rem;display:flex;box-shadow:0 1px 2px #0f172a0a}.gallery-hero-glyph{background:linear-gradient(135deg,var(--primary) 0,var(--accent-lab) 100%);width:3.5rem;height:3.5rem;color:var(--canvas);border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.75rem;display:inline-flex;box-shadow:0 6px 20px -6px #ec489973}.gallery-hero-text{flex:auto;min-width:0}.gallery-hero-title{color:var(--ink-deep);letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:800}.gallery-hero-sub{color:var(--slate);margin:.35rem 0 .7rem;font-size:.875rem;line-height:1.55}.gallery-hero-stats{flex-wrap:wrap;gap:1.1rem;display:flex}.gallery-hero-stat{color:var(--charcoal);align-items:baseline;gap:.35rem;font-size:.8125rem;display:inline-flex}.gallery-hero-stat strong{color:var(--ink-deep);letter-spacing:-.01em;font-size:1.125rem;font-weight:800}.gallery-toolbar-card{border:1px solid var(--hairline-soft);background:#fff;border-radius:14px;flex-direction:column;gap:.65rem;margin-bottom:.75rem;padding:.75rem;display:flex;box-shadow:0 1px 2px #0f172a08}.gallery-toolbar-search{align-items:center;display:flex;position:relative}.gallery-toolbar-search-icon{pointer-events:none;opacity:.6;font-size:.95rem;position:absolute;left:.85rem}.gallery-toolbar-search-input{border:1px solid var(--hairline-soft);background:var(--surface-soft);width:100%;height:2.5rem;color:var(--ink-deep);border-radius:10px;padding:0 2.5rem;font-size:.875rem;transition:border-color .12s,background .12s,box-shadow .12s}.gallery-toolbar-search-input:focus{border-color:var(--accent-lab);background:#fff;outline:none;box-shadow:0 0 0 3px #6366f126}.gallery-toolbar-search-clear{background:var(--hairline-soft);width:1.5rem;height:1.5rem;color:var(--charcoal);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;font-size:.7rem;display:inline-flex;position:absolute;right:.6rem}.gallery-toolbar-search-clear:hover{background:var(--hairline)}.gallery-toolbar-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.gallery-toolbar-chips{flex-wrap:wrap;gap:.35rem;display:flex}.gallery-toolbar-chip{border:1px solid var(--hairline-soft);color:var(--charcoal);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:.3rem;padding:.4rem .7rem;font-size:.8125rem;font-weight:600;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.gallery-toolbar-chip:hover{background:var(--surface-soft);border-color:var(--hairline);color:var(--ink-deep)}.gallery-toolbar-chip.is-active{background:linear-gradient(135deg,var(--accent-lab) 0,var(--accent-lab) 100%);color:#fff;border-color:#0000;box-shadow:0 2px 6px -2px #6366f180}.gallery-toolbar-chip-count{color:inherit;background:#94a3b82e;border-radius:999px;padding:1px 6px;font-size:.6875rem;font-weight:700}.gallery-toolbar-chip.is-active .gallery-toolbar-chip-count{background:#ffffff40}.gallery-toolbar-sort{color:var(--slate);align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;display:inline-flex}.gallery-toolbar-sort-label{letter-spacing:-.005em}.gallery-toolbar-sort-select{border:1px solid var(--hairline-soft);height:2.1rem;color:var(--ink-deep);cursor:pointer;background:#fff;border-radius:8px;padding:0 1.8rem 0 .7rem;font-size:.8125rem}.gallery-result-bar{justify-content:space-between;align-items:center;gap:.5rem;margin:.25rem .25rem .6rem;display:flex}.gallery-result-count{color:var(--slate);margin:0;font-size:.8125rem}.gallery-result-count strong{color:var(--ink-deep);margin-right:.25rem;font-size:.9375rem;font-weight:800}.gallery-result-clear{cursor:pointer;background:0 0;border:0;font-size:.75rem;font-weight:600}.gallery-result-clear,.gallery-result-clear:hover{color:var(--accent-lab)}.gallery-view-toggle{background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:10px;margin-right:.5rem;padding:2px;display:inline-flex}.gallery-view-toggle-btn{color:var(--slate);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:.3rem;padding:.35rem .65rem;font-size:.75rem;font-weight:600;transition:background .12s,color .12s;display:inline-flex}.gallery-view-toggle-btn:hover{color:var(--ink-deep)}.gallery-view-toggle-btn.is-active{color:var(--primary-deep);background:#fff;box-shadow:0 1px 2px #0f172a14}.gallery-table-wrap{border:1px solid var(--border);background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.gallery-table{border-collapse:collapse;width:100%;font-size:.875rem}.gallery-table thead{background:linear-gradient(180deg,var(--surface-soft) 0,var(--surface-soft) 100%);border-bottom:1px solid var(--border)}.gallery-table th{text-align:left;color:var(--charcoal);letter-spacing:-.005em;white-space:nowrap;padding:.7rem 1rem;font-size:.75rem;font-weight:700}.gallery-table-th-title{width:45%}.gallery-table-th-action{text-align:right;width:7rem}.gallery-table tbody tr{border-top:1px solid var(--surface-soft);transition:background .12s}.gallery-table tbody tr:first-child{border-top:0}.gallery-table tbody tr:hover{background:var(--surface-soft)}.gallery-table td{vertical-align:middle;color:var(--ink-deep);padding:.75rem 1rem}.gallery-table-title-cell{align-items:center;gap:.7rem;min-width:0;display:flex}.gallery-table-type-glyph{color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.4rem;height:2.4rem;font-size:1.2rem;display:inline-flex;box-shadow:0 2px 8px -3px #00000040}.gallery-table-title-text{flex-direction:column;gap:.1rem;min-width:0;display:flex}.gallery-table-title{color:var(--ink-deep);letter-spacing:-.005em;white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.35rem;font-size:.9375rem;font-weight:700;display:inline-flex;overflow:hidden}.gallery-table-fresh{font-size:.75rem}.gallery-table-desc{color:var(--slate);white-space:nowrap;text-overflow:ellipsis;max-width:38rem;font-size:.75rem;overflow:hidden}.gallery-table-type-chip{background:var(--surface-soft);border:1px solid var(--hairline-soft);color:var(--charcoal);white-space:nowrap;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:600;display:inline-block}.gallery-table-author{color:var(--charcoal);white-space:nowrap;align-items:center;gap:.5rem;font-size:.8125rem;display:inline-flex}.gallery-table-avatar{object-fit:cover;border-radius:50%;width:1.6rem;height:1.6rem}.gallery-table-avatar--fallback{background:linear-gradient(135deg,var(--accent-lab),var(--accent-lab));color:#fff;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.gallery-table-time{color:var(--slate);white-space:nowrap;font-size:.75rem}.gallery-table-action-cell{text-align:right}.gallery-table-action-cell .btn{padding:.35rem .7rem;font-size:.75rem}.gallery-card{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-direction:column;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;overflow:hidden}.gallery-card:hover{border-color:var(--hairline);transform:translateY(-3px);box-shadow:0 16px 36px #0f172a1a}.gallery-card-banner{isolation:isolate;flex-direction:column;justify-content:space-between;height:9rem;padding:.85rem 1rem .9rem;display:flex;position:relative;overflow:hidden}.gallery-card-banner:before{content:"";pointer-events:none;background:radial-gradient(120% 80% at 25% 0,#ffffff52 0,#0000 60%),radial-gradient(80% 80% at 100% 100%,#0000002e 0,#0000 65%);position:absolute;inset:0}.gallery-card-banner-glyph{opacity:.32;filter:drop-shadow(0 3px 6px #00000026);pointer-events:none;font-size:6rem;position:absolute;bottom:-1.1rem;right:-.6rem;transform:rotate(-10deg)}.gallery-card-banner-row{z-index:1;align-items:center;gap:.35rem;display:flex;position:relative}.gallery-card-chip{color:var(--ink-deep);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;align-items:center;gap:.25rem;padding:.25rem .6rem;font-weight:700;display:inline-flex;box-shadow:0 1px 3px #00000014}.gallery-card-chip,.gallery-card-pill{border-radius:999px;font-size:.6875rem}.gallery-card-pill{background:linear-gradient(135deg,var(--attention-soft) 0,#fb923c 100%);color:#7c2d12;padding:.2rem .55rem;font-weight:800;box-shadow:0 1px 3px #0000001f}.gallery-card-banner-title{z-index:1;margin-top:auto;position:relative}.gallery-card-banner-title h3{letter-spacing:-.01em;color:var(--canvas);text-shadow:0 2px 8px #00000040;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:1.05rem;font-weight:800;line-height:1.25;display:-webkit-box;overflow:hidden}.gallery-card-body{flex-direction:column;flex:1;gap:.75rem;padding:.9rem 1rem 1rem;display:flex}.gallery-card-desc{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.8125rem;line-height:1.5;display:-webkit-box;overflow:hidden}.gallery-card-desc--muted{opacity:.7;font-style:italic}.gallery-card-meta-row{background:var(--surface-soft);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;gap:.5rem;padding:.55rem .7rem;display:flex}.gallery-card-author{flex:auto;align-items:center;gap:.5rem;min-width:0;display:inline-flex}.gallery-author-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:1.75rem;height:1.75rem}.gallery-author-avatar--fallback{background:linear-gradient(135deg,var(--accent-lab),var(--accent-lab));color:var(--canvas);justify-content:center;align-items:center;font-size:.875rem;font-weight:700;display:inline-flex}.gallery-author-name{color:var(--ink-deep);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:700;overflow:hidden}.gallery-card-time{color:var(--slate);white-space:nowrap;flex-shrink:0;font-size:.6875rem;font-weight:600}.gallery-card-actions{margin-top:auto;display:flex}.gallery-card-actions .btn{flex:1}.project-public-toggle{border:1px solid var(--border);background:var(--surface-soft);color:var(--muted);cursor:pointer;border-radius:8px;align-items:center;gap:.25rem;padding:.35rem .65rem;font-size:.75rem;font-weight:600;transition:background .15s,border-color .15s,color .15s;display:inline-flex}.project-public-toggle:hover:not(:disabled){border-color:var(--steel);color:var(--charcoal)}.project-public-toggle--on{background:var(--success-soft);border-color:var(--success);color:var(--success-ink)}.project-public-toggle--compact{padding:.3rem .5rem;font-size:.7rem}.project-public-toggle:disabled{opacity:.6;cursor:not-allowed}.project-card-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.lesson-page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin:.5rem 0 1.25rem;display:flex}.lesson-page-eyebrow{color:var(--brand);letter-spacing:.04em;margin:0;font-size:.75rem;font-weight:700}.lesson-page-title{letter-spacing:-.01em;margin:.25rem 0 0;font-size:1.5rem;font-weight:800}.lesson-page-desc{color:var(--muted);margin:.4rem 0 0;font-size:.875rem}.lesson-page-role{background:var(--attention-soft);color:var(--attention-ink);border-radius:999px;padding:.25rem .65rem;font-size:.75rem;font-weight:700}.lesson-shell{grid-template-columns:var(--lesson-toc-width,18rem) minmax(0,1fr);align-items:start;gap:1.25rem;min-height:calc(100vh - 18rem);display:grid;position:relative}.lesson-toc-resize-handle{cursor:col-resize;touch-action:none;z-index:5;justify-content:center;align-items:center;width:1.25rem;display:flex;position:absolute;top:0;bottom:0;right:-.875rem}.lesson-toc-resize-handle:before{content:"";background:var(--border);border-radius:2px;width:2px;height:40px;transition:background .15s,height .15s}.lesson-toc-resize-handle.is-dragging:before,.lesson-toc-resize-handle:hover:before{background:var(--brand);height:80%}.lesson-shell--collapsed .lesson-toc-resize-handle{display:none}body.lesson-toc-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.lesson-fullpage{background:var(--background,var(--surface-soft));min-height:100vh}.lesson-fullpage-topbar{z-index:30;background:var(--card,var(--canvas));border-bottom:1px solid var(--border,var(--hairline-soft));align-items:center;gap:1rem;padding:.5rem 1rem;display:flex;position:sticky;top:0}.lesson-fullpage-back{color:var(--primary,var(--primary));white-space:nowrap;font-size:.875rem;font-weight:600;text-decoration:none}.lesson-fullpage-back:hover{text-decoration:underline}.lesson-fullpage-title-wrap{flex-direction:column;flex:1;min-width:0;line-height:1.2;display:flex}.unit-switcher{flex:0 auto;min-width:0;max-width:min(28rem,60%);position:relative}.unit-switcher-trigger{cursor:pointer;font:inherit;color:inherit;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:.5rem;width:auto;min-width:0;max-width:100%;padding:.25rem .5rem;display:inline-flex}.unit-switcher-trigger:hover{background:var(--surface-soft);border-color:var(--border,var(--hairline-soft))}.unit-switcher-icon{flex-shrink:0;font-size:1.1rem}.unit-switcher-meta{flex-direction:column;flex:1;min-width:0;line-height:1.15;display:flex}.unit-switcher-num{color:var(--slate);letter-spacing:.02em;font-size:.6875rem;font-weight:700}.unit-switcher-title{white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:700;overflow:hidden}.unit-switcher-chevron{color:var(--steel);flex-shrink:0;font-size:.7rem}.unit-switcher-rename{width:1.5rem;height:1.5rem;color:var(--slate);cursor:text;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;margin-left:.25rem;font-size:.85rem;transition:background .13s;display:inline-flex}.unit-switcher-rename:hover{background:var(--hover)}.unit-switcher-title-input{border:1.5px solid var(--brand);background:var(--canvas);color:var(--fg);border-radius:6px;outline:none;width:100%;min-width:8rem;max-width:22rem;padding:.2rem .45rem;font-size:.9375rem;font-weight:700}.unit-switcher-pop{background:var(--canvas);border:1px solid var(--border,var(--hairline-soft));z-index:50;border-radius:12px;min-width:280px;max-width:360px;max-height:60vh;padding:.4rem;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 12px 28px #0f172a26}.unit-switcher-group{color:var(--steel);text-transform:uppercase;letter-spacing:.04em;margin:.3rem .5rem .15rem;font-size:.6875rem;font-weight:700}.unit-switcher-divider{background:var(--border,var(--hairline-soft));height:1px;margin:.4rem 0}.unit-switcher-item{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:.6rem;width:100%;padding:.45rem .6rem;font-size:.8125rem;display:flex}.unit-switcher-item:hover{background:var(--surface-soft)}.unit-switcher-item--active{background:var(--primary-soft);color:var(--primary-deep);font-weight:700}.unit-switcher-item-num{background:var(--hairline-soft);width:1.6rem;height:1.6rem;color:var(--charcoal);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.unit-switcher-item--active .unit-switcher-item-num{background:var(--primary);color:var(--canvas)}.unit-switcher-item-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.unit-switcher-item-check{color:var(--primary);font-weight:700}.lesson-fullpage-type{color:var(--muted-foreground,var(--slate));font-size:.6875rem;font-weight:600}.lesson-fullpage-title{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.9375rem;font-weight:700;overflow:hidden}.lesson-fullpage-role{background:var(--attention-soft);color:var(--attention-ink);border-radius:999px;flex-shrink:0;padding:.125rem .5rem;font-size:.6875rem;font-weight:700}.lesson-fullpage-exam-link{color:var(--accent-lab);border:1px solid var(--accent-lab-soft);white-space:nowrap;border-radius:999px;padding:.25rem .6rem;font-size:.75rem;font-weight:600}.lesson-fullpage-exam-link,.lesson-fullpage-exam-link:hover{background:var(--accent-lab-soft)}.lesson-fullpage .lesson-shell{border-radius:0;align-items:stretch;gap:0;min-height:calc(100vh - 3.25rem);padding:0}.lesson-fullpage .lesson-toc{border-top:none;border-bottom:none;border-left:none;border-radius:0;height:calc(100vh - 3.25rem);max-height:calc(100vh - 3.25rem);position:sticky;top:3.25rem}.lesson-fullpage .lesson-main{flex-direction:column;min-height:0;padding:0;display:flex}.lesson-fullpage .lesson-viewer-pane{flex-direction:column;flex:1;min-height:0;display:flex}.lesson-fullpage .lesson-viewer-body{flex:1;min-height:0}.lesson-panes{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.lesson-panes--split{flex-direction:row}.lesson-main-pane{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.lesson-main--split .lesson-main-pane--primary,.lesson-panes--split .lesson-main-pane--primary{border-right:0}.lesson-pane-divider{background:var(--border,var(--hairline-soft));cursor:col-resize;-webkit-user-select:none;user-select:none;z-index:1;flex:0 0 6px;justify-content:center;align-items:center;transition:background .12s;display:flex;position:relative}.lesson-pane-divider:focus,.lesson-pane-divider:hover{background:var(--primary);outline:none}.lesson-pane-divider:before{content:"";position:absolute;inset:0 -3px}.lesson-pane-divider-grip{color:var(--steel);letter-spacing:-3px;pointer-events:none;writing-mode:vertical-rl;font-size:.75rem}.lesson-pane-divider:hover .lesson-pane-divider-grip{color:var(--primary-deep)}body.lesson-is-resizing,body.lesson-is-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}body.lesson-is-resizing iframe{pointer-events:none!important}.lesson-main--resizing .lesson-pane-divider{background:var(--primary)}.lesson-main-pane--pinned{background:var(--attention-soft);border-left:2px solid var(--attention)}.lesson-pinned-bar{background:var(--attention-soft);border-bottom:1px solid var(--attention-soft);flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .75rem;display:flex}.lesson-pinned-bar-label{color:var(--attention-ink);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:700;overflow:hidden}.lesson-pinned-bar-close{cursor:pointer;width:1.5rem;height:1.5rem;color:var(--attention-ink);background:0 0;border:0;border-radius:6px;flex-shrink:0}.lesson-pinned-bar-close:hover{background:var(--attention-soft)}.lesson-pinned-body{overflow:auto}.lesson-pinned-body,.lesson-pinned-body .lesson-viewer-pane{flex-direction:column;flex:1;min-height:0;display:flex}.lesson-pinned-body .lesson-viewer-body{flex:1;min-height:0}@media (max-width:900px){.lesson-fullpage .lesson-main--split{flex-direction:column}.lesson-main--split .lesson-main-pane--primary{border-right:0;border-bottom:1px solid var(--border,var(--hairline-soft))}}.lesson-fullpage .quiz-section{padding:1.5rem 1.25rem 3rem}.lesson-embedded-frame-wrap{background:var(--canvas);width:100%;height:100%;min-height:480px;position:relative}.lesson-embedded-frame{border:0;width:100%;height:100%;min-height:480px;display:block}.lesson-embedded-pop{color:var(--canvas);opacity:.7;background:#0f172ab3;border-radius:6px;padding:.25rem .5rem;font-size:.6875rem;font-weight:600;text-decoration:none;transition:opacity .15s;position:absolute;top:.5rem;right:.5rem}.lesson-embedded-pop:hover{opacity:1}.lesson-embedded-error,.lesson-embedded-loading{color:var(--muted-foreground,var(--slate));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:320px;padding:3rem 1rem;display:flex}.lesson-embedded-error-title{color:var(--critical-strong);font-weight:700}.lesson-embedded-error-detail{font-size:.875rem}.lesson-embedded-spinner{border:3px solid var(--hairline-soft);border-bottom-color:var(--accent-lab);border-radius:50%;width:32px;height:32px;animation:css-loader-circle-rotation 1s linear infinite}.lesson-shell--collapsed{grid-template-columns:3.25rem minmax(0,1fr)}@media (max-width:900px){.lesson-shell,.lesson-shell--collapsed{grid-template-columns:minmax(0,1fr)}}.lesson-toc{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-direction:column;max-height:calc(100vh - 6rem);padding:.75rem .6rem .75rem .75rem;display:flex;position:sticky;top:1rem;overflow:hidden;container:lesson-toc/inline-size}@container lesson-toc (max-width:240px){.lesson-live-toggle-label,.lesson-mode-seg-label,.lesson-toc-sub{display:none}.lesson-mode-seg-btn{padding-inline:.4rem}.lesson-toc-edit-actions,.lesson-toc-pin{display:none}.lesson-toc-item:after{content:attr(data-index);text-align:center;min-width:16px;height:16px;color:var(--charcoal);pointer-events:none;background:#94a3b833;border-radius:999px;padding:0 5px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:2px;right:4px}.lesson-toc-item--active:after{color:var(--critical-strong);background:#dc26262e}.lesson-toc-row{padding-right:1.6rem}}@container lesson-toc (max-width:180px){.lesson-toc-text{display:none}.lesson-toc-icon{width:1.4rem;height:1.4rem;font-size:.95rem}.lesson-toc-row{justify-content:center;padding-right:.55rem}.lesson-toc-item:after{margin-left:.25rem;position:static}}.lesson-toc-head{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.25rem .25rem .6rem;display:flex}.lesson-toc-title{margin-right:auto;font-size:.9375rem;font-weight:800}.lesson-toc-collapse{border:1px solid var(--border);background:var(--bg);width:1.75rem;height:1.75rem;color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:inline-flex}.lesson-toc-collapse:hover{background:var(--accent-lab-soft);color:var(--brand)}.lesson-edit-toggle{border:1px solid var(--border);background:var(--card);color:var(--fg,var(--ink-deep));cursor:pointer;border-radius:8px;padding:.3rem .55rem;font-size:.75rem;font-weight:700}.lesson-edit-toggle:hover{background:var(--surface-soft)}.lesson-edit-toggle--on{background:var(--attention-soft);border-color:var(--attention);color:var(--attention-ink)}.lesson-edit-toggle--preview{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-deep)}.lesson-edit-toggle--live{background:var(--critical-soft);border-color:var(--critical);color:var(--critical-strong);animation:live-pulse 2s ease-in-out infinite}@keyframes live-pulse{0%,to{box-shadow:0 0 #ef444459}50%{box-shadow:0 0 0 6px #ef444400}}.lesson-mode-seg{background:var(--surface-soft);border-radius:8px;gap:2px;margin-left:auto;padding:2px;display:inline-flex}.lesson-mode-seg-btn{color:var(--slate);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:.25rem;padding:.3rem .55rem;font-size:.6875rem;font-weight:700;transition:background .12s,color .12s;display:inline-flex}.lesson-mode-seg-btn:hover{color:var(--charcoal)}.lesson-mode-seg-btn.is-active{background:var(--canvas);color:var(--ink-deep);box-shadow:0 1px 2px #0f172a14}.lesson-mode-seg-btn.is-active-preview{color:var(--primary-deep)}.lesson-mode-seg-btn.is-active-live{background:var(--critical-soft);color:var(--critical-strong);animation:live-pulse 2s ease-in-out infinite}.lesson-mode-seg-label{display:inline}@media (max-width:1100px){.lesson-mode-seg-label{display:none}.lesson-mode-seg-btn{padding:.3rem .4rem}}.lesson-live-toggle{border:1px solid var(--critical-soft);color:var(--critical-strong);cursor:pointer;border-radius:999px;align-items:center;gap:.3rem;margin-left:auto;padding:.3rem .65rem;font-size:.75rem;font-weight:700;transition:background .12s,transform .1s;display:inline-flex}.lesson-live-toggle,.lesson-live-toggle:hover{background:linear-gradient(135deg,var(--critical-soft) 0,var(--critical-soft) 100%)}.lesson-live-toggle:active{transform:translateY(1px)}.lesson-live-toggle.is-active{background:linear-gradient(135deg,var(--critical) 0,var(--critical) 100%);color:#fff;border-color:#0000;box-shadow:0 2px 8px -2px #ef444499}.lesson-live-toggle-label{letter-spacing:-.005em}@media (max-width:760px){.lesson-live-toggle-label{display:none}.lesson-live-toggle{padding:.3rem .45rem}}body.lesson-live-mode .lesson-fullpage-topbar{display:none!important}body.lesson-live-mode .lesson-live-exit-floating{display:inline-flex}.lesson-live-exit-floating{z-index:100;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172ad9;border:0;border-radius:999px;align-items:center;gap:.35rem;padding:.4rem .85rem;font-size:.75rem;font-weight:700;display:none;position:fixed;top:.6rem;right:.8rem;box-shadow:0 4px 14px #00000040}.lesson-live-exit-floating:hover{background:#0f172af2}body.lesson-live-mode .lesson-fullpage .lesson-shell{min-height:100vh}body.lesson-live-mode .lesson-fullpage .lesson-toc{height:100vh;max-height:100vh;top:0}body.lesson-live-mode .lesson-toc-head:before{content:"📺 LIVE";color:var(--canvas);background:var(--critical);letter-spacing:.5px;border-radius:999px;margin-right:.35rem;padding:.15rem .45rem;font-size:.625rem;font-weight:800}.lesson-toc-progress{flex-direction:column;gap:.3rem;margin:.4rem .25rem;display:flex}.lesson-toc-progress-bar{background:var(--hairline-soft);border-radius:999px;height:4px;overflow:hidden}.lesson-toc-progress-fill{background:linear-gradient(90deg,var(--success) 0,var(--success) 100%);border-radius:999px;height:100%;transition:width .4s ease-out}.lesson-toc-progress-label{color:var(--charcoal);font-size:.6875rem;font-weight:600}.lesson-toc-icon-check{color:var(--canvas);background:var(--success);border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;font-size:.875rem;font-weight:700;display:inline-flex}.lesson-toc-list{flex-direction:column;flex:1;gap:.25rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.lesson-toc-empty{color:var(--muted);text-align:center;padding:1rem .5rem;font-size:.8125rem}.lesson-toc-item{border-radius:10px;align-items:center;gap:.25rem;padding:.1rem;transition:background .15s;display:flex;position:relative}.lesson-toc-pin{cursor:pointer;opacity:.25;background:0 0;border:0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;font-size:.8125rem;transition:opacity .15s,background .15s;display:inline-flex}.lesson-toc-item:hover .lesson-toc-pin{opacity:.7}.lesson-toc-pin:hover{background:#0000000d;opacity:1!important}.lesson-toc-pin--on{color:var(--attention-ink);opacity:1!important}.lesson-toc-pin--on,.lesson-toc-pin--on:hover{background:var(--attention-soft)}.lesson-toc-item:hover{background:var(--surface-soft)}.lesson-toc-item--active,.lesson-toc-item--active:hover{background:var(--critical-soft)}.lesson-toc-row{cursor:pointer;text-align:left;min-width:0;color:inherit;background:0 0;border:0;border-radius:8px;flex:1;align-items:center;gap:.6rem;padding:.45rem .55rem;display:flex}.lesson-toc-icon{background:var(--bg);border:1px solid var(--border);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;font-size:1.05rem;display:inline-flex}.lesson-toc-item--active .lesson-toc-icon{background:var(--canvas);border-color:var(--critical-soft)}.lesson-toc-text{flex-direction:column;gap:.05rem;min-width:0;display:flex}.lesson-toc-name{color:var(--fg,var(--ink-deep));white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.lesson-toc-item--active .lesson-toc-name{color:var(--critical-strong)}.lesson-toc-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;font-weight:500;overflow:hidden}.lesson-toc-rename-input{border:1px solid var(--primary);background:var(--canvas);border-radius:6px;outline:none;width:100%;min-width:0;padding:.15rem .4rem;font-size:.875rem;font-weight:600}.lesson-toc-edit-actions{opacity:0;align-items:center;gap:.15rem;padding-right:.2rem;transition:opacity .12s;display:flex}.lesson-toc-item:focus-within .lesson-toc-edit-actions,.lesson-toc-item:hover .lesson-toc-edit-actions{opacity:1}.lesson-toc-drag-handle{cursor:grab;width:.9rem;height:1.5rem;color:var(--hairline);letter-spacing:-2px;-webkit-user-select:none;user-select:none;opacity:0;flex-shrink:0;justify-content:center;align-items:center;font-size:.65rem;transition:opacity .12s,color .12s;display:inline-flex}.lesson-toc-item:focus-within .lesson-toc-drag-handle,.lesson-toc-item:hover .lesson-toc-drag-handle{opacity:1}.lesson-toc-drag-handle:hover{color:var(--slate)}.lesson-toc-drag-handle:active{cursor:grabbing}.lesson-toc-item--dragging{opacity:.4}.lesson-toc-item--drop{box-shadow:inset 0 2px 0 0 var(--primary);background:var(--primary-soft)!important}.lesson-toc-edit-btn{border:1px solid var(--border);background:var(--canvas);width:1.5rem;height:1.5rem;color:var(--muted);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;font-size:.75rem;display:inline-flex}.lesson-toc-edit-btn:hover:not(:disabled){background:var(--accent-lab-soft);color:var(--brand);border-color:var(--accent-lab-soft)}.lesson-toc-edit-btn:disabled{opacity:.4;cursor:not-allowed}.lesson-toc-edit-btn--danger:hover:not(:disabled){background:var(--critical-soft);color:var(--critical-strong);border-color:var(--critical-soft)}.lesson-toc-footer{border-top:1px dashed var(--border);flex-direction:column;gap:.4rem;margin-top:.6rem;padding-top:.6rem;display:flex}.lesson-add-btn{background:linear-gradient(135deg,var(--accent-lab-soft) 0,var(--accent-lab-soft) 100%);border:1px dashed var(--accent-lab-soft);width:100%;color:var(--accent-lab);cursor:pointer;text-align:center;border-radius:10px;padding:.6rem .75rem;font-size:.8125rem;font-weight:700;text-decoration:none;display:block}.lesson-add-btn:hover{background:var(--accent-lab-soft)}.lesson-add-btn--quiz{color:var(--accent-lab);background:linear-gradient(135deg,#fdf4ff,#fae8ff);border-color:#d8b4fe}.lesson-add-btn--quiz:hover{background:#f5d0fe}.lesson-add-btn--compose{background:linear-gradient(135deg,var(--primary-soft) 0,var(--primary-soft) 100%);border-color:var(--primary);color:var(--primary-deep)}.lesson-add-btn--compose:hover{background:var(--primary-soft)}.lesson-toc-name-hint{color:var(--attention-ink);margin-left:.4rem;font-size:.6875rem;font-weight:600}.lesson-toc-companion{color:var(--accent-lab);font-weight:600}.material-companion-label{align-items:center;gap:.35rem;display:inline-flex}.material-companion-optional{color:var(--steel);font-size:.6875rem;font-weight:500}.material-companion-hint{color:var(--slate);margin-top:.3rem;font-size:.75rem;line-height:1.45;display:block}.rich-text-editor{margin-top:.4rem}.rich-text-editor-loading{text-align:center;color:var(--steel);background:var(--surface-soft);border:1px solid var(--border,var(--hairline-soft));border-radius:8px;padding:2rem 1rem;font-size:.875rem}.material-draft-richtext{display:block}.lesson-inline-html-wrap{background:var(--canvas)}.material-swap-btn{margin-top:.5rem}.add-material-mode-toggle{grid-template-columns:1fr 1fr;gap:.5rem;margin:.25rem 0 1rem;display:grid}.add-material-mode-card{background:var(--canvas);border:1.5px solid var(--border,var(--hairline-soft));cursor:pointer;text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:.35rem;padding:.85rem .6rem;transition:border-color .12s,background .12s,box-shadow .12s;display:flex}.add-material-mode-card:hover:not(.is-active){border-color:var(--primary);background:var(--surface-soft)}.add-material-mode-card.is-active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px #2563eb1f}.add-material-mode-illu{background:var(--surface-soft);border-radius:6px;gap:4px;width:4.5rem;height:2.5rem;padding:4px;display:inline-flex}.add-material-mode-pane{background:var(--hairline);border-radius:3px;flex:1}.add-material-mode-card.is-active .add-material-mode-illu{background:var(--primary-soft)}.add-material-mode-card.is-active .add-material-mode-pane{background:var(--primary)}.add-material-mode-label{color:var(--ink-deep);font-size:.9375rem;font-weight:700}.add-material-mode-desc{color:var(--slate);font-size:.6875rem}.add-material-body{margin-top:.5rem}.add-material-split-grid{grid-template-columns:1fr 1fr;gap:.85rem;display:grid}@media (max-width:720px){.add-material-split-grid{grid-template-columns:1fr}}.material-draft-pane{flex-direction:column;gap:.5rem;display:flex}.material-draft-pane.is-compact .material-dropzone{min-height:6rem;padding:.85rem}.material-draft-pane-side{color:var(--charcoal);background:var(--surface-soft);border-radius:6px;width:max-content;margin:0 0 .15rem;padding:.25rem .4rem;font-size:.75rem;font-weight:700;display:inline-block}.material-draft-source-mini{background:var(--surface-soft);border-radius:8px;gap:.25rem;padding:3px;display:flex}.material-draft-source-mini-btn{color:var(--charcoal);cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;padding:.35rem .4rem;font-size:.75rem;font-weight:600;transition:background .12s,color .12s}.material-draft-source-mini-btn:hover{color:var(--ink-deep)}.material-draft-source-mini-btn.is-active{background:var(--canvas);color:var(--primary-deep);box-shadow:0 1px 2px #0f172a14}.add-material-source-cards{grid-template-columns:repeat(3,1fr);gap:.5rem;margin:.25rem 0 1rem;display:grid}.add-material-source-card{background:var(--canvas);border:1.5px solid var(--border,var(--hairline-soft));cursor:pointer;text-align:center;border-radius:12px;flex-direction:column;align-items:center;gap:.25rem;padding:.85rem .5rem;transition:border-color .12s,background .12s,box-shadow .12s;display:flex}.add-material-source-card:hover:not(.is-active){border-color:var(--primary);background:var(--surface-soft)}.add-material-source-card.is-active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px #2563eb1f}.add-material-source-icon{font-size:1.5rem;line-height:1}.add-material-source-label{color:var(--ink-deep);font-size:.875rem;font-weight:700}.add-material-source-desc{color:var(--slate);font-size:.6875rem;line-height:1.3}.add-material-source-body{margin-top:.25rem}.add-material-source-body .material-add-card{background:0 0;border:0;padding:0}.page-layout-picker{margin:.5rem 0 .75rem}.page-layout-picker-label{color:var(--charcoal);margin:0 0 .45rem;font-size:.8125rem;font-weight:600}.page-layout-cards{grid-template-columns:1fr 1fr;gap:.6rem;display:grid}.page-layout-card{background:var(--canvas);border:1.5px solid var(--border,var(--hairline-soft));cursor:pointer;text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:.35rem;padding:.85rem .6rem;transition:border-color .12s,background .12s,box-shadow .12s;display:flex}.page-layout-card:hover:not(.is-disabled):not(.is-active){border-color:var(--primary);background:var(--surface-soft)}.page-layout-card.is-active{border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px #2563eb1f}.page-layout-card.is-disabled{opacity:.45;cursor:not-allowed}.page-layout-card-title{color:var(--ink-deep);font-size:.875rem;font-weight:700}.page-layout-card-desc{color:var(--slate);font-size:.6875rem}.page-layout-illu{background:var(--surface-soft);border-radius:6px;gap:4px;width:4rem;height:2.4rem;padding:4px;display:inline-flex}.page-layout-illu-pane{background:var(--hairline);border-radius:3px;flex:1}.page-layout-card.is-active .page-layout-illu{background:var(--primary-soft)}.page-layout-card.is-active .page-layout-illu-pane{background:var(--primary)}.page-layout-companion{margin-top:.75rem;display:block}.page-layout-companion-label{color:var(--charcoal);margin-bottom:.3rem;font-size:.75rem;font-weight:600;display:block}.page-layout-companion-hint{color:var(--slate);margin-top:.3rem;font-size:.6875rem;line-height:1.45;display:block}.page-layout-empty{border:1px dashed var(--hairline);background:var(--surface-soft);border-radius:10px;flex-direction:column;align-items:flex-start;gap:.5rem;margin-top:.75rem;padding:.85rem 1rem;display:flex}.page-layout-empty-title{color:var(--ink-deep);margin:0;font-size:.8125rem;font-weight:700}.page-layout-empty-desc{color:var(--muted);margin:0;font-size:.75rem;line-height:1.55}.lesson-quiz-wrap{max-width:880px;margin:0 auto;padding:1.25rem}.lesson-quiz-teacher-preview{flex-direction:column;gap:1rem;max-width:880px;margin:0;padding:1.25rem;list-style:none;display:flex}.lesson-quiz-teacher-q{background:var(--canvas);border:1px solid var(--border);border-radius:12px;padding:1rem}.lesson-quiz-teacher-q-head{align-items:center;gap:.6rem;margin-bottom:.5rem;display:flex}.lesson-quiz-teacher-q-points{color:var(--slate);background:var(--surface-soft);border-radius:999px;padding:.125rem .5rem;font-size:.75rem;font-weight:600}.lesson-quiz-teacher-q-prompt{white-space:pre-wrap;margin:0 0 .6rem;font-size:.9375rem}.lesson-quiz-teacher-q-choices{flex-direction:column;gap:.3rem;margin:0;padding:0;list-style:none;display:flex}.lesson-quiz-teacher-q-choices li{color:var(--charcoal);background:var(--surface-soft);border-radius:6px;padding:.35rem .5rem;font-size:.875rem}.lesson-quiz-teacher-q-num{color:var(--slate);margin-right:.4rem;font-weight:700}.lesson-main{min-width:0}.lesson-empty{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:16px;padding:3rem 1.5rem}.lesson-empty-icon{margin-bottom:.5rem;font-size:2.5rem}.lesson-empty-title{margin:0;font-size:1rem;font-weight:700}.lesson-empty-desc{color:var(--muted);max-width:36rem;margin:.4rem 0 0;font-size:.875rem}.lesson-empty-actions{flex-wrap:wrap;justify-content:center;gap:.5rem;margin:1.2rem 0 .75rem;display:flex}.lesson-empty-hint{color:var(--muted);margin:.5rem 0 0;font-size:.75rem}.lesson-viewer-pane{background:var(--card);border:1px solid var(--border);border-radius:16px;flex-direction:column;display:flex;overflow:hidden}.lesson-viewer-head{border-bottom:1px solid var(--border);background:linear-gradient(180deg,var(--surface-soft) 0,var(--canvas) 100%);flex-shrink:0;padding:.5rem .75rem}.lesson-viewer-head-row{min-width:0}.lesson-viewer-head-meta,.lesson-viewer-head-row{align-items:center;gap:.5rem;display:flex}.lesson-viewer-icon{flex-shrink:0;font-size:1rem}.lesson-viewer-title{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-size:.9375rem;font-weight:700;overflow:hidden}.lesson-viewer-desc{color:var(--muted);margin:.3rem 0 0;font-size:.8125rem}.lesson-viewer-actions{flex-wrap:nowrap;flex-shrink:0;gap:.4rem;margin-left:auto;display:flex}.lesson-viewer-pane--bare .lesson-viewer-body{padding:0}.lesson-viewer-body{flex-direction:column;gap:.85rem;min-height:24rem;padding:1rem;display:flex}.lesson-viewer-frame{border:0;display:block}.lesson-embed-wrap,.lesson-viewer-frame{background:var(--surface-soft);width:100%;height:100%;min-height:32rem}.lesson-embed-wrap{flex-direction:column;display:flex;position:relative}.lesson-embed-pop{z-index:5;color:var(--canvas);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172ab8;border-radius:6px;padding:.3rem .55rem;font-size:.6875rem;font-weight:700;text-decoration:none;transition:background .12s;position:absolute;top:.5rem;right:.5rem}.lesson-embed-pop:hover{background:#0f172aeb}.lesson-embed-pop--alt{right:4.4rem}.lesson-image-wrap{background:var(--ink-deep);justify-content:center;align-items:center}.lesson-viewer-image{object-fit:contain;max-width:100%;max-height:100%;margin:auto;display:block}.lesson-video-wrap{background:#000;justify-content:stretch;align-items:stretch}.lesson-video-wrap .lesson-viewer-frame{background:#000;min-height:24rem}.lesson-viewer-video{background:#000;border-radius:12px;width:100%;padding-top:56.25%;position:relative;overflow:hidden}.lesson-viewer-video-frame{border:0;width:100%;height:100%;position:absolute;inset:0}.lesson-viewer-placeholder{background:var(--surface-soft);border:1px dashed var(--border);text-align:center;border-radius:12px;padding:2.5rem 1.25rem}.lesson-viewer-placeholder-icon{font-size:2.5rem}.lesson-viewer-placeholder-title{margin:.5rem 0 0;font-size:.9375rem;font-weight:700}.lesson-viewer-placeholder-desc{color:var(--muted);margin:.35rem 0 0;font-size:.8125rem;line-height:1.6}.lesson-viewer-editor-card{background:linear-gradient(135deg,var(--primary-soft) 0,var(--accent-lab-soft) 100%);border:1px solid var(--accent-lab-soft);text-align:center;border-radius:14px;padding:1.5rem 1.25rem}.lesson-viewer-editor-card-icon{font-size:2.25rem}.lesson-viewer-editor-card-title{color:var(--primary-deep);margin:.4rem 0 0;font-size:1rem;font-weight:800}.lesson-viewer-editor-card-desc{color:var(--accent-lab);margin:.35rem 0 0;font-size:.875rem;line-height:1.6}.lesson-viewer-editor-card-action{margin-top:.85rem;display:inline-flex}.lesson-notebook-preview{background:var(--surface-soft);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;max-height:22rem;color:var(--charcoal);border-radius:10px;padding:.85rem 1rem;font-family:SF Mono,Fira Code,monospace;font-size:.75rem;overflow:auto}.lesson-dataset-card{background:linear-gradient(135deg,var(--accent-lab-soft) 0,var(--accent-lab-soft) 100%);border:1px solid var(--accent-lab-soft);border-radius:14px;flex-direction:column;gap:.85rem;padding:1.1rem 1.15rem;display:flex}.lesson-dataset-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem;display:flex}.lesson-dataset-name{color:#1e1b4b;word-break:break-all;margin:0;font-size:.95rem;font-weight:700}.lesson-dataset-sub{color:var(--accent-lab);letter-spacing:.02em;margin:.2rem 0 0;font-size:.75rem;font-weight:600}.lesson-dataset-note{color:var(--accent-lab);margin:0;font-size:.8125rem;line-height:1.55}.lesson-dataset-error{color:var(--critical-strong)}.lesson-dataset-table-wrap{background:var(--canvas);border:1px solid var(--accent-lab-soft);border-radius:10px;padding:.6rem .6rem .8rem}.lesson-dataset-table-scroll{border:1px solid var(--hairline-soft);border-radius:8px;max-height:24rem;margin-top:.4rem;overflow:auto}.lesson-dataset-table{border-collapse:separate;border-spacing:0;width:100%;font-family:SF Mono,Fira Code,monospace;font-size:.8125rem}.lesson-dataset-table td,.lesson-dataset-table th{border-bottom:1px solid var(--hairline-soft);border-right:1px solid var(--hairline-soft);text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:22rem;padding:.4rem .6rem;overflow:hidden}.lesson-dataset-table th{color:var(--ink);z-index:1;font-weight:700;position:sticky;top:0}.lesson-dataset-table tbody tr:nth-child(odd) td,.lesson-dataset-table th{background:var(--surface-soft)}.lesson-dataset-json{background:var(--canvas);border:1px solid var(--accent-lab-soft);white-space:pre-wrap;word-break:break-word;max-height:22rem;color:var(--ink);border-radius:10px;margin:0;padding:.85rem 1rem;font-family:SF Mono,Fira Code,monospace;font-size:.75rem;overflow:auto}.lesson-link-card{background:var(--canvas);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.75rem;padding:1rem 1.1rem;display:flex}.lesson-link-card-host{color:var(--brand);margin:0;font-size:.75rem;font-weight:700}.lesson-link-card-title{margin:.2rem 0 0;font-size:.9375rem;font-weight:700}.lesson-link-card-url{color:var(--muted);word-break:break-all;margin:.2rem 0 0;font-size:.75rem}.lesson-link-card-actions{flex-wrap:wrap;gap:.4rem;display:flex}.lesson-link-frame{background:var(--canvas);border:0;flex:1;width:100%;min-height:28rem;display:block}.lesson-link-embed{background:var(--canvas);flex-direction:column;width:100%;height:100%;min-height:480px;display:flex}.lesson-link-embed-bar{background:var(--surface-soft);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:.3rem .6rem;font-size:.75rem;display:flex}.lesson-link-embed-host{color:var(--charcoal);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.lesson-link-embed-pop{background:var(--primary,var(--primary));color:var(--canvas);border-radius:6px;flex-shrink:0;padding:.25rem .6rem;font-size:.6875rem;font-weight:700;text-decoration:none}.lesson-pager{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem;display:grid}.lesson-pager-btn{background:var(--card);border:1px solid var(--border);text-align:left;cursor:pointer;border-radius:12px;flex-direction:column;gap:.2rem;padding:.85rem 1rem;transition:border-color .15s,box-shadow .15s;display:flex}.lesson-pager-btn:hover{border-color:var(--primary);box-shadow:0 4px 12px #2563eb14}.lesson-pager-btn--next{text-align:right}.lesson-pager-dir{color:var(--brand);font-size:.75rem;font-weight:700}.lesson-pager-name{white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.lesson-restore-pin{background:linear-gradient(135deg,var(--attention-soft) 0,var(--attention-soft) 100%);border:0;border-bottom:1px solid var(--attention);width:100%;color:var(--attention-ink);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:.45rem;margin:0;padding:.45rem .85rem;font-size:.8125rem;font-weight:600;transition:background .13s;display:inline-flex}.lesson-restore-pin:hover{background:linear-gradient(135deg,var(--attention-soft) 0,var(--attention) 100%)}.lesson-pager--top{background:var(--card,var(--canvas));border-bottom:1px solid var(--border,var(--hairline-soft));flex-shrink:0;align-items:stretch;gap:0;margin:0;padding:0;display:flex}.lesson-pager--top .lesson-pager-btn{min-width:0;box-shadow:none;background:0 0;border:0;border-radius:0;flex-direction:row;flex:1;align-items:center;gap:.4rem;padding:.35rem .75rem;font-size:.8125rem}.lesson-pager--top .lesson-pager-btn:hover{box-shadow:none;background:var(--surface-soft);border-color:#0000}.lesson-pager--top .lesson-pager-btn--next{border-left:1px solid var(--border,var(--hairline-soft));justify-content:flex-end}.lesson-pager--top .lesson-pager-dir{color:var(--muted-foreground,var(--slate));flex-shrink:0;font-size:.875rem;font-weight:700}.lesson-pager--top .lesson-pager-name{color:var(--charcoal);min-width:0;font-size:.8125rem;font-weight:500}.lesson-add-drawer{background:var(--card);border:1px solid var(--border);z-index:60;border-radius:16px;width:min(28rem,100vw - 2rem);max-height:calc(100vh - 4rem);padding:1rem;position:fixed;bottom:1rem;right:1rem;overflow:auto;box-shadow:0 20px 50px #0f172a38}.lesson-add-drawer-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.lesson-add-drawer-title{margin:0;font-size:1rem;font-weight:800}.lesson-add-drawer-close{border:1px solid var(--border);background:var(--card);width:1.75rem;height:1.75rem;color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:.875rem;display:inline-flex}.lesson-add-drawer-close:hover{background:var(--surface-soft);color:var(--critical-strong)}.teacher-hero{background:var(--card);color:var(--fg);border:1px solid var(--border);border-radius:16px;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:1.25rem;padding:2rem;display:flex;position:relative;overflow:hidden}.teacher-hero:before{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(60% 60% at 100% 0,#fbbf241a 0,#0000 65%),radial-gradient(50% 60% at 0 100%,#f59e0b0d 0,#0000 70%);position:absolute;inset:0}.teacher-hero-text{z-index:1;position:relative}.teacher-hero-eyebrow{letter-spacing:-.005em;color:var(--muted);margin:0;font-size:.8125rem;font-weight:500}.teacher-hero-title{letter-spacing:-.035em;color:var(--fg);margin:.5rem 0 0;font-size:2.25rem;font-weight:600;line-height:1.1}.teacher-hero-desc{color:var(--muted);max-width:42rem;margin:.6rem 0 0;font-size:1rem;line-height:1.55}.teacher-hero-quick-links{flex-wrap:wrap;gap:.45rem;margin-top:1.1rem;display:flex}.teacher-hero-quick-link{border:1px solid var(--border-strong);color:var(--fg);letter-spacing:-.005em;background:0 0;border-radius:6px;padding:.5rem .95rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:opacity .13s,background .13s}.teacher-hero-quick-link:hover{background:var(--hover);opacity:.95}.teacher-hero-quick-link--primary{background:var(--ink-deep);color:var(--canvas);border-color:var(--ink-deep);cursor:pointer;font:inherit;letter-spacing:-.005em;font-size:.875rem;font-weight:700;box-shadow:0 2px 6px #11182733}.teacher-hero-quick-link--primary:hover{background:var(--ink);color:var(--canvas);opacity:1;box-shadow:0 4px 12px #11182747}.wizard-body{flex-direction:column;gap:1rem;display:flex}.wizard-steps{grid-template-columns:repeat(4,1fr);gap:6px;margin:0 0 .5rem;padding:0;list-style:none;display:grid}.wizard-step{background:var(--surface-soft);color:var(--slate);border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;font-size:12px;transition:background .12s,color .12s;display:flex}.wizard-step--done{background:var(--success-soft);color:var(--success-ink)}.wizard-step--active{background:var(--primary-soft);color:var(--primary-deep);font-weight:600}.wizard-step-num{background:var(--canvas);border:1px solid;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:inline-flex}.wizard-step-label{font-size:11px}.wizard-section{flex-direction:column;gap:.75rem;display:flex}.wizard-hint{color:var(--slate);margin:0;font-size:.78rem;line-height:1.5}.wizard-empty{text-align:center;color:var(--steel);background:var(--surface-soft);border:1px dashed var(--hairline-soft);border-radius:10px;margin:0;padding:1rem;font-size:.85rem}.wizard-file-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.wizard-file-list{flex-direction:column;gap:6px;max-height:280px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.wizard-file-item{border:1px solid var(--hairline-soft);background:var(--canvas);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.wizard-file-icon{flex-shrink:0;font-size:1.2rem}.wizard-file-meta{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.wizard-file-name{color:var(--ink-deep);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.wizard-file-sub{color:var(--slate);font-size:.7rem}.wizard-file-unit{border:1px solid var(--hairline-soft);background:var(--surface-soft);border-radius:6px;flex-shrink:0;max-width:150px;padding:4px 6px;font-size:.78rem}.wizard-file-remove{width:26px;height:26px;color:var(--steel);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;font-size:1.1rem}.wizard-file-remove:hover{background:var(--critical-soft);color:var(--critical-strong)}.wizard-summary{border:1px solid var(--hairline-soft);border-radius:10px;flex-direction:column;gap:0;margin:0;display:flex;overflow:hidden}.wizard-summary>div{border-bottom:1px solid var(--surface-soft);grid-template-columns:100px 1fr;gap:12px;padding:10px 14px;display:grid}.wizard-summary>div:last-child{border-bottom:none}.wizard-summary dt{color:var(--slate);margin:0;font-size:.78rem;font-weight:600}.wizard-summary dd{color:var(--ink-deep);margin:0;font-size:.875rem}.wizard-progress{color:var(--primary-deep);background:var(--primary-soft)}.wizard-error,.wizard-progress{border-radius:8px;margin:0;padding:8px 12px;font-size:.85rem}.wizard-error{color:var(--critical-strong);background:var(--critical-soft)}.wizard-footer{border-top:1px solid var(--surface-soft);justify-content:flex-end;gap:8px;margin-top:.5rem;padding:12px 0 4px;display:flex}.teacher-hero-art{z-index:1;opacity:.35;pointer-events:none;-webkit-user-select:none;user-select:none;flex-shrink:0;align-self:flex-end;margin-bottom:-.25rem;font-size:2.75rem;position:relative}@media (max-width:960px){.teacher-hero-art{display:none}}@media (max-width:640px){.teacher-hero{padding:1.25rem}.teacher-hero-title{font-size:1.3rem}}.teacher-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}@media (min-width:768px){.teacher-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.teacher-stat-card{background:var(--card);border:1px solid var(--border);border-radius:14px;align-items:center;gap:.75rem;padding:.9rem 1rem;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.teacher-stat-card:hover{border-color:var(--accent-lab-soft);transform:translateY(-2px);box-shadow:0 10px 26px #4f46e51a}.teacher-stat-card--accent{background:linear-gradient(135deg,var(--accent-lab-soft) 0,var(--accent-lab-soft) 100%);border-color:var(--accent-lab-soft)}.teacher-stat-card-icon{background:var(--accent-lab-soft);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.25rem;display:inline-flex}.teacher-stat-card-value{letter-spacing:-.02em;font-size:1.4rem;font-weight:800;line-height:1;display:block}.teacher-stat-card-label{color:var(--muted);margin-top:.2rem;font-size:.75rem;font-weight:600;display:block}.teacher-class-grid-v2{margin-top:.25rem}.teacher-class-card-actions-v2{gap:.4rem;margin-top:auto;display:flex}.teacher-class-card-actions-v2 .btn{flex:0 auto}.teacher-class-card-actions-v2 .flex-1{flex:1;justify-content:center}.dashboard-hero-v2{border-bottom:1px solid var(--border,var(--hairline-soft));flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:.85rem 0 1rem;display:flex}.dashboard-hero-v2-text{flex:1;min-width:0}.dashboard-hero-v2-title{letter-spacing:-.01em;margin:0;font-size:1.375rem;font-weight:800;line-height:1.25}.dashboard-hero-v2-greet{color:var(--slate);font-weight:500}.dashboard-hero-v2-sub{color:var(--slate);margin:.2rem 0 0;font-size:.875rem}.dashboard-hero-v2-actions{flex-shrink:0;gap:.5rem;display:flex}.dashboard-hero{background:radial-gradient(120% 100% at 0 0,var(--accent-lab-soft) 0,transparent 55%),radial-gradient(120% 100% at 100% 100%,var(--accent-lab-soft) 0,transparent 55%),linear-gradient(180deg,var(--canvas) 0,var(--surface-soft) 100%);border:1px solid var(--hairline-soft);border-radius:18px;flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding:1.1rem 1.25rem;box-shadow:0 1px 2px #0f172a0a}.dashboard-hero-avatar{width:3rem;height:3rem;color:var(--canvas);background:linear-gradient(135deg,var(--accent-lab) 0,var(--primary) 100%);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.25rem;font-weight:800;display:inline-flex;box-shadow:0 4px 14px -4px #6366f18c}.dashboard-hero-text{flex:auto;min-width:0}.dashboard-hero-greet{color:var(--slate);letter-spacing:-.005em;margin:0;font-size:.8125rem;font-weight:600}.dashboard-hero-title{letter-spacing:-.015em;color:var(--ink-deep);flex-wrap:wrap;align-items:center;gap:.5rem;margin:.1rem 0 0;font-size:1.375rem;font-weight:800;line-height:1.25;display:flex}.dashboard-hero-chip{letter-spacing:-.005em;border-radius:999px;padding:2px 8px;font-size:.6875rem;font-weight:700}.dashboard-hero-chip--teacher{background:var(--attention-soft);color:var(--attention-ink);border:1px solid var(--attention-soft)}.dashboard-hero-chip--student{background:var(--primary-soft);color:var(--primary-deep);border:1px solid var(--primary-soft)}.dashboard-hero-sub{color:var(--slate);margin:.3rem 0 0;font-size:.8125rem}.dashboard-hero-actions{flex-shrink:0;gap:.5rem}.dashboard-stat-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-bottom:1.5rem;display:grid}@media (min-width:640px){.dashboard-stat-strip{grid-template-columns:repeat(4,minmax(0,1fr))}}.dashboard-stat-pill{border:1px solid var(--hairline-soft);color:inherit;background:#fff;border-radius:14px;align-items:center;gap:.7rem;padding:.75rem .9rem;text-decoration:none;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex}.dashboard-stat-pill:not(.dashboard-stat-pill--static):hover{border-color:var(--accent-lab-soft);transform:translateY(-1px);box-shadow:0 4px 14px -6px #6366f140}.dashboard-stat-pill--static{cursor:default}.dashboard-stat-pill-icon{background:linear-gradient(135deg,var(--surface-soft) 0,var(--hairline-soft) 100%);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:1.05rem;display:inline-flex}.dashboard-stat-pill-body{flex-direction:column;gap:.1rem;min-width:0;display:flex}.dashboard-stat-pill-value{color:var(--ink-deep);letter-spacing:-.02em;font-size:1.375rem;font-weight:800;line-height:1}.dashboard-stat-pill-value.is-attention{color:var(--critical-strong)}.dashboard-stat-pill-label{color:var(--slate);letter-spacing:-.005em;font-size:.6875rem;font-weight:600}.instant-create-error{color:var(--critical-strong);margin-left:.5rem;font-size:.75rem}.dashboard-todos{margin-bottom:1.5rem}.dashboard-section-meta{color:var(--steel);font-size:.75rem;font-weight:600}.dashboard-todo-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:.65rem;display:grid}.dashboard-todo-card{background:linear-gradient(135deg,var(--primary-soft) 0,var(--primary-soft) 100%);border:1px solid var(--primary-soft);color:inherit;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:.75rem;padding:.85rem 1rem;text-decoration:none;transition:transform .12s,box-shadow .12s,border-color .12s;display:grid;position:relative;overflow:hidden}.dashboard-todo-card:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 4px 14px #2563eb14}.dashboard-todo-card--urgent{background:linear-gradient(135deg,var(--critical-soft) 0,#fff1f2 100%);border-color:var(--critical-soft)}.dashboard-todo-card--urgent:before{content:"급함";color:var(--canvas);background:var(--critical);border-radius:999px;padding:1px 6px;font-size:.625rem;font-weight:800;position:absolute;top:.4rem;right:.5rem}.dashboard-todo-card--resume{background:linear-gradient(135deg,var(--success-soft) 0,var(--primary-soft) 100%);border-color:var(--success)}.dashboard-todo-card--grading{background:linear-gradient(135deg,#fefce8 0,var(--attention-soft) 100%);border-color:var(--attention)}.dashboard-todo-card--draft,.dashboard-todo-card--first-class,.dashboard-todo-card--first-project{background:linear-gradient(135deg,var(--accent-lab-soft) 0,#fdf4ff 100%);border-color:#d8b4fe}.dashboard-todo-icon{background:#ffffffbf;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.5rem;display:inline-flex}.dashboard-todo-body{min-width:0}.dashboard-todo-title{color:var(--ink-deep);margin:0;font-size:.9375rem;font-weight:700}.dashboard-todo-desc,.dashboard-todo-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dashboard-todo-desc{color:var(--charcoal);margin:.15rem 0 0;font-size:.75rem}.dashboard-todo-cta{color:var(--primary);white-space:nowrap;font-size:.75rem;font-weight:700}.dashboard-todo-card--urgent .dashboard-todo-cta{color:var(--critical-strong)}.dashboard-todo-card--resume .dashboard-todo-cta{color:var(--success-ink)}.dashboard-todo-card--grading .dashboard-todo-cta{color:var(--attention-ink)}.dashboard-recent-projects{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.65rem;display:grid}.dashboard-recent-project{background:var(--card,var(--canvas));border:1px solid var(--border,var(--hairline-soft));color:inherit;border-radius:12px;align-items:center;gap:.6rem;padding:.7rem .85rem;text-decoration:none;transition:border-color .12s,box-shadow .12s;display:flex}.dashboard-recent-project:hover{border-color:var(--primary);box-shadow:0 2px 8px #0f172a0d}.dashboard-recent-project-icon{width:2.2rem;height:2.2rem;color:var(--canvas);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;display:inline-flex}.dashboard-recent-project-body{flex:1;min-width:0}.dashboard-recent-project-title{color:var(--ink-deep);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.875rem;font-weight:600;overflow:hidden}.dashboard-recent-project-meta{color:var(--slate);margin:.1rem 0 0;font-size:.6875rem}.dashboard-stack{flex-direction:column;gap:2.5rem;display:flex}.dashboard-stack>*,.dashboard-stack>.dashboard-section{margin-top:0;margin-bottom:0}.dashboard-section{margin-bottom:0}.dashboard-section--secondary .dashboard-section-title{color:var(--charcoal);font-size:.9375rem}.dashboard-link-row{background:var(--card,var(--canvas));border:1px solid var(--border,var(--hairline-soft));color:inherit;border-radius:10px;align-items:center;gap:.75rem;padding:.75rem 1rem;text-decoration:none;transition:border-color .12s,background .12s;display:flex}.dashboard-link-row:hover{border-color:var(--hairline);background:var(--surface-soft)}.dashboard-link-icon{flex-shrink:0;font-size:1.25rem}.dashboard-link-title{margin:0;font-size:.875rem;font-weight:700}.dashboard-link-desc{color:var(--slate);margin:.1rem 0 0;font-size:.75rem}.dashboard-link-arrow{color:var(--steel);margin-left:auto}.dashboard-hero{background:var(--card);color:var(--fg);border:1px solid var(--border);border-radius:16px;justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:1.25rem;padding:2rem;display:flex;position:relative;overflow:hidden}.dashboard-hero:before{content:"";border-radius:inherit;pointer-events:none;background:radial-gradient(60% 60% at 100% 0,#fbbf2414 0,#0000 70%),radial-gradient(50% 50% at 0 100%,#ec48990d 0,#0000 70%);position:absolute;inset:0}.dashboard-hero-text{z-index:1;position:relative}.dashboard-hero-eyebrow{letter-spacing:-.005em;color:var(--muted);margin:0;font-size:.8125rem;font-weight:500}.dashboard-hero-title{letter-spacing:-.035em;color:var(--fg);margin:.5rem 0 0;font-size:2.25rem;font-weight:600;line-height:1.1}.dashboard-hero-desc{color:var(--muted);max-width:42rem;margin:.6rem 0 0;font-size:1rem;line-height:1.55}.dashboard-hero-actions{flex-wrap:wrap;gap:.45rem;margin-top:1.1rem;display:flex}.dashboard-hero-cta{border:1px solid var(--border-strong);color:var(--fg);letter-spacing:-.005em;background:0 0;border-radius:6px;padding:.5rem .95rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:opacity .13s,background .13s}.dashboard-hero-cta:hover{background:var(--hover);opacity:.95}.dashboard-hero-cta--primary{background:var(--fg);color:var(--on-brand);box-shadow:var(--shadow-inset);border-color:#0000}.dashboard-hero-cta--primary:hover{background:var(--brand-dark);color:var(--on-brand);opacity:.95}.dashboard-hero-art{z-index:1;opacity:.35;pointer-events:none;-webkit-user-select:none;user-select:none;flex-shrink:0;align-self:flex-end;margin-bottom:-.25rem;font-size:2.75rem;position:relative}@media (max-width:960px){.dashboard-hero-art{display:none}}@media (max-width:640px){.dashboard-hero{padding:1.25rem}.dashboard-hero-title{font-size:1.25rem}}.dashboard-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin-bottom:1.25rem;display:grid}@media (min-width:768px){.dashboard-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.dashboard-stat-card{background:var(--card);border:1px solid var(--border);color:inherit;border-radius:14px;align-items:center;gap:.75rem;padding:.85rem 1rem;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.dashboard-stat-card:hover{border-color:var(--accent-lab-soft);transform:translateY(-2px);box-shadow:0 10px 24px #4f46e51a}.dashboard-stat-card--accent{background:linear-gradient(135deg,var(--success-soft) 0,var(--primary-soft) 100%);border-color:#99f6e4}.dashboard-stat-icon{background:var(--accent-lab-soft);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.25rem;display:inline-flex}.dashboard-stat-card--accent .dashboard-stat-icon{background:var(--success-soft)}.dashboard-stat-value{letter-spacing:-.02em;font-size:1.4rem;font-weight:800;line-height:1;display:block}.dashboard-stat-label{color:var(--muted);margin-top:.2rem;font-size:.75rem;font-weight:600;display:block}.dashboard-item-icon--gradient{background:linear-gradient(135deg,var(--accent-lab) 0,var(--accent-lab) 100%);box-shadow:0 2px 6px #0f172a1f;color:var(--canvas)!important}.dashboard-item-icon--class,.dashboard-item-icon--gradient{border-radius:10px!important;justify-content:center!important;align-items:center!important;width:2.25rem!important;height:2.25rem!important;font-size:1.05rem!important;display:inline-flex!important}.dashboard-item-icon--class{background:linear-gradient(135deg,var(--attention-soft) 0,var(--attention) 100%);color:var(--attention-ink)!important}.dashboard-featured{margin-top:1.75rem}.dashboard-featured-card{background:var(--card);border:1px solid var(--border);color:inherit;border-radius:14px;flex-direction:column;gap:.45rem;padding:1rem 1.1rem 1.1rem;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.dashboard-featured-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 10px 26px #2563eb1a}.dashboard-featured-chip{background:var(--accent-lab-soft);color:var(--accent-lab);letter-spacing:.02em;border-radius:6px;align-self:flex-start;padding:.22rem .55rem;font-size:.6875rem;font-weight:700}.dashboard-featured-title{letter-spacing:-.01em;margin:0;font-size:1rem;font-weight:800;line-height:1.3}.dashboard-featured-summary{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.8125rem;line-height:1.5;display:-webkit-box;overflow:hidden}.dashboard-featured-cta{color:var(--brand);margin-top:auto;font-size:.8125rem;font-weight:700}.dashboard-classes{margin-top:1.75rem}.dashboard-class-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.85rem;margin-top:.85rem;display:grid}.dashboard-class-card{background:var(--card);border:1px solid var(--border);color:inherit;border-radius:14px;flex-direction:column;gap:.55rem;padding:1rem 1.15rem 1.1rem;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;position:relative;overflow:hidden}.dashboard-class-card:before{content:"";background:linear-gradient(90deg,var(--accent-lab),var(--primary));opacity:.7;height:3px;position:absolute;top:0;left:0;right:0}.dashboard-class-card:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:0 10px 26px #2563eb1f}.dashboard-class-card-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.dashboard-class-icon{font-size:1.4rem;line-height:1}.dashboard-class-role{border-radius:var(--r-full);padding:3px 9px;font-size:12px;font-weight:700;line-height:1.33}.dashboard-class-role--teacher{background:var(--accent-lab-soft);color:var(--accent-lab)}.dashboard-class-role--student{background:var(--primary-soft);color:var(--primary-deep)}.dashboard-class-name{letter-spacing:-.01em;color:var(--fg);margin:0;font-size:1.0625rem;font-weight:800;line-height:1.3}.dashboard-class-desc{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.8125rem;line-height:1.45;display:-webkit-box;overflow:hidden}.dashboard-class-stats{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:.75rem;margin-top:.25rem;font-size:.8125rem;display:flex}.dashboard-class-footer{border-top:1px dashed var(--border);margin-top:auto;padding-top:.6rem}.dashboard-class-invite{color:var(--muted);font-size:.7rem}.dashboard-class-invite code{background:var(--surface-soft);color:var(--charcoal);letter-spacing:.06em;border-radius:4px;padding:.1rem .4rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;font-weight:700}.dashboard-courseware-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.dashboard-courseware-card{background:var(--card);border:1px solid var(--border);color:inherit;border-radius:12px;align-items:stretch;gap:.85rem;padding:.6rem;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex;overflow:hidden}.dashboard-courseware-card:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 6px 20px #2563eb1a}.dashboard-courseware-thumb{background:linear-gradient(135deg,var(--accent-lab-soft) 0,var(--primary-soft) 100%);background-position:50%;background-size:cover;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:84px;height:84px;display:flex}.dashboard-courseware-thumb-fallback{opacity:.6;font-size:1.6rem}.dashboard-courseware-body{flex-direction:column;flex:1;justify-content:center;gap:.3rem;min-width:0;display:flex}.dashboard-courseware-chip{background:var(--accent-lab-soft);color:var(--accent-lab);letter-spacing:.02em;border-radius:6px;align-self:flex-start;padding:.15rem .5rem;font-size:.65rem;font-weight:700}.dashboard-courseware-title{letter-spacing:-.01em;color:var(--fg);-webkit-line-clamp:1;font-size:.9375rem;font-weight:700;line-height:1.3}.dashboard-courseware-summary,.dashboard-courseware-title{-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.dashboard-courseware-summary{color:var(--muted);-webkit-line-clamp:2;font-size:.75rem;line-height:1.4}.ann-board{border:1px solid var(--border);background:var(--card);border-radius:12px;flex-direction:column;gap:6px;margin:1rem 0 0;padding:0;list-style:none;display:flex;overflow:hidden}.ann-row{border-bottom:1px solid var(--border);transition:background .12s}.ann-row:last-child{border-bottom:none}.ann-row:hover{background:var(--surface-soft)}.ann-row--pinned,.ann-row--pinned:hover{background:var(--attention-soft)}.ann-row-link{color:inherit;flex-direction:column;gap:4px;padding:12px 16px;text-decoration:none;display:flex}.ann-row-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ann-pin{font-size:14px}.ann-title{color:var(--ink-deep);font-size:.9375rem;font-weight:600}.ann-row--unread .ann-title{font-weight:700}.ann-unread-dot{background:var(--critical);border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.ann-row-meta{color:var(--slate);align-items:center;gap:6px;font-size:.75rem;display:flex}.ann-chip{letter-spacing:.02em;border-radius:6px;flex-shrink:0;align-items:center;gap:4px;padding:.18rem .5rem;font-size:.7rem;font-weight:700;display:inline-flex}.ann-chip--info{background:var(--primary-soft);color:var(--primary-deep)}.ann-chip--event{background:var(--accent-lab-soft);color:var(--accent-lab)}.ann-chip--warn{background:var(--attention-soft);color:var(--attention-ink)}.ann-chip--update{background:var(--success-soft);color:var(--success-ink)}.ann-chip--pinned{background:var(--attention-soft);color:var(--attention-ink)}.ann-detail{background:var(--card);border:1px solid var(--border);border-radius:14px;margin-top:1rem;padding:1.5rem 1.75rem}.ann-detail-head{border-bottom:1px solid var(--border);flex-direction:column;gap:.5rem;margin-bottom:1rem;padding-bottom:1rem;display:flex}.ann-detail-chips{gap:6px;display:flex}.ann-detail-title{color:var(--ink-deep);letter-spacing:-.015em;margin:0;font-size:1.5rem;font-weight:800;line-height:1.3}.ann-detail-meta{color:var(--slate);flex-wrap:wrap;align-items:center;gap:8px;font-size:.8125rem;display:flex}.ann-detail-expires{color:var(--attention-ink)}.ann-detail-body{color:var(--ink);font-size:.9375rem;line-height:1.7}.ann-detail-body p{white-space:pre-wrap;margin:0 0 .5rem}.board-chip--news{background:var(--primary-soft);color:var(--primary-deep)}.board-chip--video{background:var(--critical-soft);color:var(--critical-strong)}.board-chip--resource{background:var(--accent-lab-soft);color:var(--accent-lab)}.board-chip--qna{background:var(--success-soft);color:var(--success-ink)}.board-filter{flex-wrap:wrap;gap:6px;margin-top:1rem;display:flex}.board-filter-chip{border:1px solid var(--border);background:var(--card);color:var(--charcoal);border-radius:999px;align-items:center;gap:4px;padding:.35rem .8rem;font-size:.8125rem;font-weight:600;text-decoration:none;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.board-filter-chip:hover{background:var(--surface-soft)}.board-filter-chip--active{border-color:var(--primary-deep);color:var(--canvas)}.board-filter-chip--active,.board-filter-chip--active:hover{background:var(--primary-deep)}.board-public{background:var(--bg,var(--surface-soft));min-height:100vh}.board-public-main{padding-top:1.5rem;padding-bottom:4rem}.board-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:1rem;display:flex}.board-toolbar .board-filter{margin-top:0}.board-search{flex:1;gap:6px;min-width:220px;max-width:340px;margin-left:auto;display:flex}.board-search-input{flex:1}.board-search-summary{color:var(--charcoal);align-items:center;gap:8px;margin:.75rem 0 0;font-size:.8125rem;display:flex}.board-search-clear{color:var(--primary-deep);font-weight:600;text-decoration:none}.board-search-clear:hover{text-decoration:underline}.board-list{border:1px solid var(--border);background:var(--card);border-radius:12px;flex-direction:column;margin:1rem 0 0;padding:0;list-style:none;display:flex;overflow:hidden}.board-card{border-bottom:1px solid var(--border);transition:background .12s}.board-card:last-child{border-bottom:none}.board-card:hover{background:var(--surface-soft)}.board-card--pinned,.board-card--pinned:hover{background:var(--attention-soft)}.board-card-link{color:inherit;align-items:center;gap:14px;padding:12px 16px;text-decoration:none;display:flex}.board-thumb{aspect-ratio:16/9;background:var(--surface-soft);border-radius:8px;flex-shrink:0;width:128px;position:relative;overflow:hidden}.board-thumb-play{color:var(--canvas);text-shadow:0 1px 3px #0009;background:#00000040;font-size:1.1rem;position:absolute;inset:0}.board-thumb--placeholder,.board-thumb-play{justify-content:center;align-items:center;display:flex}.board-thumb--placeholder{font-size:1.75rem}.board-thumb--news{background:linear-gradient(135deg,var(--primary-soft),var(--primary-soft))}.board-thumb--video{background:linear-gradient(135deg,var(--critical-soft),var(--critical-soft))}.board-thumb--resource{background:linear-gradient(135deg,var(--accent-lab-soft),var(--accent-lab-soft))}.board-thumb--qna{background:linear-gradient(135deg,var(--success-soft),var(--success-soft))}.board-card-main{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.board-card-excerpt{color:var(--slate);text-overflow:ellipsis;-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:.8125rem;display:-webkit-box;overflow:hidden}.board-card-author{color:var(--charcoal)}@media (max-width:560px){.board-thumb{width:96px}.board-card-excerpt{display:none}}.board-embed{aspect-ratio:16/9;background:#000;border-radius:10px;width:100%;margin:0 0 1rem;position:relative;overflow:hidden}.board-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.board-embed--preview{max-width:480px}.board-link-card{border:1px solid var(--border);background:var(--surface-soft);overflow-wrap:anywhere;border-radius:10px;margin:0 0 1rem;padding:.6rem .9rem;font-size:.875rem}.board-link-card a{color:var(--primary-deep);text-decoration:none}.board-link-card a:hover{text-decoration:underline}.board-actions{flex-wrap:wrap;gap:6px;margin-top:.25rem;display:flex}.ann-composer,.ann-composer-closed{margin-top:1rem}.ann-composer{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;padding:1rem 1.1rem 1.1rem;display:flex}.ann-composer-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.ann-composer-types{flex-wrap:wrap;gap:6px;display:flex}.ann-composer-type{border:1px solid var(--hairline-soft);color:var(--charcoal);cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--canvas);border-radius:999px;align-items:center;gap:4px;padding:4px 10px;font-size:.78rem;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.ann-composer-type input{display:none}.ann-composer-type:hover{background:var(--surface-soft)}.ann-composer-type--active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-deep);font-weight:600}.ann-composer-pin{color:var(--charcoal);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:.8rem;display:inline-flex}.ann-composer-body,.ann-composer-title{border:1px solid var(--hairline-soft);width:100%;font:inherit;color:var(--ink-deep);background:var(--canvas);box-sizing:border-box;border-radius:8px;outline:none;padding:8px 12px;font-size:.9rem;transition:border-color .12s,box-shadow .12s}.ann-composer-title{font-size:1rem;font-weight:600}.ann-composer-body{resize:vertical;line-height:1.5}.ann-composer-body:focus,.ann-composer-title:focus{border-color:var(--primary);box-shadow:0 0 0 3px #3b82f626}.ann-composer-actions{justify-content:flex-end;gap:8px;display:flex}.ai-quota-form{flex-direction:column;gap:14px;display:flex}.ai-quota-usage{background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:10px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;padding:12px 14px;display:grid}.ai-quota-usage>div{flex-direction:column;gap:2px;display:flex}.ai-quota-usage-label{color:var(--slate);font-size:.7rem;font-weight:600}.ai-quota-usage strong{color:var(--ink-deep);font-size:.95rem}.ai-quota-usage-sub{color:var(--steel);font-size:.7rem}.ai-quota-hint{color:var(--primary-deep);background:var(--primary-soft);border-radius:8px;margin:0;padding:8px 12px;font-size:.78rem;line-height:1.5}.ai-quota-presets{flex-wrap:wrap;gap:6px;display:flex}.ai-quota-preset-btn{border:1px solid var(--hairline-soft);background:var(--canvas);color:var(--charcoal);cursor:pointer;border-radius:999px;padding:4px 12px;font-size:.78rem;transition:background .12s,border-color .12s}.ai-quota-preset-btn:hover{background:var(--accent-lab-soft);border-color:var(--accent-lab-soft);color:var(--accent-lab)}.ai-quota-row{border-bottom:1px dashed var(--surface-soft);grid-template-columns:130px auto 1fr;align-items:center;gap:10px;padding:6px 0;display:grid}.ai-quota-row:last-of-type{border-bottom:none}.ai-quota-row-label{color:var(--charcoal);font-size:.8125rem;font-weight:600}.ai-quota-input{border:1px solid var(--hairline-soft);width:130px;font:inherit;text-align:right;font-variant-numeric:tabular-nums;border-radius:6px;padding:5px 8px;font-size:.85rem}.ai-quota-input:disabled{background:var(--surface-soft);color:var(--steel)}.ai-quota-row-hint{color:var(--steel);font-size:.72rem}.ai-quota-actions{border-top:1px solid var(--surface-soft);align-items:center;margin-top:4px;padding-top:12px;display:flex}.projects-folder-bar{margin:0 0 .7rem}.projects-folder-tabs{flex-wrap:wrap;gap:.4rem;display:flex}.projects-folder-tab-wrap{background:var(--canvas);border:1px solid var(--hairline);border-radius:var(--r-full);align-items:center;gap:.2rem;padding:.08rem;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.projects-folder-tab-wrap--active{background:var(--ink-deep);box-shadow:var(--elev-1);border-color:#0000}.projects-folder-tab{border-radius:var(--r-full);letter-spacing:-.14px;color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:.4rem;padding:.3rem .65rem;font-size:14px;font-weight:700;line-height:1.43;transition:background .15s,color .15s;display:inline-flex}.projects-folder-tab:hover{background:var(--hover);color:var(--ink-deep)}.projects-folder-tab--active,.projects-folder-tab--active:hover{color:var(--canvas);background:0 0}.projects-folder-tab-icon{font-size:.95rem;line-height:1}.projects-folder-tab-count{background:var(--surface-soft);color:var(--slate);border-radius:var(--r-full);text-align:center;min-width:1.25rem;padding:.05rem .45rem;font-size:12px;font-weight:700;line-height:1.33}.projects-folder-tab--active .projects-folder-tab-count{color:var(--canvas);background:#ffffff2e}.projects-folder-tab-menu{gap:.1rem;padding-right:.35rem;display:inline-flex}.projects-folder-tab-wrap--active .projects-folder-tab-menu>button{color:var(--canvas)}.projects-folder-tab-menu-btn{width:1.5rem;height:1.5rem;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;font-size:.75rem;display:inline-flex}.projects-folder-tab-menu-btn:hover{background:var(--accent-lab-soft);color:var(--brand)}.projects-folder-tab-menu-btn--danger:hover{background:var(--critical-soft);color:var(--critical-strong)}.projects-folder-tab--add{border:1px dashed var(--hairline);color:var(--slate);background:0 0}.projects-folder-tab--add:hover{background:var(--hover);color:var(--ink-deep)}.projects-select-bar{z-index:30;background:var(--fg);color:var(--on-brand);border-radius:999px;flex-wrap:wrap;align-items:center;gap:.75rem;width:fit-content;max-width:100%;margin:.5rem auto .85rem;padding:.6rem 1rem;display:flex;position:sticky;bottom:1rem;box-shadow:0 10px 28px #0f172a47}.projects-select-bar-count{font-size:.875rem;font-weight:500}.projects-select-bar-count strong{font-size:1rem;font-weight:600}.projects-select-bar-link{color:var(--on-brand);cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:6px;padding:.32rem .7rem;font-size:.8125rem;font-weight:500;transition:opacity .13s,background .13s}.projects-select-bar-link:hover{opacity:.95;background:#ffffff1f}.projects-select-bar-actions{gap:.4rem;margin-left:auto;display:flex}.projects-select-bar-actions .btn{background:var(--card-elevated);color:var(--fg);box-shadow:none;border-color:#0000}.projects-select-bar-actions .btn:hover:not(:disabled){background:var(--canvas);opacity:.95}.projects-select-bar-actions .btn-danger-outline{color:var(--critical-light);background:0 0;border:1px solid #fecaca99}.projects-select-bar-actions .btn-danger-outline:hover:not(:disabled){color:var(--critical-light);background:#fecaca1f}.projects-move-menu{display:inline-block;position:relative}.projects-move-menu-pop{background:var(--canvas);min-width:12rem;color:var(--ink-deep);border:1px solid var(--border);z-index:40;border-radius:10px;max-height:18rem;padding:.3rem;position:absolute;top:calc(100% + .35rem);right:0;overflow:auto;box-shadow:0 12px 30px #0f172a2e}.projects-move-menu-item{text-align:left;width:100%;color:var(--ink-deep);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:.4rem;padding:.45rem .6rem;font-size:.8125rem;font-weight:600;display:flex}.projects-move-menu-item:hover{background:var(--accent-lab-soft);color:var(--brand)}.projects-move-menu-divider{background:var(--border);height:1px;margin:.25rem 0}.projects-card-wrap{transition:transform .15s;position:relative}.projects-card-wrap--selected .project-card{outline:3px solid var(--accent-lab);outline-offset:2px;border-color:var(--accent-lab)}.projects-card-wrap--selectable{cursor:grab}.projects-card-wrap--selectable:active{cursor:grabbing}.projects-card-select-corner{z-index:10;cursor:pointer;opacity:0;background:0 0;border:0;padding:0;transition:opacity .15s;position:absolute;top:.5rem;left:.5rem}.projects-card-select-corner--on,.projects-card-select-corner:focus-visible,.projects-card-wrap:hover .projects-card-select-corner{opacity:1}.projects-card-corner-box{border:2px solid var(--canvas);width:1.7rem;height:1.7rem;color:var(--accent-lab);background:#ffffffeb;border-radius:8px;justify-content:center;align-items:center;font-size:1rem;font-weight:900;transition:background .15s,transform .1s;display:inline-flex;box-shadow:0 2px 6px #00000040}.projects-card-select-corner:hover .projects-card-corner-box{transform:scale(1.06)}.projects-card-select-corner--on .projects-card-corner-box{background:var(--accent-lab);color:var(--canvas)}.app-breadcrumb-home{border-radius:var(--r-lg);background:var(--surface-soft);width:1.85rem;height:1.85rem;color:var(--slate);flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;transition:background .13s,color .13s;display:inline-flex}.app-breadcrumb-home:hover{color:var(--ink-deep);background:var(--hover-strong)}.header-notif-wrap{position:relative}.header-notif-pop{background:var(--card);border:1px solid var(--border);z-index:50;border-radius:14px;width:min(22rem,100vw - 2rem);max-height:70vh;position:absolute;top:calc(100% + .5rem);right:0;overflow:auto;box-shadow:0 20px 48px #0f172a2e}.header-notif-head{border-bottom:1px solid var(--border);z-index:1;justify-content:space-between;align-items:center;padding:.85rem 1rem .65rem;top:0}.header-notif-foot,.header-notif-head{background:var(--card);display:flex;position:sticky}.header-notif-foot{border-top:1px solid var(--border);justify-content:center;padding:.45rem .75rem;bottom:0}.header-notif-foot .header-notif-link{text-decoration:none}.header-notif-title{margin:0;font-size:.95rem;font-weight:800}.header-notif-link{color:var(--brand);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.2rem .4rem;font-size:.75rem;font-weight:700}.header-notif-link:hover{background:var(--accent-lab-soft)}.header-notif-empty{text-align:center;color:var(--muted);margin:0;padding:1.5rem 1rem;font-size:.875rem}.header-notif-list{margin:0;padding:.25rem;list-style:none}.header-notif-item{cursor:pointer;color:inherit;border:1px solid #0000;border-radius:10px;padding:.7rem .85rem;text-decoration:none;transition:background .13s;display:block;position:relative}.header-notif-item:hover{background:var(--surface-soft);border-color:var(--border)}.header-notif-item:focus-visible{box-shadow:var(--shadow-focus);outline:none}.header-notif-item--read{opacity:.65}.header-notif-item--read:hover{opacity:1}.header-notif-class{color:var(--ink-deep);background:var(--surface-soft);border:1px solid var(--border);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;max-width:9rem;padding:.1rem .4rem;font-size:.6875rem;font-weight:700;overflow:hidden}.header-notif-item-head{align-items:center;gap:.4rem;margin-bottom:.3rem;display:flex}.header-notif-tag{letter-spacing:.02em;border-radius:6px;padding:.15rem .45rem;font-size:.6875rem;font-weight:700}.header-notif-tag--info{background:var(--primary-soft);color:var(--primary-deep)}.header-notif-tag--event{background:var(--accent-lab-soft);color:var(--accent-lab)}.header-notif-tag--warning{background:var(--critical-soft);color:var(--critical-strong)}.header-notif-tag--update{background:var(--success-soft);color:var(--success-ink)}.header-notif-pin{font-size:.85rem}.header-notif-dot{background:var(--critical);border-radius:50%;width:.55rem;height:.55rem;display:inline-block}.header-notif-time{color:var(--muted);margin-left:auto;font-size:.6875rem;font-weight:500}.header-notif-name{color:var(--ink-deep);margin:0;font-size:.875rem;font-weight:700;display:block}.header-notif-body{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.2rem 0 0;font-size:.8125rem;line-height:1.5;display:-webkit-box;overflow:hidden}.header-notif-author{color:var(--steel);margin:.3rem 0 0;font-size:.6875rem;font-weight:600;display:block}.header-user-wrap{position:relative}.header-user-trigger{border:1px solid var(--border-strong);cursor:pointer;background:0 0;border-radius:9999px;align-items:center;gap:.5rem;padding:.25rem .7rem .25rem .3rem;transition:opacity .13s,background .13s;display:flex}.header-user-trigger--open,.header-user-trigger:hover{background:var(--hover);opacity:.95}.header-user-chevron{color:var(--muted);margin-left:.15rem;font-size:.75rem}.header-user-pop{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);width:18rem;box-shadow:var(--elev-2),0 16px 40px #0a131724;z-index:50;padding:var(--sp-xs);position:absolute;top:calc(100% + .5rem);right:0;overflow:hidden}.header-user-pop-head{border-bottom:1px solid var(--hairline-soft);align-items:center;gap:.7rem;padding:.65rem .7rem .85rem;display:flex}.header-user-pop-avatar{background:linear-gradient(135deg,var(--primary),var(--accent-lab));width:2.5rem;height:2.5rem;color:var(--canvas);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:800;display:inline-flex}.header-user-pop-name{margin:0;font-size:.9375rem;font-weight:700}.header-user-pop-email{color:var(--muted);margin:.1rem 0 0;font-size:.75rem}.header-user-pop-role{background:var(--accent-lab-soft);color:var(--accent-lab);border-radius:var(--r-full);margin-top:.25rem;padding:2px 9px;font-size:12px;font-weight:700;line-height:1.33;display:inline-block}.header-user-pop-list{margin:.35rem 0;padding:0;list-style:none}.header-user-pop-item{letter-spacing:-.14px;width:100%;color:var(--charcoal);border-radius:var(--r-lg);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:.6rem;padding:.55rem .65rem;font-size:14px;font-weight:600;line-height:1.43;text-decoration:none;display:flex}.header-user-pop-item>svg{color:var(--steel);flex-shrink:0}.header-user-pop-item:hover{background:var(--surface-soft);color:var(--ink-deep)}.header-user-pop-item:hover>svg{color:var(--ink-deep)}.header-user-pop-item--danger,.header-user-pop-item--danger>svg{color:var(--critical-strong)}.header-user-pop-item--danger:hover{background:var(--critical-soft);color:var(--critical-strong)}.header-user-pop-divider{background:var(--hairline-soft);height:1px;margin:.3rem 0}.header-user-pop-logout{padding:.1rem}@media (max-width:640px){.header-user-trigger .app-user-meta{display:none}.app-sidebar-foot .header-user-trigger .app-user-meta{display:flex}}.profile-hero{background:var(--card);border:1px solid var(--border);border-radius:16px;align-items:center;gap:1.4rem;margin-bottom:1.25rem;padding:1.65rem 1.75rem;display:flex}.profile-hero-avatar{object-fit:cover;background:var(--card-elevated);border:1px solid var(--border);border-radius:9999px;flex-shrink:0;width:5.5rem;height:5.5rem}.profile-hero-avatar--fallback{background:var(--fg);color:var(--on-brand);border:0;justify-content:center;align-items:center;font-size:2.1rem;font-weight:600;display:inline-flex}.profile-hero-info{flex-direction:column;gap:.2rem;min-width:0;display:flex}.profile-hero-role{color:var(--muted);margin:0;font-size:.8125rem;font-weight:500}.profile-hero-name{letter-spacing:-.03em;color:var(--fg);margin:.15rem 0 0;font-size:1.85rem;font-weight:600}.profile-hero-email{color:var(--muted);margin:.25rem 0 0;font-size:.9375rem}.profile-hero-joined{color:var(--muted);margin:.45rem 0 0;font-size:.75rem}.profile-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-bottom:1.5rem;display:grid}@media (max-width:640px){.profile-stats-grid{grid-template-columns:1fr}}.profile-stat-card{background:var(--card);border:1px solid var(--border);border-radius:14px;align-items:center;gap:.75rem;padding:.9rem 1rem;display:flex}.profile-stat-icon{background:var(--accent-lab-soft);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.25rem;display:inline-flex}.profile-stat-value{letter-spacing:-.02em;font-size:1.4rem;font-weight:800;display:block}.profile-stat-label{color:var(--muted);margin-top:.15rem;font-size:.75rem;font-weight:600;display:block}.profile-edit-section{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1.25rem 1.5rem}.profile-edit-title{margin:0;font-size:1rem;font-weight:800}.profile-edit-desc{color:var(--muted);margin:.3rem 0 1rem;font-size:.8125rem}.profile-edit-form{flex-direction:column;gap:.75rem;display:flex}.profile-edit-hint{color:var(--muted);margin-top:.25rem;font-size:.75rem}.profile-edit-error{color:var(--critical-strong)}.profile-edit-error,.profile-edit-flash{margin:.4rem 0 0;font-size:.8125rem;font-weight:600}.profile-edit-flash{color:var(--success-ink)}.profile-edit-actions{gap:.5rem;margin-top:.5rem;display:flex}.announcement-admin-row{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1rem 1.1rem}.announcement-admin-head{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.announcement-admin-pin{background:var(--attention-soft);color:var(--attention-ink)}.announcement-admin-pin,.announcement-admin-tag-draft{border-radius:6px;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.announcement-admin-tag-draft{background:var(--hairline-soft);color:var(--charcoal)}.announcement-admin-meta{color:var(--muted);margin-left:auto;font-size:.75rem}.announcement-admin-title{margin:0;font-size:1rem;font-weight:700}.announcement-admin-body{color:var(--muted);white-space:pre-wrap;margin:.3rem 0 0;font-size:.875rem;line-height:1.5}.announcement-admin-expires{color:var(--critical-strong);margin:.4rem 0 0;font-size:.75rem;font-weight:600}.announcement-admin-actions{flex-wrap:wrap;gap:.4rem;margin-top:.7rem;display:flex}.class-hero-v2{background:var(--card);border:1px solid var(--border);color:var(--fg);border-radius:16px;flex-wrap:wrap;align-items:stretch;gap:1.25rem;margin:.5rem 0 1.5rem;padding:1.75rem 1.85rem;display:flex;position:relative}.class-hero-v2:before{content:"";border-radius:inherit;opacity:.06;pointer-events:none;position:absolute;inset:0;overflow:hidden}.class-hero-v2-mark{z-index:1;background:var(--fg);width:4.25rem;height:4.25rem;color:var(--on-brand);box-shadow:var(--shadow-inset);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.85rem;font-weight:600;display:inline-flex;position:relative}.class-hero-v2-mark--thumb{background:var(--surface-soft);overflow:hidden}.class-hero-v2-mark--thumb img{object-fit:cover;width:100%;height:100%}.class-hero-v2-body{z-index:1;flex:1;min-width:240px;position:relative}.class-hero-v2-chips{flex-wrap:wrap;gap:.35rem;margin-bottom:.45rem;display:flex}.class-hero-v2-chip{color:var(--fg);border:1px solid var(--border-strong);background:0 0;border-radius:9999px;padding:.22rem .65rem;font-size:.75rem;font-weight:500}.class-hero-v2-chip--owner{background:var(--fg);color:var(--on-brand);box-shadow:var(--shadow-inset);border-color:#0000}.class-hero-v2-title{letter-spacing:-.03em;color:var(--fg);margin:.25rem 0 0;font-size:2rem;font-weight:600;line-height:1.1}.class-hero-v2-meta{color:var(--muted);margin:.5rem 0 0;font-size:.9375rem}.class-hero-v2-desc{color:var(--muted);max-width:36rem;margin:.55rem 0 0;font-size:.9375rem;line-height:1.55}.class-hero-v2-actions{z-index:1;flex-direction:column;flex-shrink:0;justify-content:center;align-items:flex-end;gap:.5rem;display:flex;position:relative}.class-hero-v2-actions-danger,.class-hero-v2-actions-primary{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.class-hero-v2-actions-danger .btn,.class-hero-v2-actions-primary .btn,.class-hero-v2-actions-primary .quick-create-trigger{min-height:2.5rem;padding-block:.5rem;font-size:.875rem}.class-hero-v2-actions-primary .class-invite-btn{font-size:.8125rem}@media (max-width:720px){.class-hero-v2-actions{align-items:flex-start;width:100%}.class-hero-v2-actions-danger,.class-hero-v2-actions-primary{justify-content:flex-start}.class-hero-v2-title{font-size:1.4rem}}.class-next-action{background:linear-gradient(135deg,var(--accent-lab-soft) 0,var(--accent-lab-soft) 100%);border:1px solid var(--accent-lab-soft);border-radius:14px;align-items:center;gap:1rem;margin-bottom:1.25rem;padding:1rem 1.25rem;display:flex;position:relative;overflow:hidden}.class-next-action--continue{background:linear-gradient(135deg,var(--primary-soft) 0,var(--success-soft) 100%);border-color:var(--success)}.class-next-action--create-unit{background:linear-gradient(135deg,var(--attention-soft) 0,#fae8ff 100%);border-color:var(--attention)}.class-next-action-icon{background:#ffffffb3;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;font-size:2rem;display:inline-flex}.class-next-action-body{flex:1;min-width:0}.class-next-action-eyebrow{letter-spacing:.05em;color:var(--accent-lab);text-transform:uppercase;margin:0;font-size:.6875rem;font-weight:700}.class-next-action--continue .class-next-action-eyebrow{color:var(--success)}.class-next-action--create-unit .class-next-action-eyebrow{color:var(--attention-ink)}.class-next-action-title{margin:.2rem 0 0;font-size:1.0625rem;font-weight:700;line-height:1.3}.class-next-action-desc{color:var(--charcoal);max-width:50rem;margin:.35rem 0 0;font-size:.8125rem}.class-next-action-cta{flex-shrink:0}@media (max-width:720px){.class-next-action{text-align:left;flex-direction:column;align-items:stretch}.class-next-action-cta,.class-next-action-cta .btn{width:100%}}.class-tabs{border-bottom:1px solid var(--border,var(--hairline-soft));flex-wrap:wrap;align-items:center;gap:.25rem;margin-bottom:1.5rem;display:flex}.class-tab{color:var(--slate);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:.4rem;margin-bottom:-1px;padding:.65rem .9rem;font-size:.875rem;font-weight:600;transition:color .12s,border-color .12s;display:inline-flex}.class-tab:hover{color:var(--charcoal)}.class-tab.is-active{color:var(--primary-deep);border-bottom-color:var(--primary)}.class-tab-count{background:var(--hairline-soft);color:var(--charcoal);border-radius:999px;margin-left:.1rem;padding:1px 6px;font-size:.6875rem;font-weight:700}.class-tab.is-active .class-tab-count{background:var(--primary-soft);color:var(--primary-deep)}.class-tab-spacer{flex:1}.class-tab-secondary{color:var(--slate);border-radius:6px;padding:.4rem .6rem;font-size:.75rem;font-weight:600;text-decoration:none;transition:background .12s,color .12s}.class-tab-secondary:hover{background:var(--surface-soft);color:var(--ink-deep)}.class-tab--ops,.class-tab--ops.is-active,.class-tab--ops:hover{color:var(--attention-ink)}.class-tab--ops.is-active{border-bottom-color:var(--attention)}.class-ops-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:.75rem;margin-top:.5rem;display:grid}@media (min-width:640px){.class-ops-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.class-ops-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.class-ops-card{border:1px solid var(--border,var(--hairline-soft));color:inherit;background:#fff;border-radius:12px;align-items:center;gap:.75rem;padding:.85rem 1rem;text-decoration:none;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex}.class-ops-card:hover{border-color:var(--attention);transform:translateY(-1px);box-shadow:0 4px 12px -4px #b453092e}.class-ops-card-icon{background:var(--attention-soft);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.4rem;display:inline-flex}.class-ops-card-body{flex-direction:column;flex:auto;gap:.15rem;min-width:0;display:flex}.class-ops-card-label{color:var(--ink-deep);font-size:.9375rem;font-weight:700}.class-ops-card-desc{color:var(--slate);font-size:.75rem}.class-ops-card-arrow{color:var(--hairline);flex-shrink:0;font-weight:700}.class-ops-card:hover .class-ops-card-arrow{color:var(--attention-ink)}.class-danger-zone{border:1px dashed var(--critical-soft);background:var(--critical-soft);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;margin-top:2.5rem;padding:1.25rem 1.25rem 1.1rem;display:flex}.class-danger-zone-head{flex:18rem;min-width:0}.class-danger-zone-title{color:var(--critical-strong);margin:0 0 .35rem;font-size:.9375rem;font-weight:800}.class-danger-zone-desc{color:var(--critical-strong);margin:0;font-size:.8125rem;line-height:1.5}.class-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:1.5rem;display:grid}@media (min-width:640px){.class-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:960px){.class-stats-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.class-stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;align-items:center;gap:.65rem;padding:.75rem .85rem;display:flex}.class-stat-card--accent{background:linear-gradient(135deg,var(--accent-lab-soft) 0,var(--accent-lab-soft) 100%);border-color:var(--accent-lab-soft)}.class-stat-card--clickable{color:inherit;cursor:pointer;text-decoration:none;transition:border-color .13s,transform .13s,box-shadow .18s}.class-stat-card--clickable:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 4px 14px #2563eb1f}.class-stat-card--link{color:inherit;background:linear-gradient(135deg,var(--attention-soft) 0,var(--attention-soft) 100%);border-color:var(--attention);text-decoration:none;transition:border-color .15s,transform .13s,box-shadow .18s}.class-stat-card--link:hover{border-color:var(--attention);transform:translateY(-1px);box-shadow:0 4px 14px #f59e0b2e}.class-stat-card--link .class-stat-card-icon{background:var(--canvas)}.class-stat-card-link-title{letter-spacing:-.01em;color:var(--attention-ink);font-size:1rem;font-weight:800;line-height:1.1;display:block}.class-stat-card-icon{background:var(--surface-soft);border-radius:10px;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;font-size:1.05rem;display:inline-flex}.class-stat-card--accent .class-stat-card-icon{background:var(--canvas)}.class-stat-card-value{letter-spacing:-.02em;font-size:1.25rem;font-weight:800;line-height:1;display:block}.class-stat-card-label{color:var(--muted);margin-top:.15rem;font-size:.7rem;font-weight:600;display:block}.class-quicknav{background:var(--card);border:1px solid var(--border);border-radius:12px;flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem;padding:.4rem;display:flex}.class-quicknav-link{color:var(--charcoal);border-radius:8px;padding:.45rem .85rem;font-size:.8125rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.class-quicknav-link:hover{background:var(--accent-lab-soft);color:var(--brand)}.class-section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.85rem;display:flex}.class-section-head .class-section-title{margin-bottom:.2rem}.class-section-head .class-section-desc{margin-top:0}.class-members-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:.6rem;margin:0;padding:0;list-style:none;display:grid}@media (min-width:640px){.class-members-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:960px){.class-members-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.class-member-card{background:var(--card);border:1px solid var(--border);border-radius:12px;align-items:center;gap:.75rem;padding:.75rem .9rem;display:flex}.class-member-avatar{object-fit:cover;border-radius:999px;flex-shrink:0;width:2.5rem;height:2.5rem}.class-member-avatar--fallback{background:linear-gradient(135deg,var(--steel) 0,var(--slate) 100%);color:var(--canvas);justify-content:center;align-items:center;font-size:1rem;font-weight:800;display:inline-flex}.class-member-avatar--teacher{background:linear-gradient(135deg,var(--attention) 0,var(--attention-ink) 100%)}.class-member-info{flex:1;min-width:0}.class-member-name{align-items:center;gap:.4rem;margin:0;font-size:.9rem;font-weight:700;display:flex}.class-member-owner-tag{background:linear-gradient(135deg,var(--attention-soft) 0,var(--attention) 100%);color:var(--attention-ink);border-radius:6px;padding:.1rem .4rem;font-size:.65rem;font-weight:700}.class-member-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin:.15rem 0 0;font-size:.75rem;overflow:hidden}.class-project-card-owner{background:var(--surface-soft);border:1px solid var(--border);border-radius:10px;align-items:center;gap:.5rem;margin-top:.65rem;padding:.4rem .55rem;display:flex}.class-project-card-owner-avatar{background:linear-gradient(135deg,var(--accent-lab),var(--accent-lab));width:1.6rem;height:1.6rem;color:var(--canvas);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:800;display:inline-flex}.class-project-card-owner-name{color:var(--ink-deep);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:.8125rem;font-weight:700;overflow:hidden}.class-project-card-owner-time{color:var(--muted);font-size:.6875rem;font-weight:500}.project-table-title-row{align-items:center;gap:.4rem;min-width:0;display:inline-flex}.project-table-rename-btn{width:1.5rem;height:1.5rem;color:var(--muted);cursor:pointer;opacity:0;background:0 0;border:1px solid #0000;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;transition:opacity .15s,background .15s,border-color .15s,color .15s;display:inline-flex}.project-table tr:hover .project-table-rename-btn,.project-table-rename-btn:focus-visible{opacity:1}.project-table-rename-btn:hover{background:var(--accent-lab-soft);border-color:var(--accent-lab-soft);color:var(--brand)}.project-table-rename{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:inline-flex}.project-table-rename-input{border:1px solid var(--primary);background:var(--canvas);border-radius:6px;outline:none;width:100%;min-width:0;padding:.25rem .45rem;font-size:.875rem;font-weight:600}.project-table-rename-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2563eb26}.project-table-rename-error{color:var(--critical-strong);font-size:.7rem;font-weight:600}.asset-card-action{flex-direction:column;flex-shrink:0;align-items:stretch;gap:.4rem;min-width:9rem;display:flex}.login-card--single{max-width:460px;grid-template-columns:1fr!important}.login-success{background:linear-gradient(135deg,var(--success-soft) 0,var(--primary-soft) 100%);border:1px solid var(--success);color:var(--success-ink);border-radius:14px;margin-bottom:.85rem;padding:1rem 1.1rem}.users-admin-table-wrap{background:var(--card);border:1px solid var(--border);border-radius:14px;min-height:360px;max-height:calc(100vh - 380px);position:relative;overflow:auto;box-shadow:0 1px 2px #0f172a0a}.users-admin-table{border-collapse:separate;border-spacing:0;width:100%;font-size:.875rem}.users-admin-table thead{z-index:2;background:linear-gradient(180deg,var(--surface-soft) 0,var(--surface-soft) 100%);box-shadow:0 1px 0 var(--border);position:sticky;top:0}.users-admin-table thead th{text-align:left;color:var(--charcoal);letter-spacing:.02em;white-space:nowrap;padding:.7rem .85rem;font-size:.75rem;font-weight:700}.users-admin-col-check{width:2.5rem}.users-admin-col-date{width:7rem}.users-admin-col-action{text-align:right;width:6.5rem}.users-admin-table tbody td{border-top:1px solid var(--surface-soft);vertical-align:middle;padding:.7rem .85rem}.users-admin-table tbody tr:first-child td{border-top:0}.users-admin-table tbody tr:hover td{background:var(--surface-soft)}.users-admin-table tbody tr.users-admin-row--selected td{background:linear-gradient(90deg,var(--accent-lab-soft) 0,var(--accent-lab-soft) 100%)}.users-admin-table tfoot{z-index:2;background:linear-gradient(0deg,var(--surface-soft) 0,var(--surface-soft) 100%);box-shadow:0 -1px 0 var(--border);position:sticky;bottom:0}.users-admin-table tfoot td{color:var(--slate);padding:.6rem .85rem;font-size:.75rem}.users-admin-foot-summary strong{color:var(--ink-deep);font-weight:800}.users-admin-foot-sel{color:var(--accent-lab);font-weight:700}.users-admin-foot-meta{text-align:right;color:var(--steel)}.users-admin-checkbox{cursor:pointer;width:1rem;height:1rem;accent-color:var(--accent-lab)}.users-admin-user{align-items:center;gap:.7rem;min-width:0;display:flex}.users-admin-avatar{object-fit:cover;border-radius:999px;flex-shrink:0;width:2.25rem;height:2.25rem}.users-admin-avatar--fallback{background:linear-gradient(135deg,var(--accent-lab),var(--accent-lab));color:var(--canvas);justify-content:center;align-items:center;font-size:.9rem;font-weight:800;display:inline-flex}.users-admin-user-text{flex-direction:column;min-width:0;display:flex}.users-admin-name{color:var(--ink-deep);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.4rem;font-weight:700;display:inline-flex;overflow:hidden}.users-admin-self{color:var(--brand);background:var(--accent-lab-soft);border-radius:999px;padding:1px 7px;font-size:.6875rem;font-weight:700}.users-admin-email{color:var(--slate);white-space:nowrap;text-overflow:ellipsis;font-family:SF Mono,Fira Code,monospace;font-size:.75rem;overflow:hidden}.users-admin-status{flex-wrap:wrap;gap:.35rem;display:flex}.users-admin-role-badge{align-items:center;gap:.25rem;display:inline-flex}.users-admin-date{color:var(--muted);white-space:nowrap;font-size:.8125rem}.users-admin-bulkbar{background:linear-gradient(135deg,var(--accent-lab-soft) 0,var(--accent-lab-soft) 100%);border:1px solid var(--accent-lab-soft);border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;padding:.6rem 1rem;display:flex}.users-admin-bulkbar-count strong{color:var(--accent-lab);font-weight:800}.users-admin-bulkbar-actions{gap:.4rem;display:flex}.user-detail{flex-direction:column;gap:1rem;display:flex}.user-detail-head{border-bottom:1px solid var(--border);align-items:center;gap:.85rem;padding-bottom:.85rem;display:flex}.user-detail-avatar{object-fit:cover;border-radius:999px;flex-shrink:0;width:3.5rem;height:3.5rem}.user-detail-avatar--fallback{background:linear-gradient(135deg,var(--accent-lab),var(--primary));color:#fff;justify-content:center;align-items:center;font-size:1.25rem;font-weight:800;display:inline-flex}.user-detail-name-block{flex:auto;min-width:0}.user-detail-name{color:var(--ink-deep);letter-spacing:-.01em;align-items:center;gap:.4rem;margin:0;font-size:1.125rem;font-weight:800;display:inline-flex}.user-detail-email{color:var(--slate);margin:.2rem 0 0;font-family:SF Mono,Fira Code,monospace;font-size:.8125rem}.user-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;margin:0;display:grid}.user-detail-grid>div{flex-direction:column;gap:.3rem;display:flex}.user-detail-grid dt{color:var(--slate);letter-spacing:.04em;text-transform:uppercase;font-size:.6875rem;font-weight:700}.user-detail-grid dd{color:var(--ink-deep);margin:0;font-size:.875rem}.user-detail-section{border-top:1px solid var(--border);padding-top:.85rem}.user-detail-section-title{color:var(--charcoal);margin:0 0 .55rem;font-size:.8125rem;font-weight:700}.user-detail-role-toggle{flex-wrap:wrap;gap:.4rem;display:flex}.user-detail-role-btn{border:1.5px solid var(--hairline-soft);color:var(--charcoal);cursor:pointer;background:#fff;border-radius:10px;align-items:center;gap:.35rem;padding:.5rem .85rem;font-size:.8125rem;font-weight:600;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.user-detail-role-btn:hover:not(:disabled){background:var(--surface-soft);border-color:var(--hairline)}.user-detail-role-btn.is-active{background:linear-gradient(135deg,var(--accent-lab) 0,var(--accent-lab) 100%);color:#fff;border-color:#0000;box-shadow:0 2px 8px -2px #6366f180}.user-detail-role-btn:disabled{opacity:.5;cursor:not-allowed}.user-detail-hint{color:var(--steel);margin:.4rem 0 0;font-size:.6875rem}.user-detail-actions{flex-wrap:wrap;gap:.4rem;display:flex}.users-admin-empty{text-align:center;color:var(--muted);padding:2.5rem 1rem;font-size:.875rem}.users-admin-flash{background:linear-gradient(135deg,var(--success-soft) 0,var(--primary-soft) 100%);border:1px solid var(--success);color:var(--success-ink);border-radius:10px;padding:.85rem 1rem}.users-admin-pwd{background:var(--canvas);border:1px solid var(--success);color:var(--success-ink);border-radius:6px;padding:.15rem .5rem;font-family:SF Mono,Fira Code,monospace;font-size:.875rem;font-weight:800;display:inline-block}@media (max-width:720px){.users-admin-table thead{display:none}.users-admin-table tbody td{border-bottom:0;padding:.4rem .85rem;display:block}.users-admin-table tbody tr{border-bottom:1px solid var(--border);padding:.5rem 0;display:block}}.lp{background:var(--wf-canvas);color:var(--wf-ink);font-feature-settings:"ss01","ss03","tnum";-webkit-font-smoothing:antialiased;min-height:100vh}.lp a{color:inherit}.lp-container{width:100%;max-width:1200px;margin:0 auto;padding:0 32px}@media (max-width:640px){.lp-container{padding:0 20px}}.lp-chroma-stripe{background:var(--wf-chroma-stripe);border:none;width:100%;height:4px;margin:0}.lp-topbar{-webkit-backdrop-filter:saturate(160%)blur(10px);backdrop-filter:saturate(160%)blur(10px);color:var(--charcoal);background:#f5f5f7b3;border-bottom:1px solid #0f172a0d;font-size:12px}.lp-topbar-inner{flex-wrap:wrap;align-items:center;gap:14px;min-height:32px;padding-top:4px;padding-bottom:4px;display:flex}.lp-topbar-label{letter-spacing:-.005em;color:var(--wf-body-mid);flex-shrink:0;font-weight:600}.lp-topbar-links{flex-wrap:wrap;align-items:center;gap:4px;margin:0 0 0 auto;padding:0;list-style:none;display:flex}.lp-topbar-links>li+li{border-left:1px solid var(--wf-hairline);padding-left:4px}.lp-topbar-link{color:var(--wf-ink);border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-weight:500;text-decoration:none;transition:background .12s,color .12s;display:inline-flex}.lp-topbar-link:hover{color:var(--brand);background:#0808080f}.lp-topbar-link-icon{opacity:.6;font-size:11px}@media (max-width:640px){.lp-topbar-inner{gap:8px}.lp-topbar-label{display:none}.lp-topbar-links{justify-content:space-between;width:100%;margin-left:0}.lp-topbar-link-name{font-size:11.5px}}.lp-header{z-index:40;-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);background:#ffffffa6;border-bottom:1px solid #0f172a0f;position:sticky;top:0;box-shadow:inset 0 1px #fff6}.lp-header-inner{justify-content:space-between;align-items:center;gap:1.5rem;height:68px;display:flex}.lp-brand{color:var(--wf-ink);gap:12px;text-decoration:none}.lp-brand,.lp-brand-mark{align-items:center;display:inline-flex}.lp-brand-mark{width:34px;height:34px;color:var(--canvas);letter-spacing:-.02em;isolation:isolate;text-shadow:0 1px 2px #0f172a40;border-radius:9px;flex-shrink:0;justify-content:center;font-size:14px;font-weight:700;position:relative}.lp-brand-mark,.lp-brand-mark:after{background:linear-gradient(135deg,var(--accent-lab) 0,var(--primary) 50%,var(--success) 100%)}.lp-brand-mark:after{content:"";z-index:-1;border-radius:inherit;filter:blur(8px);opacity:.55;transition:opacity .25s,filter .25s;position:absolute;inset:-3px}.lp-brand:hover .lp-brand-mark:after{opacity:.85;filter:blur(12px)}.lp-brand-name{letter-spacing:-.012em;color:var(--wf-ink);font-size:15px;font-weight:600;line-height:1.2;display:block}.lp-brand-sub{color:var(--wf-body-mid);margin-top:2px;font-size:12px;font-weight:400;display:block}.lp-nav{align-items:center;gap:4px;display:flex}.lp-nav-link{color:var(--wf-ink);letter-spacing:-.008em;border-radius:6px;padding:8px 14px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;position:relative}.lp-nav-link:hover{color:var(--ink-deep);background:#67e8f914}.lp-nav-link:not(.lp-nav-cta):after{content:"";background:linear-gradient(90deg,var(--accent-lab),var(--primary),var(--success));opacity:0;transform-origin:0;pointer-events:none;border-radius:1px;height:2px;transition:opacity .2s,transform .2s;position:absolute;bottom:4px;left:14px;right:14px;transform:scaleX(.4)}.lp-nav-link:not(.lp-nav-cta):hover:after{opacity:1;transform:scaleX(1)}@media (prefers-reduced-motion:reduce){.lp-brand-mark:after,.lp-nav-link:not(.lp-nav-cta):after{transition:none}}.lp-nav-cta{margin-left:8px}@media (max-width:768px){.lp-brand-sub,.lp-nav-link:not(.lp-nav-cta){display:none}}.lp .lp-btn,.lp-btn{border:1px solid var(--wf-ink);background:var(--wf-ink);height:44px;color:var(--canvas);letter-spacing:-.008em;cursor:pointer;white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:15px;font-weight:500;text-decoration:none;transition:background .12s,color .12s,opacity .12s,border-color .12s;display:inline-flex}.lp .lp-btn,.lp .lp-btn:link,.lp .lp-btn:visited{color:var(--canvas)}.lp .lp-btn .lp-btn-arrow{color:inherit}.lp-btn:hover{opacity:.88}.lp .lp-btn--secondary,.lp .lp-btn--secondary:link,.lp .lp-btn--secondary:visited{background:var(--wf-canvas);color:var(--wf-ink);border-color:var(--wf-hairline)}.lp .lp-btn--secondary:hover{border-color:var(--wf-ink);opacity:1}.lp-nav-cta.lp-btn{height:36px;padding:0 14px;font-size:13px}.lp-btn--lg{height:52px;padding:0 28px;font-size:16px}.lp-btn-arrow{font-size:14px;line-height:1}.lp-link{color:var(--wf-ink);border-bottom:1px solid var(--wf-ink);letter-spacing:-.008em;align-items:center;gap:8px;padding-bottom:2px;font-size:15px;font-weight:500;text-decoration:none;transition:opacity .12s;display:inline-flex}.lp-link:hover{opacity:.72}.lp-eyebrow{color:var(--wf-body-mid);letter-spacing:1.5px;text-transform:uppercase;margin:0 0 20px;font-size:13px;font-weight:500}.lp-hero{background:var(--wf-canvas);padding:72px 0 56px}@media (min-width:1024px){.lp-hero{padding:120px 0 88px}}.lp-hero-inner{grid-template-columns:1fr;align-items:end;gap:56px;display:grid}@media (min-width:1024px){.lp-hero-inner{grid-template-columns:1.3fr 1fr;gap:64px}}.lp-hero-title{letter-spacing:-.028em;color:var(--wf-ink);max-width:16ch;margin:0;font-size:clamp(2.5rem,6vw,4.75rem);font-weight:600;line-height:1.04}.lp-hero-title em{background:linear-gradient(120deg,var(--wf-accent-purple) 0,var(--wf-accent-blue) 60%,var(--wf-accent-pink) 100%);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.lp-hero-sub-en{letter-spacing:.5px;color:var(--wf-body-mid);text-transform:uppercase;margin:20px 0 0;font-size:14px;font-weight:500}.lp-hero-desc{color:var(--wf-body);letter-spacing:-.008em;max-width:56ch;margin:24px 0 0;font-size:1.1875rem;font-weight:400;line-height:1.7}.lp-hero-actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.lp-hero-code{background:var(--wf-ink);color:var(--surface-soft);box-shadow:var(--wf-shadow-feature);border-radius:12px;padding:20px 24px 22px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Cascadia Mono,monospace;font-size:13px;line-height:1.75;position:relative;overflow:hidden}.lp-hero-code:before{content:"";background:var(--wf-chroma-stripe);height:3px;position:absolute;top:0;left:0;right:0}.lp-hero-code-head{letter-spacing:.04em;color:#ffffff8c;text-transform:uppercase;border-bottom:1px solid #ffffff14;align-items:center;gap:8px;margin-bottom:14px;padding-bottom:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Cascadia Mono,monospace;font-size:11px;display:flex}.lp-hero-code-dot{border-radius:9999px;width:9px;height:9px;display:inline-block}.lp-hero-code-dot:first-child{background:var(--wf-accent-red);opacity:.6}.lp-hero-code-dot:nth-child(2){background:var(--wf-accent-yellow);opacity:.6}.lp-hero-code-dot:nth-child(3){background:var(--wf-accent-green);opacity:.6}.lp-hero-code-title{margin-left:8px}.lp-hero-code pre{white-space:pre;margin:0;overflow-x:auto}.lp-tok-kw{color:#c490ff}.lp-tok-mod{color:#7fb6ff}.lp-tok-fn{color:#ff95dd}.lp-tok-str{color:#7ce690}.lp-tok-num{color:#ffa463}.lp-tok-com{color:var(--steel);font-style:italic}.lp-tok-punc{color:var(--stone)}.lp-spec-band{background:var(--wf-soft);border-top:1px solid var(--wf-hairline);border-bottom:1px solid var(--wf-hairline)}.lp-spec-grid{grid-template-columns:repeat(1,minmax(0,1fr));display:grid}@media (min-width:640px){.lp-spec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lp-spec-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.lp-spec{border-right:1px solid var(--wf-hairline);flex-direction:column;gap:10px;padding:32px;display:flex}.lp-spec:last-child{border-right:none}@media (max-width:1023px){.lp-spec:nth-child(2n){border-right:none}.lp-spec:nth-child(-n+2){border-bottom:1px solid var(--wf-hairline)}}.lp-spec-value{letter-spacing:-.015em;color:var(--wf-ink);font-size:22px;font-weight:600;line-height:1.25}.lp-spec-label{color:var(--wf-body-mid);letter-spacing:.6px;text-transform:uppercase;font-size:12px;font-weight:500}.lp-section{background:var(--wf-canvas);padding:80px 0}@media (min-width:1024px){.lp-section{padding:112px 0}}.lp-section--soft{background:var(--wf-soft);border-top:1px solid var(--wf-hairline);border-bottom:1px solid var(--wf-hairline)}.lp-section--dark{background:var(--wf-ink);color:var(--canvas)}.lp-section-head{max-width:56rem;margin-bottom:48px}.lp-section-head--center{text-align:center;margin-left:auto;margin-right:auto}.lp-section-title{letter-spacing:-.022em;color:inherit;margin:0;font-size:clamp(1.875rem,3.6vw,2.75rem);font-weight:600;line-height:1.1}.lp-section-desc{color:var(--wf-body);letter-spacing:-.005em;max-width:56rem;margin:20px 0 0;font-size:1.0625rem;font-weight:400;line-height:1.75}.lp-section--dark .lp-section-desc{color:#ffffffc7}.lp-about{grid-template-columns:1fr;align-items:start;gap:48px;display:grid}@media (min-width:1024px){.lp-about{grid-template-columns:5fr 6fr;gap:80px}}.lp-about-lede{color:var(--wf-ink);letter-spacing:-.018em;margin:0;font-size:clamp(1.375rem,2.2vw,1.75rem);font-weight:500;line-height:1.4}.lp-about-body p{color:var(--wf-body);letter-spacing:-.005em;margin:0 0 1.25rem;font-size:1.0625rem;font-weight:400;line-height:1.85}.lp-about-body p:last-child{margin-bottom:0}.lp-cat-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}@media (min-width:640px){.lp-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lp-cat-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.lp-cat:first-child,.lp-cat:nth-child(2){grid-column:span 3}.lp-cat:nth-child(3),.lp-cat:nth-child(4),.lp-cat:nth-child(5){grid-column:span 2}}.lp-cat{min-height:260px;color:var(--canvas);border-radius:8px;flex-direction:column;justify-content:space-between;gap:24px;padding:32px;display:flex;position:relative;overflow:hidden}.lp-cat--purple{background:var(--wf-accent-purple)}.lp-cat--blue{background:var(--wf-accent-blue)}.lp-cat--pink{background:var(--wf-accent-pink)}.lp-cat--orange{background:var(--wf-accent-orange)}.lp-cat--green{background:var(--wf-accent-green);color:var(--wf-ink)}.lp-cat-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.lp-cat-tag{letter-spacing:1.2px;text-transform:uppercase;opacity:.92;font-size:12px;font-weight:500}.lp-cat--green .lp-cat-tag{opacity:.7}.lp-cat-num{letter-spacing:.04em;opacity:.75;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Cascadia Mono,monospace;font-size:11px;font-weight:500}.lp-cat-body{flex-direction:column;gap:10px;display:flex}.lp-cat-title{letter-spacing:-.018em;color:inherit;margin:0;font-size:28px;font-weight:600;line-height:1.15}.lp-cat-desc{opacity:.92;letter-spacing:-.005em;color:inherit;margin:0;font-size:15px;font-weight:400;line-height:1.6}.lp-cat--green .lp-cat-desc{opacity:.78}.lp-dataset{grid-template-columns:1fr;align-items:stretch;gap:32px;display:grid}@media (min-width:1024px){.lp-dataset{grid-template-columns:1.05fr 1fr;gap:48px}}.lp-dataset-copy{flex-direction:column;justify-content:center;gap:16px;display:flex}.lp-dataset-title{letter-spacing:-.022em;color:var(--wf-ink);margin:0;font-size:clamp(1.625rem,2.8vw,2.125rem);font-weight:600;line-height:1.15}.lp-dataset-desc{color:var(--wf-body);letter-spacing:-.005em;margin:0;font-size:1rem;font-weight:400;line-height:1.75}.lp-dataset-meta{background:var(--wf-soft);border:1px solid var(--wf-hairline);border-radius:8px;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:8px;padding:18px 20px;display:grid}.lp-dataset-meta-item{flex-direction:column;gap:4px;display:flex}.lp-dataset-meta-label{letter-spacing:.8px;text-transform:uppercase;color:var(--wf-mute);font-size:11px;font-weight:500}.lp-dataset-meta-value{color:var(--wf-ink);letter-spacing:-.005em;font-size:14px;font-weight:600}.lp-dataset-card{background:var(--wf-ink);color:var(--surface-soft);box-shadow:var(--wf-shadow-feature);border-radius:12px;padding:20px 24px 22px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Cascadia Mono,monospace;font-size:13px;line-height:1.75;position:relative;overflow:hidden}.lp-dataset-card:before{content:"";background:var(--wf-chroma-stripe);height:3px;position:absolute;top:0;left:0;right:0}.lp-dataset-card-head{letter-spacing:.04em;color:#ffffff8c;text-transform:uppercase;border-bottom:1px solid #ffffff14;align-items:center;gap:8px;margin-bottom:14px;padding-bottom:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Cascadia Mono,monospace;font-size:11px;display:flex}.lp-dataset-card pre{white-space:pre;margin:0;overflow-x:auto}.lp-dataset-table{background:#ffffff0a;border:1px solid #ffffff14;border-radius:6px;margin-top:16px;font-size:12px;overflow:hidden}.lp-dataset-table-row{border-bottom:1px solid #ffffff0f;grid-template-columns:1fr 1fr 1fr 1fr;gap:8px;padding:8px 12px;display:grid}.lp-dataset-table-row:last-child{border-bottom:none}.lp-dataset-table-row--head{color:#ffffffa6;letter-spacing:.06em;text-transform:uppercase;background:#ffffff0d;font-size:10.5px}.lp-dataset-table-cell{color:#ffffffd9}.lp-dataset-table-cell--num{color:#ffa463}.lp-dataset-table-cell--ok{color:#7ce690}.lp-dataset-table-cell--bad{color:#ff95dd}.lp-tracks{grid-template-columns:repeat(1,minmax(0,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}@media (min-width:768px){.lp-tracks{grid-template-columns:repeat(3,minmax(0,1fr))}}.lp-track{background:var(--wf-canvas);border:1px solid var(--wf-hairline);border-radius:8px;flex-direction:column;gap:16px;padding:32px;display:flex}.lp-track--featured{background:var(--wf-ink);color:var(--canvas);box-shadow:var(--wf-shadow-feature-strong);border-color:#0000}.lp-track-tag{letter-spacing:1.2px;text-transform:uppercase;color:var(--wf-body-mid);font-size:12px;font-weight:500}.lp-track--featured .lp-track-tag{color:#ffffffb3}.lp-track-title{letter-spacing:-.018em;color:inherit;margin:0;font-size:24px;font-weight:600;line-height:1.2}.lp-track-desc{color:var(--wf-body);letter-spacing:-.005em;margin:0;font-size:15px;font-weight:400;line-height:1.7}.lp-track--featured .lp-track-desc{color:#ffffffd1}.lp-track-features{flex-direction:column;gap:8px;margin:6px 0 0;padding:0;list-style:none;display:flex}.lp-track-features li{color:var(--wf-body);letter-spacing:-.005em;align-items:flex-start;gap:8px;font-size:14px;font-weight:400;display:flex}.lp-track-features li:before{content:"—";color:var(--wf-mute);font-weight:500}.lp-track--featured .lp-track-features li{color:#ffffffd9}.lp-track--featured .lp-track-features li:before{color:#ffffff73}.lp-track-footer{margin-top:auto;padding-top:12px}.lp-track--featured .lp-track-footer .lp-link{color:var(--canvas);border-bottom-color:#fff9}.lp-steps{grid-template-columns:repeat(1,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none;display:grid}@media (min-width:768px){.lp-steps{grid-template-columns:repeat(4,minmax(0,1fr))}}.lp-step{background:var(--wf-canvas);border:1px solid var(--wf-hairline);border-radius:8px;flex-direction:column;gap:12px;min-height:200px;padding:28px;display:flex}.lp-step-num{letter-spacing:.04em;color:var(--wf-mute);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Cascadia Mono,monospace;font-size:12px;font-weight:550}.lp-step-title{letter-spacing:-.015em;color:var(--wf-ink);margin:6px 0 0;font-size:19px;font-weight:600;line-height:1.2}.lp-step-desc{color:var(--wf-body);letter-spacing:-.005em;margin:4px 0 0;font-size:14.5px;font-weight:400;line-height:1.7}.lp-audience{grid-template-columns:repeat(1,minmax(0,1fr));gap:20px;display:grid}@media (min-width:768px){.lp-audience{grid-template-columns:repeat(2,minmax(0,1fr))}}.lp-audience-card{background:var(--wf-canvas);border:1px solid var(--wf-hairline);border-radius:12px;flex-direction:column;gap:14px;padding:44px 36px;display:flex}.lp-audience-card--invert{background:var(--wf-ink);color:var(--canvas);box-shadow:var(--wf-shadow-feature);border-color:#0000}.lp-audience-tag{letter-spacing:1.2px;text-transform:uppercase;color:var(--wf-body-mid);font-size:12px;font-weight:500}.lp-audience-card--invert .lp-audience-tag{color:#ffffffb3}.lp-audience-title{letter-spacing:-.02em;color:inherit;margin:0;font-size:30px;font-weight:600;line-height:1.1}.lp-audience-desc{color:var(--wf-body);letter-spacing:-.005em;margin:4px 0 0;font-size:16px;font-weight:400;line-height:1.8}.lp-audience-card--invert .lp-audience-desc{color:#ffffffd1}.lp-audience-link{color:var(--wf-ink);border-bottom:1px solid var(--wf-ink);letter-spacing:-.005em;align-self:flex-start;align-items:center;gap:8px;margin-top:18px;padding-bottom:2px;font-size:15px;font-weight:500;text-decoration:none;transition:opacity .12s;display:inline-flex}.lp-audience-card--invert .lp-audience-link{color:var(--canvas);border-bottom-color:var(--canvas)}.lp-audience-link:hover{opacity:.72}.lp-cta{background:var(--wf-ink);color:var(--canvas)}.lp-cta-inner{text-align:center;flex-direction:column;align-items:center;padding:96px 0 100px;display:flex}.lp-cta .lp-eyebrow{color:#ffffffa6}.lp-cta-title{letter-spacing:-.026em;max-width:24ch;color:var(--canvas);margin:0;font-size:clamp(2.125rem,4.5vw,3.25rem);font-weight:600;line-height:1.06}.lp-cta-desc{color:#ffffffc7;letter-spacing:-.005em;max-width:48rem;margin:20px 0 0;font-size:1.125rem;font-weight:400;line-height:1.7}.lp-cta-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:36px;display:flex}.lp-cta .lp-btn:not(.lp-btn--secondary){background:var(--canvas);color:var(--wf-ink);border-color:var(--canvas)}.lp-cta .lp-btn:not(.lp-btn--secondary):hover{opacity:.9}.lp-cta .lp-btn--secondary{color:var(--canvas);background:0 0;border-color:#fff6}.lp-cta .lp-btn--secondary:hover{border-color:var(--canvas);background:#ffffff0f}.lp-footer{background:var(--wf-canvas);border-top:1px solid var(--wf-hairline);color:var(--wf-body-mid);padding:56px 0 28px}.lp-footer-inner{grid-template-columns:1fr;gap:40px;display:grid}@media (min-width:768px){.lp-footer-inner{grid-template-columns:1.2fr 3fr;align-items:start}}.lp-footer-brand{flex-direction:column;gap:14px;display:flex}.lp-footer-tag{color:var(--wf-body-mid);letter-spacing:-.005em;max-width:32ch;margin:0;font-size:13px;font-weight:400;line-height:1.7}.lp-footer-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;display:grid}@media (min-width:768px){.lp-footer-cols{grid-template-columns:repeat(4,minmax(0,1fr))}}.lp-footer-col{flex-direction:column;gap:10px;display:flex}.lp-footer-col-title{letter-spacing:.6px;color:var(--wf-ink);text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:500}.lp-footer-col a{color:var(--wf-body-mid);letter-spacing:-.005em;font-size:14px;font-weight:400;text-decoration:none;transition:color .12s}.lp-footer-col a:hover{color:var(--wf-ink)}.lp-footer-bottom{border-top:1px solid var(--wf-hairline);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:48px;padding-top:20px;display:flex}.lp-footer-copy,.lp-footer-meta{color:var(--wf-mute);margin:0;font-size:12px;font-weight:400}.project-table-col-select{width:2.75rem;text-align:left!important;padding-left:.85rem!important;padding-right:0!important}.project-table-checkbox-label{cursor:pointer;justify-content:center;align-items:center;padding:.25rem;display:inline-flex}.project-table-checkbox{appearance:none;border:1.5px solid var(--border-strong);background:var(--card-elevated);cursor:pointer;border-radius:4px;flex-shrink:0;width:1.05rem;height:1.05rem;transition:background .13s,border-color .13s;position:relative}.project-table-checkbox:hover{border-color:var(--fg)}.project-table-checkbox:checked{background:var(--fg);border-color:var(--fg)}.project-table-checkbox:checked:after{content:"";border:solid var(--on-brand);border-width:0 2px 2px 0;width:.32rem;height:.6rem;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.project-table-checkbox:indeterminate{background:var(--fg);border-color:var(--fg)}.project-table-checkbox:indeterminate:after{content:"";background:var(--on-brand);width:.55rem;height:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.project-table-checkbox:focus-visible{box-shadow:var(--shadow-focus);outline:none}.project-table-row--selected td{background:var(--hover)}.project-table-row--selected:hover td{background:var(--hover-strong)}.project-table tbody .project-table-checkbox{opacity:.3;transition:opacity .13s}.project-table tbody .project-table-checkbox:checked,.project-table tbody .project-table-checkbox:focus-visible,.project-table tbody tr.project-table-row--selected .project-table-checkbox,.project-table tbody tr:hover .project-table-checkbox{opacity:1}.project-table tbody tr[draggable=true] .project-table-title{cursor:grab}.projects-folder-tab-wrap--drop .projects-folder-tab{outline:2px dashed var(--accent-lab);outline-offset:1px;color:var(--accent-lab);background:#4f46e51f}.projects-toast{z-index:200;background:var(--ink-deep);color:var(--canvas);border-radius:999px;padding:.7rem 1.15rem;font-size:.875rem;font-weight:600;animation:projects-toast-in .18s;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #0f172a59}@keyframes projects-toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.snippet-page{max-width:1100px;margin:0 auto;padding:24px 32px}.snippet-page-head{margin-bottom:24px}.snippet-page-breadcrumb{color:var(--slate);margin:0 0 8px;font-size:13px}.snippet-page-breadcrumb a{color:inherit;text-decoration:none}.snippet-page-breadcrumb a:hover{color:var(--primary)}.snippet-page-title{color:var(--ink-deep);margin:0 0 8px;font-size:28px;font-weight:700}.snippet-page-desc{color:var(--slate);margin:0;line-height:1.5}.snippet-error{background:var(--critical-soft);color:var(--critical-strong);border-radius:8px;margin:0 0 12px;padding:10px 14px;font-size:13px}.snippet-manager-body{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:12px;grid-template-columns:260px 1fr;gap:20px;min-height:480px;padding:18px;display:grid}.snippet-sidebar{border-right:1px solid var(--hairline-soft);padding-right:16px}.snippet-sidebar-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.snippet-sidebar-head h2{color:var(--charcoal);margin:0;font-size:14px;font-weight:600}.snippet-empty{color:var(--steel);text-align:center;padding:14px 0;font-size:13px}.snippet-cat-groups{flex-direction:column;gap:10px;display:flex}.snippet-cat-group{flex-direction:column;gap:4px;display:flex}.snippet-cat-group-head{font:inherit;color:var(--charcoal);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;width:100%;padding:6px 8px;font-size:12.5px;font-weight:700;transition:background .13s;display:flex}.snippet-cat-group-head:hover{background:var(--surface-soft)}.snippet-cat-group-caret{width:12px;color:var(--steel);flex-shrink:0;font-size:10px;transition:transform .13s;display:inline-block}.snippet-cat-group-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.snippet-cat-group-count{background:var(--surface-soft);color:var(--charcoal);text-align:center;border-radius:999px;min-width:18px;padding:1px 8px;font-size:11px;font-weight:700}.snippet-cat-group.is-collapsed .snippet-cat-list{display:none}.snippet-cat-list{border-left:1px dashed var(--hairline-soft);flex-direction:column;gap:3px;margin:0 0 0 8px;padding:0 0 0 6px;list-style:none;display:flex}.snippet-cat-pick{cursor:pointer;width:100%;color:var(--ink);text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-family:inherit;font-size:13px;display:flex}.snippet-cat-pick:hover{background:var(--surface-soft)}.snippet-cat.is-active .snippet-cat-pick{background:var(--accent-lab-soft);border-color:var(--accent-lab-soft);color:#312e81;font-weight:600}.snippet-cat-color{border:1px solid #00000014;border-radius:4px;flex-shrink:0;width:14px;height:14px;display:inline-block}.snippet-cat-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.snippet-cat-count{color:var(--slate);background:var(--hairline-soft);border-radius:999px;padding:1px 8px;font-size:11px}.snippet-cat-unit{color:var(--primary-deep);background:var(--primary-soft);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;flex-shrink:0;max-width:140px;padding:2px 8px;font-size:10px;font-weight:600;overflow:hidden}.snippet-cat-unit--common{color:var(--charcoal);background:var(--surface-soft)}.snippet-filter{flex-direction:column;gap:4px;margin:4px 0 12px;display:flex}.snippet-filter-label{color:var(--slate);font-size:11px;font-weight:600}.snippet-filter-select{border:1px solid var(--hairline);background:#fff;border-radius:6px;padding:6px 8px;font-size:13px}.snippet-main{min-width:0}.snippet-main-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.snippet-main-title{color:var(--ink-deep);align-items:center;gap:8px;margin:0;font-size:18px;font-weight:700;display:flex}.snippet-main-actions{gap:6px;display:flex}.snippet-list{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.snippet-card{border:1px solid var(--hairline-soft);background:var(--surface-soft);border-radius:10px;padding:12px 14px}.snippet-card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.snippet-card-label{color:var(--ink-deep);font-size:13.5px}.snippet-card-actions{gap:6px;display:flex}.snippet-card-code{background:var(--ink-deep);color:var(--hairline-soft);white-space:pre-wrap;word-break:break-word;border-radius:6px;max-height:200px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;overflow-y:auto}.snippet-btn{border:1px solid var(--hairline);background:var(--canvas);color:var(--ink);cursor:pointer;border-radius:6px;padding:6px 12px;font-family:inherit;font-size:12.5px}.snippet-btn:hover:not(:disabled){background:var(--surface-soft)}.snippet-btn:disabled{opacity:.55;cursor:not-allowed}.snippet-btn-sm{padding:3px 8px;font-size:11.5px}.snippet-btn-muted{color:var(--charcoal)}.snippet-btn-danger{color:var(--critical-strong);border-color:var(--critical-soft)}.snippet-btn-danger:hover:not(:disabled){background:var(--critical-soft)}.snippet-btn-add{color:var(--primary-deep);border-color:var(--accent-lab-soft);background:var(--accent-lab-soft);font-weight:600}.snippet-btn-add:hover:not(:disabled){background:var(--primary-soft)}.snippet-add-snippet{width:100%;padding:10px}.snippet-cat{align-items:stretch;gap:2px;display:flex}.snippet-cat-pick{flex:1}.snippet-cat-move{flex-direction:column;gap:2px;display:flex}.snippet-move-btn{color:var(--slate);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;min-width:22px;padding:0 6px;font-family:inherit;font-size:12px}.snippet-move-btn:hover:not(:disabled){background:var(--surface-soft);border-color:var(--hairline);color:var(--ink)}.snippet-move-btn:disabled{opacity:.3;cursor:not-allowed}.snippet-field{margin-top:14px;display:block}.snippet-field:first-of-type{margin-top:0}.snippet-field-label{color:var(--charcoal);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.snippet-field-input{border:1px solid var(--hairline);background:var(--canvas);width:100%;color:var(--ink-deep);box-sizing:border-box;border-radius:8px;padding:8px 10px;font-family:inherit;font-size:14px}.snippet-field-input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #2563eb26}.snippet-field-textarea{border:1px solid var(--hairline);background:var(--ink-deep);width:100%;color:var(--hairline-soft);box-sizing:border-box;resize:vertical;border-radius:8px;min-height:180px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;font-size:13px;line-height:1.55}.snippet-field-textarea:focus{border-color:#38bdf8;outline:none;box-shadow:0 0 0 3px #38bdf840}.snippet-color-row{align-items:center;gap:8px;display:flex}.snippet-color-input{border:1px solid var(--hairline);background:var(--canvas);cursor:pointer;border-radius:8px;width:44px;height:36px;padding:0}.snippet-color-hex{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.snippet-field-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;display:flex}.snippet-field-row .snippet-field-label{margin-bottom:0}.snippet-upload-actions{align-items:center;gap:6px;display:flex}.snippet-upload-input{display:none}.snippet-field-hint{color:var(--slate);margin:6px 0 0;font-size:12px;line-height:1.5}.snippet-inline-form{border:1.5px solid var(--primary);background:var(--surface-soft);border-radius:10px;flex-direction:column;gap:8px;padding:12px 14px;display:flex;box-shadow:0 4px 12px #2563eb14}.snippet-inline-form .snippet-field-textarea{min-height:140px}.snippet-inline-form-foot{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.snippet-inline-hint{color:var(--steel);margin-left:auto;margin-right:6px;font-size:11px}.quiz-editor{flex-direction:column;gap:20px;max-width:880px;display:flex}.quiz-editor-section{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:12px;padding:20px}.quiz-editor-section-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.quiz-editor-section-title{color:var(--ink-deep);margin:0 0 12px;font-size:16px;font-weight:700}.quiz-editor-section-meta{color:var(--slate);font-size:12px;font-weight:500}.quiz-editor-field{margin-top:12px;display:block}.quiz-editor-field:first-child{margin-top:0}.quiz-editor-field-label{color:var(--charcoal);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.quiz-editor-input{border:1px solid var(--hairline);background:var(--canvas);width:100%;color:var(--ink-deep);box-sizing:border-box;border-radius:8px;outline:none;padding:8px 12px;font-family:inherit;font-size:14px}.quiz-editor-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1f}.quiz-q-card{background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:10px;margin-bottom:12px;padding:14px 16px}.quiz-q-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.quiz-q-num{color:var(--accent-lab);font-size:14px}.quiz-q-actions{gap:4px;display:flex}.quiz-q-move,.quiz-q-remove{border:1px solid var(--hairline-soft);background:var(--canvas);cursor:pointer;width:26px;height:26px;color:var(--slate);border-radius:6px;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.quiz-q-move:hover:not(:disabled),.quiz-q-remove:hover:not(:disabled){background:var(--surface-soft);border-color:var(--hairline);color:var(--ink-deep)}.quiz-q-remove:hover:not(:disabled){background:var(--critical-soft);border-color:var(--critical-soft);color:var(--critical-strong)}.quiz-q-move:disabled,.quiz-q-remove:disabled{opacity:.35;cursor:not-allowed}.quiz-q-prompt{background:var(--canvas)}.quiz-q-points{align-items:center;gap:8px;margin:10px 0;display:flex}.quiz-q-points-label{color:var(--charcoal);font-size:12px;font-weight:600}.quiz-q-points-input{border:1px solid var(--hairline);border-radius:6px;outline:none;width:64px;padding:4px 8px;font-size:13px}.quiz-q-choices{flex-direction:column;gap:6px;margin-top:8px;display:flex}.quiz-q-choices-label{color:var(--charcoal);margin-bottom:2px;font-size:12px;font-weight:600}.quiz-q-choice{background:var(--canvas);border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:4px 8px;display:flex}.quiz-q-choice.is-correct{background:var(--success-soft);border-color:var(--success-soft)}.quiz-q-choice-input{flex:1;padding:6px 10px;font-size:13px}.quiz-q-choice-remove{border:1px solid var(--hairline-soft);background:var(--canvas);cursor:pointer;width:24px;height:24px;color:var(--steel);border-radius:6px}.quiz-q-choice-remove:hover:not(:disabled){color:var(--critical-strong);border-color:var(--critical-soft)}.quiz-q-choice-remove:disabled{opacity:.3;cursor:not-allowed}.quiz-q-choice-add{border:1px dashed var(--hairline);color:var(--charcoal);cursor:pointer;background:0 0;border-radius:6px;align-self:flex-start;padding:6px 12px;font-size:12px}.quiz-q-choice-add:hover:not(:disabled){background:var(--surface-soft);border-color:var(--steel)}.quiz-add-q{width:100%}.quiz-editor-publish{color:var(--charcoal);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:14px;font-weight:500;display:flex}.quiz-editor-publish input{width:16px;height:16px;accent-color:var(--accent-lab)}.quiz-publish-switch{border:1.5px solid var(--hairline-soft);background:var(--canvas);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:12px;align-items:flex-start;gap:12px;padding:14px 16px;transition:border-color .12s,background .12s;display:flex}.quiz-publish-switch.is-on{border-color:var(--accent-lab);background:var(--accent-lab-soft)}.quiz-publish-switch input{opacity:0;width:0;height:0;position:absolute}.quiz-publish-switch-track{background:var(--hairline);border-radius:999px;flex:none;width:40px;height:24px;margin-top:1px;transition:background .15s;position:relative}.quiz-publish-switch.is-on .quiz-publish-switch-track{background:var(--accent-lab)}.quiz-publish-switch-thumb{background:var(--canvas);border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #0003}.quiz-publish-switch.is-on .quiz-publish-switch-thumb{transform:translate(16px)}.quiz-publish-switch-text{flex-direction:column;gap:3px;display:flex}.quiz-publish-switch-text strong{color:var(--ink-deep);font-size:14px}.quiz-publish-switch-hint{color:var(--slate);font-size:12.5px;line-height:1.45}.quiz-editor-footer{align-items:center;gap:8px;padding:16px 0;display:flex}.quiz-editor-footer .flex-1{flex:1}.cw-detail-header{margin:12px 0 24px}.cw-detail-subject{color:var(--slate);font-size:12px;font-weight:600}.cw-detail-title{color:var(--ink-deep);margin:6px 0 8px;font-size:26px;font-weight:700}.cw-detail-summary{color:var(--charcoal);font-size:14px}.cw-detail-meta{color:var(--slate);gap:6px;margin-top:10px;font-size:13px;display:flex}.cw-detail-meta strong{color:var(--ink-deep)}.cw-detail-body{flex-direction:column;gap:24px;display:flex}.cw-detail-section{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:12px;padding:20px}.cw-empty{text-align:center;border:2px dashed var(--hairline);background:var(--surface-soft);border-radius:12px;padding:36px 16px}.cw-chapter-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.cw-chapter-card{border:1px solid var(--hairline-soft);background:var(--canvas);border-radius:10px;align-items:stretch;gap:12px;padding:12px 14px;transition:border-color .12s,box-shadow .12s;display:flex}.cw-chapter-card:hover{border-color:var(--hairline);box-shadow:0 2px 8px #0f172a0f}.cw-chapter-order{flex-direction:column;flex-shrink:0;align-items:center;gap:2px;display:flex}.cw-chapter-num{background:var(--accent-lab-soft);width:28px;height:28px;color:var(--accent-lab);border-radius:8px;font-size:13px;font-weight:700}.cw-chapter-move,.cw-chapter-num{justify-content:center;align-items:center;display:inline-flex}.cw-chapter-move{width:26px;height:22px;color:var(--steel);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;font-size:12px}.cw-chapter-move:hover:not(:disabled){background:var(--surface-soft);border-color:var(--hairline);color:var(--ink-deep)}.cw-chapter-move:disabled{opacity:.3;cursor:not-allowed}.cw-chapter-body{min-width:0;color:inherit;flex:1;text-decoration:none}.cw-chapter-body:hover .cw-chapter-title{color:var(--primary)}.cw-chapter-title{color:var(--ink-deep);align-items:center;gap:6px;font-size:15px;font-weight:600;display:flex}.cw-chapter-body:hover .cw-chapter-title:after{content:" →";color:var(--steel)}.cw-chapter-desc{color:var(--slate);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:13px;overflow:hidden}.cw-chapter-meta{color:var(--steel);margin-top:6px;font-size:12px}.cw-chapter-actions{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:4px;display:flex}.chapter-section{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:12px;overflow:hidden}.chapter-section-head{border-bottom:1px solid var(--surface-soft);background:linear-gradient(180deg,var(--surface-soft) 0,var(--canvas) 100%);padding:16px 18px 12px}.chapter-section-summary{color:var(--charcoal);background:var(--surface-soft);border-radius:999px;gap:4px;margin-top:8px;padding:4px 12px;font-size:12px;display:inline-flex}.chapter-section .catalog-asset-list{padding:12px 14px}.learn-shell{background:var(--surface-soft);flex-direction:column;min-height:100vh;display:flex}.learn-topbar{background:var(--canvas);border-bottom:1px solid var(--surface-soft);z-index:20;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.learn-topbar-back{background:var(--surface-soft);width:32px;height:32px;color:var(--charcoal);border-radius:8px;justify-content:center;align-items:center;font-size:16px;text-decoration:none;display:inline-flex}.learn-topbar-back:hover{background:var(--hairline-soft);color:var(--ink-deep)}.learn-topbar-info{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.learn-topbar-subject{color:var(--slate);font-size:13px}.learn-topbar-sep{color:var(--hairline)}.learn-topbar-title{color:var(--ink-deep);font-size:14px;font-weight:600;text-decoration:none}.learn-topbar-title:hover{color:var(--primary)}.learn-body{flex:1;min-height:calc(100vh - 53px);display:flex}.learn-sidebar{background:var(--canvas);border-right:1px solid var(--surface-soft);flex-direction:column;flex-shrink:0;width:320px;height:calc(100vh - 53px);display:flex;position:sticky;top:53px;overflow-y:auto}.learn-sidebar--collapsed{width:48px}.learn-sidebar-head{border-bottom:1px solid var(--surface-soft);align-items:center;gap:8px;padding:12px;display:flex}.learn-sidebar-toggle{background:var(--surface-soft);width:28px;height:28px;color:var(--charcoal);cursor:pointer;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.learn-sidebar-toggle:hover{background:var(--hairline-soft);color:var(--ink-deep)}.learn-sidebar-course-title{color:var(--ink-deep);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;font-weight:600;overflow:hidden}.learn-sidebar-nav{flex:1;padding:8px 0}.learn-sidebar-empty{text-align:center;color:var(--steel);padding:24px;font-size:13px}.learn-mod{border-bottom:1px solid var(--surface-soft)}.learn-mod-head{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;width:100%;padding:12px 16px;font-family:inherit;display:flex}.learn-mod-head:hover{background:var(--surface-soft)}.learn-mod-title{color:var(--ink-deep);font-size:13px;font-weight:600}.learn-mod-chevron{color:var(--steel);font-size:12px;transition:transform .15s}.learn-mod-chevron.is-open{transform:rotate(180deg)}.learn-mod-items{margin:0 0 8px;padding:0;list-style:none}.learn-mod-empty{color:var(--hairline);padding:8px 16px;font-size:12px}.learn-item{color:inherit;border-left:3px solid #0000;align-items:flex-start;gap:10px;padding:10px 16px 10px 24px;text-decoration:none;transition:background .1s,border-color .1s;display:flex}.learn-item:hover{background:var(--surface-soft)}.learn-item.is-active{background:var(--critical-soft);border-left-color:var(--primary)}.learn-item-icon{background:var(--surface-soft);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;display:inline-flex}.learn-item.is-active .learn-item-icon{background:var(--accent-lab-soft);color:var(--accent-lab)}.learn-item-body{flex:1;min-width:0}.learn-item-title{color:var(--ink-deep);font-size:13px;font-weight:500;line-height:1.4;display:block}.learn-item.is-active .learn-item-title{color:#be185d;font-weight:600}.learn-item-meta{color:var(--steel);margin-top:2px;font-size:11px;display:block}.learn-item-check{color:var(--success);font-weight:700}.learn-main{flex:1;min-width:0;max-width:1100px;padding:32px 40px}.learn-empty{text-align:center;color:var(--slate);padding:60px 20px}.learn-content{background:var(--canvas);border:1px solid var(--surface-soft);border-radius:12px;overflow:hidden}.learn-content-head{border-bottom:1px solid var(--surface-soft);padding:24px 28px 16px}.learn-content-eyebrow{color:var(--slate);margin-bottom:6px;font-size:12px}.learn-content-title{color:var(--ink-deep);font-size:22px;font-weight:700}.learn-content-desc{color:var(--charcoal);white-space:pre-line;margin-top:8px;font-size:14px}.learn-content-body{padding:24px 28px}.learn-iframe{border:1px solid var(--hairline-soft);border-radius:8px;width:100%;min-height:560px}.learn-video-wrap{aspect-ratio:16/9;background:#000;border-radius:8px;width:100%;position:relative;overflow:hidden}.learn-video-wrap iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.learn-editor-cta{border:1px dashed var(--hairline);text-align:center;border-radius:8px;padding:24px}.learn-editor-cta,.learn-nav{background:var(--surface-soft)}.learn-nav{border-top:1px solid var(--surface-soft);justify-content:space-between;align-items:center;padding:16px 28px;display:flex}.course-outline{flex-direction:column;gap:10px;display:flex}.outline-module{border:1px solid var(--hairline-soft);background:var(--canvas);border-radius:12px;overflow:hidden}.outline-module[open]{border-color:var(--hairline)}.outline-module-head{cursor:pointer;color:var(--ink-deep);background:var(--surface-soft);justify-content:space-between;align-items:center;padding:14px 18px;font-size:15px;font-weight:600;list-style:none;display:flex}.outline-module-head::-webkit-details-marker{display:none}.outline-module-head:hover{background:var(--surface-soft)}.outline-module-chevron{color:var(--steel);font-size:14px;transition:transform .15s}.outline-module[open] .outline-module-chevron{transform:rotate(180deg)}.outline-module-desc{color:var(--slate);padding:8px 20px 0;font-size:13px}.outline-item-list{margin:0;padding:8px 8px 12px;list-style:none}.outline-item{border-radius:8px;align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.outline-item-icon,.outline-item:hover{background:var(--surface-soft)}.outline-item-icon{width:28px;height:28px;color:var(--slate);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.outline-item-body{flex:1;min-width:0}.outline-item-title{color:var(--ink-deep);font-size:14px;font-weight:500;line-height:1.4;text-decoration:none;display:block}a.outline-item-title:hover{color:var(--primary);text-decoration:underline}.outline-item-meta{color:var(--steel);margin-top:2px;font-size:12px;display:block}.class-members-grid-more{color:var(--slate);margin:.85rem 0 0;font-size:.825rem}.class-members-grid-more a{color:var(--brand);text-decoration:underline}.member-mgr{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.member-mgr-error,.member-mgr-status{margin:0;padding:1rem;font-size:.85rem}.member-mgr-error{background:var(--critical-soft);color:var(--critical-strong);border-radius:8px}.member-mgr-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.member-mgr-summary{flex-wrap:wrap;gap:.4rem;display:flex}.member-mgr-summary-pill{background:var(--surface-soft);color:var(--charcoal);border-radius:999px;align-items:center;gap:.3rem;padding:.3rem .7rem;font-size:.78rem;font-weight:600;display:inline-flex}.member-mgr-summary-pill--teacher{background:var(--attention-soft);color:var(--attention-ink)}.member-mgr-summary-pill--student{background:var(--primary-soft);color:var(--primary-deep)}.member-mgr-head-actions{gap:.4rem;display:flex}.member-mgr-import{border:1px solid var(--border);background:var(--surface-soft);border-radius:12px;flex-direction:column;gap:.85rem;padding:1rem 1.1rem;display:flex}.member-mgr-import-desc{color:var(--charcoal);margin:0;font-size:.82rem;line-height:1.5}.member-mgr-import-grid{grid-template-columns:1fr 1fr;gap:.7rem;display:grid}@media (max-width:640px){.member-mgr-import-grid{grid-template-columns:1fr}}.member-mgr-import-field{color:var(--charcoal);flex-direction:column;gap:.3rem;font-size:.8rem;display:flex}.member-mgr-import-field span{font-weight:600}.member-mgr-import-field input[type=file],.member-mgr-import-field input[type=text]{border:1px solid var(--border);background:var(--canvas);border-radius:6px;padding:.45rem .65rem;font-family:inherit;font-size:.85rem}.member-mgr-import-textarea{border:1px solid var(--border);resize:vertical;background:var(--canvas);border-radius:6px;padding:.55rem .7rem;font-family:ui-monospace,SF Mono,monospace;font-size:.8rem}.member-mgr-import-preview{background:var(--canvas);border:1px solid var(--border);border-radius:8px;padding:.7rem .85rem}.member-mgr-import-preview-head{color:var(--charcoal);margin:0 0 .4rem;font-size:.8rem}.member-mgr-import-preview-list{color:var(--charcoal);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.25rem 1rem;margin:0;padding:0;font-size:.8rem;list-style:none;display:grid}.member-mgr-import-preview-list code{color:var(--ink-deep);font-size:.78rem}.member-mgr-import-preview-name{color:var(--slate)}.member-mgr-import-preview-more{color:var(--slate);grid-column:1/-1;font-style:italic}.member-mgr-import-actions{gap:.4rem;display:flex}.member-mgr-import-result{background:var(--canvas);border:1px solid var(--border);border-radius:8px;padding:.7rem .85rem;font-size:.85rem}.member-mgr-import-result details{margin-top:.5rem}.member-mgr-import-result-list{flex-direction:column;gap:.2rem;max-height:22rem;margin:.4rem 0 0;padding:0;font-size:.78rem;list-style:none;display:flex;overflow-y:auto}.member-mgr-import-result-list li{border-radius:4px;padding:.3rem .55rem}.member-mgr-import-result-created{background:var(--success-soft);color:var(--success-ink)}.member-mgr-import-result-added{background:var(--primary-soft);color:var(--primary-deep)}.member-mgr-import-result-skipped{background:var(--surface-soft);color:var(--charcoal)}.member-mgr-import-result-error{background:var(--critical-soft);color:var(--critical-strong)}.member-mgr-import-result-msg{opacity:.8}.member-mgr-analytics{border:1px solid var(--border);background:linear-gradient(135deg,var(--surface-soft) 0,var(--surface-soft) 100%);border-radius:12px;margin:1rem 0;padding:.9rem 1rem}.member-mgr-analytics-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;display:flex}.member-mgr-analytics-toggle{font:inherit;color:var(--ink-deep);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:.4rem;padding:.25rem .4rem;font-size:.9375rem;font-weight:700;display:inline-flex}.member-mgr-analytics-toggle:hover{background:#0f172a0d}.member-mgr-analytics-meta{color:var(--muted);margin-left:.4rem;font-size:.75rem;font-weight:500}.member-mgr-analytics-tabs{background:var(--canvas);border:1px solid var(--border);border-radius:8px;gap:2px;padding:2px;display:inline-flex}.member-mgr-analytics-tab{font:inherit;color:var(--slate);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.35rem .75rem;font-size:.8125rem;font-weight:600}.member-mgr-analytics-tab:hover{color:var(--brand)}.member-mgr-analytics-tab.is-active{background:var(--brand);color:var(--canvas)}.member-mgr-mat-list{flex-direction:column;gap:.3rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.member-mgr-mat-row{background:var(--canvas);border:1px solid var(--border);border-radius:8px;grid-template-columns:4rem minmax(0,1fr) 10rem 5.5rem;align-items:center;gap:.5rem;padding:.35rem .55rem;font-size:.8125rem;display:grid}.member-mgr-mat-unit{color:var(--brand);background:var(--accent-lab-soft);text-align:center;border-radius:999px;padding:.1rem .5rem;font-size:.6875rem;font-weight:700}.member-mgr-mat-title{white-space:nowrap;text-overflow:ellipsis;color:var(--ink-deep);font-weight:500;overflow:hidden}.member-mgr-mat-bar{background:var(--surface-soft);border-radius:999px;height:10px;position:relative;overflow:hidden}.member-mgr-mat-bar-fill{border-radius:inherit;transition:width .18s;position:absolute;inset:0 auto 0 0}.member-mgr-mat-bar-fill.is-low{background:var(--critical-soft)}.member-mgr-mat-bar-fill.is-mid{background:var(--attention)}.member-mgr-mat-bar-fill.is-high{background:var(--success)}.member-mgr-mat-count{font-variant-numeric:tabular-nums;color:var(--muted);text-align:right;font-size:.75rem;font-weight:600}.member-mgr-matrix-wrap{border:1px solid var(--border);background:var(--canvas);border-radius:8px;margin-top:.75rem;overflow-x:auto}.member-mgr-matrix{border-collapse:collapse;table-layout:fixed;font-size:.75rem}.member-mgr-matrix td,.member-mgr-matrix th{border:1px solid var(--hairline-soft);text-align:center;background:var(--canvas);padding:0;font-weight:500}.member-mgr-matrix-corner{color:var(--muted);text-align:left;z-index:2;min-width:8rem;font-size:.6875rem;font-weight:700;position:sticky;left:0;background:var(--surface-soft)!important;padding:.3rem .5rem!important}.member-mgr-matrix-col{width:1.6rem;color:var(--muted);background:var(--surface-soft);font-size:.65rem;font-weight:700;padding:.25rem 0!important}.member-mgr-matrix-name{text-align:left;color:var(--ink-deep);white-space:nowrap;text-overflow:ellipsis;z-index:1;min-width:8rem;font-weight:600;position:sticky;left:0;overflow:hidden;background:var(--surface-soft)!important;padding:.3rem .55rem!important}.member-mgr-matrix-cell{width:1.6rem;height:1.6rem;color:var(--steel)}.member-mgr-matrix-cell.is-viewed{background:var(--success-soft);color:var(--success-ink);font-weight:700}.member-mgr-matrix-total,.member-mgr-matrix-totalcol{font-variant-numeric:tabular-nums;color:var(--ink-deep);font-weight:700;background:var(--surface-soft)!important;padding:.25rem .5rem!important}.member-mgr-matrix-legend{color:var(--muted);margin:.5rem .25rem 0;font-size:.6875rem}.member-mgr-toolbar{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.member-mgr-search{border:1px solid var(--border);background:var(--canvas);border-radius:8px;flex:1;min-width:220px;padding:.5rem .8rem;font-size:.9rem}.member-mgr-filter{border:1px solid var(--border);background:var(--canvas);border-radius:999px;display:inline-flex;overflow:hidden}.member-mgr-filter-btn{color:var(--charcoal);cursor:pointer;background:0 0;border:0;padding:.45rem .85rem;font-size:.82rem;font-weight:500}.member-mgr-filter-btn.is-active{background:var(--brand);color:var(--canvas)}.member-mgr-empty{text-align:center;background:var(--surface-soft);color:var(--slate);border-radius:8px;margin:1rem 0;padding:1.25rem;font-size:.85rem}.member-mgr-table-wrap{border:1px solid var(--border);background:var(--canvas);border-radius:10px;overflow-x:auto}.member-mgr-table{border-collapse:collapse;width:100%;font-size:.875rem}.member-mgr-table thead th{background:var(--surface-soft);text-align:left;color:var(--charcoal);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:.65rem .85rem;font-size:.78rem;font-weight:700}.member-mgr-table tbody td{border-bottom:1px solid var(--surface-soft);color:var(--ink-deep);padding:.6rem .85rem}.member-mgr-table tbody tr:last-child td{border-bottom:none}.member-mgr-table tbody tr.is-busy{opacity:.5}.member-mgr-table-num{text-align:right;font-variant-numeric:tabular-nums}.member-mgr-sort-th{cursor:pointer;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;font-weight:inherit;background:0 0;border:0;align-items:center;gap:5px;margin:0;padding:0;display:inline-flex}.member-mgr-sort-th:hover{color:var(--accent-lab)}.member-mgr-sort-th:focus-visible{outline:2px solid var(--accent-lab-soft);outline-offset:2px;border-radius:4px}.member-mgr-sort-ic{color:var(--hairline);font-size:.7rem}.member-mgr-sort-ic.is-active{color:var(--accent-lab)}.member-mgr-name{gap:.55rem}.member-mgr-avatar,.member-mgr-name{align-items:center;display:inline-flex}.member-mgr-avatar{background:var(--accent-lab-soft);width:1.8rem;height:1.8rem;color:var(--accent-lab);border-radius:50%;justify-content:center;font-size:.85rem;font-weight:700}.member-mgr-avatar--teacher{background:var(--attention-soft);color:var(--attention-ink)}.member-mgr-tag-me{color:var(--brand);font-size:.75rem;font-weight:600}.member-mgr-tag-owner{color:var(--attention-ink);margin-left:.2rem;font-size:.72rem;font-weight:600}.member-mgr-email a{color:var(--charcoal);text-decoration:none}.member-mgr-email a:hover{color:var(--brand);text-decoration:underline}.member-mgr-role-badge{background:var(--primary-soft);color:var(--primary-deep);border-radius:999px;padding:.18rem .55rem;font-size:.7rem;font-weight:700;display:inline-block}.member-mgr-role-badge--teacher{background:var(--attention-soft);color:var(--attention-ink)}.member-mgr-actions{white-space:nowrap;justify-content:flex-end;gap:.3rem;display:flex}.btn.btn-xs{border-radius:5px;padding:.25rem .55rem;font-size:.72rem}.btn.btn-danger-outline{background:var(--canvas);border:1px solid var(--critical-soft);color:var(--critical-strong)}.btn.btn-danger-outline:hover{background:var(--critical-soft);border-color:var(--critical)}.teacher-settings-nav-wrap{margin-bottom:1.5rem}.teacher-settings-nav-crumb{color:var(--slate);align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.8rem;display:flex}.teacher-settings-nav-crumb a{color:var(--charcoal);text-decoration:none}.teacher-settings-nav-crumb a:hover{color:var(--brand);text-decoration:underline}.teacher-settings-nav-crumb-sep{color:var(--hairline)}.teacher-settings-nav-crumb-tag{color:var(--slate);font-weight:600}.teacher-settings-nav{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.5rem;padding-bottom:0;display:flex}.teacher-settings-nav-tab{color:var(--charcoal);background:0 0;border:1px solid #0000;border-bottom:none;border-radius:10px 10px 0 0;align-items:center;gap:.65rem;padding:.7rem 1rem;text-decoration:none;transition:background .12s,color .12s,border-color .12s;display:inline-flex;position:relative;top:1px}.teacher-settings-nav-tab:hover{background:var(--surface-soft);color:var(--ink-deep)}.teacher-settings-nav-tab--active{background:var(--canvas);color:var(--ink-deep);border-color:var(--border)}.teacher-settings-nav-tab--active:after{content:"";background:var(--canvas);height:1px;position:absolute;inset:auto 0 -1px}.teacher-settings-nav-tab-icon{font-size:1.1rem}.teacher-settings-nav-tab-text{flex-direction:column;gap:.1rem;line-height:1.2;display:flex}.teacher-settings-nav-tab-label{font-size:.92rem;font-weight:700}.teacher-settings-nav-tab-desc{color:var(--steel);font-size:.72rem;font-weight:400}.teacher-settings-nav-tab--active .teacher-settings-nav-tab-desc{color:var(--slate)}.snippet-page-head{margin-top:.5rem}.block-cat-mgr{border:1px solid var(--border);background:var(--canvas);border-radius:12px;margin-top:2rem;padding:1.25rem 1.4rem}.block-cat-mgr-head{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.block-cat-mgr-title{color:var(--ink-deep);margin:0;font-size:1.1rem;font-weight:700}.block-cat-mgr-desc{color:var(--slate);margin:.35rem 0 0;font-size:.8rem;line-height:1.5}.block-cat-mgr-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.block-cat-mgr-saved{color:var(--success);font-size:.75rem;font-weight:600}.block-cat-mgr-status{color:var(--slate);margin:0;padding:1rem;font-size:.85rem}.block-cat-mgr-error{background:var(--critical-soft);color:var(--critical-strong);border-radius:6px;margin:.5rem 0;padding:.55rem .75rem;font-size:.8rem}.block-cat-mgr-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:.35rem;margin-bottom:.85rem;padding-bottom:.75rem;display:flex}.block-cat-mgr-tab{border:1px solid var(--border);background:var(--surface-soft);color:var(--charcoal);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .7rem;font-size:.8rem;font-weight:600;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.block-cat-mgr-tab:hover{background:var(--accent-lab-soft);border-color:var(--brand);color:var(--brand)}.block-cat-mgr-tab--active{background:var(--brand);color:var(--canvas);border-color:var(--brand)}.block-cat-mgr-tab--active .block-cat-mgr-tab-badge{color:var(--canvas);background:#ffffff40}.block-cat-mgr-tab-badge{background:var(--accent-lab-soft);color:var(--brand);border-radius:999px;padding:.05rem .4rem;font-size:.7rem;font-weight:700;line-height:1.4}.block-cat-mgr-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.block-cat-mgr-scope-label{color:var(--charcoal);margin:0;font-size:.85rem}.block-cat-mgr-scope-hint{color:var(--steel);font-style:italic}.block-cat-mgr-toolbar-actions{flex-wrap:wrap;gap:.35rem;display:flex}.block-cat-mgr-groups{flex-direction:column;gap:1rem;display:flex}.block-cat-mgr-group{border:1px solid var(--border);background:var(--surface-soft);border-radius:10px;margin:0;padding:.85rem 1rem 1rem}.block-cat-mgr-group-title{color:var(--charcoal);background:var(--surface-soft);padding:0 .4rem;font-size:.78rem;font-weight:700}.block-cat-mgr-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.45rem;margin:.55rem 0 0;padding:0;list-style:none;display:grid}.block-cat-mgr-item{border:1px solid var(--border);background:var(--canvas);border-radius:8px;transition:border-color .12s,background .12s}.block-cat-mgr-item.is-checked{border-color:var(--brand);background:var(--accent-lab-soft)}.block-cat-mgr-item.is-locked{background:var(--attention-soft);border-color:var(--attention)}.block-cat-mgr-item-label{cursor:pointer;align-items:center;gap:.55rem;padding:.55rem .7rem;font-size:.85rem;display:flex}.block-cat-mgr-item.is-locked .block-cat-mgr-item-label{cursor:default}.block-cat-mgr-item-text{flex-direction:column;flex:1;gap:.05rem;min-width:0;display:flex}.block-cat-mgr-item-name{color:var(--ink-deep);font-weight:500;line-height:1.25}.block-cat-mgr-item-key{color:var(--steel);font-family:ui-monospace,SF Mono,monospace;font-size:.68rem}.block-cat-mgr-item-lock{opacity:.65;font-size:.85rem}.block-cat-mgr-foot{justify-content:flex-end;margin-top:1rem;display:flex}.class-project-table-wrap{margin-top:.5rem}.class-project-table-owner-cell{white-space:nowrap;align-items:center;gap:.5rem;display:flex}.class-project-table-owner-name{color:var(--charcoal);font-size:.85rem;font-weight:500}.class-project-table-owner-tag{background:var(--attention-soft);color:var(--attention-ink);border-radius:999px;margin-left:.4rem;padding:.1rem .45rem;font-size:.7rem;font-weight:600}.quick-create-root{display:inline-block;position:relative}.quick-create-trigger{align-items:center;gap:.45rem;display:inline-flex}.quick-create-caret{opacity:.85;font-size:.75rem;line-height:1}.quick-create-pop{background:var(--canvas);width:26rem;max-width:calc(100vw - 2rem);color:var(--ink-deep);border:1px solid var(--border);z-index:1000;border-radius:14px;padding:.85rem;position:fixed;box-shadow:0 18px 50px #0f172a38}.quick-create-header{color:var(--slate);margin:0 .15rem .55rem;font-size:.75rem;font-weight:600}.quick-create-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.quick-create-card{color:var(--canvas);cursor:pointer;text-align:left;border:0;border-radius:10px;flex-direction:column;align-items:flex-start;gap:.2rem;min-height:5.6rem;padding:.75rem .8rem;transition:transform .12s,box-shadow .12s,filter .12s;display:flex;position:relative;box-shadow:0 4px 14px #0f172a1f}.quick-create-card:hover:not(:disabled){filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 8px 22px #0f172a38}.quick-create-card:disabled{cursor:progress;opacity:.75}.quick-create-card-icon{font-size:1.35rem;line-height:1}.quick-create-card-label{font-size:.9rem;font-weight:700}.quick-create-card-hint{opacity:.92;font-size:.7rem;line-height:1.25}.quick-create-card-loading{background:#00000047;border-radius:999px;padding:.1rem .5rem;font-size:.65rem;font-weight:600;position:absolute;top:.55rem;right:.55rem}.quick-create-target{color:var(--charcoal);align-items:center;gap:.4rem;margin-top:.7rem;font-size:.75rem;display:flex}.quick-create-target-label{font-weight:600}.quick-create-target-opt{border:1px solid var(--border);cursor:pointer;background:var(--surface-soft);border-radius:999px;align-items:center;gap:.25rem;padding:.2rem .5rem;display:inline-flex}.quick-create-target-opt input{display:none}.quick-create-target-opt.is-active{border-color:var(--brand);background:var(--accent-lab-soft);color:var(--brand);font-weight:600}.quick-create-error{color:var(--critical-strong);background:var(--critical-soft);border-radius:6px;margin:.55rem 0 0;padding:.35rem .55rem;font-size:.78rem}.quick-create-divider{background:var(--border);height:1px;margin:.75rem 0 .5rem}.quick-create-detail{text-align:center;width:100%;color:var(--charcoal);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:.45rem .6rem;font-size:.78rem;font-weight:600;display:block}.quick-create-detail:hover:not(:disabled){background:var(--surface-soft);color:var(--brand)}.quick-create-detail:disabled{opacity:.5;cursor:not-allowed}.lp-hero{isolation:isolate;position:relative;overflow:hidden}.lp-hero>.lp-container.lp-hero-inner{z-index:1;position:relative}@keyframes lp-aurora{0%{background-position:50%,50%}to{background-position:350%,350%}}.lp-aurora-bg{--aurora-white:var(--canvas);--aurora-transparent:#fff0;--aurora-stops:repeating-linear-gradient(100deg,#4f86ff 10%,#a3b8ff 15%,#7ea7ff 20%,#d6c8ff 25%,#5b8def 30%);--aurora-mask:repeating-linear-gradient(100deg,var(--aurora-white) 0%,var(--aurora-white) 7%,var(--aurora-transparent) 10%,var(--aurora-transparent) 12%,var(--aurora-white) 16%);z-index:0;pointer-events:none;filter:blur(10px)invert();opacity:.5;will-change:transform,background-position;background-size:300% 200%,200% 100%;inset:-10px;-webkit-mask-image:radial-gradient(at 100% 0,#000 10%,#0000 70%);mask-image:radial-gradient(at 100% 0,#000 10%,#0000 70%)}.lp-aurora-bg,.lp-aurora-bg:after{background-image:var(--aurora-mask),var(--aurora-stops);background-position:50%,50%;position:absolute}.lp-aurora-bg:after{content:"";mix-blend-mode:difference;background-size:200% 100%;animation:lp-aurora 60s linear infinite;inset:0}@media (prefers-reduced-motion:reduce){.lp-aurora-bg:after{animation:none}}.lp-bento{grid-template-columns:1fr;gap:16px;display:grid}@media (min-width:640px){.lp-bento{grid-template-columns:repeat(2,1fr)}}@media (min-width:1024px){.lp-bento{grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(200px,auto)}.lp-bento-card--featured{grid-area:span 2/span 2}}.lp-bento-card{min-height:220px;color:var(--canvas);border-radius:20px;flex-direction:column;justify-content:space-between;padding:28px;transition:transform .3s,box-shadow .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 4px 16px #0f172a14}.lp-bento-card:hover{transform:translateY(-4px);box-shadow:0 14px 36px #0f172a2e}.lp-bento-card:after{content:"";pointer-events:none;background:radial-gradient(#ffffff59 0,#0000 60%);width:60%;height:80%;position:absolute;top:-40%;right:-20%}.lp-bento-head{z-index:1;align-items:baseline;gap:10px;display:flex;position:relative}.lp-bento-tag{letter-spacing:.08em;text-transform:uppercase;opacity:.85;font-size:.72rem;font-weight:700}.lp-bento-num{opacity:.7;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;font-weight:600}.lp-bento-body{z-index:1;margin-top:auto;position:relative}.lp-bento-title{margin:0 0 10px;font-size:1.45rem;font-weight:700;line-height:1.3}.lp-bento-card--featured .lp-bento-title{font-size:2rem;line-height:1.2}.lp-bento-desc{opacity:.95;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.92rem;line-height:1.6;display:-webkit-box;overflow:hidden}.lp-bento-card--featured .lp-bento-desc{-webkit-line-clamp:6;font-size:1.05rem}.lp-bento-card--purple{background:linear-gradient(135deg,var(--accent-lab) 0,var(--accent-lab) 100%)}.lp-bento-card--blue{background:linear-gradient(135deg,var(--primary) 0,var(--primary) 100%)}.lp-bento-card--orange{background:linear-gradient(135deg,var(--attention) 0,#f97316 100%)}.lp-bento-card--pink{background:linear-gradient(135deg,#f472b6 0,var(--accent-lab) 100%)}.lp-bento-card--green{background:linear-gradient(135deg,var(--success) 0,var(--success) 100%)}@media (prefers-reduced-motion:reduce){.lp-bento-card,.lp-bento-card:hover{transition:none;transform:none}}@keyframes login-v2-spin{to{transform:rotate(1turn)}}.login-v2{background:var(--canvas);flex-direction:column;min-height:100vh;display:flex}@media (min-width:1024px){.login-v2{flex-direction:row}}.login-v2-hero{background:var(--ink-deep);color:var(--canvas);padding:var(--sp-section-sm);flex:1;justify-content:center;align-items:center;display:none;position:relative;overflow:hidden}@media (min-width:1024px){.login-v2-hero{display:flex}}.login-v2-wafer{aspect-ratio:1;border-radius:var(--r-circle);pointer-events:none;opacity:.5;background:radial-gradient(circle at 34% 30%,var(--primary) 0 3px,transparent 3.5px),radial-gradient(circle at 38% 34%,var(--primary) 0 3px,transparent 3.5px),radial-gradient(circle at 42% 38%,var(--primary) 0 3px,transparent 3.5px),radial-gradient(circle at 46% 42%,var(--primary) 0 3px,transparent 3.5px),radial-gradient(circle at 50% 46%,var(--primary) 0 3px,transparent 3.5px),radial-gradient(circle at 68% 62%,var(--primary) 0 3px,transparent 3.5px),radial-gradient(circle at 72% 66%,var(--primary) 0 3px,transparent 3.5px),radial-gradient(circle at 64% 68%,var(--primary) 0 3px,transparent 3.5px),repeating-linear-gradient(to right,#ffffff1a 0 1px,transparent 1px 34px),repeating-linear-gradient(to bottom,#ffffff1a 0 1px,transparent 1px 34px);width:min(78vh,620px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 1px #ffffff29;-webkit-mask-image:radial-gradient(circle at 50% 100%,#0000 0 9%,#000 9.2%);mask-image:radial-gradient(circle at 50% 100%,#0000 0 9%,#000 9.2%)}.login-v2-hero-inner{z-index:1;text-align:center;max-width:440px;position:relative}.login-v2-icon-badge{border-radius:var(--r-circle);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--canvas);margin-bottom:var(--sp-xl);background:#ffffff1f;justify-content:center;align-items:center;padding:16px;display:inline-flex}.login-v2-hero-title{margin:0 0 var(--sp-base);color:var(--canvas);font-size:clamp(2rem,3.4vw,3rem);font-weight:600;line-height:1.17}.login-v2-hero-desc{margin:0 0 var(--sp-xs);color:#ffffffc7;font-size:18px;font-weight:400;line-height:1.44}.login-v2-progress{justify-content:center;gap:8px;margin-top:24px;display:flex}.login-v2-progress-dot{border-radius:var(--r-circle);background:#ffffff59;width:8px;height:8px}.login-v2-progress-dot--active{background:#fffffff2}.login-v2-hero-points{flex-direction:column;gap:.6rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.login-v2-hero-points li{color:#ffffffe0;align-items:flex-start;gap:.6rem;font-size:.875rem;line-height:1.55;display:flex}.login-v2-hero-points li>span:first-child{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffff29;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.875rem;display:inline-flex}.login-v2-form-wrap{padding:var(--sp-xxl) var(--sp-xl);background:var(--canvas);flex:1;justify-content:center;align-items:center;display:flex}@media (min-width:640px){.login-v2-form-wrap{padding:var(--sp-section-sm)}}.login-v2-form-inner{width:100%;max-width:420px}.login-v2-form-header{text-align:center;margin-bottom:28px}.login-v2-brand{letter-spacing:-.14px;color:var(--ink-deep);margin:0 0 .5rem;font-size:14px;font-weight:700;line-height:1.43}.login-v2-title{letter-spacing:-.02em;color:var(--ink-deep);margin:0 0 8px;font-size:28px;font-weight:600;line-height:1.21}.login-v2-subtitle{letter-spacing:-.14px;color:var(--slate);margin:0;font-size:14px;line-height:1.43}.login-v2-card{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);padding:var(--sp-xl);box-shadow:0 1px 2px #0f172a0a}@media (min-width:640px){.login-v2-card{padding:32px}}.login-v2-notice{margin:0 0 var(--sp-base);padding:var(--sp-sm) var(--sp-base);letter-spacing:-.14px;color:var(--primary-deep);background:var(--primary-soft);border-radius:var(--r-lg);border:1px solid #0000;font-size:14px;line-height:1.43}.login-v2-notice--warn{color:var(--ink-deep);background:#f7b9282e;border-color:#0000}.login-v2-error{margin:0 0 var(--sp-base);padding:var(--sp-sm) var(--sp-base);letter-spacing:-.14px;color:var(--critical-strong);border:1px solid var(--critical-strong);border-radius:var(--r-lg);background:#e41e3f14;font-size:14px;line-height:1.43}.login-v2-form{gap:18px}.login-v2-field,.login-v2-form{flex-direction:column;display:flex}.login-v2-field{gap:8px}.login-v2-label{letter-spacing:-.14px;color:var(--ink-deep);font-size:14px;font-weight:700;line-height:1.43}.login-v2-input-wrap{position:relative}.login-v2-input-icon{width:16px;height:16px;color:var(--stone);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.login-v2-input{border-radius:var(--r-lg);border:1px solid var(--hairline);background:var(--canvas);width:100%;height:44px;color:var(--ink);letter-spacing:-.14px;padding:0 12px 0 40px;font-size:14px;transition:border-color .2s,box-shadow .2s}.login-v2-input::placeholder{color:var(--steel)}.login-v2-input:focus{border-color:var(--fb-blue);box-shadow:inset 0 0 0 1px var(--fb-blue);outline:none}.login-v2-input:disabled{background:var(--surface-soft);cursor:not-allowed}.login-v2-input--with-toggle{padding-right:44px}.login-v2-toggle{width:32px;height:32px;color:var(--steel);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;transition:color .2s,background .2s;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.login-v2-toggle:hover{color:var(--ink-deep);background:var(--surface-soft)}.login-v2-row{justify-content:flex-end;align-items:center;font-size:.875rem;display:flex}.login-v2-link{color:var(--link);font-weight:700;text-decoration:none;transition:opacity .2s}.login-v2-link:hover{opacity:.8}.login-v2-submit{letter-spacing:-.14px;width:100%;height:44px;color:var(--on-primary);background:var(--primary);border-radius:var(--r-full);cursor:pointer;border:2px solid #0000;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:700;transition:background .15s;display:inline-flex}.login-v2-submit:active:not(:disabled),.login-v2-submit:hover:not(:disabled){background:var(--primary-deep)}.login-v2-submit:disabled{opacity:.7;cursor:not-allowed}.login-v2-spinner{border:2px solid #f8fafc59;border-bottom:2px solid var(--surface-soft);border-radius:50%;width:16px;height:16px;animation:css-loader-circle-rotation 1s linear infinite}.login-v2-footer-links{color:var(--slate);flex-wrap:wrap;justify-content:center;gap:6px 10px;margin:24px 0 0;font-size:.85rem;display:flex}.login-v2-footer-links a{color:var(--charcoal);text-decoration:none}.login-v2-footer-links a:hover{color:var(--ink-deep);text-decoration:underline}.login-v2-input--error{border-color:var(--critical-soft)!important;box-shadow:0 0 0 3px #f871712e!important}.login-v2-field-hint{color:var(--slate);margin:.3rem 0 0;font-size:.75rem}.login-v2-field-hint--error{color:var(--critical-strong)}.login-v2-strength{align-items:center;gap:.55rem;margin:.4rem 0 0;display:flex}.login-v2-strength-bars{flex:1;gap:3px;display:flex}.login-v2-strength-bars>span{background:var(--hairline-soft);border-radius:999px;flex:1;height:4px;transition:background .15s}.login-v2-strength--1 .login-v2-strength-bars>span:nth-child(-n+1){background:var(--critical)}.login-v2-strength--2 .login-v2-strength-bars>span:nth-child(-n+2){background:var(--attention)}.login-v2-strength--3 .login-v2-strength-bars>span{background:var(--success)}.login-v2-strength-label{color:var(--slate);letter-spacing:-.005em;white-space:nowrap;font-size:.6875rem;font-weight:600}.login-v2-strength--1 .login-v2-strength-label{color:var(--critical-strong)}.login-v2-strength--2 .login-v2-strength-label{color:var(--attention-ink)}.login-v2-strength--3 .login-v2-strength-label{color:var(--success-ink)}.login-v2-terms{color:var(--steel);text-align:center;margin:.75rem 0 0;font-size:.75rem;line-height:1.55}.login-v2-terms a{color:var(--charcoal);text-underline-offset:2px;text-decoration:underline}.login-v2-terms a:hover{color:var(--ink-deep)}@media (prefers-reduced-motion:reduce){.login-v2-spinner{animation:none}}.compose-page{flex-direction:column;gap:1rem;max-width:1100px;margin:0 auto;padding:1.25rem 1.5rem 3rem;display:flex}.compose-page--inline{gap:.85rem;max-width:none;margin:0;padding:1rem 1.25rem 1.5rem}.compose-page--inline .compose-page-title{font-size:1.125rem}.compose-page--inline .compose-page-editor .jodit-container{min-height:50vh}.compose-page--inline .compose-page-editor .jodit-wysiwyg{min-height:45vh}.compose-page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.compose-page-header-info{flex:auto;min-width:0}.compose-page-crumbs{color:var(--slate);margin:0 0 .25rem;font-size:.8125rem}.compose-page-crumbs a{color:var(--charcoal);text-decoration:none}.compose-page-crumbs a:hover{color:var(--ink-deep);text-decoration:underline}.compose-page-title{color:var(--ink-deep);margin:0;font-size:1.375rem;font-weight:700}.compose-page-pair-hint{color:var(--primary-deep);background:var(--primary-soft);border:1px solid #a5f3fc;border-radius:8px;margin:.4rem 0 0;padding:.4rem .6rem;font-size:.8125rem;display:inline-block}.compose-page-header-actions{flex-shrink:0;gap:.5rem;display:flex}.compose-page-titlefield{display:block}.compose-page-titleinput{border:1px solid var(--border);width:100%;color:var(--ink-deep);background:#fff;border-radius:10px;padding:.65rem .85rem;font-size:1.125rem;font-weight:600}.compose-page-titleinput:focus{border-color:var(--accent-lab);outline:none;box-shadow:0 0 0 3px #6366f126}.compose-page-editor{border:1px solid var(--border);background:#fff;border-radius:12px;padding:.25rem}.compose-page-editor .jodit-container,.compose-page-editor .rich-text-editor{min-height:60vh}.compose-page-editor .jodit-wysiwyg{min-height:55vh}.jodit-wysiwyg ol,.jodit-wysiwyg ul{list-style:revert;padding:revert;margin:revert}.jodit-wysiwyg ul{list-style-type:disc}.jodit-wysiwyg ol{list-style-type:decimal}.jodit-wysiwyg ul ul{list-style-type:circle}.jodit-wysiwyg ul ul ul{list-style-type:square}.jodit-wysiwyg li{display:list-item}.jodit-wysiwyg blockquote{border-left:4px solid var(--hairline);color:var(--charcoal);margin:revert;padding:.25rem .75rem}.jodit-wysiwyg h1,.jodit-wysiwyg h2,.jodit-wysiwyg h3,.jodit-wysiwyg h4{font-weight:revert;font-size:revert;margin:revert}.jodit-wysiwyg hr{border-top:1px solid var(--hairline-soft);margin:.75rem 0}.jodit-wysiwyg table{border-collapse:collapse}.jodit-wysiwyg table td,.jodit-wysiwyg table th{border:1px solid var(--hairline);padding:.25rem .5rem}.jodit-wysiwyg a{color:var(--primary);text-decoration:underline}.jodit-wysiwyg pre{background:var(--ink-deep);color:var(--surface-soft);white-space:pre;border-radius:8px;margin:.5rem 0;padding:.85rem 1rem;font-size:.85rem;line-height:1.55;overflow:auto}.jodit-wysiwyg code,.jodit-wysiwyg pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.jodit-wysiwyg code{background:var(--surface-soft);color:#be185d;border-radius:4px;padding:.1em .4em;font-size:.875em}.jodit-wysiwyg pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.compose-page-error{color:var(--critical-strong);background:var(--critical-soft);border:1px solid var(--critical-soft);border-radius:8px;margin:.5rem 0 0;padding:.5rem .75rem;font-size:.875rem}.edit-richtext-redirect{margin:.75rem 0}.edit-richtext-redirect-label{color:var(--charcoal);margin:0 0 .4rem;font-size:.8125rem;font-weight:600}.edit-richtext-redirect-link{align-items:center;gap:.4rem;text-decoration:none;display:inline-flex}.material-draft-source-mini-btn--compose{background:var(--primary-soft);border-color:var(--primary)!important;color:var(--primary-deep)!important}.css-loader-circle{--loader-track:var(--hairline-soft);--loader-accent:var(--accent-lab);--loader-size:1px;width:calc(48 * var(--loader-size));height:calc(48 * var(--loader-size));border:calc(5 * var(--loader-size)) solid var(--loader-track);border-bottom-color:var(--loader-accent);box-sizing:border-box;border-radius:50%;flex-shrink:0;animation:css-loader-circle-rotation 1s linear infinite;display:inline-block}.css-loader-circle--sm{--loader-size:.5px}.css-loader-circle--md{--loader-size:.7px}.css-loader-circle--lg{--loader-size:1px}@keyframes css-loader-circle-rotation{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.css-loader-circle{border-bottom-color:var(--loader-accent);opacity:.85;animation:none}}.morphing-spinner-shape{--loader-track:var(--hairline-soft);--loader-accent:var(--accent-lab);--loader-size:1px;border:calc(5 * var(--loader-size)) solid var(--loader-track);border-bottom-color:var(--loader-accent);box-sizing:border-box;background:0 0;border-radius:50%;width:100%;height:100%;animation:css-loader-circle-rotation 1s linear infinite;display:inline-block}.driver-active .driver-overlay{fill:var(--ink-deep)!important}.driver-popover.hypy-tour-popover{color:var(--ink-deep);border:1px solid var(--hairline-soft);background:#fff;border-radius:16px;max-width:360px;padding:1.1rem 1.25rem 1rem;box-shadow:0 20px 50px -10px #0f172a59}.driver-popover.hypy-tour-popover .driver-popover-title{color:var(--ink-deep);letter-spacing:-.01em;margin:0 0 .5rem;font-size:1.05rem;font-weight:800}.driver-popover.hypy-tour-popover .driver-popover-description{color:var(--charcoal);font-size:.875rem;line-height:1.6}.driver-popover.hypy-tour-popover .driver-popover-progress-text{color:var(--steel);letter-spacing:.04em;font-size:.6875rem;font-weight:700}.driver-popover.hypy-tour-popover .driver-popover-footer{border-top:1px solid var(--surface-soft);margin-top:.85rem;padding-top:.85rem}.driver-popover.hypy-tour-popover .driver-popover-navigation-btns{gap:.4rem;display:flex}.driver-popover.hypy-tour-popover .driver-popover-next-btn,.driver-popover.hypy-tour-popover .driver-popover-prev-btn{letter-spacing:-.14px;border-radius:var(--r-full);cursor:pointer;text-shadow:none;background-image:none;border:0;padding:.42rem .95rem;font-size:13px;font-weight:700;transition:transform .1s,background .12s,box-shadow .12s}.driver-popover.hypy-tour-popover .driver-popover-prev-btn{background:var(--surface-soft);color:var(--charcoal)}.driver-popover.hypy-tour-popover .driver-popover-prev-btn:hover{background:var(--hairline-soft);color:var(--ink-deep)}.driver-popover.hypy-tour-popover .driver-popover-close-btn{color:var(--charcoal);letter-spacing:-.14px;border-radius:var(--r-full);cursor:pointer;background:0 0;border:2px solid #0a13171f;align-items:center;gap:.25rem;width:auto;height:auto;margin-right:auto;padding:.42rem .95rem;font-size:13px;font-weight:700;line-height:1.2;text-decoration:none;transition:background .12s,border-color .12s,color .12s,transform .1s;display:inline-flex;position:static;top:auto;right:auto}.driver-popover.hypy-tour-popover .driver-popover-close-btn:hover{background:var(--surface-soft);color:var(--ink-deep);border-color:var(--steel);transform:translateY(-1px)}.driver-popover.hypy-tour-popover .driver-popover-next-btn{background:var(--ink-button);color:var(--on-ink-button);box-shadow:none}.driver-popover.hypy-tour-popover .driver-popover-next-btn:hover{background:var(--charcoal);color:var(--on-ink-button);transform:translateY(-1px)}.driver-popover.hypy-tour-popover .driver-popover-arrow-side-bottom.driver-popover-arrow,.driver-popover.hypy-tour-popover .driver-popover-arrow-side-left.driver-popover-arrow,.driver-popover.hypy-tour-popover .driver-popover-arrow-side-right.driver-popover-arrow,.driver-popover.hypy-tour-popover .driver-popover-arrow-side-top.driver-popover-arrow{border-color:#fff}.profile-help-card{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem;display:flex}.profile-help-title{color:var(--ink-deep);margin:0 0 .3rem;font-size:1rem;font-weight:700}.profile-help-desc{color:var(--slate);margin:0;font-size:.8125rem;line-height:1.55}.quizp{flex-direction:column;gap:1.25rem;max-width:760px;margin:0 auto;padding:.5rem .25rem 1.25rem;display:flex}.quizp-progress{flex-wrap:wrap;align-items:center;gap:.35rem;padding:.5rem 0;display:flex}.quizp-progress-dot{color:#fff;cursor:pointer;border:0;border-radius:999px;flex:1 1 0;justify-content:center;align-items:center;min-width:2rem;height:1.75rem;font-size:.75rem;font-weight:700;transition:transform .12s,box-shadow .12s,background .12s;display:inline-flex;position:relative}.quizp-progress-dot--todo{background:var(--hairline-soft);color:var(--steel)}.quizp-progress-dot--answered,.quizp-progress-dot--current{background:linear-gradient(135deg,var(--accent-lab),var(--accent-lab));color:#fff}.quizp-progress-dot--current{transform:scale(1.06);box-shadow:0 0 0 3px #6366f12e}.quizp-progress-dot--correct{background:linear-gradient(135deg,var(--success),var(--success));color:#fff}.quizp-progress-dot--wrong{background:linear-gradient(135deg,var(--critical),var(--critical));color:#fff}.quizp-progress-dot:hover{transform:translateY(-1px)scale(1.04)}.quizp-summary{background:linear-gradient(135deg,var(--primary-soft) 0,var(--accent-lab-soft) 100%);border:1px solid var(--accent-lab-soft);border-radius:14px;flex-wrap:wrap;align-items:center;gap:1rem;padding:.85rem 1.1rem;display:flex}.quizp-summary-score{align-items:baseline;gap:.25rem;display:inline-flex}.quizp-summary-score-num{color:var(--accent-lab);letter-spacing:-.02em;font-size:1.75rem;font-weight:800;line-height:1}.quizp-summary-score-of{color:var(--accent-lab);font-size:.875rem;font-weight:600}.quizp-summary-meta{color:var(--charcoal);flex:auto;font-size:.875rem}.quizp-summary-meta strong{color:var(--ink-deep);font-weight:800}.quizp-card{border:1px solid var(--hairline-soft);background:#fff;border-radius:18px;flex-direction:column;gap:1rem;padding:1.5rem 1.75rem;display:flex;box-shadow:0 2px 8px -3px #0f172a0d}.quizp-card-head{align-items:baseline;gap:.75rem;display:flex}.quizp-card-num{color:var(--accent-lab);letter-spacing:-.02em;font-size:1.5rem;font-weight:800;line-height:1}.quizp-card-points{background:var(--accent-lab-soft);color:var(--accent-lab);border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:700}.quizp-card-prompt{color:var(--ink-deep);letter-spacing:-.005em;margin:0;font-size:1rem;font-weight:500;line-height:1.65}.quizp-choices{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.quizp-choice{background:var(--surface-soft);border:1.5px solid var(--hairline-soft);cursor:pointer;border-radius:12px;align-items:center;gap:.75rem;padding:.85rem 1rem;transition:background .12s,border-color .12s,transform 80ms;display:flex}.quizp-choice:hover:not(.quizp-choice--inactive){background:var(--surface-soft);border-color:var(--hairline)}.quizp-choice input[type=radio]{opacity:0;pointer-events:none;position:absolute}.quizp-choice-num{border:1px solid var(--hairline);width:1.75rem;height:1.75rem;color:var(--slate);background:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;font-size:.8125rem;font-weight:700;display:inline-flex}.quizp-choice-text{color:var(--ink-deep);flex:auto;font-size:.9375rem;line-height:1.55}.quizp-choice--selected{background:var(--accent-lab-soft);border-color:var(--accent-lab)}.quizp-choice--selected .quizp-choice-num{background:var(--accent-lab);border-color:var(--accent-lab);color:#fff}.quizp-choice--correct{background:var(--success-soft);border-color:var(--success)}.quizp-choice--correct .quizp-choice-num{background:var(--success);border-color:var(--success);color:#fff}.quizp-choice--wrong{background:var(--critical-soft);border-color:var(--critical)}.quizp-choice--wrong .quizp-choice-num{background:var(--critical);border-color:var(--critical);color:#fff}.quizp-choice--inactive{opacity:.65;cursor:default}.quizp-explain{background:var(--surface-soft);border-left:3px solid var(--accent-lab);border-radius:0 10px 10px 0;padding:.85rem 1rem}.quizp-explain-label{letter-spacing:.04em;color:var(--accent-lab);background:var(--primary-soft);border-radius:999px;margin-bottom:.5rem;padding:.15rem .55rem;font-size:.6875rem;font-weight:800;display:inline-block}.quizp-explain-text{color:var(--charcoal);margin:0;font-size:.875rem;line-height:1.65}.quizp-actions{align-items:center;gap:.5rem;display:flex}.quizp-actions-spacer{flex:1}.quizp-submit-btn{padding:.7rem 1.5rem;font-size:1rem}.quizp-feedback{border:1px solid;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.quizp-feedback--correct{background:var(--success-soft);border-color:var(--success)}.quizp-feedback--wrong{background:var(--critical-soft);border-color:var(--critical-soft)}.quizp-feedback-body{align-items:center;gap:.85rem;display:flex}.quizp-feedback-icon{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:1.125rem;font-weight:800;display:inline-flex}.quizp-feedback--correct .quizp-feedback-icon{background:linear-gradient(135deg,var(--success),var(--success))}.quizp-feedback--wrong .quizp-feedback-icon{background:linear-gradient(135deg,var(--critical),var(--critical))}.quizp-feedback-title{letter-spacing:-.01em;margin:0;font-size:1rem;font-weight:800}.quizp-feedback--correct .quizp-feedback-title{color:var(--success-ink)}.quizp-feedback--wrong .quizp-feedback-title{color:var(--critical-strong)}.quizp-feedback-msg{color:var(--charcoal);margin:.15rem 0 0;font-size:.8125rem}.quizp-feedback-actions{gap:.4rem;display:flex}.quizp-empty{text-align:center;color:var(--slate);background:var(--surface-soft);border-radius:12px;padding:2.5rem 1rem}@media (max-width:640px){.quizp-card{padding:1.1rem 1.15rem}.quizp-card-num{font-size:1.25rem}.quizp-summary{flex-direction:column;align-items:flex-start}.quizp-feedback{flex-direction:column;align-items:stretch}.quizp-feedback-actions{justify-content:flex-end}}.quiz-q-explanation-field{border-top:1px dashed var(--hairline-soft);flex-direction:column;gap:.35rem;margin-top:.85rem;padding-top:.85rem;display:flex}.quiz-q-explanation-label{color:var(--charcoal);letter-spacing:-.005em;font-size:.75rem;font-weight:700}.quiz-q-explanation-optional{color:var(--steel);margin-left:.2rem;font-weight:500}.quiz-q-explanation-input{resize:vertical;min-height:3.2rem;font-size:.8125rem}.mobile-nav-btn{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;padding:0;transition:background .12s;display:none}.mobile-nav-btn:hover{background:var(--surface-soft)}.mobile-nav-btn-icon{width:18px;height:14px;display:inline-block;position:relative}.mobile-nav-btn-icon>span{background:var(--ink-deep);border-radius:999px;width:100%;height:2px;transition:transform .18s,opacity .18s,top .18s;position:absolute;left:0}.mobile-nav-btn-icon>span:first-child{top:0}.mobile-nav-btn-icon>span:nth-child(2){top:6px}.mobile-nav-btn-icon>span:nth-child(3){top:12px}.mobile-nav-btn-icon.is-open>span:first-child{top:6px;transform:rotate(45deg)}.mobile-nav-btn-icon.is-open>span:nth-child(2){opacity:0}.mobile-nav-btn-icon.is-open>span:nth-child(3){top:6px;transform:rotate(-45deg)}.mobile-nav-backdrop{z-index:40;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a73;animation:mobile-nav-fadein .15s;display:none;position:fixed;inset:0}@keyframes mobile-nav-fadein{0%{opacity:0}to{opacity:1}}@media (max-width:899px){.mobile-nav-btn{display:inline-flex}html[data-sidebar-collapsed="1"] .app-sidebar{width:260px;padding:1.25rem .875rem}.app-sidebar{z-index:50;height:100vh;transition:transform .22s;top:0;left:0;transform:translate(-100%);box-shadow:4px 0 24px -4px #0f172a2e;width:260px!important;position:fixed!important}.app-sidebar-toggle{display:none}body.mobile-nav-open .app-sidebar{transform:translate(0)}body.mobile-nav-open .mobile-nav-backdrop{display:block}.app-main{width:100%}}@media (max-width:480px){.app-sidebar{max-width:320px;width:86vw!important}}.admin-hero{background:radial-gradient(120% 100% at 0 0,var(--primary-soft) 0,transparent 60%),radial-gradient(120% 100% at 100% 100%,var(--attention-soft) 0,transparent 55%),linear-gradient(180deg,var(--canvas) 0,var(--surface-soft) 100%);border:1px solid var(--hairline-soft);border-radius:20px;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;padding:1.25rem 1.4rem;display:flex;box-shadow:0 1px 2px #0f172a0a}.admin-hero-glyph{background:linear-gradient(135deg,var(--primary) 0,var(--accent-lab) 100%);color:#fff;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:3.5rem;height:3.5rem;font-size:1.75rem;display:inline-flex;box-shadow:0 6px 20px -6px #6366f173}.admin-hero-text{flex:auto;min-width:0}.admin-hero-title{color:var(--ink-deep);letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:800}.admin-hero-sub{color:var(--slate);margin:.3rem 0 0;font-size:.875rem}.admin-hero-alert{color:var(--attention-ink);border:1.5px solid var(--attention);background:#fff;border-radius:999px;align-items:center;gap:.45rem;padding:.45rem .9rem;font-size:.8125rem;font-weight:600;text-decoration:none;transition:background .12s,transform .1s;display:inline-flex}.admin-hero-alert:hover{background:var(--attention-soft);transform:translateY(-1px)}.admin-hero-alert strong{color:var(--attention-ink)}.admin-stats-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin-bottom:1.5rem;display:grid}@media (min-width:640px){.admin-stats-strip{grid-template-columns:repeat(4,minmax(0,1fr))}}.admin-stat-pill{border:1px solid var(--hairline-soft);color:inherit;background:#fff;border-radius:14px;align-items:center;gap:.7rem;padding:.75rem .9rem;text-decoration:none;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex}.admin-stat-pill:not(.admin-stat-pill--static):hover{border-color:var(--accent-lab-soft);transform:translateY(-1px);box-shadow:0 4px 14px -6px #6366f140}.admin-stat-pill--static{cursor:default}.admin-stat-pill-icon{background:linear-gradient(135deg,var(--surface-soft) 0,var(--hairline-soft) 100%);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;font-size:1.05rem;display:inline-flex}.admin-stat-pill-body{flex-direction:column;gap:.1rem;min-width:0;display:flex}.admin-stat-pill-value{color:var(--ink-deep);letter-spacing:-.02em;font-size:1.375rem;font-weight:800;line-height:1}.admin-stat-pill-of{color:var(--steel);margin-left:.2rem;font-size:.8125rem;font-weight:600}.admin-stat-pill-label{color:var(--slate);letter-spacing:-.005em;font-size:.6875rem;font-weight:600}.admin-section{margin-bottom:1.5rem}.admin-section-title{color:var(--ink-deep);letter-spacing:-.01em;margin:0 0 .85rem;font-size:1rem;font-weight:700}.admin-tools-grid{grid-template-columns:repeat(1,minmax(0,1fr));gap:.75rem;display:grid}@media (min-width:720px){.admin-tools-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.admin-tool-card{border:1px solid var(--hairline-soft);color:inherit;background:#fff;border-radius:14px;align-items:center;gap:.9rem;padding:1rem 1.15rem;text-decoration:none;transition:transform .12s,border-color .12s,box-shadow .12s;display:flex}.admin-tool-card:hover{transform:translateY(-1px);box-shadow:0 6px 18px -6px #0f172a26}.admin-tool-card--indigo:hover{border-color:var(--accent-lab)}.admin-tool-card--emerald:hover{border-color:var(--success)}.admin-tool-card--blue:hover{border-color:var(--primary)}.admin-tool-card--alert,.admin-tool-card--amber:hover{border-color:var(--attention)}.admin-tool-card--alert{background:linear-gradient(135deg,var(--attention-soft) 0,var(--canvas) 100%)}.admin-tool-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:2.75rem;height:2.75rem;font-size:1.4rem;display:inline-flex}.admin-tool-card--indigo .admin-tool-icon{background:var(--accent-lab-soft)}.admin-tool-card--emerald .admin-tool-icon{background:var(--success-soft)}.admin-tool-card--blue .admin-tool-icon{background:var(--primary-soft)}.admin-tool-card--amber .admin-tool-icon{background:var(--attention-soft)}.admin-tool-body{flex-direction:column;flex:auto;gap:.15rem;min-width:0;display:flex}.admin-tool-title{color:var(--ink-deep);letter-spacing:-.005em;align-items:center;gap:.4rem;font-size:.9375rem;font-weight:700;display:inline-flex}.admin-tool-pill{background:var(--critical);color:#fff;letter-spacing:0;border-radius:999px;padding:1px 7px;font-size:.6875rem;font-weight:800}.admin-tool-pill--muted{background:var(--hairline-soft);color:var(--charcoal)}.admin-tool-desc{color:var(--slate);font-size:.75rem;line-height:1.55}.admin-tool-arrow{color:var(--hairline);flex-shrink:0;font-weight:700}.admin-tool-card:hover .admin-tool-arrow{color:var(--ink-deep)}.cw-row{border:1px solid var(--hairline-soft);background:#fff;border-radius:12px;flex-wrap:wrap;align-items:center;gap:1rem;padding:.85rem;transition:border-color .12s,box-shadow .12s;display:flex}.cw-row:hover{border-color:var(--hairline);box-shadow:0 2px 8px -3px #0f172a0f}.cw-row-main{min-width:0;color:inherit;flex:280px;align-items:center;gap:.85rem;text-decoration:none;display:flex}.cw-row-thumb{background:linear-gradient(135deg,var(--surface-soft),var(--hairline-soft));border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:4rem;height:4rem;display:inline-flex;overflow:hidden}.cw-row-thumb-img{object-fit:cover;width:100%;height:100%}.cw-row-thumb-fallback{opacity:.55;font-size:1.5rem}.cw-row-info{flex:auto;min-width:0}.cw-row-title{color:var(--ink-deep);align-items:center;gap:.4rem;margin:0;font-size:.9375rem;font-weight:700;display:inline-flex}.cw-row-title-arrow{color:var(--hairline);transition:color .12s,transform .12s}.cw-row-main:hover .cw-row-title-arrow{color:var(--primary);transform:translate(2px)}.cw-row-summary{color:var(--charcoal);-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:.2rem 0 0;font-size:.8125rem;display:-webkit-box;overflow:hidden}.cw-row-meta{color:var(--slate);flex-wrap:wrap;align-items:center;gap:.45rem;margin:.35rem 0 0;font-size:.75rem;display:flex}.cw-row-meta-pub{color:var(--success-ink);font-weight:600}.cw-row-meta-draft{color:var(--steel);font-weight:600}.cw-row-actions{flex-wrap:wrap;flex-shrink:0;gap:.35rem;display:flex}.material-draft-project{flex-direction:column;gap:.85rem;display:flex}.material-draft-project-create{background:linear-gradient(135deg,var(--surface-soft) 0,var(--surface-soft) 100%);border:1px dashed var(--hairline);border-radius:12px;flex-direction:column;gap:.55rem;padding:.85rem;display:flex}.material-draft-project-create-label{color:var(--charcoal);letter-spacing:-.005em;margin:0;font-size:.8125rem;font-weight:700}.material-draft-project-create-grid{grid-template-columns:1fr 1fr;gap:.45rem;display:grid}@media (min-width:720px){.material-draft-project-create-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.material-draft-project-create-card{color:#fff;cursor:pointer;text-align:left;border:0;border-radius:10px;flex-direction:column;align-items:flex-start;gap:.2rem;min-height:4.5rem;padding:.7rem .75rem;transition:transform .1s,filter .12s;display:flex;position:relative;box-shadow:0 3px 10px #0f172a1a}.material-draft-project-create-card:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px)}.material-draft-project-create-card:disabled{cursor:progress;opacity:.7}.material-draft-project-create-card-icon{font-size:1.25rem;line-height:1}.material-draft-project-create-card-label{font-size:.8125rem;font-weight:700}.material-draft-project-create-card-loading{background:#00000047;border-radius:999px;padding:1px 7px;font-size:.625rem;font-weight:600;position:absolute;top:.4rem;right:.4rem}.material-draft-project-create-error{color:var(--critical-strong);margin:0;font-size:.75rem}.material-draft-project-create-success{color:var(--success-ink);background:var(--success-soft);border:1px solid var(--success);border-radius:8px;margin:0;padding:.4rem .6rem;font-size:.75rem}.material-draft-project-select-label{color:var(--charcoal);font-size:.75rem;font-weight:700}.class-project-inline-edit{color:var(--steel);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:5px;margin-left:.15rem;padding:2px 5px;font-size:.85rem;transition:opacity .12s,background .12s,color .12s}.class-project-inline-edit:focus,.project-table-title-row:hover .class-project-inline-edit{opacity:1}.class-project-inline-edit:hover{background:var(--accent-lab-soft);color:var(--accent-lab)}.class-project-inline-input{color:var(--ink-deep);border:1px solid var(--accent-lab);background:#fff;border-radius:6px;outline:none;width:100%;min-width:12rem;max-width:24rem;padding:.25rem .4rem;font-size:.9375rem;font-weight:600;box-shadow:0 0 0 3px #6366f126}.class-project-inline-state{color:var(--accent-lab);margin-left:.4rem;font-size:.6875rem;font-weight:600}.admin-hero-greet{color:var(--slate);margin:0 0 .15rem;font-size:.8125rem;font-weight:600}.admin-stats-strip--6{grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width:640px){.admin-stats-strip--6{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1024px){.admin-stats-strip--6{grid-template-columns:repeat(6,minmax(0,1fr))}}.admin-stat-pill-delta{color:var(--success-ink);background:var(--success-soft);vertical-align:middle;border-radius:999px;margin-left:.35rem;padding:1px 6px;font-size:.6875rem;font-weight:700;display:inline-block}.admin-grid-2col{grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem;display:grid}@media (min-width:960px){.admin-grid-2col{grid-template-columns:1fr 1fr}}.admin-grid-2col .admin-section{margin-bottom:0}.admin-section-head{justify-content:space-between;align-items:baseline;gap:.5rem;margin:0 0 .6rem;display:flex}.admin-section-head .admin-section-title{margin:0}.admin-section-more{font-size:.75rem;font-weight:600;text-decoration:none}.admin-section-more,.admin-section-more:hover{color:var(--accent-lab)}.admin-section-meta{color:var(--steel);font-size:.6875rem;font-weight:600}.admin-empty{border:1px dashed var(--hairline-soft);color:var(--steel);text-align:center;background:#fff;border-radius:12px;margin:0;padding:1.25rem;font-size:.8125rem}.admin-list{border:1px solid var(--hairline-soft);background:#fff;border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.admin-list-row{border-top:1px solid var(--surface-soft);align-items:center;gap:.75rem;padding:.7rem .85rem;transition:background .12s;display:flex}.admin-list-row:first-child{border-top:0}.admin-list-row:hover{background:var(--surface-soft)}.admin-list-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:2.1rem;height:2.1rem;font-size:.8125rem;font-weight:700;display:inline-flex}.admin-list-avatar--student{background:linear-gradient(135deg,var(--accent-lab),var(--accent-lab))}.admin-list-avatar--teacher{background:linear-gradient(135deg,var(--attention),#ea580c)}.admin-list-avatar--superadmin{background:linear-gradient(135deg,var(--ink-deep),var(--ink))}.admin-list-avatar--pending{background:linear-gradient(135deg,var(--attention),var(--attention))}.admin-list-avatar--cw{background:linear-gradient(135deg,var(--primary),#0284c7);font-size:1.1rem}.admin-list-avatar--class{background:linear-gradient(135deg,var(--primary),var(--accent-lab));font-size:1.1rem}.admin-list-body{flex:auto;min-width:0}.admin-list-title{color:var(--ink-deep);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.4rem;margin:0;font-size:.875rem;font-weight:700;display:inline-flex;overflow:hidden}.admin-list-link{color:inherit;text-decoration:none}.admin-list-link:hover{color:var(--primary)}.admin-list-sub{color:var(--slate);white-space:nowrap;text-overflow:ellipsis;margin:.1rem 0 0;font-size:.75rem;overflow:hidden}.admin-list-role{color:var(--charcoal);font-weight:600}.admin-list-time{color:var(--steel);white-space:nowrap;flex-shrink:0;font-size:.6875rem}.admin-list-pill{letter-spacing:0;border-radius:999px;padding:1px 6px;font-size:.625rem;font-weight:700}.admin-list-pill--pub{background:var(--success-soft);color:var(--success-ink)}.admin-list-pill--draft{background:var(--surface-soft);color:var(--steel)}.admin-todo-grid{grid-template-columns:1fr;gap:.75rem;display:grid}@media (min-width:720px){.admin-todo-grid{grid-template-columns:1fr 1fr}}.admin-todo-card{border:1.5px solid var(--hairline-soft);color:inherit;background:#fff;border-radius:14px;align-items:center;gap:.9rem;padding:.85rem 1rem;text-decoration:none;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex}.admin-todo-card:hover{transform:translateY(-1px);box-shadow:0 4px 14px -6px #0f172a26}.admin-todo-card--alert{border-color:var(--attention);background:linear-gradient(135deg,var(--attention-soft) 0,var(--canvas) 100%)}.admin-todo-card--info{border-color:var(--primary);background:linear-gradient(135deg,var(--primary-soft) 0,var(--canvas) 100%);cursor:default}.admin-todo-card--info:hover{box-shadow:none;transform:none}.admin-todo-icon{background:#ffffffbf;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.2rem;display:inline-flex}.admin-todo-body{flex:auto;min-width:0}.admin-todo-title{color:var(--ink-deep);margin:0;font-size:.9375rem}.admin-todo-title strong{color:var(--attention-ink);font-weight:800}.admin-todo-card--info .admin-todo-title strong{color:var(--primary-deep)}.admin-todo-desc{color:var(--charcoal);margin:.15rem 0 0;font-size:.75rem}.admin-todo-cta{color:var(--attention-ink);white-space:nowrap;flex-shrink:0;font-size:.8125rem;font-weight:700}.admin-footer-note{color:var(--steel);text-align:center;margin:1rem 0 0;font-size:.75rem}.admin-footer-note strong{color:var(--charcoal);font-weight:700}.quizp-timer{background:var(--primary-soft);color:var(--primary-deep);border:1px solid var(--primary-soft);border-radius:10px;align-items:center;gap:6px;margin-bottom:12px;padding:8px 14px;font-size:14px;font-weight:600;display:flex}.quizp-timer strong{font-variant-numeric:tabular-nums;font-size:16px}.quizp-timer-sub{color:var(--slate);font-size:12px;font-weight:500}.quizp-timer--danger{background:var(--critical-soft);color:var(--critical-strong);border-color:var(--critical-soft)}.quizp-gate{text-align:center;border:1px solid var(--hairline-soft);background:var(--canvas);border-radius:16px;flex-direction:column;align-items:center;gap:14px;max-width:560px;margin:8px auto;padding:36px 28px;display:flex;box-shadow:0 1px 3px #0f172a0d}.quizp-gate-title{color:var(--ink-deep);margin:0;font-size:19px;font-weight:700}.quizp-gate-msg{color:var(--charcoal);max-width:42ch;margin:0;line-height:1.6}.quizp-gate-meta{color:var(--steel);margin:0;font-size:13px}.quizp-gate-list{text-align:left;color:var(--charcoal);background:var(--surface-soft);box-sizing:border-box;border:1px solid #eef2f6;border-radius:12px;width:100%;margin:2px 0;padding:16px 20px;line-height:1.85}.quizp-gate-list li{margin-left:18px;list-style:outside}.quizp-gate .btn{min-width:200px;margin-top:4px}.quizp-gate--submitted{max-width:680px}.quizp-review{text-align:left;flex-direction:column;gap:10px;width:100%;margin:4px 0 2px;display:flex}.quizp-review-item{border:1px solid var(--hairline-soft);background:var(--surface-soft);border-radius:10px;padding:12px 14px}.quizp-review-q{color:var(--ink-deep);white-space:pre-wrap;font-size:14px;font-weight:600;line-height:1.5}.quizp-review-a{color:var(--charcoal);margin-top:6px;font-size:13.5px}.quizp-review-a b{color:var(--primary-deep);font-weight:600}.quizp-review-empty{color:var(--steel)}.quizp-gate--waiting{background:var(--accent-lab-soft);border-color:var(--accent-lab)}.quizp-waiting-icon{margin-bottom:6px;font-size:40px}.quizp-waiting-countdown{background:var(--canvas);border:1px solid var(--accent-lab-soft);border-radius:14px;flex-direction:column;align-items:center;gap:2px;min-width:220px;margin:16px auto;padding:14px 28px;display:inline-flex}.quizp-waiting-countdown-label{color:var(--accent-lab);letter-spacing:.04em;font-size:12px;font-weight:700}.quizp-waiting-countdown-time{color:var(--accent-lab);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-size:38px;font-weight:800;line-height:1.1}.quizp-card-type{color:var(--accent-lab);background:var(--accent-lab-soft);border-radius:999px;margin-left:8px;margin-right:auto;padding:2px 8px;font-size:11px;font-weight:700}.quizp-shortanswer{margin-top:8px}.quizp-shortanswer-input{border:2px solid var(--hairline-soft);border-radius:10px;outline:none;width:100%;padding:12px 14px;font-size:15px}.quizp-shortanswer-input:focus{border-color:var(--accent-lab)}.quizp-shortanswer-input:disabled{background:var(--surface-soft);color:var(--charcoal)}.quizp-sa-result{border-radius:8px;margin-top:10px;padding:10px 12px;font-size:14px}.quizp-sa-result--correct{background:var(--success-soft);color:var(--success-ink);border:1px solid var(--success-soft)}.quizp-sa-result--wrong{background:var(--critical-soft);color:var(--critical-strong);border:1px solid var(--critical-soft)}.quizp-sa-correct{margin-top:4px;font-weight:600}.quiz-q-type-select{border:1px solid var(--hairline);background:var(--canvas);border-radius:8px;margin-left:8px;padding:3px 8px;font-size:13px}.quiz-exam-settings{background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:10px;flex-direction:column;gap:10px;margin-top:10px;padding:12px;display:flex}.quiz-q-casesensitive{color:var(--charcoal);align-items:center;gap:6px;margin-top:6px;font-size:13px;display:inline-flex}.quiz-q-ans-mark{color:var(--success);text-align:center;width:18px;font-weight:800}.quiz-grading{margin-top:8px}.quiz-grading-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.quiz-grading-table{border-collapse:collapse;width:100%;font-size:14px}.quiz-grading-table th{text-align:left;color:var(--slate);border-bottom:1px solid var(--hairline-soft);padding:8px 10px;font-size:12px}.quiz-grading-table td{border-bottom:1px solid var(--surface-soft);vertical-align:top;padding:10px}.quiz-grading-row--empty{opacity:.6}.quiz-grading-name{color:var(--ink-deep);font-weight:600}.quiz-grading-email{color:var(--steel);font-size:12px}.quiz-grading-chip{background:var(--surface-soft);color:var(--slate);border-radius:999px;padding:2px 8px;font-size:12px}.quiz-grading-chip--ok{background:var(--success-soft);color:var(--success-ink)}.quiz-grading-chip--released{background:var(--primary-soft);color:var(--primary-deep)}.quiz-grading-actions{white-space:nowrap;flex-wrap:wrap;gap:6px;display:flex}.quiz-grading-reset-btn{color:var(--attention-ink);background:var(--canvas);border:1px solid var(--attention-soft)}.quiz-grading-reset-btn:hover:not(:disabled){background:var(--attention-soft)}.quiz-grading-detail{background:var(--surface-soft);border-radius:10px;flex-direction:column;gap:12px;padding:14px;display:flex}.quiz-grading-q{border-bottom:1px dashed var(--hairline-soft);border-left:3px solid #0000;border-radius:6px;padding:8px 10px 10px}.quiz-grading-q--correct{border-left-color:var(--success);background:var(--success-soft)}.quiz-grading-q--wrong{border-left-color:var(--critical);background:var(--critical-soft)}.quiz-grading-q--partial{border-left-color:var(--attention);background:var(--attention-soft)}.quiz-grading-q-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;display:flex}.quiz-grading-q-head>strong:first-child{flex:1;min-width:0}.quiz-grading-q-body{color:var(--charcoal);flex-direction:column;gap:3px;font-size:13px;display:flex}.quiz-grading-mark{white-space:nowrap;border-radius:999px;padding:1px 9px;font-size:11px;font-weight:800}.quiz-grading-mark--ok{background:var(--success-soft);color:var(--success-ink)}.quiz-grading-mark--no{background:var(--critical-soft);color:var(--critical-strong)}.quiz-grading-mark--partial{background:var(--attention-soft);color:var(--attention-ink)}.quiz-grading-partial{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.quiz-grading-partial-label{color:var(--charcoal);font-size:12px;font-weight:700}.quiz-grading-partial-input{border:1px solid var(--hairline);text-align:right;border-radius:8px;width:70px;padding:5px 8px;font-size:13px}.quiz-grading-partial-input:focus{border-color:var(--accent-lab);outline:none;box-shadow:0 0 0 3px #6366f11f}.quiz-grading-partial-max{color:var(--slate);font-size:12px}.quiz-grading-ans{color:var(--ink-deep)}.quiz-grading-ans--wrong{color:var(--critical-strong)}.quiz-grading-correct-line{color:var(--success-ink);font-weight:600}.quiz-grading-wrong-count{color:var(--critical-strong);background:var(--critical-soft);white-space:nowrap;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:700}.quiz-grading-correct-toggle{align-items:center;gap:6px;margin-top:4px;font-weight:600;display:inline-flex}.quiz-grading-finalize{align-items:flex-end;gap:10px;padding-top:6px;display:flex}.quiz-grading-score-input{color:var(--slate);flex-direction:column;gap:3px;font-size:12px;display:flex}.quiz-grading-score-input input{border:1px solid var(--hairline);border-radius:8px;width:120px;padding:6px 10px}.quiz-editor-section-head-right{align-items:center;gap:10px;display:flex}.quiz-md-panel{border:1px solid var(--hairline-soft);background:var(--surface-soft);border-radius:12px;margin-bottom:14px;padding:14px}.quiz-md-help{color:var(--charcoal);margin-bottom:8px;font-size:12.5px;line-height:1.7}.quiz-md-help code{background:var(--hairline-soft);color:var(--ink-deep);border-radius:5px;padding:1px 6px;font-size:12px;font-weight:600}.quiz-md-textarea{resize:vertical;width:100%;min-height:180px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.6}.quiz-md-actions{align-items:center;gap:8px;margin-top:10px;display:flex}.quiz-q-image{margin:8px 0 4px}.quiz-q-image-add{cursor:pointer;color:var(--accent-lab);border:1px dashed var(--accent-lab-soft);background:var(--surface-soft);border-radius:8px;align-items:center;gap:6px;padding:5px 12px;font-size:12.5px;font-weight:600;display:inline-flex}.quiz-q-image-add:hover{background:var(--accent-lab-soft)}.quiz-q-image-preview{flex-direction:column;align-items:flex-start;gap:6px;display:inline-flex}.quiz-q-image-preview img{border:1px solid var(--hairline-soft);object-fit:contain;border-radius:10px;max-width:min(420px,100%);max-height:280px}.quiz-q-image-remove{color:var(--critical-strong);background:var(--critical-soft);border:1px solid var(--critical-soft);cursor:pointer;border-radius:6px;padding:2px 10px;font-size:12px}.quizp-card-image{border:1px solid var(--hairline-soft);object-fit:contain;border-radius:12px;max-width:100%;max-height:420px;margin:4px 0 12px;display:block}.lesson-quiz-teacher-q-image,.quiz-grading-q-image{border:1px solid var(--hairline-soft);object-fit:contain;border-radius:8px;max-width:min(360px,100%);max-height:240px;margin:6px 0;display:block}.quiz-bulk-points-row{background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;padding:10px 14px;display:flex}.quiz-bulk-points-row-label{color:var(--charcoal);font-size:13px;font-weight:700}.quiz-bulk-points-row-unit{color:var(--slate);font-size:13px}.quiz-bulk-points-row-hint{color:var(--steel);flex-basis:100%;font-size:12px}.quiz-bulk-points-input{border:1px solid var(--hairline);border-radius:8px;width:72px;padding:5px 9px;font-size:13px}.lesson-quiz-compose{padding:4px 2px 24px}.lesson-quiz-compose-head{border-bottom:1px solid var(--border,var(--hairline-soft));justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:10px 0 14px;display:flex}.lesson-quiz-compose-head strong{color:var(--ink-deep);font-size:16px}.quiz-md-examples{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.quiz-md-examples-label{color:var(--slate);font-size:12px;font-weight:600}.quiz-md-example-chip{color:var(--accent-lab);border:1px solid var(--accent-lab-soft);cursor:pointer;border-radius:999px;padding:3px 11px;font-size:12px;font-weight:600}.quiz-md-example-chip,.quiz-md-example-chip:hover{background:var(--accent-lab-soft)}.quiz-md-ai{border:1px dashed var(--accent-lab-soft);background:#fbfcff;border-radius:10px;margin-bottom:10px;padding:10px 12px}.quiz-md-ai-head{align-items:center;gap:8px;display:flex}.quiz-md-ai-toggle{text-align:left;cursor:pointer;color:var(--accent-lab);background:0 0;border:none;flex:1;padding:0;font-size:13px;font-weight:700}.quiz-md-ai-hint{color:var(--slate);margin-top:6px;font-size:12px;line-height:1.6}.quiz-md-ai-hint code{background:var(--hairline-soft);color:var(--ink-deep);border-radius:4px;padding:0 5px;font-size:11.5px}.quiz-md-prompt-box{resize:vertical;background:var(--canvas);width:100%;margin-top:8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.6}.quiz-md-ai-title{color:var(--accent-lab);flex:1;font-size:13px;font-weight:700}.quiz-md-help-title{color:var(--charcoal);margin-bottom:6px;font-size:12.5px;font-weight:700}.quiz-md-spec{border-collapse:collapse;width:100%;font-size:12px}.quiz-md-spec td{vertical-align:top;color:var(--charcoal);border-bottom:1px solid #eef2f7;padding:4px 8px}.quiz-md-spec td:first-child{white-space:nowrap;width:1%;color:var(--ink-deep)}.quiz-md-spec code{background:var(--hairline-soft);color:var(--ink-deep);border-radius:5px;padding:1px 6px;font-size:11.5px;font-weight:600}.quiz-md-spec-hl{font-weight:700;color:var(--success-ink)!important}.quiz-exam-legend{background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:10px;margin-top:4px;padding:10px 12px}.quiz-exam-legend-title{color:var(--charcoal);margin-bottom:6px;font-size:12.5px;font-weight:700}.quiz-exam-legend ul{flex-direction:column;gap:4px;margin:0 0 0 2px;padding:0;list-style:none;display:flex}.quiz-exam-legend li{color:var(--charcoal);padding-left:14px;font-size:12px;line-height:1.5;position:relative}.quiz-exam-legend li:before{content:"·";color:var(--steel);position:absolute;left:4px}.quiz-exam-legend-note{color:var(--steel);margin-top:6px;font-size:11.5px}.scroll-to-top{z-index:1200;background:var(--primary);width:46px;height:46px;color:var(--canvas);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:20px;line-height:1;transition:background .15s,transform .1s,box-shadow .15s,opacity .2s;animation:scroll-to-top-in .18s ease-out;display:flex;position:fixed;bottom:22px;right:22px;box-shadow:0 6px 18px #2563eb61}.scroll-to-top:hover{background:var(--primary-deep);transform:translateY(-2px);box-shadow:0 8px 22px #2563eb80}.scroll-to-top:active{transform:translateY(0)}@keyframes scroll-to-top-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:640px){.scroll-to-top{width:42px;height:42px;bottom:14px;right:14px}}.quizp-multi-hint{color:var(--accent-lab);margin-bottom:8px;font-size:12.5px}.quizp-choices--multi .quizp-choice-num{border-radius:6px}.quizp-fillblank{margin-top:8px}.quizp-code{padding:14px 16px;font-size:13.5px;line-height:2.1}.quiz-grading-q-code,.quizp-card-code,.quizp-code,.quizp-review-code{background:var(--ink-deep);color:var(--hairline-soft);white-space:pre-wrap;word-break:break-word;border-radius:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow-x:auto}.quiz-grading-q-code,.quizp-card-code,.quizp-review-code{margin:8px 0;padding:12px 14px;font-size:13px;line-height:1.6}.quiz-grading-q-code,.quizp-review-code{font-size:12.5px}.quiz-q-code{margin:6px 0 2px}.quiz-q-code-label{color:var(--charcoal);margin-bottom:4px;font-size:12px;font-weight:600;display:block}.quiz-q-code-hint{color:var(--steel);font-weight:400}.quiz-q-code-input{box-sizing:border-box;resize:vertical;background:var(--ink-deep);width:100%;color:var(--hairline-soft);border:1px solid var(--charcoal);white-space:pre;border-radius:8px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.55}.quiz-q-code-input:focus{border-color:var(--accent-lab);outline:none;box-shadow:0 0 0 3px #6366f133}.quiz-q-code-input::placeholder{color:var(--slate)}.quizp-blank{background:var(--ink);color:var(--canvas);border:1px solid var(--charcoal);vertical-align:baseline;border-radius:6px;max-width:260px;margin:0 2px;padding:1px 6px;font-family:inherit;font-size:13px;display:inline-block}.quizp-blank.is-correct{border-color:var(--success);background:#052e1a}.quizp-blank.is-wrong{border-color:var(--critical);background:#3b0a0a}.quizp-blank-correct{color:var(--success);font-size:12px}.pyrun{margin-top:10px}.pyrun-bar{gap:8px;margin-bottom:8px;display:flex}.pyrun-output{color:var(--success-light);white-space:pre-wrap;word-break:break-word;background:#0b1020;border-radius:8px;max-height:280px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.55;overflow-y:auto}.quiz-q-fillblank{flex-direction:column;gap:10px;display:flex}.quiz-q-fillblank>.quiz-q-choices-label code{background:var(--hairline-soft);border-radius:4px;padding:0 5px;font-size:12px}.quiz-q-code{resize:vertical;min-height:110px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.6}.quiz-q-blank{border:1px solid var(--hairline-soft);background:var(--surface-soft);border-radius:10px;flex-direction:column;gap:6px;padding:10px;display:flex}.quiz-q-blank-head{align-items:center;gap:10px;display:flex}.quiz-q-blank-head strong{font-size:13px}.quiz-q-blank-head .quiz-q-choice-remove{width:auto;margin-left:auto;padding:2px 8px}.lesson-quiz-teacher-q-type{color:var(--accent-lab);background:var(--accent-lab-soft);border-radius:999px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:700}.lesson-quiz-teacher-q-answer{color:var(--charcoal);margin-top:4px;font-size:13px}.lesson-quiz-teacher-code{background:var(--ink-deep);color:var(--hairline-soft);white-space:pre-wrap;border-radius:8px;margin-top:4px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;overflow-x:auto}.lesson-quiz-teacher-q-choices li.is-correct{color:var(--success);font-weight:600}.quizp-blank-input{background:var(--ink);color:var(--attention-light);border:1px solid var(--slate);font-family:inherit;font-size:inherit;vertical-align:baseline;border-radius:5px;min-width:3ch;margin:0 1px;padding:0 6px;line-height:1.5;display:inline-block}.quizp-blank-input::placeholder{color:var(--steel)}.quizp-blank-input:focus{background:#0b1220;border-color:#38bdf8;outline:none}.quizp-blank-input:disabled{opacity:.95}.quizp-blank-input.is-correct{border-color:var(--success);color:var(--success)}.quizp-blank-input.is-wrong{border-color:var(--critical);color:var(--critical-light)}.quizp-run-after{border-top:1px dashed var(--hairline-soft);margin-top:12px;padding-top:12px}.quizp-run-after-label{color:var(--charcoal);margin-bottom:6px;font-size:13px}.quiz-q-head{flex-wrap:wrap;gap:8px}.quiz-q-head .quiz-q-actions{margin-left:auto}.quiz-q-type-seg{background:var(--surface-soft);border-radius:10px;flex-wrap:wrap;gap:3px;padding:3px;display:inline-flex}.quiz-q-type-chip{color:var(--slate);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;padding:4px 10px;font-size:12.5px;font-weight:600;transition:background .12s,color .12s}.quiz-q-type-chip:hover{color:var(--charcoal)}.quiz-q-type-chip.is-active{background:var(--canvas);color:var(--primary);box-shadow:0 1px 3px #0f172a24}.quiz-add-bar{border-top:1px dashed var(--hairline-soft);flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:14px;display:flex}.quiz-add-bar-label{margin-right:2px;font-weight:700}.quiz-add-bar-label,.quiz-add-chip{color:var(--charcoal);font-size:13px}.quiz-add-chip{border:1px solid var(--hairline);background:var(--canvas);cursor:pointer;border-radius:999px;padding:6px 13px;font-weight:600;transition:all .12s}.quiz-add-chip:hover:not(:disabled){border-color:var(--primary);color:var(--primary-deep);background:var(--primary-soft);transform:translateY(-1px)}.quiz-add-chip:disabled{opacity:.5;cursor:default}.assignment-code-view{background:var(--ink-deep);color:var(--hairline-soft);white-space:pre-wrap;word-break:break-word;border-radius:10px;max-height:460px;margin-top:6px;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.6;overflow:auto}.assignment-create{display:inline-block;position:relative}.assignment-create-menu{z-index:30;background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:12px;flex-direction:column;gap:4px;min-width:240px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0;box-shadow:0 10px 28px #0f172a29}.assignment-create-item{text-align:left;cursor:pointer;color:var(--ink-deep);background:0 0;border:none;border-radius:8px;align-items:baseline;gap:8px;padding:9px 11px;font-size:14px;display:flex}.assignment-create-item:hover:not(:disabled){background:var(--primary-soft)}.assignment-create-item span{color:var(--slate);margin-left:auto;font-size:12px}.quiz-grading-control{background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;padding:8px 12px;display:flex}.quiz-grading-control-label{color:var(--charcoal);font-size:13px;font-weight:700}.quiz-grading-control-btns{flex-wrap:wrap;gap:6px;display:flex}.quiz-grading-control-check{color:var(--charcoal);align-items:center;gap:5px;font-size:13px;display:inline-flex}.quiz-grading-bulk-input{border:1px solid var(--hairline);border-radius:8px;width:130px;padding:6px 10px;font-size:13px}.unit-vis{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.unit-vis-toggle{border:1px solid var(--hairline);background:var(--canvas);cursor:pointer;color:var(--critical-strong);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:700}.unit-vis-toggle.is-open{color:var(--success-ink);border-color:var(--success-soft);background:var(--success-soft)}.unit-vis-sched{color:var(--slate);align-items:center;gap:6px;font-size:12px;display:inline-flex}.unit-vis-sched input{border:1px solid var(--hairline);border-radius:8px;padding:4px 8px;font-size:12px}.unit-vis-clear{background:var(--surface-soft);cursor:pointer;color:var(--slate);border:none;border-radius:6px;padding:2px 6px}.unit-publish-row{color:var(--charcoal);align-items:center;gap:8px;margin-bottom:.625rem;font-size:.875rem;font-weight:500;display:flex}.exam-ws{flex-direction:column;gap:12px;display:flex}.exam-ws-head{justify-content:space-between;gap:14px;margin-top:6px}.exam-ws-head,.exam-ws-title{flex-wrap:wrap;align-items:center;display:flex}.exam-ws-title{gap:10px}.exam-ws-title h1{color:var(--ink-deep);font-size:22px;font-weight:800}.exam-ws-status{color:var(--charcoal);background:var(--surface-soft);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.exam-ws-attempts{color:var(--slate);font-size:12px}.exam-ws-actions{gap:8px}.exam-monitor,.exam-ws-actions{align-items:center;display:flex}.exam-monitor{border:1px solid var(--border,var(--hairline-soft));background:var(--card,var(--canvas));border-radius:12px;flex-wrap:wrap;gap:10px;padding:10px 14px}.exam-monitor-stat{color:var(--charcoal);font-size:14px;font-weight:600}.exam-monitor-stat b{font-size:16px;font-weight:800}.exam-monitor-stat--done b{color:var(--success-ink)}.exam-monitor-stat--prog b{color:var(--attention-ink)}.exam-monitor-stat--none b{color:var(--slate)}.exam-monitor-total{color:var(--slate);font-size:12.5px}.exam-monitor-bar{background:var(--hairline-soft);border-radius:999px;flex:1;min-width:80px;height:8px;overflow:hidden}.exam-monitor-bar-fill{background:var(--success);height:100%;transition:width .4s;display:block}.exam-monitor-live{color:var(--success-ink);white-space:nowrap;font-size:11px;font-weight:700}.exam-ws-hint{color:var(--accent-lab);background:var(--accent-lab-soft);border:1px solid var(--accent-lab-soft);border-radius:10px;padding:8px 12px;font-size:12.5px;line-height:1.6}.exam-ws-tabs{border-bottom:2px solid var(--hairline-soft);gap:4px;display:flex}.exam-ws-tab{appearance:none;cursor:pointer;color:var(--slate);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:9px 16px;font-size:14px;font-weight:600}.exam-ws-tab:hover{color:var(--charcoal)}.exam-ws-tab.is-active{color:var(--accent-lab);border-bottom-color:var(--accent-lab)}.exam-manager{flex-direction:column;gap:10px;display:flex}.exam-manager-toolbar{border-bottom:1px solid var(--border,var(--hairline-soft));flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:4px;padding-bottom:12px;display:flex}.exam-del-btn{color:var(--critical-strong);background:var(--canvas);border:1px solid var(--critical-soft)}.exam-del-btn:hover:not(:disabled){background:var(--critical-soft)}.exam-card{border:1px solid var(--hairline-soft);background:var(--canvas);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.exam-card-main{flex:1;min-width:240px}.exam-card-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.exam-card-title strong{color:var(--ink-deep);font-size:15px}.exam-card-badge{color:var(--accent-lab);background:var(--accent-lab-soft);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.exam-card-unit{color:var(--steel);font-size:12px}.exam-card-meta{color:var(--slate);margin-top:4px;font-size:12.5px}.exam-card-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.exam-ctl-sched{color:var(--slate);align-items:center;gap:5px;font-size:12px;display:inline-flex}.exam-ctl-sched input{border:1px solid var(--hairline);border-radius:8px;padding:4px 8px;font-size:12px}.exam-ctl-extend,.exam-extender--compact{align-items:center;gap:4px;font-size:13px;display:inline-flex}.exam-extender--compact{flex-wrap:wrap}.exam-extender-cur{color:var(--success-ink);white-space:nowrap;font-size:12px;font-weight:700}.exam-extender-input{border:1px solid var(--hairline);border-radius:8px;width:56px;padding:4px 8px;font-size:12px}.exam-extender-custom{align-items:center;gap:4px;display:inline-flex}.exam-st{border-radius:999px;padding:2px 9px;font-size:11px;font-weight:800}.exam-st--hidden{background:var(--surface-soft);color:var(--slate)}.exam-st--sched{background:var(--attention-soft);color:var(--attention-ink)}.exam-st--live{background:var(--success-soft);color:var(--success-ink)}.exam-st--closed{background:var(--critical-soft);color:var(--critical-strong)}.exam-st--open{background:var(--primary-soft);color:var(--primary-deep)}.asgn-manager{flex-direction:column;gap:10px;display:flex}.asgn-manager-toolbar{border-bottom:1px solid var(--border,var(--hairline-soft));margin-bottom:4px;padding-bottom:12px}.asgn-card,.asgn-manager-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.asgn-card{border:1px solid var(--hairline-soft);background:var(--canvas);border-radius:12px;justify-content:space-between;padding:12px 14px}.asgn-card-main{flex:1;min-width:240px}.asgn-card-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.asgn-card-title strong{color:var(--ink-deep);font-size:15px}.asgn-card-badge{color:var(--accent-lab);background:var(--accent-lab-soft);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.asgn-card-unit{color:var(--steel);font-size:12px}.asgn-card-meta{color:var(--slate);margin-top:4px;font-size:12.5px}.asgn-card-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.asgn-del-btn{color:var(--critical-strong);background:var(--canvas);border:1px solid var(--critical-soft)}.asgn-del-btn:hover:not(:disabled){background:var(--critical-soft)}.asgn-st{border-radius:999px;padding:2px 9px;font-size:11px;font-weight:800}.asgn-st--hidden{background:var(--surface-soft);color:var(--slate)}.asgn-st--sched{background:var(--attention-soft);color:var(--attention-ink)}.asgn-st--live{background:var(--success-soft);color:var(--success-ink)}.asgn-st--closed{background:var(--critical-soft);color:var(--critical-strong)}.asgn-settings{border-top:1px dashed var(--hairline-soft);flex-basis:100%;margin-top:4px;padding-top:12px}.asgn-settings-grid{flex-wrap:wrap;gap:12px;display:flex}.asgn-field{flex-direction:column;flex:1;gap:4px;min-width:200px;display:flex}.asgn-field--narrow{flex:0 0 110px;min-width:110px}.asgn-field-label{color:var(--charcoal);font-size:12px;font-weight:600}.asgn-field-input{border:1px solid var(--hairline);background:var(--canvas);border-radius:8px;padding:7px 10px;font-size:13px}.asgn-field-input:focus{border-color:var(--accent-lab);outline:none;box-shadow:0 0 0 3px #6366f11f}.asgn-settings-hint{color:var(--slate);margin:10px 0 0;font-size:12px;line-height:1.5}.asgn-settings-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.assignment-create-form{flex-direction:column;gap:20px;display:flex}.assignment-create-section{flex-direction:column;gap:10px;display:flex}.assignment-create-section-title{color:var(--ink-deep);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:700;display:flex}.assignment-create-optional{color:var(--steel);background:var(--surface-soft);border-radius:999px;padding:1px 7px;font-size:11px;font-weight:600}.assignment-type-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.assignment-type-card{text-align:left;border:1.5px solid var(--hairline-soft);background:var(--canvas);cursor:pointer;border-radius:12px;flex-direction:column;gap:6px;padding:14px;transition:border-color .12s,background .12s,box-shadow .12s;display:flex}.assignment-type-card:hover{border-color:var(--accent-lab-soft);background:#f8faff}.assignment-type-card.is-selected{border-color:var(--accent-lab);background:var(--accent-lab-soft);box-shadow:0 0 0 3px #6366f11f}.assignment-type-icon{font-size:26px;line-height:1}.assignment-type-name{color:var(--ink-deep);font-size:14px;font-weight:700}.assignment-type-desc{color:var(--slate);font-size:12px;line-height:1.45}.assignment-create-input{border:1px solid var(--hairline);box-sizing:border-box;border-radius:9px;width:100%;padding:9px 12px;font-size:14px}.assignment-create-input:focus{border-color:var(--accent-lab);outline:none;box-shadow:0 0 0 3px #6366f11f}.assignment-create-textarea{resize:vertical;font-family:inherit;line-height:1.5}.assignment-create-code{resize:vertical;white-space:pre;background:var(--ink-deep);color:var(--hairline-soft);border-color:var(--charcoal);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.5}.assignment-create-code:focus{border-color:var(--accent-lab);box-shadow:0 0 0 3px #6366f133}.assignment-create-code::placeholder{color:var(--slate)}.assignment-create-hint{color:var(--slate);margin:0;font-size:12px;line-height:1.5}@media (max-width:520px){.assignment-type-grid{grid-template-columns:1fr}}.quiz-card-badge{background:var(--accent-lab-soft);color:var(--accent-lab);border-radius:999px;align-items:center;gap:5px;padding:3px 11px;font-size:12px;font-weight:800;display:inline-flex}.quiz-results-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin:14px 0 4px;display:flex}.quiz-results-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 22px;display:grid}.quiz-results-stat{border:1px solid var(--border,var(--hairline-soft));background:var(--card,var(--canvas));border-radius:14px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.quiz-results-stat-label{color:var(--slate);font-size:12px;font-weight:600}.quiz-results-stat-value{color:var(--ink-deep);font-size:22px;font-weight:800}.class-unit-add-actions{flex-wrap:wrap}.class-unit-add-actions,.quick-add-unit{align-items:center;gap:8px;display:inline-flex}.quick-add-unit-err{color:var(--critical-strong);font-size:12px}.exam-pane-list{flex-direction:column;gap:10px;margin-top:4px;display:flex}.exam-pane-item{border:1px solid var(--border,var(--hairline-soft));background:var(--card,var(--canvas));border-radius:14px;align-items:center;gap:14px;padding:14px 16px;display:flex}.exam-pane-item-main{flex:1;min-width:0}.exam-pane-item-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.exam-pane-item-title strong{color:var(--ink-deep);font-size:15px}.exam-pane-item-unit{color:var(--steel);font-size:12px}.exam-pane-item-meta{color:var(--slate);margin-top:4px;font-size:12px}.exam-pane-item-locked{color:var(--steel);font-size:12px;font-weight:600}.exam-pane-st{white-space:nowrap;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:800}.exam-pane-st--hidden{background:var(--surface-soft);color:var(--slate)}.exam-pane-st--sched{background:var(--attention-soft);color:var(--attention-ink)}.exam-pane-st--live{background:var(--success-soft);color:var(--success-ink)}.exam-pane-st--done{background:var(--primary-soft);color:var(--primary-deep)}.exam-pane-st--closed{background:var(--critical-soft);color:var(--critical-strong)}.exam-pane-st--released{background:var(--accent-lab-soft);color:var(--accent-lab)}.exam-pane-item--new{border-color:var(--success);box-shadow:0 0 0 3px var(--success-soft);animation:examNewPulse 1.2s ease-in-out 2}.exam-pane-new-badge{color:var(--success-ink);background:var(--success-soft);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:800}@keyframes examNewPulse{0%,to{box-shadow:0 0 0 3px var(--success-soft)}50%{box-shadow:0 0 0 5px var(--success-soft)}}.grade-list{flex-direction:column;gap:10px;display:flex}.grade-row{border:1px solid var(--border,var(--hairline-soft));background:var(--card,var(--canvas));border-radius:14px;align-items:center;gap:14px;padding:14px 16px;display:flex}.grade-row-main{flex:1;min-width:0}.grade-row-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grade-row-title strong{color:var(--ink-deep);font-size:15px}.grade-row-meta{color:var(--slate);margin-top:4px;font-size:12px}.grade-badge{border-radius:999px;padding:2px 9px;font-size:11px;font-weight:800}.grade-badge--exam,.grade-badge--quiz{background:var(--accent-lab-soft);color:var(--accent-lab)}.grade-row-score{flex-direction:column;align-items:flex-end;gap:2px;min-width:92px;display:flex}.grade-score-num{color:var(--ink-deep);font-size:18px;font-weight:800}.grade-score-max{color:var(--steel);font-size:13px;font-weight:600}.grade-score-pct{color:var(--primary);font-size:12px;font-weight:700}.grade-score-pending{color:var(--attention-ink);font-size:13px;font-weight:600}.grade-score-unsubmitted{color:var(--critical-strong);font-size:13px;font-weight:700}.grade-chip{border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}.grade-chip--unsubmitted{background:var(--critical-soft);color:var(--critical-strong)}.qstat-dist{margin-bottom:16px;padding:16px 18px}.qstat-dist-title{color:var(--charcoal);margin-bottom:12px;font-size:14px;font-weight:700}.qstat-dist-bars{align-items:flex-end;gap:12px;height:130px;display:flex}.qstat-dist-col{flex-direction:column;flex:1;align-items:center;gap:4px;height:100%;display:flex}.qstat-dist-bar-wrap{flex:1;align-items:flex-end;width:100%;display:flex}.qstat-dist-bar{background:linear-gradient(180deg,var(--accent-lab),var(--accent-lab));border-radius:6px 6px 0 0;width:100%;min-height:2px}.qstat-dist-count{color:var(--ink-deep);font-size:12px;font-weight:700}.qstat-dist-label{color:var(--steel);font-size:10.5px}.qstat-list{flex-direction:column;gap:12px;list-style:none;display:flex}.qstat-item{padding:14px 16px}.qstat-item-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.qstat-item-q{color:var(--ink-deep);font-size:14px}.qstat-item-type{background:var(--accent-lab-soft);color:var(--accent-lab);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}.qstat-item-pts{color:var(--steel);font-size:12px}.qstat-rate-wrap{align-items:center;gap:8px;min-width:200px;margin-left:auto;display:flex}.qstat-rate-track{background:var(--hairline-soft);border-radius:999px;flex:1;height:8px;overflow:hidden}.qstat-rate-fill{border-radius:999px;height:100%}.qstat-rate-num{white-space:nowrap;font-size:12px;font-weight:800}.qstat-rate--high{color:var(--success-ink)}.qstat-rate-fill.qstat-rate--high{background:var(--success)}.qstat-rate--mid{color:var(--attention-ink)}.qstat-rate-fill.qstat-rate--mid{background:var(--attention)}.qstat-rate--low{color:var(--critical-strong)}.qstat-rate-fill.qstat-rate--low{background:var(--critical)}.qstat-item-prompt{color:var(--ink);margin:8px 0 4px;font-size:14px}.qstat-item-meta{color:var(--slate);margin-bottom:8px;font-size:12px}.qstat-choices{flex-direction:column;gap:5px;list-style:none;display:flex}.qstat-choice{color:var(--charcoal);align-items:center;gap:8px;font-size:13px;display:flex}.qstat-choice--correct{color:var(--success-ink);font-weight:600}.qstat-choice-key{background:var(--surface-soft);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:11px;font-weight:700;display:inline-flex}.qstat-choice--correct .qstat-choice-key{background:var(--success-soft);color:var(--success-ink)}.qstat-choice-text{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;max-width:40%;overflow:hidden}.qstat-choice-bar-wrap{background:var(--surface-soft);border-radius:999px;flex:1;height:6px;overflow:hidden}.qstat-choice-bar{background:var(--accent-lab-soft);height:100%;display:block}.qstat-choice--correct .qstat-choice-bar{background:var(--success)}.qstat-choice-cnt{color:var(--steel);white-space:nowrap;text-align:right;min-width:64px;font-size:11.5px}.qstat-top{grid-template-columns:1fr;gap:16px;margin-bottom:16px;display:grid}@media (min-width:880px){.qstat-top{grid-template-columns:minmax(0,340px) 1fr;align-items:start}}.qstat-top .qstat-dist{margin-bottom:0}.qstat-overview{padding:14px 16px}.qstat-overview-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.qstat-legend{flex-wrap:wrap;gap:10px;display:flex}.qstat-legend-item{color:var(--slate);align-items:center;gap:4px;font-size:11px;display:inline-flex}.qstat-legend-dot{border-radius:3px;width:10px;height:10px;display:inline-block}.qstat-legend-dot.qstat-rate--high{background:var(--success)}.qstat-legend-dot.qstat-rate--mid{background:var(--attention)}.qstat-legend-dot.qstat-rate--low{background:var(--critical)}.qstat-heatmap{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px;display:grid}.qstat-heat-cell{border:1px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:6px 2px;line-height:1.1;text-decoration:none;transition:transform .1s,box-shadow .1s;display:flex}.qstat-heat-cell:hover{transform:translateY(-1px);box-shadow:0 2px 6px #0f172a1f}.qstat-heat-cell.qstat-rate--high{background:var(--success-soft);border-color:var(--success);color:var(--success-ink)}.qstat-heat-cell.qstat-rate--mid{background:var(--attention-soft);border-color:var(--attention);color:var(--attention-ink)}.qstat-heat-cell.qstat-rate--low{background:var(--critical-soft);border-color:var(--critical-soft);color:var(--critical-strong)}.qstat-heat-q{font-size:12px;font-weight:800}.qstat-heat-pct{opacity:.85;font-size:10px;font-weight:600}.qstat-overview-hint{color:var(--steel);margin-top:8px;font-size:11px}.qstat-item{padding:0;scroll-margin-top:16px}.qstat-item>summary{cursor:pointer;outline:none;padding:12px 16px;list-style:none}.qstat-item>summary::-webkit-details-marker{display:none}.qstat-item>summary:focus-visible{box-shadow:0 0 0 2px var(--accent-lab-soft) inset;border-radius:12px}.qstat-item-chevron{color:var(--steel);margin-left:4px;font-size:12px;transition:transform .15s}.qstat-item[open] .qstat-item-chevron{transform:rotate(180deg)}.qstat-item[open]>summary{border-bottom:1px solid var(--surface-soft)}.qstat-item-detail{padding:12px 16px 14px}.qstat-item-detail .qstat-item-prompt{margin-top:0}.qstat-item:target{box-shadow:0 0 0 2px var(--accent-lab)}.fab-chip{flex-shrink:0;align-items:center;padding:2px 9px;display:inline-flex}.fab-chip,.fab-metric-chip{border-radius:var(--r-full);background:var(--primary-soft);color:var(--primary-deep);font-size:12px;font-weight:700;line-height:1.33}.fab-metric-chip{padding:4px 10px;display:inline-block}.fab-article{max-width:52rem}.fab-article-head{padding-bottom:var(--sp-base);border-bottom:1px solid var(--hairline-soft);margin-bottom:var(--sp-lg)}.fab-article-eyebrow{align-items:center;gap:var(--sp-xs);margin-bottom:var(--sp-xs);display:flex}.fab-article-no{color:var(--stone);font-variant-numeric:tabular-nums;font-size:24px;font-weight:300;line-height:1}.fab-article-title{color:var(--ink-deep);margin:0;font-size:28px;font-weight:600;line-height:1.21}.fab-article-summary{margin:var(--sp-xs) 0 0;color:var(--ink);font-size:18px;font-weight:400;line-height:1.44}.fab-article-detail{margin:0 0 var(--sp-xl);letter-spacing:-.16px;color:var(--charcoal);font-size:16px;line-height:1.6}.fab-article-section{margin-bottom:var(--sp-xl)}.fab-article-h2{margin:0 0 var(--sp-xs);letter-spacing:.04em;color:var(--steel);font-size:12px;font-weight:700;line-height:1.33}.fab-article-list{flex-direction:column;gap:6px;margin:0;padding-left:1.15em;display:flex}.fab-article-list li{letter-spacing:-.16px;color:var(--charcoal);font-size:16px;line-height:1.55}.fab-article-metrics{flex-wrap:wrap;gap:6px}.fab-article-metrics,.fab-article-terms{margin:0;padding:0;list-style:none;display:flex}.fab-article-terms{flex-direction:column;gap:5px}.fab-article-terms li{letter-spacing:-.14px;color:var(--slate);font-size:14px;line-height:1.43}.fab-article-actions{align-items:center;gap:var(--sp-base);padding-top:var(--sp-base);border-top:1px solid var(--hairline-soft);flex-wrap:wrap;display:flex}.fab-step-source{color:var(--steel);font-size:12px;font-weight:700;line-height:1.33;text-decoration:none}.fab-step-source:hover{color:var(--link);text-decoration:underline}.fab-article-nav{margin-top:var(--sp-xxl);justify-content:space-between;gap:var(--sp-md);display:flex}.fab-article-nav-link{padding:var(--sp-md) var(--sp-base);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);flex-direction:column;gap:2px;min-width:12rem;text-decoration:none;transition:border-color .15s,background .15s;display:flex}.fab-article-nav-link:hover{border-color:var(--ink-deep);background:var(--surface-soft)}.fab-article-nav-link--next{text-align:right}.fab-article-nav-dir{color:var(--steel);font-size:12px;font-weight:700;line-height:1.33}.fab-article-nav-title{letter-spacing:-.14px;color:var(--ink-deep);font-size:14px;font-weight:700;line-height:1.43}.fab-source{margin-top:var(--sp-xl);padding-top:var(--sp-base);border-top:1px solid var(--hairline-soft)}.fab-source-text{margin:0 0 var(--sp-xs);color:var(--steel);max-width:56rem;font-size:12px;line-height:1.4}.fab-source-link{color:var(--link);font-size:12px;font-weight:700;line-height:1.33;text-decoration:none}.fab-source-link:hover{text-decoration:underline}@media (max-width:639px){.fab-article-nav{flex-direction:column}.fab-article-nav-link{min-width:0}.fab-article-nav-link--next{text-align:left}}.deck{background:var(--ink-deep);color:var(--canvas);flex-direction:column;display:flex;position:fixed;inset:0}.deck-progress{background:#ffffff1f;flex-shrink:0;height:3px}.deck-progress>span{background:var(--primary);height:100%;transition:width .25s ease-out;display:block}.deck-stage{flex:auto;justify-content:center;align-items:center;min-height:0;padding:clamp(20px,3.4vh,44px) clamp(20px,4vw,72px);display:flex;overflow-y:auto}.slide{width:100%;max-width:1180px}.slide-kicker{margin:0 0 var(--sp-xs);letter-spacing:.08em;color:var(--primary-light);font-size:12px;font-weight:700}.slide-title{color:var(--canvas);margin:0;font-size:clamp(2rem,4.4vw,3rem);font-weight:600;line-height:1.17}.slide-lead{margin:var(--sp-md) 0 0;color:#ffffffe0;max-width:60ch;font-size:clamp(1.0625rem,1.9vw,1.375rem);font-weight:400;line-height:1.44}.slide--cover{text-align:center;position:relative}.deck h1,.deck h2,.deck h3,.deck h4,.slide-cover-title{color:var(--canvas)}.slide-cover-title{margin:var(--sp-xs) 0 0;letter-spacing:-.02em;font-size:clamp(2.5rem,7vw,4.5rem);font-weight:600;line-height:1.1}.slide-cover-title--sm{font-size:clamp(1.75rem,4.4vw,3rem)}.slide-cover-num{color:var(--primary-light)}.slide-cover-sub{margin:var(--sp-base) auto 0;color:#ffffffb3;max-width:46ch;font-size:clamp(1rem,1.8vw,1.25rem);line-height:1.5}.slide-cover-wafer{aspect-ratio:1;border-radius:var(--r-circle);z-index:-1;opacity:.4;background:repeating-linear-gradient(90deg,#ffffff17 0 1px,#0000 1px 30px),repeating-linear-gradient(#ffffff17 0 1px,#0000 1px 30px);width:min(64vh,520px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 1px #ffffff29;-webkit-mask-image:radial-gradient(circle at 50% 100%,#0000 0 9%,#000 9.2%);mask-image:radial-gradient(circle at 50% 100%,#0000 0 9%,#000 9.2%)}.slide-end-actions{margin-top:var(--sp-xxl);gap:var(--sp-md);flex-wrap:wrap;justify-content:center;display:flex}.deck .slide-end-actions .btn-primary{background:var(--canvas);color:var(--ink-deep)}.deck .slide-end-actions .btn-secondary{color:var(--canvas);border-color:#ffffff61}.slide-map{margin-top:var(--sp-xl);gap:var(--sp-md);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.slide-map-node{padding:var(--sp-base);border-radius:var(--r-xl);color:var(--canvas);text-align:left;font:inherit;cursor:pointer;background:#ffffff0a;border:1px solid #ffffff29;flex-direction:column;gap:3px;transition:background .15s,border-color .15s;display:flex}.slide-map-node:hover{background:#ffffff1a;border-color:#fff6}.slide-map-no{color:var(--primary-light);font-size:12px;font-weight:700}.slide-map-ko{letter-spacing:-.14px;font-size:clamp(.9375rem,1.5vw,1.125rem);font-weight:700}.slide-map-en{color:#ffffff80;font-size:12px}.slide-note{margin:var(--sp-xl) 0 0;color:#fff9;font-size:14px;line-height:1.43}.slide-timeline{margin:var(--sp-xl) 0 0;gap:var(--sp-md);flex-direction:column;max-width:60ch;padding:0;list-style:none;display:flex}.slide-timeline li{padding-left:var(--sp-lg);color:#ffffffdb;font-size:clamp(.9375rem,1.5vw,1.125rem);line-height:1.5;position:relative}.slide-timeline li:before{content:"";border-radius:var(--r-circle);background:var(--primary);width:8px;height:8px;position:absolute;top:.62em;left:0}.slide-step-head{align-items:baseline;gap:var(--sp-base);display:flex}.slide-step-no{color:#ffffff47;font-variant-numeric:tabular-nums;font-size:clamp(2rem,4.4vw,3rem);font-weight:300;line-height:1}.slide-step-en{letter-spacing:-.14px;color:#ffffff80;margin:2px 0 0;font-size:14px}.slide-body{margin-top:var(--sp-lg);grid-template-columns:1.15fr .85fr;align-items:start;gap:clamp(20px,3vw,44px);display:grid}.slide-detail{margin:0 0 var(--sp-base);color:#ffffffb8;font-size:clamp(.875rem,1.3vw,1rem);line-height:1.55}.slide-list{flex-direction:column;gap:7px;margin:0;padding-left:1.1em;display:flex}.slide-list li{color:#ffffffeb;font-size:clamp(.875rem,1.35vw,1.0625rem);line-height:1.45}.slide-col--fig{gap:var(--sp-base);flex-direction:column;display:flex}.fab-fig{border-radius:var(--r-xl);width:100%;height:auto;padding:var(--sp-xs);background:#ffffff0a;border:1px solid #ffffff1f}.fab-fig .fig-si{fill:#ffffff12;stroke:#ffffff73;stroke-width:1.4px}.fab-fig .fig-new{fill:#0064e057;stroke:var(--primary-light);stroke-width:1.4px}.fab-fig .fig-mask{fill:#ffffff8c;stroke:none}.fab-fig .fig-mold{fill:none;stroke:#ffffff59;stroke-width:1.4px;stroke-dasharray:5 4}.fab-fig .fig-grid{stroke:#ffffff38;stroke-width:1px}.fab-fig .fig-arrow{stroke:var(--primary-light);stroke-width:1.4px;fill:none}.fab-fig .fig-arrow-head{stroke:none}.fab-fig .fig-arrow-head,.fab-fig .fig-dot{fill:var(--primary-light)}.fab-fig .fig-die{fill:#ffffff1a;stroke:#ffffff47;stroke-width:.8px}.fab-fig .fig-fail{fill:var(--critical);stroke:none}.fab-fig .fig-label{fill:#ffffff9e;font-size:11px;font-weight:600}.fab-fig .fig-label--mid{text-anchor:middle}.fab-fig .fig-label--end{text-anchor:end}.fab-fig .fig-label--fail{fill:var(--critical-light)}.fab-fig .fig-label--on-new{fill:var(--canvas)}.slide-metrics-title{letter-spacing:.06em;color:#ffffff73;margin:0 0 6px;font-size:12px;font-weight:700}.slide-metrics ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.slide-metric-chip{border-radius:var(--r-full);color:var(--primary-light);background:#0064e03d;padding:4px 10px;font-size:12px;font-weight:700;line-height:1.33;display:inline-block}.slide-terms{margin-top:var(--sp-lg);padding-top:var(--sp-md);gap:var(--sp-xs) var(--sp-lg);border-top:1px solid #ffffff1f;flex-wrap:wrap;display:flex}.slide-term{color:#ffffff85;font-size:12px;line-height:1.33}.deck-bar{justify-content:space-between;gap:var(--sp-base);padding:var(--sp-md) clamp(16px,3vw,40px);border-top:1px solid #ffffff1f;flex-shrink:0}.deck-bar,.deck-bar-center{align-items:center;display:flex}.deck-bar-center{gap:var(--sp-md)}.deck-counter{letter-spacing:-.14px;color:#fffc;font-variant-numeric:tabular-nums;text-align:center;min-width:4.5rem;font-size:14px;font-weight:700}.deck-counter-sep{color:#ffffff59}.deck-hint{color:#ffffff61;margin:0;font-size:12px}.deck .btn-ghost,.deck .btn-secondary{color:var(--canvas);border-color:#ffffff4d}.deck .btn-ghost:hover:not(:disabled),.deck .btn-secondary:hover:not(:disabled){color:var(--canvas);background:#ffffff1f;border-color:#ffffff8c}.deck .btn-primary{background:var(--canvas);color:var(--ink-deep)}.deck .btn-primary:hover:not(:disabled){color:var(--ink-deep);background:#ffffffdb}.deck .btn:disabled{opacity:.3}@media (max-width:1023px){.slide-body{grid-template-columns:1fr}.slide-map{grid-template-columns:repeat(2,minmax(0,1fr))}.deck-hint{display:none}}@media (max-width:639px){.slide-map{grid-template-columns:1fr}.deck-bar{flex-wrap:wrap;justify-content:center}}.gears-groups{gap:var(--sp-lg);flex-direction:column;display:flex}.gears-group{padding:var(--sp-base) var(--sp-xl);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);background:var(--canvas)}.gears-group-head{margin-bottom:var(--sp-md)}.gears-group-title{letter-spacing:-.16px;color:var(--ink-deep);margin:0;font-size:16px;font-weight:700;line-height:1.5}.gears-group-desc{color:var(--steel);margin:2px 0 0;font-size:12px;line-height:1.33}.gears-items{gap:var(--sp-xs);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.gears-item{border-radius:var(--r-full);border:1px solid var(--hairline);background:var(--canvas);min-width:3rem;color:var(--ink);letter-spacing:-.14px;cursor:pointer;padding:8px 14px;font-family:inherit;font-size:14px;font-weight:700;line-height:1.43;transition:background .13s,border-color .13s,color .13s;position:relative}.gears-item:hover:not(:disabled){background:var(--ink-deep);color:var(--canvas);border-color:#0000}.gears-item:disabled{opacity:.5;cursor:default}.gears-item--started{border-color:var(--primary);color:var(--primary-deep)}.gears-item-dot{border-radius:var(--r-circle);background:var(--primary);width:6px;height:6px;position:absolute;top:5px;right:7px}.gears-item-spin{border-radius:var(--r-full);background:#fff9;position:absolute;inset:0}.gears-error{margin:0 0 var(--sp-base);padding:var(--sp-sm) var(--sp-base);border-radius:var(--r-lg);border:1px solid var(--critical-strong);background:var(--critical-soft);color:var(--critical-strong);font-size:14px;line-height:1.43}.gears-note{margin-top:var(--sp-xl);padding-top:var(--sp-base);border-top:1px solid var(--hairline-soft)}.gears-note p{color:var(--steel);max-width:56rem;margin:0;font-size:12px;line-height:1.4}.gears-note a{color:var(--link);font-weight:700;text-decoration:none}.gears-note a:hover{text-decoration:underline}.ds-grid{gap:var(--sp-base);grid-template-columns:repeat(auto-fill,minmax(15.5rem,1fr));display:grid}.ds-card{padding:var(--sp-xl);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);background:var(--canvas);flex-direction:column;gap:6px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.ds-card:hover{border-color:var(--ink-deep);box-shadow:var(--elev-2)}.ds-article-chips,.ds-card-head{align-items:center;gap:var(--sp-xs);flex-wrap:wrap;margin-bottom:2px;display:flex}.ds-kind{border-radius:var(--r-full);padding:3px 9px;font-size:12px;font-weight:700;line-height:1.33}.ds-kind--hosted{background:var(--success-soft);color:var(--success-ink)}.ds-kind--linked{background:var(--surface-soft);color:var(--slate)}.ds-topic{color:var(--steel);font-size:12px;font-weight:700;line-height:1.33}.ds-card-title{letter-spacing:-.16px;color:var(--ink-deep);margin:0;font-size:16px;font-weight:700;line-height:1.4}.ds-article-en,.ds-card-en{color:var(--steel);margin:0;font-size:12px;line-height:1.33}.ds-card-summary{letter-spacing:-.14px;color:var(--charcoal);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:4px 0 0;font-size:14px;line-height:1.5;display:-webkit-box;overflow:hidden}.ds-meta{margin:var(--sp-md) 0 0;padding-top:var(--sp-md);border-top:1px solid var(--hairline-soft);flex-direction:column;gap:3px;display:flex}.ds-meta>div{gap:var(--sp-xs);display:flex}.ds-meta dt{color:var(--steel);flex:0 0 3.4rem;font-size:12px;font-weight:700}.ds-meta dd{color:var(--slate);margin:0;font-size:12px;line-height:1.4}.ds-note{margin-top:var(--sp-xl);padding-top:var(--sp-base);border-top:1px solid var(--hairline-soft)}.ds-note p{color:var(--steel);max-width:60rem;margin:0;font-size:12px;line-height:1.5}.ds-article{max-width:52rem;margin-inline:auto}.ds-back{margin-bottom:var(--sp-base)}.ds-back a{color:var(--steel);font-size:12px;font-weight:700;text-decoration:none}.ds-back a:hover{color:var(--ink-deep)}.ds-article-head{padding-bottom:var(--sp-base);border-bottom:1px solid var(--hairline-soft);margin-bottom:var(--sp-base)}.ds-article-title{color:var(--ink-deep);margin:0;font-size:28px;font-weight:600;line-height:1.21}.ds-article-summary{margin:var(--sp-xs) 0 0;color:var(--ink);font-size:18px;line-height:1.44}.ds-facts{gap:var(--sp-md) var(--sp-xl);margin:0 0 var(--sp-xl);padding:var(--sp-base);background:var(--surface-soft);border-radius:var(--r-xl);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ds-facts dt{color:var(--steel);margin-bottom:2px;font-size:12px;font-weight:700}.ds-facts dd{color:var(--ink);margin:0;font-size:14px;line-height:1.43}.ds-facts a{color:var(--link);font-weight:700;text-decoration:none}.ds-facts a:hover{text-decoration:underline}.ds-section{margin-bottom:var(--sp-xl)}.ds-h2{margin:0 0 var(--sp-xs);letter-spacing:.04em;color:var(--steel);font-size:12px;font-weight:700}.ds-body{margin:0 0 var(--sp-sm);letter-spacing:-.16px;color:var(--charcoal);font-size:16px;line-height:1.6}.ds-fields{flex-direction:column;gap:6px;margin:0;display:flex}.ds-fields>div{gap:var(--sp-md);flex-wrap:wrap;display:flex}.ds-fields dt{flex:0 0 12rem}.ds-fields dt code{background:var(--surface-soft);border-radius:var(--r-sm);color:var(--ink-deep);padding:2px 7px;font-size:12px;font-weight:700}.ds-fields dd{color:var(--charcoal);flex:16rem;margin:0;font-size:14px;line-height:1.43}.ds-files{gap:var(--sp-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ds-file{align-items:center;gap:var(--sp-md);padding:var(--sp-md) var(--sp-base);border:1px solid var(--hairline-soft);border-radius:var(--r-lg);grid-template-columns:minmax(9rem,auto) auto 1fr auto;text-decoration:none;transition:border-color .15s,background .15s;display:grid}.ds-file:hover{border-color:var(--ink-deep);background:var(--surface-soft)}.ds-file-name{color:var(--ink-deep);font-family:ui-monospace,monospace;font-size:14px;font-weight:700}.ds-file-size{color:var(--steel);white-space:nowrap;font-size:12px}.ds-file-desc{color:var(--slate);font-size:12px;line-height:1.4}.ds-file-dl{color:var(--link);white-space:nowrap;font-size:12px;font-weight:700}.ds-snip{border:1px solid var(--hairline-soft);border-radius:var(--r-xl);overflow:hidden}.ds-snip-tabs{padding:var(--sp-xs);background:var(--surface-soft);border-bottom:1px solid var(--hairline-soft);align-items:center;gap:2px;display:flex}.ds-snip-tab{border-radius:var(--r-full);font:inherit;letter-spacing:-.14px;color:var(--slate);cursor:pointer;background:0 0;border:0;padding:5px 14px;font-size:13px;font-weight:700}.ds-snip-tab:hover{background:var(--hover);color:var(--ink-deep)}.ds-snip-tab--active,.ds-snip-tab--active:hover{background:var(--ink-deep);color:var(--canvas)}.ds-snip-copy{border:1px solid var(--hairline);border-radius:var(--r-full);background:var(--canvas);font:inherit;color:var(--ink-deep);cursor:pointer;margin-left:auto;padding:5px 14px;font-size:13px;font-weight:700}.ds-snip-copy:hover{background:var(--surface-soft)}.ds-snip-note{padding:var(--sp-xs) var(--sp-base) 0;color:var(--steel);margin:0;font-size:12px}.ds-snip-code{padding:var(--sp-base);color:var(--ink);margin:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;line-height:1.6;overflow-x:auto}.ds-snip-url{margin:var(--sp-xs) 0 0;color:var(--steel);word-break:break-all;font-size:12px}.ds-snip-url code{background:var(--surface-soft);border-radius:var(--r-sm);padding:2px 6px}.ds-ideas{flex-direction:column;gap:5px;margin:0;padding-left:1.15em;display:flex}.ds-ideas li{color:var(--charcoal);font-size:15px;line-height:1.5}.ds-fab-link{align-items:center;gap:var(--sp-md);padding:var(--sp-md) var(--sp-base);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);color:var(--ink-deep);font-size:14px;font-weight:700;text-decoration:none;display:flex}.ds-fab-link:hover{border-color:var(--ink-deep);background:var(--surface-soft)}.ds-fab-no{color:var(--stone);font-size:20px;font-weight:300}.ds-fab-go{color:var(--link);margin-left:auto;font-size:12px}@media (max-width:639px){.ds-facts,.ds-file{grid-template-columns:1fr}.ds-file{gap:4px}}.ds-toolbar{align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-base);flex-wrap:wrap;display:flex}.ds-search{min-height:40px;padding:0 var(--sp-base);border:1px solid var(--hairline);border-radius:var(--r-full);background:var(--canvas);font:inherit;color:var(--ink);flex:16rem;font-size:14px}.ds-search:focus{border-color:var(--fb-blue);box-shadow:inset 0 0 0 1px var(--fb-blue);outline:none}.ds-filter{color:var(--slate);cursor:pointer;white-space:nowrap;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.ds-count{color:var(--steel);font-size:13px}.ds-count strong{color:var(--ink-deep)}.ds-view{background:var(--surface-soft);gap:2px;padding:3px;display:flex}.ds-view,.ds-view-btn{border-radius:var(--r-full)}.ds-view-btn{font:inherit;color:var(--slate);cursor:pointer;background:0 0;border:0;padding:5px 14px;font-size:13px;font-weight:700}.ds-view-btn:hover{background:var(--hover);color:var(--ink-deep)}.ds-view-btn--on,.ds-view-btn--on:hover{background:var(--ink-deep);color:var(--canvas)}.ds-empty{color:var(--steel);padding:var(--sp-xl) 0;font-size:14px}.ds-card{padding:0;overflow:hidden}.ds-card-img{aspect-ratio:16/9;background:var(--surface-soft);display:block;overflow:hidden}.ds-card-img img{object-fit:cover;width:100%;height:100%;display:block}.ds-card-img--none{background:radial-gradient(circle at center,var(--hairline-soft) 1.5px,transparent 1.6px) 0 0 /14px 14px,var(--surface-soft);height:100%;display:block}.ds-card-body{padding:var(--sp-base) var(--sp-lg) var(--sp-lg);flex-direction:column;flex:auto;gap:5px;display:flex}.ds-card-foot{justify-content:space-between;gap:var(--sp-xs);padding-top:var(--sp-md);border-top:1px solid var(--hairline-soft);color:var(--slate);flex-wrap:wrap;margin-top:auto;font-size:12px;display:flex}.ds-card-lic{color:var(--steel)}.ds-table-wrap{border:1px solid var(--hairline-soft);border-radius:var(--r-xl);overflow-x:auto}.ds-table{border-collapse:collapse;width:100%;min-width:52rem;font-size:13px}.ds-table td,.ds-table th{padding:var(--sp-md) var(--sp-base);text-align:left;vertical-align:top}.ds-table thead th{color:var(--steel);white-space:nowrap;background:var(--surface-soft);font-size:12px;font-weight:700}.ds-table tbody tr,.ds-table thead th{border-bottom:1px solid var(--hairline-soft)}.ds-table tbody tr:last-child{border-bottom:0}.ds-table tbody tr:hover{background:var(--surface-soft)}.ds-table tbody th{color:var(--ink-deep);font-weight:700}.ds-table tbody th a{color:inherit;text-decoration:none}.ds-table tbody th a:hover{color:var(--link)}.ds-table td{color:var(--charcoal)}.ds-table-en{color:var(--steel);margin-top:2px;font-size:11px;font-weight:400;display:block}.ds-hero,.fab-figure{margin:0 0 var(--sp-base)}.ds-hero img,.fab-figure img{object-fit:cover;border-radius:var(--r-xl);background:var(--surface-soft);width:100%;max-height:18rem;display:block}.ds-hero figcaption,.fab-figure figcaption{color:var(--steel);margin-top:6px;font-size:12px}.fab-figure{margin:0 0 var(--sp-lg)}.fab-figure img{max-height:20rem}.board-thumb img{object-fit:cover;width:100%;height:100%;display:block}.fab-thumb-no{border-radius:var(--r-full);color:#fff;background:#0a1317c7;padding:1px 7px;font-size:11px;font-weight:700;position:absolute;bottom:4px;left:6px}.ds-projects{gap:var(--sp-md);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ds-project{padding:var(--sp-base) var(--sp-xl) var(--sp-xl);border:1px solid var(--hairline-soft);border-radius:var(--r-xl)}.ds-project-head{align-items:baseline;gap:var(--sp-xs);flex-wrap:wrap;display:flex}.ds-project-title{letter-spacing:-.16px;color:var(--ink-deep);margin:0;font-size:16px;font-weight:700}.ds-project-time{color:var(--steel);margin-left:auto;font-size:12px}.ds-level{border-radius:var(--r-full);padding:3px 9px;font-size:12px;font-weight:700;line-height:1.33}.ds-level--입문{background:var(--success-soft);color:var(--success-ink)}.ds-level--중급{background:var(--primary-soft);color:var(--primary-deep)}.ds-level--심화{background:var(--accent-lab-soft);color:var(--accent-lab)}.ds-project-goal{margin:var(--sp-xs) 0 var(--sp-md);color:var(--charcoal);font-size:14px;line-height:1.55}.ds-project-steps{margin:0 0 var(--sp-md);flex-direction:column;gap:4px;padding-left:1.3em;display:flex}.ds-project-steps li{color:var(--charcoal);font-size:14px;line-height:1.5}.ds-project-done{margin:0 0 var(--sp-md);padding:var(--sp-sm) var(--sp-base);background:var(--surface-soft);border-radius:var(--r-lg);color:var(--ink);font-size:13px;line-height:1.5}.ds-project-done strong{color:var(--steel);margin-right:6px;font-size:12px}.ds-project-tools{flex-wrap:wrap;gap:6px;margin:0;display:flex}.ds-tool{border-radius:var(--r-full);background:var(--surface-soft);color:var(--slate);padding:3px 9px;font-size:12px;font-weight:700}.ds-tools{gap:var(--sp-xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.ds-tool-link{align-items:center;gap:var(--sp-md);padding:var(--sp-md) var(--sp-base);border:1px solid var(--hairline-soft);border-radius:var(--r-lg);grid-template-columns:auto auto 1fr;text-decoration:none;display:grid}.ds-tool-link:hover{border-color:var(--ink-deep);background:var(--surface-soft)}.ds-tool-name{color:var(--ink-deep);font-size:14px;font-weight:700}.ds-tool-lic{color:var(--success-ink);font-size:12px;font-weight:700}.ds-tool-desc{color:var(--slate);font-size:12px;line-height:1.4}@media (max-width:639px){.ds-tool-link{grid-template-columns:1fr;gap:4px}.ds-toolbar{gap:var(--sp-xs)}}.quiz-ai-panel{border:1px solid var(--accent-lab-soft);background:var(--canvas);box-shadow:var(--elev-2);border-radius:12px;margin-bottom:14px;padding:14px}.quiz-ai-head{margin-bottom:12px}.quiz-ai-title{color:var(--accent-lab);margin:0 0 4px;font-size:14px;font-weight:700}.quiz-ai-sub{color:var(--slate);margin:0;font-size:12.5px;line-height:1.6}.quiz-ai-sub b{color:var(--charcoal)}.quiz-ai-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:12px;display:grid}.quiz-ai-field{flex-direction:column;gap:4px;min-width:0;display:flex}.quiz-ai-field--wide{grid-column:1/-1}.quiz-ai-label{color:var(--charcoal);font-size:12px;font-weight:700}.quiz-ai-counts{margin-bottom:12px}.quiz-ai-counts-row{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:6px;display:flex}.quiz-ai-count{border:1px solid var(--hairline-soft);background:var(--surface-soft);border-radius:10px;flex-direction:column;gap:3px;padding:7px 9px;display:flex}.quiz-ai-count-name{color:var(--charcoal);white-space:nowrap;font-size:11.5px;font-weight:600}.quiz-ai-count-input{border:1px solid var(--hairline);background:var(--canvas);width:60px;color:var(--ink);border-radius:7px;padding:4px 8px;font-size:13px}.quiz-ai-total{color:var(--slate);padding-bottom:9px;font-size:12.5px;font-weight:700}.quiz-ai-source{border:1px solid var(--hairline-soft);background:var(--surface-soft);color:var(--charcoal);border-radius:10px;align-items:flex-start;gap:8px;margin-bottom:12px;padding:10px 12px;font-size:12.5px;line-height:1.6;display:flex}.quiz-ai-source input{flex-shrink:0;margin-top:3px}.quiz-ai-source-hint{color:var(--steel);font-size:11.5px;display:block}.quiz-ai-error{color:var(--critical-strong);background:#fdf1f3}.quiz-ai-error,.quiz-ai-status{border-radius:8px;margin:0 0 10px;padding:8px 10px;font-size:12.5px;line-height:1.6}.quiz-ai-status{color:var(--success-ink);background:#f0f9f3}.quiz-ai-actions{border-top:1px solid var(--hairline-soft);flex-wrap:wrap;align-items:center;gap:10px;padding-top:10px;display:flex}.quiz-ai-note{min-width:180px;color:var(--steel);flex:1;font-size:12px}@media (max-width:560px){.quiz-ai-counts-row{gap:6px}.quiz-ai-count-input{width:52px}.quiz-ai-total{flex-basis:100%;padding-bottom:0}}.guide{--guide-col:46rem}.guide-skip{border-radius:var(--r-full);background:var(--ink-deep);color:var(--canvas);padding:8px 14px;font-size:13px;font-weight:600;position:absolute;left:-9999px}.guide-skip:focus{z-index:40;top:12px;left:12px}.guide-controls{border:1px solid var(--hairline-soft);border-radius:var(--r-xl);background:var(--surface-soft);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;margin-bottom:22px;padding:14px 16px;display:grid}.guide-role-label,.guide-search-label{color:var(--charcoal);margin-bottom:5px;font-size:12px;font-weight:700;display:block}.guide-search{border:1px solid var(--hairline);border-radius:var(--r-full);background:var(--canvas);width:100%;color:var(--ink);padding:9px 13px;font-size:14px}.guide-search:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.guide-search-hits{color:var(--slate);margin:6px 2px 0;font-size:12px}.guide-role-seg{border:1px solid var(--hairline);border-radius:var(--r-full);background:var(--canvas);gap:2px;padding:3px;display:inline-flex}.guide-role-btn{border-radius:var(--r-full);color:var(--slate);cursor:pointer;background:0 0;border:0;padding:6px 15px;font-size:13px;font-weight:600}.guide-role-btn:hover{color:var(--ink)}.guide-role-btn.is-on{background:var(--primary);color:var(--canvas)}.guide-role{text-align:right;justify-self:end;max-width:280px}.guide-role-hint{color:var(--steel);margin:6px 2px 0;font-size:12px;line-height:1.5}.guide-layout{grid-template-columns:208px minmax(0,1fr);align-items:start;gap:34px;display:grid}.guide-toc{position:sticky;top:16px}.guide-toc-toggle{display:none}.guide-toc-list{gap:1px;margin:0;padding:0;list-style:none;display:grid}.guide-toc-link{color:var(--slate);border-left:2px solid #0000;border-radius:8px;padding:6px 10px;font-size:13px;line-height:1.45;text-decoration:none;display:block}.guide-toc-link:hover{background:var(--surface-soft);color:var(--ink)}.guide-toc-link.is-active{border-left-color:var(--primary);background:var(--surface-soft);color:var(--primary);font-weight:700}.guide-toc-meta{border-top:1px solid var(--hairline-soft);color:var(--steel);margin-top:12px;padding-top:10px;font-size:11.5px}.guide-body{max-width:var(--guide-col);min-width:0}.guide-empty{color:var(--slate);padding:24px 0;font-size:14px}.guide-section{border-bottom:1px solid var(--hairline-soft);margin-bottom:34px;padding-bottom:34px}.guide-section:last-child{border-bottom:0}.guide-section.is-role-off{display:none}.guide-role-tag{vertical-align:middle;border-radius:var(--r-full);background:var(--surface-soft);border:1px solid var(--hairline-soft);color:var(--slate);margin-left:8px;padding:2px 9px;font-size:11.5px;font-weight:700}.guide-entry,.guide-section{scroll-margin-top:20px}.guide-h2{color:var(--ink-deep);margin:0;font-size:22px;font-weight:700;line-height:1.35}.guide-section-lead{color:var(--steel);margin:4px 0 0;font-size:13.5px}.guide-section-head{margin-bottom:18px}.guide-entry{margin-bottom:26px}.guide-entry:last-child{margin-bottom:0}.guide-h3{color:var(--ink-deep);margin:0 0 8px;font-size:16px;font-weight:700;line-height:1.45}.guide-anchor{color:var(--stone);cursor:pointer;opacity:0;background:0 0;border:0;border-radius:6px;margin-left:7px;padding:1px 6px;font-size:12px;font-weight:600;transition:opacity .12s}.guide-anchor:focus-visible,.guide-h2:hover .guide-anchor,.guide-h3:hover .guide-anchor{opacity:1}.guide-anchor:hover{background:var(--surface-soft);color:var(--primary)}.guide-p{color:var(--charcoal);margin:0 0 10px;font-size:14.5px;line-height:1.75}.guide-p:last-child{margin-bottom:0}.guide-list,.guide-steps{margin:0 0 12px;padding-left:22px}.guide-list li,.guide-steps li{color:var(--charcoal);margin-bottom:5px;font-size:14.5px;line-height:1.75}.guide-steps{counter-reset:gstep;padding-left:0;list-style:none}.guide-steps li{counter-increment:gstep;padding-left:31px;position:relative}.guide-steps li:before{content:counter(gstep);background:var(--primary);border-radius:50%;place-items:center;width:21px;height:21px;display:grid;position:absolute;top:2px;left:0}@supports (color:color-mix(in lab,red,red)){.guide-steps li:before{background:color-mix(in srgb,var(--primary) 12%,transparent)}}.guide-steps li:before{color:var(--primary);font-size:12px;font-weight:700;line-height:1}.guide-list{list-style:outside}.guide-list li::marker{color:var(--stone)}.guide-note{border-left:3px solid var(--hairline);background:var(--surface-soft);border-radius:0 10px 10px 0;margin:0 0 12px;padding:11px 14px}.guide-note-title{color:var(--ink-deep);margin:0 0 3px;font-size:13px;font-weight:700}.guide-note-text{color:var(--charcoal);margin:0;font-size:13.5px;line-height:1.7}.guide-note--info{border-left-color:var(--primary)}.guide-note--warn{border-left-color:var(--attention);background:#fffaf0}.guide-note--warn .guide-note-title{color:var(--attention-ink)}.guide-note--danger{border-left-color:var(--critical);background:#fdf1f3}.guide-note--danger .guide-note-title{color:var(--critical-strong)}.guide-table-wrap{margin:0 0 12px;overflow-x:auto}.guide-table{border-collapse:collapse;width:100%;font-size:13.5px}.guide-table td,.guide-table th{text-align:left;vertical-align:top;border-bottom:1px solid var(--hairline-soft);padding:8px 11px;line-height:1.65}.guide-table th{color:var(--ink-deep);white-space:nowrap;background:var(--surface-soft);border-bottom-color:var(--hairline);font-weight:700}.guide-table td{color:var(--charcoal)}.guide-table td:first-child{color:var(--ink);white-space:nowrap;font-weight:600}.guide-code{margin:0 0 12px;position:relative}.guide-code pre{border:1px solid var(--hairline-soft);background:var(--surface-soft);border-radius:10px;margin:0;padding:13px 15px;overflow-x:auto}.guide-code code{color:var(--ink-deep);white-space:pre;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.65}.guide-code-copy{z-index:1;border:1px solid var(--hairline);border-radius:var(--r-full);background:var(--canvas);color:var(--slate);cursor:pointer;padding:3px 10px;font-size:11.5px;font-weight:600;position:absolute;top:7px;right:7px}.guide-code-copy:hover{color:var(--primary);border-color:var(--primary)}.guide-fig{margin:4px 0 16px}.guide-fig-link{border-radius:10px;width:fit-content;max-width:100%;display:block}.guide-fig-link:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.guide-fig img{border:1px solid var(--hairline);background:var(--surface-soft);border-radius:10px;width:100%;height:auto;display:block;box-shadow:0 1px 2px #0f172a0a,0 6px 18px #0f172a0f}.guide-fig figcaption{color:var(--steel);margin-top:7px;font-size:12.5px;line-height:1.6}.guide-figs{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:14px;margin:4px 0 16px;display:grid}.guide-figs .guide-fig{margin:0}.guide-legend{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.guide-legend li{color:var(--charcoal);align-items:baseline;gap:9px;font-size:13.5px;line-height:1.65;display:flex}.guide-legend-no{color:#fff;background:#e11d48;border-radius:50%;flex:none;place-items:center;width:20px;height:20px;font-size:11.5px;font-weight:700;display:inline-grid;transform:translateY(-1px)}.guide-doc{border:1px solid var(--hairline);background:var(--surface-soft);border-radius:12px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin:4px 0 16px;padding:14px 16px;display:grid}.guide-doc-icon{font-size:26px;line-height:1}.guide-doc-title{color:var(--ink-deep);margin:0 0 2px;font-size:14.5px;font-weight:700}.guide-doc-text{color:var(--slate);margin:0;font-size:13px;line-height:1.6}.guide-doc-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@media (max-width:900px){.guide-controls{grid-template-columns:1fr}.guide-role{text-align:left;justify-self:start;max-width:none}.guide-layout{grid-template-columns:1fr;gap:16px}.guide-toc{border:1px solid var(--hairline-soft);border-radius:var(--r-xl);background:var(--surface-soft);padding:10px 12px;position:static}.guide-toc-toggle{text-align:left;cursor:pointer;width:100%;color:var(--ink-deep);background:0 0;border:0;padding:6px 2px;font-size:13.5px;font-weight:700;display:block}.guide-toc-list{margin-top:8px;display:none}.guide-toc-list.is-open{display:grid}.guide-toc-meta{display:none}.guide-h2{font-size:20px}.guide-figs{grid-template-columns:1fr}.guide-doc{grid-template-columns:auto minmax(0,1fr)}.guide-doc-actions{grid-column:1/-1;justify-content:flex-start}.guide-anchor{opacity:.55}}@media print{.guide-anchor,.guide-code-copy,.guide-controls,.guide-skip,.guide-toc{display:none!important}.guide-layout{display:block}.guide-body{max-width:none}.guide-section.is-role-off{display:block!important}.guide-section{break-inside:auto;page-break-inside:auto;border-bottom:0}.guide-h2,.guide-h3{break-after:avoid;page-break-after:avoid}.guide-code,.guide-fig,.guide-figs,.guide-note,.guide-steps,.guide-table-wrap{break-inside:avoid;page-break-inside:avoid}.guide-fig img{box-shadow:none}.guide-doc-actions{display:none}}.dl-actions{gap:8px}.dl-actions,.dl-toc{flex-wrap:wrap;display:flex}.dl-toc{gap:6px;max-width:820px;margin:0 auto 20px}.dl-toc a{border:1px solid var(--hairline);border-radius:var(--r-full);background:var(--canvas);color:var(--charcoal);padding:5px 11px;font-size:12.5px;text-decoration:none}.dl-toc a:hover{border-color:var(--primary);color:var(--primary)}.dl-pages{justify-items:center;gap:24px;display:grid}.dl-page{width:100%;max-width:820px;margin:0;scroll-margin-top:84px}.dl-page img{border:1px solid var(--hairline);background:#fff;border-radius:6px;width:100%;height:auto;display:block;box-shadow:0 1px 2px #0f172a0d,0 10px 28px #0f172a14}.dl-page figcaption{color:var(--steel);text-align:center;margin-top:7px;font-size:12px}.dl-foot{justify-content:center;gap:8px;margin:26px 0 8px;display:flex}@media print{.dl-actions,.dl-foot,.dl-toc{display:none!important}.dl-page{break-after:page;page-break-after:always}.dl-page img{box-shadow:none;border:0}.dl-page figcaption{display:none}}.tutor-fab{z-index:60;border-radius:var(--r-full);background:var(--accent-lab);color:var(--canvas);cursor:pointer;border:0;align-items:center;gap:8px;padding:11px 16px 11px 13px;font-size:13.5px;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-flex;position:fixed;bottom:22px;right:22px;box-shadow:0 6px 20px #5e0ed752}.tutor-fab:hover{transform:translateY(-1px);box-shadow:0 8px 24px #5e0ed766}.tutor-fab.is-open{background:var(--ink-deep);box-shadow:var(--elev-2)}.tutor-panel{z-index:59;background:var(--canvas);border-left:1px solid var(--hairline-soft);flex-direction:column;width:min(420px,100vw);transition:transform .22s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(105%);box-shadow:-12px 0 32px #14161a1f}.tutor-panel.is-open{transform:translate(0)}.tutor-head{border-bottom:1px solid var(--hairline-soft);justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 16px 12px;display:flex}.tutor-title{color:var(--ink-deep);margin:0;font-size:15px;font-weight:700}.tutor-sub{color:var(--slate);margin:3px 0 0;font-size:12px}.tutor-close{color:var(--steel);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:4px 6px;font-size:15px}.tutor-close:hover{background:var(--surface-soft);color:var(--ink)}.tutor-notice{color:var(--attention-ink);border-bottom:1px solid var(--hairline-soft);background:#fffaf0;margin:0;padding:8px 16px;font-size:12px;line-height:1.55}.tutor-body{flex:1;padding:14px 16px;overflow-y:auto}.tutor-empty{color:var(--charcoal);font-size:13.5px;line-height:1.7}.tutor-empty-title{color:var(--ink-deep);margin:0 0 6px;font-weight:700}.tutor-empty-list{color:var(--slate);margin:0 0 12px;padding-left:18px}.tutor-empty-note{color:var(--steel);margin:0;font-size:12px}.tutor-turn{margin-bottom:18px}.tutor-q{background:var(--ink-deep);color:var(--canvas);white-space:pre-wrap;word-break:break-word;border-radius:14px 14px 4px;margin:0 0 8px 40px;padding:9px 12px;font-size:13.5px;line-height:1.6}.tutor-a{background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:14px 14px 14px 4px;margin-right:24px;padding:10px 12px}.tutor-a-text{color:var(--charcoal);white-space:pre-wrap;word-break:break-word;margin:0;font-size:13.5px;line-height:1.7}.tutor-thinking{color:var(--steel);margin:0;font-size:13px}.tutor-caret{vertical-align:-2px;background:var(--accent-lab);width:7px;height:14px;margin-left:2px;animation:tutor-blink .9s steps(2) infinite;display:inline-block}@keyframes tutor-blink{to{opacity:0}}.tutor-error{color:var(--critical-strong);background:#fdf1f3;border-radius:10px;margin:0;padding:9px 12px;font-size:13px;line-height:1.6}.tutor-sources{margin:8px 24px 0 0;font-size:12px}.tutor-sources summary{cursor:pointer;color:var(--accent-lab);font-weight:600;line-height:1.5}.tutor-source{border-left:2px solid var(--accent-lab-soft);background:var(--canvas);border-radius:0 8px 8px 0;margin-top:8px;padding:8px 10px}.tutor-source-title{color:var(--ink-deep);margin:0 0 3px;font-weight:700}.tutor-source-excerpt{color:var(--slate);white-space:pre-wrap;max-height:96px;margin:0;line-height:1.55;overflow:hidden}.tutor-foot{border-top:1px solid var(--hairline-soft);background:var(--canvas);align-items:flex-end;gap:8px;padding:12px 16px 14px;display:flex}.tutor-input{resize:none;border:1px solid var(--hairline);color:var(--ink);background:var(--canvas);border-radius:12px;flex:1;padding:9px 12px;font-size:13.5px;line-height:1.5}.tutor-input:focus-visible{outline:2px solid var(--accent-lab);outline-offset:1px}.tutor-send{flex-shrink:0}@media (max-width:560px){.tutor-fab{padding:11px 13px;bottom:14px;right:14px}.tutor-fab-label{display:none}.tutor-q{margin-left:20px}}@media print{.tutor-fab,.tutor-panel{display:none!important}}.tutor-md{white-space:normal}.tutor-md>:first-child{margin-top:0}.tutor-md>:last-child{margin-bottom:0}.tutor-md p{margin:0 0 8px}.tutor-md h1,.tutor-md h2,.tutor-md h3,.tutor-md h4{color:var(--ink-deep);margin:12px 0 6px;font-size:14px;font-weight:700;line-height:1.5}.tutor-md ol,.tutor-md ul{margin:0 0 8px;padding-left:20px}.tutor-md li{margin-bottom:3px}.tutor-md li>p{margin:0}.tutor-md strong{color:var(--ink-deep);font-weight:700}.tutor-md code{background:var(--hairline-soft);color:var(--ink-deep);border-radius:5px;padding:1px 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.tutor-md pre{background:var(--ink-deep);color:var(--canvas);border-radius:8px;margin:0 0 8px;padding:10px 12px;overflow-x:auto}.tutor-md pre code{color:inherit;background:0 0;padding:0;font-size:12.5px;line-height:1.6}.tutor-md blockquote{border-left:3px solid var(--hairline);color:var(--slate);margin:0 0 8px;padding:4px 10px}.tutor-md table{border-collapse:collapse;margin:0 0 8px;font-size:12.5px;display:block;overflow-x:auto}.tutor-md td,.tutor-md th{border:1px solid var(--hairline-soft);text-align:left;padding:4px 8px}.tutor-md th{background:var(--canvas);font-weight:700}.tutor-md a{color:var(--primary);text-decoration:underline}.tutor-md hr{border:0;border-top:1px solid var(--hairline-soft);margin:10px 0}.og-blank{justify-content:space-between;align-items:center;gap:var(--sp-md);padding:var(--sp-lg) var(--sp-xl);margin-bottom:var(--sp-xl);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);background:var(--canvas);flex-wrap:wrap;display:flex}.og-blank-text{min-width:0}.og-blank-title{color:var(--ink-deep);margin:0 0 4px;font-size:.9375rem;font-weight:700}.og-blank-note{color:var(--slate);max-width:72ch;margin:0;font-size:.875rem;line-height:1.7}.og-loading{padding:56px var(--sp-xl);text-align:center}.og-loading-title{color:var(--ink-deep);margin:0 0 6px;font-size:.9375rem;font-weight:600}.og-loading-note{color:var(--slate);margin:0;font-size:.875rem}.og-error{padding:var(--sp-md) var(--sp-xl);color:var(--critical-strong);background:var(--critical-soft);margin:0;font-size:.875rem}.og-notice{padding:var(--sp-xl);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);background:var(--surface-soft)}.og-notice h2{color:var(--ink-deep);margin:0 0 6px;font-size:.9375rem;font-weight:700}.og-notice p{color:var(--slate);margin:0;font-size:.875rem;line-height:1.7}.og-files-head{justify-content:space-between;align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-md);display:flex}.og-files-title{color:var(--ink-deep);margin:0;font-size:1rem;font-weight:700}.og-muted{color:var(--slate);margin:0;font-size:.875rem}.og-file-list{gap:var(--sp-sm);margin:0;padding:0;list-style:none;display:grid}.og-file{gap:var(--sp-sm) var(--sp-md);padding:var(--sp-md) var(--sp-lg);border:1px solid var(--hairline-soft);border-radius:var(--r-lg);background:var(--canvas);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.og-file-main{min-width:0}.og-file-name{color:var(--ink-deep);overflow-wrap:anywhere;margin:0 0 2px;font-size:.9375rem;font-weight:600}.og-file-meta{color:var(--slate);overflow-wrap:anywhere;margin:0;font-size:.8125rem}.og-file-actions{gap:var(--sp-2xs);flex-wrap:wrap;justify-content:flex-end;display:flex}.og-preview-empty{color:var(--slate);margin:0;font-size:.875rem}@media (max-width:640px){.og-file{grid-template-columns:minmax(0,1fr)}.og-file-actions{justify-content:flex-start}}.og-note{padding:var(--sp-md) var(--sp-xl);color:var(--ink-deep);background:var(--surface-soft);border-bottom:1px solid var(--hairline-soft);margin:0;font-size:.875rem}.lab-root{flex-direction:column;position:fixed;inset:0}.lab-bar,.lab-root{background:var(--ink-deep);display:flex}.lab-bar{justify-content:space-between;align-items:center;gap:var(--sp-md);color:#e4e6ea;border-bottom:1px solid #ffffff1a;flex:none;padding:8px 14px}.lab-bar-left,.lab-bar-right{align-items:center;gap:10px;min-width:0;display:flex}.lab-bar-right{flex-wrap:wrap;justify-content:flex-end}.lab-back{color:#e4e6ea;background:#ffffff1a;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;font-size:1rem;line-height:1;text-decoration:none;display:inline-flex}.lab-back:hover{background:#fff3}.lab-title{color:#fff;white-space:nowrap;text-overflow:ellipsis;max-width:42vw;font-size:.9375rem;font-weight:600;overflow:hidden}.lab-left,.lab-note,.lab-saved{color:#9aa0a6;white-space:nowrap;font-size:.8125rem}.lab-note{color:#6ee7b7}.lab-btn{font:inherit;color:#e4e6ea;cursor:pointer;white-space:nowrap;background:#ffffff1a;border:0;border-radius:7px;padding:6px 12px;font-size:.8125rem;font-weight:600}.lab-btn:hover:not(:disabled){background:#fff3}.lab-btn:disabled{opacity:.5;cursor:default}.lab-btn-primary{color:var(--ink-deep);background:#f59e0b}.lab-btn-primary:hover:not(:disabled){background:#fbbf24}.lab-strip{color:var(--ink-deep);background:#fde68a;flex:none;margin:0;padding:8px 14px;font-size:.8125rem}.lab-strip-link{font:inherit;color:var(--primary-deep);cursor:pointer;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.lab-frame{background:var(--ink-deep);border:0;width:100%}.lab-center{color:#e4e6ea;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex}.lab-center-title{margin:0;font-size:1rem;font-weight:700}.lab-center-note{color:#9aa0a6;max-width:38ch;margin:0 0 8px;font-size:.875rem;line-height:1.7}.lab-spinner{border:3px solid #ffffff2e;border-top-color:#f59e0b;border-radius:50%;width:26px;height:26px;margin-bottom:8px;animation:lab-spin .9s linear infinite}@keyframes lab-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.lab-spinner{animation:none}}@media (max-width:640px){.lab-saved{display:none}.lab-title{max-width:32vw}}.lesson-embedded-lab{padding:var(--sp-xl);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);background:var(--canvas);flex-direction:column;align-items:flex-start;gap:8px;display:flex}.lesson-embedded-lab-title{color:var(--ink-deep);margin:0;font-size:.9375rem;font-weight:700}.lesson-embedded-lab-note{color:var(--slate);max-width:46ch;margin:0 0 4px;font-size:.875rem;line-height:1.7}.lesson-embedded-lab-actions{flex-wrap:wrap;gap:8px;display:flex}.og-prewarm{justify-content:space-between;align-items:center;gap:var(--sp-md);margin-top:var(--sp-md);padding:var(--sp-md) var(--sp-lg);border-radius:var(--r-lg);background:#ffffff12;border:1px solid #ffffff29;flex-wrap:wrap;display:flex}.og-prewarm-text{min-width:0}.og-prewarm-title{color:#fff;margin:0 0 2px;font-size:.875rem;font-weight:700}.og-prewarm-note{color:#ffffffb8;max-width:72ch;margin:0;font-size:.8125rem;line-height:1.6}.og-prewarm-result{color:#6ee7b7;margin:4px 0 0;font-size:.8125rem}.og-prewarm-actions{gap:var(--sp-2xs);flex-wrap:wrap;display:flex}.og-prewarm .btn{color:#e4e6ea;background:#ffffff1f;border:0}.og-prewarm .btn:hover:not(:disabled){background:#ffffff38}.og-prewarm .btn-primary{color:var(--ink-deep);background:#f59e0b}.og-prewarm .btn-primary:hover:not(:disabled){background:#fbbf24}.og-prewarm .btn:disabled{opacity:.5}.og-files-hint,.og-kept{margin:0 0 var(--sp-sm)}.og-kept{padding:var(--sp-sm) var(--sp-md);color:var(--success-ink);background:var(--success-soft);border-radius:var(--r-md);font-size:.875rem}.og-kept a{color:inherit;font-weight:600;text-decoration:underline}.ann-thumb--info{background:var(--primary-soft);color:var(--primary-deep)}.ann-thumb--event{background:var(--accent-lab-soft);color:var(--accent-lab)}.ann-thumb--warning{background:var(--attention-soft);color:var(--attention-ink)}.ann-thumb--update{background:var(--success-soft);color:var(--success-ink)}.board-thumb-mark{letter-spacing:-.01em;font-size:.8125rem;font-weight:800}.board-card--unread{box-shadow:inset 3px 0 0 var(--primary)}.dash-start-grid{gap:var(--sp-sm);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.dash-start-card{align-items:flex-start;gap:var(--sp-sm);padding:var(--sp-lg);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);background:var(--canvas);text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.dash-start-card:hover{border-color:var(--ink-deep);box-shadow:var(--elev-2);transform:translateY(-1px)}.dash-start-icon{border-radius:var(--r-lg);width:40px;height:40px;color:var(--accent-lab);background:var(--accent-lab-soft);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.dash-start-card--robot .dash-start-icon{color:var(--primary-deep);background:var(--primary-soft)}.dash-start-card--code .dash-start-icon{color:var(--success-ink);background:var(--success-soft)}.dash-start-body{flex-direction:column;gap:3px;min-width:0;display:flex}.dash-start-title{color:var(--ink-deep);font-size:.9375rem;font-weight:700}.dash-start-desc{color:var(--slate);word-break:keep-all;overflow-wrap:break-word;font-size:.8125rem;line-height:1.55}.dash-start-arrow{color:var(--stone);flex-shrink:0;align-self:center;margin-left:auto;font-size:1rem}.dash-start-card:hover .dash-start-arrow{color:var(--ink-deep)}@media (max-width:900px){.dash-start-grid{grid-template-columns:1fr}}.board-card-meta{color:var(--slate);flex-wrap:wrap;align-items:center;gap:6px;font-size:.75rem;display:flex}.board-card-author{font-weight:600}.ann-thumb{aspect-ratio:1;width:72px}.ol-load{padding:56px var(--sp-xl);place-items:center;display:grid}.ol-load--dark{background:var(--ink-deep);flex:auto}.ol-load-box{text-align:center;width:100%;max-width:30rem}.ol-load-title{color:var(--ink-deep);margin:0 0 6px;font-size:.9375rem;font-weight:700}.ol-load-note{margin:0 0 var(--sp-md);color:var(--slate);font-size:.875rem;line-height:1.7}.ol-load-bar{background:var(--surface-soft);border-radius:999px;height:6px;overflow:hidden}.ol-load-fill{background:linear-gradient(90deg,var(--accent-lab,#5e0ed7),#f59e0b);border-radius:999px;height:100%;transition:width .4s linear;display:block}.ol-load-steps{justify-content:center;gap:var(--sp-md);margin:var(--sp-md) 0 var(--sp-sm);flex-wrap:wrap;padding:0;list-style:none;display:flex}.ol-load-step{color:var(--steel);align-items:center;gap:6px;font-size:.8125rem;display:inline-flex}.ol-load-step.is-now{color:var(--ink-deep);font-weight:700}.ol-load-step.is-done{color:var(--success,#31a24c)}.ol-load-dot{background:var(--surface-soft);width:18px;height:18px;color:var(--steel);border-radius:50%;place-items:center;font-size:.6875rem;font-weight:700;display:inline-grid}.ol-load-step.is-now .ol-load-dot{color:var(--ink-deep);background:#f59e0b}.ol-load-step.is-done .ol-load-dot{background:var(--success,#31a24c);color:#fff}.ol-load-pct{letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--ink-deep);margin:0 0 8px;font-size:1.875rem;font-weight:800;line-height:1}.ol-load-pct span{color:var(--steel);margin-left:2px;font-size:1rem;font-weight:700}.ol-load-detail{color:var(--steel);margin:8px 0 0;font-size:.75rem}.ol-load-meta{color:var(--steel);margin:0;font-size:.8125rem}.ol-load-tip{color:var(--steel);margin:4px 0 0;font-size:.75rem}.ol-load--dark .ol-load-pct,.ol-load--dark .ol-load-title{color:#fff}.ol-load--dark .ol-load-detail,.ol-load--dark .ol-load-meta,.ol-load--dark .ol-load-note,.ol-load--dark .ol-load-pct span,.ol-load--dark .ol-load-tip{color:#9aa0a6}.ol-load--dark .ol-load-bar{background:#ffffff1f}.ol-load--dark .ol-load-step{color:#9aa0a6}.ol-load--dark .ol-load-step.is-now{color:#fff}.ol-load--dark .ol-load-step.is-done{color:#6ee7b7}.ol-load--dark .ol-load-dot{color:#9aa0a6;background:#ffffff24}.ol-load--dark .ol-load-step.is-done .ol-load-dot{color:var(--ink-deep);background:#6ee7b7}.lab-frame--veiled{opacity:0;pointer-events:none}.lab-body{flex:auto;min-height:0;position:relative}.lab-body>.lab-frame{width:100%;height:100%}.lab-body>.lab-center,.lab-body>.lab-frame,.lab-body>.ol-load{position:absolute;inset:0}.og-ex{margin-bottom:var(--sp-xl)}.og-ex-head{margin-bottom:var(--sp-md)}.og-ex-title{color:var(--ink-deep);margin:0 0 4px;font-size:1rem;font-weight:700}.og-ex-sub{color:var(--slate);max-width:68ch;margin:0;font-size:.875rem;line-height:1.7}.og-ex-error{border-radius:var(--r-md);margin-bottom:var(--sp-sm)}.og-ex-list{gap:var(--sp-md);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));margin:0;padding:0;list-style:none;display:grid}.og-ex-card{padding:var(--sp-lg);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);background:var(--canvas);flex-direction:column;display:flex}.og-ex-card-head{justify-content:space-between;align-items:center;gap:var(--sp-xs);margin-bottom:var(--sp-xs);display:flex}.og-ex-step{color:var(--accent-lab,#5e0ed7);background:#f4f0fe;border-radius:999px;padding:3px 9px;font-weight:700}.og-ex-mins,.og-ex-step{white-space:nowrap;font-size:.75rem}.og-ex-mins{color:var(--steel)}.og-ex-card-title{color:var(--ink-deep);margin:0 0 4px;font-size:.9375rem;font-weight:700}.og-ex-card-sum{margin:0 0 var(--sp-sm);color:var(--slate);font-size:.8125rem;line-height:1.65}.og-ex-widgets{margin:0 0 var(--sp-md);flex-wrap:wrap;gap:4px;padding:0;list-style:none;display:flex}.og-ex-widgets li{color:var(--slate);background:var(--surface-soft);border-radius:5px;padding:2px 7px;font-size:.6875rem}.og-ex-actions{gap:var(--sp-2xs);flex-wrap:wrap;margin-top:auto;display:flex}.og-modal{border-radius:var(--r-xl);background:var(--canvas);width:min(1060px,92vw);max-height:88vh;color:var(--ink-deep);border:0;margin:auto;padding:0;box-shadow:0 24px 60px #0a131747}.og-modal::backdrop{background:#0a13178c}.og-modal-box{flex-direction:column;max-height:88vh;display:flex}.og-modal-head{justify-content:space-between;align-items:center;gap:var(--sp-md);padding:var(--sp-lg) var(--sp-xl);border-bottom:1px solid var(--hairline-soft);display:flex}.og-modal-title{color:var(--ink-deep);margin:0;font-size:.9375rem;font-weight:700}.og-modal-close{cursor:pointer;color:var(--steel);background:0 0;border:0;padding:0 4px;font-size:1.5rem;line-height:1}.og-modal-close:hover{color:var(--ink-deep)}.og-modal-body{padding:var(--sp-lg) var(--sp-xl) var(--sp-xl);overflow:auto}.og-modal-note{color:var(--slate)}.og-modal-note,.og-modal-notes{margin:var(--sp-sm) 0 0;font-size:.8125rem;line-height:1.7}.og-modal-notes{color:var(--steel);white-space:pre-line;padding-left:18px}@media (max-width:640px){.og-modal{width:94vw}.og-modal-head{padding:var(--sp-md) var(--sp-lg)}.og-modal-body{padding:var(--sp-md) var(--sp-lg) var(--sp-lg)}}.og-wf{width:100%;overflow-x:auto}.ai-plan{border:1px solid var(--hairline-soft);background:var(--surface-soft);border-radius:12px;margin-top:1rem;padding:.9rem 1rem 1rem}.ai-plan-head{align-items:flex-start;gap:.6rem;margin-bottom:.7rem;display:flex}.ai-plan-badge{letter-spacing:.04em;color:#fff;background:var(--accent,#2563eb);border-radius:6px;flex:none;margin-top:2px;padding:2px 6px;font-size:11px;font-weight:800}.ai-plan-title{margin:0;font-size:.95rem;font-weight:700}.ai-plan-sub{color:var(--steel);margin:.15rem 0 0;font-size:.8125rem;line-height:1.5}.ai-plan-form{grid-template-columns:1fr 1fr;gap:.6rem .8rem;display:grid}.ai-plan-actions,.ai-plan-wide{grid-column:1/-1}.ai-plan-actions{align-items:center;gap:.5rem;display:flex}.ai-plan-warn{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:.5rem .7rem}.ai-plan-list{flex-direction:column;gap:.6rem;max-height:46vh;margin:.9rem 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.ai-plan-item{border:1px solid var(--hairline-soft);background:#fff;border-radius:10px;padding:.6rem .7rem}.ai-plan-item-head{align-items:center;gap:.5rem;margin-bottom:.4rem;display:flex}.ai-plan-num{color:var(--steel);flex:none;min-width:3.2rem;font-size:12px;font-weight:700}.ai-plan-item-title{flex:1;font-weight:600}.ai-plan-item-desc{width:100%;font-size:.8125rem;line-height:1.5}.ai-nb-cells{flex-direction:column;gap:.4rem;max-height:52vh;margin:.5rem 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.ai-nb-cell{border:1px solid var(--hairline-soft);background:#fff;border-radius:8px;grid-template-columns:2.4rem 1fr;gap:.5rem;padding:.45rem .6rem;display:grid}.ai-nb-cell--code{background:#f8fafc}.ai-nb-cell-kind{color:var(--steel);padding-top:2px;font-size:11px;font-weight:700}.ai-nb-cell-src{white-space:pre-wrap;word-break:break-word;margin:0;font-family:inherit;font-size:12.5px;line-height:1.5}.ai-nb-cell--code .ai-nb-cell-src{font-family:ui-monospace,D2Coding,Menlo,Consolas,monospace}@media (max-width:640px){.ai-plan-form{grid-template-columns:1fr}}.quiz-grading-ai-note{color:var(--steel);margin:.6rem 0 0;font-size:.85rem}.quiz-grading-ai{background:#eef2ff;border:1px solid #c7d2fe;border-radius:12px;margin:.8rem 0;padding:.8rem 1rem}.quiz-grading-ai-head{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.quiz-grading-ai-list{flex-direction:column;gap:.3rem;max-height:40vh;margin:.7rem 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.quiz-grading-ai-item{border:1px solid var(--hairline-soft);background:#fff;border-radius:8px;grid-template-columns:11rem minmax(0,1fr) 4.5rem minmax(0,1.2fr);align-items:center;gap:.6rem;padding:.4rem .7rem;font-size:.82rem;display:grid}.quiz-grading-ai-item.is-correct{border-left:4px solid #16a34a}.quiz-grading-ai-item.is-partial{border-left:4px solid #f59e0b}.quiz-grading-ai-item.is-wrong{border-left:4px solid #dc2626}.quiz-grading-ai-who{font-weight:600}.quiz-grading-ai-ans,.quiz-grading-ai-who{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.quiz-grading-ai-ans{color:#334155;font-family:ui-monospace,Menlo,Consolas,monospace}.quiz-grading-ai-pts{text-align:right;font-weight:700}.quiz-grading-ai-comment{color:var(--charcoal)}@media (max-width:720px){.quiz-grading-ai-item{grid-template-columns:1fr}}.quiz-q-essay-model{width:100%;min-height:6rem;line-height:1.5}.quizp-essay-input{resize:vertical;min-height:9rem;line-height:1.55}.quizp-sa-result--pending{color:#334155}.quizp-feedback--pending,.quizp-sa-result--pending{background:#f1f5f9;border-color:#cbd5e1}.quizp-feedback--pending .quizp-feedback-icon{color:#64748b}.quiz-grading-q--pending{border-left-color:#94a3b8}.quiz-grading-mark--pending,.quiz-grading-pending-count{color:#334155;background:#e2e8f0}.quiz-grading-pending-count{margin-left:.3rem}.quiz-grading-essay{white-space:pre-wrap;word-break:break-word;border:1px solid var(--hairline-soft);font:inherit;background:#fff;border-radius:8px;max-height:18rem;margin:0 0 .4rem;padding:.6rem .8rem;line-height:1.55;overflow-y:auto}.quizp-feedback--partial{background:#fffbeb;border-color:#fde68a}.quizp-feedback--partial .quizp-feedback-icon{color:#b45309}.wb-starters{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;margin:20px 0 28px;display:grid}.wb-starter{background:var(--paper,#fff);border-radius:14px;flex-direction:column;justify-content:space-between;gap:14px;padding:20px 22px;display:flex;box-shadow:0 1px 2px #0f172a0f,0 0 0 1px #0f172a0d}.wb-starter-kicker{letter-spacing:.02em;color:var(--slate,#64748b);margin:0 0 6px;font-size:.75rem;font-weight:600}.wb-starter-title{color:var(--ink-deep,#0f172a);margin:0 0 8px;font-size:1.0625rem;font-weight:700}.wb-starter-summary{color:var(--ink,#1e293b);margin:0 0 10px;font-size:.875rem;line-height:1.7}.wb-starter-meta{color:var(--slate,#64748b);margin:0;font-size:.75rem}.wb-starter .btn{align-self:flex-start}.wb-howto{background:#0f172a08;border-radius:14px;padding:18px 22px}.wb-howto-title{color:var(--ink-deep,#0f172a);margin:0 0 8px;font-size:.9375rem;font-weight:700}.wb-howto-list{color:var(--ink,#1e293b);margin:0 0 8px;padding-left:20px;font-size:.875rem;line-height:1.8}.wb-root{--wb-bg:#0b1220;--wb-panel:#111a2e;--wb-line:#ffffff14;color:#e2e8f0}.wb-body{background:var(--wb-bg);flex:auto;grid-template-columns:minmax(0,1fr) 8px 46%;min-height:0;display:grid}.wb-view-pane{background:#0b1220;min-width:0;min-height:0;position:relative}.wb-view,.wb-view-pane webots-view{width:100%;height:100%;display:block}.wb-loading{z-index:4;display:flex;position:absolute;inset:0}.wb-loading>.ol-load{background:#0b1220;flex:auto}.wb-view-pane #progress{display:none!important}.wb-reload{z-index:3;color:#e2e8f0;background:#0f172ae6;border:1px solid #ffffff1f;border-radius:10px;grid-template-columns:auto auto;align-items:center;gap:4px 10px;min-width:220px;padding:8px 12px;font-size:.8125rem;display:grid;position:absolute;top:10px;left:50%;transform:translate(-50%)}.wb-reload b{font-variant-numeric:tabular-nums;color:#7dd3fc;justify-self:end}.wb-reload-bar{background:#ffffff1f;border-radius:999px;grid-column:1/-1;height:4px;overflow:hidden}.wb-reload-bar>span{background:#38bdf8;border-radius:999px;height:100%;transition:width .25s linear;display:block}.wb-view-pane:focus{outline:none}.wb-view-pane--keys{box-shadow:inset 0 0 0 2px #38bdf8}.wb-keys{z-index:2;color:#94a3b8;pointer-events:none;background:#0f172ab8;border-radius:999px;margin:0;padding:4px 10px;font-size:.75rem;position:absolute;top:10px;left:12px}.wb-keys--on{color:#0c4a6e;background:#7dd3fc;font-weight:700}.wb-viewbar{z-index:3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f172ad6;border:1px solid #ffffff1f;border-radius:12px;flex-wrap:wrap;align-items:center;gap:3px;max-width:calc(100% - 24px);padding:5px;display:flex;position:absolute;bottom:12px;left:12px}.wb-vb-btn{color:#e2e8f0;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:8px;height:30px;padding:0 10px;font-size:.8125rem;font-weight:600}.wb-vb-btn:hover{background:#ffffff1a}.wb-vb-btn:focus-visible{outline-offset:1px;outline:2px solid #38bdf8}.wb-vb-btn.is-on{color:#7dd3fc;background:#38bdf82e}.wb-vb-run{color:#86efac;background:#22c55e2e}.wb-vb-run.is-on{color:#fcd34d;background:#f59e0b33}.wb-vb-icon{width:30px;padding:0;font-size:1rem}.wb-vb-sep{background:#ffffff29;width:1px;height:18px;margin:0 3px}.wb-view-help{z-index:3;color:#e2e8f0;background:#0f172af5;border:1px solid #ffffff1f;border-radius:12px;width:min(310px,100% - 24px);padding:12px 14px;font-size:.8125rem;line-height:1.6;position:absolute;bottom:60px;left:12px}.wb-view-help-title{margin:0 0 6px;font-weight:700}.wb-view-help ul{margin:0;padding-left:16px;list-style:outside}.wb-view-help b{color:#7dd3fc;font-weight:600}.wb-view-help-note{color:#94a3b8;margin:8px 0 0;font-size:.75rem}.wb-veil{text-align:center;background:#0b1220eb;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;display:flex;position:absolute;inset:0}.wb-veil-title{margin:0;font-size:1rem;font-weight:700}.wb-veil-note{color:#94a3b8;max-width:380px;margin:0 0 8px;font-size:.875rem;line-height:1.6}.wb-divider{cursor:col-resize;background:var(--wb-line)}.wb-divider:hover{background:#ffffff2e}.wb-code-pane{background:var(--wb-panel);grid-template-rows:auto minmax(0,1fr) auto minmax(120px,28%);min-width:0;min-height:0;display:grid;overflow:hidden}.wb-code-pane>*{min-width:0}.wb-tabs{border-bottom:1px solid var(--wb-line);gap:2px;padding:6px 8px 0;display:flex;overflow-x:auto}.wb-tab{font:inherit;color:#94a3b8;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:8px 8px 0 0;padding:6px 12px;font-size:.8125rem}.wb-tab:hover{color:#e2e8f0}.wb-tab--on{color:#f8fafc;background:#1e293b}.wb-tab--empty{cursor:default}.wb-editor-wrap{min-width:0;min-height:0;overflow:hidden}.wb-editor,.wb-editor .cm-editor{height:100%}.wb-editor-empty{color:#64748b;place-items:center;height:100%;font-size:.875rem;display:grid}.wb-actions{border-top:1px solid var(--wb-line);border-bottom:1px solid var(--wb-line);flex-wrap:wrap;align-items:center;gap:6px;padding:8px;display:flex}.wb-actions-gap{flex:auto}.wb-btn-danger{color:#fca5a5}.wb-console{background:#0b1220;padding:8px 10px;font-family:JetBrains Mono,Nanum Gothic Coding,ui-monospace,monospace;font-size:.75rem;line-height:1.55;overflow:auto}.wb-console-empty{color:#64748b;margin:0}.wb-line{white-space:pre-wrap;word-break:break-word;margin:0}.wb-line--out{color:#e2e8f0}.wb-line--err{color:#fca5a5}.wb-line--sys{color:#7dd3fc}.wb-line-at{color:#475569}@media (max-width:900px){.wb-body{grid-template-rows:45vh 0 minmax(0,1fr);grid-template-columns:minmax(0,1fr)!important}.wb-divider{display:none}}.wb-kind{border-radius:999px;margin-right:8px;padding:1px 8px;font-size:.6875rem;font-weight:700;display:inline-block}.wb-kind--task{color:#1d4ed8;background:#1d4ed81a}.wb-kind--example{color:#047857;background:#0478571a}.wb-mission{border-bottom:1px solid var(--wb-line);padding:10px 14px;font-size:.8125rem;line-height:1.6}.wb-mission summary{cursor:pointer;color:#f8fafc;align-items:center;gap:8px;font-weight:700;list-style:none;display:flex}.wb-mission summary::-webkit-details-marker{display:none}.wb-mission summary:before{content:"▸";color:#7dd3fc;font-size:.75rem}.wb-mission[open] summary:before{content:"▾"}.wb-mission-goal{color:#e2e8f0;margin:8px 0 6px}.wb-mission ol,.wb-mission ul{color:#cbd5e1;margin:4px 0 4px 18px;padding:0}.wb-mission li{margin:2px 0}.wb-mission-hints summary{color:#94a3b8;margin-top:6px;font-size:.75rem;font-weight:600}.wb-mission-hints summary:before{content:none}.wb-code-pane{grid-template-rows:auto auto minmax(0,1fr) auto minmax(120px,26%)}.wb-first{color:#0f172a;white-space:nowrap;background:#f59e0bf2;border-radius:999px;padding:8px 14px;font-size:.8125rem;font-weight:600;position:absolute;bottom:64px;left:50%;transform:translate(-50%)}.wb-modal{z-index:50;background:#020617b3;place-items:center;display:grid;position:fixed;inset:0}.wb-modal-card{background:#111a2e;border-radius:12px;grid-template-rows:auto minmax(0,1fr);width:min(860px,92vw);height:min(78vh,720px);display:grid;overflow:hidden;box-shadow:0 20px 60px #00000080}.wb-modal-head{border-bottom:1px solid var(--wb-line);justify-content:space-between;align-items:center;gap:10px;padding:10px 14px;font-weight:700;display:flex}.wb-modal-head>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.wb-modal-head>span:last-child{flex-shrink:0;gap:6px;display:flex}.wb-modal-body,.wb-tutor{min-height:0}.wb-tutor{border-left:1px solid var(--wb-line);background:#0f172a;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;display:grid}.wb-tutor-head{border-bottom:1px solid var(--wb-line);justify-content:space-between;align-items:center;padding:10px 12px;font-weight:700;display:flex}.wb-tutor-head small{color:#94a3b8;margin-left:6px;font-weight:500}.wb-tutor-list{flex-direction:column;gap:10px;padding:12px;display:flex;overflow:auto}.wb-tutor-empty p{color:#cbd5e1;margin:0 0 10px;font-size:.8125rem;line-height:1.6}.wb-tutor-sugg{flex-wrap:wrap;gap:6px;display:flex}.wb-tutor-chip{border:1px solid var(--wb-line);color:#e2e8f0;font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:5px 10px;font-size:.75rem}.wb-tutor-chip:hover{background:#ffffff14}.wb-tutor-msg{white-space:pre-wrap;word-break:break-word;border-radius:12px;max-width:100%;padding:8px 12px;font-size:.8125rem;line-height:1.6}.wb-tutor-msg--user{color:#fff;background:#1d4ed8;align-self:flex-end}.wb-tutor-msg--ai{color:#e2e8f0;background:#1e293b;align-self:stretch}.wb-tutor-prose{margin:0 0 6px}.wb-tutor-code{border:1px solid var(--wb-line);border-radius:8px;margin-top:6px;overflow:hidden}.wb-tutor-code pre{background:#0b1220;margin:0;padding:8px 10px;font-family:JetBrains Mono,Nanum Gothic Coding,ui-monospace,monospace;font-size:.75rem;line-height:1.5;overflow:auto}.wb-tutor-code-actions{border-top:1px solid var(--wb-line);gap:6px;padding:6px 8px;display:flex}.wb-tutor-busy{color:#94a3b8}.wb-tutor-err{color:#fca5a5;margin:0;font-size:.8125rem}.wb-tutor-form{border-top:1px solid var(--wb-line);gap:6px;padding:8px;display:flex}.wb-tutor-input{border:1px solid var(--wb-line);color:#f8fafc;min-width:0;font:inherit;resize:none;background:#111a2e;border-radius:8px;flex:auto;padding:8px 10px;font-size:.8125rem}.wb-code-pane{position:relative}body:has(.wb-root) .scroll-to-top{display:none!important}@media (max-width:900px){.wb-body{grid-template-rows:45vh 0 minmax(0,1fr) auto}}.wbt{flex-direction:column;gap:18px;padding:4px 0;display:flex}.wbt-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.wbt-kicker{color:var(--slate,#64748b);margin:0 0 4px;font-size:.75rem;font-weight:600}.wbt-title{color:var(--ink-deep,#0f172a);margin:0 0 6px;font-size:1.25rem;font-weight:700}.wbt-desc{color:var(--ink,#1e293b);white-space:pre-line;margin:0;font-size:.9375rem;line-height:1.7}.wbt-actions{flex-wrap:wrap;gap:8px;display:flex}.wbt-facts{background:#0f172a0a;border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:0;padding:14px 16px;display:grid}.wbt-facts dt{color:var(--slate,#64748b);font-size:.75rem}.wbt-facts dd{color:var(--ink-deep,#0f172a);margin:2px 0 0;font-size:.9375rem;font-weight:600}.wbt-mine h3,.wbt-mission h3{margin:0 0 6px;font-size:.9375rem;font-weight:700}.wbt-mine p,.wbt-mission p{margin:0 0 6px;font-size:.9375rem;line-height:1.7}.wbt-mission ol{margin:0 0 0 20px;padding:0;line-height:1.8}.wbt-feedback{color:var(--slate,#64748b)}.wbt-form{gap:14px;max-width:760px}.wbt-field,.wbt-form{flex-direction:column;display:flex}.wbt-field{gap:6px;font-size:.875rem}.wbt-field>span{color:var(--ink-deep,#0f172a);font-weight:600}.wbt-field input,.wbt-field select,.wbt-field textarea{font:inherit;border:1px solid #0f172a26;border-radius:8px;padding:8px 10px}.wbt-warn{color:#b45309}.wbt-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.wbt-form-actions{gap:8px;display:flex}.wbt-table{border-collapse:collapse;width:100%;font-size:.875rem}.wbt-table td,.wbt-table th{text-align:left;vertical-align:top;border-bottom:1px solid #0f172a14;padding:8px 10px}.wbt-table th{color:var(--slate,#64748b);font-size:.75rem;font-weight:600}.wbt-table input[type=number]{width:72px}.wbt-table input[type=number],.wbt-table input[type=text]{font:inherit;border:1px solid #0f172a26;border-radius:6px;padding:4px 6px}.wbt-table input[type=text]{width:100%;min-width:160px}.wbt-detail{background:#0f172a0a;border-radius:10px;margin:6px 0 0;padding:10px 12px}.wbt-detail pre{color:#e2e8f0;background:#0f172a;border-radius:8px;max-height:360px;margin:6px 0 0;padding:10px;font-size:.75rem;line-height:1.5;overflow:auto}.wbt-log{background:#fff;border-left:3px solid #93c5fd;border-radius:6px;margin:6px 0;padding:8px 10px}.wbt-log-q{margin:0 0 4px;font-weight:600}.wbt-log-a{color:var(--slate,#64748b);white-space:pre-wrap;max-height:180px;margin:0;font-size:.8125rem;overflow:auto}.wbt-log-ins{color:#b45309;font-size:.75rem}.wb-cans{color:#7dd3fc;background:#7dd3fc26;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.8125rem;font-weight:600;display:inline-flex}.wb-cans--done{color:#4ade80;background:#4ade802e}.wb-submit-note{color:#cbd5e1;font-size:.8125rem}.wb-demo-body{background:var(--wb-bg,#0b1220);flex:auto;grid-template-columns:minmax(0,1fr) 360px;min-height:0;display:grid}.wb-demo-side{background:var(--wb-panel,#111a2e);border-left:1px solid var(--wb-line,#ffffff14);grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid}.wb-demo-info{border-bottom:1px solid var(--wb-line,#ffffff14);padding:14px 16px}.wb-demo-info h2{color:#f8fafc;margin:0 0 6px;font-size:1rem;font-weight:700}.wb-demo-info p{color:#cbd5e1;margin:0 0 6px;font-size:.8125rem;line-height:1.6}.wb-demo-info code{color:#94a3b8;word-break:break-all;font-size:.6875rem}.wb-demo-console{border:0}.wb-live{color:#cbd5e1;background:#94a3b833;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:600}.wb-live--on{color:#fca5a5;background:#ef44442e}.wb-live--on:before{content:"●";vertical-align:1px;margin-right:5px;font-size:.625rem}.wb-live--inline{vertical-align:middle;margin-left:8px}@media (max-width:900px){.wb-demo-body{grid-template-rows:55vh minmax(0,1fr);grid-template-columns:minmax(0,1fr)}}.wb-world-bar{flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0 8px;display:flex}.wb-world-search{min-width:200px;font:inherit;border:1px solid #0f172a26;border-radius:8px;flex:260px;padding:8px 12px}.wb-world-groups{flex-wrap:wrap;gap:6px;display:flex}.wb-world-chip{color:var(--ink,#1e293b);font:inherit;cursor:pointer;background:#fff;border:1px solid #0f172a26;border-radius:999px;padding:5px 12px;font-size:.8125rem}.wb-world-chip:hover{background:#0f172a0a}.wb-world-chip--on{background:var(--ink-deep,#0f172a);border-color:var(--ink-deep,#0f172a);color:#fff}.wb-world-list{border:1px solid #0f172a1a;border-radius:12px;max-height:44vh;padding:4px;overflow:auto}.wb-world-group+.wb-world-group{margin-top:10px}.wb-world-kind{color:var(--slate,#64748b);background:#fff;margin:0;padding:6px 8px;font-size:.75rem;font-weight:700;position:sticky;top:0}.wb-world-group ul{margin:0;padding:0;list-style:none}.wb-world-item{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:baseline;gap:8px;padding:7px 10px;display:flex}.wb-world-item:hover{background:#0f172a0d}.wb-world-item--on{background:#1d4ed81a;box-shadow:inset 0 0 0 1px #1d4ed859}.wb-world-title{color:var(--ink-deep,#0f172a);font-size:.875rem;font-weight:600}.wb-world-info{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--slate,#64748b);flex:auto;font-size:.75rem;overflow:hidden}.wb-w{border-radius:999px;flex:none;padding:1px 7px;font-size:.6875rem;font-weight:700}.wb-w--light{color:#047857;background:#0478571f}.wb-w--medium{color:#b45309;background:#b453091f}.wb-w--heavy{color:#be123c;background:#be123c1f}.wb-world-picked{margin:10px 0 0;font-size:.875rem}.wb-world-picked code{color:var(--slate,#64748b);font-size:.75rem}.wb-world-file{color:#94a3b8;flex:none;font-family:ui-monospace,monospace;font-size:.6875rem}.wb-demo-worlds{border-top:1px solid var(--wb-line,#ffffff14);margin-top:12px;padding-top:10px}.wb-demo-worlds-title{color:#94a3b8;margin:0 0 6px;font-size:.75rem;font-weight:700}.wb-demo-worlds-list{flex-wrap:wrap;gap:6px;display:flex}.wb-world-chip--dark{color:#e2e8f0;background:0 0;border-color:#ffffff24;padding:4px 10px;font-size:.75rem}.wb-world-chip--dark:hover:not(:disabled){background:#ffffff14}.wb-world-chip--dark:disabled{opacity:.45;cursor:default}.wb-world-chip--dark.wb-world-chip--on{color:#fff;background:#1d4ed8;border-color:#1d4ed8}.wb-replay-card{color:#e2e8f0;width:min(1100px,94vw);height:min(82vh,760px)}.wb-replay-body{background:#0b1220;position:relative}.wb-replay-body webots-view{width:100%;height:100%;display:block}.wb-replay-err{position:absolute;bottom:12px;left:12px}.usage-facts{margin-bottom:6px}.usage-facts dd small{font-weight:500}.usage-note{margin:4px 0 16px;font-size:.8125rem}.usage-section{margin-top:28px}.usage-h2{color:var(--ink);margin:0 0 10px;font-size:1rem;font-weight:600}.usage-chart{border:1px solid var(--border);background:var(--canvas);border-radius:12px;margin:0;padding:16px}.usage-chart-title{color:var(--ink);margin-bottom:10px;font-size:.9375rem;font-weight:600}.usage-chart-plot{padding-top:18px;position:relative}.usage-chart-max{color:var(--steel);font-size:.6875rem;position:absolute;top:0;left:0}.usage-chart-bars{border-top:1px dashed var(--hairline-soft);border-bottom:1px solid var(--hairline);align-items:flex-end;gap:2px;height:160px;display:flex}.usage-bar-slot{outline:none;flex-direction:column;flex:1 1 0;justify-content:flex-end;min-width:0;height:100%;display:flex;position:relative}.usage-bar{background:#2a78d6;border-radius:4px 4px 0 0;display:block}.usage-bar-slot.is-hover .usage-bar{background:#1c5cab}.usage-bar-slot:focus-visible{box-shadow:0 0 0 2px var(--primary-soft);border-radius:4px}.usage-bar-value{text-align:center;color:var(--ink);margin-bottom:2px;font-size:.6875rem;font-weight:600}.usage-tip{z-index:5;background:var(--ink-deep);color:#fff;white-space:nowrap;pointer-events:none;border-radius:6px;flex-direction:column;gap:1px;padding:6px 9px;font-size:.75rem;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%,-100%)}.usage-tip.is-left{left:auto;right:0;transform:translateY(-100%)}.usage-tip .og-muted{color:#ffffffb8;font-size:.75rem}.usage-chart-axis{gap:2px;margin-top:4px;display:flex}.usage-chart-axis span{min-width:0;color:var(--steel);white-space:nowrap;flex:1 1 0;font-size:.6875rem;overflow:visible}.usage-chart-table{margin-top:12px;font-size:.8125rem}.usage-chart-table summary{cursor:pointer;color:var(--slate)}.usage-chart-table table{margin-top:8px}.usage-kinds{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.usage-kinds li{background:var(--surface-soft);border-radius:10px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.usage-kinds strong{color:var(--ink-deep);font-size:1.0625rem}.usage-kind-label{color:var(--slate);font-size:.75rem}.usage-section .wbt-table{display:block;overflow-x:auto}.unit-health{border:1px solid var(--attention-light);background:var(--attention-soft);max-width:1320px;color:var(--attention-ink);border-radius:10px;flex-direction:column;gap:4px;margin:12px auto 0;padding:10px 16px;font-size:.875rem;line-height:1.6;display:flex}.unit-health strong{font-weight:600}.join-invite{background:var(--surface-soft);justify-content:center;align-items:center;min-height:100vh;padding:24px 16px;display:flex}.join-invite-card{border:1px solid var(--border);background:var(--canvas);text-align:center;border-radius:16px;width:100%;max-width:440px;padding:32px 28px}.join-invite-brand{font-family:Montserrat,var(--font-sans,sans-serif);color:var(--ink-deep);margin:0 0 20px;font-weight:600}.join-invite-kicker{color:var(--accent-lab);margin:0 0 6px;font-size:.8125rem;font-weight:600}.join-invite-title{color:var(--ink-deep);word-break:keep-all;margin:0 0 10px;font-size:1.375rem;font-weight:600;line-height:1.35}.join-invite-desc{color:var(--slate);word-break:keep-all;margin:0 0 22px;font-size:.9375rem;line-height:1.6}.join-invite-actions{flex-direction:column;gap:10px;display:flex}.join-invite-actions .btn{justify-content:center;width:100%}.join-invite-code{color:var(--steel);margin:18px 0 0;font-size:.8125rem}.class-invite-banner-link{margin-top:8px}.gears-summary-note{margin:0 0 var(--sp-lg);color:var(--steel);font-size:13px}.gears-xp{margin:0 0 var(--sp-sm);padding:var(--sp-base) var(--sp-xl);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);background:var(--canvas)}.gears-xp-head{align-items:center;gap:var(--sp-md);display:flex}.gears-xp-badge{border-radius:var(--r-full);background:var(--ink-deep);min-width:56px;height:40px;color:var(--canvas);letter-spacing:-.2px;flex:none;justify-content:center;align-items:center;padding:0 10px;font-size:16px;font-weight:700;display:inline-flex}.gears-xp-who{flex:1;min-width:0}.gears-xp-name{color:var(--ink-deep);margin:0;font-size:16px;font-weight:700}.gears-xp-next{color:var(--steel);margin:2px 0 0;font-size:13px}.gears-xp-next strong{color:var(--ink);font-weight:700}.gears-xp-points{color:var(--slate);flex:none;margin:0;font-size:13px;font-weight:600}.gears-xp-points strong{color:var(--ink-deep);letter-spacing:-.4px;font-size:24px;font-weight:700}.gears-xp-bar{margin-top:var(--sp-md);border-radius:var(--r-full);background:var(--hairline-soft);height:10px;overflow:hidden}.gears-xp-bar>span{border-radius:var(--r-full);background:var(--success);min-width:4px;height:100%;transition:width .5s ease-out;display:block}.gears-xp-stats{gap:var(--sp-sm) var(--sp-xl);margin:var(--sp-md) 0 0;flex-wrap:wrap;display:flex}.gears-xp-stats>div{align-items:baseline;gap:6px;display:flex}.gears-xp-stats dt{color:var(--steel);font-size:12px}.gears-xp-stats dd{color:var(--ink-deep);margin:0;font-size:14px;font-weight:700}.gears-group-xp{border-radius:var(--r-full);background:var(--attention-soft);color:var(--attention-ink);vertical-align:2px;margin-left:6px;padding:1px 8px;font-size:12px;font-weight:600}.gears-group-bar{border-radius:var(--r-full);background:var(--hairline-soft);height:4px;margin-top:8px;overflow:hidden}.gears-group-bar>span{border-radius:var(--r-full);background:var(--success);height:100%;display:block}.gears-badges{margin-top:var(--sp-base);padding-top:var(--sp-md);border-top:1px solid var(--hairline-soft)}.gears-badges-title{margin:0 0 var(--sp-sm);color:var(--steel);font-size:12px}.gears-badges-title strong{color:var(--ink-deep);font-size:14px}.gears-badge-list{gap:var(--sp-sm) 6px;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));margin:0;padding:0;list-style:none;display:grid}.gears-badge{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.gears-badge-ring{--p:0%;background:conic-gradient(var(--success) var(--p),var(--hairline-soft) 0);padding:3px}.gears-badge-icon,.gears-badge-ring{border-radius:50%;display:inline-flex}.gears-badge-icon{background:var(--surface-soft);width:40px;height:40px;color:var(--hairline);justify-content:center;align-items:center}.gears-badge.is-started .gears-badge-icon{background:var(--canvas);color:var(--slate)}.gears-badge.is-earned .gears-badge-ring{background:var(--attention);box-shadow:0 0 0 3px var(--attention-soft)}.gears-badge.is-earned .gears-badge-icon{background:var(--attention-light);color:var(--attention-ink)}.gears-badge-name{color:var(--steel);word-break:keep-all;font-size:11px;line-height:1.3}.gears-badge.is-earned .gears-badge-name{color:var(--ink-deep);font-weight:700}.gears-item-lock{display:inline-flex}@media (max-width:560px){.gears-xp{padding:var(--sp-md) var(--sp-base)}.gears-xp-head{flex-wrap:wrap}.gears-xp-points{order:3;width:100%}}.gears-group-count{border-radius:var(--r-full);background:var(--surface-soft);color:var(--slate);vertical-align:2px;margin-left:8px;padding:1px 8px;font-size:12px;font-weight:600}.gears-group-count.is-all,.gears-item--done{background:var(--success-soft);color:var(--success-ink)}.gears-item--done{border-color:var(--success);padding-right:26px}.gears-item--done:hover:not(:disabled){background:var(--success-ink);color:var(--canvas)}.gears-item-check{font-size:12px;font-weight:700;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.gears-item--locked{background:var(--surface-soft);color:var(--steel);border-style:dashed;padding-left:28px}.gears-item--locked:disabled{opacity:1;cursor:not-allowed}.gears-item-lock{font-size:11px;position:absolute;top:50%;left:9px;transform:translateY(-50%)}.sys-banner{z-index:2000;text-align:center;border-radius:12px;width:max-content;max-width:calc(100vw - 32px);padding:10px 18px;font-size:14px;line-height:1.45;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #0a131738}.sys-banner p{flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 8px;margin:0;display:inline-flex}.sys-banner strong{font-weight:700}.sys-banner--soon{background:var(--attention-light);color:var(--attention-ink)}.sys-banner--updating{background:var(--ink-deep);color:var(--canvas)}.sys-banner--done{color:var(--success-ink);background:#e3f3e7}.sys-banner-spin{border:2px solid #ffffff59;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:sys-spin .9s linear infinite}@keyframes sys-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.sys-banner-spin{animation:none}}.sys-banner-btn{border-radius:var(--r-full);background:var(--success-ink);color:var(--canvas);cursor:pointer;border:0;margin-left:4px;padding:3px 12px;font-size:13px;font-weight:700}.sys-banner-close{color:inherit;cursor:pointer;background:0 0;border:0;padding:0 6px;font-size:18px;line-height:1}.access-alert{border-radius:var(--r-lg);background:var(--attention-soft);color:var(--attention-ink);margin:8px 0 16px;padding:12px 16px}.access-alert h2{margin:0 0 4px;font-size:15px;font-weight:700}.access-alert p{margin:0 0 6px;font-size:13px}.access-alert ul{margin:0;padding-left:18px;font-size:14px}.access-alert a{color:inherit;font-weight:700}.access-filter{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 12px;display:flex}.access-filter input[type=search]{max-width:320px;flex:220px}.access-filter input[type=search],.access-filter select{border:1px solid var(--hairline);border-radius:var(--r-full);font:inherit;padding:8px 12px;font-size:14px}.access-filter select,.access-table-wrap{background:var(--canvas)}.access-table-wrap{border:1px solid var(--hairline-soft);border-radius:var(--r-lg);overflow-x:auto}.access-table{min-width:760px}.access-table .access-time,.access-table .access-ua{white-space:nowrap;font-variant-numeric:tabular-nums}.access-table tr.is-fail td{background:#f7b92814}.access-kind{border-radius:var(--r-full);background:var(--surface-soft);white-space:nowrap;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.access-kind--login,.access-kind--signup{background:var(--success-soft);color:var(--success-ink)}.access-kind--login_failed{background:var(--attention-soft);color:var(--attention-ink)}.signup-code-input{letter-spacing:.06em;font-family:ui-monospace,SF Mono,Menlo,monospace}.signup-code-chip{color:var(--slate);margin:0 0 4px;font-size:13px}.signup-code-chip strong{color:var(--ink-deep);font-family:ui-monospace,SF Mono,Menlo,monospace}.signup-code-chip .login-v2-link{cursor:pointer;font:inherit;background:0 0;border:0;margin-left:6px;padding:0}.invites{gap:var(--sp-base);flex-direction:column;display:flex}.invites-card{padding:var(--sp-base) var(--sp-xl);border:1px solid var(--hairline-soft);border-radius:var(--r-xl);background:var(--canvas)}.invites-h{color:var(--ink-deep);margin:0 0 6px;font-size:16px;font-weight:700}.invites-help{color:var(--slate);margin:0 0 12px;font-size:13px;line-height:1.6}.invites-help a{color:var(--link);font-weight:700}.invites-input{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.invites-input textarea{box-sizing:border-box;border:1px solid var(--hairline);border-radius:var(--r-lg);resize:vertical;width:100%;padding:10px 12px;font:13px/1.5 ui-monospace,SF Mono,Menlo,monospace}.invites-send{flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px;font-size:13px;display:flex}.invites-error,.invites-warn{background:var(--attention-soft);color:var(--attention-ink)}.invites-error,.invites-ok,.invites-warn{border-radius:var(--r-lg);margin:0;padding:10px 14px;font-size:14px}.invites-ok{background:var(--success-soft);color:var(--success-ink)}.invite-badge{border-radius:var(--r-full);background:var(--surface-soft);color:var(--slate);white-space:nowrap;padding:1px 8px;font-size:12px;font-weight:600;display:inline-block}.invite-badge--accepted,.invite-badge--new{background:var(--success-soft);color:var(--success-ink)}.invite-badge--member,.invite-badge--pending,.invite-badge--resend{color:#0550c4;background:#0866ff1a}.invite-badge--error{background:var(--attention-soft);color:var(--attention-ink)}.invite-msg{font-size:12px}.invite-actions{white-space:nowrap;text-align:right}.login-v2-input.login-v2-input--plain{padding-left:14px}.login-v2-input[readonly]{background:var(--surface-soft);color:var(--slate)}.class-invite-banner-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.class-invite-banner.is-closed{opacity:.85}.class-invite-banner.is-closed .class-invite-banner-code-text{text-decoration:line-through}.class-observer-banner{border:1px solid var(--border);background:var(--primary-soft);color:var(--ink-deep);border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 12px;padding:10px 14px;font-size:.875rem;line-height:1.55;display:flex}.class-observer-banner strong{color:var(--primary-deep);font-weight:600}.class-observer-banner--lesson{max-width:1320px;margin:12px auto 0}.lab-strip--data{color:#064e3b;background:#a7f3d0}.lab-dialog{width:min(440px,100vw - 32px);color:var(--ink-deep);background:var(--canvas);border:0;border-radius:14px;margin:auto;padding:20px 22px;box-shadow:0 24px 60px #00000059}.lab-dialog::backdrop{background:#0a13178c}.lab-dialog-title{margin:0 0 8px;font-size:1.0625rem;font-weight:700}.lab-dialog-note{color:var(--slate);word-break:keep-all;margin:0 0 14px;font-size:.875rem;line-height:1.65}.lab-dialog-field{flex-direction:column;gap:4px;margin:0 0 12px;font-size:.8125rem;font-weight:600;display:flex}.lab-dialog-field input,.lab-dialog-field select{font:inherit;border:1px solid var(--border);background:var(--canvas);color:var(--ink-deep);border-radius:8px;padding:8px 10px;font-size:.875rem;font-weight:400}.lab-dialog-error{color:var(--critical-strong);margin:0 0 10px;font-size:.8125rem}.lab-dialog-actions{justify-content:flex-end;gap:8px;display:flex}.qmd{color:var(--ink-deep);font-size:1rem;line-height:1.7}.qmd>*+*{margin-top:.6em}.qmd p{margin:0}.qmd h3,.qmd strong{font-weight:700}.qmd h3{margin:.2em 0 .4em;font-size:1.02rem}.qmd code{background:var(--accent-lab-soft);color:var(--ink-deep);border-radius:5px;padding:.08em .38em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em}.qmd pre{background:var(--ink-deep);color:var(--hairline-soft);white-space:pre;border-radius:10px;margin:.5em 0;padding:12px 14px;font-size:13px;line-height:1.6;overflow-x:auto}.qmd pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.qmd-table-wrap{margin:.5em 0;overflow-x:auto}.qmd table{border-collapse:collapse;min-width:60%;font-size:.86rem}.qmd td,.qmd th{border:1px solid var(--hairline-soft);text-align:left;white-space:nowrap;padding:5px 10px}.qmd th{background:var(--accent-lab-soft);font-weight:700}.qmd blockquote{border-left:3px solid var(--hairline-soft);color:var(--steel);margin:.5em 0;padding:.4em .9em}.qmd ol,.qmd ul{margin:.3em 0;padding-left:1.3em}.qmd--inline{line-height:inherit;font-size:inherit;display:inline}.qmd--inline>*+*{margin-top:0}.quizp-card .qmd.quizp-card-prompt{font-weight:500}.quizp-explain .qmd{font-size:.92rem}.quizp-with-passage{grid-template-columns:minmax(0,1fr);align-items:start;gap:1rem;display:grid}@media (min-width:1100px){.quizp-with-passage{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.quizp-passage{max-height:calc(100dvh - 2rem);position:sticky;top:1rem;overflow:auto}.quizp-with-passage .quizp{max-width:none}}.quizp-passage{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:12px}.quizp-passage-details>summary{cursor:pointer;list-style:none}.quizp-passage-details>summary::-webkit-details-marker{display:none}.quizp-passage-title{color:var(--ink-deep);border-bottom:1px solid var(--hairline-soft);flex-wrap:wrap;align-items:baseline;gap:.5rem;padding:12px 16px;font-weight:700;display:flex}.quizp-passage-hint{color:var(--steel);font-size:12px;font-weight:500}.quizp-passage-body{padding:14px 16px 16px}.quizp-passage-body .qmd{font-size:.95rem}.quizp-card-section{letter-spacing:.02em;color:var(--accent-lab);margin:0 0 .25rem;font-size:12px;font-weight:700}.exam-kind{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.exam-kind-card{text-align:left;border:1px solid var(--hairline-soft);background:var(--canvas);cursor:pointer;border-radius:10px;flex-direction:column;gap:4px;padding:12px 14px;transition:border-color .15s,box-shadow .15s;display:flex}.exam-kind-card.is-on,.exam-kind-card:hover{border-color:var(--accent-lab)}.exam-kind-card.is-on{box-shadow:0 0 0 2px var(--accent-lab-soft)}.exam-kind-name{color:var(--ink-deep);font-weight:700}.exam-kind-desc{color:var(--steel);font-size:12.5px;line-height:1.5}.exam-kind-tools{flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px;display:flex}.exam-kind-tools-hint{color:var(--steel);font-size:12px}.exam-import{border:1px dashed var(--hairline-soft);border-radius:10px;margin-top:12px;padding:14px}.exam-import-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.exam-import-head>.btn{white-space:nowrap;flex:none}.exam-import-title{color:var(--ink-deep);margin:0;font-size:15px;font-weight:700}.exam-import-sub{color:var(--steel);margin:4px 0 0;font-size:12.5px;line-height:1.55}.exam-import-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-top:12px;display:grid}.exam-import-col{flex-direction:column;gap:6px;display:flex}.exam-import-label{color:var(--charcoal);flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;font-weight:600;display:flex}.exam-import-label input[type=file]{font-size:12px;font-weight:400}.exam-import-text{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.exam-import-actions{gap:8px;margin-top:10px;display:flex}.exam-import-result{gap:10px;margin-top:12px;display:grid}.exam-import-summary{color:var(--charcoal);flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.exam-import-warn{background:var(--accent-lab-soft);color:var(--ink-deep);border-radius:8px;padding:10px 12px;font-size:12.5px}.exam-import-warn-title{margin:0 0 4px;font-weight:700}.exam-import-warn ul{margin:0;padding-left:1.2em}.exam-passage-edit{gap:6px;margin-top:14px;display:grid}.exam-passage-edit-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.exam-passage-text{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}.exam-passage-preview{border:1px solid var(--hairline-soft);border-radius:10px;max-height:480px;padding:12px 14px;overflow:auto}.quiz-q-section{background:var(--accent-lab-soft);color:var(--accent-lab);border-radius:999px;margin:0 0 6px;padding:1px 8px;font-size:11.5px;font-weight:700;display:inline-block}.quiz-q-mdpreview{border:1px solid var(--hairline-soft);border-radius:8px;margin:6px 0 4px;padding:10px 12px}.quiz-q-mdpreview-label{color:var(--steel);margin-bottom:6px;font-size:11.5px;font-weight:600;display:block}.quiz-q-mdpreview .qmd{font-size:.93rem}.quiz-md-detect{background:var(--accent-lab-soft);color:var(--ink-deep);border-radius:8px;margin:6px 0 0;padding:8px 10px;font-size:12.5px;line-height:1.5}.exam-upload-btn{cursor:pointer}.exam-upload-btn.is-busy{opacity:.7;pointer-events:none}.exam-drop-on{outline:2px dashed var(--accent-lab);outline-offset:2px}.exam-drop-hint{text-align:center;color:var(--accent-lab);background:var(--accent-lab-soft);border-radius:10px;margin-top:10px;padding:14px;font-weight:600}.quiz-q-group{color:var(--accent-lab);border-bottom:1px solid var(--hairline-soft);margin:18px 0 8px;padding-bottom:4px;font-size:13.5px;font-weight:800}.quiz-q-group:first-of-type{margin-top:4px}.quiz-q-card.is-folded{background:var(--canvas);align-items:center;gap:8px;margin-bottom:6px;padding:4px 8px 4px 4px;display:flex}.quiz-q-card.is-folded.has-issue{border-color:var(--attention)}.quiz-q-fold{cursor:pointer;text-align:left;min-width:0;font:inherit;color:inherit;background:0 0;border:0;border-radius:8px;flex:1;align-items:center;gap:10px;padding:7px 8px;display:flex}.quiz-q-fold:hover{background:var(--surface-soft)}.quiz-q-fold .quiz-q-num{flex:none;font-size:13px;font-weight:700}.quiz-q-fold-type{color:var(--slate);background:var(--surface-soft);border-radius:999px;flex:none;padding:1px 7px;font-size:11.5px}.quiz-q-fold-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-deep);flex:1;font-size:13.5px;overflow:hidden}.quiz-q-fold-ans{text-overflow:ellipsis;white-space:nowrap;max-width:34%;color:var(--success-ink);background:var(--success-soft);font-weight:600;overflow:hidden}.quiz-q-fold-ans,.quiz-q-fold-warn{border-radius:999px;flex:none;padding:2px 8px;font-size:12.5px}.quiz-q-fold-warn{color:var(--attention-ink);background:var(--attention-soft);font-weight:700}.quiz-q-fold-pts{text-align:right;width:3.2em;color:var(--slate);flex:none;font-size:12.5px}.quiz-q-fold-toggle{font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.quiz-q-fold-toggle:hover{text-decoration:underline}.quiz-q-head .quiz-q-points{gap:4px;margin:0 0 0 auto}.quiz-q-head .quiz-q-points+.quiz-q-actions{margin-left:0}.quiz-q-extras{flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px;display:flex}.quiz-q-extra-chip{border:1px dashed var(--hairline);color:var(--slate);cursor:pointer;background:0 0;border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.quiz-q-extra-chip:hover{border-color:var(--accent-lab);color:var(--accent-lab);background:var(--accent-lab-soft)}.quiz-q-extra-chip--fold{border-style:solid;border-color:#0000}.quiz-exam-settings--grid{grid-template-columns:minmax(110px,.6fr) 1fr 1fr;align-items:end;gap:10px 12px;display:grid}.quiz-exam-settings--grid .quiz-editor-field{margin-top:0}.quiz-exam-settings--grid .quiz-exam-legend,.quiz-exam-settings--grid .quiz-exam-settings-note{grid-column:1/-1}.quiz-exam-opt{color:var(--steel);margin-left:4px;font-size:12px;font-weight:400}.quiz-exam-settings-note{color:var(--steel);margin:0;font-size:12px}.quiz-exam-legend summary{cursor:pointer;color:var(--charcoal);font-size:12.5px;font-weight:600}.quiz-exam-legend[open] summary{margin-bottom:6px}@media (max-width:720px){.quiz-exam-settings--grid{grid-template-columns:1fr}}.quiz-bulk-points-row{padding:8px 12px}.quiz-editor-footer--sticky{z-index:6;background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:12px;flex-wrap:wrap;margin-top:-4px;padding:10px 14px;position:sticky;bottom:0;box-shadow:0 -6px 18px #0f172a12}.quiz-editor-footer-sum{color:var(--charcoal);align-items:center;gap:10px;font-size:13.5px;display:inline-flex}.quiz-editor-footer-sum b{color:var(--ink-deep)}.quiz-editor-footer-warn{cursor:pointer;color:var(--attention-ink);background:var(--attention-soft);border:0;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:700}.quiz-editor-delete{color:var(--critical-strong)}.quiz-publish-switch--compact{border-radius:10px;align-items:center;gap:10px;padding:6px 12px}.quiz-publish-switch--compact .quiz-publish-switch-text{gap:0}.quiz-publish-switch--compact .quiz-publish-switch-text strong{font-size:13px}.quiz-publish-switch--compact .quiz-publish-switch-hint{font-size:11.5px}.quiz-grading-toolbar{flex-wrap:wrap;justify-content:flex-start;gap:8px}.quiz-grading-stats{flex-wrap:wrap;gap:6px;display:flex}.quiz-grading-stat{color:var(--charcoal);background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:999px;padding:4px 11px;font-size:13px}.quiz-grading-stat b{color:var(--ink-deep);margin:0 1px;font-size:14.5px}.quiz-grading-stat--todo{background:var(--attention-soft);border-color:#0000}.quiz-grading-stat--todo,.quiz-grading-stat--todo b{color:var(--attention-ink)}.quiz-grading-stat--done{background:var(--success-soft);color:var(--success-ink);border-color:#0000}.quiz-grading-stat--done b{color:var(--success-ink)}.quiz-grading-more{margin:0 0 10px}.quiz-grading-more>summary{cursor:pointer;color:var(--slate);width:fit-content;padding:4px 2px;font-size:12.5px;font-weight:600}.quiz-grading-more>summary:hover{color:var(--charcoal)}.quiz-grading-more[open]>summary{margin-bottom:6px}.quiz-grading-control--inner{margin-bottom:0}.quiz-grading-table td{vertical-align:middle}.quiz-grading-row--click{cursor:pointer}.quiz-grading-row--click:hover>td{background:var(--surface-soft)}.quiz-grading-row--click.is-open>td{background:var(--accent-lab-soft)}.quiz-grading-legend{color:var(--steel);white-space:nowrap;margin-left:4px;font-size:11px;font-weight:400}.quiz-grading-legend .gx{vertical-align:-1px;border-radius:3px;width:9px;min-width:0;height:9px;margin:0 2px 0 6px;padding:0;display:inline-block}.quiz-grading-ox{flex-wrap:wrap;gap:3px;max-width:460px;display:inline-flex}.gx{cursor:pointer;text-align:center;font-variant-numeric:tabular-nums;border:0;border-radius:5px;min-width:22px;height:22px;padding:0 3px;font-size:11px;font-weight:700;line-height:22px}.gx--ok{background:var(--success-soft);color:var(--success-ink)}.gx--no{background:var(--critical-soft);color:var(--critical-strong)}.gx--partial{background:var(--attention-soft);color:var(--attention-ink)}.gx--pending{background:var(--canvas);color:var(--steel);box-shadow:inset 0 0 0 1px var(--hairline)}.gx:hover{outline:2px solid var(--accent-lab);outline-offset:1px}.quiz-grading-ox.is-dense{gap:2px}.quiz-grading-ox.is-dense .gx{width:12px;min-width:12px;height:16px;padding:0}.quiz-grading-release{cursor:pointer;border:1px solid var(--hairline);background:var(--canvas);color:var(--slate);border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600}.quiz-grading-release:hover:not(:disabled){border-color:var(--primary);color:var(--primary-deep)}.quiz-grading-release.is-on{background:var(--primary-soft);color:var(--primary-deep);border-color:#0000}.quiz-grading-finalize{flex-wrap:wrap}.exam-ws-extend{border:1px solid var(--hairline-soft);background:var(--canvas);border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;display:flex}.exam-ws-extend-hint{color:var(--steel);font-size:12px}.quiz-grading-table td.quiz-grading-actions{text-align:right;display:table-cell}.quiz-grading-table-wrap{overflow-x:auto}.quiz-grading-chip,.quiz-grading-release{white-space:nowrap}.exam-ws-actions{flex-wrap:wrap;justify-content:flex-end}.exam-ws-actions .btn{white-space:nowrap}@media (max-width:640px){.quiz-q-fold{flex-wrap:wrap;row-gap:4px}.quiz-q-fold-text{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex-basis:100%;order:9;display:-webkit-box}.quiz-q-fold-ans{max-width:60%}.quiz-q-fold-pts{width:auto}.quiz-q-card.is-folded{align-items:flex-start}.quiz-q-card.is-folded .quiz-q-actions{padding-top:6px}.quiz-grading-email{display:none}}.quiz-grading-name{white-space:nowrap}@media (max-width:640px){.quiz-grading-table{min-width:620px}}.quiz-view-seg{background:var(--canvas);border:1px solid var(--hairline-soft);border-radius:999px;padding:2px;display:inline-flex}.quiz-view-seg button{cursor:pointer;color:var(--slate);background:0 0;border:0;border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:600}.quiz-view-seg button.is-on{background:var(--accent-lab);color:#fff}.quiz-key-hint{color:var(--slate);margin:0 0 10px;font-size:12.5px;line-height:1.55}.quiz-key-table-wrap{overflow-x:auto}.quiz-key-table{border-collapse:collapse;width:100%;font-size:13.5px}.quiz-key-table th{text-align:left;color:var(--slate);border-bottom:1px solid var(--hairline-soft);padding:6px 8px;font-size:12px}.quiz-key-table td{border-bottom:1px solid var(--surface-soft);vertical-align:middle;padding:7px 8px}.quiz-key-table tr.has-issue>td{background:var(--attention-soft)}.quiz-key-group td{color:var(--accent-lab);border-bottom:1px solid var(--hairline-soft);padding-top:14px;font-size:13px;font-weight:800}.quiz-key-q{width:40%;max-width:0}.quiz-key-qbtn{cursor:pointer;text-align:left;width:100%;min-width:0;font:inherit;color:inherit;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;padding:2px 4px;display:flex}.quiz-key-qbtn:hover{background:var(--surface-soft)}.quiz-key-qbtn .quiz-q-num{flex:none;min-width:1.6em;font-size:13px;font-weight:700}.quiz-key-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink-deep);flex:1;overflow:hidden}.quiz-key-ans{min-width:260px}.quiz-key-choices{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.quiz-key-choice{border:1px solid var(--hairline);background:var(--canvas);cursor:pointer;width:30px;height:30px;color:var(--charcoal);border-radius:50%;font-size:15px;line-height:1}.quiz-key-choice.is-on,.quiz-key-choice:hover{border-color:var(--success)}.quiz-key-choice.is-on{background:var(--success);color:#fff;font-weight:700}.quiz-key-choice-text{color:var(--success-ink);text-overflow:ellipsis;white-space:nowrap;max-width:240px;margin-left:6px;font-size:12.5px;overflow:hidden}.quiz-key-shorts{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.quiz-key-short{align-items:center;gap:4px;display:inline-flex}.quiz-key-short .quiz-editor-input{width:190px;padding:5px 9px;font-size:13px}.quiz-key-blank{color:var(--slate);white-space:nowrap;font-size:12px}.quiz-key-essay{font-size:13px}.quiz-key-warn{color:var(--attention-ink);margin-top:4px;font-size:12px;font-weight:700;display:inline-block}.quiz-key-pts{width:70px}.quiz-grading-more>.quiz-grading-control+.quiz-grading-control{margin-top:8px}@media (max-width:640px){.quiz-key-table{min-width:560px}}.quiz-exam-settings--grid .quiz-release{grid-column:1/-1}.quiz-release{border:0;min-width:0;margin:0;padding:0}.quiz-release-opts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.quiz-release-opt{text-align:left;cursor:pointer;border:1.5px solid var(--hairline-soft);background:var(--canvas);font:inherit;color:inherit;border-radius:10px;flex-direction:column;gap:2px;padding:8px 12px;display:flex}.quiz-release-opt:hover{border-color:var(--hairline)}.quiz-release-opt.is-on{border-color:var(--accent-lab);background:var(--accent-lab-soft)}.quiz-release-name{color:var(--ink-deep);font-size:13.5px;font-weight:700}.quiz-release-desc{color:var(--slate);font-size:12px;line-height:1.4}.quiz-release-note{color:var(--slate);margin:6px 0 0;font-size:12px}.quiz-release-note--warn{color:var(--attention-ink)}@media (max-width:720px){.quiz-release-opts{grid-template-columns:1fr}}.quiz-grading-mode{color:var(--accent-lab);align-self:center;padding:4px;font-size:12.5px;font-weight:600}.lesson-quiz-teacher-passage{border:1px solid var(--hairline-soft);background:var(--canvas);border-radius:12px;margin-bottom:14px;padding:10px 14px}.lesson-quiz-teacher-passage>summary{cursor:pointer;color:var(--ink-deep);font-weight:700}.lesson-quiz-teacher-passage>summary span{color:var(--steel);margin-left:6px;font-size:12px;font-weight:500}.lesson-quiz-teacher-passage[open]>summary{margin-bottom:8px}.student-preview{flex-direction:column;gap:12px;display:flex}.student-preview-bar{background:var(--attention-soft);color:var(--attention-ink);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.student-preview-empty{color:var(--slate)}.lesson-quiz-view-seg{background:var(--surface-soft);border:1px solid var(--hairline-soft);border-radius:999px;margin-bottom:12px;padding:2px;display:inline-flex}.lesson-quiz-view-seg button{cursor:pointer;color:var(--slate);background:0 0;border:0;border-radius:999px;padding:5px 14px;font-size:13px;font-weight:600}.lesson-quiz-view-seg button.is-on{background:var(--canvas);color:var(--ink-deep);box-shadow:0 1px 3px #0f172a1f}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}