/*! 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-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-font-weight: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-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}}}@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-red-500:oklch(63.7% .237 25.331);--color-red-600:oklch(57.7% .245 27.325);--color-orange-500:oklch(70.5% .213 47.604);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-emerald-50:oklch(97.9% .021 166.113);--color-emerald-200:oklch(90.5% .093 164.15);--color-emerald-400:oklch(76.5% .177 163.223);--color-emerald-500:oklch(69.6% .17 162.48);--color-emerald-700:oklch(50.8% .118 165.612);--color-emerald-900:oklch(37.8% .077 168.94);--color-teal-600:oklch(60% .118 184.704);--color-cyan-300:oklch(86.5% .127 207.078);--color-sky-500:oklch(68.5% .169 237.323);--color-blue-50:oklch(97% .014 254.604);--color-blue-100:oklch(93.2% .032 255.585);--color-blue-400:oklch(70.7% .165 254.624);--color-blue-600:oklch(54.6% .245 262.881);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-900:oklch(37.9% .146 265.522);--color-violet-50:oklch(96.9% .016 293.756);--color-violet-500:oklch(60.6% .25 292.717);--color-violet-800:oklch(43.2% .232 292.759);--color-purple-500:oklch(62.7% .265 303.9);--color-purple-600:oklch(55.8% .288 302.321);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-950:oklch(12.9% .042 264.695);--color-white:#fff;--spacing:.25rem;--container-lg:32rem;--container-3xl:48rem;--container-4xl:56rem;--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);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--blur-lg:16px;--blur-xl:24px;--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)}}@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{.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}.-inset-\[2px\]{inset:-2px}.inset-0{inset:calc(var(--spacing) * 0)}.z-50{z-index:50}.mx-auto{margin-inline:auto}.-mt-1{margin-top:calc(var(--spacing) * -1)}.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-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.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-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-12{height:calc(var(--spacing) * 12)}.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-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-12{width:calc(var(--spacing) * 12)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-lg{max-width:var(--container-lg)}.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}.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-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}: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)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-auto{overflow:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.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-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-blue-100{border-color:var(--color-blue-100)}.border-emerald-200{border-color:var(--color-emerald-200)}.border-slate-100{border-color:var(--color-slate-100)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-800{border-color:var(--color-slate-800)}.border-violet-500{border-color:var(--color-violet-500)}.bg-\[var\(--bg\)\]{background-color:var(--bg)}.bg-blue-50{background-color:var(--color-blue-50)}.bg-emerald-50{background-color:var(--color-emerald-50)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-950\/90{background-color:#020618e6}@supports (color:color-mix(in lab,red,red)){.bg-slate-950\/90{background-color:color-mix(in oklab,var(--color-slate-950) 90%,transparent)}}.bg-violet-50{background-color:var(--color-violet-50)}.bg-white{background-color:var(--color-white)}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.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-purple-500{--tw-gradient-from:var(--color-purple-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))}.via-cyan-300{--tw-gradient-via:var(--color-cyan-300);--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-emerald-400{--tw-gradient-to:var(--color-emerald-400);--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))}.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-6{padding-inline:calc(var(--spacing) * 6)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-6{padding-block:calc(var(--spacing) * 6)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.text-center{text-align:center}.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))}.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)}.break-all{word-break:break-all}.text-amber-600{color:var(--color-amber-600)}.text-amber-700{color:var(--color-amber-700)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-blue-900{color:var(--color-blue-900)}.text-emerald-700{color:var(--color-emerald-700)}.text-emerald-900{color:var(--color-emerald-900)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-inherit{color:inherit}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-slate-100{color:var(--color-slate-100)}.text-slate-400{color:var(--color-slate-400)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-violet-800{color:var(--color-violet-800)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.no-underline{text-decoration-line:none}.underline{text-decoration-line:underline}.opacity-75{opacity:.75}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040)}.shadow-2xl,.shadow-xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a)}.blur-lg{--tw-blur:blur(var(--blur-lg))}.blur-lg,.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.group-hover\:blur-xl:is(:where(.group):hover *){--tw-blur:blur(var(--blur-xl));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,)}.hover\:border-slate-300:hover{border-color:var(--color-slate-300)}.hover\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\:bg-slate-950\/70:hover{background-color:#020618b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-slate-950\/70:hover{background-color:color-mix(in oklab,var(--color-slate-950) 70%,transparent)}}.hover\:text-slate-700:hover{color:var(--color-slate-700)}.hover\:text-slate-800:hover{color:var(--color-slate-800)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-blue-400:focus{border-color:var(--color-blue-400)}.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-blue-100:focus{--tw-ring-color:var(--color-blue-100)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}@media (min-width:40rem){.sm\:grid-cols-\[120px_1fr_auto\]{grid-template-columns:120px 1fr auto}}}@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")}:root{--bg:#fff;--card:#fff;--card-elevated:#f5f5f5;--border:#d8d8d8;--border-strong:#08080873;--hover:#0808080a;--hover-strong:#08080814;--fg:#080808;--text:#080808;--text-strong:#222;--text-body:#363636;--muted:#5a5a5a;--muted-faint:#898989;--brand:#080808;--brand-dark:#000;--brand-soft:#0808080a;--on-brand:#fff;--accent:#146ef5;--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:#fff;--wf-soft:#f5f5f5;--wf-ink:#080808;--wf-ink-strong:#222;--wf-body:#363636;--wf-body-mid:#5a5a5a;--wf-mute:#898989;--wf-mute-soft:#ababab;--wf-hairline:#d8d8d8;--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(--wf-accent-purple) 0% 20%,var(--wf-accent-pink) 20% 40%,var(--wf-accent-blue) 40% 60%,var(--wf-accent-orange) 60% 80%,var(--wf-accent-green) 80% 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: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(--fg);letter-spacing:-.015em}h1,h2,h3{font-weight:600}.card{background:var(--card);border:1px solid var(--border);box-shadow:none;border-radius:12px;padding:1.25rem}.btn{cursor:pointer;letter-spacing:-.005em;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.9375rem;font-weight:500;line-height:1.4;transition:opacity .13s,background .13s,border-color .13s,box-shadow .18s,transform .1s;display:inline-flex}.btn:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn:active:not(:disabled){opacity:.8;transform:translateY(.5px)}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-sm{border-radius:6px;padding:.38rem .7rem}.btn-primary{background:var(--brand);color:var(--on-brand);box-shadow:var(--shadow-inset);border-color:#0000}.btn-primary:hover:not(:disabled){background:var(--brand-dark);color:var(--on-brand)}.btn-secondary{background:var(--card-elevated);border-color:var(--border);color:var(--fg);box-shadow:none}.btn-secondary:hover:not(:disabled){background:var(--hover-strong);border-color:var(--border)}.btn-ghost,.btn-outline{border-color:var(--border-strong);color:var(--fg);background:0 0}.btn-ghost:hover:not(:disabled),.btn-outline:hover:not(:disabled){background:var(--hover);border-color:var(--fg);color:var(--fg)}.btn-danger{color:var(--on-brand);box-shadow:var(--shadow-inset);background:#1c1c1c;border-color:#0000}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-danger-outline{color:#b91c1c;background:0 0;border-color:#b91c1c80}.btn-danger-outline:hover:not(:disabled){background:#b91c1c0f;border-color:#b91c1c}.btn-danger-outline:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.badge{border-radius:999px;padding:.15rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-blue{color:#1e40af;background:#dbeafe}.badge-violet{color:#5b21b6;background:#ede9fe}.badge-emerald{color:#065f46;background:#d1fae5}.badge-orange{color:#9a3412;background:#ffedd5}.badge-sky{color:#075985;background:#e0f2fe}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.page-title{letter-spacing:-.025em;color:var(--fg);font-size:2rem;font-weight:600;line-height:1.15}.page-desc{color:var(--muted);letter-spacing:-.005em;margin-top:.45rem;font-size:1rem}.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:#93c5fd;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,#3b82f6,#4f46e5)}.accent-indigo{background:linear-gradient(135deg,#6366f1,#7c3aed)}.accent-amber{background:linear-gradient(135deg,#f59e0b,#ea580c)}.accent-slate{background:linear-gradient(135deg,#64748b,#475569)}.accent-rose{background:linear-gradient(135deg,#f43f5e,#e11d48)}.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:#94a3b8;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:#cbd5e1;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:#fff;letter-spacing:.02em;background:#0f172ac7;border-radius:6px;padding:.22rem .55rem;font-size:.6875rem;font-weight:700}.project-card-banner-pill{color:#0f172a;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,#8b5cf6,#a855f7)}.accent-emerald{background:linear-gradient(90deg,#10b981,#14b8a6)}.accent-orange{background:linear-gradient(90deg,#f97316,#f59e0b)}.accent-sky{background:linear-gradient(90deg,#0ea5e9,#3b82f6)}.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:#64748b;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:#93c5fd;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:#fff;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:#1e40af;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:#93c5fd}.type-picker-card--active{border-color:var(--brand);background:#eff6ff;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(--card-elevated);border:1px solid var(--border);min-width:12rem;color:var(--fg);border-radius:6px;padding:.55rem .8rem;font-size:.9375rem;transition:border-color .13s,box-shadow .13s}.input-field::placeholder{color:var(--muted)}.input-field:focus{border-color:var(--border-strong);box-shadow:var(--shadow-focus);outline:none}.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:#334155;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{color:#92400e;background:#fffbeb;border-color:#fde68a}.alert-card-icon{font-size:1.25rem}.login-page{background:linear-gradient(160deg,#eef2ff,#f8fafc 42%,#f1f5f9);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{color:#fff;background:#ffffff2e;border:1px solid #ffffff38;border-radius:14px;justify-content:center;align-items:center;width:3rem;height:3rem;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:#fff;letter-spacing:-.02em;font-size:1.25rem}.login-brand__text span{color:#c7d2fe;font-size:.8125rem;font-weight:400}.login-hero__lead{color:#e0e7ff;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{color:#fff;background:#ffffff24;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:inline-flex}.login-features__item>span:last-child{flex-direction:column;gap:.15rem;min-width:0;display:flex}.login-features__item strong{color:#fff;font-size:.875rem;font-weight:600}.login-features__item>span:last-child>span{color:#c7d2fe;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,#eef2ff,#f8fafc);place-items:center;min-height:100vh;padding:2rem 1rem;display:grid}.login-hint{color:var(--muted);font-size:.875rem}.login-error{color:#b91c1c;background:#fef2f2;border-radius:10px}.login-error,.login-notice{padding:.65rem .85rem;font-size:.875rem}.login-notice{color:#155e75;background:#ecfeff;border:1px solid #a5f3fc;border-radius:10px}.login-notice--warn{color:#92400e;background:#fef3c7;border-color:#fde68a}.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 #e5e7eb;border-top:2.5px solid var(--brand);border-radius:50%;width:22px;height:22px;animation:login-spin .7s linear infinite}.login-email-form{gap:.65rem}.login-email-form,.login-field{flex-direction:column;display:flex}.login-field{gap:.35rem}.login-label{color:#475569;font-size:.8125rem;font-weight:600}.login-input{border:1px solid var(--border);background:#f8fafc;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:#cbd5e1}.login-input:focus{background:#fff;border-color:#93c5fd;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-color:#fff;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:#2563eb;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){background:#f8fafc;border-color:#93c5fd}.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:#bfdbfe;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:#93c5fd;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,#0f172a);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:#cbd5e1}.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:#cbd5e1;border-radius:999px;flex-shrink:0;width:2.25rem;height:1.25rem;transition:background .18s;position:relative}.catalog-toggle-thumb{background:#fff;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{color:#4338ca;vertical-align:middle;background:#e0e7ff;border-radius:999px;justify-content:center;align-items:center;min-width:1.5rem;height:1.5rem;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,#eff6ff,#eef2ff);border:1px solid #bfdbfe;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:#1e40af;margin:0;font-size:.9375rem;font-weight:700}.catalog-cta-sub{color:#3b82f6;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:#f8fafc;border:1px solid #e2e8f0;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:#1e293b;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:#334155;white-space:pre-wrap;word-break:break-word;background:#f1f5f9;border-left:3px solid #a5b4fc;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{color:#b91c1c;background:#fee2e2}.badge-yellow{color:#92400e;background:#fef3c7}.badge-purple{color:#6d28d9;background:#ede9fe}.badge-green{color:#065f46;background:#d1fae5}.badge-pink{color:#9d174d;background:#fce7f3}.badge-teal{color:#0f766e;background:#ccfbf1}.badge-indigo{color:#3730a3;background:#e0e7ff}.subject-section{margin-top:2rem}.subject-section:first-of-type{margin-top:0}.subject-heading{color:#1e40af;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{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:1.25rem;line-height:1;transition:background .15s,color .15s;display:flex}.modal-close:hover{color:#0f172a;background:#e2e8f0}.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:#dc2626;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:#0f172a;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:#94a3b8;pointer-events:none;font-size:1rem;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.projects-search-input{border:1px solid var(--border);color:#0f172a;background:#fff;border-radius:10px;outline:none;width:100%;height:40px;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:#64748b;pointer-events:none;background:#f1f5f9;border:1px solid #e2e8f0;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:#64748b;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:#1e293b}.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:#94a3b8;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:#94a3b8;font-weight:400}.project-pill{color:#475569;white-space:nowrap;background:#e2e8f0;border-radius:999px;align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.project-pill-jupyter{color:#6d28d9;background:#ede9fe}.project-pill-marimo{color:#047857;background:#d1fae5}.project-pill-block{color:#15803d;background:#dcfce7}.project-pill-text-drag{color:#c2410c;background:#ffedd5}.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{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0}.project-status-badge.is-private{color:#475569;background:#f1f5f9;border:1px solid #e2e8f0}.project-fav-star{cursor:pointer;color:#cbd5e1;background:0 0;border:none;padding:2px 4px;font-size:16px;line-height:1;transition:color .12s,transform 80ms}.project-fav-star:hover{color:#facc15;transform:scale(1.1)}.project-fav-star--on{color:#f59e0b}.project-fav-star--on:hover{color:#d97706}.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:#64748b;font-size:13px}.projects-pagination-controls{align-items:center;gap:4px;display:inline-flex}.projects-pagination-arrow,.projects-pagination-num{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;min-width:32px;height:32px;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){color:#0f172a;background:#f1f5f9;border-color:#cbd5e1}.projects-pagination-arrow:disabled{opacity:.4;cursor:not-allowed}.projects-pagination-num.is-active{color:#fff;background:#4f46e5;border-color:#4f46e5;font-weight:600}.projects-pagination-size{color:#334155;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:6px 10px;font-size:13px}.projects-filter-chips{border:1px solid var(--border);background:#f1f5f9;border-radius:10px;flex-shrink:0;gap:2px;padding:3px;display:inline-flex}.projects-filter-chip{color:#64748b;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:#1e293b;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{color:#475569;text-align:center;background:#e2e8f0;border-radius:999px;min-width:1.25rem;padding:.05rem .45rem;font-size:.6875rem;font-weight:700}.projects-filter-chip--active .projects-filter-chip-count{color:var(--brand);background:#dbeafe}.projects-toolbar-right{align-items:center;gap:.5rem;margin-left:auto;display:flex}.projects-sort-select{border:1px solid var(--border);color:#334155;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:#0f172a;font-weight:600}.projects-view-toggle{border:1px solid var(--border);background:#f1f5f9;border-radius:10px;padding:.2rem;display:inline-flex}.projects-view-btn{color:#64748b;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:#334155}.projects-view-btn--active{color:var(--brand);background:#fff;box-shadow:0 1px 3px #0f172a14}.project-card--skeleton{border:1px solid var(--border);background:linear-gradient(90deg,#f1f5f9,#e2e8f0 50%,#f1f5f9) 0 0/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);border-bottom:1px solid var(--border);white-space:nowrap;background:#f8fafc;padding:.75rem 1rem;font-size:.75rem;font-weight:600}.project-table td{vertical-align:middle;border-bottom:1px solid #f1f5f9;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:#f8fafc}.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:#0f172a;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:#cbd5e1}.project-table-title-date{color:#64748b}.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{color:#334155;background:#f8fafc;border:1px solid #e2e8f0;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]{accent-color:#4f46e5;cursor:pointer;width:16px;height:16px}.create-project-open-target{gap:6px;margin-top:8px;padding-left:24px;display:flex}.create-project-open-target-opt{color:#64748b;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #e2e8f0;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{color:#1e293b;border-color:#cbd5e1}.create-project-open-target-opt.is-active{color:#4338ca;background:#eef2ff;border-color:#818cf8;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{color:#64748b;cursor:pointer;background:#ffffffe6;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:16px;line-height:1;transition:background .12s,border-color .12s;display:inline-flex}.unit-card-actions-btn:hover{color:#1f2937;background:#fff;border-color:#cbd5e1}.unit-card-actions-btn:disabled{opacity:.6;cursor:not-allowed}.unit-card-actions-menu{background:#fff;border:1px solid #e2e8f0;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:#0f172a;background:0 0;border:none;border-radius:6px;padding:8px 12px;font-family:inherit;font-size:13px}.unit-card-actions-item:hover{background:#f1f5f9}.unit-card-actions-item--danger{color:#b91c1c}.unit-card-actions-item--danger:hover{background:#fef2f2}.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{background:#fafcff;border-color:#93c5fd;box-shadow:0 4px 16px #2563eb1a}.unit-card:hover .unit-card-arrow{color:var(--brand);transform:translate(3px)}.unit-card-icon-wrap{background:#eff6ff;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:hover .unit-card-icon-wrap{background:#dbeafe}.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:#22c55e;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{color:#1e40af;background:#dbeafe;border-radius:999px;padding:1px 8px;font-size:.6875rem;font-weight:700}.unit-card-progress--done{color:#047857;background:#d1fae5}.unit-card-class-avg{color:#92400e;background:#fef3c7;border-radius:999px;padding:1px 8px;font-size:.6875rem;font-weight:600}.unit-card-progress-bar{background:#e2e8f0;border-radius:999px;height:3px;margin-top:.5rem;overflow:hidden}.unit-card-progress-fill{background:linear-gradient(90deg,#34d399,#10b981);height:100%;transition:width .4s ease-out}.unit-card--done{background:linear-gradient(135deg,#ecfdf5,#f0fdfa);border-color:#6ee7b7}.unit-card--done .unit-card-icon-wrap{background:#10b981}.unit-card--done .unit-card-icon{color:#fff;font-weight:900}.unit-card-arrow{color:#cbd5e1;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:#334155;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);white-space:nowrap;background:#eff6ff;border-radius:999px;padding:.25rem .6rem;font-size:.75rem;font-weight:500}.unit-segment{background:#f1f5f9;border-radius:9px;grid-template-columns:repeat(3,1fr);gap:.3rem;padding:.2rem;display:grid}.unit-segment-btn{color:#64748b;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:#334155}.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{border:1px solid var(--border);background:#f8fafc;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:#cbd5e1;-webkit-user-select:none;user-select:none;padding-bottom:.55rem;font-size:1.25rem;font-weight:300}.unit-range-summary{color:#475569;text-align:center;border-top:1px dashed #e2e8f0;margin:.85rem 0 0;padding-top:.85rem;font-size:.875rem}.unit-range-summary strong{color:#0f172a}.unit-preview{background:#fff;border:1px solid #e2e8f0;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:#334155;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);color:#0f172a;background:0 0;border-radius:10px;justify-content:flex-start;align-items:center;gap:.5rem;width:100%;height:auto;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{flex-direction:column-reverse;gap:.6rem;padding:.1rem 0 .85rem}.app-logo{color:var(--fg);gap:.55rem;line-height:1;text-decoration:none}.app-logo,.app-logo-mark{align-items:center;display:inline-flex}.app-logo-mark{background:var(--fg);width:1.85rem;height:1.85rem;color:var(--on-brand);letter-spacing:-.02em;border-radius:6px;flex-shrink:0;justify-content:center;font-size:.8rem;font-weight:600;position:relative;overflow:hidden}.app-logo-mark:after{content:"";background:var(--wf-chroma-stripe);height:3px;position:absolute;bottom:0;left:0;right:0}.app-logo-text{flex-direction:column;gap:1px;display:flex}.app-logo-name{letter-spacing:-.012em;color:var(--fg);font-size:.875rem;font-weight:600;line-height:1.15}.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}.app-sidebar-toggle,html[data-sidebar-collapsed="1"] .app-sidebar .app-logo{justify-content:center}.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;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;gap:.15rem;display:flex}.app-nav-section+.app-nav-section{border-top:1px solid #e2e8f0;margin-top:.8rem;padding-top:.6rem}.app-nav-section-label{color:#94a3b8;letter-spacing:.05em;text-transform:uppercase;margin:0 .5rem .2rem;padding:0 .3rem;font-size:.6875rem;font-weight:700}html[data-sidebar-collapsed="1"] .app-nav-section-label{display:none}.app-nav-link{color:var(--muted);letter-spacing:-.005em;border-radius:8px;align-items:center;gap:.65rem;padding:.6rem .8rem;font-size:.9375rem;font-weight:500;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(--fg);color:var(--on-brand);box-shadow:var(--shadow-inset);font-weight:500}.app-nav-link--active .app-nav-icon{color:var(--on-brand)}.app-nav-icon{text-align:center;flex-shrink:0;width:1.35rem;font-size:1.1rem}.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(--fg);color:var(--on-brand);box-shadow:var(--shadow-inset);border-radius:10px}html[data-sidebar-collapsed="1"] .app-sidebar .app-nav-label,html[data-sidebar-collapsed="1"] .app-sidebar .app-sidebar-guide{display:none}.app-sidebar-guide{background:var(--card-elevated);border:1px solid var(--border);border-radius:8px;margin-top:auto;padding:1rem;position:relative;overflow:hidden}.app-sidebar-guide:before{content:"";background:var(--wf-chroma-stripe);height:3px;position:absolute;top:0;left:0;right:0}.app-sidebar-guide-icon{margin-top:.15rem;margin-bottom:.35rem;font-size:1.25rem}.app-sidebar-guide-title{color:var(--fg);letter-spacing:-.005em;margin:0;font-size:.8125rem;font-weight:600}.app-sidebar-guide-desc{color:var(--muted);margin:.35rem 0 .75rem;font-size:.75rem;line-height:1.55}.app-sidebar-guide-btn{width:100%}.app-sidebar-guide-links{flex-direction:column;gap:.25rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.app-sidebar-guide-link{color:var(--accent);padding:.2rem 0;font-size:.8125rem;text-decoration:none;display:block}.app-sidebar-guide-link:hover{text-decoration:underline}.more-menu{position:relative}.more-menu-btn{letter-spacing:.05em;color:#64748b;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:1.1rem;transition:background .13s,border-color .13s,color .13s;display:inline-flex}.more-menu-btn:hover{border-color:var(--border);color:#0f172a;background:#f1f5f9}.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;color:#334155;cursor:pointer;background:0 0;border:none;width:100%;padding:.625rem 1rem;font-size:.875rem;font-weight:500;transition:background .1s;display:block}.more-menu-item:hover{background:#f8fafc}.more-menu-divider{background:var(--border);height:1px;margin:.2rem 0}.more-menu-item--danger{color:#dc2626}.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{cursor:pointer;color:#0f172a;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:10px;align-items:center;gap:10px;width:100%;padding:12px 14px;font-family:inherit;font-size:14px;transition:background .12s,border-color .12s;display:flex}.class-picker-item:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.class-picker-item.is-active{background:#eef2ff;border-color:#818cf8}.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:#4f46e5;background:#fff;border:1px solid #c7d2fe;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:700}.modal-empty,.modal-loading{color:#64748b;text-align:center;padding:18px 0}.more-menu-item--danger:hover{background:#fef2f2}.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{background:var(--fg);width:2.25rem;height:2.25rem;color:var(--on-brand);letter-spacing:-.02em;border-radius:6px;justify-content:center;font-size:.8125rem;font-weight:600;position:relative;overflow:hidden}.app-user-avatar:after{content:"";background:var(--wf-chroma-stripe);height:3px;position:absolute;bottom:0;left:0;right:0}.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.5rem 1.75rem 2.5rem}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-ghost:hover{color:#0f172a;background:#f1f5f9}.btn-outline{border-color:var(--border);color:#334155;background:#fff}.btn-outline:hover{color:var(--brand);background:#f8fafc;border-color:#93c5fd}.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{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:8px;flex-shrink:0;width:2rem;height:2rem;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:#fafbfc;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:#475569;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,#f1f5f9);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,#eff6ff,#f8fafc 55%,#fff);border:1px solid #dbeafe;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{border:1px solid var(--border);background:#fff;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:#eff6ff;border-color:#bfdbfe}.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{border:1px solid var(--border,#e2e8f0);color:#334155;cursor:pointer;background:#fff;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:#f8fafc;border-color:#cbd5e1}.join-class-trigger--compact{padding:.4rem .65rem;font-size:.8125rem}.join-class-inline{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;align-items:center;gap:.4rem;padding:.35rem .5rem;display:inline-flex;position:relative}.join-class-inline-label{color:#64748b;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:#dc2626;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,#fff);border:1px solid var(--border,#e2e8f0);border-radius:10px;align-items:center;gap:.6rem;padding:.65rem .85rem;display:flex}.classes-stat-card--accent{background:linear-gradient(135deg,#eef2ff,#faf5ff);border-color:#c7d2fe}.classes-stat-icon{font-size:1.25rem}.classes-stat-value{color:#0f172a;font-size:1.125rem;font-weight:800;line-height:1.1;display:block}.classes-stat-label{color:#64748b;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(--card);border:1px solid var(--border);border-radius:18px;flex-direction:column;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex;overflow:hidden}.class-list-card:hover{border-color:#cbd5e1;transform:translateY(-3px);box-shadow:0 18px 38px #0f172a1a}.class-list-card-banner{isolation:isolate;justify-content:space-between;align-items:center;height:5rem;padding:.7rem .9rem;display:flex;position:relative;overflow:hidden}.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{z-index:1;color:#1e293b;letter-spacing:-.02em;background:#fffffff2;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:2.4rem;height:2.4rem;font-size:1.2rem;font-weight:800;display:inline-flex;position:relative;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:relative}.class-list-card-chip{color:#fff;letter-spacing:.02em;background:#0f172ac7;border-radius:999px;padding:.22rem .6rem;font-size:.7rem;font-weight:700}.class-list-card-chip--teacher{color:#78350f;background:linear-gradient(135deg,#fde68a,#fbbf24);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{border:1px solid var(--border);background:#f8fafc;border-radius:10px;gap:.5rem;padding:.6rem .65rem;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-icon{font-size:1rem}.class-list-card-stat-value{color:#0f172a;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{background:#fafbff;border:1px dashed #c7d2fe;border-radius:10px;align-items:center;gap:.5rem;padding:.4rem .5rem;display:flex}.class-list-card-invite-label{color:#4338ca;letter-spacing:.04em;font-size:.6875rem;font-weight:700}.class-list-card-invite .class-invite-btn{background:#fff;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{color:#15803d;background:#f0fdf4;border-color:#86efac}.class-invite-code{font-weight:700}.class-invite-icon{opacity:.7;font-size:.9rem}.class-invite-chip{color:#475569;cursor:pointer;background:#f8fafc;border:1px dashed #cbd5e1;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{color:var(--brand);background:#fff;border-style:solid;border-color:#93c5fd}.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{color:#15803d;background:#f0fdf4;border-style:solid;border-color:#86efac}.class-invite-banner{background:linear-gradient(135deg,#eef2ff,#ede9fe);border:1px solid #c7d2fe;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:#3730a3;margin:0 0 .3rem;font-size:.9375rem;font-weight:800}.class-invite-banner-desc{color:#475569;margin:0;font-size:.8125rem;line-height:1.5}.class-invite-banner-code{cursor:pointer;background:#fff;border:1.5px solid #818cf8;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:#6366f1;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:#6366f1;font-size:.8125rem;font-weight:700}.class-invite-banner-code--copied{background:#f0fdf4;border-color:#34d399}.class-invite-banner-code--copied .class-invite-banner-code-text{color:#14532d}.class-invite-banner-code--copied .class-invite-banner-code-icon{color:#15803d}.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{color:var(--brand);cursor:pointer;background:#eff6ff;border:1px solid #bfdbfe;border-radius:999px;padding:.45rem .85rem;font-size:.8125rem;font-weight:600;transition:background .15s,border-color .15s}.unit-preset-chip:hover{background:#dbeafe;border-color:#93c5fd}.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{color:#475569;background:#f1f5f9;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:#f1f5f9;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{color:var(--brand);background:#fff;box-shadow:0 1px 3px #0f172a14}.material-add-card{border:1px solid var(--border);background:#fff;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{width:100%;font:inherit;color:#475569;cursor:pointer;text-align:left;background:#fff;border:1.5px dashed #cbd5e1;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:#94a3b8;margin-left:auto;font-size:.75rem}.project-picker-selected{background:#eff6ff;border:1px solid #93c5fd;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:#0f172a;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:#fff;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:#94a3b8;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:#94a3b8;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{color:#475569;background:#f1f5f9}.project-picker-chips{flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem;display:flex}.project-picker-chip{border:1px solid var(--border);font:inherit;color:#475569;cursor:pointer;background:#fff;border-radius:9999px;padding:.3rem .65rem;font-size:.75rem;font-weight:600;transition:background .13s,border-color .13s,color .13s}.project-picker-chip:hover{color:var(--brand);border-color:#93c5fd}.project-picker-chip.is-active{background:var(--brand);border-color:var(--brand);color:#fff}.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{border-color:var(--border);background:#f8fafc}.project-picker-item.is-selected{background:#eff6ff;border-color:#93c5fd}.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:#0f172a;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{border:2px solid var(--border);cursor:pointer;background:#f8fafc;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:#eff6ff}.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:#fafafa;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:#eff6ff}.material-dropzone-filled{background:#f0fdf4;border-style:solid;border-color:#059669}.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:#065f46;word-break:break-all;font-size:.875rem;font-weight:500}.material-dropzone-file-size{color:var(--muted);font-size:.75rem}.material-dropzone-remove{color:#ef4444;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:.1rem .3rem;font-size:.9rem}.material-dropzone-remove:hover{background:#fee2e2}.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,#2563eb);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:#eff6ff}.material-url-card{border:1px solid var(--border,#e2e8f0);background:#f8fafc;border-radius:10px;margin-bottom:.75rem;padding:1rem}.material-url-hint{margin:.4rem 0 0}.material-url-cancel,.material-url-hint{color:var(--muted,#64748b);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,#0f172a)}.material-advanced{background:#f8fafc;border-radius:8px;margin-top:.5rem}.material-advanced[open]{padding:.75rem}.material-advanced-summary{color:var(--muted,#64748b);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,#0f172a)}.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{color:var(--brand);background:#eff6ff;border-radius:8px;padding:.3rem .65rem;font-size:.8125rem;font-weight:600;display:inline-block}@media (max-width:900px){.app-shell{flex-direction:column}.app-sidebar,html[data-sidebar-collapsed="1"] .app-sidebar{flex-flow:wrap;align-items:center;width:100%;height:auto;padding:.75rem;position:relative}.app-sidebar-head{border:0;flex-direction:row;gap:.5rem;padding:.25rem .5rem}.app-sidebar-toggle{display:none}.app-logo{padding:0}html[data-sidebar-collapsed="1"] .app-sidebar .app-logo{background:0 0;border-radius:0;width:auto;height:auto;font-size:1.5rem}.app-nav,html[data-sidebar-collapsed="1"] .app-sidebar .app-nav{flex-flow:wrap;flex:1;padding:0 .35rem}html[data-sidebar-collapsed="1"] .app-sidebar .app-nav-link{justify-content:flex-start;width:auto;padding:.65rem .85rem}html[data-sidebar-collapsed="1"] .app-sidebar .app-nav-label{display:inline}.app-sidebar-guide,.app-user-meta{display:none}}.landing{color:#f1f5f9;background:#0b1220;flex-direction:column;min-height:100vh;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{color:#fff;background:linear-gradient(135deg,#3b82f6,#6366f1);border-radius:10px;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;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:#fff;font-size:1rem}.landing-logo-text span{color:#94a3b8;font-size:.75rem;font-weight:400}.landing-nav{align-items:center;gap:.35rem;display:flex}.landing-nav-link{color:#cbd5e1;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:#fff;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:#93c5fd;margin:0 0 .75rem;font-size:.8125rem;font-weight:600}.landing-hero-title{letter-spacing:-.03em;color:#fff;margin:0;font-size:clamp(2rem,5vw,3.25rem);font-weight:800;line-height:1.15}.landing-hero-highlight{color:#0000;background:linear-gradient(90deg,#60a5fa,#a78bfa);-webkit-background-clip:text;background-clip:text}.landing-hero-desc{color:#94a3b8;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:#f1f5f9;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:#cbd5e1;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:#0f172a;border:1px solid #94a3b833;border-radius:16px;width:100%;max-width:22rem;overflow:hidden;box-shadow:0 24px 48px #00000059}.landing-preview-bar{background:#1e293b;border-bottom:1px solid #94a3b826;align-items:center;gap:.4rem;padding:.65rem .85rem;display:flex}.landing-preview-dot{background:#475569;border-radius:50%;width:.55rem;height:.55rem}.landing-preview-dot:first-child{background:#f87171}.landing-preview-dot:nth-child(2){background:#fbbf24}.landing-preview-dot:nth-child(3){background:#4ade80}.landing-preview-title{color:#64748b;margin-left:.5rem;font-size:.6875rem}.landing-preview-code{color:#e2e8f0;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:#86efac}.landing-code-punc{color:#94a3b8}.landing-preview-blocks{flex-wrap:wrap;gap:.5rem;padding:0 1rem 1rem;display:flex}.landing-block{color:#fff;border-radius:8px;padding:.4rem .75rem;font-size:.75rem;font-weight:700}.landing-block--start{color:#422006;background:#eab308}.landing-block--move{background:#3b82f6}.landing-block--loop{color:#052e16;background:#22c55e}.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 #3b82f6}.landing-accent-violet{border-top:3px solid #8b5cf6}.landing-accent-emerald{border-top:3px solid #10b981}.landing-accent-amber{border-top:3px solid #f59e0b}.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:#60a5fa;letter-spacing:.05em;margin-bottom:.75rem;font-size:.75rem;font-weight:700;display:block}.landing-step-title{color:#fff;margin:0;font-size:1.0625rem;font-weight:700}.landing-step-desc{color:#94a3b8;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:#fff;margin:0;font-size:1.25rem;font-weight:700}.landing-audience-desc{color:#94a3b8;margin-top:.5rem;font-size:.9375rem;line-height:1.55}.landing-audience-link{color:#93c5fd;margin-top:1rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-block}.landing-audience-link:hover{color:#bfdbfe;text-decoration:underline}.landing-cta{text-align:center;padding:4rem 1.25rem 5rem}.landing-cta-inner{background:linear-gradient(135deg,#1d4ed8,#4f46e5);border-radius:20px;max-width:40rem;margin:0 auto;padding:2.5rem 1.5rem;box-shadow:0 20px 40px #2563eb40}.landing-cta-title{color:#fff;margin:0;font-size:clamp(1.35rem,3vw,1.75rem);font-weight:700}.landing-cta-desc{color:#dbeafe;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:#64748b;margin:0;font-size:.8125rem}.landing-footer-brand strong{color:#94a3b8}.landing-footer-nav{flex-wrap:wrap;gap:1rem;display:flex}.landing-footer-nav a{color:#64748b;font-size:.8125rem;text-decoration:none}.landing-footer-nav a:hover{color:#cbd5e1}@media (max-width:639px){.landing-nav-link:not(.landing-nav-cta){display:none}.landing-nav-cta{margin-left:auto}}.prose{color:var(--text,#1e293b);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:#2563eb;text-decoration:underline}.prose a:hover{color:#1d4ed8}.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{color:#64748b;border-left:3px solid #cbd5e1;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{text-align:left;border:1px solid #e2e8f0;padding:6px 10px}.prose th{background:#f8fafc;font-weight:600}.prose code,.prose pre{font-family:D2coding,Nanum Gothic Coding,monospace;font-size:.875em}.prose pre{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;margin:.75em 0;padding:.75em 1em;overflow-x:auto}.prose code{background:#f1f5f9;border-radius:3px;padding:.1em .35em}.prose pre code{background:0 0;padding:0}.prose hr{border:none;border-top:1px solid #e2e8f0;margin:1.5em 0}.dashboard-welcome{background:linear-gradient(135deg,#eff6ff,#f0fdf4);border:1px solid #bfdbfe;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:#1e293b;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:#0f172a;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{color:inherit;background:#f8fafc;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:#eff6ff;border-color:#bfdbfe}.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:#94a3b8;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:#1e293b;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:#93c5fd;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{border:1px solid var(--border);background:#f8fafc;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,#fdf2f8 0,#0000 60%),radial-gradient(120% 100% at 100% 100%,#eff6ff 0,#0000 55%),linear-gradient(#fff,#fafaff);border:1px solid #e2e8f0;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{color:#fff;background:linear-gradient(135deg,#ec4899,#6366f1);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 #ec489973}.gallery-hero-text{flex:auto;min-width:0}.gallery-hero-title{color:#0f172a;letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:800}.gallery-hero-sub{color:#64748b;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:#475569;align-items:baseline;gap:.35rem;font-size:.8125rem;display:inline-flex}.gallery-hero-stat strong{color:#0f172a;letter-spacing:-.01em;font-size:1.125rem;font-weight:800}.gallery-toolbar-card{background:#fff;border:1px solid #e2e8f0;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{color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;width:100%;height:2.5rem;padding:0 2.5rem;font-size:.875rem;transition:border-color .12s,background .12s,box-shadow .12s}.gallery-toolbar-search-input:focus{background:#fff;border-color:#818cf8;outline:none;box-shadow:0 0 0 3px #6366f126}.gallery-toolbar-search-clear{color:#475569;cursor:pointer;background:#e2e8f0;border:0;border-radius:50%;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;font-size:.7rem;display:inline-flex;position:absolute;right:.6rem}.gallery-toolbar-search-clear:hover{background:#cbd5e1}.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{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;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{color:#0f172a;background:#f1f5f9;border-color:#cbd5e1}.gallery-toolbar-chip.is-active{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);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:#64748b;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{color:#0f172a;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;height:2.1rem;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:#64748b;margin:0;font-size:.8125rem}.gallery-result-count strong{color:#0f172a;margin-right:.25rem;font-size:.9375rem;font-weight:800}.gallery-result-clear{color:#6366f1;cursor:pointer;background:0 0;border:0;font-size:.75rem;font-weight:600}.gallery-result-clear:hover{color:#4338ca}.gallery-view-toggle{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:10px;margin-right:.5rem;padding:2px;display:inline-flex}.gallery-view-toggle-btn{color:#64748b;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:#0f172a}.gallery-view-toggle-btn.is-active{color:#1e40af;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{border-bottom:1px solid var(--border);background:linear-gradient(#f8fafc,#f1f5f9)}.gallery-table th{text-align:left;color:#475569;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 #f1f5f9;transition:background .12s}.gallery-table tbody tr:first-child{border-top:0}.gallery-table tbody tr:hover{background:#fafbff}.gallery-table td{vertical-align:middle;color:#0f172a;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:#0f172a;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:#64748b;white-space:nowrap;text-overflow:ellipsis;max-width:38rem;font-size:.75rem;overflow:hidden}.gallery-table-type-chip{color:#475569;white-space:nowrap;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:600;display:inline-block}.gallery-table-author{color:#334155;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{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.gallery-table-time{color:#64748b;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:#cbd5e1;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:#0f172a;-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{color:#7c2d12;background:linear-gradient(135deg,#fde68a,#fb923c);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:#fff;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{border:1px solid var(--border);background:#f8fafc;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{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);justify-content:center;align-items:center;font-size:.875rem;font-weight:700;display:inline-flex}.gallery-author-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:700;overflow:hidden}.gallery-card-time{color:#64748b;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);color:var(--muted);cursor:pointer;background:#f8fafc;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){color:#334155;border-color:#94a3b8}.project-public-toggle--on{color:#047857;background:#ecfdf5;border-color:#6ee7b7}.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{color:#92400e;background:#fef3c7;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,#f8fafc);min-height:100vh}.lesson-fullpage-topbar{z-index:30;background:var(--card,#fff);border-bottom:1px solid var(--border,#e2e8f0);align-items:center;gap:1rem;padding:.5rem 1rem;display:flex;position:sticky;top:0}.lesson-fullpage-back{color:var(--primary,#2563eb);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{border-color:var(--border,#e2e8f0);background:#f8fafc}.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:#64748b;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:#94a3b8;flex-shrink:0;font-size:.7rem}.unit-switcher-rename{color:#64748b;cursor:text;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;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);color:var(--fg);background:#fff;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{border:1px solid var(--border,#e2e8f0);z-index:50;background:#fff;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:#94a3b8;text-transform:uppercase;letter-spacing:.04em;margin:.3rem .5rem .15rem;font-size:.6875rem;font-weight:700}.unit-switcher-divider{background:var(--border,#e2e8f0);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:#f1f5f9}.unit-switcher-item--active{color:#1e40af;background:#dbeafe;font-weight:700}.unit-switcher-item-num{color:#475569;background:#e2e8f0;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;font-size:.75rem;font-weight:700;display:inline-flex}.unit-switcher-item--active .unit-switcher-item-num{color:#fff;background:#3b82f6}.unit-switcher-item-title{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.unit-switcher-item-check{color:#2563eb;font-weight:700}.lesson-fullpage-type{color:var(--muted-foreground,#64748b);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{color:#92400e;background:#fef3c7;border-radius:999px;flex-shrink:0;padding:.125rem .5rem;font-size:.6875rem;font-weight:700}.lesson-fullpage-exam-link{color:#6d28d9;white-space:nowrap;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:999px;padding:.25rem .6rem;font-size:.75rem;font-weight:600}.lesson-fullpage-exam-link:hover{background:#ede9fe}.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,#e2e8f0);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:#93c5fd;outline:none}.lesson-pane-divider:before{content:"";position:absolute;inset:0 -3px}.lesson-pane-divider-grip{color:#94a3b8;letter-spacing:-3px;pointer-events:none;writing-mode:vertical-rl;font-size:.75rem}.lesson-pane-divider:hover .lesson-pane-divider-grip{color:#1d4ed8}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:#2563eb}.lesson-main-pane--pinned{background:#fffbeb;border-left:2px solid #fbbf24}.lesson-pinned-bar{background:#fef3c7;border-bottom:1px solid #fde68a;flex-shrink:0;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .75rem;display:flex}.lesson-pinned-bar-label{color:#92400e;white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;font-weight:700;overflow:hidden}.lesson-pinned-bar-close{cursor:pointer;color:#92400e;background:0 0;border:0;border-radius:6px;flex-shrink:0;width:1.5rem;height:1.5rem}.lesson-pinned-bar-close:hover{background:#fde68a}.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,#e2e8f0)}}.lesson-fullpage .quiz-section{padding:1.5rem 1.25rem 3rem}.lesson-embedded-frame-wrap{background:#fff;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:#fff;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,#64748b);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:#b91c1c;font-weight:700}.lesson-embedded-error-detail{font-size:.875rem}.lesson-embedded-spinner{border:3px solid #e2e8f0;border-top:3px solid var(--primary,#2563eb);border-radius:50%;width:32px;height:32px;animation:lesson-embedded-spin .9s linear infinite}@keyframes lesson-embedded-spin{to{transform:rotate(1turn)}}.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;color:#475569;pointer-events:none;background:#94a3b833;border-radius:999px;min-width:16px;height:16px;padding:0 5px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:2px;right:4px}.lesson-toc-item--active:after{color:#991b1b;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{color:var(--brand);background:#eef2ff}.lesson-edit-toggle{border:1px solid var(--border);background:var(--card);color:var(--fg,#0f172a);cursor:pointer;border-radius:8px;padding:.3rem .55rem;font-size:.75rem;font-weight:700}.lesson-edit-toggle:hover{background:#f1f5f9}.lesson-edit-toggle--on{color:#92400e;background:#fef3c7;border-color:#fcd34d}.lesson-edit-toggle--preview{color:#1e40af;background:#dbeafe;border-color:#93c5fd}.lesson-edit-toggle--live{color:#991b1b;background:#fecaca;border-color:#ef4444;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:#f1f5f9;border-radius:8px;gap:2px;margin-left:auto;padding:2px;display:inline-flex}.lesson-mode-seg-btn{color:#64748b;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:#334155}.lesson-mode-seg-btn.is-active{color:#0f172a;background:#fff;box-shadow:0 1px 2px #0f172a14}.lesson-mode-seg-btn.is-active-preview{color:#1e40af}.lesson-mode-seg-btn.is-active-live{color:#991b1b;background:#fef2f2;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{color:#b91c1c;cursor:pointer;background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fca5a5;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:hover{background:linear-gradient(135deg,#fee2e2,#fecaca)}.lesson-live-toggle:active{transform:translateY(1px)}.lesson-live-toggle.is-active{color:#fff;background:linear-gradient(135deg,#ef4444,#dc2626);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:#fff;letter-spacing:.5px;background:#ef4444;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:#e2e8f0;border-radius:999px;height:4px;overflow:hidden}.lesson-toc-progress-fill{background:linear-gradient(90deg,#34d399,#10b981);border-radius:999px;height:100%;transition:width .4s ease-out}.lesson-toc-progress-label{color:#475569;font-size:.6875rem;font-weight:600}.lesson-toc-icon-check{color:#fff;background:#10b981;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:#92400e;background:#fef3c7;opacity:1!important}.lesson-toc-pin--on:hover{background:#fde68a}.lesson-toc-item:hover{background:#f1f5f9}.lesson-toc-item--active,.lesson-toc-item--active:hover{background:#fee2e2}.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:#fff;border-color:#fca5a5}.lesson-toc-text{flex-direction:column;gap:.05rem;min-width:0;display:flex}.lesson-toc-name{color:var(--fg,#0f172a);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;overflow:hidden}.lesson-toc-item--active .lesson-toc-name{color:#991b1b}.lesson-toc-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.6875rem;font-weight:500;overflow:hidden}.lesson-toc-rename-input{background:#fff;border:1px solid #93c5fd;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;color:#cbd5e1;letter-spacing:-2px;-webkit-user-select:none;user-select:none;opacity:0;flex-shrink:0;justify-content:center;align-items:center;width:.9rem;height:1.5rem;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:#64748b}.lesson-toc-drag-handle:active{cursor:grabbing}.lesson-toc-item--dragging{opacity:.4}.lesson-toc-item--drop{box-shadow:inset 0 2px #2563eb;background:#dbeafe!important}.lesson-toc-edit-btn{border:1px solid var(--border);width:1.5rem;height:1.5rem;color:var(--muted);cursor:pointer;background:#fff;border-radius:6px;justify-content:center;align-items:center;font-size:.75rem;display:inline-flex}.lesson-toc-edit-btn:hover:not(:disabled){color:var(--brand);background:#eef2ff;border-color:#c7d2fe}.lesson-toc-edit-btn:disabled{opacity:.4;cursor:not-allowed}.lesson-toc-edit-btn--danger:hover:not(:disabled){color:#b91c1c;background:#fee2e2;border-color:#fca5a5}.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{color:#4338ca;cursor:pointer;text-align:center;background:linear-gradient(135deg,#eef2ff,#ede9fe);border:1px dashed #a5b4fc;border-radius:10px;width:100%;padding:.6rem .75rem;font-size:.8125rem;font-weight:700;text-decoration:none;display:block}.lesson-add-btn:hover{background:#e0e7ff}.lesson-add-btn--quiz{color:#7e22ce;background:linear-gradient(135deg,#fdf4ff,#fae8ff);border-color:#d8b4fe}.lesson-add-btn--quiz:hover{background:#f5d0fe}.lesson-add-btn--compose{color:#0e7490;background:linear-gradient(135deg,#ecfeff,#cffafe);border-color:#67e8f9}.lesson-add-btn--compose:hover{background:#cffafe}.lesson-toc-name-hint{color:#b45309;margin-left:.4rem;font-size:.6875rem;font-weight:600}.lesson-toc-companion{color:#6366f1;font-weight:600}.material-companion-label{align-items:center;gap:.35rem;display:inline-flex}.material-companion-optional{color:#94a3b8;font-size:.6875rem;font-weight:500}.material-companion-hint{color:#64748b;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:#94a3b8;border:1px solid var(--border,#e2e8f0);background:#f8fafc;border-radius:8px;padding:2rem 1rem;font-size:.875rem}.material-draft-richtext{display:block}.lesson-inline-html-wrap{background:#fff}.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{border:1.5px solid var(--border,#e2e8f0);cursor:pointer;text-align:center;background:#fff;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){background:#f8fafc;border-color:#93c5fd}.add-material-mode-card.is-active{background:#eff6ff;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.add-material-mode-illu{background:#f1f5f9;border-radius:6px;gap:4px;width:4.5rem;height:2.5rem;padding:4px;display:inline-flex}.add-material-mode-pane{background:#cbd5e1;border-radius:3px;flex:1}.add-material-mode-card.is-active .add-material-mode-illu{background:#dbeafe}.add-material-mode-card.is-active .add-material-mode-pane{background:#3b82f6}.add-material-mode-label{color:#0f172a;font-size:.9375rem;font-weight:700}.add-material-mode-desc{color:#64748b;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:#475569;background:#f1f5f9;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:#f1f5f9;border-radius:8px;gap:.25rem;padding:3px;display:flex}.material-draft-source-mini-btn{color:#475569;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:#0f172a}.material-draft-source-mini-btn.is-active{color:#1e40af;background:#fff;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{border:1.5px solid var(--border,#e2e8f0);cursor:pointer;text-align:center;background:#fff;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){background:#f8fafc;border-color:#93c5fd}.add-material-source-card.is-active{background:#eff6ff;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.add-material-source-icon{font-size:1.5rem;line-height:1}.add-material-source-label{color:#0f172a;font-size:.875rem;font-weight:700}.add-material-source-desc{color:#64748b;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:#475569;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{border:1.5px solid var(--border,#e2e8f0);cursor:pointer;text-align:center;background:#fff;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){background:#f8fafc;border-color:#93c5fd}.page-layout-card.is-active{background:#eff6ff;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.page-layout-card.is-disabled{opacity:.45;cursor:not-allowed}.page-layout-card-title{color:#0f172a;font-size:.875rem;font-weight:700}.page-layout-card-desc{color:#64748b;font-size:.6875rem}.page-layout-illu{background:#f1f5f9;border-radius:6px;gap:4px;width:4rem;height:2.4rem;padding:4px;display:inline-flex}.page-layout-illu-pane{background:#cbd5e1;border-radius:3px;flex:1}.page-layout-card.is-active .page-layout-illu{background:#dbeafe}.page-layout-card.is-active .page-layout-illu-pane{background:#3b82f6}.page-layout-companion{margin-top:.75rem;display:block}.page-layout-companion-label{color:#475569;margin-bottom:.3rem;font-size:.75rem;font-weight:600;display:block}.page-layout-companion-hint{color:#64748b;margin-top:.3rem;font-size:.6875rem;line-height:1.45;display:block}.page-layout-empty{background:#f8fafc;border:1px dashed #cbd5e1;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:#0f172a;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{border:1px solid var(--border);background:#fff;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:#64748b;background:#f1f5f9;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:#334155;background:#f8fafc;border-radius:6px;padding:.35rem .5rem;font-size:.875rem}.lesson-quiz-teacher-q-num{color:#64748b;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(#fafbff,#fff);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:#f8fafc;width:100%;height:100%;min-height:32rem}.lesson-embed-wrap{flex-direction:column;display:flex;position:relative}.lesson-embed-pop{z-index:5;color:#fff;-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:#0f172a;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{border:1px dashed var(--border);text-align:center;background:#f8fafc;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{text-align:center;background:linear-gradient(135deg,#f0f9ff,#ede9fe);border:1px solid #c7d2fe;border-radius:14px;padding:1.5rem 1.25rem}.lesson-viewer-editor-card-icon{font-size:2.25rem}.lesson-viewer-editor-card-title{color:#1e3a8a;margin:.4rem 0 0;font-size:1rem;font-weight:800}.lesson-viewer-editor-card-desc{color:#3730a3;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{border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;color:#334155;background:#f1f5f9;border-radius:10px;max-height:22rem;padding:.85rem 1rem;font-family:SF Mono,Fira Code,monospace;font-size:.75rem;overflow:auto}.lesson-dataset-card{background:linear-gradient(135deg,#eef2ff,#f5f3ff);border:1px solid #c7d2fe;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:#4338ca;letter-spacing:.02em;margin:.2rem 0 0;font-size:.75rem;font-weight:600}.lesson-dataset-note{color:#4338ca;margin:0;font-size:.8125rem;line-height:1.55}.lesson-dataset-error{color:#b91c1c}.lesson-dataset-table-wrap{background:#fff;border:1px solid #c7d2fe;border-radius:10px;padding:.6rem .6rem .8rem}.lesson-dataset-table-scroll{border:1px solid #e2e8f0;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{text-align:left;white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;max-width:22rem;padding:.4rem .6rem;overflow:hidden}.lesson-dataset-table th{color:#1e293b;z-index:1;background:#f8fafc;font-weight:700;position:sticky;top:0}.lesson-dataset-table tbody tr:nth-child(odd) td{background:#fafbff}.lesson-dataset-json{white-space:pre-wrap;word-break:break-word;color:#1e293b;background:#fff;border:1px solid #c7d2fe;border-radius:10px;max-height:22rem;margin:0;padding:.85rem 1rem;font-family:SF Mono,Fira Code,monospace;font-size:.75rem;overflow:auto}.lesson-link-card{border:1px solid var(--border);background:#fff;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:#fff;border:0;flex:1;width:100%;min-height:28rem;display:block}.lesson-link-embed{background:#fff;flex-direction:column;width:100%;height:100%;min-height:480px;display:flex}.lesson-link-embed-bar{border-bottom:1px solid var(--border);background:#f8fafc;flex-shrink:0;justify-content:space-between;align-items:center;padding:.3rem .6rem;font-size:.75rem;display:flex}.lesson-link-embed-host{color:#475569;text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.lesson-link-embed-pop{background:var(--primary,#2563eb);color:#fff;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:#93c5fd;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{color:#92400e;width:100%;font:inherit;cursor:pointer;background:linear-gradient(135deg,#fef3c7,#fde68a);border:0;border-bottom:1px solid #fcd34d;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,#fde68a,#fcd34d)}.lesson-pager--top{background:var(--card,#fff);border-bottom:1px solid var(--border,#e2e8f0);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:#f1f5f9;border-color:#0000}.lesson-pager--top .lesson-pager-btn--next{border-left:1px solid var(--border,#e2e8f0);justify-content:flex-end}.lesson-pager--top .lesson-pager-dir{color:var(--muted-foreground,#64748b);flex-shrink:0;font-size:.875rem;font-weight:700}.lesson-pager--top .lesson-pager-name{color:#334155;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{color:#b91c1c;background:#f1f5f9}.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{color:#fff;cursor:pointer;font:inherit;letter-spacing:-.005em;background:#111827;border-color:#111827;font-size:.875rem;font-weight:700;box-shadow:0 2px 6px #11182733}.teacher-hero-quick-link--primary:hover{color:#fff;opacity:1;background:#1f2937;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{color:#6b7280;background:#f3f4f6;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{color:#166534;background:#dcfce7}.wizard-step--active{color:#1e40af;background:#dbeafe;font-weight:600}.wizard-step-num{background:#fff;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:#6b7280;margin:0;font-size:.78rem;line-height:1.5}.wizard-empty{text-align:center;color:#9ca3af;background:#f9fafb;border:1px dashed #e5e7eb;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{background:#fff;border:1px solid #e5e7eb;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:#111827;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.wizard-file-sub{color:#6b7280;font-size:.7rem}.wizard-file-unit{background:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;flex-shrink:0;max-width:150px;padding:4px 6px;font-size:.78rem}.wizard-file-remove{color:#9ca3af;cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;width:26px;height:26px;font-size:1.1rem}.wizard-file-remove:hover{color:#b91c1c;background:#fee2e2}.wizard-summary{border:1px solid #e5e7eb;border-radius:10px;flex-direction:column;gap:0;margin:0;display:flex;overflow:hidden}.wizard-summary>div{border-bottom:1px solid #f3f4f6;grid-template-columns:100px 1fr;gap:12px;padding:10px 14px;display:grid}.wizard-summary>div:last-child{border-bottom:none}.wizard-summary dt{color:#6b7280;margin:0;font-size:.78rem;font-weight:600}.wizard-summary dd{color:#111827;margin:0;font-size:.875rem}.wizard-progress{color:#1e40af;background:#dbeafe}.wizard-error,.wizard-progress{border-radius:8px;margin:0;padding:8px 12px;font-size:.85rem}.wizard-error{color:#b91c1c;background:#fee2e2}.wizard-footer{border-top:1px solid #f3f4f6;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:#c7d2fe;transform:translateY(-2px);box-shadow:0 10px 26px #4f46e51a}.teacher-stat-card--accent{background:linear-gradient(135deg,#eef2ff,#f5f3ff);border-color:#c7d2fe}.teacher-stat-card-icon{background:#eef2ff;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,#e2e8f0);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:#64748b;font-weight:500}.dashboard-hero-v2-sub{color:#64748b;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,#eef2ff 0,#0000 55%),radial-gradient(120% 100% at 100% 100%,#fdf2f8 0,#0000 55%),linear-gradient(#fff,#fafaff);border:1px solid #e2e8f0;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{color:#fff;background:linear-gradient(135deg,#6366f1,#ec4899);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:3rem;height:3rem;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:#64748b;letter-spacing:-.005em;margin:0;font-size:.8125rem;font-weight:600}.dashboard-hero-title{letter-spacing:-.015em;color:#0f172a;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{color:#92400e;background:#fef3c7;border:1px solid #fde68a}.dashboard-hero-chip--student{color:#1e40af;background:#dbeafe;border:1px solid #bfdbfe}.dashboard-hero-sub{color:#64748b;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{color:inherit;background:#fff;border:1px solid #e2e8f0;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:#c7d2fe;transform:translateY(-1px);box-shadow:0 4px 14px -6px #6366f140}.dashboard-stat-pill--static{cursor:default}.dashboard-stat-pill-icon{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);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:#0f172a;letter-spacing:-.02em;font-size:1.375rem;font-weight:800;line-height:1}.dashboard-stat-pill-value.is-attention{color:#b91c1c}.dashboard-stat-pill-label{color:#64748b;letter-spacing:-.005em;font-size:.6875rem;font-weight:600}.instant-create-error{color:#b91c1c;margin-left:.5rem;font-size:.75rem}.dashboard-todos{margin-bottom:1.5rem}.dashboard-section-meta{color:#94a3b8;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{color:inherit;background:linear-gradient(135deg,#eff6ff,#f0f9ff);border:1px solid #bfdbfe;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:#93c5fd;transform:translateY(-1px);box-shadow:0 4px 14px #2563eb14}.dashboard-todo-card--urgent{background:linear-gradient(135deg,#fef2f2,#fff1f2);border-color:#fca5a5}.dashboard-todo-card--urgent:before{content:"급함";color:#fff;background:#ef4444;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,#ecfdf5,#f0fdfa);border-color:#6ee7b7}.dashboard-todo-card--grading{background:linear-gradient(135deg,#fefce8,#fef3c7);border-color:#fcd34d}.dashboard-todo-card--draft,.dashboard-todo-card--first-class,.dashboard-todo-card--first-project{background:linear-gradient(135deg,#faf5ff,#fdf4ff);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:#0f172a;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:#475569;margin:.15rem 0 0;font-size:.75rem}.dashboard-todo-cta{color:#2563eb;white-space:nowrap;font-size:.75rem;font-weight:700}.dashboard-todo-card--urgent .dashboard-todo-cta{color:#b91c1c}.dashboard-todo-card--resume .dashboard-todo-cta{color:#047857}.dashboard-todo-card--grading .dashboard-todo-cta{color:#92400e}.dashboard-recent-projects{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.65rem;display:grid}.dashboard-recent-project{background:var(--card,#fff);border:1px solid var(--border,#e2e8f0);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:#93c5fd;box-shadow:0 2px 8px #0f172a0d}.dashboard-recent-project-icon{color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:2.2rem;height:2.2rem;font-size:1.1rem;display:inline-flex}.dashboard-recent-project-body{flex:1;min-width:0}.dashboard-recent-project-title{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:.875rem;font-weight:600;overflow:hidden}.dashboard-recent-project-meta{color:#64748b;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:#475569;font-size:.9375rem}.dashboard-link-row{background:var(--card,#fff);border:1px solid var(--border,#e2e8f0);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{background:#f8fafc;border-color:#cbd5e1}.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:#64748b;margin:.1rem 0 0;font-size:.75rem}.dashboard-link-arrow{color:#94a3b8;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:#c7d2fe;transform:translateY(-2px);box-shadow:0 10px 24px #4f46e51a}.dashboard-stat-card--accent{background:linear-gradient(135deg,#ecfdf5,#f0fdfa);border-color:#99f6e4}.dashboard-stat-icon{background:#eef2ff;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:#d1fae5}.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,#c4b5fd,#a78bfa);box-shadow:0 2px 6px #0f172a1f;color:#fff!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,#fde68a,#fbbf24);color:#78350f!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:#93c5fd;transform:translateY(-2px);box-shadow:0 10px 26px #2563eb1a}.dashboard-featured-chip{color:#4338ca;letter-spacing:.02em;background:#eef2ff;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:"";opacity:.7;background:linear-gradient(90deg,#6366f1,#2563eb);height:3px;position:absolute;top:0;left:0;right:0}.dashboard-class-card:hover{border-color:#93c5fd;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{letter-spacing:.02em;border-radius:6px;padding:.22rem .55rem;font-size:.6875rem;font-weight:700}.dashboard-class-role--teacher{color:#92400e;background:#fef3c7}.dashboard-class-role--student{color:#1e40af;background:#dbeafe}.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{color:#334155;letter-spacing:.06em;background:#f1f5f9;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:#93c5fd;transform:translateY(-1px);box-shadow:0 6px 20px #2563eb1a}.dashboard-courseware-thumb{background:linear-gradient(135deg,#eef2ff,#dbeafe) 50%/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{color:#4338ca;letter-spacing:.02em;background:#eef2ff;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:#f8fafc}.ann-row--pinned{background:#fffbeb}.ann-row--pinned:hover{background:#fef3c7}.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:#111827;font-size:.9375rem;font-weight:600}.ann-row--unread .ann-title{font-weight:700}.ann-unread-dot{background:#ef4444;border-radius:50%;flex-shrink:0;width:6px;height:6px;display:inline-block}.ann-row-meta{color:#6b7280;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{color:#1e40af;background:#dbeafe}.ann-chip--event{color:#9d174d;background:#fce7f3}.ann-chip--warn{color:#92400e;background:#fef3c7}.ann-chip--update{color:#065f46;background:#d1fae5}.ann-chip--pinned{color:#92400e;background:#fef3c7}.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:#111827;letter-spacing:-.015em;margin:0;font-size:1.5rem;font-weight:800;line-height:1.3}.ann-detail-meta{color:#6b7280;flex-wrap:wrap;align-items:center;gap:8px;font-size:.8125rem;display:flex}.ann-detail-expires{color:#b45309}.ann-detail-body{color:#1f2937;font-size:.9375rem;line-height:1.7}.ann-detail-body p{white-space:pre-wrap;margin:0 0 .5rem}.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{color:#475569;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1px solid #e5e7eb;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:#f1f5f9}.ann-composer-type--active{color:#1e40af;background:#dbeafe;border-color:#93c5fd;font-weight:600}.ann-composer-pin{color:#475569;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{width:100%;font:inherit;color:#111827;box-sizing:border-box;background:#fff;border:1px solid #e5e7eb;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:#3b82f6;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:#f8fafc;border:1px solid #e2e8f0;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:#64748b;font-size:.7rem;font-weight:600}.ai-quota-usage strong{color:#0f172a;font-size:.95rem}.ai-quota-usage-sub{color:#94a3b8;font-size:.7rem}.ai-quota-hint{color:#1e40af;background:#dbeafe;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{color:#475569;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:999px;padding:4px 12px;font-size:.78rem;transition:background .12s,border-color .12s}.ai-quota-preset-btn:hover{color:#3730a3;background:#eef2ff;border-color:#c7d2fe}.ai-quota-row{border-bottom:1px dashed #f1f5f9;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:#334155;font-size:.8125rem;font-weight:600}.ai-quota-input{width:130px;font:inherit;text-align:right;font-variant-numeric:tabular-nums;border:1px solid #e5e7eb;border-radius:6px;padding:5px 8px;font-size:.85rem}.ai-quota-input:disabled{color:#9ca3af;background:#f3f4f6}.ai-quota-row-hint{color:#94a3b8;font-size:.72rem}.ai-quota-actions{border-top:1px solid #f3f4f6;align-items:center;margin-top:4px;padding-top:12px;display:flex}.projects-folder-bar{margin:.5rem 0 .85rem}.projects-folder-tabs{flex-wrap:wrap;gap:.4rem;display:flex}.projects-folder-tab-wrap{background:var(--card);border:1px solid var(--border);border-radius:10px;align-items:center;gap:.2rem;padding:.1rem;transition:border-color .15s,box-shadow .15s;display:inline-flex}.projects-folder-tab-wrap--active{border-color:#93c5fd;box-shadow:0 2px 8px #2563eb1f}.projects-folder-tab{color:#475569;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:.4rem;padding:.4rem .7rem;font-size:.8125rem;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.projects-folder-tab:hover{color:#0f172a;background:#f1f5f9}.projects-folder-tab--active{color:var(--brand);background:#eef2ff}.projects-folder-tab-icon{font-size:.95rem;line-height:1}.projects-folder-tab-count{color:#475569;text-align:center;background:#e2e8f0;border-radius:999px;min-width:1.25rem;padding:.05rem .45rem;font-size:.6875rem;font-weight:700}.projects-folder-tab--active .projects-folder-tab-count{color:var(--brand);background:#dbeafe}.projects-folder-tab-menu{gap:.1rem;padding-right:.2rem;display:inline-flex}.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{color:var(--brand);background:#eef2ff}.projects-folder-tab-menu-btn--danger:hover{color:#b91c1c;background:#fee2e2}.projects-folder-tab--add{color:#4338ca;background:#fafbff;border:1px dashed #c7d2fe}.projects-folder-tab--add:hover{background:#eef2ff}.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){opacity:.95;background:#fff}.projects-select-bar-actions .btn-danger-outline{color:#fecaca;background:0 0;border:1px solid #fecaca99}.projects-select-bar-actions .btn-danger-outline:hover:not(:disabled){color:#fee2e2;background:#fecaca1f}.projects-move-menu{display:inline-block;position:relative}.projects-move-menu-pop{color:#0f172a;border:1px solid var(--border);z-index:40;background:#fff;border-radius:10px;min-width:12rem;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;color:#0f172a;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:.4rem;width:100%;padding:.45rem .6rem;font-size:.8125rem;font-weight:600;display:flex}.projects-move-menu-item:hover{color:var(--brand);background:#eef2ff}.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-offset:2px;border-color:#4f46e5;outline:3px solid #4f46e5}.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{color:#4f46e5;background:#ffffffeb;border:2px solid #fff;border-radius:8px;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;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{color:#fff;background:#4f46e5}.app-breadcrumb-home{background:var(--hover);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:1.85rem;height:1.85rem;font-size:.95rem;text-decoration:none;transition:background .13s;display:inline-flex}.app-breadcrumb-home:hover{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);justify-content:space-between;align-items:center;padding:.85rem 1rem .65rem;display:flex}.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:#eef2ff}.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;border:1px solid #0000;border-radius:10px;padding:.7rem .85rem;transition:background .13s;position:relative}.header-notif-item:hover{border-color:var(--border);background:#f8fafc}.header-notif-item--read{opacity:.65;cursor:default}.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{color:#1e40af;background:#dbeafe}.header-notif-tag--event{color:#9d174d;background:#fce7f3}.header-notif-tag--warning{color:#b91c1c;background:#fee2e2}.header-notif-tag--update{color:#065f46;background:#d1fae5}.header-notif-pin{font-size:.85rem}.header-notif-dot{background:#ef4444;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:#0f172a;margin:0;font-size:.875rem;font-weight:700}.header-notif-body{color:var(--muted);white-space:pre-wrap;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:.2rem 0 0;font-size:.8125rem;line-height:1.5;display:-webkit-box;overflow:hidden}.header-notif-author{color:#94a3b8;margin:.3rem 0 0;font-size:.6875rem;font-weight:600}.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(--card);border:1px solid var(--border);z-index:50;border-radius:14px;width:18rem;padding:.5rem;position:absolute;top:calc(100% + .5rem);right:0;overflow:hidden;box-shadow:0 20px 48px #0f172a33}.header-user-pop-head{border-bottom:1px solid var(--border);align-items:center;gap:.7rem;padding:.65rem .7rem .85rem;display:flex}.header-user-pop-avatar{color:#fff;background:linear-gradient(135deg,#3b82f6,#6366f1);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;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{color:var(--brand);letter-spacing:.02em;background:#eef2ff;border-radius:6px;margin-top:.25rem;padding:.1rem .4rem;font-size:.6875rem;font-weight:700;display:inline-block}.header-user-pop-list{margin:.35rem 0;padding:0;list-style:none}.header-user-pop-item{color:#0f172a;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:.55rem;width:100%;padding:.55rem .65rem;font-size:.875rem;font-weight:600;text-decoration:none;display:flex}.header-user-pop-item:hover{color:var(--brand);background:#eef2ff}.header-user-pop-item--danger{color:#b91c1c}.header-user-pop-item--danger:hover{color:#b91c1c;background:#fee2e2}.header-user-pop-divider{background:var(--border);height:1px;margin:.3rem 0}.header-user-pop-logout{padding:.1rem}@media (max-width:640px){.header-user-trigger .app-user-meta{display:none}}.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:#eef2ff;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:#b91c1c}.profile-edit-error,.profile-edit-flash{margin:.4rem 0 0;font-size:.8125rem;font-weight:600}.profile-edit-flash{color:#047857}.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{color:#92400e;background:#fef3c7}.announcement-admin-pin,.announcement-admin-tag-draft{border-radius:6px;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.announcement-admin-tag-draft{color:#475569;background:#e2e8f0}.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:#b91c1c;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-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,#eef2ff,#faf5ff);border:1px solid #c7d2fe;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,#ecfeff,#f0fdf4);border-color:#6ee7b7}.class-next-action--create-unit{background:linear-gradient(135deg,#fef3c7,#fae8ff);border-color:#fcd34d}.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:#6366f1;text-transform:uppercase;margin:0;font-size:.6875rem;font-weight:700}.class-next-action--continue .class-next-action-eyebrow{color:#059669}.class-next-action--create-unit .class-next-action-eyebrow{color:#b45309}.class-next-action-title{margin:.2rem 0 0;font-size:1.0625rem;font-weight:700;line-height:1.3}.class-next-action-desc{color:#475569;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,#e2e8f0);flex-wrap:wrap;align-items:center;gap:.25rem;margin-bottom:1.5rem;display:flex}.class-tab{color:#64748b;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:#334155}.class-tab.is-active{color:#1e40af;border-bottom-color:#2563eb}.class-tab-count{color:#475569;background:#e2e8f0;border-radius:999px;margin-left:.1rem;padding:1px 6px;font-size:.6875rem;font-weight:700}.class-tab.is-active .class-tab-count{color:#1e40af;background:#dbeafe}.class-tab-spacer{flex:1}.class-tab-secondary{color:#64748b;border-radius:6px;padding:.4rem .6rem;font-size:.75rem;font-weight:600;text-decoration:none;transition:background .12s,color .12s}.class-tab-secondary:hover{color:#0f172a;background:#f1f5f9}.class-tab--ops{color:#b45309}.class-tab--ops:hover{color:#92400e}.class-tab--ops.is-active{color:#b45309;border-bottom-color:#f59e0b}.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,#e2e8f0);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:#fbbf24;transform:translateY(-1px);box-shadow:0 4px 12px -4px #b453092e}.class-ops-card-icon{background:#fef3c7;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:#0f172a;font-size:.9375rem;font-weight:700}.class-ops-card-desc{color:#64748b;font-size:.75rem}.class-ops-card-arrow{color:#cbd5e1;flex-shrink:0;font-weight:700}.class-ops-card:hover .class-ops-card-arrow{color:#b45309}.class-danger-zone{background:#fef2f2;border:1px dashed #fca5a5;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:#b91c1c;margin:0 0 .35rem;font-size:.9375rem;font-weight:800}.class-danger-zone-desc{color:#7f1d1d;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,#eef2ff,#f5f3ff);border-color:#c7d2fe}.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:#93c5fd;transform:translateY(-1px);box-shadow:0 4px 14px #2563eb1f}.class-stat-card--link{color:inherit;background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#fcd34d;text-decoration:none;transition:border-color .15s,transform .13s,box-shadow .18s}.class-stat-card--link:hover{border-color:#f59e0b;transform:translateY(-1px);box-shadow:0 4px 14px #f59e0b2e}.class-stat-card--link .class-stat-card-icon{background:#fff}.class-stat-card-link-title{letter-spacing:-.01em;color:#92400e;font-size:1rem;font-weight:800;line-height:1.1;display:block}.class-stat-card-icon{background:#f1f5f9;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:#fff}.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:#475569;border-radius:8px;padding:.45rem .85rem;font-size:.8125rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.class-quicknav-link:hover{color:var(--brand);background:#eef2ff}.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{color:#fff;background:linear-gradient(135deg,#94a3b8,#64748b);justify-content:center;align-items:center;font-size:1rem;font-weight:800;display:inline-flex}.class-member-avatar--teacher{background:linear-gradient(135deg,#fbbf24,#d97706)}.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{color:#78350f;background:linear-gradient(135deg,#fde68a,#fbbf24);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{border:1px solid var(--border);background:#f8fafc;border-radius:10px;align-items:center;gap:.5rem;margin-top:.65rem;padding:.4rem .55rem;display:flex}.class-project-card-owner-avatar{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:1.6rem;height:1.6rem;font-size:.75rem;font-weight:800;display:inline-flex}.class-project-card-owner-name{color:#0f172a;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{color:var(--brand);background:#eef2ff;border-color:#c7d2fe}.project-table-rename{flex-direction:column;flex:1;gap:.2rem;min-width:0;display:inline-flex}.project-table-rename-input{background:#fff;border:1px solid #93c5fd;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:#b91c1c;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{color:#065f46;background:linear-gradient(135deg,#ecfdf5,#f0fdfa);border:1px solid #6ee7b7;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;box-shadow:0 1px 0 var(--border);background:linear-gradient(#f8fafc,#f1f5f9);position:sticky;top:0}.users-admin-table thead th{text-align:left;color:#475569;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{vertical-align:middle;border-top:1px solid #f1f5f9;padding:.7rem .85rem}.users-admin-table tbody tr:first-child td{border-top:0}.users-admin-table tbody tr:hover td{background:#fafbff}.users-admin-table tbody tr.users-admin-row--selected td{background:linear-gradient(90deg,#eef2ff,#faf5ff)}.users-admin-table tfoot{z-index:2;box-shadow:0 -1px 0 var(--border);background:linear-gradient(#f1f5f9,#f8fafc);position:sticky;bottom:0}.users-admin-table tfoot td{color:#64748b;padding:.6rem .85rem;font-size:.75rem}.users-admin-foot-summary strong{color:#0f172a;font-weight:800}.users-admin-foot-sel{color:#6366f1;font-weight:700}.users-admin-foot-meta{text-align:right;color:#94a3b8}.users-admin-checkbox{cursor:pointer;accent-color:#6366f1;width:1rem;height:1rem}.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{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);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:#0f172a;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:#eef2ff;border-radius:999px;padding:1px 7px;font-size:.6875rem;font-weight:700}.users-admin-email{color:#64748b;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,#eef2ff,#ede9fe);border:1px solid #c7d2fe;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:#4338ca;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{color:#fff;background:linear-gradient(135deg,#6366f1,#ec4899);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:#0f172a;letter-spacing:-.01em;align-items:center;gap:.4rem;margin:0;font-size:1.125rem;font-weight:800;display:inline-flex}.user-detail-email{color:#64748b;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:#64748b;letter-spacing:.04em;text-transform:uppercase;font-size:.6875rem;font-weight:700}.user-detail-grid dd{color:#0f172a;margin:0;font-size:.875rem}.user-detail-section{border-top:1px solid var(--border);padding-top:.85rem}.user-detail-section-title{color:#475569;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{color:#475569;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;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:#f8fafc;border-color:#cbd5e1}.user-detail-role-btn.is-active{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:#0000;box-shadow:0 2px 8px -2px #6366f180}.user-detail-role-btn:disabled{opacity:.5;cursor:not-allowed}.user-detail-hint{color:#94a3b8;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{color:#065f46;background:linear-gradient(135deg,#ecfdf5,#f0fdfa);border:1px solid #6ee7b7;border-radius:10px;padding:.85rem 1rem}.users-admin-pwd{color:#047857;background:#fff;border:1px solid #6ee7b7;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:#475569;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{color:#fff;letter-spacing:-.02em;isolation:isolate;text-shadow:0 1px 2px #0f172a40;border-radius:9px;flex-shrink:0;justify-content:center;width:34px;height:34px;font-size:14px;font-weight:700;position:relative}.lp-brand-mark,.lp-brand-mark:after{background:linear-gradient(135deg,#a855f7,#67e8f9 50%,#34d399)}.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:#0f172a;background:#67e8f914}.lp-nav-link:not(.lp-nav-cta):after{content:"";opacity:0;transform-origin:0;pointer-events:none;background:linear-gradient(90deg,#a855f7,#67e8f9,#34d399);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);color:#fff;letter-spacing:-.008em;cursor:pointer;white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;gap:8px;height:44px;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:#fff}.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:#f5f5f5;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:#8a8a8a;font-style:italic}.lp-tok-punc{color:#ababab}.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:#fff}.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{color:#fff;border-radius:8px;flex-direction:column;justify-content:space-between;gap:24px;min-height:260px;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:#f5f5f5;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:#fff;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:#fff;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:#fff;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:#fff;border-bottom-color:#fff}.lp-audience-link:hover{opacity:.72}.lp-cta{background:var(--wf-ink);color:#fff}.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;color:#fff;max-width:24ch;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){color:var(--wf-ink);background:#fff;border-color:#fff}.lp-cta .lp-btn:not(.lp-btn--secondary):hover{opacity:.9}.lp-cta .lp-btn--secondary{color:#fff;background:0 0;border-color:#fff6}.lp-cta .lp-btn--secondary:hover{background:#ffffff0f;border-color:#fff}.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-offset:1px;color:#4f46e5;background:#4f46e51f;outline:2px dashed #4f46e5}.projects-toast{z-index:200;color:#fff;background:#0f172a;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:#64748b;margin:0 0 8px;font-size:13px}.snippet-page-breadcrumb a{color:inherit;text-decoration:none}.snippet-page-breadcrumb a:hover{color:#2563eb}.snippet-page-title{color:#0f172a;margin:0 0 8px;font-size:28px;font-weight:700}.snippet-page-desc{color:#64748b;margin:0;line-height:1.5}.snippet-error{color:#b91c1c;background:#fef2f2;border-radius:8px;margin:0 0 12px;padding:10px 14px;font-size:13px}.snippet-manager-body{background:#fff;border:1px solid #e2e8f0;border-radius:12px;grid-template-columns:260px 1fr;gap:20px;min-height:480px;padding:18px;display:grid}.snippet-sidebar{border-right:1px solid #e2e8f0;padding-right:16px}.snippet-sidebar-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.snippet-sidebar-head h2{color:#475569;margin:0;font-size:14px;font-weight:600}.snippet-empty{color:#94a3b8;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:#475569;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:#f1f5f9}.snippet-cat-group-caret{color:#94a3b8;flex-shrink:0;width:12px;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{color:#475569;text-align:center;background:#f1f5f9;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 #e2e8f0;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;color:#1f2937;text-align:left;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-family:inherit;font-size:13px;display:flex}.snippet-cat-pick:hover{background:#f1f5f9}.snippet-cat.is-active .snippet-cat-pick{color:#312e81;background:#eef2ff;border-color:#c7d2fe;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:#64748b;background:#e2e8f0;border-radius:999px;padding:1px 8px;font-size:11px}.snippet-cat-unit{color:#0e7490;text-overflow:ellipsis;white-space:nowrap;background:#ecfeff;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:#475569;background:#f1f5f9}.snippet-filter{flex-direction:column;gap:4px;margin:4px 0 12px;display:flex}.snippet-filter-label{color:#64748b;font-size:11px;font-weight:600}.snippet-filter-select{background:#fff;border:1px solid #cbd5e1;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:#0f172a;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{background:#fafbfc;border:1px solid #e2e8f0;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:#0f172a;font-size:13.5px}.snippet-card-actions{gap:6px;display:flex}.snippet-card-code{color:#e2e8f0;white-space:pre-wrap;word-break:break-word;background:#0f172a;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{color:#1f2937;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:6px 12px;font-family:inherit;font-size:12.5px}.snippet-btn:hover:not(:disabled){background:#f1f5f9}.snippet-btn:disabled{opacity:.55;cursor:not-allowed}.snippet-btn-sm{padding:3px 8px;font-size:11.5px}.snippet-btn-muted{color:#475569}.snippet-btn-danger{color:#b91c1c;border-color:#fecaca}.snippet-btn-danger:hover:not(:disabled){background:#fef2f2}.snippet-btn-add{color:#1d4ed8;background:#eef2ff;border-color:#c7d2fe;font-weight:600}.snippet-btn-add:hover:not(:disabled){background:#dbeafe}.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:#64748b;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){color:#1f2937;background:#f1f5f9;border-color:#cbd5e1}.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:#334155;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.snippet-field-input{color:#0f172a;box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:100%;padding:8px 10px;font-family:inherit;font-size:14px}.snippet-field-input:focus{border-color:#2563eb;outline:none;box-shadow:0 0 0 3px #2563eb26}.snippet-field-textarea{color:#e2e8f0;box-sizing:border-box;resize:vertical;background:#0f172a;border:1px solid #cbd5e1;border-radius:8px;width:100%;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{cursor:pointer;background:#fff;border:1px solid #cbd5e1;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:#64748b;margin:6px 0 0;font-size:12px;line-height:1.5}.snippet-inline-form{background:#f8fafc;border:1.5px solid #2563eb;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:#94a3b8;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:#fff;border:1px solid #e2e8f0;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:#0f172a;margin:0 0 12px;font-size:16px;font-weight:700}.quiz-editor-section-meta{color:#64748b;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:#334155;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.quiz-editor-input{color:#0f172a;box-sizing:border-box;background:#fff;border:1px solid #cbd5e1;border-radius:8px;outline:none;width:100%;padding:8px 12px;font-family:inherit;font-size:14px}.quiz-editor-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.quiz-q-card{background:#f8fafc;border:1px solid #e2e8f0;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:#4f46e5;font-size:14px}.quiz-q-actions{gap:4px;display:flex}.quiz-q-move,.quiz-q-remove{cursor:pointer;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;display:inline-flex}.quiz-q-move:hover:not(:disabled),.quiz-q-remove:hover:not(:disabled){color:#0f172a;background:#f1f5f9;border-color:#cbd5e1}.quiz-q-remove:hover:not(:disabled){color:#b91c1c;background:#fef2f2;border-color:#fecaca}.quiz-q-move:disabled,.quiz-q-remove:disabled{opacity:.35;cursor:not-allowed}.quiz-q-prompt{background:#fff}.quiz-q-points{align-items:center;gap:8px;margin:10px 0;display:flex}.quiz-q-points-label{color:#475569;font-size:12px;font-weight:600}.quiz-q-points-input{border:1px solid #cbd5e1;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:#475569;margin-bottom:2px;font-size:12px;font-weight:600}.quiz-q-choice{background:#fff;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:4px 8px;display:flex}.quiz-q-choice.is-correct{background:#ecfdf5;border-color:#a7f3d0}.quiz-q-choice-input{flex:1;padding:6px 10px;font-size:13px}.quiz-q-choice-remove{cursor:pointer;color:#94a3b8;background:#fff;border:1px solid #e2e8f0;border-radius:6px;width:24px;height:24px}.quiz-q-choice-remove:hover:not(:disabled){color:#b91c1c;border-color:#fecaca}.quiz-q-choice-remove:disabled{opacity:.3;cursor:not-allowed}.quiz-q-choice-add{color:#475569;cursor:pointer;background:0 0;border:1px dashed #cbd5e1;border-radius:6px;align-self:flex-start;padding:6px 12px;font-size:12px}.quiz-q-choice-add:hover:not(:disabled){background:#f8fafc;border-color:#94a3b8}.quiz-add-q{width:100%}.quiz-editor-publish{color:#334155;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{accent-color:#4f46e5;width:16px;height:16px}.quiz-publish-switch{cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;border:1.5px solid #e2e8f0;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{background:#eef2ff;border-color:#6366f1}.quiz-publish-switch input{opacity:0;width:0;height:0;position:absolute}.quiz-publish-switch-track{background:#cbd5e1;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:#6366f1}.quiz-publish-switch-thumb{background:#fff;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:#0f172a;font-size:14px}.quiz-publish-switch-hint{color:#64748b;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:#64748b;font-size:12px;font-weight:600}.cw-detail-title{color:#0f172a;margin:6px 0 8px;font-size:26px;font-weight:700}.cw-detail-summary{color:#475569;font-size:14px}.cw-detail-meta{color:#64748b;gap:6px;margin-top:10px;font-size:13px;display:flex}.cw-detail-meta strong{color:#0f172a}.cw-detail-body{flex-direction:column;gap:24px;display:flex}.cw-detail-section{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px}.cw-empty{text-align:center;background:#f8fafc;border:2px dashed #cbd5e1;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{background:#fff;border:1px solid #e2e8f0;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:#cbd5e1;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{color:#4338ca;background:#eef2ff;border-radius:8px;width:28px;height:28px;font-size:13px;font-weight:700}.cw-chapter-move,.cw-chapter-num{justify-content:center;align-items:center;display:inline-flex}.cw-chapter-move{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;width:26px;height:22px;font-size:12px}.cw-chapter-move:hover:not(:disabled){color:#0f172a;background:#f1f5f9;border-color:#cbd5e1}.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:#2563eb}.cw-chapter-title{color:#0f172a;align-items:center;gap:6px;font-size:15px;font-weight:600;display:flex}.cw-chapter-body:hover .cw-chapter-title:after{content:" →";color:#94a3b8}.cw-chapter-desc{color:#64748b;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:13px;overflow:hidden}.cw-chapter-meta{color:#94a3b8;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:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.chapter-section-head{background:linear-gradient(#f8fafc,#fff);border-bottom:1px solid #f1f5f9;padding:16px 18px 12px}.chapter-section-summary{color:#475569;background:#f1f5f9;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:#fafbfc;flex-direction:column;min-height:100vh;display:flex}.learn-topbar{z-index:20;background:#fff;border-bottom:1px solid #e7ebf4;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.learn-topbar-back{color:#475569;background:#f1f5f9;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;text-decoration:none;display:inline-flex}.learn-topbar-back:hover{color:#0f172a;background:#e2e8f0}.learn-topbar-info{flex:1;align-items:center;gap:6px;min-width:0;display:flex}.learn-topbar-subject{color:#64748b;font-size:13px}.learn-topbar-sep{color:#cbd5e1}.learn-topbar-title{color:#0f172a;font-size:14px;font-weight:600;text-decoration:none}.learn-topbar-title:hover{color:#2563eb}.learn-body{flex:1;min-height:calc(100vh - 53px);display:flex}.learn-sidebar{background:#fff;border-right:1px solid #e7ebf4;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 #f1f5f9;align-items:center;gap:8px;padding:12px;display:flex}.learn-sidebar-toggle{color:#475569;cursor:pointer;background:#f1f5f9;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.learn-sidebar-toggle:hover{color:#0f172a;background:#e2e8f0}.learn-sidebar-course-title{color:#0f172a;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:#94a3b8;padding:24px;font-size:13px}.learn-mod{border-bottom:1px solid #f1f5f9}.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:#f8fafc}.learn-mod-title{color:#0f172a;font-size:13px;font-weight:600}.learn-mod-chevron{color:#94a3b8;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:#cbd5e1;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:#f8fafc}.learn-item.is-active{background:#fef2f2;border-left-color:#ec4899}.learn-item-icon{background:#f1f5f9;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{color:#db2777;background:#fce7f3}.learn-item-body{flex:1;min-width:0}.learn-item-title{color:#0f172a;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:#94a3b8;margin-top:2px;font-size:11px;display:block}.learn-item-check{color:#10b981;font-weight:700}.learn-main{flex:1;min-width:0;max-width:1100px;padding:32px 40px}.learn-empty{text-align:center;color:#64748b;padding:60px 20px}.learn-content{background:#fff;border:1px solid #e7ebf4;border-radius:12px;overflow:hidden}.learn-content-head{border-bottom:1px solid #f1f5f9;padding:24px 28px 16px}.learn-content-eyebrow{color:#64748b;margin-bottom:6px;font-size:12px}.learn-content-title{color:#0f172a;font-size:22px;font-weight:700}.learn-content-desc{color:#475569;margin-top:8px;font-size:14px}.learn-content-body{padding:24px 28px}.learn-iframe{border:1px solid #e2e8f0;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{text-align:center;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:8px;padding:24px}.learn-nav{background:#f8fafc;border-top:1px solid #f1f5f9;justify-content:space-between;align-items:center;padding:16px 28px;display:flex}.course-outline{flex-direction:column;gap:10px;display:flex}.outline-module{background:#fff;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.outline-module[open]{border-color:#cbd5e1}.outline-module-head{cursor:pointer;color:#0f172a;background:#f8fafc;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:#f1f5f9}.outline-module-chevron{color:#94a3b8;font-size:14px;transition:transform .15s}.outline-module[open] .outline-module-chevron{transform:rotate(180deg)}.outline-module-desc{color:#64748b;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:hover{background:#f8fafc}.outline-item-icon{color:#64748b;background:#f1f5f9;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;display:inline-flex}.outline-item-body{flex:1;min-width:0}.outline-item-title{color:#0f172a;font-size:14px;font-weight:500;line-height:1.4;text-decoration:none;display:block}a.outline-item-title:hover{color:#2563eb;text-decoration:underline}.outline-item-meta{color:#94a3b8;margin-top:2px;font-size:12px;display:block}.class-members-grid-more{color:#64748b;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{color:#b91c1c;background:#fef2f2;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{color:#334155;background:#f1f5f9;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{color:#92400e;background:#fef3c7}.member-mgr-summary-pill--student{color:#1e40af;background:#dbeafe}.member-mgr-head-actions{gap:.4rem;display:flex}.member-mgr-import{border:1px solid var(--border);background:#f8fafc;border-radius:12px;flex-direction:column;gap:.85rem;padding:1rem 1.1rem;display:flex}.member-mgr-import-desc{color:#475569;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:#334155;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:#fff;border-radius:6px;padding:.45rem .65rem;font-family:inherit;font-size:.85rem}.member-mgr-import-textarea{border:1px solid var(--border);resize:vertical;background:#fff;border-radius:6px;padding:.55rem .7rem;font-family:ui-monospace,SF Mono,monospace;font-size:.8rem}.member-mgr-import-preview{border:1px solid var(--border);background:#fff;border-radius:8px;padding:.7rem .85rem}.member-mgr-import-preview-head{color:#475569;margin:0 0 .4rem;font-size:.8rem}.member-mgr-import-preview-list{color:#334155;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:#0f172a;font-size:.78rem}.member-mgr-import-preview-name{color:#64748b}.member-mgr-import-preview-more{color:#64748b;grid-column:1/-1;font-style:italic}.member-mgr-import-actions{gap:.4rem;display:flex}.member-mgr-import-result{border:1px solid var(--border);background:#fff;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{color:#065f46;background:#ecfdf5}.member-mgr-import-result-added{color:#1e40af;background:#dbeafe}.member-mgr-import-result-skipped{color:#475569;background:#f1f5f9}.member-mgr-import-result-error{color:#b91c1c;background:#fef2f2}.member-mgr-import-result-msg{opacity:.8}.member-mgr-analytics{border:1px solid var(--border);background:linear-gradient(135deg,#f8fafc,#f1f5f9);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:#0f172a;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{border:1px solid var(--border);background:#fff;border-radius:8px;gap:2px;padding:2px;display:inline-flex}.member-mgr-analytics-tab{font:inherit;color:#64748b;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:#fff}.member-mgr-mat-list{flex-direction:column;gap:.3rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.member-mgr-mat-row{border:1px solid var(--border);background:#fff;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);text-align:center;background:#eef2ff;border-radius:999px;padding:.1rem .5rem;font-size:.6875rem;font-weight:700}.member-mgr-mat-title{white-space:nowrap;text-overflow:ellipsis;color:#0f172a;font-weight:500;overflow:hidden}.member-mgr-mat-bar{background:#f1f5f9;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:#fca5a5}.member-mgr-mat-bar-fill.is-mid{background:#fcd34d}.member-mgr-mat-bar-fill.is-high{background:#86efac}.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:#fff;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{text-align:center;background:#fff;border:1px solid #e2e8f0;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:#f8fafc!important;padding:.3rem .5rem!important}.member-mgr-matrix-col{width:1.6rem;color:var(--muted);background:#f8fafc;font-size:.65rem;font-weight:700;padding:.25rem 0!important}.member-mgr-matrix-name{text-align:left;color:#0f172a;white-space:nowrap;text-overflow:ellipsis;z-index:1;min-width:8rem;font-weight:600;position:sticky;left:0;overflow:hidden;background:#f8fafc!important;padding:.3rem .55rem!important}.member-mgr-matrix-cell{color:#94a3b8;width:1.6rem;height:1.6rem}.member-mgr-matrix-cell.is-viewed{color:#15803d;background:#dcfce7;font-weight:700}.member-mgr-matrix-total,.member-mgr-matrix-totalcol{font-variant-numeric:tabular-nums;color:#0f172a;font-weight:700;background:#f8fafc!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:#fff;border-radius:8px;flex:1;min-width:220px;padding:.5rem .8rem;font-size:.9rem}.member-mgr-filter{border:1px solid var(--border);background:#fff;border-radius:999px;display:inline-flex;overflow:hidden}.member-mgr-filter-btn{color:#475569;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:#fff}.member-mgr-empty{text-align:center;color:#64748b;background:#f8fafc;border-radius:8px;margin:1rem 0;padding:1.25rem;font-size:.85rem}.member-mgr-table-wrap{border:1px solid var(--border);background:#fff;border-radius:10px;overflow-x:auto}.member-mgr-table{border-collapse:collapse;width:100%;font-size:.875rem}.member-mgr-table thead th{text-align:left;color:#475569;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);background:#f8fafc;padding:.65rem .85rem;font-size:.78rem;font-weight:700}.member-mgr-table tbody td{color:#0f172a;border-bottom:1px solid #f1f5f9;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:#4f46e5}.member-mgr-sort-th:focus-visible{outline-offset:2px;border-radius:4px;outline:2px solid #c7d2fe}.member-mgr-sort-ic{color:#cbd5e1;font-size:.7rem}.member-mgr-sort-ic.is-active{color:#4f46e5}.member-mgr-name{gap:.55rem}.member-mgr-avatar,.member-mgr-name{align-items:center;display:inline-flex}.member-mgr-avatar{color:#3730a3;background:#e0e7ff;border-radius:50%;justify-content:center;width:1.8rem;height:1.8rem;font-size:.85rem;font-weight:700}.member-mgr-avatar--teacher{color:#92400e;background:#fef3c7}.member-mgr-tag-me{color:var(--brand);font-size:.75rem;font-weight:600}.member-mgr-tag-owner{color:#92400e;margin-left:.2rem;font-size:.72rem;font-weight:600}.member-mgr-email a{color:#475569;text-decoration:none}.member-mgr-email a:hover{color:var(--brand);text-decoration:underline}.member-mgr-role-badge{color:#1e40af;background:#dbeafe;border-radius:999px;padding:.18rem .55rem;font-size:.7rem;font-weight:700;display:inline-block}.member-mgr-role-badge--teacher{color:#92400e;background:#fef3c7}.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{color:#b91c1c;background:#fff;border:1px solid #fca5a5}.btn.btn-danger-outline:hover{background:#fef2f2;border-color:#ef4444}.teacher-settings-nav-wrap{margin-bottom:1.5rem}.teacher-settings-nav-crumb{color:#64748b;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.8rem;display:flex}.teacher-settings-nav-crumb a{color:#475569;text-decoration:none}.teacher-settings-nav-crumb a:hover{color:var(--brand);text-decoration:underline}.teacher-settings-nav-crumb-sep{color:#cbd5e1}.teacher-settings-nav-crumb-tag{color:#64748b;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:#475569;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{color:#0f172a;background:#f8fafc}.teacher-settings-nav-tab--active{color:#0f172a;border-color:var(--border);background:#fff}.teacher-settings-nav-tab--active:after{content:"";background:#fff;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:#94a3b8;font-size:.72rem;font-weight:400}.teacher-settings-nav-tab--active .teacher-settings-nav-tab-desc{color:#64748b}.snippet-page-head{margin-top:.5rem}.block-cat-mgr{border:1px solid var(--border);background:#fff;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:#0f172a;margin:0;font-size:1.1rem;font-weight:700}.block-cat-mgr-desc{color:#64748b;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:#16a34a;font-size:.75rem;font-weight:600}.block-cat-mgr-status{color:#64748b;margin:0;padding:1rem;font-size:.85rem}.block-cat-mgr-error{color:#b91c1c;background:#fef2f2;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);color:#334155;cursor:pointer;background:#f8fafc;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{border-color:var(--brand);color:var(--brand);background:#eef2ff}.block-cat-mgr-tab--active{background:var(--brand);color:#fff;border-color:var(--brand)}.block-cat-mgr-tab--active .block-cat-mgr-tab-badge{color:#fff;background:#ffffff40}.block-cat-mgr-tab-badge{color:var(--brand);background:#e0e7ff;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:#475569;margin:0;font-size:.85rem}.block-cat-mgr-scope-hint{color:#94a3b8;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:#fafbfc;border-radius:10px;margin:0;padding:.85rem 1rem 1rem}.block-cat-mgr-group-title{color:#475569;background:#fafbfc;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:#fff;border-radius:8px;transition:border-color .12s,background .12s}.block-cat-mgr-item.is-checked{border-color:var(--brand);background:#eef2ff}.block-cat-mgr-item.is-locked{background:#fef9c3;border-color:#fcd34d}.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:#0f172a;font-weight:500;line-height:1.25}.block-cat-mgr-item-key{color:#94a3b8;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:#334155;font-size:.85rem;font-weight:500}.class-project-table-owner-tag{color:#92400e;background:#fef3c7;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{color:#0f172a;border:1px solid var(--border);z-index:1000;background:#fff;border-radius:14px;width:26rem;max-width:calc(100vw - 2rem);padding:.85rem;position:fixed;box-shadow:0 18px 50px #0f172a38}.quick-create-header{color:#64748b;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:#fff;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:#475569;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:#f8fafc;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);color:var(--brand);background:#eef2ff;font-weight:600}.quick-create-error{color:#b91c1c;background:#fef2f2;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;color:#334155;cursor:pointer;background:0 0;border:0;border-radius:8px;width:100%;padding:.45rem .6rem;font-size:.78rem;font-weight:600;display:block}.quick-create-detail:hover:not(:disabled){color:var(--brand);background:#f1f5f9}.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:#fff;--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{color:#fff;border-radius:20px;flex-direction:column;justify-content:space-between;min-height:220px;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,#a78bfa,#6366f1)}.lp-bento-card--blue{background:linear-gradient(135deg,#60a5fa,#2563eb)}.lp-bento-card--orange{background:linear-gradient(135deg,#fbbf24,#f97316)}.lp-bento-card--pink{background:linear-gradient(135deg,#f472b6,#db2777)}.lp-bento-card--green{background:linear-gradient(135deg,#4ade80,#059669)}@media (prefers-reduced-motion:reduce){.lp-bento-card,.lp-bento-card:hover{transition:none;transform:none}}@keyframes login-v2-blob{0%,to{transform:translate(0)scale(1)}33%{transform:translate(30px,-50px)scale(1.1)}66%{transform:translate(-20px,20px)scale(.9)}}@keyframes login-v2-spin{to{transform:rotate(1turn)}}.login-v2{background:#fff;flex-direction:column;min-height:100vh;display:flex}@media (min-width:1024px){.login-v2{flex-direction:row}}.login-v2-hero{color:#fff;background:linear-gradient(135deg,#0f172a,#581c87 50%,#0f172a);flex:1;justify-content:center;align-items:center;padding:48px;display:none;position:relative;overflow:hidden}@media (min-width:1024px){.login-v2-hero{display:flex}}.login-v2-blob{filter:blur(48px);mix-blend-mode:screen;opacity:.55;pointer-events:none;border-radius:50%;width:320px;height:320px;animation:login-v2-blob 18s ease-in-out infinite;position:absolute}.login-v2-blob--a{background:#a855f7;top:-40px;left:-40px}.login-v2-blob--b{background:#22d3ee;animation-delay:-6s;top:-40px;right:-40px}.login-v2-blob--c{background:#6366f1;animation-delay:-12s;bottom:-60px;left:80px}.login-v2-hero-inner{z-index:1;text-align:center;max-width:440px;position:relative}.login-v2-icon-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;background:#ffffff1f;border-radius:999px;justify-content:center;align-items:center;margin-bottom:24px;padding:16px;display:inline-flex}.login-v2-hero-title{color:#fff;margin:0 0 16px;font-size:clamp(1.85rem,3.5vw,2.4rem);font-weight:700;line-height:1.25}.login-v2-hero-desc{color:#ffffffd1;margin:0 0 8px;font-size:1rem;line-height:1.6}.login-v2-progress{justify-content:center;gap:8px;margin-top:24px;display:flex}.login-v2-progress-dot{background:#ffffff59;border-radius:50%;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{background:#fff;flex:1;justify-content:center;align-items:center;padding:32px 24px;display:flex}@media (min-width:640px){.login-v2-form-wrap{padding:48px}}.login-v2-form-inner{width:100%;max-width:420px}.login-v2-form-header{text-align:center;margin-bottom:28px}.login-v2-title{letter-spacing:-.02em;color:#0f172a;margin:0 0 8px;font-size:1.75rem;font-weight:700}.login-v2-subtitle{color:#64748b;margin:0;font-size:.95rem}.login-v2-card{background:#fff;border:1px solid #e2e8f0;border-radius:14px;padding:24px;box-shadow:0 1px 2px #0f172a0a}@media (min-width:640px){.login-v2-card{padding:32px}}.login-v2-notice{color:#1e40af;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;margin:0 0 16px;padding:10px 14px;font-size:.9rem}.login-v2-notice--warn{color:#92400e;background:#fffbeb;border-color:#fde68a}.login-v2-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:0 0 16px;padding:10px 14px;font-size:.9rem}.login-v2-form{gap:18px}.login-v2-field,.login-v2-form{flex-direction:column;display:flex}.login-v2-field{gap:8px}.login-v2-label{color:#0f172a;font-size:.875rem;font-weight:500}.login-v2-input-wrap{position:relative}.login-v2-input-icon{color:#94a3b8;pointer-events:none;width:16px;height:16px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.login-v2-input{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:100%;height:44px;padding:0 12px 0 40px;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.login-v2-input::placeholder{color:#94a3b8}.login-v2-input:focus{border-color:#a855f7;outline:none;box-shadow:0 0 0 3px #a855f72e}.login-v2-input:disabled{cursor:not-allowed;background:#f8fafc}.login-v2-input--with-toggle{padding-right:44px}.login-v2-toggle{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;transition:color .2s,background .2s;display:inline-flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.login-v2-toggle:hover{color:#0f172a;background:#f1f5f9}.login-v2-row{justify-content:flex-end;align-items:center;font-size:.875rem;display:flex}.login-v2-link{color:#7c3aed;font-weight:500;text-decoration:none;transition:opacity .2s}.login-v2-link:hover{opacity:.8}.login-v2-submit{color:#f8fafc;cursor:pointer;background:#0f172a;border:1px solid #0f172a;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:100%;height:44px;font-size:.95rem;font-weight:600;transition:background .15s;display:inline-flex}.login-v2-submit:hover:not(:disabled){background:#1e293b}.login-v2-submit:disabled{opacity:.7;cursor:not-allowed}.login-v2-spinner{border:2px solid #f8fafc66;border-top-color:#f8fafc;border-radius:50%;width:16px;height:16px;animation:login-v2-spin .8s linear infinite}.login-v2-footer-links{color:#64748b;flex-wrap:wrap;justify-content:center;gap:6px 10px;margin:24px 0 0;font-size:.85rem;display:flex}.login-v2-footer-links a{color:#475569;text-decoration:none}.login-v2-footer-links a:hover{color:#0f172a;text-decoration:underline}.login-v2-input--error{border-color:#fca5a5!important;box-shadow:0 0 0 3px #f871712e!important}.login-v2-field-hint{color:#64748b;margin:.3rem 0 0;font-size:.75rem}.login-v2-field-hint--error{color:#b91c1c}.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:#e2e8f0;border-radius:999px;flex:1;height:4px;transition:background .15s}.login-v2-strength--1 .login-v2-strength-bars>span:nth-child(-n+1){background:#f87171}.login-v2-strength--2 .login-v2-strength-bars>span:nth-child(-n+2){background:#fbbf24}.login-v2-strength--3 .login-v2-strength-bars>span{background:#34d399}.login-v2-strength-label{color:#64748b;letter-spacing:-.005em;white-space:nowrap;font-size:.6875rem;font-weight:600}.login-v2-strength--1 .login-v2-strength-label{color:#b91c1c}.login-v2-strength--2 .login-v2-strength-label{color:#b45309}.login-v2-strength--3 .login-v2-strength-label{color:#047857}.login-v2-terms{color:#94a3b8;text-align:center;margin:.75rem 0 0;font-size:.75rem;line-height:1.55}.login-v2-terms a{color:#475569;text-underline-offset:2px;text-decoration:underline}.login-v2-terms a:hover{color:#0f172a}@media (prefers-reduced-motion:reduce){.login-v2-blob,.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:#64748b;margin:0 0 .25rem;font-size:.8125rem}.compose-page-crumbs a{color:#475569;text-decoration:none}.compose-page-crumbs a:hover{color:#0f172a;text-decoration:underline}.compose-page-title{color:#0f172a;margin:0;font-size:1.375rem;font-weight:700}.compose-page-pair-hint{color:#0e7490;background:#ecfeff;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);color:#0f172a;background:#fff;border-radius:10px;width:100%;padding:.65rem .85rem;font-size:1.125rem;font-weight:600}.compose-page-titleinput:focus{border-color:#6366f1;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{color:#475569;margin:revert;border-left:4px solid #cbd5e1;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 #e2e8f0;margin:.75rem 0}.jodit-wysiwyg table{border-collapse:collapse}.jodit-wysiwyg table td,.jodit-wysiwyg table th{border:1px solid #cbd5e1;padding:.25rem .5rem}.jodit-wysiwyg a{color:#2563eb;text-decoration:underline}.jodit-wysiwyg pre{color:#f8fafc;white-space:pre;background:#0f172a;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{color:#be185d;background:#f1f5f9;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:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin:.5rem 0 0;padding:.5rem .75rem;font-size:.875rem}.edit-richtext-redirect{margin:.75rem 0}.edit-richtext-redirect-label{color:#475569;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:#ecfeff;color:#0e7490!important;border-color:#67e8f9!important}.morphing-spinner-shape{background:#0f172a;border-radius:50%;animation:morphing-spinner 3s ease-in-out infinite}@keyframes morphing-spinner{0%{border-radius:50%;transform:scale(1)rotate(0)}20%{border-radius:35%;transform:scale(.9)rotate(72deg)}40%{border-radius:15%;transform:scale(1.1)rotate(144deg)}60%{border-radius:8%;transform:scale(.85)rotate(216deg)}80%{border-radius:25%;transform:scale(1.05)rotate(288deg)}to{border-radius:50%;transform:scale(1)rotate(1turn)}}@media (prefers-reduced-motion:reduce){.morphing-spinner-shape{animation:none}}.driver-active .driver-overlay{fill:#0f172a!important}.driver-popover.hypy-tour-popover{color:#0f172a;background:#fff;border:1px solid #e2e8f0;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:#0f172a;letter-spacing:-.01em;margin:0 0 .5rem;font-size:1.05rem;font-weight:800}.driver-popover.hypy-tour-popover .driver-popover-description{color:#475569;font-size:.875rem;line-height:1.6}.driver-popover.hypy-tour-popover .driver-popover-progress-text{color:#94a3b8;letter-spacing:.04em;font-size:.6875rem;font-weight:700}.driver-popover.hypy-tour-popover .driver-popover-footer{border-top:1px solid #f1f5f9;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{cursor:pointer;text-shadow:none;background-image:none;border:0;border-radius:9px;padding:.45rem .85rem;font-size:.8125rem;font-weight:700;transition:transform .1s,background .12s,box-shadow .12s}.driver-popover.hypy-tour-popover .driver-popover-prev-btn{color:#475569;background:#f1f5f9}.driver-popover.hypy-tour-popover .driver-popover-prev-btn:hover{color:#0f172a;background:#e2e8f0}.driver-popover.hypy-tour-popover .driver-popover-close-btn{color:#475569;cursor:pointer;background:#fff;border:1.5px solid #cbd5e1;border-radius:9px;align-items:center;gap:.25rem;width:auto;height:auto;margin-right:auto;padding:.5rem .95rem;font-size:.8125rem;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:before{content:"↷";font-size:.95rem;line-height:1}.driver-popover.hypy-tour-popover .driver-popover-close-btn:hover{color:#0f172a;background:#f8fafc;border-color:#94a3b8;transform:translateY(-1px)}.driver-popover.hypy-tour-popover .driver-popover-next-btn{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);box-shadow:0 4px 12px -4px #6366f180}.driver-popover.hypy-tour-popover .driver-popover-next-btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px -4px #6366f199}.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:#0f172a;margin:0 0 .3rem;font-size:1rem;font-weight:700}.profile-help-desc{color:#64748b;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{color:#94a3b8;background:#e2e8f0}.quizp-progress-dot--answered{color:#fff;background:linear-gradient(135deg,#c4b5fd,#a78bfa)}.quizp-progress-dot--current{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);transform:scale(1.06);box-shadow:0 0 0 3px #6366f12e}.quizp-progress-dot--correct{color:#fff;background:linear-gradient(135deg,#34d399,#10b981)}.quizp-progress-dot--wrong{color:#fff;background:linear-gradient(135deg,#f87171,#ef4444)}.quizp-progress-dot:hover{transform:translateY(-1px)scale(1.04)}.quizp-summary{background:linear-gradient(135deg,#f0f9ff,#ede9fe);border:1px solid #c7d2fe;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:#4338ca;letter-spacing:-.02em;font-size:1.75rem;font-weight:800;line-height:1}.quizp-summary-score-of{color:#6366f1;font-size:.875rem;font-weight:600}.quizp-summary-meta{color:#475569;flex:auto;font-size:.875rem}.quizp-summary-meta strong{color:#0f172a;font-weight:800}.quizp-card{background:#fff;border:1px solid #e2e8f0;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:#6366f1;letter-spacing:-.02em;font-size:1.5rem;font-weight:800;line-height:1}.quizp-card-points{color:#4338ca;background:#eef2ff;border-radius:999px;padding:.2rem .55rem;font-size:.75rem;font-weight:700}.quizp-card-prompt{color:#0f172a;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{cursor:pointer;background:#f8fafc;border:1.5px solid #e2e8f0;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:#f1f5f9;border-color:#cbd5e1}.quizp-choice input[type=radio]{opacity:0;pointer-events:none;position:absolute}.quizp-choice-num{color:#64748b;background:#fff;border:1px solid #cbd5e1;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;font-size:.8125rem;font-weight:700;display:inline-flex}.quizp-choice-text{color:#0f172a;flex:auto;font-size:.9375rem;line-height:1.55}.quizp-choice--selected{background:#eef2ff;border-color:#818cf8}.quizp-choice--selected .quizp-choice-num{color:#fff;background:#6366f1;border-color:#6366f1}.quizp-choice--correct{background:#ecfdf5;border-color:#34d399}.quizp-choice--correct .quizp-choice-num{color:#fff;background:#10b981;border-color:#10b981}.quizp-choice--wrong{background:#fef2f2;border-color:#f87171}.quizp-choice--wrong .quizp-choice-num{color:#fff;background:#ef4444;border-color:#ef4444}.quizp-choice--inactive{opacity:.65;cursor:default}.quizp-explain{background:#f1f5f9;border-left:3px solid #6366f1;border-radius:0 10px 10px 0;padding:.85rem 1rem}.quizp-explain-label{letter-spacing:.04em;color:#4338ca;background:#dbeafe;border-radius:999px;margin-bottom:.5rem;padding:.15rem .55rem;font-size:.6875rem;font-weight:800;display:inline-block}.quizp-explain-text{color:#334155;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:#ecfdf5;border-color:#6ee7b7}.quizp-feedback--wrong{background:#fef2f2;border-color:#fca5a5}.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,#10b981,#059669)}.quizp-feedback--wrong .quizp-feedback-icon{background:linear-gradient(135deg,#ef4444,#dc2626)}.quizp-feedback-title{letter-spacing:-.01em;margin:0;font-size:1rem;font-weight:800}.quizp-feedback--correct .quizp-feedback-title{color:#047857}.quizp-feedback--wrong .quizp-feedback-title{color:#b91c1c}.quizp-feedback-msg{color:#475569;margin:.15rem 0 0;font-size:.8125rem}.quizp-feedback-actions{gap:.4rem;display:flex}.quizp-empty{text-align:center;color:#64748b;background:#f8fafc;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 #e2e8f0;flex-direction:column;gap:.35rem;margin-top:.85rem;padding-top:.85rem;display:flex}.quiz-q-explanation-label{color:#475569;letter-spacing:-.005em;font-size:.75rem;font-weight:700}.quiz-q-explanation-optional{color:#94a3b8;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:#f1f5f9}.mobile-nav-btn-icon{width:18px;height:14px;display:inline-block;position:relative}.mobile-nav-btn-icon>span{background:#0f172a;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,#ecfeff 0,#0000 60%),radial-gradient(120% 100% at 100% 100%,#fef3c7 0,#0000 55%),linear-gradient(#fff,#fafaff);border:1px solid #e2e8f0;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{color:#fff;background:linear-gradient(135deg,#0ea5e9,#6366f1);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:#0f172a;letter-spacing:-.02em;margin:0;font-size:1.5rem;font-weight:800}.admin-hero-sub{color:#64748b;margin:.3rem 0 0;font-size:.875rem}.admin-hero-alert{color:#b45309;background:#fff;border:1.5px solid #fbbf24;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:#fffbeb;transform:translateY(-1px)}.admin-hero-alert strong{color:#92400e}.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{color:inherit;background:#fff;border:1px solid #e2e8f0;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:#c7d2fe;transform:translateY(-1px);box-shadow:0 4px 14px -6px #6366f140}.admin-stat-pill--static{cursor:default}.admin-stat-pill-icon{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);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:#0f172a;letter-spacing:-.02em;font-size:1.375rem;font-weight:800;line-height:1}.admin-stat-pill-of{color:#94a3b8;margin-left:.2rem;font-size:.8125rem;font-weight:600}.admin-stat-pill-label{color:#64748b;letter-spacing:-.005em;font-size:.6875rem;font-weight:600}.admin-section{margin-bottom:1.5rem}.admin-section-title{color:#0f172a;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{color:inherit;background:#fff;border:1px solid #e2e8f0;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:#818cf8}.admin-tool-card--emerald:hover{border-color:#34d399}.admin-tool-card--blue:hover{border-color:#60a5fa}.admin-tool-card--amber:hover{border-color:#fbbf24}.admin-tool-card--alert{background:linear-gradient(135deg,#fffbeb,#fff);border-color:#fbbf24}.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:#eef2ff}.admin-tool-card--emerald .admin-tool-icon{background:#ecfdf5}.admin-tool-card--blue .admin-tool-icon{background:#eff6ff}.admin-tool-card--amber .admin-tool-icon{background:#fef3c7}.admin-tool-body{flex-direction:column;flex:auto;gap:.15rem;min-width:0;display:flex}.admin-tool-title{color:#0f172a;letter-spacing:-.005em;align-items:center;gap:.4rem;font-size:.9375rem;font-weight:700;display:inline-flex}.admin-tool-pill{color:#fff;letter-spacing:0;background:#ef4444;border-radius:999px;padding:1px 7px;font-size:.6875rem;font-weight:800}.admin-tool-pill--muted{color:#475569;background:#e2e8f0}.admin-tool-desc{color:#64748b;font-size:.75rem;line-height:1.55}.admin-tool-arrow{color:#cbd5e1;flex-shrink:0;font-weight:700}.admin-tool-card:hover .admin-tool-arrow{color:#0f172a}.cw-row{background:#fff;border:1px solid #e2e8f0;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:#cbd5e1;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,#f1f5f9,#e2e8f0);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:#0f172a;align-items:center;gap:.4rem;margin:0;font-size:.9375rem;font-weight:700;display:inline-flex}.cw-row-title-arrow{color:#cbd5e1;transition:color .12s,transform .12s}.cw-row-main:hover .cw-row-title-arrow{color:#2563eb;transform:translate(2px)}.cw-row-summary{color:#475569;-webkit-line-clamp:1;-webkit-box-orient:vertical;margin:.2rem 0 0;font-size:.8125rem;display:-webkit-box;overflow:hidden}.cw-row-meta{color:#64748b;flex-wrap:wrap;align-items:center;gap:.45rem;margin:.35rem 0 0;font-size:.75rem;display:flex}.cw-row-meta-pub{color:#047857;font-weight:600}.cw-row-meta-draft{color:#94a3b8;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,#f8fafc,#f1f5f9);border:1px dashed #cbd5e1;border-radius:12px;flex-direction:column;gap:.55rem;padding:.85rem;display:flex}.material-draft-project-create-label{color:#475569;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:#b91c1c;margin:0;font-size:.75rem}.material-draft-project-create-success{color:#047857;background:#ecfdf5;border:1px solid #6ee7b7;border-radius:8px;margin:0;padding:.4rem .6rem;font-size:.75rem}.material-draft-project-select-label{color:#475569;font-size:.75rem;font-weight:700}.class-project-inline-edit{color:#94a3b8;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{color:#4338ca;background:#eef2ff}.class-project-inline-input{color:#0f172a;background:#fff;border:1px solid #818cf8;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:#6366f1;margin-left:.4rem;font-size:.6875rem;font-weight:600}.admin-hero-greet{color:#64748b;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:#047857;vertical-align:middle;background:#d1fae5;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{color:#6366f1;font-size:.75rem;font-weight:600;text-decoration:none}.admin-section-more:hover{color:#4338ca}.admin-section-meta{color:#94a3b8;font-size:.6875rem;font-weight:600}.admin-empty{color:#94a3b8;text-align:center;background:#fff;border:1px dashed #e2e8f0;border-radius:12px;margin:0;padding:1.25rem;font-size:.8125rem}.admin-list{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.admin-list-row{border-top:1px solid #f1f5f9;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:#fafbff}.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,#6366f1,#8b5cf6)}.admin-list-avatar--teacher{background:linear-gradient(135deg,#f59e0b,#ea580c)}.admin-list-avatar--superadmin{background:linear-gradient(135deg,#0f172a,#1e293b)}.admin-list-avatar--pending{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.admin-list-avatar--cw{background:linear-gradient(135deg,#06b6d4,#0284c7);font-size:1.1rem}.admin-list-avatar--class{background:linear-gradient(135deg,#ec4899,#db2777);font-size:1.1rem}.admin-list-body{flex:auto;min-width:0}.admin-list-title{color:#0f172a;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:#2563eb}.admin-list-sub{color:#64748b;white-space:nowrap;text-overflow:ellipsis;margin:.1rem 0 0;font-size:.75rem;overflow:hidden}.admin-list-role{color:#475569;font-weight:600}.admin-list-time{color:#94a3b8;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{color:#047857;background:#d1fae5}.admin-list-pill--draft{color:#94a3b8;background:#f1f5f9}.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{color:inherit;background:#fff;border:1.5px solid #e2e8f0;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{background:linear-gradient(135deg,#fffbeb,#fff);border-color:#fbbf24}.admin-todo-card--info{cursor:default;background:linear-gradient(135deg,#eff6ff,#fff);border-color:#93c5fd}.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:#0f172a;margin:0;font-size:.9375rem}.admin-todo-title strong{color:#b45309;font-weight:800}.admin-todo-card--info .admin-todo-title strong{color:#1d4ed8}.admin-todo-desc{color:#475569;margin:.15rem 0 0;font-size:.75rem}.admin-todo-cta{color:#b45309;white-space:nowrap;flex-shrink:0;font-size:.8125rem;font-weight:700}.admin-footer-note{color:#94a3b8;text-align:center;margin:1rem 0 0;font-size:.75rem}.admin-footer-note strong{color:#475569;font-weight:700}.quizp-timer{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;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:#64748b;font-size:12px;font-weight:500}.quizp-timer--danger{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.quizp-gate{text-align:center;background:#fff;border:1px solid #e2e8f0;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:#0f172a;margin:0;font-size:19px;font-weight:700}.quizp-gate-msg{color:#475569;max-width:42ch;margin:0;line-height:1.6}.quizp-gate-meta{color:#94a3b8;margin:0;font-size:13px}.quizp-gate-list{text-align:left;color:#334155;box-sizing:border-box;background:#f8fafc;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{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px}.quizp-review-q{color:#0f172a;white-space:pre-wrap;font-size:14px;font-weight:600;line-height:1.5}.quizp-review-a{color:#475569;margin-top:6px;font-size:13.5px}.quizp-review-a b{color:#1d4ed8;font-weight:600}.quizp-review-empty{color:#94a3b8}.quizp-gate--waiting{background:#f5f3ff;border-color:#c4b5fd}.quizp-waiting-icon{margin-bottom:6px;font-size:40px}.quizp-waiting-countdown{background:#fff;border:1px solid #ddd6fe;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:#7c3aed;letter-spacing:.04em;font-size:12px;font-weight:700}.quizp-waiting-countdown-time{color:#5b21b6;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-size:38px;font-weight:800;line-height:1.1}.quizp-card-type{color:#6366f1;background:#eef2ff;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 #e2e8f0;border-radius:10px;outline:none;width:100%;padding:12px 14px;font-size:15px}.quizp-shortanswer-input:focus{border-color:#6366f1}.quizp-shortanswer-input:disabled{color:#334155;background:#f1f5f9}.quizp-sa-result{border-radius:8px;margin-top:10px;padding:10px 12px;font-size:14px}.quizp-sa-result--correct{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.quizp-sa-result--wrong{color:#991b1b;background:#fef2f2;border:1px solid #fecaca}.quizp-sa-correct{margin-top:4px;font-weight:600}.quiz-q-type-select{background:#fff;border:1px solid #cbd5e1;border-radius:8px;margin-left:8px;padding:3px 8px;font-size:13px}.quiz-exam-settings{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;gap:10px;margin-top:10px;padding:12px;display:flex}.quiz-q-casesensitive{color:#475569;align-items:center;gap:6px;margin-top:6px;font-size:13px;display:inline-flex}.quiz-q-ans-mark{color:#16a34a;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:#64748b;border-bottom:1px solid #e2e8f0;padding:8px 10px;font-size:12px}.quiz-grading-table td{vertical-align:top;border-bottom:1px solid #f1f5f9;padding:10px}.quiz-grading-row--empty{opacity:.6}.quiz-grading-name{color:#0f172a;font-weight:600}.quiz-grading-email{color:#94a3b8;font-size:12px}.quiz-grading-chip{color:#64748b;background:#f1f5f9;border-radius:999px;padding:2px 8px;font-size:12px}.quiz-grading-chip--ok{color:#166534;background:#dcfce7}.quiz-grading-chip--released{color:#1d4ed8;background:#dbeafe}.quiz-grading-actions{white-space:nowrap;flex-wrap:wrap;gap:6px;display:flex}.quiz-grading-reset-btn{color:#b45309;background:#fff;border:1px solid #fde68a}.quiz-grading-reset-btn:hover:not(:disabled){background:#fffbeb}.quiz-grading-detail{background:#f8fafc;border-radius:10px;flex-direction:column;gap:12px;padding:14px;display:flex}.quiz-grading-q{border-bottom:1px dashed #e2e8f0;border-left:3px solid #0000;border-radius:6px;padding:8px 10px 10px}.quiz-grading-q--correct{background:#f0fdf4;border-left-color:#22c55e}.quiz-grading-q--wrong{background:#fef2f2;border-left-color:#ef4444}.quiz-grading-q--partial{background:#fffbeb;border-left-color:#f59e0b}.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:#334155;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{color:#15803d;background:#dcfce7}.quiz-grading-mark--no{color:#b91c1c;background:#fee2e2}.quiz-grading-mark--partial{color:#b45309;background:#fef3c7}.quiz-grading-partial{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.quiz-grading-partial-label{color:#475569;font-size:12px;font-weight:700}.quiz-grading-partial-input{text-align:right;border:1px solid #cbd5e1;border-radius:8px;width:70px;padding:5px 8px;font-size:13px}.quiz-grading-partial-input:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f11f}.quiz-grading-partial-max{color:#64748b;font-size:12px}.quiz-grading-ans{color:#0f172a}.quiz-grading-ans--wrong{color:#b91c1c}.quiz-grading-correct-line{color:#15803d;font-weight:600}.quiz-grading-wrong-count{color:#b91c1c;white-space:nowrap;background:#fee2e2;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:#64748b;flex-direction:column;gap:3px;font-size:12px;display:flex}.quiz-grading-score-input input{border:1px solid #cbd5e1;border-radius:8px;width:120px;padding:6px 10px}.quiz-editor-section-head-right{align-items:center;gap:10px;display:flex}.quiz-md-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:14px;padding:14px}.quiz-md-help{color:#475569;margin-bottom:8px;font-size:12.5px;line-height:1.7}.quiz-md-help code{color:#0f172a;background:#e2e8f0;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:#4338ca;background:#f8fafc;border:1px dashed #c7d2fe;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:#eef2ff}.quiz-q-image-preview{flex-direction:column;align-items:flex-start;gap:6px;display:inline-flex}.quiz-q-image-preview img{object-fit:contain;border:1px solid #e2e8f0;border-radius:10px;max-width:min(420px,100%);max-height:280px}.quiz-q-image-remove{color:#b91c1c;cursor:pointer;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:2px 10px;font-size:12px}.quizp-card-image{object-fit:contain;border:1px solid #e2e8f0;border-radius:12px;max-width:100%;max-height:420px;margin:4px 0 12px;display:block}.lesson-quiz-teacher-q-image,.quiz-grading-q-image{object-fit:contain;border:1px solid #e2e8f0;border-radius:8px;max-width:min(360px,100%);max-height:240px;margin:6px 0;display:block}.quiz-bulk-points-row{background:#f8fafc;border:1px solid #e2e8f0;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:#334155;font-size:13px;font-weight:700}.quiz-bulk-points-row-unit{color:#64748b;font-size:13px}.quiz-bulk-points-row-hint{color:#94a3b8;flex-basis:100%;font-size:12px}.quiz-bulk-points-input{border:1px solid #cbd5e1;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,#e2e8f0);justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:10px 0 14px;display:flex}.lesson-quiz-compose-head strong{color:#0f172a;font-size:16px}.quiz-md-examples{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.quiz-md-examples-label{color:#64748b;font-size:12px;font-weight:600}.quiz-md-example-chip{color:#4338ca;cursor:pointer;background:#eef2ff;border:1px solid #e0e7ff;border-radius:999px;padding:3px 11px;font-size:12px;font-weight:600}.quiz-md-example-chip:hover{background:#e0e7ff}.quiz-md-ai{background:#fbfcff;border:1px dashed #c7d2fe;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:#3730a3;background:0 0;border:none;flex:1;padding:0;font-size:13px;font-weight:700}.quiz-md-ai-hint{color:#64748b;margin-top:6px;font-size:12px;line-height:1.6}.quiz-md-ai-hint code{color:#0f172a;background:#e2e8f0;border-radius:4px;padding:0 5px;font-size:11.5px}.quiz-md-prompt-box{resize:vertical;background:#fff;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:#3730a3;flex:1;font-size:13px;font-weight:700}.quiz-md-help-title{color:#334155;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:#475569;border-bottom:1px solid #eef2f7;padding:4px 8px}.quiz-md-spec td:first-child{white-space:nowrap;color:#0f172a;width:1%}.quiz-md-spec code{color:#0f172a;background:#e2e8f0;border-radius:5px;padding:1px 6px;font-size:11.5px;font-weight:600}.quiz-md-spec-hl{font-weight:700;color:#15803d!important}.quiz-exam-legend{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-top:4px;padding:10px 12px}.quiz-exam-legend-title{color:#334155;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:#475569;padding-left:14px;font-size:12px;line-height:1.5;position:relative}.quiz-exam-legend li:before{content:"·";color:#94a3b8;position:absolute;left:4px}.quiz-exam-legend-note{color:#94a3b8;margin-top:6px;font-size:11.5px}.scroll-to-top{z-index:1200;color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:50%;justify-content:center;align-items:center;width:46px;height:46px;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:#1d4ed8;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:#6366f1;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{color:#e2e8f0;white-space:pre-wrap;word-break:break-word;background:#0f172a;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:#475569;margin-bottom:4px;font-size:12px;font-weight:600;display:block}.quiz-q-code-hint{color:#94a3b8;font-weight:400}.quiz-q-code-input{box-sizing:border-box;resize:vertical;color:#e2e8f0;white-space:pre;background:#0f172a;border:1px solid #334155;border-radius:8px;width:100%;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:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f133}.quiz-q-code-input::placeholder{color:#64748b}.quizp-blank{color:#fff;vertical-align:baseline;background:#1e293b;border:1px solid #475569;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{background:#052e1a;border-color:#22c55e}.quizp-blank.is-wrong{background:#3b0a0a;border-color:#ef4444}.quizp-blank-correct{color:#4ade80;font-size:12px}.pyrun{margin-top:10px}.pyrun-bar{gap:8px;margin-bottom:8px;display:flex}.pyrun-output{color:#d1fae5;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:#e2e8f0;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{background:#f8fafc;border:1px solid #e2e8f0;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:#6366f1;background:#eef2ff;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:11px;font-weight:700}.lesson-quiz-teacher-q-answer{color:#334155;margin-top:4px;font-size:13px}.lesson-quiz-teacher-code{color:#e2e8f0;white-space:pre-wrap;background:#0f172a;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:#16a34a;font-weight:600}.quizp-blank-input{color:#fde68a;font-family:inherit;font-size:inherit;vertical-align:baseline;background:#1e293b;border:1px solid #64748b;border-radius:5px;min-width:3ch;margin:0 1px;padding:0 6px;line-height:1.5;display:inline-block}.quizp-blank-input::placeholder{color:#94a3b8}.quizp-blank-input:focus{background:#0b1220;border-color:#38bdf8;outline:none}.quizp-blank-input:disabled{opacity:.95}.quizp-blank-input.is-correct{color:#86efac;border-color:#22c55e}.quizp-blank-input.is-wrong{color:#fca5a5;border-color:#ef4444}.quizp-run-after{border-top:1px dashed #e2e8f0;margin-top:12px;padding-top:12px}.quizp-run-after-label{color:#475569;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:#f1f5f9;border-radius:10px;flex-wrap:wrap;gap:3px;padding:3px;display:inline-flex}.quiz-q-type-chip{color:#64748b;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:#334155}.quiz-q-type-chip.is-active{color:#2563eb;background:#fff;box-shadow:0 1px 3px #0f172a24}.quiz-add-bar{border-top:1px dashed #e2e8f0;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;padding-top:14px;display:flex}.quiz-add-bar-label{color:#475569;margin-right:2px;font-size:13px;font-weight:700}.quiz-add-chip{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:6px 13px;font-size:13px;font-weight:600;transition:all .12s}.quiz-add-chip:hover:not(:disabled){color:#2563eb;background:#eff6ff;border-color:#2563eb;transform:translateY(-1px)}.quiz-add-chip:disabled{opacity:.5;cursor:default}.assignment-code-view{color:#e2e8f0;white-space:pre-wrap;word-break:break-word;background:#0f172a;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:#fff;border:1px solid #e2e8f0;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:#0f172a;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:#eff6ff}.assignment-create-item span{color:#64748b;margin-left:auto;font-size:12px}.quiz-grading-control{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;padding:8px 12px;display:flex}.quiz-grading-control-label{color:#334155;font-size:13px;font-weight:700}.quiz-grading-control-btns{flex-wrap:wrap;gap:6px;display:flex}.quiz-grading-control-check{color:#475569;align-items:center;gap:5px;font-size:13px;display:inline-flex}.quiz-grading-bulk-input{border:1px solid #cbd5e1;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{cursor:pointer;color:#b91c1c;background:#fff;border:1px solid #cbd5e1;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:700}.unit-vis-toggle.is-open{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.unit-vis-sched{color:#64748b;align-items:center;gap:6px;font-size:12px;display:inline-flex}.unit-vis-sched input{border:1px solid #cbd5e1;border-radius:8px;padding:4px 8px;font-size:12px}.unit-vis-clear{cursor:pointer;color:#64748b;background:#f1f5f9;border:none;border-radius:6px;padding:2px 6px}.unit-publish-row{color:#334155;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:#0f172a;font-size:22px;font-weight:800}.exam-ws-status{color:#334155;background:#f1f5f9;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.exam-ws-attempts{color:#64748b;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,#e2e8f0);background:var(--card,#fff);border-radius:12px;flex-wrap:wrap;gap:10px;padding:10px 14px}.exam-monitor-stat{color:#334155;font-size:14px;font-weight:600}.exam-monitor-stat b{font-size:16px;font-weight:800}.exam-monitor-stat--done b{color:#15803d}.exam-monitor-stat--prog b{color:#b45309}.exam-monitor-stat--none b{color:#64748b}.exam-monitor-total{color:#64748b;font-size:12.5px}.exam-monitor-bar{background:#e2e8f0;border-radius:999px;flex:1;min-width:80px;height:8px;overflow:hidden}.exam-monitor-bar-fill{background:#22c55e;height:100%;transition:width .4s;display:block}.exam-monitor-live{color:#15803d;white-space:nowrap;font-size:11px;font-weight:700}.exam-ws-hint{color:#3730a3;background:#eef2ff;border:1px solid #e0e7ff;border-radius:10px;padding:8px 12px;font-size:12.5px;line-height:1.6}.exam-ws-tabs{border-bottom:2px solid #e2e8f0;gap:4px;display:flex}.exam-ws-tab{appearance:none;cursor:pointer;color:#64748b;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:#334155}.exam-ws-tab.is-active{color:#4338ca;border-bottom-color:#4f46e5}.exam-manager{flex-direction:column;gap:10px;display:flex}.exam-manager-toolbar{border-bottom:1px solid var(--border,#e2e8f0);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:4px;padding-bottom:12px;display:flex}.exam-del-btn{color:#b91c1c;background:#fff;border:1px solid #fecaca}.exam-del-btn:hover:not(:disabled){background:#fef2f2}.exam-card{background:#fff;border:1px solid #e2e8f0;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:#0f172a;font-size:15px}.exam-card-badge{color:#6366f1;background:#eef2ff;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.exam-card-unit{color:#94a3b8;font-size:12px}.exam-card-meta{color:#64748b;margin-top:4px;font-size:12.5px}.exam-card-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.exam-ctl-sched{color:#64748b;align-items:center;gap:5px;font-size:12px;display:inline-flex}.exam-ctl-sched input{border:1px solid #cbd5e1;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:#166534;white-space:nowrap;font-size:12px;font-weight:700}.exam-extender-input{border:1px solid #cbd5e1;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{color:#64748b;background:#f1f5f9}.exam-st--sched{color:#92400e;background:#fef3c7}.exam-st--live{color:#166534;background:#dcfce7}.exam-st--closed{color:#991b1b;background:#fee2e2}.exam-st--open{color:#1d4ed8;background:#dbeafe}.asgn-manager{flex-direction:column;gap:10px;display:flex}.asgn-manager-toolbar{border-bottom:1px solid var(--border,#e2e8f0);margin-bottom:4px;padding-bottom:12px}.asgn-card,.asgn-manager-toolbar{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.asgn-card{background:#fff;border:1px solid #e2e8f0;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:#0f172a;font-size:15px}.asgn-card-badge{color:#6366f1;background:#eef2ff;border-radius:999px;padding:1px 7px;font-size:11px;font-weight:700}.asgn-card-unit{color:#94a3b8;font-size:12px}.asgn-card-meta{color:#64748b;margin-top:4px;font-size:12.5px}.asgn-card-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.asgn-del-btn{color:#b91c1c;background:#fff;border:1px solid #fecaca}.asgn-del-btn:hover:not(:disabled){background:#fef2f2}.asgn-st{border-radius:999px;padding:2px 9px;font-size:11px;font-weight:800}.asgn-st--hidden{color:#64748b;background:#f1f5f9}.asgn-st--sched{color:#92400e;background:#fef3c7}.asgn-st--live{color:#166534;background:#dcfce7}.asgn-st--closed{color:#991b1b;background:#fee2e2}.asgn-settings{border-top:1px dashed #e2e8f0;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:#475569;font-size:12px;font-weight:600}.asgn-field-input{background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:7px 10px;font-size:13px}.asgn-field-input:focus{border-color:#6366f1;outline:none;box-shadow:0 0 0 3px #6366f11f}.asgn-settings-hint{color:#64748b;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:#0f172a;align-items:center;gap:8px;margin:0;font-size:14px;font-weight:700;display:flex}.assignment-create-optional{color:#94a3b8;background:#f1f5f9;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;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;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{background:#f8faff;border-color:#c7d2fe}.assignment-type-card.is-selected{background:#eef2ff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}.assignment-type-icon{font-size:26px;line-height:1}.assignment-type-name{color:#0f172a;font-size:14px;font-weight:700}.assignment-type-desc{color:#64748b;font-size:12px;line-height:1.45}.assignment-create-input{box-sizing:border-box;border:1px solid #cbd5e1;border-radius:9px;width:100%;padding:9px 12px;font-size:14px}.assignment-create-input:focus{border-color:#6366f1;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;color:#e2e8f0;background:#0f172a;border-color:#334155;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.5}.assignment-create-code:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f133}.assignment-create-code::placeholder{color:#64748b}.assignment-create-hint{color:#64748b;margin:0;font-size:12px;line-height:1.5}@media (max-width:520px){.assignment-type-grid{grid-template-columns:1fr}}.quiz-card-badge{color:#4338ca;background:#eef2ff;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,#e2e8f0);background:var(--card,#fff);border-radius:14px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.quiz-results-stat-label{color:#64748b;font-size:12px;font-weight:600}.quiz-results-stat-value{color:#0f172a;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:#b91c1c;font-size:12px}.exam-pane-list{flex-direction:column;gap:10px;margin-top:4px;display:flex}.exam-pane-item{border:1px solid var(--border,#e2e8f0);background:var(--card,#fff);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:#0f172a;font-size:15px}.exam-pane-item-unit{color:#94a3b8;font-size:12px}.exam-pane-item-meta{color:#64748b;margin-top:4px;font-size:12px}.exam-pane-item-locked{color:#94a3b8;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{color:#64748b;background:#f1f5f9}.exam-pane-st--sched{color:#92400e;background:#fef3c7}.exam-pane-st--live{color:#166534;background:#dcfce7}.exam-pane-st--done{color:#1d4ed8;background:#dbeafe}.exam-pane-st--closed{color:#991b1b;background:#fee2e2}.exam-pane-st--released{color:#6d28d9;background:#ede9fe}.exam-pane-item--new{border-color:#86efac;animation:examNewPulse 1.2s ease-in-out 2;box-shadow:0 0 0 3px #dcfce7}.exam-pane-new-badge{color:#15803d;background:#dcfce7;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:800}@keyframes examNewPulse{0%,to{box-shadow:0 0 0 3px #dcfce7}50%{box-shadow:0 0 0 5px #bbf7d0}}.grade-list{flex-direction:column;gap:10px;display:flex}.grade-row{border:1px solid var(--border,#e2e8f0);background:var(--card,#fff);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:#0f172a;font-size:15px}.grade-row-meta{color:#64748b;margin-top:4px;font-size:12px}.grade-badge{border-radius:999px;padding:2px 9px;font-size:11px;font-weight:800}.grade-badge--exam{color:#6d28d9;background:#ede9fe}.grade-badge--quiz{color:#4338ca;background:#eef2ff}.grade-row-score{flex-direction:column;align-items:flex-end;gap:2px;min-width:92px;display:flex}.grade-score-num{color:#0f172a;font-size:18px;font-weight:800}.grade-score-max{color:#94a3b8;font-size:13px;font-weight:600}.grade-score-pct{color:#2563eb;font-size:12px;font-weight:700}.grade-score-pending{color:#d97706;font-size:13px;font-weight:600}.grade-score-unsubmitted{color:#b91c1c;font-size:13px;font-weight:700}.grade-chip{border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}.grade-chip--unsubmitted{color:#b91c1c;background:#fee2e2}.qstat-dist{margin-bottom:16px;padding:16px 18px}.qstat-dist-title{color:#334155;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(#818cf8,#4f46e5);border-radius:6px 6px 0 0;width:100%;min-height:2px}.qstat-dist-count{color:#0f172a;font-size:12px;font-weight:700}.qstat-dist-label{color:#94a3b8;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:#0f172a;font-size:14px}.qstat-item-type{color:#4338ca;background:#eef2ff;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}.qstat-item-pts{color:#94a3b8;font-size:12px}.qstat-rate-wrap{align-items:center;gap:8px;min-width:200px;margin-left:auto;display:flex}.qstat-rate-track{background:#e2e8f0;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:#15803d}.qstat-rate-fill.qstat-rate--high{background:#22c55e}.qstat-rate--mid{color:#b45309}.qstat-rate-fill.qstat-rate--mid{background:#f59e0b}.qstat-rate--low{color:#b91c1c}.qstat-rate-fill.qstat-rate--low{background:#ef4444}.qstat-item-prompt{color:#1e293b;margin:8px 0 4px;font-size:14px}.qstat-item-meta{color:#64748b;margin-bottom:8px;font-size:12px}.qstat-choices{flex-direction:column;gap:5px;list-style:none;display:flex}.qstat-choice{color:#475569;align-items:center;gap:8px;font-size:13px;display:flex}.qstat-choice--correct{color:#15803d;font-weight:600}.qstat-choice-key{background:#f1f5f9;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{color:#15803d;background:#dcfce7}.qstat-choice-text{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;max-width:40%;overflow:hidden}.qstat-choice-bar-wrap{background:#f1f5f9;border-radius:999px;flex:1;height:6px;overflow:hidden}.qstat-choice-bar{background:#c7d2fe;height:100%;display:block}.qstat-choice--correct .qstat-choice-bar{background:#86efac}.qstat-choice-cnt{color:#94a3b8;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:#64748b;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:#22c55e}.qstat-legend-dot.qstat-rate--mid{background:#f59e0b}.qstat-legend-dot.qstat-rate--low{background:#ef4444}.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{color:#15803d;background:#dcfce7;border-color:#86efac}.qstat-heat-cell.qstat-rate--mid{color:#b45309;background:#fef3c7;border-color:#fcd34d}.qstat-heat-cell.qstat-rate--low{color:#b91c1c;background:#fee2e2;border-color:#fca5a5}.qstat-heat-q{font-size:12px;font-weight:800}.qstat-heat-pct{opacity:.85;font-size:10px;font-weight:600}.qstat-overview-hint{color:#94a3b8;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{border-radius:12px;box-shadow:inset 0 0 0 2px #c7d2fe}.qstat-item-chevron{color:#94a3b8;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 #f1f5f9}.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 #818cf8}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"<color>";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --tw-gradient-via-position{syntax:"<length-percentage>";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"<length-percentage>";inherits:false;initial-value:100%}@property --tw-font-weight{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-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}