/*! tailwindcss v4.3.5 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:block))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-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{:root,:host{--font-sans:"Inter", "Segoe UI", "Trebuchet MS", system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-500:oklch(63.7% .237 25.331);--color-red-700:oklch(50.5% .213 27.518);--color-slate-50:oklch(98.4% .003 247.858);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-800:oklch(27.9% .041 260.031);--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--container-md:28rem;--container-lg:32rem;--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-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--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;--tracking-widest:.1em;--leading-tight:1.25;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-navy:var(--navy);--color-royal:var(--royal);--color-ink:var(--ink);--color-paper:var(--paper);--color-muted:var(--muted);--radius-control:12px;--radius-card:18px;--radius-dialog:22px;--shadow-card:0 12px 34px #12264f17}}@layer base{*,:after,:before,::backdrop{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}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, 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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{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:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,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{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-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{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.static{position:static}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.h-6{height:calc(var(--spacing) * 6)}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-14{height:calc(var(--spacing) * 14)}.h-20{height:calc(var(--spacing) * 20)}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-3\/4{width:75%}.w-14{width:calc(var(--spacing) * 14)}.w-full{width:100%}.max-w-6xl{max-width:var(--container-6xl)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-sm{max-width:var(--container-sm)}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x, ) var(--tw-rotate-y, ) var(--tw-rotate-z, ) var(--tw-skew-x, ) var(--tw-skew-y, )}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}: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-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)))}.overflow-hidden{overflow:hidden}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:2147483647px}.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-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-red-500{border-color:var(--color-red-500)}.border-royal{border-color:var(--color-royal)}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.bg-navy{background-color:var(--color-navy)}.bg-paper{background-color:var(--color-paper)}.bg-red-50{background-color:var(--color-red-50)}.bg-royal\/5{background-color:var(--color-royal)}@supports (color:color-mix(in lab, red, red)){.bg-royal\/5{background-color:color-mix(in oklab, var(--color-royal) 5%, transparent)}}.bg-white{background-color:var(--color-white)}.object-cover{object-fit:cover}.object-top{object-position:top}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-10{padding-block:calc(var(--spacing) * 10)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-3{padding-right:calc(var(--spacing) * 3)}.pr-12{padding-right:calc(var(--spacing) * 12)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-left{text-align:left}.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-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-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.2em\]{--tw-tracking:.2em;letter-spacing:.2em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-ink{color:var(--color-ink)}.text-muted{color:var(--color-muted)}.text-navy{color:var(--color-navy)}.text-red-700{color:var(--color-red-700)}.text-royal{color:var(--color-royal)}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--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)}.ring-royal\/20{--tw-ring-color:var(--color-royal)}@supports (color:color-mix(in lab, red, red)){.ring-royal\/20{--tw-ring-color:color-mix(in oklab, var(--color-royal) 20%, transparent)}}.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, )}.outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.hover\:border-navy\/40:hover{border-color:var(--color-navy)}@supports (color:color-mix(in lab, red, red)){.hover\:border-navy\/40:hover{border-color:color-mix(in oklab, var(--color-navy) 40%, transparent)}}.hover\:bg-royal:hover{background-color:var(--color-royal)}.hover\:bg-slate-50:hover{background-color:var(--color-slate-50)}.hover\:underline:hover{text-decoration-line:underline}}.focus\:border-royal:focus{border-color:var(--color-royal)}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}@media (width>=40rem){.sm\:p-8{padding:calc(var(--spacing) * 8)}}@media (width>=64rem){.lg\:block{display:block}.lg\:hidden{display:none}}@media (prefers-color-scheme:dark){.dark\:border-slate-800{border-color:var(--color-slate-800)}}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--navy:#192957;--royal:#3569d4;--ink:#1c2940;--paper:#f4f7fc;--card:#fff;--muted:#65738a;--line:#e2e8f1;--line-strong:#cdd7e5;--input:#fff;--accent-teal:#2c9c92;--accent-amber:#e5a847;--accent-red:#b13f4b;--accent-present:#238452;--radius-control:12px;--radius-card:18px;--radius-dialog:22px;--shadow-card:0 12px 34px #12264f17;--shadow-floating:0 22px 60px #12264f29;--focus-ring:0 0 0 3px var(--royal)}@supports (color:color-mix(in lab, red, red)){:root{--focus-ring:0 0 0 3px color-mix(in srgb, var(--royal) 22%, transparent)}}:root{--brand-gradient:linear-gradient(135deg, #173b7b, #3569d4);--space-page-x:clamp(18px, 4.5vw, 72px);--shadow-soft:0 16px 45px #12264f14}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--navy:#e0eaff;--royal:#81aaff;--ink:#ebf1fc;--paper:#101827;--card:#18243a;--muted:#a7b4cb;--line:#2c3a52;--line-strong:#40516d;--input:#111c2d;--accent-teal:#54c7b9;--accent-amber:#f1c16b;--accent-red:#ff9da4;--accent-present:#94e6b7;--shadow-soft:0 18px 50px #00000040}:root{--surface-card:var(--card);--surface-muted:var(--paper)}@supports (color:color-mix(in lab, red, red)){:root{--surface-muted:color-mix(in srgb, var(--paper) 72%, var(--card))}}:root{--border-color:var(--line);--text-primary:var(--ink);--text-muted:var(--muted);--success:var(--accent-present);--danger:var(--accent-red);--accent-blue:var(--royal);--text-color:var(--ink);--royal-solid:#3569d4;--on-royal-solid:#fff;--status-present:#278655;--status-late:#c48717;--status-absent:#bb4a52;--status-present-text:#176b47;--status-late-text:#855000;--status-absent-text:#aa373f;--warning:var(--status-late-text)}[data-theme=dark]{--status-present-text:#94e6b7;--status-late-text:#ffd286;--status-absent-text:#ff9da4}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);margin:0;transition:background-color .18s,color .18s}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}.card-stack{box-shadow:9px 9px 0 0 var(--royal), 17px 17px 0 0 var(--navy)}@supports (color:color-mix(in lab, red, red)){.card-stack{box-shadow:9px 9px 0 0 color-mix(in srgb, var(--royal) 10%, transparent), 17px 17px 0 0 color-mix(in srgb, var(--navy) 6%, transparent)}}.brand{align-items:center;text-decoration:none;display:inline-flex}.brand-logo{width:160px;height:auto;display:block}.logo-dark,[data-theme=dark] .logo-light{display:none}[data-theme=dark] .logo-dark{display:block}.app-shell{background:radial-gradient(ellipse at 85% -10%, var(--royal), transparent 38rem), var(--paper);min-height:100vh}@supports (color:color-mix(in lab, red, red)){.app-shell{background:radial-gradient(ellipse at 85% -10%, color-mix(in srgb, var(--royal) 9%, transparent), transparent 38rem), var(--paper)}}.app-header{z-index:35;border-bottom:1px solid var(--line);background:var(--card);position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.app-header{background:color-mix(in srgb, var(--card) 92%, transparent)}}.app-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.app-header-inner{width:100%;max-width:1800px;min-height:76px;padding:0 var(--space-page-x);justify-content:space-between;align-items:center;gap:24px;margin:0 auto;display:flex}.main-nav,.header-actions{align-items:center;gap:8px;display:flex}.main-nav{flex:1;justify-content:center}.nav-link{border-radius:var(--radius-control);color:var(--muted);align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:650;text-decoration:none;transition:color .14s,background-color .14s;display:inline-flex}.nav-link:hover,.nav-link.active{color:var(--royal);background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.nav-link:hover,.nav-link.active{background:color-mix(in srgb, var(--royal) 10%, transparent)}}.header-actions{gap:12px}.header-user{max-width:150px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.icon-button{border:1px solid var(--line);background:var(--card);width:40px;height:40px;color:var(--navy);cursor:pointer;border-radius:12px;flex:none;place-items:center;transition:transform .14s,border-color .14s,background-color .14s;display:inline-grid}.icon-button:hover{border-color:var(--royal);transform:translateY(-1px)}@supports (color:color-mix(in lab, red, red)){.icon-button:hover{border-color:color-mix(in srgb, var(--royal) 40%, var(--line))}}.icon-button:hover{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.icon-button:hover{background:color-mix(in srgb, var(--royal) 7%, var(--card))}}.page-content{width:100%;max-width:1800px;padding:42px var(--space-page-x) 76px;margin:0 auto}.content-wide{width:100%}.content-narrow{width:100%;max-width:760px;margin:0 auto}.dashboard-heading,.class-detail-heading{justify-content:space-between;align-items:flex-end;gap:26px;margin-bottom:35px;display:flex}.dashboard-heading h1,.class-detail-heading h1,.page-heading h1{color:var(--navy);letter-spacing:-.04em;margin:10px 0 8px;font-size:clamp(28px,4vw,38px);font-weight:760;line-height:1.15}.dashboard-heading p,.class-detail-heading p,.page-heading>p{color:var(--muted);margin:0;font-size:15px;line-height:1.6}.eyebrow{color:var(--royal);letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:8px;font-size:11px;font-weight:780;display:inline-flex}.button{cursor:pointer;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:0 17px;font-size:13px;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .15s,background-color .15s,border-color .15s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{opacity:.56;cursor:not-allowed}.button-primary{background:var(--brand-gradient);color:#fff;box-shadow:0 7px 16px #2a5bb72e}.button-primary:hover:not(:disabled){box-shadow:0 10px 22px #2a5bb740}.button-secondary{border-color:var(--line);background:var(--card);color:var(--navy)}.button-secondary:hover:not(:disabled){border-color:var(--royal)}@supports (color:color-mix(in lab, red, red)){.button-secondary:hover:not(:disabled){border-color:color-mix(in srgb, var(--royal) 38%, var(--line))}}.button-secondary:hover:not(:disabled){background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.button-secondary:hover:not(:disabled){background:color-mix(in srgb, var(--royal) 6%, var(--card))}}.button-quiet{color:var(--muted);background:0 0}.button-quiet:hover:not(:disabled){background:var(--navy)}@supports (color:color-mix(in lab, red, red)){.button-quiet:hover:not(:disabled){background:color-mix(in srgb, var(--navy) 6%, transparent)}}.button-quiet:hover:not(:disabled){color:var(--navy)}.button-small{border-radius:10px;min-height:37px;padding:0 12px;font-size:12px}.section-heading{justify-content:space-between;align-items:center;gap:16px;margin:32px 0 17px;display:flex}.section-heading h2{color:var(--navy);letter-spacing:-.025em;margin:0;font-size:20px;font-weight:740}.section-heading p{color:var(--muted);margin:5px 0 0;font-size:13px}.text-link,.back-link{color:var(--royal);align-items:center;gap:7px;font-size:13px;font-weight:680;text-decoration:none;display:inline-flex}.text-link:hover,.back-link:hover{text-decoration:underline}.back-link{margin-bottom:22px}.back-link svg{transform:rotate(180deg)}.class-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.class-card{border:1px solid var(--line);background:var(--card);min-height:248px;box-shadow:var(--shadow-soft);border-radius:18px;flex-direction:column;padding:20px;transition:transform .16s,box-shadow .16s;display:flex;position:relative;overflow:hidden}.class-card:before{background:var(--card-accent,var(--accent-teal));content:"";height:3px;position:absolute;top:0;left:0;right:0}.class-card:hover{transform:translateY(-3px);box-shadow:0 20px 42px #12264f21}.class-card-top{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.class-icon,.prompt-icon,.stat-icon,.empty-art{background:var(--royal);border-radius:14px;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.class-icon,.prompt-icon,.stat-icon,.empty-art{background:color-mix(in srgb, var(--royal) 11%, var(--card))}}.class-icon,.prompt-icon,.stat-icon,.empty-art{color:var(--royal)}.class-icon{width:42px;height:42px}.class-count,.enrolled-pill{background:var(--accent-teal);border-radius:20px;align-items:center;gap:6px;padding:6px 10px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.class-count,.enrolled-pill{background:color-mix(in srgb, var(--accent-teal) 12%, var(--card))}}.class-count,.enrolled-pill{color:var(--accent-teal);font-size:11px;font-weight:700}.class-label{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:650}.class-card h3{color:var(--navy);margin:0;font-size:19px;font-weight:740;line-height:1.3}.code-chip{border:1px dashed var(--line-strong);width:max-content;color:var(--muted);border-radius:8px;align-items:center;gap:7px;margin-top:12px;padding:5px 8px;font-size:11px;display:inline-flex}.code-chip b{color:var(--navy);letter-spacing:.1em;font-size:12px}.class-schedule,.faculty-byline{color:var(--muted);align-items:center;gap:7px;margin:14px 0 0;font-size:12px;display:flex}.class-card-actions{gap:8px;margin-top:auto;padding-top:18px;display:flex}.class-card-actions .button{flex:1}.empty-state,.empty-roster{border:1px dashed var(--line-strong);background:var(--card);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;min-height:280px;padding:32px;display:flex}@supports (color:color-mix(in lab, red, red)){.empty-state,.empty-roster{background:color-mix(in srgb, var(--card) 72%, transparent)}}.empty-state,.empty-roster{text-align:center}.empty-art{border-radius:18px;width:58px;height:58px}.empty-state h3,.empty-roster h3{color:var(--navy);margin:17px 0 6px;font-size:18px}.empty-state p,.empty-roster p{max-width:380px;color:var(--muted);margin:0 0 19px;font-size:13px;line-height:1.6}.profile-prompt,.join-panel{border:1px solid var(--royal);align-items:center;gap:16px;display:flex}@supports (color:color-mix(in lab, red, red)){.profile-prompt,.join-panel{border:1px solid color-mix(in srgb, var(--royal) 16%, var(--line))}}.profile-prompt,.join-panel{background:linear-gradient(100deg, var(--royal), var(--card) 65%);border-radius:18px;padding:18px 20px}@supports (color:color-mix(in lab, red, red)){.profile-prompt,.join-panel{background:linear-gradient(100deg, color-mix(in srgb, var(--royal) 8%, var(--card)), var(--card) 65%)}}.profile-prompt,.join-panel{box-shadow:0 10px 28px #2246840f}.prompt-icon{flex:none;width:46px;height:46px}.prompt-copy{flex:1}.prompt-copy strong{color:var(--navy);font-size:14px}.prompt-copy p{color:var(--muted);margin:5px 0 0;font-size:12px;line-height:1.5}.prompt-skip{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:12px;font-weight:650}.prompt-skip:hover{color:var(--navy);text-decoration:underline}.student-prompt{background:linear-gradient(100deg, var(--accent-amber), var(--card) 65%);margin-bottom:35px}@supports (color:color-mix(in lab, red, red)){.student-prompt{background:linear-gradient(100deg, color-mix(in srgb, var(--accent-amber) 10%, var(--card)), var(--card) 65%)}}.join-panel{border-color:var(--accent-teal);justify-content:space-between;margin-bottom:34px}@supports (color:color-mix(in lab, red, red)){.join-panel{border-color:color-mix(in srgb, var(--accent-teal) 25%, var(--line))}}.join-panel{background:linear-gradient(110deg, var(--accent-teal), var(--card) 62%)}@supports (color:color-mix(in lab, red, red)){.join-panel{background:linear-gradient(110deg, color-mix(in srgb, var(--accent-teal) 10%, var(--card)), var(--card) 62%)}}.join-panel h2{color:var(--navy);margin:7px 0 4px;font-size:19px}.join-panel p{max-width:420px;color:var(--muted);margin:0;font-size:12px;line-height:1.5}.join-form{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;width:min(440px,48%);display:grid}.join-form>.input{min-width:0}.join-code-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.75rem;display:grid}.join-invite-panel{gap:1rem;display:grid}.join-code-row .field,.join-code-row .input{min-width:0}.captcha-modal-backdrop{z-index:1000;background:#0a183085;place-items:center;padding:4vw;display:grid;position:fixed;inset:0}.captcha-modal{box-sizing:border-box;border:1px solid var(--line);border-radius:var(--radius-dialog);background:var(--card);width:min(92vw,360px);max-height:90vh;color:var(--navy);box-shadow:var(--shadow-floating);padding:12px;position:relative;overflow:auto}.captcha-modal h2{color:var(--navy);margin:0 42px 12px 0;font-size:1.1rem}.captcha-modal-close{border:1px solid var(--line);background:var(--card);width:36px;height:36px;color:var(--muted);cursor:pointer;border-radius:10px;place-items:center;font-size:1.5rem;line-height:1;display:grid;position:absolute;top:6px;right:6px}.recaptcha-widget{justify-items:start;gap:.35rem;width:min(304px,100%);min-width:0;max-width:100%;display:grid}.recaptcha-frame{width:min(304px,100%);min-width:0;max-width:100%;min-height:78px;overflow:hidden}.recaptcha-frame>div{width:100%;min-width:0}.recaptcha-retry{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.recaptcha-retry .button{padding:.35rem .65rem;font-size:.8rem}.profile-panel,.form-panel{padding:28px}.page-heading{margin:0 0 24px}.page-heading h1{font-size:34px}.panel{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--card);box-shadow:var(--shadow-card)}.button:focus-visible,.input:focus-visible,.deck-search:focus-within,.module-tab:focus-visible,.nav-link:focus-visible{outline:3px solid var(--royal)}@supports (color:color-mix(in lab, red, red)){.button:focus-visible,.input:focus-visible,.deck-search:focus-within,.module-tab:focus-visible,.nav-link:focus-visible{outline:3px solid color-mix(in srgb, var(--royal) 62%, transparent)}}.button:focus-visible,.input:focus-visible,.deck-search:focus-within,.module-tab:focus-visible,.nav-link:focus-visible{outline-offset:2px}[data-theme=dark] .field-error{color:#ff9da4}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 18px;display:grid}.field{min-width:0;color:var(--navy);flex-direction:column;gap:7px;font-size:12px;font-weight:690;display:flex}.field b{color:#d26d56}.field-wide{grid-column:1/-1}.input{border:1px solid var(--line-strong);background:var(--input);width:100%;min-width:0;height:46px;color:var(--ink);border-radius:11px;outline:none;padding:0 13px;font-size:13px;font-weight:450;transition:border-color .14s,box-shadow .14s,background-color .14s}.input::placeholder{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.input::placeholder{color:color-mix(in srgb, var(--muted) 72%, transparent)}}.input:focus{border-color:var(--royal);box-shadow:var(--focus-ring)}.password-control{display:block;position:relative}.password-control .input,.password-control input{padding-right:46px}.password-toggle{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-25%)}.password-toggle:hover{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.password-toggle:hover{background:color-mix(in srgb, var(--royal) 9%, transparent)}}.password-toggle:hover{color:var(--royal)}.password-toggle:focus-visible{outline:2px solid var(--royal);outline-offset:1px}.textarea{resize:vertical;height:auto;min-height:90px;padding-top:11px}.input-invalid{border-color:#d45c5c}.field-hint,.field-error,.field-success{color:var(--muted);margin:0;font-size:11px;font-weight:450;line-height:1.5}.field-error{color:#d45858}.field-success{color:var(--accent-teal)}.photo-upload{border-bottom:1px solid var(--line);align-items:center;gap:17px;margin-bottom:26px;padding-bottom:24px;display:flex}.photo-preview{border:1px solid var(--line);background:var(--royal);border-radius:50%;flex:none;place-items:center;width:84px;height:84px;display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.photo-preview{background:color-mix(in srgb, var(--royal) 8%, var(--paper))}}.photo-preview{color:var(--royal)}.photo-preview img,.roster-avatar img{object-fit:cover;width:100%;height:100%}.file-button{cursor:pointer;position:relative;overflow:hidden}.file-button input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.photo-upload .field-hint{margin-top:7px}.form-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:10px;margin-top:25px;padding-top:20px;display:flex}.form-panel>.field+.field{margin-top:20px}.input-with-action{gap:8px;display:flex}.input-with-action .button{flex:none}.notice{border:1px solid #0000;border-radius:12px;align-items:flex-start;gap:9px;margin:16px 0;padding:12px 14px;font-size:12px;line-height:1.55;display:flex}.notice-success{border-color:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.notice-success{border-color:color-mix(in srgb, var(--accent-teal) 28%, transparent)}}.notice-success{background:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.notice-success{background:color-mix(in srgb, var(--accent-teal) 10%, var(--card))}}.notice-success{color:var(--accent-teal)}.notice-error{background:#e9877d;border-color:#e7b6b3}@supports (color:color-mix(in lab, red, red)){.notice-error{background:color-mix(in srgb, #e9877d 12%, var(--card))}}.notice-error{color:#bb4949}[data-theme=dark] .notice-error{color:#ffaaa2}.notice-warm{border-color:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.notice-warm{border-color:color-mix(in srgb, var(--accent-amber) 32%, transparent)}}.notice-warm{background:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.notice-warm{background:color-mix(in srgb, var(--accent-amber) 12%, var(--card))}}.notice-warm{color:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.notice-warm{color:color-mix(in srgb, var(--accent-amber) 74%, var(--ink))}}.loading-card{border:1px solid var(--line);background:var(--card);color:var(--muted);text-align:center;border-radius:16px;padding:24px}.class-detail-heading{align-items:center;margin-top:10px}.detail-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:28px 0;display:grid}.stat-card{align-items:center;gap:13px;min-height:100px;padding:17px;display:flex}.stat-icon{flex:none;width:42px;height:42px}.stat-amber{background:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.stat-amber{background:color-mix(in srgb, var(--accent-amber) 16%, var(--card))}}.stat-amber{color:var(--accent-amber)}.stat-teal{background:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.stat-teal{background:color-mix(in srgb, var(--accent-teal) 14%, var(--card))}}.stat-teal{color:var(--accent-teal)}.stat-card strong,.stat-card span:last-child{display:block}.stat-card strong{overflow-wrap:anywhere;color:var(--navy);font-size:17px}.stat-card div span{color:var(--muted);margin-top:4px;font-size:11px}.roster-panel{padding:24px}.roster-panel .section-heading{margin-top:0}.roster-list{border-top:1px solid var(--line)}.roster-row{border-bottom:1px solid var(--line);align-items:center;gap:14px;min-height:75px;display:flex}.roster-avatar{background:var(--royal);border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.roster-avatar{background:color-mix(in srgb, var(--royal) 11%, var(--card))}}.roster-avatar{color:var(--royal)}.roster-name{flex:1;gap:4px;display:grid}.roster-name strong{color:var(--navy);font-size:13px}.roster-name span,.muted{color:var(--muted);font-size:12px}.student-number{background:var(--royal);border-radius:7px;padding:5px 8px}@supports (color:color-mix(in lab, red, red)){.student-number{background:color-mix(in srgb, var(--royal) 8%, var(--card))}}.student-number{color:var(--royal);letter-spacing:.08em;font-size:11px;font-weight:700}.roster-email{text-overflow:ellipsis;max-width:220px;overflow:hidden}.empty-roster{background:0 0;border:0;min-height:220px}.code-input{letter-spacing:.1em;text-transform:uppercase;font-size:18px;font-weight:700}.join-invite-panel{max-width:650px}.global-error{z-index:11;background:#e9877d;border-radius:10px;max-width:1100px;margin:12px auto 0;padding:10px 14px;position:relative}@supports (color:color-mix(in lab, red, red)){.global-error{background:color-mix(in srgb, #e9877d 12%, var(--card))}}.global-error{color:#bb4949;font-size:12px}.auth-theme-toggle{z-index:5;position:absolute;top:24px;right:max(24px,50vw - 576px)}.auth-theme-toggle .icon-button{background:var(--card)}@supports (color:color-mix(in lab, red, red)){.auth-theme-toggle .icon-button{background:color-mix(in srgb, var(--card) 82%, transparent)}}.hero{position:relative}[data-theme=dark] .bg-white,[data-theme=dark] .bg-white\/80{background-color:var(--card)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .bg-white\/80{background-color:color-mix(in srgb, var(--card) 82%, transparent)}}[data-theme=dark] .bg-slate-50,[data-theme=dark] .bg-slate-100{background-color:var(--navy)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .bg-slate-50,[data-theme=dark] .bg-slate-100{background-color:color-mix(in srgb, var(--navy) 7%, var(--card))}}[data-theme=dark] .border-slate-200,[data-theme=dark] .border-slate-300{border-color:var(--line)}[data-theme=dark] .text-slate-500,[data-theme=dark] .text-slate-600,[data-theme=dark] .text-slate-700{color:var(--muted)}[data-theme=dark] .text-red-700{color:#ffaaa2}[data-theme=dark] .bg-red-50{background-color:#e9877d}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .bg-red-50{background-color:color-mix(in srgb, #e9877d 13%, var(--card))}}[data-theme=dark] .bg-navy{background-color:#244b91}[data-theme=dark] .bg-royal\/5{background-color:var(--royal)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .bg-royal\/5{background-color:color-mix(in srgb, var(--royal) 12%, var(--card))}}[data-theme=dark] .hover\:bg-slate-50:hover,[data-theme=dark] .hover\:bg-slate-100:hover{background-color:var(--royal)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .hover\:bg-slate-50:hover,[data-theme=dark] .hover\:bg-slate-100:hover{background-color:color-mix(in srgb, var(--royal) 12%, var(--card))}}[data-theme=dark] .hover\:bg-royal:hover{background-color:#3569d4}[data-theme=dark] .hover\:bg-white:hover{background-color:var(--navy)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .hover\:bg-white:hover{background-color:color-mix(in srgb, var(--navy) 8%, var(--card))}}@media (width<=900px){.class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.main-nav{justify-content:flex-start}}@media (width>=681px) and (width<=1023px){.auth-layout-inner{grid-template-columns:minmax(0,1fr)}.auth-form-pane{max-width:680px}}@media (width<=680px){.app-header-inner{gap:10px;min-height:68px;padding:0 16px}.brand-logo{width:127px}.main-nav{gap:2px}.nav-link{padding:9px}.nav-link span,.header-user{display:none}.header-actions{gap:6px}.icon-button{width:38px;height:38px}.page-content{padding:28px 17px 50px}.dashboard-heading,.class-detail-heading{flex-direction:column;align-items:flex-start;gap:18px;margin-bottom:26px}.dashboard-heading h1,.class-detail-heading h1{font-size:30px}.class-grid,.detail-stats{grid-template-columns:1fr}.profile-prompt,.join-panel{flex-wrap:wrap;align-items:flex-start}.profile-prompt .button{margin-left:62px}.prompt-skip{margin-left:auto}.join-panel{display:block}.join-form{width:100%;margin-top:17px}.form-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.profile-panel,.form-panel,.roster-panel{padding:20px}.input-with-action{flex-direction:column;align-items:stretch}.roster-row{flex-wrap:wrap;padding:11px 0}.roster-email{display:none}.student-number{margin-left:58px}.auth-theme-toggle{top:18px;right:18px}}@media (width<=400px){.join-code-row{grid-template-columns:minmax(0,1fr)}.join-code-row>.button{justify-self:start}.join-form{grid-template-columns:minmax(0,1fr)}}.module-navigation{align-items:stretch;gap:9px;display:flex}.module-deck-link{border:1px solid var(--line);background:var(--card);min-height:48px;color:var(--muted);cursor:pointer;border-radius:14px;flex:none;justify-content:center;align-items:center;gap:8px;padding:0 15px;font-size:13px;font-weight:700;display:inline-flex}.module-deck-link:hover,.module-deck-link.is-active{border-color:var(--royal)}@supports (color:color-mix(in lab, red, red)){.module-deck-link:hover,.module-deck-link.is-active{border-color:color-mix(in srgb, var(--royal) 35%, var(--line))}}.module-deck-link:hover,.module-deck-link.is-active{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.module-deck-link:hover,.module-deck-link.is-active{background:color-mix(in srgb, var(--royal) 8%, var(--card))}}.module-deck-link:hover,.module-deck-link.is-active{color:var(--royal)}.module-tabs{flex:1;min-width:max-content}.module-tab-disabled{cursor:not-allowed;opacity:.72}.coming-soon-badge{background:var(--muted);border-radius:999px;align-items:center;min-height:22px;padding:2px 7px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.coming-soon-badge{background:color-mix(in srgb, var(--muted) 12%, var(--card))}}.coming-soon-badge{color:var(--muted);white-space:nowrap;font-size:9px;font-weight:750}.activity-module,.project-module,.project-scoring{width:100%}.activity-module>.design-page-header,.project-module>.design-page-header{margin-bottom:25px}.activity-list{gap:12px;display:grid}.activity-card{align-items:center;gap:15px;min-height:92px;padding:17px;display:flex}.activity-card-icon,.project-card-icon{background:var(--royal);border-radius:15px;flex:none;place-items:center;width:48px;height:48px;display:grid}@supports (color:color-mix(in lab, red, red)){.activity-card-icon,.project-card-icon{background:color-mix(in srgb, var(--royal) 11%, var(--card))}}.activity-card-icon,.project-card-icon{color:var(--royal)}.activity-card-copy{flex:1;min-width:0}.activity-card-copy h2,.project-card h2{color:var(--navy);letter-spacing:-.02em;margin:0;font-size:17px}.activity-card-copy p,.project-card>p{color:var(--muted);margin:5px 0 0;font-size:12px}.activity-form{gap:16px;display:grid}.activity-form .form-actions{margin-top:4px}.scoring-sheet-heading{justify-content:space-between;display:flex}.scoring-back{cursor:pointer;background:0 0;border:0;margin-bottom:12px;padding:0}.scoring-sheet .page-heading{margin-bottom:20px}.scoring-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:15px;display:grid}.scoring-stats .panel{align-content:center;gap:4px;min-height:88px;padding:16px 18px;display:grid}.scoring-stats strong{color:var(--navy);font-variant-numeric:tabular-nums;font-size:22px;font-weight:800}.scoring-stats span{color:var(--muted);font-size:11px;font-weight:650}.scoring-absence-banner{border:1px solid var(--accent-amber);align-items:center;gap:10px;min-height:44px;margin:12px 0;display:flex}@supports (color:color-mix(in lab, red, red)){.scoring-absence-banner{border:1px solid color-mix(in srgb, var(--accent-amber) 32%, var(--line))}}.scoring-absence-banner{background:var(--accent-amber);border-radius:13px;padding:9px 13px}@supports (color:color-mix(in lab, red, red)){.scoring-absence-banner{background:color-mix(in srgb, var(--accent-amber) 11%, var(--card))}}.scoring-absence-banner{color:var(--ink);font-size:12px;font-weight:600}.scoring-absence-banner>svg{color:var(--accent-amber);flex:none}.scoring-toolbar{justify-content:space-between;align-items:center;gap:15px;min-height:54px;margin:16px 0 10px;display:flex}.scoring-toolbar p{color:var(--muted);margin:0;font-size:12px;font-weight:650}.scoring-filters{border:1px solid var(--line);background:var(--royal);border-radius:12px;gap:5px;padding:4px;display:flex}@supports (color:color-mix(in lab, red, red)){.scoring-filters{background:color-mix(in srgb, var(--royal) 4%, var(--card))}}.scoring-filters button,.scoring-quick-scores button{min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;padding:0 11px;font-size:11px;font-weight:700;display:inline-flex}.scoring-filters button.is-active{background:var(--card);color:var(--royal);box-shadow:0 2px 7px #14264617}.scoring-skeleton-list{gap:8px;display:grid}.scoring-skeleton-row{justify-content:space-between;align-items:center;gap:18px;min-height:78px;padding:10px 14px;display:flex}.scoring-skeleton-avatar{border-radius:12px;flex-shrink:0;width:44px;height:44px}.scoring-skeleton-name{flex-grow:1;width:min(220px,50%);height:18px}.scoring-skeleton-input{border-radius:10px;flex-shrink:0;width:68px;height:40px}.scoring-list{gap:8px;display:grid}.scoring-row{border:1px solid var(--line);background:linear-gradient(transparent 31px, var(--royal) 32px, transparent 33px), var(--card);border-radius:15px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;min-height:78px;padding:10px 14px;display:grid}@supports (color:color-mix(in lab, red, red)){.scoring-row{background:linear-gradient(transparent 31px, color-mix(in srgb, var(--royal) 6%, transparent) 32px, transparent 33px), var(--card)}}.scoring-row{transition:transform .16s,border-color .16s,opacity .16s;box-shadow:0 5px 15px #12264f0a}.scoring-row:hover{border-color:var(--royal);transform:translateY(-1px)}@supports (color:color-mix(in lab, red, red)){.scoring-row:hover{border-color:color-mix(in srgb, var(--royal) 30%, var(--line))}}.scoring-row-absent{opacity:.58}.scoring-student,.scoring-entry-controls{align-items:center;gap:11px;min-width:0;display:flex}.scoring-student-photo{border:1px solid var(--line);background:var(--royal);border-radius:13px;flex:none;place-items:center;width:46px;height:46px;display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.scoring-student-photo{background:color-mix(in srgb, var(--royal) 7%, var(--card))}}.scoring-student-photo{color:var(--royal)}.scoring-student-photo img{object-fit:cover;width:100%;height:100%}.scoring-student-copy{gap:4px;min-width:0;display:grid}.scoring-student-copy strong{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.scoring-student-copy span{color:var(--muted);font-size:10px;font-weight:600}.scoring-input{border:1px solid var(--line-strong);background:var(--input);width:82px;min-height:44px;color:var(--ink);text-align:center;font-variant-numeric:tabular-nums;border-radius:11px;padding:0 9px;font-size:14px;font-weight:750}.scoring-input:focus-visible{border-color:var(--royal);box-shadow:var(--focus-ring);outline:none}.scoring-input:disabled{cursor:not-allowed}.scoring-quick-scores{gap:3px;display:flex}.scoring-quick-scores button{border:1px solid var(--line);background:var(--card);min-width:36px;color:var(--ink)}.scoring-quick-scores button:hover:not(:disabled){border-color:var(--royal);color:var(--royal)}.scoring-quick-scores button:disabled{cursor:not-allowed}.scoring-save-state{min-width:54px;color:var(--muted);justify-content:flex-end;align-items:center;gap:4px;font-size:10px;font-weight:650;display:inline-flex}.scoring-save-saved{color:var(--accent-present)}.scoring-save-error{color:var(--accent-red)}.scoring-save-state button{min-height:36px;color:var(--accent-red);font:inherit;cursor:pointer;background:0 0;border:0;font-weight:750;text-decoration:underline}.scoring-item-actions,.project-score-settings{justify-content:flex-end;gap:9px;margin-top:16px;display:flex}.project-score-settings{align-items:flex-end;margin-bottom:12px}.project-score-settings .field{width:160px}.project-card{justify-items:start;gap:13px;padding:22px;display:grid}.project-card .project-card-icon{width:55px;height:55px}.project-card-stats{border-top:1px solid var(--line);width:100%;color:var(--muted);justify-content:space-between;gap:10px;padding-top:14px;font-size:11px;display:flex}.project-card-stats strong{color:var(--navy);font-size:14px}.project-card .button{width:100%}.scoring-loading{min-height:160px;color:var(--muted);place-items:center;font-size:13px;display:grid}.recitation-absent-list{border:1px solid var(--line);background:var(--accent-red);border-radius:15px;margin-top:12px;padding:13px}@supports (color:color-mix(in lab, red, red)){.recitation-absent-list{background:color-mix(in srgb, var(--accent-red) 3%, var(--card))}}.recitation-absent-list>strong{color:var(--muted);margin-bottom:9px;font-size:11px;display:block}.recitation-absent-list>div{flex-wrap:wrap;gap:8px;display:flex}.recitation-absent-card{border:1px solid var(--accent-red);align-items:center;gap:8px;min-height:52px;display:flex}@supports (color:color-mix(in lab, red, red)){.recitation-absent-card{border:1px solid color-mix(in srgb, var(--accent-red) 20%, var(--line))}}.recitation-absent-card{background:var(--card);opacity:.62;border-radius:12px;padding:4px 9px 4px 5px}.recitation-absent-card .recitation-mini-photo{flex:none;width:38px;height:38px}.recitation-absent-card>span:not(.design-status-pill){color:var(--ink);font-size:11px;font-weight:650}@media (width<=760px){.module-navigation{padding-bottom:4px;overflow-x:auto}.activity-card{flex-wrap:wrap;align-items:flex-start}.activity-card .button{width:100%}.scoring-row{grid-template-columns:1fr;gap:10px}.scoring-entry-controls{justify-content:flex-end;padding-left:40px}.project-card-grid{grid-template-columns:1fr}}@media (width<=520px){.module-tabs .module-tab{gap:6px;padding:0 10px;font-size:11px}.scoring-stats{gap:7px}.scoring-stats .panel{min-height:76px;padding:12px}.scoring-stats strong{font-size:18px}.scoring-toolbar{flex-direction:column;align-items:flex-start;padding:7px 0}.scoring-filters{width:100%}.scoring-filters button{flex:1}.scoring-entry-controls{justify-content:space-between;padding-left:0}.scoring-item-actions{flex-direction:column}.scoring-item-actions .button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.classroom-page{padding-bottom:35px}.class-breadcrumb{color:var(--muted);align-items:center;gap:8px;margin:0 0 22px;font-size:12px;display:flex}.class-breadcrumb a{color:var(--royal);font-weight:680;text-decoration:none}.class-breadcrumb a:hover{text-decoration:underline}.class-breadcrumb [aria-current=page]{color:var(--navy);font-weight:700}.classroom-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin:0 0 14px;display:flex}.classroom-title h1{color:var(--navy);letter-spacing:-.04em;margin:8px 0 7px;font-size:clamp(28px,4vw,38px);font-weight:760;line-height:1.15}.classroom-title>p{max-width:600px;color:var(--muted);margin:0;font-size:14px;line-height:1.55}.classroom-meta{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.class-code-pill,.class-schedule-pill,.classroom-date{border:1px solid var(--line);background:var(--card);min-height:42px;color:var(--muted);border-radius:12px;align-items:center;gap:8px;padding:0 13px;font-size:12px;display:inline-flex}.class-code-pill{flex-direction:column;justify-content:center;align-items:flex-start;gap:1px}.class-code-pill span{color:var(--muted);letter-spacing:.1em;font-size:9px;font-weight:800}.class-code-pill strong{color:var(--navy);letter-spacing:.04em;font-size:14px}.class-schedule-pill{color:var(--navy);font-weight:630}.class-schedule-pill svg,.classroom-date svg{color:var(--royal)}.classroom-date{background:0 0;border:0;width:fit-content;min-height:34px;margin:0 0 20px;padding:0;font-size:12px;font-weight:650;display:flex}.class-share-panel{margin:0 0 1rem;padding:.65rem .85rem;display:block}.class-share-row{align-items:center;gap:.75rem;min-width:0;display:flex}.class-share-toggle{min-width:0;color:var(--text-primary,var(--navy));font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.55rem;padding:.35rem 0;font-weight:650;display:inline-flex}.class-share-toggle .is-rotated{transform:rotate(90deg)}.class-share-code{color:var(--text-muted);font-variant-numeric:tabular-nums;margin-right:auto;font-size:.92rem}.class-share-pending{white-space:nowrap}.class-share-expanded{justify-content:space-between;align-items:center;gap:1.5rem;padding:1rem .25rem .25rem;display:flex}.class-share-copy h2{color:var(--navy);margin:.35rem 0 .5rem;font-size:1.05rem}.class-share-copy p{max-width:48rem;color:var(--text-muted);margin:0;line-height:1.5}.class-share-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1rem;display:flex}.class-share-code{color:var(--text-muted);font-size:.92rem}.class-share-link{word-break:break-all;color:var(--text-muted);margin-top:.6rem;font-size:.78rem}.class-share-qr{justify-items:center;gap:.5rem;min-width:12rem;display:grid}.class-share-qr-actions,.class-share-modal-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;display:flex}.class-share-large-qr{text-align:center;justify-items:center;padding:1.25rem;display:grid}.class-share-large-qr img{border:1px solid var(--border-color,#e2e8f0);border-radius:12px;width:260px;height:260px}.class-share-large-qr p{margin-top:.75rem;font-weight:700}.class-share-qr img{border:1px solid var(--border-color);background:#fff;border-radius:1rem;width:208px;height:208px;padding:.5rem}.class-share-qr-placeholder{border:1px dashed var(--border-color);width:208px;height:208px;color:var(--text-muted);border-radius:1rem;place-items:center;display:grid}.class-share-error{max-width:208px;color:var(--danger,#b42318);text-align:center;font-size:.82rem}.module-tabs{border-bottom:1px solid var(--line);scrollbar-width:thin;gap:4px;min-width:0;display:flex;overflow-x:auto}.module-tab-group{flex:none;gap:4px;display:flex}.module-tab-group-secondary{margin-left:auto}.module-tab-divider{background:var(--line);align-self:center;width:1px;height:28px;margin:0 12px}.module-tab{min-height:52px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:none;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:12px;font-weight:690;transition:color .14s,border-color .14s,background-color .14s;display:inline-flex}.module-tab:hover:not(:disabled){background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.module-tab:hover:not(:disabled){background:color-mix(in srgb, var(--royal) 5%, transparent)}}.module-tab:hover:not(:disabled){color:var(--navy)}.module-tab:focus-visible,.layout-toggle button:focus-visible,.status-button:focus-visible,.class-toast button:focus-visible{outline:3px solid var(--royal)}@supports (color:color-mix(in lab, red, red)){.module-tab:focus-visible,.layout-toggle button:focus-visible,.status-button:focus-visible,.class-toast button:focus-visible{outline:3px solid color-mix(in srgb, var(--royal) 64%, transparent)}}.module-tab:focus-visible,.layout-toggle button:focus-visible,.status-button:focus-visible,.class-toast button:focus-visible{outline-offset:2px}.module-tab.is-active{border-bottom-color:var(--royal);color:var(--royal)}.module-tab-disabled{cursor:not-allowed;opacity:.62;gap:7px}.module-tab-disabled span{background:var(--muted);border-radius:20px;padding:3px 6px}@supports (color:color-mix(in lab, red, red)){.module-tab-disabled span{background:color-mix(in srgb, var(--muted) 13%, transparent)}}.module-tab-disabled span{white-space:nowrap;font-size:9px;font-weight:680}.classroom-module{min-width:0;padding-top:24px}.deck-toolbar{justify-content:space-between;align-items:center;gap:18px;display:flex}.deck-title h2{color:var(--navy);letter-spacing:-.025em;margin:0;font-size:20px;font-weight:740}.deck-title p{color:var(--muted);margin:5px 0 0;font-size:12px}.deck-actions{align-items:center;gap:9px;display:flex}.deck-search{border:1px solid var(--line-strong);background:var(--input);width:min(270px,34vw);min-height:44px;color:var(--muted);border-radius:11px;align-items:center;gap:8px;padding:0 11px;display:flex}.deck-search:focus-within{border-color:var(--royal);box-shadow:0 0 0 3px var(--royal)}@supports (color:color-mix(in lab, red, red)){.deck-search:focus-within{box-shadow:0 0 0 3px color-mix(in srgb, var(--royal) 15%, transparent)}}.deck-search input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;font-size:12px}.deck-search input::placeholder{color:var(--muted)}.layout-toggle{border:1px solid var(--line);background:var(--card);border-radius:11px;align-items:center;min-height:44px;padding:3px;display:flex}.layout-toggle button{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 10px;font-size:11px;font-weight:680}.layout-toggle button.is-active{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.layout-toggle button.is-active{background:color-mix(in srgb, var(--royal) 11%, transparent)}}.layout-toggle button.is-active{color:var(--royal)}.deck-counts{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0 20px;display:grid}.stat-counter{border:1px solid var(--line);background:var(--card);border-radius:14px;align-items:center;gap:11px;min-height:66px;padding:10px 14px;display:flex}.stat-counter strong{color:var(--navy);font-variant-numeric:tabular-nums;font-size:23px;font-weight:760;line-height:1;animation:.18s ease-out counter-in}.stat-counter span{color:var(--muted);font-size:11px;font-weight:650}.stat-counter-present{border-color:#238452}@supports (color:color-mix(in lab, red, red)){.stat-counter-present{border-color:color-mix(in srgb, #238452 22%, var(--line))}}.stat-counter-present strong{color:#176b47}.stat-counter-late{border-color:#ae7300}@supports (color:color-mix(in lab, red, red)){.stat-counter-late{border-color:color-mix(in srgb, #ae7300 24%, var(--line))}}.stat-counter-late strong{color:#855000}.stat-counter-absent{border-color:#b13f4b}@supports (color:color-mix(in lab, red, red)){.stat-counter-absent{border-color:color-mix(in srgb, #b13f4b 22%, var(--line))}}.stat-counter-absent strong{color:#aa373f}[data-theme=dark] .stat-counter-present strong{color:#94e6b7}[data-theme=dark] .stat-counter-late strong{color:#ffd286}[data-theme=dark] .stat-counter-absent strong{color:#ff9da4}.student-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:15px;display:grid}.student-card{border:1px solid var(--line);background:repeating-linear-gradient(to bottom, transparent 0, transparent 31px, var(--royal) 32px, transparent 33px), var(--card);border-radius:16px;min-width:0;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.student-card{background:repeating-linear-gradient(to bottom, transparent 0, transparent 31px, color-mix(in srgb, var(--royal) 6%, transparent) 32px, transparent 33px), var(--card)}}.student-card{transition:transform .16s,box-shadow .16s,border-color .16s;box-shadow:0 5px 14px #12264f0e}.student-card:hover{border-color:var(--royal);transform:translateY(-3px)}@supports (color:color-mix(in lab, red, red)){.student-card:hover{border-color:color-mix(in srgb, var(--royal) 32%, var(--line))}}.student-card:hover{box-shadow:0 12px 25px #12264f1c}.student-card-edge{background:linear-gradient(90deg, var(--royal), var(--royal));height:5px}@supports (color:color-mix(in lab, red, red)){.student-card-edge{background:linear-gradient(90deg, var(--royal), color-mix(in srgb, var(--royal) 38%, #75c6c0))}}.student-card-present .student-card-edge{background:var(--status-present)}.student-card-late .student-card-edge{background:var(--status-late)}.student-card-absent .student-card-edge{background:var(--status-absent)}.student-card-content{flex-direction:column;min-height:156px;padding:14px;display:flex}.student-card-identity{align-items:center;gap:10px;min-width:0;display:flex}.student-card-photo{border:1px solid var(--line);background:var(--royal);border-radius:13px;flex:none;place-items:center;width:44px;height:44px;display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.student-card-photo{background:color-mix(in srgb, var(--royal) 10%, var(--card))}}.student-card-photo{color:var(--royal)}.student-card-photo img{object-fit:cover;width:100%;height:100%}.student-card-copy{flex:1;min-width:0}.student-card-copy h3{color:var(--navy);text-overflow:ellipsis;white-space:nowrap;margin:0 0 4px;font-size:13px;font-weight:740;overflow:hidden}.student-card-id{color:var(--muted);letter-spacing:.025em;font-size:10px;font-weight:650}.student-status{white-space:nowrap;border:1px solid #0000;border-radius:20px;flex:none;align-items:center;gap:4px;min-height:25px;padding:0 7px;font-size:9px;font-weight:750;display:inline-flex}.status-mark{place-items:center;width:13px;height:13px;font-size:11px;font-weight:850;display:inline-grid}.status-present{background:#238452;border-color:#23845240}@supports (color:color-mix(in lab, red, red)){.status-present{background:color-mix(in srgb, #238452 10%, var(--card))}}.status-present{color:#176b47}.status-late{background:#ae7300;border-color:#ae730045}@supports (color:color-mix(in lab, red, red)){.status-late{background:color-mix(in srgb, #ae7300 11%, var(--card))}}.status-late{color:#855000}.status-absent{background:#b13f4b;border-color:#b13f4b42}@supports (color:color-mix(in lab, red, red)){.status-absent{background:color-mix(in srgb, #b13f4b 10%, var(--card))}}.status-absent{color:#aa373f}.status-unmarked{border-color:var(--line);background:var(--muted)}@supports (color:color-mix(in lab, red, red)){.status-unmarked{background:color-mix(in srgb, var(--muted) 8%, var(--card))}}.status-unmarked{color:var(--muted)}[data-theme=dark] .status-present{color:#94e6b7}[data-theme=dark] .status-late{color:#ffd286}[data-theme=dark] .status-absent{color:#ff9da4}.student-card-details{color:var(--muted);flex-wrap:wrap;gap:5px 9px;margin:14px 0 0 54px;font-size:10px;line-height:1.5;display:flex}.student-card-details span+span:before{color:var(--line-strong);content:"·";margin-right:8px}.student-grid-list{grid-template-columns:minmax(0,1fr);gap:8px}.student-card-list .student-card-content{flex-direction:row;align-items:center;gap:12px;min-height:85px}.student-card-list .student-card-details{flex:1;margin:0}.student-card-list .student-card-actions{flex:none}.class-empty-state{border:1px dashed var(--line-strong);background:var(--card);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;min-height:340px;padding:34px 20px;display:flex}@supports (color:color-mix(in lab, red, red)){.class-empty-state{background:color-mix(in srgb, var(--card) 78%, transparent)}}.class-empty-state{text-align:center}.class-empty-art{width:100px;height:82px;margin-bottom:15px;position:relative}.empty-card{border:1px solid var(--line);background:var(--card);width:62px;height:72px;color:var(--royal);border-radius:12px;place-items:center;display:grid;position:absolute;box-shadow:0 7px 18px #12264f17}.empty-card-back{top:2px;left:12px;transform:rotate(-12deg)}.empty-card-front{top:6px;right:10px;transform:rotate(8deg)}.class-empty-state h2{color:var(--navy);margin:0;font-size:19px;font-weight:750}.class-empty-state>p{max-width:430px;color:var(--muted);margin:8px auto 17px;font-size:13px;line-height:1.6}.empty-state-actions{flex-direction:column;align-items:center;gap:9px;display:flex}.empty-state-actions>span{color:var(--muted);font-size:11px}.empty-state-actions>span strong{color:var(--navy);letter-spacing:.08em}.deck-no-results{min-height:160px;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.deck-no-results strong{color:var(--navy);font-size:14px}.deck-no-results span{font-size:12px}.module-placeholder{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:260px;padding:30px;display:flex}.module-placeholder-icon{background:var(--royal);border-radius:17px;place-items:center;width:54px;height:54px;display:grid}@supports (color:color-mix(in lab, red, red)){.module-placeholder-icon{background:color-mix(in srgb, var(--royal) 11%, transparent)}}.module-placeholder-icon{color:var(--royal)}.module-placeholder h2{color:var(--navy);margin:14px 0 5px;font-size:19px}.module-placeholder p{color:var(--muted);margin:0;font-size:13px}.class-toast{z-index:20;border:1px solid var(--accent-teal);align-items:center;gap:10px;max-width:min(540px,100vw - 32px);min-height:50px;display:flex;position:fixed;bottom:20px;right:20px}@supports (color:color-mix(in lab, red, red)){.class-toast{border:1px solid color-mix(in srgb, var(--accent-teal) 27%, var(--line))}}.class-toast{background:var(--card);color:var(--ink);border-radius:14px;padding:9px 10px 9px 14px;font-size:12px;animation:.18s ease-out toast-in;box-shadow:0 12px 32px #12264f29}.class-toast-success>svg{color:#218354;flex:none}.class-toast-error{border-color:#d89393}.class-toast-error>svg{color:#bd4141;flex:none}.class-toast-action,.class-toast-close{min-height:44px;color:var(--royal);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:730;display:inline-flex}.class-toast-action{text-underline-offset:2px;padding:0 8px;text-decoration:underline}.class-toast-close{width:44px;color:var(--muted)}.student-grid-skeleton{margin-top:20px}.student-skeleton{border:1px solid var(--line);background:linear-gradient(100deg, var(--card) 25%, var(--royal) 45%, var(--card) 65%);border-radius:16px;min-height:165px}@supports (color:color-mix(in lab, red, red)){.student-skeleton{background:linear-gradient(100deg, var(--card) 25%, color-mix(in srgb, var(--royal) 8%, var(--card)) 45%, var(--card) 65%)}}.student-skeleton{background-size:220% 100%;animation:1.4s ease-in-out infinite skeleton-shimmer}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}@keyframes skeleton-shimmer{to{background-position:-220% 0}}@keyframes counter-in{0%{opacity:.6;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (width<=1024px){.student-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.student-grid-list{grid-template-columns:minmax(0,1fr)}}@media (width<=760px){.classroom-heading{flex-direction:column;align-items:flex-start}.classroom-meta{justify-content:flex-start}.student-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-grid-list{grid-template-columns:minmax(0,1fr)}.deck-toolbar{flex-direction:column;align-items:flex-start}.deck-actions{width:100%}.deck-search{flex:1;width:auto}}@media (width<=520px){.classroom-page{padding-top:26px}.module-tab{min-height:48px;padding:0 10px;font-size:11px}.deck-counts{grid-template-columns:repeat(2,minmax(0,1fr))}.student-grid,.student-grid-list{grid-template-columns:minmax(0,1fr)}.student-card-list .student-card-content{flex-direction:column;align-items:flex-start}.student-card-list .student-card-details{margin-left:54px}.class-schedule-pill{min-height:38px}.class-toast{max-width:none;bottom:12px;left:12px;right:12px}}.attendance-module{padding-bottom:26px}.attendance-heading{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.attendance-heading h2{color:var(--navy);letter-spacing:-.03em;margin:6px 0;font-size:22px;font-weight:750}.attendance-heading p{color:var(--muted);margin:0;font-size:12px}.grace-control{border:1px solid var(--line);background:var(--card);border-radius:14px;width:min(370px,100%);padding:12px}.grace-control>label{color:var(--navy);margin-bottom:7px;font-size:11px;font-weight:750;display:block}.grace-input-row{align-items:center;gap:8px;display:flex}.grace-input-row .input{width:92px;height:40px}.grace-input-row>span{color:var(--muted);margin-right:auto;font-size:11px}.grace-control>span{color:var(--muted);margin-top:7px;font-size:10px;line-height:1.45;display:block}.attendance-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0;display:grid}.attendance-toolbar{border:1px solid var(--line);background:var(--card);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;min-height:58px;margin:0 0 16px;padding:7px 9px 7px 13px;display:flex}@supports (color:color-mix(in lab, red, red)){.attendance-toolbar{background:color-mix(in srgb, var(--card) 80%, transparent)}}.attendance-roster-actions{min-width:0}.attendance-roster-actions .deck-search{width:min(270px,28vw)}.attendance-taking{border:1px solid var(--line);background:var(--card);border-radius:18px;padding:18px}@supports (color:color-mix(in lab, red, red)){.attendance-taking{background:color-mix(in srgb, var(--card) 78%, transparent)}}.attendance-taking-header{justify-content:space-between;align-items:center;gap:14px;display:flex}.attendance-taking-header>div{flex-direction:column;gap:6px;display:flex}.attendance-taking-header strong{color:var(--navy);font-size:12px}.attendance-progress{background:var(--muted);border-radius:10px;height:6px;margin:14px 0;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.attendance-progress{background:color-mix(in srgb, var(--muted) 14%, var(--card))}}.attendance-progress span{border-radius:inherit;background:linear-gradient(90deg,#278655,#58b887);height:100%;transition:width .18s ease-out;display:block}.attendance-focus-stage{perspective:none;background:0 0;border:0;min-height:440px;padding:12px 0 0}.attendance-focus-card{justify-content:center;min-height:390px}.attendance-focus-actions{flex-wrap:wrap;gap:8px;width:min(390px,100%);margin-top:8px;display:flex}.attendance-focus-actions .status-button{min-height:50px;font-size:12px}.attendance-previous{min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;margin-top:7px;font-size:11px;font-weight:670;display:inline-flex}.attendance-previous svg{transform:rotate(180deg)}.attendance-previous:hover{color:var(--royal)}.attendance-previous:focus-visible{outline:3px solid var(--royal)}@supports (color:color-mix(in lab, red, red)){.attendance-previous:focus-visible{outline:3px solid color-mix(in srgb, var(--royal) 64%, transparent)}}.attendance-previous:focus-visible{outline-offset:2px}.attendance-complete{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:300px;padding:22px;display:flex}.attendance-complete>span{background:var(--accent-teal);border-radius:18px;place-items:center;width:58px;height:58px;display:grid}@supports (color:color-mix(in lab, red, red)){.attendance-complete>span{background:color-mix(in srgb, var(--accent-teal) 14%, var(--card))}}.attendance-complete>span{color:var(--accent-teal)}.attendance-complete h3{color:var(--navy);margin:15px 0 5px;font-size:19px}.attendance-complete p{max-width:410px;color:var(--muted);margin:0 0 17px;font-size:12px;line-height:1.6}.unmarked-filter{min-height:44px;color:var(--navy);cursor:pointer;align-items:center;gap:9px;font-size:12px;font-weight:650;display:inline-flex}.unmarked-filter input{width:18px;height:18px;accent-color:var(--royal)}.unmarked-filter strong{background:var(--muted);border-radius:20px;place-items:center;min-width:23px;height:23px;display:inline-grid}@supports (color:color-mix(in lab, red, red)){.unmarked-filter strong{background:color-mix(in srgb, var(--muted) 11%, transparent)}}.unmarked-filter strong{color:var(--muted);font-size:10px}.status-button-row{flex-wrap:wrap;gap:5px;margin-top:auto;padding-top:12px;display:flex}.status-button{border:1px solid var(--line);background:var(--card);min-width:44px;min-height:44px;color:var(--muted);cursor:pointer;border-radius:10px;flex:1 1 0;justify-content:center;align-items:center;gap:5px;padding:0 7px;font-size:10px;font-weight:720;transition:background-color .14s,border-color .14s,color .14s,transform .14s;display:inline-flex}.status-button:hover:not(:disabled){transform:translateY(-1px)}.status-button:disabled{cursor:wait;opacity:.55}.status-button-present.is-active{background:#238452;border-color:#35825d}@supports (color:color-mix(in lab, red, red)){.status-button-present.is-active{background:color-mix(in srgb, #238452 13%, var(--card))}}.status-button-present.is-active{color:#176b47;animation:.18s ease-out status-pop}.status-button-late.is-active{background:#ae7300;border-color:#a77719}@supports (color:color-mix(in lab, red, red)){.status-button-late.is-active{background:color-mix(in srgb, #ae7300 15%, var(--card))}}.status-button-late.is-active{color:#855000;animation:.18s ease-out status-pop}.status-button-absent.is-active{background:#b13f4b;border-color:#a44950}@supports (color:color-mix(in lab, red, red)){.status-button-absent.is-active{background:color-mix(in srgb, #b13f4b 13%, var(--card))}}.status-button-absent.is-active{color:#aa373f;animation:.18s ease-out status-pop}[data-theme=dark] .status-button-present.is-active{color:#94e6b7}[data-theme=dark] .status-button-late.is-active{color:#ffd286}[data-theme=dark] .status-button-absent.is-active{color:#ff9da4}.student-card-actions{margin-top:auto}.student-card-list .status-button-row{margin-top:0;padding-top:0}.attendance-filter-empty{border:1px dashed var(--line-strong);min-height:200px;color:var(--muted);text-align:center;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:22px;display:flex}.attendance-filter-empty>svg{color:var(--accent-teal)}.attendance-filter-empty strong{color:var(--navy);font-size:15px}.attendance-filter-empty>span{margin-bottom:5px;font-size:12px}.confirm-backdrop{z-index:30;background:#0a14287a;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.confirm-dialog{border:1px solid var(--line);background:var(--card);border-radius:20px;width:min(440px,100%);padding:24px;box-shadow:0 24px 70px #0000003d}.confirm-icon{background:var(--royal);border-radius:15px;place-items:center;width:46px;height:46px;display:grid}@supports (color:color-mix(in lab, red, red)){.confirm-icon{background:color-mix(in srgb, var(--royal) 11%, transparent)}}.confirm-icon{color:var(--royal)}.confirm-dialog h2{color:var(--navy);margin:16px 0 7px;font-size:19px}.confirm-dialog p{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.confirm-actions{justify-content:flex-end;gap:8px;margin-top:22px;display:flex}@keyframes status-pop{0%{transform:scale(.95)}75%{transform:scale(1.04)}to{transform:scale(1)}}@media (width<=760px){.attendance-heading{flex-direction:column}.grace-control{width:100%}.attendance-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-toolbar{flex-direction:column;align-items:stretch}.attendance-roster-actions{flex-wrap:wrap}.attendance-roster-actions .deck-search{width:100%}.attendance-taking-header{flex-direction:column;align-items:flex-start}}@media (width<=520px){.attendance-toolbar{flex-direction:column;align-items:stretch;padding:8px}.attendance-toolbar .button{width:100%}.attendance-roster-actions .deck-search{flex:1;width:auto}.status-button{font-size:11px}}.recitation-module{padding-bottom:35px}.recitation-heading{justify-content:space-between;align-items:center;gap:18px;display:flex}.recitation-heading h2{color:var(--navy);letter-spacing:-.03em;margin:6px 0;font-size:22px;font-weight:750}.recitation-heading p{color:var(--muted);margin:0;font-size:12px}.recitation-pool-count{border:1px solid var(--accent-teal);align-items:center;gap:11px;min-height:64px;display:flex}@supports (color:color-mix(in lab, red, red)){.recitation-pool-count{border:1px solid color-mix(in srgb, var(--accent-teal) 30%, var(--line))}}.recitation-pool-count{background:var(--accent-teal);border-radius:15px;padding:9px 15px}@supports (color:color-mix(in lab, red, red)){.recitation-pool-count{background:color-mix(in srgb, var(--accent-teal) 7%, var(--card))}}.recitation-pool-count>span{background:var(--accent-teal);border-radius:13px;place-items:center;width:42px;height:42px;display:grid}@supports (color:color-mix(in lab, red, red)){.recitation-pool-count>span{background:color-mix(in srgb, var(--accent-teal) 16%, var(--card))}}.recitation-pool-count>span{color:var(--navy);font-variant-numeric:tabular-nums;font-size:20px;font-weight:780}.recitation-pool-count>div{flex-direction:column;gap:3px;display:flex}.recitation-pool-count strong{color:var(--navy);font-size:11px}.recitation-pool-count small{color:var(--muted);font-size:10px}.recitation-mode{border:1px solid var(--line);background:var(--card);border-radius:13px;flex-wrap:wrap;align-items:center;gap:6px;margin:19px 0 15px;padding:6px;display:flex}@supports (color:color-mix(in lab, red, red)){.recitation-mode{background:color-mix(in srgb, var(--card) 82%, transparent)}}.recitation-mode>span:first-child{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:0 8px;font-size:10px;font-weight:730}.recitation-mode button{min-height:40px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;align-items:center;gap:7px;padding:0 11px;font-size:11px;font-weight:700;transition:background-color .14s,color .14s;display:inline-flex}.recitation-mode button:hover{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.recitation-mode button:hover{background:color-mix(in srgb, var(--royal) 7%, transparent)}}.recitation-mode button:hover{color:var(--navy)}.recitation-mode button.is-active{border-color:var(--royal)}@supports (color:color-mix(in lab, red, red)){.recitation-mode button.is-active{border-color:color-mix(in srgb, var(--royal) 18%, var(--line))}}.recitation-mode button.is-active{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.recitation-mode button.is-active{background:color-mix(in srgb, var(--royal) 11%, var(--card))}}.recitation-mode button.is-active{color:var(--royal)}.recitation-mode button:focus-visible,.score-chips button:focus-visible{outline:3px solid var(--royal)}@supports (color:color-mix(in lab, red, red)){.recitation-mode button:focus-visible,.score-chips button:focus-visible{outline:3px solid color-mix(in srgb, var(--royal) 60%, transparent)}}.recitation-mode button:focus-visible,.score-chips button:focus-visible{outline-offset:2px}.recitation-mode-help{color:var(--muted);margin-left:auto;padding:0 8px;font-size:10px}.recitation-stage{border:1px dashed var(--line-strong);background:radial-gradient(ellipse at 50% 20%, var(--royal), transparent 70%), var(--card);border-radius:20px;place-items:center;min-height:360px;padding:20px;display:grid}@supports (color:color-mix(in lab, red, red)){.recitation-stage{background:radial-gradient(ellipse at 50% 20%, color-mix(in srgb, var(--royal) 8%, transparent), transparent 70%), color-mix(in srgb, var(--card) 66%, transparent)}}.recitation-stage{perspective:1100px}.recitation-card{border:1px solid var(--line);border-top:5px solid var(--royal);background:repeating-linear-gradient(to bottom, transparent 0, transparent 36px, var(--royal) 37px, transparent 38px), var(--card);border-radius:21px;flex-direction:column;align-items:center;width:min(470px,100%);min-height:330px;padding:18px 24px 20px;display:flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.recitation-card{background:repeating-linear-gradient(to bottom, transparent 0, transparent 36px, color-mix(in srgb, var(--royal) 6%, transparent) 37px, transparent 38px), var(--card)}}.recitation-card{box-shadow:0 16px 38px #12264f26}.recitation-call-label{background:var(--accent-teal);border-radius:20px;align-items:center;gap:6px;min-height:25px;padding:0 9px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.recitation-call-label{background:color-mix(in srgb, var(--accent-teal) 11%, var(--card))}}.recitation-call-label{color:var(--accent-teal);letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:790}.recitation-student-photo{border:3px solid var(--card);background:var(--royal);border-radius:24px;flex:none;place-items:center;width:76px;height:76px;margin-top:13px;display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.recitation-student-photo{background:color-mix(in srgb, var(--royal) 11%, var(--card))}}.recitation-student-photo{box-shadow:0 0 0 1px var(--line), 0 5px 15px #12264f1a;color:var(--royal)}.recitation-student-photo img{object-fit:cover;width:100%;height:100%}.recitation-card h3{max-width:100%;color:var(--navy);letter-spacing:-.035em;text-overflow:ellipsis;white-space:nowrap;margin:10px 0 3px;font-size:clamp(20px,3vw,25px);font-weight:780;overflow:hidden}.recitation-student-id{color:var(--muted);letter-spacing:.035em;margin:0;font-size:11px;font-weight:650}.recitation-student-program{color:var(--muted);margin:4px 0 12px;font-size:10px}.recitation-score{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;width:min(330px,100%);padding-top:11px;display:flex}.recitation-score>span{color:var(--muted);white-space:nowrap;font-size:10px;font-weight:650}.score-chips{gap:5px;display:flex}.score-chips button{border:1px solid var(--line);background:var(--card);width:44px;height:44px;color:var(--navy);cursor:pointer;border-radius:10px;place-items:center;font-size:12px;font-weight:740;transition:transform .14s,background-color .14s,border-color .14s;display:grid}.score-chips button:hover:not(:disabled){border-color:var(--royal);transform:translateY(-2px)}.score-chips button.is-active{border-color:var(--royal-solid);background:var(--royal-solid);color:var(--on-royal-solid)}.score-chips button:disabled{opacity:.55;cursor:wait}.recitation-empty-card{text-align:center;flex-direction:column;align-items:center;max-width:420px;display:flex}.recitation-deck-art{width:86px;height:75px;margin-bottom:14px;position:relative}.recitation-deck-art span{border:1px solid var(--line);background:var(--card);width:52px;height:66px;color:var(--royal);border-radius:11px;place-items:center;display:grid;position:absolute;top:4px;box-shadow:0 7px 16px #12264f14}.recitation-deck-art span:first-child{left:4px;transform:rotate(-16deg)}.recitation-deck-art span:nth-child(2){left:17px;transform:rotate(9deg)}.recitation-deck-art span:last-child{right:4px;transform:rotate(17deg)}.recitation-empty-card h3{color:var(--navy);margin:0;font-size:18px}.recitation-empty-card p{max-width:385px;color:var(--muted);margin:7px 0 0;font-size:12px;line-height:1.6}.recitation-actions{justify-content:center;gap:9px;margin-top:15px;display:flex}.recitation-primary-action{min-width:150px}.recitation-pool-hint{color:var(--muted);text-align:center;justify-content:center;align-items:center;gap:7px;margin:10px 0 0;font-size:10px;display:flex}.recitation-pool-hint svg{flex:none}.recitation-history{border:1px solid var(--line);background:var(--card);border-radius:15px;margin-top:26px;padding:13px}.recitation-history-heading{align-items:center;gap:8px;margin-bottom:10px;display:flex}.recitation-history-heading h3{color:var(--navy);margin:0;font-size:12px;font-weight:750}.recitation-history-heading>span{background:var(--royal);border-radius:12px;place-items:center;min-width:21px;height:21px;display:inline-grid}@supports (color:color-mix(in lab, red, red)){.recitation-history-heading>span{background:color-mix(in srgb, var(--royal) 10%, transparent)}}.recitation-history-heading>span{color:var(--royal);font-size:9px;font-weight:750}.recitation-history ol{gap:8px;margin:0;padding:0 0 2px;list-style:none;display:flex;overflow-x:auto}.recitation-history li{border:1px solid var(--line);border-radius:12px;flex:none;align-items:center;gap:8px;min-width:195px;min-height:50px;padding:6px 9px;display:flex}.history-student-photo{background:var(--royal);border-radius:10px;flex:none;place-items:center;width:32px;height:32px;display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.history-student-photo{background:color-mix(in srgb, var(--royal) 9%, var(--card))}}.history-student-photo{color:var(--royal)}.history-student-photo img{object-fit:cover;width:100%;height:100%}.history-student-name{min-width:0;color:var(--navy);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:10px;font-weight:700;overflow:hidden}.history-student-score,.recitation-history time{color:var(--muted);white-space:nowrap;font-size:9px}@media (width<=760px){.recitation-heading{flex-direction:column;align-items:flex-start}.recitation-mode-help{flex-basis:100%;margin:0;padding:4px 8px}}@media (width<=520px){.recitation-stage{min-height:350px;padding:12px}.recitation-card{min-height:322px;padding-left:13px;padding-right:13px}.recitation-mode>span:first-child{flex-basis:100%;padding-top:4px}.recitation-score{flex-direction:column;gap:7px}}.student-card-open{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0;display:block}.student-card-open:focus-visible{outline:3px solid var(--royal)}@supports (color:color-mix(in lab, red, red)){.student-card-open:focus-visible{outline:3px solid color-mix(in srgb, var(--royal) 65%, transparent)}}.student-card-open:focus-visible{outline-offset:4px}.student-card-open-hint{color:var(--royal);align-items:center;gap:5px;margin:9px 0 0 54px;font-size:10px;font-weight:690;display:inline-flex}.student-card-open-hint svg{transform:scale(.8)}.student-card-list .student-card-open{flex:1}.student-card-list .student-card-open-hint{margin-top:6px}.student-detail-backdrop{z-index:40;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#091225a6;place-items:center;padding:16px;animation:.15s ease-out toast-in;display:grid;position:fixed;inset:0;overflow-y:auto}.index-card-scene{perspective:1800px;aspect-ratio:5/3;outline:none;width:min(880px,100vw - 32px,166.667dvh - 80px);max-height:calc(100dvh - 48px);position:relative}.index-card{width:100%;height:100%;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.2,.7,.2,1);display:grid;position:relative}.index-card.is-flipped{transform:rotateY(180deg)}@media (prefers-reduced-motion:reduce){.index-card{transition:none;transform:none!important}.index-card-face{transition:opacity .15s}.index-card-face[aria-hidden=true]{opacity:0;pointer-events:none}.index-card-face[aria-hidden=false]{opacity:1;pointer-events:auto}}.index-card-face{backface-visibility:hidden;border:1px solid var(--line);border-top:6px solid var(--royal);background:repeating-linear-gradient(to bottom, transparent 0, transparent 35px, var(--royal) 36px, transparent 37px), var(--card);border-radius:20px;flex-direction:column;grid-area:1/1;width:100%;height:100%;min-height:0;padding:18px 24px 14px;display:flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.index-card-face{background:repeating-linear-gradient(to bottom, transparent 0, transparent 35px, color-mix(in srgb, var(--royal) 5.5%, transparent) 36px, transparent 37px), color-mix(in srgb, var(--card) 96%, var(--accent-amber))}}.index-card-face{box-shadow:0 10px 30px -5px #09142d33, 0 24px 60px #00000040, 3px 6px 0 0 var(--card), 6px 12px 0 0 var(--card)}@supports (color:color-mix(in lab, red, red)){.index-card-face{box-shadow:0 10px 30px -5px #09142d33, 0 24px 60px #00000040, 3px 6px 0 0 color-mix(in srgb, var(--card) 85%, var(--line)), 6px 12px 0 0 color-mix(in srgb, var(--card) 70%, var(--line))}}[data-theme=dark] .index-card-face{background:repeating-linear-gradient(to bottom, transparent 0, transparent 35px, var(--royal) 36px, transparent 37px), var(--card)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .index-card-face{background:repeating-linear-gradient(to bottom, transparent 0, transparent 35px, color-mix(in srgb, var(--royal) 8%, transparent) 36px, transparent 37px), color-mix(in srgb, var(--card) 95%, #182234)}}[data-theme=dark] .index-card-face{box-shadow:0 10px 30px -5px #00000080, 0 25px 65px #000000a6, 3px 6px 0 0 var(--card), 6px 12px 0 0 var(--card)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .index-card-face{box-shadow:0 10px 30px -5px #00000080, 0 25px 65px #000000a6, 3px 6px 0 0 color-mix(in srgb, var(--card) 75%, black), 6px 12px 0 0 color-mix(in srgb, var(--card) 55%, black)}}.index-card-back{transform:rotateY(180deg)}.index-card-header{flex:none;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:8px;display:flex}.index-card-header-compact{border-bottom:1px solid var(--royal);padding-bottom:12px}@supports (color:color-mix(in lab, red, red)){.index-card-header-compact{border-bottom:1px solid color-mix(in srgb, var(--royal) 8%, var(--line))}}.index-card-header-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.student-detail-profile{align-items:center;gap:16px;min-width:0;display:flex}.student-detail-profile-compact{gap:12px}.student-detail-profile-text{min-width:0}.student-detail-profile-text .eyebrow{text-transform:uppercase;letter-spacing:.06em;color:var(--royal);align-items:center;gap:5px;font-size:10px;font-weight:700;display:flex}.student-detail-profile-text h2{color:var(--navy);letter-spacing:-.025em;text-overflow:ellipsis;white-space:nowrap;outline:none;margin:3px 0 2px;font-size:clamp(18px,2.5vw,24px);font-weight:800;overflow:hidden}.student-detail-photo{border:2px solid var(--card);background:var(--royal);border-radius:18px;flex:none;place-items:center;width:72px;height:72px;display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.student-detail-photo{background:color-mix(in srgb, var(--royal) 11%, var(--card))}}.student-detail-photo{box-shadow:0 0 0 1px var(--line), 0 4px 12px #12264f1f;color:var(--royal)}.student-detail-photo img{object-fit:cover;width:100%;height:100%}.index-card-back-avatar{border-radius:12px;flex-shrink:0;width:44px;height:44px}.student-detail-id{color:var(--muted);letter-spacing:.03em;margin:0;font-size:11px;font-weight:600}.index-card-flip-btn{border:1px solid var(--line);background:var(--card);min-height:40px;color:var(--navy);cursor:pointer;border-radius:12px;align-items:center;gap:6px;padding:.35rem .85rem;font-size:11px;font-weight:650;transition:border-color .15s,background .15s,color .15s;display:inline-flex}.index-card-flip-btn:hover{border-color:var(--royal);color:var(--royal);background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.index-card-flip-btn:hover{background:color-mix(in srgb, var(--royal) 6%, var(--card))}}.index-card-flip-btn:focus-visible{outline:3px solid var(--royal)}@supports (color:color-mix(in lab, red, red)){.index-card-flip-btn:focus-visible{outline:3px solid color-mix(in srgb, var(--royal) 65%, transparent)}}.index-card-flip-btn:focus-visible{outline-offset:2px}.student-detail-close{border:1px solid var(--line);background:var(--card);width:40px;height:40px;color:var(--muted);cursor:pointer;border-radius:12px;place-items:center;transition:border-color .15s,color .15s;display:grid}.student-detail-close:hover{border-color:var(--royal);color:var(--royal)}.student-detail-close:focus-visible{outline:3px solid var(--royal)}@supports (color:color-mix(in lab, red, red)){.student-detail-close:focus-visible{outline:3px solid color-mix(in srgb, var(--royal) 65%, transparent)}}.student-detail-close:focus-visible{outline-offset:2px}.student-detail-info{flex:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:10px 0 12px;display:grid}.student-detail-info>div{border:1px solid var(--line);flex-direction:column;gap:2px;min-width:0;display:flex}@supports (color:color-mix(in lab, red, red)){.student-detail-info>div{border:1px solid color-mix(in srgb, var(--line) 80%, transparent)}}.student-detail-info>div{background:var(--card);border-radius:10px;padding:6px 10px}@supports (color:color-mix(in lab, red, red)){.student-detail-info>div{background:color-mix(in srgb, var(--card) 92%, transparent)}}.student-detail-info span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:9px;font-weight:700}.student-detail-info strong{overflow-wrap:anywhere;text-overflow:ellipsis;white-space:nowrap;color:var(--navy);font-size:11px;font-weight:680;overflow:hidden}.index-card-records-wrapper{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.index-card-front-columns{flex:auto;grid-template-columns:1fr 1fr;gap:20px;height:100%;min-height:0;display:grid}.index-card-back-columns{flex:auto;grid-template-columns:1fr 1fr 1fr;gap:14px;height:100%;min-height:0;display:grid}.index-card-col{border:1px solid var(--line);flex-direction:column;height:100%;min-height:0;display:flex}@supports (color:color-mix(in lab, red, red)){.index-card-col{border:1px solid color-mix(in srgb, var(--line) 70%, transparent)}}.index-card-col{background:var(--card);border-radius:12px}@supports (color:color-mix(in lab, red, red)){.index-card-col{background:color-mix(in srgb, var(--card) 60%, transparent)}}.index-card-col{padding:8px 10px}.index-card-col-title{color:var(--navy);border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;margin:0 0 6px;font-size:11.5px;font-weight:750;display:flex}@supports (color:color-mix(in lab, red, red)){.index-card-col-title{border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent)}}.index-card-col-title{padding-bottom:6px}.index-card-col-title-left{align-items:center;gap:6px;display:flex}.index-card-col-title svg{color:var(--royal);flex-shrink:0}.index-card-col-count,.index-card-col-summary{color:var(--muted);font-size:10px;font-weight:600}.index-card-records{flex:auto;min-height:0;padding-right:4px;overflow-y:auto}.index-card-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.index-card-row{border-bottom:1px solid var(--royal);justify-content:space-between;align-items:center;gap:8px;height:36px;min-height:36px;padding:0 4px;display:flex}@supports (color:color-mix(in lab, red, red)){.index-card-row{border-bottom:1px solid color-mix(in srgb, var(--royal) 6%, transparent)}}.index-card-row{font-size:11px}.index-card-row time{color:var(--muted);flex-shrink:0;font-size:10px;font-weight:550}.index-card-mode{color:var(--muted);text-transform:capitalize;font-size:10.5px;font-weight:600}.index-card-item-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--navy);flex:auto;font-size:11px;font-weight:600;overflow:hidden}.index-card-score{font-variant-numeric:tabular-nums;color:var(--navy);text-align:right;flex-shrink:0;font-size:11px;font-weight:750}.index-card-ungraded{color:var(--muted);flex-shrink:0;font-size:10px;font-style:italic}.index-card-project-tag{text-transform:uppercase;letter-spacing:.04em;border-radius:6px;flex-shrink:0;align-items:center;padding:2px 6px;font-size:9.5px;font-weight:700;display:inline-flex}.project-tag-midterm{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.project-tag-midterm{background:color-mix(in srgb, var(--royal) 14%, var(--card))}}.project-tag-midterm{color:var(--royal);border:1px solid var(--royal)}@supports (color:color-mix(in lab, red, red)){.project-tag-midterm{border:1px solid color-mix(in srgb, var(--royal) 30%, transparent)}}.project-tag-finals{background:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.project-tag-finals{background:color-mix(in srgb, var(--accent-teal) 14%, var(--card))}}.project-tag-finals{color:var(--accent-teal);border:1px solid var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.project-tag-finals{border:1px solid color-mix(in srgb, var(--accent-teal) 30%, transparent)}}.index-card-footer{border-top:1px solid var(--royal);flex:none;justify-content:space-between;align-items:center;margin-top:8px;padding-top:10px;padding-right:64px;display:flex}@supports (color:color-mix(in lab, red, red)){.index-card-footer{border-top:1px solid color-mix(in srgb, var(--royal) 8%, var(--line))}}.index-card-footer{font-size:11px}.index-card-hint{color:var(--muted);font-size:10.5px;font-style:italic}.index-card-tally{color:var(--navy);font-size:11px;font-weight:650}.index-card-dog-ear{cursor:pointer;z-index:5;background:0 0;border:none;border-bottom-right-radius:20px;justify-content:flex-end;align-items:flex-end;width:62px;height:62px;padding:6px 8px;transition:transform .16s;display:flex;position:absolute;bottom:0;right:0}.index-card-dog-ear:hover{transform:scale(1.06)}.index-card-dog-ear:focus-visible{outline:3px solid var(--royal)}@supports (color:color-mix(in lab, red, red)){.index-card-dog-ear:focus-visible{outline:3px solid color-mix(in srgb, var(--royal) 65%, transparent)}}.index-card-dog-ear:focus-visible{outline-offset:-2px;border-bottom-right-radius:20px}.dog-ear-fold{border-style:solid;border-width:0 0 54px 54px;border-color:transparent transparent var(--royal) transparent;width:0;height:0;position:absolute;bottom:0;right:0}@supports (color:color-mix(in lab, red, red)){.dog-ear-fold{border-color:transparent transparent color-mix(in srgb, var(--royal) 16%, var(--card)) transparent}}.dog-ear-fold{filter:drop-shadow(-2px -2px 3px #0000001f);border-bottom-right-radius:20px;transition:border-color .15s}[data-theme=dark] .dog-ear-fold{border-color:transparent transparent var(--royal) transparent}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .dog-ear-fold{border-color:transparent transparent color-mix(in srgb, var(--royal) 28%, var(--card)) transparent}}[data-theme=dark] .dog-ear-fold{filter:drop-shadow(-2px -2px 4px #00000073)}.index-card-dog-ear:hover .dog-ear-fold{border-color:transparent transparent var(--royal) transparent}@supports (color:color-mix(in lab, red, red)){.index-card-dog-ear:hover .dog-ear-fold{border-color:transparent transparent color-mix(in srgb, var(--royal) 30%, var(--card)) transparent}}.dog-ear-label{z-index:2;color:var(--royal);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:3px;margin-bottom:2px;margin-right:2px;font-size:10px;font-weight:750;display:flex;position:relative}.student-detail-message{color:var(--muted);margin:0;font-size:11px}.student-detail-error{color:#aa373f}[data-theme=dark] .student-detail-error{color:#ff9da4}.recitation-mini-deck{border:1px solid var(--line);background:var(--card);border-radius:14px;margin:12px 0 11px;padding:11px 12px 12px}@supports (color:color-mix(in lab, red, red)){.recitation-mini-deck{background:color-mix(in srgb, var(--card) 88%, transparent)}}.recitation-mini-deck-heading{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:9px;display:flex}.recitation-mini-deck-heading strong{color:var(--navy);font-size:11px;font-weight:760}.recitation-mini-deck-heading>span{color:var(--muted);font-size:9px}.recitation-mini-cards{scrollbar-width:thin;gap:7px;padding:2px 1px 4px;display:flex;overflow-x:auto}.recitation-mini-card{border:1px solid var(--line);border-top:3px solid var(--status-present);background:repeating-linear-gradient(to bottom, transparent 0, transparent 25px, var(--royal) 26px, transparent 27px), var(--card);border-radius:11px;flex-direction:column;flex:none;justify-content:center;align-items:center;gap:6px;width:102px;min-height:104px;padding:8px 6px;display:flex}@supports (color:color-mix(in lab, red, red)){.recitation-mini-card{background:repeating-linear-gradient(to bottom, transparent 0, transparent 25px, color-mix(in srgb, var(--royal) 5%, transparent) 26px, transparent 27px), var(--card)}}.recitation-mini-card{box-shadow:0 3px 8px #12264f0f}.recitation-mini-photo{aspect-ratio:1;border:1px solid var(--line);background:var(--royal);border-radius:50%;flex:none;place-items:center;width:48px;height:48px;display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.recitation-mini-photo{background:color-mix(in srgb, var(--royal) 10%, var(--card))}}.recitation-mini-photo{color:var(--royal)}.recitation-mini-photo img{object-fit:cover;object-position:center top;width:100%;height:100%}@supports (color:color-mix(in lab, red, red)){.recitation-mini-late{background:color-mix(in srgb, #ae7300 12%, var(--card))}}[data-theme=dark] .recitation-mini-late{color:#ffd286}.recitation-mini-empty{color:var(--muted);margin:0;font-size:10px}.recitation-animation-toggle{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin:10px 2px;display:flex}.recitation-sound-toggle{border:1px solid var(--line,var(--border-color));background:var(--card,#fff);min-height:34px;color:var(--royal);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 11px;font-size:11px;font-weight:700;transition:background-color .14s,border-color .14s,color .14s;display:inline-flex}.recitation-sound-toggle:hover{border-color:var(--royal)}.recitation-sound-toggle.is-muted{color:var(--muted,var(--text-muted))}.recitation-animation-switch{min-height:44px;color:var(--navy);cursor:pointer;align-items:center;gap:11px;font-size:11px;font-weight:680;display:inline-flex;position:relative}.recitation-animation-switch input{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.recitation-switch-track{border:1px solid var(--line-strong);background:var(--muted);border-radius:20px;flex:none;width:46px;height:26px;position:relative}@supports (color:color-mix(in lab, red, red)){.recitation-switch-track{background:color-mix(in srgb, var(--muted) 20%, var(--card))}}.recitation-switch-track{transition:background-color .16s,border-color .16s}.recitation-switch-track:after{background:var(--card);content:"";border-radius:50%;width:18px;height:18px;transition:transform .16s;position:absolute;top:3px;left:3px;box-shadow:0 1px 4px #0003}.recitation-animation-switch input:checked+.recitation-switch-track,.recitation-switch-row input:checked+.recitation-switch-track{border-color:var(--royal-solid);background:var(--royal-solid)}.recitation-animation-switch input:checked+.recitation-switch-track:after,.recitation-switch-row input:checked+.recitation-switch-track:after{transform:translate(20px)}.recitation-animation-switch input:focus-visible+.recitation-switch-track,.recitation-switch-row input:focus-visible+.recitation-switch-track{outline:3px solid var(--royal)}@supports (color:color-mix(in lab, red, red)){.recitation-animation-switch input:focus-visible+.recitation-switch-track,.recitation-switch-row input:focus-visible+.recitation-switch-track{outline:3px solid color-mix(in srgb, var(--royal) 55%, transparent)}}.recitation-animation-switch input:focus-visible+.recitation-switch-track,.recitation-switch-row input:focus-visible+.recitation-switch-track{outline-offset:3px}.recitation-duration-control{min-height:44px;color:var(--navy);cursor:pointer;align-items:center;gap:8px;padding:0 4px;font-size:11px;font-weight:680;display:inline-flex}.recitation-duration-control input[type=range]{width:76px;accent-color:var(--royal);cursor:pointer}.recitation-duration-control:has(input:disabled){opacity:.5;cursor:not-allowed}.recitation-duration-control input:disabled{cursor:not-allowed}.recitation-shuffling-card{border:1px solid var(--line);border-top:5px solid var(--royal);background:repeating-linear-gradient(to bottom, transparent 0, transparent 32px, var(--royal) 33px, transparent 34px), var(--card);border-radius:19px;flex-direction:column;justify-content:center;align-items:center;width:min(290px,100%);min-height:284px;padding:19px;display:flex}@supports (color:color-mix(in lab, red, red)){.recitation-shuffling-card{background:repeating-linear-gradient(to bottom, transparent 0, transparent 32px, color-mix(in srgb, var(--royal) 6%, transparent) 33px, transparent 34px), var(--card)}}.recitation-shuffling-card{animation:.18s ease-in-out infinite alternate shuffle-flip;box-shadow:0 12px 30px #12264f21}.recitation-shuffling-photo{aspect-ratio:1;border:2px solid var(--card);background:var(--royal);border-radius:50%;flex:none;place-items:center;width:80px;height:80px;display:grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.recitation-shuffling-photo{background:color-mix(in srgb, var(--royal) 10%, var(--card))}}.recitation-shuffling-photo{box-shadow:0 0 0 1px var(--line);color:var(--royal)}.recitation-shuffling-photo img{object-fit:cover;object-position:center top;width:100%;height:100%}.recitation-shuffling-card>strong{max-width:100%;color:var(--navy);text-overflow:ellipsis;white-space:nowrap;margin-top:10px;font-size:16px;overflow:hidden}.recitation-shuffling-card>span:not(.recitation-shuffling-label):not(.avatar){color:var(--muted);margin-top:3px;font-size:10px}.recitation-shuffling-lines{flex-direction:column;gap:5px;width:165px;margin-top:14px;display:flex}.recitation-shuffling-lines i{background:var(--royal);border-radius:3px;height:3px;display:block}@supports (color:color-mix(in lab, red, red)){.recitation-shuffling-lines i{background:color-mix(in srgb, var(--royal) 14%, var(--line))}}.recitation-shuffling-lines i:nth-child(2){width:82%}.recitation-shuffling-lines i:nth-child(3){width:63%}.recitation-shuffling-label{color:var(--royal);margin-top:12px;font-size:10px;font-weight:730}@keyframes shuffle-flip{0%{transform:translateY(-3px)rotate(-2deg)rotateY(-5deg)}to{transform:translateY(3px)rotate(2deg)rotateY(5deg)}}@media (prefers-reduced-motion:reduce){.recitation-shuffling-card{animation:.1s ease-out both recitation-fade}}@keyframes recitation-fade{0%{opacity:0}to{opacity:1}}.landing-page{background:radial-gradient(ellipse at 76% 22%, var(--royal), transparent 34rem), var(--paper);min-height:100vh;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.landing-page{background:radial-gradient(ellipse at 76% 22%, color-mix(in srgb, var(--royal) 12%, transparent), transparent 34rem), var(--paper)}}.landing-header{z-index:2;border-bottom:1px solid var(--line);position:relative}@supports (color:color-mix(in lab, red, red)){.landing-header{border-bottom:1px solid color-mix(in srgb, var(--line) 76%, transparent)}}.landing-header{background:var(--card)}@supports (color:color-mix(in lab, red, red)){.landing-header{background:color-mix(in srgb, var(--card) 82%, transparent)}}.landing-header{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.landing-header-inner{justify-content:space-between;align-items:center;gap:24px;width:100%;max-width:1800px;min-height:78px;margin:0 auto;padding:0 clamp(18px,4.5vw,72px);display:flex}.landing-header .brand-logo{width:clamp(142px,15vw,190px)}.landing-nav{align-items:center;gap:clamp(8px,1.5vw,22px);display:flex}.landing-nav>a:not(.button){color:var(--muted);font-size:13px;font-weight:650;text-decoration:none}.landing-nav>a:not(.button):hover{color:var(--royal)}.landing-register{min-height:42px;padding:0 14px}.landing-main{width:100%;max-width:1800px;margin:0 auto;padding:0 clamp(18px,4.5vw,72px)}.landing-hero{grid-template-columns:minmax(0,1.03fr) minmax(420px,.97fr);align-items:center;gap:clamp(30px,5vw,80px);min-height:min(690px,100vh - 78px);padding:54px 0 64px;display:grid}.landing-copy{z-index:1;max-width:660px;position:relative}.landing-kicker{color:var(--royal);letter-spacing:.13em;text-transform:uppercase;align-items:center;gap:9px;font-size:11px;font-weight:780;display:inline-flex}.landing-kicker>span{background:var(--accent-teal);width:8px;height:8px;box-shadow:0 0 0 5px var(--accent-teal);border-radius:50%}@supports (color:color-mix(in lab, red, red)){.landing-kicker>span{box-shadow:0 0 0 5px color-mix(in srgb, var(--accent-teal) 13%, transparent)}}.landing-copy h1{max-width:710px;color:var(--navy);letter-spacing:-.065em;margin:22px 0 19px;font-size:clamp(46px,6.2vw,82px);font-weight:790;line-height:.99}.landing-copy h1 span{color:var(--royal);display:inline-block}.landing-lead{max-width:560px;color:var(--muted);margin:0;font-size:clamp(15px,1.4vw,18px);line-height:1.75}.landing-ctas{flex-wrap:wrap;align-items:center;gap:19px;margin-top:29px;display:flex}.landing-cta-primary{gap:12px;min-height:54px;padding:0 20px;font-size:14px}.landing-cta-secondary{min-height:44px;color:var(--navy);align-items:center;gap:6px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.landing-cta-secondary:hover{color:var(--royal)}.landing-cta-secondary svg{transition:transform .14s}.landing-cta-secondary:hover svg{transform:translate(3px)}.landing-proof{align-items:center;gap:12px;margin-top:38px;display:flex}.landing-proof-avatars{padding-left:4px;display:flex}.landing-proof-avatars span{border:2px solid var(--paper);background:var(--royal);border-radius:50%;place-items:center;width:34px;height:34px;margin-left:-4px;display:grid}@supports (color:color-mix(in lab, red, red)){.landing-proof-avatars span{background:color-mix(in srgb, var(--royal) 14%, var(--card))}}.landing-proof-avatars span{color:var(--royal);font-size:10px;font-weight:800}.landing-proof-avatars span:nth-child(2){background:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.landing-proof-avatars span:nth-child(2){background:color-mix(in srgb, var(--accent-teal) 19%, var(--card))}}.landing-proof-avatars span:nth-child(2){color:var(--accent-teal)}.landing-proof-avatars span:nth-child(3){background:var(--navy);color:var(--card)}.landing-proof p{color:var(--muted);margin:0;font-size:10px;line-height:1.5}.landing-proof p strong{color:var(--navy);font-size:11px}.landing-visual{isolation:isolate;place-items:center;min-height:500px;display:grid;position:relative}.landing-visual:before{z-index:-2;aspect-ratio:1;border:1px solid var(--royal);width:min(82%,470px);position:absolute}@supports (color:color-mix(in lab, red, red)){.landing-visual:before{border:1px solid color-mix(in srgb, var(--royal) 14%, transparent)}}.landing-visual:before{background:radial-gradient(circle, var(--royal), transparent 68%);border-radius:50%}@supports (color:color-mix(in lab, red, red)){.landing-visual:before{background:radial-gradient(circle, color-mix(in srgb, var(--royal) 11%, transparent), transparent 68%)}}.landing-visual:before{content:""}.landing-orbit{z-index:-1;aspect-ratio:1;border:1px dashed var(--royal);width:min(94%,540px);position:absolute}@supports (color:color-mix(in lab, red, red)){.landing-orbit{border:1px dashed color-mix(in srgb, var(--royal) 18%, transparent)}}.landing-orbit{border-radius:50%}.landing-orbit-two{opacity:.62;border-style:solid;width:min(68%,390px)}.landing-preview-card{border:1px solid var(--line);border-top:6px solid var(--royal);background:repeating-linear-gradient(to bottom, transparent 0, transparent 41px, var(--royal) 42px, transparent 43px), var(--card);border-radius:22px;width:min(88%,470px);padding:clamp(22px,3vw,34px);position:relative}@supports (color:color-mix(in lab, red, red)){.landing-preview-card{background:repeating-linear-gradient(to bottom, transparent 0, transparent 41px, color-mix(in srgb, var(--royal) 5%, transparent) 42px, transparent 43px), var(--card)}}.landing-preview-card{animation:.5s cubic-bezier(.2,.8,.2,1) both landing-card-arrive;transform:rotate(-3deg);box-shadow:0 25px 70px #12264f29,0 5px 16px #12264f0f}.landing-card-top{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.landing-card-label{color:var(--royal);letter-spacing:.11em;text-transform:uppercase;align-items:center;gap:6px;font-size:9px;font-weight:780;display:inline-flex}.landing-card-top h2{color:var(--navy);letter-spacing:-.04em;margin:13px 0 5px;font-size:clamp(21px,2.5vw,29px);font-weight:780}.landing-card-top p{color:var(--muted);margin:0;font-size:11px}.landing-card-top p span{color:var(--line-strong);margin:0 3px}.landing-avatar{border:3px solid var(--card);width:62px;height:62px;box-shadow:0 0 0 1px var(--line);color:#173b7b;background:linear-gradient(145deg,#c9defc,#79a6ec);border-radius:20px;flex:none;place-items:center;font-size:19px;font-weight:790;display:grid}.landing-card-rule{background:var(--royal);height:1px;margin:25px 0 12px}@supports (color:color-mix(in lab, red, red)){.landing-card-rule{background:color-mix(in srgb, var(--royal) 20%, var(--line))}}.landing-student-meta{margin:0}.landing-student-meta>div{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:center;gap:10px;min-height:47px;display:flex}.landing-student-meta dt{color:var(--muted);font-size:11px}.landing-student-meta dd{color:var(--navy);margin:0;font-size:12px;font-weight:720}.landing-student-meta .landing-present{color:#176b47;align-items:center;gap:6px;display:inline-flex}[data-theme=dark] .landing-student-meta .landing-present{color:#94e6b7}.landing-present span{background:#278655;border-radius:50%;width:7px;height:7px}.landing-card-footer{justify-content:space-between;align-items:center;gap:10px;margin-top:18px;display:flex}.landing-card-footer>span:first-child{color:var(--muted);align-items:center;gap:6px;font-size:10px;display:inline-flex}.landing-card-footer>span:first-child svg{color:var(--royal)}.landing-card-mark{background:var(--accent-teal);border-radius:9px;place-items:center;width:26px;height:26px;display:grid}@supports (color:color-mix(in lab, red, red)){.landing-card-mark{background:color-mix(in srgb, var(--accent-teal) 15%, var(--card))}}.landing-card-mark{color:var(--accent-teal)}.landing-floating-note{border:1px solid var(--line);background:var(--card);min-height:42px;color:var(--navy);border-radius:13px;align-items:center;gap:8px;padding:0 13px;font-size:10px;font-weight:700;display:inline-flex;position:absolute;box-shadow:0 10px 28px #12264f1f}.landing-floating-note svg{color:var(--accent-teal)}.landing-note-top{z-index:1;animation:3.6s ease-in-out infinite landing-float;top:12%;right:-1%}.landing-note-bottom{animation:4s ease-in-out .35s infinite landing-float;bottom:10%;left:-5%}.landing-note-bottom svg{color:var(--royal)}.landing-mini-panel{border:1px solid var(--line);background:var(--card);border-radius:16px;width:min(255px,54%);padding:14px;position:absolute;bottom:4%;right:0;transform:rotate(3deg);box-shadow:0 14px 35px #12264f21}.landing-mini-heading{justify-content:space-between;align-items:center;gap:6px;display:flex}.landing-mini-heading span{color:var(--muted);font-size:9px;font-weight:650}.landing-mini-heading strong{color:var(--navy);font-size:12px}.landing-attendance-bar{background:var(--muted);border-radius:9px;height:7px;margin:11px 0;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.landing-attendance-bar{background:color-mix(in srgb, var(--muted) 13%, var(--card))}}.landing-attendance-bar span{border-radius:inherit;background:linear-gradient(90deg,#278655,#64ba91);width:86%;height:100%;display:block}.landing-mini-legend{flex-wrap:wrap;gap:9px;display:flex}.landing-mini-legend span{color:var(--muted);align-items:center;gap:4px;font-size:8px;display:inline-flex}.landing-mini-legend i{border-radius:50%;width:6px;height:6px}.legend-present{background:#278655}.legend-late{background:#c48717}.legend-unmarked{background:#98a3b5}.landing-how{border-top:1px solid var(--line);padding:66px 0 76px}.landing-section-heading{grid-template-columns:1fr 1.2fr .9fr;align-items:end;gap:30px;margin-bottom:27px;display:grid}.landing-section-label{color:var(--royal);letter-spacing:.14em;text-transform:uppercase;align-self:start;font-size:10px;font-weight:780}.landing-section-heading h2{color:var(--navy);letter-spacing:-.05em;margin:0;font-size:clamp(27px,3.7vw,44px);font-weight:770;line-height:1.05}.landing-section-heading h2 span{color:var(--royal)}.landing-section-heading>p{max-width:300px;color:var(--muted);justify-self:end;margin:0 0 3px;font-size:12px;line-height:1.7}.landing-feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.landing-feature{border:1px solid var(--line);background:var(--card);border-radius:17px;min-height:205px;padding:21px}@supports (color:color-mix(in lab, red, red)){.landing-feature{background:color-mix(in srgb, var(--card) 90%, transparent)}}.landing-feature{transition:transform .16s,border-color .16s,box-shadow .16s}.landing-feature:hover{border-color:var(--royal);transform:translateY(-3px)}@supports (color:color-mix(in lab, red, red)){.landing-feature:hover{border-color:color-mix(in srgb, var(--royal) 35%, var(--line))}}.landing-feature:hover{box-shadow:var(--shadow-soft)}.landing-feature-top{justify-content:space-between;align-items:center;display:flex}.landing-feature-icon{background:var(--royal);border-radius:13px;place-items:center;width:42px;height:42px;display:grid}@supports (color:color-mix(in lab, red, red)){.landing-feature-icon{background:color-mix(in srgb, var(--royal) 10%, var(--card))}}.landing-feature-icon{color:var(--royal)}.landing-feature:nth-child(2) .landing-feature-icon{background:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.landing-feature:nth-child(2) .landing-feature-icon{background:color-mix(in srgb, var(--accent-teal) 13%, var(--card))}}.landing-feature:nth-child(2) .landing-feature-icon{color:var(--accent-teal)}.landing-feature-number{color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.landing-feature-number{color:color-mix(in srgb, var(--muted) 65%, transparent)}}.landing-feature-number{letter-spacing:.1em;font-size:10px;font-weight:760}.landing-feature h3{color:var(--navy);letter-spacing:-.02em;margin:19px 0 7px;font-size:15px;font-weight:740}.landing-feature p{max-width:360px;color:var(--muted);margin:0;font-size:11px;line-height:1.65}.landing-bottom-cta{border:1px solid var(--royal);justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px;display:flex}@supports (color:color-mix(in lab, red, red)){.landing-bottom-cta{border:1px solid color-mix(in srgb, var(--royal) 20%, var(--line))}}.landing-bottom-cta{background:radial-gradient(ellipse at 95% 0%, var(--royal), transparent 30rem), var(--royal);border-radius:20px;padding:clamp(20px,4vw,38px)}@supports (color:color-mix(in lab, red, red)){.landing-bottom-cta{background:radial-gradient(ellipse at 95% 0%, color-mix(in srgb, var(--royal) 15%, transparent), transparent 30rem), color-mix(in srgb, var(--royal) 5%, var(--card))}}.landing-bottom-cta>div>span{color:var(--royal);letter-spacing:.13em;text-transform:uppercase;font-size:9px;font-weight:780}.landing-bottom-cta h2{color:var(--navy);letter-spacing:-.04em;margin:8px 0 0;font-size:clamp(20px,3vw,30px);font-weight:760}.landing-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;width:100%;max-width:1800px;min-height:74px;margin:0 auto;padding:12px clamp(18px,4.5vw,72px);display:flex}.landing-footer .brand-logo{width:130px}.landing-footer>span{color:var(--muted);text-align:right;font-size:10px}@keyframes landing-card-arrive{0%{opacity:0;transform:translateY(14px)rotate(-5deg)}to{opacity:1;transform:translateY(0)rotate(-3deg)}}@keyframes landing-float{0%,to{translate:0}50%{translate:0 -6px}}.auth-layout-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(30px,6vw,100px);width:100%;max-width:1600px;min-height:100vh;margin:0 auto;padding:42px clamp(18px,5vw,80px);display:grid}.auth-brand-pane{padding:24px 0}.auth-brand-pane h1{letter-spacing:-.055em;max-width:650px;font-size:clamp(38px,5vw,62px);font-weight:780;line-height:1.02}.auth-brand-pane>p:not(.mt-8){max-width:530px;font-size:15px;line-height:1.75}.auth-brand-pane .card-stack{border-radius:18px;max-width:min(420px,88%);padding:24px}.auth-form-pane{justify-self:center;width:100%;max-width:680px}.auth-card{border-color:var(--line);background:var(--card);box-shadow:var(--shadow-soft);border-radius:22px;padding:clamp(22px,3.5vw,42px)}.auth-card h2{letter-spacing:-.035em;font-size:clamp(25px,3vw,32px);font-weight:760}.auth-card>p{color:var(--muted);line-height:1.65}.auth-form-pane>p{color:var(--muted)}@media (width<=900px){.landing-hero{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:20px;min-height:0}.landing-visual{min-height:430px}.landing-note-top{right:0}.landing-note-bottom{left:-1%}.landing-section-heading{grid-template-columns:.8fr 1.2fr}.landing-section-heading>p{grid-column:2;justify-self:start;margin-top:-14px}.auth-layout-inner{gap:34px}}@media (width<=680px){.landing-header-inner{min-height:66px}.landing-nav{gap:8px}.landing-nav>a:not(.button){display:none}.landing-register{min-height:40px;padding:0 11px;font-size:11px}.landing-hero{grid-template-columns:minmax(0,1fr);gap:12px;padding:58px 0 40px}.landing-copy h1{max-width:570px;margin-top:18px;font-size:clamp(44px,12vw,68px)}.landing-lead{max-width:540px;font-size:15px}.landing-ctas{flex-direction:column;align-items:flex-start;gap:7px;margin-top:21px}.landing-proof{margin-top:25px}.landing-visual{min-height:410px;margin:7px -8px 0}.landing-preview-card{width:min(83%,430px)}.landing-mini-panel{bottom:1%;right:2%}.landing-note-top{top:3%;right:0}.landing-note-bottom{bottom:7%;left:0}.landing-how{padding:43px 0 48px}.landing-section-heading{grid-template-columns:minmax(0,1fr);gap:12px;margin-bottom:19px}.landing-section-heading h2{font-size:34px}.landing-section-heading>p{grid-column:auto;margin:0}.landing-feature-grid{grid-template-columns:minmax(0,1fr);gap:9px}.landing-feature{min-height:0;padding:17px}.landing-feature h3{margin-top:13px}.landing-bottom-cta{flex-direction:column;align-items:flex-start;margin-bottom:20px}.landing-footer{flex-direction:column;align-items:flex-start;gap:8px;padding-top:17px;padding-bottom:17px}.landing-footer>span{text-align:left}.auth-layout-inner{flex-direction:column;justify-content:center;gap:0;min-height:100vh;padding:74px 16px 32px;display:flex}.auth-form-pane{max-width:680px}.auth-form-pane .mb-6{margin-bottom:16px}.auth-card{padding:23px 20px}}@media (prefers-reduced-motion:reduce){.landing-preview-card,.landing-floating-note{animation:none}}@media (width<=520px){.student-detail-backdrop{align-items:end;padding:0}.index-card-scene{aspect-ratio:auto;width:min(100vw - 20px,460px);height:min(94dvh,780px)}.index-card-face{border-radius:16px;padding:14px 14px 12px}.index-card-header{gap:8px}.student-detail-profile{gap:10px}.student-detail-photo{border-radius:14px;width:52px;height:52px}.student-detail-profile-text h2{font-size:16px}.student-detail-profile-text .eyebrow{white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-size:8.5px;overflow:hidden}.index-card-flip-btn{min-height:36px;padding:.25rem .55rem;font-size:10.5px}.student-detail-close{width:36px;height:36px}.student-detail-info{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:8px 0 10px}.index-card-front-columns,.index-card-back-columns{grid-template-columns:1fr;gap:10px}.index-card-col{min-height:110px}.index-card-footer{padding-right:58px}.student-detail-photo{width:72px;height:72px}}.design-page-header{display:block}.design-page-header-row{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.design-page-header-action{flex:none}.panel:focus-within{border-color:var(--royal)}@supports (color:color-mix(in lab, red, red)){.panel:focus-within{border-color:color-mix(in srgb, var(--royal) 28%, var(--line))}}.button:focus-visible,.icon-button:focus-visible,.nav-link:focus-visible,.user-menu-trigger:focus-visible{box-shadow:var(--focus-ring);outline:none}.button-destructive{border-color:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.button-destructive{border-color:color-mix(in srgb, var(--accent-red) 32%, var(--line))}}.button-destructive{background:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.button-destructive{background:color-mix(in srgb, var(--accent-red) 12%, var(--card))}}.button-destructive{color:var(--accent-red)}.button-destructive:hover:not(:disabled){border-color:var(--accent-red);background:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.button-destructive:hover:not(:disabled){background:color-mix(in srgb, var(--accent-red) 18%, var(--card))}}.button-ghost{color:var(--muted);background:0 0}.design-badge,.design-status-pill{border:1px solid var(--line);background:var(--royal);border-radius:999px;align-items:center;gap:6px;min-height:26px;padding:3px 9px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.design-badge,.design-status-pill{background:color-mix(in srgb, var(--royal) 7%, var(--card))}}.design-badge,.design-status-pill{color:var(--ink);font-size:11px;font-weight:700;line-height:1.2}.design-badge-success,.design-status-present{border-color:var(--accent-present)}@supports (color:color-mix(in lab, red, red)){.design-badge-success,.design-status-present{border-color:color-mix(in srgb, var(--accent-present) 30%, var(--line))}}.design-badge-success,.design-status-present{background:var(--accent-present)}@supports (color:color-mix(in lab, red, red)){.design-badge-success,.design-status-present{background:color-mix(in srgb, var(--accent-present) 12%, var(--card))}}.design-badge-success,.design-status-present{color:var(--accent-present)}.design-badge-warning,.design-status-late{border-color:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.design-badge-warning,.design-status-late{border-color:color-mix(in srgb, var(--accent-amber) 40%, var(--line))}}.design-badge-warning,.design-status-late{background:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.design-badge-warning,.design-status-late{background:color-mix(in srgb, var(--accent-amber) 14%, var(--card))}}.design-badge-warning,.design-status-late{color:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.design-badge-warning,.design-status-late{color:color-mix(in srgb, var(--accent-amber) 75%, var(--ink))}}.design-badge-danger,.design-status-absent{border-color:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.design-badge-danger,.design-status-absent{border-color:color-mix(in srgb, var(--accent-red) 35%, var(--line))}}.design-badge-danger,.design-status-absent{background:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.design-badge-danger,.design-status-absent{background:color-mix(in srgb, var(--accent-red) 12%, var(--card))}}.design-badge-danger,.design-status-absent{color:var(--accent-red)}.design-status-neutral{color:var(--muted)}.design-select{appearance:none;background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);background-position:calc(100% - 17px) 20px,calc(100% - 12px) 20px;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:34px}.design-modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0e192f85;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.design-modal{border:1px solid var(--line);border-radius:var(--radius-dialog);background:var(--card);width:min(100%,520px);max-height:min(90vh,760px);box-shadow:var(--shadow-floating);padding:28px;position:relative;overflow:auto}.design-modal h2{color:var(--navy);letter-spacing:-.03em;margin:14px 40px 7px 0;font-size:24px}.design-modal-description{color:var(--muted);margin:0;font-size:14px;line-height:1.55}.design-modal-close{border:1px solid var(--line);background:var(--card);width:40px;height:40px;color:var(--muted);cursor:pointer;border-radius:12px;place-items:center;display:grid;position:absolute;top:18px;right:18px}.design-modal-content{margin-top:20px}.design-modal-footer{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.design-skeleton{background:linear-gradient(90deg, var(--line) 25%, var(--card) 50%, var(--line) 75%);border-radius:8px;min-height:14px}@supports (color:color-mix(in lab, red, red)){.design-skeleton{background:linear-gradient(90deg, var(--line) 25%, color-mix(in srgb, var(--card) 70%, var(--line)) 50%, var(--line) 75%)}}.design-skeleton{background-size:200% 100%;animation:1.2s ease-in-out infinite design-skeleton-shimmer}@keyframes design-skeleton-shimmer{to{background-position-x:-200%}}.user-menu{position:relative}.user-menu-trigger{max-width:220px;min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:14px;align-items:center;gap:9px;padding:4px 8px 4px 5px;display:inline-flex}.user-menu-trigger:hover{border-color:var(--line);background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.user-menu-trigger:hover{background:color-mix(in srgb, var(--royal) 5%, var(--card))}}.user-menu-avatar{background:var(--royal);border-radius:11px;flex:none;place-items:center;width:34px;height:34px;display:grid}@supports (color:color-mix(in lab, red, red)){.user-menu-avatar{background:color-mix(in srgb, var(--royal) 13%, var(--card))}}.user-menu-avatar{color:var(--royal);font-size:13px;font-weight:800}.user-menu-popover{z-index:20;border:1px solid var(--line);background:var(--card);min-width:190px;box-shadow:var(--shadow-floating);border-radius:15px;gap:4px;padding:7px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.user-menu-popover a,.user-menu-popover button{min-height:42px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:0 11px;font-size:13px;font-weight:650;text-decoration:none;display:flex}.user-menu-popover a:hover,.user-menu-popover button:hover{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.user-menu-popover a:hover,.user-menu-popover button:hover{background:color-mix(in srgb, var(--royal) 8%, var(--card))}}.user-menu-popover a:hover,.user-menu-popover button:hover{color:var(--royal)}@media (width<=680px){.design-page-header-row{flex-direction:column;align-items:flex-start;gap:16px}.design-page-header-action,.design-page-header-action>*{width:100%}.design-modal{padding:22px}.header-actions .user-menu-trigger .header-user,.user-menu-trigger>svg{display:none}.user-menu-trigger{padding:4px}}.classroom-roster-action{justify-content:flex-end;margin:1rem 0;display:flex}.classroom-pending-action{justify-content:flex-end;margin:-3.5rem 0 1rem;padding-right:12rem;display:flex}.notification-badge,.pending-count{background:var(--accent-amber);color:#4a2a00;border-radius:999px;justify-content:center;align-items:center;min-width:1.5rem;padding:.15rem .45rem;font-size:.75rem;font-weight:700;display:inline-flex}.pending-validation{margin:1.5rem 0 2rem;padding:1.5rem}.pending-heading{justify-content:space-between;gap:1rem;display:flex}.pending-heading h2{margin:.35rem 0}.pending-heading p{color:var(--text-muted);margin:0}.pending-list{gap:.65rem;margin-top:1.25rem;display:grid}.pending-row{border:1px solid var(--border-color);border-radius:.9rem;align-items:center;gap:1rem;padding:.9rem;display:flex}.pending-photo{background:var(--surface-muted);border-radius:50%;flex:none;place-items:center;width:3rem;height:3rem;display:grid;overflow:hidden}.pending-photo img{object-fit:cover;width:100%;height:100%}.pending-student{flex:1;gap:.2rem;display:grid}.pending-student span,.pending-student small{color:var(--text-muted);font-size:.82rem}.pending-actions{gap:.5rem;display:flex}.pending-decline{color:var(--danger,#b42318)}.pending-empty{min-height:12rem;margin-top:1rem}.student-class-summary{border-top:1px solid var(--border-color);grid-template-columns:repeat(4,1fr);gap:.4rem;margin-top:1rem;padding-top:.85rem;display:grid}.student-class-summary span{color:var(--text-muted);text-transform:capitalize;gap:.15rem;font-size:.68rem;display:grid}.student-class-summary b{color:var(--text-primary);font-size:1rem}.student-class-action{width:100%;margin-top:1rem}.student-record-loading{gap:1rem;display:grid}.student-record-skeleton{height:7rem}.student-record-error{gap:.85rem;padding:1.5rem;display:grid}.student-record-hero{gap:.8rem;margin-bottom:1rem;padding:1.25rem;display:grid}.student-record-meta{flex-wrap:wrap;gap:.5rem;display:flex}.student-record-copy{color:var(--text-muted);max-width:56rem;margin:0}.student-record-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem;margin:1rem 0 1.25rem;display:grid}.student-record-summary-card{gap:.3rem;padding:1rem;display:grid}.student-record-summary-card strong{color:var(--navy);font-size:1.5rem}.student-record-summary-card span:last-child{color:var(--text-muted);font-size:.84rem}.student-record-summary-tone{background:var(--accent-amber);border-radius:999px;width:2.5rem;height:.32rem}.student-record-summary-tone-present{background:var(--accent-present)}.student-record-summary-tone-late{background:var(--accent-amber)}.student-record-summary-tone-neutral{background:var(--royal)}.student-record-sections{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;display:grid}.student-record-section{gap:1rem;padding:1rem;display:grid}.student-record-section-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.student-record-section-heading h2{color:var(--navy);margin:.35rem 0 0;font-size:1.08rem}.student-record-list{gap:.65rem;display:grid}.student-record-item{border:1px solid var(--border-color);background:var(--surface-muted);border-radius:.9rem;gap:.15rem;padding:.8rem .9rem;display:grid}.student-record-item time{color:var(--text-muted);font-size:.78rem}.student-record-item span{color:var(--text-muted);font-size:.82rem}.student-record-empty{color:var(--text-muted);margin:0;font-size:.88rem}.student-record-quiz-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.student-record-quiz-stats>div{border:1px solid var(--border-color);background:var(--surface-muted);border-radius:.9rem;gap:.15rem;padding:.85rem;display:grid}.student-record-quiz-stats strong{color:var(--navy);font-size:1.25rem}.student-record-quiz-stats span{color:var(--text-muted);font-size:.8rem}.export-module{gap:1rem;display:grid}.export-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem;display:grid}.export-summary-card{gap:.2rem;padding:1rem;display:grid}.export-summary-card strong{color:var(--navy);font-size:1.6rem}.export-summary-card span{color:var(--text-muted);font-size:.82rem}.export-option-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.export-option-card{gap:1rem;padding:1rem;display:grid}.export-option-heading{align-items:flex-start;gap:.85rem;display:flex}.export-option-icon{background:var(--royal);border-radius:.8rem;place-items:center;width:2.5rem;height:2.5rem;display:grid}@supports (color:color-mix(in lab, red, red)){.export-option-icon{background:color-mix(in srgb, var(--royal) 12%, transparent)}}.export-option-icon{color:var(--royal);flex:none}.export-option-heading h3{color:var(--navy);margin:0}.export-option-heading p{color:var(--text-muted);margin:.2rem 0 0}.export-option-list{color:var(--text-muted);gap:.35rem;margin:0;padding-left:1.1rem;display:grid}.export-option-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.export-config-card{gap:1.25rem;padding:1.25rem;display:grid}.export-section-header{justify-content:space-between;align-items:center;display:flex}.export-section-header h3{color:var(--navy);margin:0}.link-button{color:var(--royal);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:600;text-decoration:underline}.export-type-list{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.export-type-checkbox{color:var(--text-color,inherit);cursor:pointer;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.export-format-row{border-top:1px solid var(--border-color);flex-wrap:wrap;align-items:center;gap:1.25rem;padding-top:.5rem;display:flex}.export-format-label{color:var(--navy);font-size:.9rem;font-weight:600}.export-radio{cursor:pointer;align-items:center;gap:.4rem;font-size:.9rem;display:flex}.export-empty-message{color:var(--danger,#b42318);margin:0;font-size:.85rem}.export-actions{flex-wrap:wrap;align-items:center;gap:1rem;padding-top:.5rem;display:flex}.student-list-manager-heading p{color:var(--text-muted)}.student-list-warning{gap:.55rem;margin:1.25rem 0;display:flex}.student-list-table-wrap{overflow-x:auto}.student-list-table th,.student-list-table td{text-align:left;border-bottom:1px solid var(--border-color);padding:.75rem}.student-list-row-error{color:var(--danger,#b42318)}.student-list-row-valid{color:var(--success,#16794b)}.pending-overlay{z-index:50;background:#0a18307a;justify-content:flex-end;display:flex;position:fixed;inset:0}.pending-drawer{background:var(--surface-card,#fff);width:min(38rem,100%);height:100%;padding:1.5rem;overflow-y:auto;box-shadow:-1rem 0 3rem #0a18302e}.pending-drawer .pending-heading{background:var(--surface-card,#fff);z-index:1;padding-bottom:1rem;position:sticky;top:0}.quiz-module{gap:1rem;display:grid}.quiz-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.quiz-heading h2{margin:.35rem 0}.quiz-heading p{color:var(--text-muted);margin:0}.quiz-session-pill{background:var(--surface-muted);border-radius:.75rem;padding:.6rem .85rem;font-weight:700}.quiz-session-form{grid-template-columns:2fr 1fr auto;align-items:end;gap:.8rem;display:grid}.quiz-card-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.8rem;display:grid}.quiz-student-card{border:1px solid var(--border-color);background:var(--surface-card);border-radius:.9rem;align-items:center;gap:.75rem;padding:.9rem;display:flex}.quiz-student-absent{opacity:.65}.quiz-student-photo{background:var(--surface-muted);border-radius:50%;flex:none;place-items:center;width:2.7rem;height:2.7rem;display:grid;overflow:hidden}.quiz-student-photo img{object-fit:cover;width:100%;height:100%}.quiz-student-copy{flex:1;gap:.2rem;min-width:0;display:grid}.quiz-student-copy span{color:var(--text-muted);font-size:.78rem}.quiz-score-field{align-items:center;gap:.3rem;font-weight:700;display:flex}.quiz-score-field input{width:3.4rem;padding:.45rem}.quiz-absent-flag{color:var(--danger,#b42318);align-items:center;gap:.25rem;font-size:.8rem;font-weight:700;display:inline-flex}.quiz-list{gap:.65rem;display:grid}.quiz-list-row{border:1px solid var(--border-color);background:var(--surface-card);text-align:left;width:100%;color:inherit;cursor:pointer;border-radius:.9rem;grid-template-columns:auto 1fr auto auto;align-items:center;gap:.8rem;padding:1rem;display:grid}.quiz-list-row:hover{border-color:var(--accent-blue,#3978d4)}.quiz-list-row span:nth-child(2){gap:.2rem;display:grid}.quiz-list-row small,.quiz-list-meta{color:var(--text-muted);font-size:.8rem}.quiz-list-icon{width:2.5rem;height:2.5rem;color:var(--accent-blue,#3978d4);background:#3978d41f;border-radius:.7rem;place-items:center;display:grid}.quiz-editor-toolbar,.quiz-editor-actions{align-items:center;gap:.75rem;display:flex}.quiz-editor-toolbar{justify-content:space-between}.quiz-saved{color:var(--success,#16794b);font-size:.85rem}.quiz-unsaved{color:var(--accent-amber,#9a6700);font-size:.85rem}.quiz-editor-fields{grid-template-columns:2fr 1fr;gap:.8rem;display:grid}.quiz-editor-actions{justify-content:flex-end}.module-tabs{scrollbar-width:thin;overflow-x:auto}@media (width<=700px){.quiz-session-form{grid-template-columns:1fr}.quiz-heading{flex-direction:column}}@media (width<=620px){.quiz-list-row{grid-template-columns:auto 1fr auto}.quiz-list-meta{display:none}.quiz-editor-fields{grid-template-columns:1fr}}@media (width<=760px){.quiz-editor-toolbar{flex-wrap:wrap}.quiz-editor-toolbar>:first-child{flex:100%}.quiz-editor-fields,.quiz-card-grid{grid-template-columns:minmax(0,1fr)}.quiz-student-card{min-width:0}}.enrolled-pill-pending{background:var(--accent-amber);color:#5e3900}.enrolled-pill-dropped{border:1px solid var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.enrolled-pill-dropped{border:1px solid color-mix(in srgb, var(--accent-red) 35%, var(--line))}}.enrolled-pill-dropped{background:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.enrolled-pill-dropped{background:color-mix(in srgb, var(--accent-red) 12%, var(--card))}}.enrolled-pill-dropped{color:var(--accent-red)}@media (width<=620px){.student-class-summary{grid-template-columns:repeat(2,1fr)}}@media (width<=900px){.student-record-summary-grid,.student-record-sections{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.student-record-summary-grid,.student-record-sections,.student-record-quiz-stats{grid-template-columns:minmax(0,1fr)}}@media (width<=700px){.export-summary-grid,.export-option-grid{grid-template-columns:minmax(0,1fr)}.classroom-pending-action{margin:0 0 1rem;padding:0}.pending-row{flex-wrap:wrap;align-items:flex-start}.pending-actions{width:100%}}@media (width<=760px){.class-share-expanded{flex-direction:column;align-items:stretch}.class-share-qr{justify-items:flex-start}.class-share-qr img,.class-share-qr-placeholder{width:100%;max-width:208px}}@media (width<=560px){.class-share-row{flex-wrap:wrap;gap:.45rem .65rem}.class-share-code{margin-right:0}.class-share-toggle{flex:100%}}@media (width<=760px){.module-tab-group-secondary{margin-left:0}.student-list-manager-heading,.student-list-preview-heading{flex-direction:column;align-items:stretch}.student-list-input-grid,.student-list-entry-form{grid-template-columns:minmax(0,1fr)}.student-list-import-actions{grid-template-columns:minmax(0,1fr);display:grid}.student-list-import-actions .button,.student-list-entry-form .button,.student-list-preview-heading .button{justify-content:center;width:100%}}.roster-manager{margin:1.5rem 0 2rem;padding:1.5rem}.roster-manager-heading,.roster-preview-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.roster-manager-heading h2,.roster-preview-heading h3{margin:.35rem 0}.roster-manager-heading p{max-width:46rem;color:var(--text-muted);margin:0}.roster-warning{align-items:flex-start;gap:.55rem;margin:1.25rem 0;display:flex}.roster-input-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;display:grid}.roster-entry-form{grid-template-columns:1fr 1fr auto;align-items:end;gap:.75rem;display:grid}.roster-entry-form .button{height:2.75rem}.roster-import-box{border:1px dashed var(--border-color);border-radius:1rem;padding:1rem}.roster-import-actions{flex-wrap:wrap;gap:.5rem;display:flex}.roster-preview-heading{align-items:center;margin-top:1.5rem}.roster-preview-heading span{color:var(--text-muted);font-size:.85rem}.roster-table-wrap{margin-top:.75rem;overflow-x:auto}.roster-table{border-collapse:collapse;width:100%}.roster-table th,.roster-table td{text-align:left;border-bottom:1px solid var(--border-color);vertical-align:middle;padding:.75rem}.roster-table th{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.75rem}.roster-row-error{color:var(--danger,#b42318);font-size:.82rem}.roster-row-valid{color:var(--success,#16794b);font-size:.82rem}.roster-empty{min-height:12rem;margin-top:.75rem}.pending-drawer{color:var(--text-primary);background:var(--surface-card);border-left:1px solid var(--border-color)}.pending-drawer .pending-heading{color:var(--text-primary);background:var(--surface-card);border-bottom:1px solid var(--border-color)}.quiz-attendance-prompt{align-content:center}@media (width<=800px){.roster-input-grid,.roster-entry-form{grid-template-columns:1fr}.roster-manager-heading{flex-direction:column}}@media (width<=760px){.student-list-manager{min-width:0;padding:1rem}.student-list-manager-heading,.student-list-preview-heading{flex-direction:column;align-items:stretch}.student-list-manager-heading .button,.student-list-preview-heading .button{width:100%}.student-list-input-grid,.student-list-entry-form{grid-template-columns:minmax(0,1fr)}.student-list-entry-form .button{width:100%}.student-list-import-box{min-width:0}.student-list-import-actions{grid-template-columns:minmax(0,1fr);display:grid}.student-list-import-actions .button{justify-content:center;width:100%}.student-list-table-wrap{margin-inline:-.25rem}}.student-list-manager{margin:1.5rem 0 2rem;padding:1.5rem}.student-list-manager-heading,.student-list-preview-heading{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.student-list-manager-heading h2,.student-list-preview-heading h3{margin:.35rem 0}.student-list-manager-heading p{max-width:46rem;color:var(--text-muted);margin:0}.student-list-warning{align-items:flex-start;gap:.55rem;margin:1.25rem 0;display:flex}.student-list-input-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;display:grid}.student-list-entry-form{grid-template-columns:1fr 1fr auto;align-items:end;gap:.75rem;display:grid}.student-list-import-box{border:1px dashed var(--border-color);border-radius:1rem;padding:1rem}.student-list-import-actions{flex-wrap:wrap;gap:.5rem;display:flex}.student-list-preview-heading{align-items:center;margin-top:1.5rem}.student-list-preview-heading span{color:var(--text-muted);font-size:.85rem}.student-list-table-wrap{margin-top:.75rem;overflow-x:auto}.student-list-table{border-collapse:collapse;width:100%}.student-list-table th,.student-list-table td{text-align:left;border-bottom:1px solid var(--border-color);vertical-align:middle;padding:.75rem}.student-list-row-error{color:var(--danger,#b42318);font-size:.82rem}.student-list-row-valid{color:var(--success,#16794b);font-size:.82rem}.student-list-row-pending{color:var(--royal,#3b82f6);font-size:.82rem;font-weight:500}.student-list-entry-error{color:var(--danger,#b42318);margin:.45rem 0 0;font-size:.82rem}.student-list-status-cell{flex-wrap:wrap;align-items:center;gap:.5rem;display:inline-flex}.student-list-undo-btn{border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:.375rem;padding:.1rem .45rem;font-size:.75rem}.student-list-undo-btn:hover{color:var(--text-color);border-color:var(--royal,#3b82f6)}.student-list-empty{min-height:12rem;margin-top:.75rem}@media (width<=800px){.student-list-input-grid,.student-list-entry-form{grid-template-columns:1fr}.student-list-manager-heading{flex-direction:column}}.avatar{aspect-ratio:1;border:1px solid var(--line,var(--border-color));background:var(--royal,#2563eb);border-radius:9999px;flex:none;place-items:center;display:inline-grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.avatar{background:color-mix(in srgb, var(--royal,#2563eb) 13%, var(--card,#fff))}}.avatar{color:var(--royal,#2563eb);letter-spacing:.02em;-webkit-user-select:none;user-select:none;font-weight:800}.avatar-xs{width:24px;min-width:24px;height:24px;min-height:24px;font-size:10px}.avatar-sm{width:32px;min-width:32px;height:32px;min-height:32px;font-size:12px}.avatar-md{width:48px;min-width:48px;height:48px;min-height:48px;font-size:15px}.avatar-lg{width:80px;min-width:80px;height:80px;min-height:80px;font-size:22px}.avatar-xl{width:96px;min-width:96px;height:96px;min-height:96px;font-size:28px}.avatar-image{object-fit:cover;object-position:center top;border-radius:9999px;width:100%;height:100%;display:block}.avatar-initials{line-height:1}.avatar.user-menu-avatar,.avatar.student-card-photo,.avatar.attendance-student-photo,.avatar.scoring-student-photo,.avatar.quiz-student-photo,.avatar.pending-photo,.avatar.recitation-mini-photo,.avatar.recitation-shuffling-photo,.avatar.recitation-student-photo,.avatar.recitation-spotlight-photo,.avatar.history-student-photo,.avatar.student-detail-photo,.avatar.photo-preview,.avatar.faculty-byline-avatar,.avatar.dashboard-profile-avatar,.avatar.student-list-avatar,.avatar.profile-avatar-frame{aspect-ratio:1;border-radius:9999px;flex-shrink:0}.faculty-dashboard-content{padding-top:8px}.faculty-dashboard-content>.dashboard-heading{align-items:flex-end;margin-top:0;margin-bottom:28px}.dashboard-welcome-title{align-items:center;gap:.75rem;display:flex}.dashboard-faculty-meta{align-items:center;gap:.45rem;display:inline-flex}.profile-banner-compact{border:1px solid var(--royal);border-radius:14px;justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px;padding:12px 16px;display:flex}@supports (color:color-mix(in lab, red, red)){.profile-banner-compact{border:1px solid color-mix(in srgb, var(--royal) 20%, var(--line))}}.profile-banner-compact{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.profile-banner-compact{background:color-mix(in srgb, var(--royal) 6%, var(--card))}}.profile-banner-copy{flex-wrap:wrap;align-items:baseline;gap:4px 10px;min-width:0;display:flex}.profile-banner-copy strong{color:var(--navy);font-size:13px;font-weight:740}.profile-banner-copy span{color:var(--muted);font-size:12px}.profile-banner-actions{flex-shrink:0;align-items:center;gap:10px;display:inline-flex}@media (width<=680px){.profile-banner-compact{flex-direction:column;align-items:flex-start}}.student-list-name-cell{align-items:center;gap:.65rem;display:flex}.lnu-logo{object-fit:cover;background:#fff;border-radius:50%;flex:none;width:28px;height:28px;box-shadow:0 0 0 1.5px #ffffffd9,0 2px 6px #0f172a29}.lnu-logo-sm{width:22px;height:22px}.landing-footer-lnu,.auth-lnu-line{align-items:center;gap:.55rem;display:inline-flex}.auth-lnu-footer{border-top:1px solid var(--line);justify-content:center;align-items:center;gap:.5rem;margin-top:1.5rem;padding-top:1rem;display:flex}@supports (color:color-mix(in lab, red, red)){.auth-lnu-footer{border-top:1px solid color-mix(in srgb, var(--line) 75%, transparent)}}.auth-lnu-footer{color:var(--muted);letter-spacing:.01em;font-size:.8125rem;font-weight:550}.auth-lnu-footer-logo{aspect-ratio:1;object-fit:cover;background:#fff;border-radius:50%;flex:none;width:24px;min-width:24px;height:24px;min-height:24px;box-shadow:0 0 0 1px #0f172a1a,0 1px 3px #0f172a1f}[data-theme=dark] .lnu-logo,.dark .lnu-logo{box-shadow:0 0 0 1.5px #ffffff47,0 2px 8px #00000073}[data-theme=dark] .auth-lnu-footer-logo,.dark .auth-lnu-footer-logo{box-shadow:0 0 0 1px #ffffff3d,0 1px 4px #0006}@media (width<=680px){.lnu-logo{width:24px;height:24px}.lnu-logo-sm{width:20px;height:20px}}.schedule-fieldset{border:0;gap:.65rem;margin:0;padding:0;display:grid}.schedule-legend{color:var(--navy);padding:0;font-size:.875rem;font-weight:700}.schedule-days-group{flex-wrap:wrap;gap:.45rem;display:flex}.schedule-day-pill{border:1px solid var(--line,var(--border-color));background:var(--surface-card,var(--card,#fff));min-width:3.1rem;height:2.35rem;color:var(--navy);cursor:pointer;border-radius:999px;padding:0 .7rem;font-size:.82rem;font-weight:700;transition:background-color .14s,border-color .14s,color .14s}.schedule-day-pill:hover{border-color:var(--royal)}.schedule-day-pill.is-selected{border-color:var(--royal-solid);background:var(--royal-solid);color:var(--on-royal-solid)}.schedule-time-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.schedule-preview{color:var(--royal);align-items:center;gap:.4rem;font-weight:600;display:inline-flex}@media (width<=560px){.schedule-time-grid{grid-template-columns:minmax(0,1fr)}}.class-card-counts{align-items:center;gap:.45rem;display:inline-flex}.class-pending-count{border-color:var(--accent-amber);align-items:center;gap:.35rem;text-decoration:none;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.class-pending-count{border-color:color-mix(in srgb, var(--accent-amber) 36%, var(--line))}}.class-pending-count{background:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.class-pending-count{background:color-mix(in srgb, var(--accent-amber) 12%, var(--card))}}.class-pending-count{color:var(--navy);transition:transform .14s,border-color .14s}.class-pending-count:hover{border-color:var(--accent-amber);transform:translateY(-1px)}.class-share-pending{gap:.4rem;min-width:2.75rem;padding-inline:.75rem;position:relative}.notifications-sections{gap:1.35rem;margin-top:1.25rem;display:grid}.notifications-read-actions{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.notifications-read-actions>span{color:var(--text-muted);font-size:.78rem}.notifications-section{gap:.65rem;display:grid}.notifications-section .pending-list{margin-top:0}.notifications-section-header{border-bottom:1px solid var(--border-color);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);justify-content:space-between;align-items:center;gap:.75rem;padding-bottom:.45rem;font-size:.78rem;font-weight:750;display:flex}.notifications-section-header>span:first-child{align-items:center;gap:.4rem;display:inline-flex}.notification-badge-danger{background:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.notification-badge-danger{background:color-mix(in srgb, var(--accent-red) 18%, var(--card))}}.notification-badge-danger{color:var(--accent-red);border:1px solid var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.notification-badge-danger{border:1px solid color-mix(in srgb, var(--accent-red) 35%, transparent)}}.pending-row-warning{border-color:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.pending-row-warning{border-color:color-mix(in srgb, var(--accent-red) 35%, var(--border-color))}}.pending-row-warning{background:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.pending-row-warning{background:color-mix(in srgb, var(--accent-red) 6%, var(--surface-card))}}.pending-row-auto-approved{border-color:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.pending-row-auto-approved{border-color:color-mix(in srgb, var(--accent-teal) 32%, var(--border-color))}}.pending-row-auto-approved{background:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.pending-row-auto-approved{background:color-mix(in srgb, var(--accent-teal) 6%, var(--surface-card))}}.pending-row-read{opacity:.66}.notification-status{background:var(--accent-teal);border-radius:999px;flex:none;padding:.25rem .55rem}@supports (color:color-mix(in lab, red, red)){.notification-status{background:color-mix(in srgb, var(--accent-teal) 14%, var(--surface-card))}}.notification-status{color:var(--accent-teal);font-size:.75rem;font-weight:700}.notification-status.is-read{background:var(--surface-muted);color:var(--text-muted)}.pending-photo-warning{background:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.pending-photo-warning{background:color-mix(in srgb, var(--accent-red) 14%, var(--surface-muted))}}.pending-photo-warning{color:var(--accent-red)}.notifications-section-empty{color:var(--text-muted);margin:.25rem 0 0;font-size:.85rem}.auth-input-wrap{align-items:center;display:flex;position:relative}.auth-input-wrap input{background-color:var(--input);transition:border-color .14s,box-shadow .14s}.auth-input-wrap input:focus-visible,.password-control input:focus-visible,.auth-card input:focus-visible{border-color:var(--royal);box-shadow:var(--focus-ring)}.auth-input-icon{color:var(--muted);pointer-events:none;place-items:center;display:inline-grid;position:absolute;left:12px}.auth-inline-link:focus-visible,.auth-back-link:focus-visible,.auth-submit-btn:focus-visible,.auth-secondary-btn:focus-visible{box-shadow:var(--focus-ring);border-radius:8px;outline:none}.auth-back-link{color:var(--royal);align-items:center;gap:6px;font-size:.875rem;font-weight:650;text-decoration:none;display:inline-flex}.auth-back-link:hover{text-decoration:underline}.auth-back-link svg{transform:rotate(180deg)}.auth-secondary-btn{border:1px solid var(--line);background:var(--card);min-height:42px;color:var(--navy);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:.875rem;font-weight:600;text-decoration:none;transition:border-color .14s,background-color .14s;display:inline-flex}.auth-secondary-btn:hover:not(:disabled){border-color:var(--royal)}@supports (color:color-mix(in lab, red, red)){.auth-secondary-btn:hover:not(:disabled){border-color:color-mix(in srgb, var(--royal) 40%, var(--line))}}.auth-secondary-btn:hover:not(:disabled){background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.auth-secondary-btn:hover:not(:disabled){background:color-mix(in srgb, var(--royal) 7%, var(--card))}}.auth-secondary-btn:disabled{opacity:.6;cursor:not-allowed}.auth-status-banner{border:1px solid var(--line);border-radius:12px;align-items:flex-start;gap:10px;padding:11px 13px;font-size:.84rem;line-height:1.5;display:flex}.auth-status-banner svg{flex:none;margin-top:2px}.auth-status-error{border-color:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.auth-status-error{border-color:color-mix(in srgb, var(--accent-red) 34%, var(--line))}}.auth-status-error{background:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.auth-status-error{background:color-mix(in srgb, var(--accent-red) 11%, var(--card))}}.auth-status-error{color:var(--accent-red)}.auth-status-success{border-color:var(--accent-present)}@supports (color:color-mix(in lab, red, red)){.auth-status-success{border-color:color-mix(in srgb, var(--accent-present) 32%, var(--line))}}.auth-status-success{background:var(--accent-present)}@supports (color:color-mix(in lab, red, red)){.auth-status-success{background:color-mix(in srgb, var(--accent-present) 11%, var(--card))}}.auth-status-success{color:var(--accent-present)}.auth-status-warning{border-color:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.auth-status-warning{border-color:color-mix(in srgb, var(--accent-amber) 40%, var(--line))}}.auth-status-warning{background:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.auth-status-warning{background:color-mix(in srgb, var(--accent-amber) 14%, var(--card))}}.auth-status-warning{color:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.auth-status-warning{color:color-mix(in srgb, var(--accent-amber) 75%, var(--ink))}}.design-error-state{place-items:start}.design-error-state h2{color:var(--navy);letter-spacing:-.02em;margin:0;font-size:1.35rem}.design-error-state p{max-width:44rem;color:var(--muted);margin:0;line-height:1.55}.design-error-state-actions{flex-wrap:wrap;gap:.65rem;margin-top:.25rem;display:flex}.error-boundary-shell{background:var(--paper);min-height:100vh;color:var(--ink);place-items:center;padding:1.5rem;display:grid}.error-boundary-card{gap:.9rem;width:min(100%,34rem);padding:2rem;display:grid}.error-boundary-badge-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.error-boundary-card h1{color:var(--navy);letter-spacing:-.025em;margin:0;font-size:1.55rem}.error-boundary-card p{color:var(--muted);margin:0;line-height:1.6}.pending-loading-state{margin-top:1.25rem}.auth-outcome-panel{border:1px solid var(--line);background:var(--royal);border-radius:16px;gap:14px;padding:20px;display:grid}@supports (color:color-mix(in lab, red, red)){.auth-outcome-panel{background:color-mix(in srgb, var(--royal) 4%, var(--card))}}.auth-outcome-icon{border-radius:14px;place-items:center;width:46px;height:46px;display:grid}.auth-outcome-icon-info{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.auth-outcome-icon-info{background:color-mix(in srgb, var(--royal) 13%, var(--card))}}.auth-outcome-icon-info{color:var(--royal)}.auth-outcome-icon-success{background:var(--accent-present)}@supports (color:color-mix(in lab, red, red)){.auth-outcome-icon-success{background:color-mix(in srgb, var(--accent-present) 14%, var(--card))}}.auth-outcome-icon-success{color:var(--accent-present)}.auth-outcome-icon-warning{background:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.auth-outcome-icon-warning{background:color-mix(in srgb, var(--accent-amber) 16%, var(--card))}}.auth-outcome-icon-warning{color:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.auth-outcome-icon-warning{color:color-mix(in srgb, var(--accent-amber) 82%, var(--ink))}}.auth-outcome-icon-danger{background:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.auth-outcome-icon-danger{background:color-mix(in srgb, var(--accent-red) 14%, var(--card))}}.auth-outcome-icon-danger{color:var(--accent-red)}.auth-outcome-lead{color:var(--navy);margin:0;font-size:.96rem;font-weight:650;line-height:1.55}.auth-outcome-note{color:var(--muted);margin:0;font-size:.84rem;line-height:1.6}.auth-outcome-actions{gap:10px;margin-top:4px;display:grid}@media (width<=420px){.auth-outcome-panel{padding:16px}}.reset-skeleton-stack{gap:14px;display:grid}.password-checklist{border:1px solid var(--line);background:var(--royal);border-radius:14px;padding:12px 14px}@supports (color:color-mix(in lab, red, red)){.password-checklist{background:color-mix(in srgb, var(--royal) 4%, var(--card))}}.password-checklist-title{color:var(--navy);letter-spacing:.02em;margin:0 0 8px;font-size:.78rem;font-weight:700}.password-checklist-items{gap:6px;margin:0;padding:0;list-style:none;display:grid}.password-checklist-item{align-items:center;gap:8px;font-size:.8125rem;line-height:1.4;transition:color .14s;display:flex}.password-checklist-item.is-pending{color:var(--muted)}.password-checklist-item.is-passed{color:var(--accent-present);font-weight:560}.password-checklist-item.is-failed{color:var(--accent-red);font-weight:560}.password-checklist-indicator{border-radius:999px;flex:none;place-items:center;width:18px;height:18px;display:inline-grid}.password-checklist-item.is-passed .password-checklist-indicator{background:var(--accent-present)}@supports (color:color-mix(in lab, red, red)){.password-checklist-item.is-passed .password-checklist-indicator{background:color-mix(in srgb, var(--accent-present) 15%, var(--card))}}.password-checklist-item.is-failed .password-checklist-indicator{background:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.password-checklist-item.is-failed .password-checklist-indicator{background:color-mix(in srgb, var(--accent-red) 15%, var(--card))}}.password-checklist-dot{background:var(--line-strong);border-radius:999px;width:6px;height:6px}.verify-email-banner{border:1px solid var(--accent-amber);border-radius:14px;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:13px 16px;display:flex}@supports (color:color-mix(in lab, red, red)){.verify-email-banner{border:1px solid color-mix(in srgb, var(--accent-amber) 34%, var(--line))}}.verify-email-banner{background:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.verify-email-banner{background:color-mix(in srgb, var(--accent-amber) 8%, var(--card))}}.verify-email-banner-main{align-items:flex-start;gap:12px;min-width:0;display:flex}.verify-email-banner-icon{background:var(--accent-amber);border-radius:10px;flex:none;place-items:center;width:34px;height:34px;display:grid}@supports (color:color-mix(in lab, red, red)){.verify-email-banner-icon{background:color-mix(in srgb, var(--accent-amber) 18%, var(--card))}}.verify-email-banner-icon{color:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.verify-email-banner-icon{color:color-mix(in srgb, var(--accent-amber) 82%, var(--ink))}}.verify-email-banner-copy{gap:6px;min-width:0;display:grid}.verify-email-banner-title{flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0;display:flex}.verify-email-banner-title strong{color:var(--navy);font-size:13.5px;font-weight:740}.verify-email-banner-title span{color:var(--muted);overflow-wrap:anywhere;font-size:12.5px;line-height:1.5}.verify-email-banner-title b{color:var(--navy);font-weight:640}.verify-email-banner-feedback{align-items:center;gap:6px;margin:0;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.verify-email-banner-feedback.is-success{color:var(--accent-present)}.verify-email-banner-feedback.is-error{color:var(--accent-red)}.verify-email-banner-actions{flex-shrink:0;align-items:center;gap:10px;display:inline-flex}.verify-email-resend-btn{border:1px solid var(--royal);justify-content:center;align-items:center;gap:7px;min-height:38px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.verify-email-resend-btn{border:1px solid color-mix(in srgb, var(--royal) 28%, var(--line))}}.verify-email-resend-btn{background:var(--card);color:var(--navy);cursor:pointer;white-space:nowrap;border-radius:10px;padding:0 13px;font-size:12.5px;font-weight:670;transition:border-color .14s,background-color .14s}.verify-email-resend-btn:hover:not(:disabled){border-color:var(--royal);background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.verify-email-resend-btn:hover:not(:disabled){background:color-mix(in srgb, var(--royal) 8%, var(--card))}}.verify-email-resend-btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.verify-email-resend-btn:disabled{opacity:.65;cursor:not-allowed}.verify-email-dismiss-btn{min-height:38px;padding:0 8px}@media (width<=720px){.verify-email-banner{flex-direction:column;align-items:stretch;gap:12px}.verify-email-banner-actions{flex-wrap:wrap;justify-content:space-between;width:100%}.verify-email-resend-btn{flex:auto}}.settings-layout{padding-bottom:32px}.settings-card{border:1px solid var(--line);background:var(--card);border-radius:18px;padding:24px;box-shadow:0 10px 28px #0f172a0a}.settings-card-header{border-bottom:1px solid var(--line);align-items:flex-start;gap:14px;margin-bottom:22px;padding-bottom:18px;display:flex}.settings-card-icon{background:var(--royal);border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}@supports (color:color-mix(in lab, red, red)){.settings-card-icon{background:color-mix(in srgb, var(--royal) 12%, var(--card))}}.settings-card-icon{color:var(--royal)}.settings-card-header h2{color:var(--navy);letter-spacing:-.02em;margin:0 0 4px;font-size:18px;font-weight:740}.settings-card-header p{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.settings-password-form{gap:16px;display:grid}.settings-card .password-control input{background-color:var(--input);border-color:var(--line-strong);color:var(--ink);min-height:42px;transition:border-color .14s,box-shadow .14s}.settings-card .password-control input.input-invalid{border-color:var(--accent-red)}.settings-card .password-control input:focus-visible{border-color:var(--royal);box-shadow:var(--focus-ring)}.password-control .password-toggle{top:50%;transform:translateY(-50%)}.settings-form-actions{justify-content:flex-end;padding-top:4px;display:flex}.settings-submit-btn{min-width:180px}@media (width<=600px){.settings-card{border-radius:16px;padding:18px 16px}.settings-form-actions{justify-content:stretch}.settings-submit-btn{width:100%}}.classroom-meta-stack{flex-direction:column;align-items:flex-end;gap:10px;display:flex}.classroom-header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.class-edit-form{box-shadow:none;background:0 0;border:0;padding:4px 0 0}.class-code-change-warning{border:1px solid var(--accent-amber);align-items:flex-start;gap:8px;margin-top:6px;display:flex}@supports (color:color-mix(in lab, red, red)){.class-code-change-warning{border:1px solid color-mix(in srgb, var(--accent-amber) 42%, var(--line))}}.class-code-change-warning{background:var(--accent-amber);border-radius:10px;padding:9px 11px}@supports (color:color-mix(in lab, red, red)){.class-code-change-warning{background:color-mix(in srgb, var(--accent-amber) 12%, var(--card))}}.class-code-change-warning{color:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.class-code-change-warning{color:color-mix(in srgb, var(--accent-amber) 76%, var(--ink))}}.class-code-change-warning{font-size:12.5px;line-height:1.45}.class-code-change-warning svg{color:var(--accent-amber);flex:none;margin-top:2px}[data-theme=dark] .class-code-change-warning{color:#fde68a}.archived-class-banner{border-color:var(--royal);justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}@supports (color:color-mix(in lab, red, red)){.archived-class-banner{border-color:color-mix(in srgb, var(--royal) 30%, var(--line))}}.archived-class-banner{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.archived-class-banner{background:color-mix(in srgb, var(--royal) 7%, var(--card))}}.archived-class-banner{padding:16px 20px}.archived-class-banner-copy{gap:6px;display:grid}.archived-class-banner-copy p{color:var(--muted);margin:0;font-size:13.5px;line-height:1.5}.archived-class-badge{border:1px solid var(--royal);align-items:center;gap:6px;width:fit-content;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.archived-class-badge{border:1px solid color-mix(in srgb, var(--royal) 28%, var(--line))}}.archived-class-badge{background:var(--card);color:var(--navy);border-radius:999px;padding:4px 11px;font-size:12px;font-weight:740}.dashboard-archive-tabs{border:1px solid var(--line);background:var(--card);border-radius:12px;align-items:center;gap:6px;padding:4px;display:inline-flex}.class-card-badges{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:6px;display:inline-flex}.enrolled-pill-archived{border:1px solid var(--navy);align-items:center;gap:5px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.enrolled-pill-archived{border:1px solid color-mix(in srgb, var(--navy) 22%, var(--line))}}.enrolled-pill-archived{background:var(--navy)}@supports (color:color-mix(in lab, red, red)){.enrolled-pill-archived{background:color-mix(in srgb, var(--navy) 9%, var(--card))}}.enrolled-pill-archived{color:var(--navy)}[data-theme=dark] .enrolled-pill-archived{border-color:var(--royal)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .enrolled-pill-archived{border-color:color-mix(in srgb, var(--royal) 36%, var(--line))}}[data-theme=dark] .enrolled-pill-archived{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .enrolled-pill-archived{background:color-mix(in srgb, var(--royal) 16%, var(--card))}}[data-theme=dark] .enrolled-pill-archived{color:#dbeafe}@media (width<=720px){.classroom-meta-stack,.classroom-header-actions{justify-content:flex-start;align-items:flex-start}.archived-class-banner{flex-direction:column;align-items:stretch}.archived-class-banner>.button,.dashboard-archive-tabs{width:100%}.dashboard-archive-tabs>.button{flex:1 1 0}}.class-shell{flex-direction:column;width:100%;display:flex}.class-shell-header{z-index:25;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.875rem 1rem;padding:.25rem 0 .75rem;display:flex;position:relative}.class-shell-header-main{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;min-width:0;display:flex}.class-shell-back{color:var(--muted);border-radius:var(--radius-control);background:var(--paper);align-items:center;gap:.375rem;padding:.35rem .65rem;font-size:.8125rem;font-weight:600;text-decoration:none;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.class-shell-back{background:color-mix(in srgb, var(--paper) 65%, var(--card))}}.class-shell-back{border:1px solid var(--line);transition:color .15s,background-color .15s,border-color .15s}.class-shell-back:hover{color:var(--ink);background:var(--card);border-color:var(--line-strong)}.class-shell-heading{flex-direction:column;min-width:0;display:flex}.class-shell-title-row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.class-shell-heading h1{color:var(--ink);margin:0;font-size:1.1875rem;font-weight:700;line-height:1.25}.class-shell-heading.is-deck h1{font-size:1.3125rem}.class-shell-description{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:480px;margin:.125rem 0 0;font-size:.8125rem;overflow:hidden}.class-shell-chips{flex-wrap:wrap;align-items:center;gap:.5rem;display:inline-flex}.class-shell-chip{color:var(--muted);background:var(--paper);align-items:center;gap:.375rem;font-size:.75rem;font-weight:600;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.class-shell-chip{background:color-mix(in srgb, var(--paper) 80%, var(--card))}}.class-shell-chip{border:1px solid var(--line);border-radius:9999px;padding:.3rem .625rem;line-height:1}.class-shell-schedule-chip.is-today{background:var(--accent-present)}@supports (color:color-mix(in lab, red, red)){.class-shell-schedule-chip.is-today{background:color-mix(in srgb, var(--accent-present) 12%, var(--card))}}.class-shell-schedule-chip.is-today{border-color:var(--accent-present)}@supports (color:color-mix(in lab, red, red)){.class-shell-schedule-chip.is-today{border-color:color-mix(in srgb, var(--accent-present) 38%, transparent)}}.class-shell-schedule-chip.is-today{color:var(--ink)}.class-shell-today-indicator{color:var(--accent-present);align-items:center;gap:.25rem;font-weight:700;display:inline-flex}.class-shell-header-actions{align-items:center;gap:.5rem;margin-left:auto;display:flex}.class-shell-popover-anchor{position:relative}.class-shell-invite-btn{align-items:center;gap:.375rem;font-size:.8125rem;font-weight:600;display:inline-flex}.class-shell-invite-popover{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);width:280px;box-shadow:var(--shadow-floating);z-index:50;flex-direction:column;gap:.75rem;padding:1rem;display:flex;position:absolute;top:calc(100% + 8px);right:0}.class-shell-invite-code-row{background:var(--paper);justify-content:space-between;align-items:center;padding:.375rem .625rem;display:flex}@supports (color:color-mix(in lab, red, red)){.class-shell-invite-code-row{background:color-mix(in srgb, var(--paper) 80%, var(--card))}}.class-shell-invite-code-row{border:1px solid var(--line);border-radius:var(--radius-control)}.class-shell-invite-code-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;font-weight:600}.class-shell-invite-code-badge{letter-spacing:.08em;color:var(--royal);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:1.125rem;font-weight:800}.class-shell-invite-copy{justify-content:center;gap:.375rem;width:100%;font-size:.8125rem;display:flex}.class-shell-invite-qr-section{border-top:1px solid var(--line);flex-direction:column;align-items:center;gap:.5rem;padding-top:.25rem;display:flex}.class-shell-invite-qr-img{border-radius:var(--radius-control);border:1px solid var(--line);background:#fff;width:160px;height:160px;padding:4px}.class-shell-invite-qr-actions{justify-content:center;align-items:center;gap:.5rem;width:100%;display:flex}.class-shell-invite-qr-placeholder{color:var(--muted);padding:2rem 0;font-size:.8125rem}.class-shell-invite-error{color:var(--accent-red);font-size:.75rem}.class-shell-more-btn{border-radius:var(--radius-control);border:1px solid var(--line);background:var(--card);width:36px;height:36px;color:var(--muted);cursor:pointer;justify-content:center;align-items:center;transition:color .15s,background-color .15s,border-color .15s;display:inline-flex}.class-shell-more-btn:hover,.class-shell-more-btn.is-open{color:var(--ink);background:var(--paper)}@supports (color:color-mix(in lab, red, red)){.class-shell-more-btn:hover,.class-shell-more-btn.is-open{background:color-mix(in srgb, var(--paper) 70%, var(--card))}}.class-shell-more-btn:hover,.class-shell-more-btn.is-open{border-color:var(--line-strong)}.class-shell-overflow-menu{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-control);min-width:175px;box-shadow:var(--shadow-floating);z-index:50;flex-direction:column;gap:.2rem;padding:.35rem;display:flex;position:absolute;top:calc(100% + 8px);right:0}.class-shell-menu-item{width:100%;color:var(--ink);border-radius:calc(var(--radius-control) - 4px);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:500;transition:background-color .12s,color .12s;display:flex}.class-shell-menu-item:hover{background:var(--paper)}@supports (color:color-mix(in lab, red, red)){.class-shell-menu-item:hover{background:color-mix(in srgb, var(--paper) 70%, var(--card))}}.class-shell-menu-item-danger{color:var(--accent-red)}.class-shell-menu-item-danger:hover{background:var(--accent-red)}@supports (color:color-mix(in lab, red, red)){.class-shell-menu-item-danger:hover{background:color-mix(in srgb, var(--accent-red) 12%, var(--card))}}.class-shell-menu-item-danger:hover{color:var(--accent-red)}.class-shell-tabs-wrap{top:var(--app-header-height,77px);z-index:18;background:var(--card);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;margin:0 0 1.25rem;position:sticky;overflow:hidden}.class-shell-tabs{scrollbar-width:none;-webkit-overflow-scrolling:touch;justify-content:space-between;align-items:center;min-height:56px;padding:0 .625rem;display:flex;overflow-x:auto}.class-shell-tabs::-webkit-scrollbar{display:none}.class-shell-tab-group{flex-shrink:0;align-items:center;gap:.25rem;display:flex}.class-shell-tab-group-secondary{margin-left:auto}.class-shell-tab-divider{background:var(--line);flex-shrink:0;width:1px;height:1.25rem;margin:0 .5rem}.class-shell-tab{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;outline:none;align-items:center;gap:.375rem;padding:1.0625rem .875rem .9375rem;font-size:.875rem;font-weight:500;line-height:1.2;transition:color .15s,border-color .15s;display:inline-flex}.class-shell-tab:hover{color:var(--ink)}.class-shell-tab:focus-visible{outline:2px solid var(--royal);outline-offset:-2px;border-radius:4px}.class-shell-tab.is-active{color:var(--royal);border-bottom-color:var(--royal);font-weight:700}.class-shell-tab svg{flex-shrink:0}.class-shell-tab-deck{border:1px solid var(--line);color:var(--muted);border-bottom:1px solid var(--line);background:0 0;border-radius:10px;align-self:center;margin-right:.25rem;padding:.625rem 1.125rem;font-weight:500}.class-shell-tab-deck:hover{border-color:var(--royal)}@supports (color:color-mix(in lab, red, red)){.class-shell-tab-deck:hover{border-color:color-mix(in srgb, var(--royal) 35%, var(--line))}}.class-shell-tab-deck:hover{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.class-shell-tab-deck:hover{background:color-mix(in srgb, var(--royal) 5%, var(--card))}}.class-shell-tab-deck:hover{color:var(--ink)}.class-shell-tab-deck.is-active{border-color:var(--royal)}@supports (color:color-mix(in lab, red, red)){.class-shell-tab-deck.is-active{border-color:color-mix(in srgb, var(--royal) 50%, var(--line))}}.class-shell-tab-deck.is-active{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.class-shell-tab-deck.is-active{background:color-mix(in srgb, var(--royal) 10%, var(--card))}}.class-shell-tab-deck.is-active{color:var(--royal);border-bottom:1px solid var(--royal);font-weight:700}@supports (color:color-mix(in lab, red, red)){.class-shell-tab-deck.is-active{border-bottom:1px solid color-mix(in srgb, var(--royal) 50%, var(--line))}}.module-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.module-header-copy{flex-direction:column;gap:.25rem;display:flex}.module-header-copy h2{color:var(--ink);margin:0;font-size:1.25rem;font-weight:700;line-height:1.25}.module-header-copy p{color:var(--muted);margin:0;font-size:.8125rem;line-height:1.4}.module-header-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.header-notifications{align-items:center;display:inline-flex;position:relative}.header-bell-trigger{border-radius:var(--radius-control);width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;transition:color .15s,background-color .15s,border-color .15s;display:inline-flex;position:relative}.header-bell-trigger:hover,.header-bell-trigger.is-open{color:var(--ink);background:var(--paper)}@supports (color:color-mix(in lab, red, red)){.header-bell-trigger:hover,.header-bell-trigger.is-open{background:color-mix(in srgb, var(--paper) 70%, var(--card))}}.header-bell-trigger:hover,.header-bell-trigger.is-open{border-color:var(--line)}.header-bell-badge{background:var(--accent-red);color:#fff;text-align:center;border-radius:9999px;min-width:18px;height:18px;padding:0 4px;font-size:.75rem;font-weight:700;line-height:18px;position:absolute;top:2px;right:2px}.header-notifications-popover{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-card);width:320px;max-height:400px;box-shadow:var(--shadow-floating);z-index:60;flex-direction:column;padding:.5rem;display:flex;position:absolute;top:calc(100% + 10px);right:0;overflow-y:auto}.header-notifications-head{color:var(--ink);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:.25rem;padding:.5rem .625rem;font-size:.875rem;font-weight:700;display:flex}.header-notifications-list{flex-direction:column;gap:.25rem;display:flex}.header-notification-item{border-radius:var(--radius-control);color:var(--ink);justify-content:space-between;align-items:center;gap:.5rem;padding:.625rem .75rem;text-decoration:none;transition:background-color .15s;display:flex}.header-notification-item:hover{background:var(--paper)}@supports (color:color-mix(in lab, red, red)){.header-notification-item:hover{background:color-mix(in srgb, var(--paper) 70%, var(--card))}}.header-notification-copy{flex-direction:column;gap:.125rem;display:flex}.header-notification-copy strong{color:var(--ink);font-size:.875rem;font-weight:600}.header-notification-copy span{color:var(--muted);font-size:.75rem}.header-notifications-empty{color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:2rem 1rem;font-size:.8125rem;display:flex}.pending-actions-warning{flex-wrap:wrap;align-items:center;gap:.375rem;display:flex}@media (width<=680px){.class-shell-header{flex-direction:column;align-items:flex-start}.class-shell-header-actions{justify-content:flex-end;width:100%;margin-left:0}.class-shell-chips{width:100%}.class-shell-tab{padding:.875rem .65rem .75rem;font-size:.8125rem}.class-shell-tab-deck{padding:.5rem .875rem}.header-notifications-popover{width:min(320px,100vw - 32px);right:-10px}}.attendance-status-strip{background:var(--card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;min-height:46px;margin:12px 0 16px;padding:8px 14px;display:flex}@supports (color:color-mix(in lab, red, red)){.attendance-status-strip{background:color-mix(in srgb, var(--card) 90%, transparent)}}.attendance-status-strip{border:1px solid var(--line);border-radius:12px}.attendance-strip-info{color:var(--navy);align-items:center;gap:8px;font-size:13px;font-weight:550;display:flex}.attendance-strip-icon{color:var(--royal);flex-shrink:0}.attendance-strip-actions{position:relative}.attendance-grace-btn{border-radius:8px;align-items:center;gap:6px;min-height:36px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex}.attendance-grace-popover{z-index:50;border:1px solid var(--line);background:var(--card);border-radius:14px;width:min(320px,100vw - 32px);padding:14px;animation:.15s ease-out fadeIn;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 14px 32px #0f172a29}.attendance-grace-popover-header{color:var(--navy);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;font-weight:700;display:flex}.attendance-popover-close{width:28px;height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;display:flex}.attendance-popover-close:hover{background:var(--muted)}@supports (color:color-mix(in lab, red, red)){.attendance-popover-close:hover{background:color-mix(in srgb, var(--muted) 15%, transparent)}}.attendance-popover-close:hover{color:var(--navy)}.attendance-grace-popover-help{color:var(--muted);margin:8px 0 0;font-size:12px;line-height:1.4}.attendance-filter-pills{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px;display:flex}.attendance-filter-pill{border:1px solid var(--line);background:var(--card);min-height:40px;color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:12.5px;font-weight:600;transition:all .14s;display:inline-flex}.attendance-filter-pill:hover{border-color:var(--royal);color:var(--navy)}.attendance-filter-pill.is-active{border-color:var(--royal);background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.attendance-filter-pill.is-active{background:color-mix(in srgb, var(--royal) 12%, var(--card))}}.attendance-filter-pill.is-active{color:var(--royal)}.attendance-filter-pill.pill-present.is-active{border-color:var(--status-present);background:var(--status-present)}@supports (color:color-mix(in lab, red, red)){.attendance-filter-pill.pill-present.is-active{background:color-mix(in srgb, var(--status-present) 12%, var(--card))}}.attendance-filter-pill.pill-present.is-active{color:var(--status-present-text)}.attendance-filter-pill.pill-late.is-active{border-color:var(--status-late);background:var(--status-late)}@supports (color:color-mix(in lab, red, red)){.attendance-filter-pill.pill-late.is-active{background:color-mix(in srgb, var(--status-late) 12%, var(--card))}}.attendance-filter-pill.pill-late.is-active{color:var(--status-late-text)}.attendance-filter-pill.pill-absent.is-active{border-color:var(--status-absent);background:var(--status-absent)}@supports (color:color-mix(in lab, red, red)){.attendance-filter-pill.pill-absent.is-active{background:color-mix(in srgb, var(--status-absent) 12%, var(--card))}}.attendance-filter-pill.pill-absent.is-active{color:var(--status-absent-text)}.attendance-filter-pill.pill-unmarked.is-active{border-color:var(--navy);background:var(--navy)}@supports (color:color-mix(in lab, red, red)){.attendance-filter-pill.pill-unmarked.is-active{background:color-mix(in srgb, var(--navy) 10%, var(--card))}}.attendance-filter-pill.pill-unmarked.is-active{color:var(--navy)}.attendance-pill-count{background:currentColor;border-radius:999px;padding:2px 7px;font-size:12px;font-weight:700}@supports (color:color-mix(in lab, red, red)){.attendance-pill-count{background:color-mix(in srgb, currentColor 12%, transparent)}}.attendance-toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.attendance-bulk-btn{align-items:center;gap:6px;min-height:40px;padding:0 12px;font-size:12px;display:inline-flex}.attendance-rollcall-btn{align-items:center;gap:7px;min-height:40px;padding:0 14px;font-size:12.5px;display:inline-flex}.attendance-mode-caption{color:var(--muted);font-size:12px;font-weight:500}.attendance-student-card{border:1px solid var(--line);background:var(--card);border-radius:14px;flex-direction:column;transition:box-shadow .16s,border-color .16s;display:flex;position:relative;overflow:hidden}.attendance-student-card:hover{border-color:var(--royal)}@supports (color:color-mix(in lab, red, red)){.attendance-student-card:hover{border-color:color-mix(in srgb, var(--royal) 40%, var(--line))}}.attendance-student-card:hover{box-shadow:0 6px 18px #0f172a0f}.attendance-card-edge{background:var(--line);width:100%;height:3px}.attendance-card-present .attendance-card-edge{background:var(--status-present)}.attendance-card-late .attendance-card-edge{background:var(--status-late)}.attendance-card-absent .attendance-card-edge{background:var(--status-absent)}.attendance-card-unmarked .attendance-card-edge{background:var(--line)}.attendance-card-body{flex-direction:column;flex:1;gap:12px;padding:14px 16px;display:flex}.attendance-card-header{align-items:flex-start;gap:12px;display:flex}.attendance-card-photo{flex-shrink:0}.attendance-card-identity{flex:1;min-width:0}.attendance-card-name{color:var(--navy);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:14px;font-weight:700;line-height:1.3;overflow:hidden}.attendance-card-subinfo{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;font-size:12px;display:flex}.attendance-card-badges{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:5px;display:flex}.attendance-status-badge{border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:650;display:inline-flex}.attendance-status-badge.status-present{background:var(--status-present)}@supports (color:color-mix(in lab, red, red)){.attendance-status-badge.status-present{background:color-mix(in srgb, var(--status-present) 14%, var(--card))}}.attendance-status-badge.status-present{color:var(--status-present-text);border:1px solid var(--status-present)}@supports (color:color-mix(in lab, red, red)){.attendance-status-badge.status-present{border:1px solid color-mix(in srgb, var(--status-present) 30%, transparent)}}.attendance-status-badge.status-late{background:var(--status-late)}@supports (color:color-mix(in lab, red, red)){.attendance-status-badge.status-late{background:color-mix(in srgb, var(--status-late) 14%, var(--card))}}.attendance-status-badge.status-late{color:var(--status-late-text);border:1px solid var(--status-late)}@supports (color:color-mix(in lab, red, red)){.attendance-status-badge.status-late{border:1px solid color-mix(in srgb, var(--status-late) 30%, transparent)}}.attendance-status-badge.status-absent{background:var(--status-absent)}@supports (color:color-mix(in lab, red, red)){.attendance-status-badge.status-absent{background:color-mix(in srgb, var(--status-absent) 14%, var(--card))}}.attendance-status-badge.status-absent{color:var(--status-absent-text);border:1px solid var(--status-absent)}@supports (color:color-mix(in lab, red, red)){.attendance-status-badge.status-absent{border:1px solid color-mix(in srgb, var(--status-absent) 30%, transparent)}}.attendance-status-badge.status-unmarked{background:var(--muted)}@supports (color:color-mix(in lab, red, red)){.attendance-status-badge.status-unmarked{background:color-mix(in srgb, var(--muted) 10%, var(--card))}}.attendance-status-badge.status-unmarked{color:var(--muted);border:1px solid var(--line)}.attendance-absent-counter{color:var(--muted);align-items:center;gap:4px;font-size:12px;font-weight:550;display:inline-flex}.attendance-absent-counter.is-warning{color:var(--status-absent-text);background:var(--status-absent);font-weight:700}@supports (color:color-mix(in lab, red, red)){.attendance-absent-counter.is-warning{background:color-mix(in srgb, var(--status-absent) 12%, transparent)}}.attendance-absent-counter.is-warning{border-radius:6px;padding:2px 7px}.attendance-card-actions{gap:6px;margin-top:auto;padding-top:6px;display:flex}.attendance-action-btn{border:1px solid var(--line);background:var(--card);min-height:44px;color:var(--muted);cursor:pointer;border-radius:10px;flex:1 1 0;justify-content:center;align-items:center;gap:6px;font-size:12px;font-weight:650;transition:all .14s;display:inline-flex}.attendance-action-btn:hover:not(:disabled){border-color:currentColor;transform:translateY(-1px)}.attendance-action-btn:disabled{cursor:wait;opacity:.55}.attendance-action-btn-present.is-active,.attendance-btn-present-active{box-shadow:0 2px 6px var(--status-present);background:var(--status-present)!important;border-color:var(--status-present)!important;color:#fff!important}@supports (color:color-mix(in lab, red, red)){.attendance-action-btn-present.is-active,.attendance-btn-present-active{box-shadow:0 2px 6px color-mix(in srgb, var(--status-present) 30%, transparent)}}.attendance-action-btn-late.is-active,.attendance-btn-late-active{box-shadow:0 2px 6px var(--status-late);background:var(--status-late)!important;border-color:var(--status-late)!important;color:#fff!important}@supports (color:color-mix(in lab, red, red)){.attendance-action-btn-late.is-active,.attendance-btn-late-active{box-shadow:0 2px 6px color-mix(in srgb, var(--status-late) 30%, transparent)}}.attendance-action-btn-absent.is-active,.attendance-btn-absent-active{box-shadow:0 2px 6px var(--status-absent);background:var(--status-absent)!important;border-color:var(--status-absent)!important;color:#fff!important}@supports (color:color-mix(in lab, red, red)){.attendance-action-btn-absent.is-active,.attendance-btn-absent-active{box-shadow:0 2px 6px color-mix(in srgb, var(--status-absent) 30%, transparent)}}.student-grid-list .attendance-student-card{flex-direction:row}.student-grid-list .attendance-card-edge{width:4px;height:100%}.student-grid-list .attendance-card-body{flex-direction:row;justify-content:space-between;align-items:center;gap:16px;width:100%}.student-grid-list .attendance-card-header{flex:1;align-items:center}.student-grid-list .attendance-card-actions{flex-shrink:0;width:310px;padding-top:0}@media (width<=768px){.student-grid-list .attendance-student-card{flex-direction:column}.student-grid-list .attendance-card-edge{width:100%;height:3px}.student-grid-list .attendance-card-body{flex-direction:column;align-items:stretch}.student-grid-list .attendance-card-actions{width:100%}.attendance-toolbar{flex-direction:column;align-items:stretch}.attendance-toolbar-actions{justify-content:stretch;width:100%}.attendance-toolbar-actions .button{flex:1;justify-content:center}}.attendance-card-name-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.attendance-card-meta-row{align-items:center;gap:8px;margin-top:4px;display:flex}.attendance-card-subinfo{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;margin-top:2px;font-size:12px;display:flex;overflow:hidden}.attendance-card-header{align-items:flex-start;gap:12px;width:100%;min-width:0;display:flex}.attendance-card-identity{flex:1;width:100%;min-width:0}.attendance-card-name-row{justify-content:space-between;align-items:center;gap:8px;width:100%;min-width:0;display:flex}.attendance-card-name{color:var(--navy);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;margin:0;font-size:14px;font-weight:700;line-height:1.3;overflow:hidden}.attendance-status-badge{flex-shrink:0}.attendance-card-name{color:var(--navy);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;font-weight:700;line-height:1.25;display:-webkit-box;overflow:hidden;white-space:normal!important}.attendance-card-meta-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.student-list-search-bar{background:var(--card);border:1px solid var(--line);border-radius:10px;align-items:center;gap:8px;width:min(320px,100%);height:40px;padding:0 12px;display:flex}.student-list-search-bar input{color:var(--navy);background:0 0;border:0;outline:none;width:100%;font-size:13px}.student-list-search-clear{width:20px;height:20px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:flex}.student-list-search-clear:hover{background:var(--muted)}@supports (color:color-mix(in lab, red, red)){.student-list-search-clear:hover{background:color-mix(in srgb, var(--muted) 15%, transparent)}}.student-list-search-clear:hover{color:var(--navy)}.is-focused-student-row{background:var(--royal)!important}@supports (color:color-mix(in lab, red, red)){.is-focused-student-row{background:color-mix(in srgb, var(--royal) 16%, var(--card))!important}}.is-focused-student-row{outline:2px solid var(--royal);outline-offset:-1px}.drop-list-sort-btn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-weight:700;display:inline-flex}.drop-list-sort-btn:hover{color:var(--royal)}.export-summary-strip{background:var(--surface-muted);border:1px solid var(--border-color);width:fit-content;max-width:100%;color:var(--text-color);border-radius:.5rem;align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.5rem .85rem;font-size:.85rem;display:inline-flex}.export-summary-chip{align-items:center;gap:.4rem;display:inline-flex}.export-summary-divider{color:var(--text-muted);font-weight:700}.export-section-title{color:var(--navy);margin:0;font-size:1rem;font-weight:600}.export-section-desc{color:var(--text-muted);margin:.15rem 0 0;font-size:.78rem}.export-quick-actions{align-items:center;gap:.5rem;display:flex}.export-link-btn{color:var(--royal);cursor:pointer;background:0 0;border:none;border-radius:.35rem;padding:.25rem .5rem;font-size:.82rem;font-weight:600;transition:background-color .15s}.export-link-btn:hover:not(:disabled){background:var(--surface-muted);text-decoration:underline}.export-link-btn:disabled{opacity:.45;cursor:not-allowed}.export-link-divider{color:var(--text-muted)}.export-type-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}@media (width<=640px){.export-type-grid{grid-template-columns:1fr}}.export-type-card{background:var(--surface-card);border:1px solid var(--border-color);text-align:left;cursor:pointer;border-radius:.65rem;align-items:flex-start;gap:.75rem;width:100%;min-height:48px;padding:.85rem 1rem;transition:all .15s;display:flex}.export-type-card:hover{background:var(--surface-muted);border-color:var(--royal)}@supports (color:color-mix(in lab, red, red)){.export-type-card:hover{border-color:color-mix(in srgb, var(--royal) 35%, var(--border-color))}}.export-type-card.is-selected{border-color:var(--royal);background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.export-type-card.is-selected{background:color-mix(in srgb, var(--royal) 6%, var(--surface-card))}}.export-type-card.is-selected{box-shadow:0 0 0 1px var(--royal)}.export-checkbox-indicator{border:1.5px solid var(--text-muted);background:var(--surface-card);color:#fff;border-radius:.25rem;flex-shrink:0;justify-content:center;align-items:center;width:1.15rem;height:1.15rem;margin-top:.1rem;transition:all .15s;display:flex}.export-checkbox-indicator.is-checked{background:var(--royal-solid);border-color:var(--royal-solid)}.export-type-icon-wrapper{color:var(--royal);flex-shrink:0;justify-content:center;align-items:center;margin-top:.1rem;display:flex}.export-type-info{flex-direction:column;gap:.1rem;min-width:0;display:flex}.export-type-title{color:var(--navy);font-size:.88rem;font-weight:600;line-height:1.25}.export-type-count{color:var(--text-muted);font-size:.78rem;line-height:1.2}.export-format-wrapper{border-top:1px solid var(--border-color);flex-direction:column;gap:.5rem;padding-top:.75rem;display:flex}.export-format-heading{color:var(--navy);font-size:.88rem;font-weight:600}.export-format-segmented{background:var(--surface-muted);border:1px solid var(--border-color);border-radius:.5rem;gap:.25rem;width:fit-content;max-width:100%;padding:.2rem;display:inline-flex}.export-format-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:.35rem;align-items:center;gap:.45rem;min-height:40px;padding:.45rem .95rem;font-size:.82rem;font-weight:500;transition:all .15s;display:inline-flex}.export-format-tab:hover{color:var(--text-color)}.export-format-tab.is-active{background:var(--surface-card);color:var(--royal);font-weight:600;box-shadow:0 1px 3px #00000014}.export-format-hint{color:var(--text-muted);margin:0;font-size:.78rem;line-height:1.35}.export-footer{border-top:1px solid var(--border-color);padding-top:.75rem}.export-footer-action-group{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.export-submit-button{align-items:center;gap:.5rem;min-height:44px;padding:0 1.25rem;font-size:.88rem;font-weight:600;display:inline-flex}.export-disabled-hint{color:var(--warning,#b54708);align-items:center;gap:.35rem;margin:0;font-size:.78rem;display:flex}.activities-view-toggle{margin-bottom:1rem;display:flex}.activities-segmented{background:var(--surface-muted);border:1px solid var(--border-color);border-radius:.5rem;gap:.25rem;width:fit-content;padding:.2rem;display:inline-flex}.activities-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:.35rem;justify-content:center;align-items:center;min-height:38px;padding:.45rem 1rem;font-size:.82rem;font-weight:500;transition:all .15s;display:inline-flex}.activities-tab:hover{color:var(--text-color)}.activities-tab.is-active{background:var(--surface-card);color:var(--royal);font-weight:600;box-shadow:0 1px 3px #00000014}.activity-card{border:1px solid var(--border-color);background:var(--surface-card);border-radius:.75rem;grid-template-columns:auto 1fr auto auto;align-items:center;gap:1.25rem;min-height:48px;padding:1rem 1.25rem;display:grid}@media (width<=640px){.activity-card{grid-template-columns:1fr;gap:.75rem}}.activity-card-icon{background:var(--royal);border-radius:.5rem;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;display:flex}@supports (color:color-mix(in lab, red, red)){.activity-card-icon{background:color-mix(in srgb, var(--royal) 10%, transparent)}}.activity-card-icon{color:var(--royal);flex-shrink:0}.activity-card-copy{flex-direction:column;gap:.15rem;min-width:0;display:flex}.activity-card-header{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:flex}.activity-card-title{color:var(--navy);margin:0;font-size:1rem;font-weight:600;line-height:1.25}.activity-session-date{color:var(--royal);background:var(--royal);font-size:.75rem;font-weight:500}@supports (color:color-mix(in lab, red, red)){.activity-session-date{background:color-mix(in srgb, var(--royal) 10%, transparent)}}.activity-session-date{border-radius:.25rem;padding:.1rem .45rem}.activity-card-max-score{color:var(--text-muted);margin:.15rem 0 0;font-size:.78rem}.activity-card-stats-col{flex-direction:column;gap:.35rem;min-width:140px;display:flex}.activity-card-stats-text{color:var(--text-muted);font-size:.8rem}.activity-progress-track,.project-progress-track{background:var(--surface-muted);border-radius:9999px;width:100%;height:6px;overflow:hidden}.activity-progress-fill,.project-progress-fill{background:var(--royal);border-radius:9999px;height:100%;transition:width .3s}.activity-card-action-btn{white-space:nowrap;align-items:center;gap:.4rem;min-height:44px;display:inline-flex}.project-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}@media (width<=640px){.project-card-grid{grid-template-columns:1fr}}.project-card{border:1px solid var(--border-color);background:var(--surface-card);border-radius:.75rem;flex-direction:column;gap:.85rem;padding:1.25rem;transition:box-shadow .15s;display:flex}.project-card-midterm{border-left:3px solid var(--royal)}.project-card-finals{border-left:3px solid var(--accent-teal)}.project-card-top-row{justify-content:space-between;align-items:center;display:flex}.project-card-icon{background:var(--royal);border-radius:.5rem;justify-content:center;align-items:center;width:2.25rem;height:2.25rem;display:flex}@supports (color:color-mix(in lab, red, red)){.project-card-icon{background:color-mix(in srgb, var(--royal) 10%, transparent)}}.project-card-icon{color:var(--royal)}.project-card-finals .project-card-icon{background:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.project-card-finals .project-card-icon{background:color-mix(in srgb, var(--accent-teal) 12%, transparent)}}.project-card-finals .project-card-icon{color:var(--accent-teal)}.project-card-title{color:var(--navy);margin:0;font-size:1.1rem;font-weight:600}.project-max-score-row{align-items:center;gap:.35rem;min-height:24px;font-size:.82rem;display:flex}.project-max-score-empty,.project-max-score-divider{color:var(--text-muted)}.project-set-max-btn{color:var(--royal);cursor:pointer;background:0 0;border:none;min-height:24px;padding:0;font-size:.82rem;font-weight:600;text-decoration:underline}.project-max-score-set{color:var(--navy);font-size:.82rem;font-weight:500}.project-card-stats-block{flex-direction:column;gap:.35rem;display:flex}.project-card-stats-text{color:var(--text-muted);justify-content:space-between;font-size:.82rem;display:flex}.project-card-actions{justify-content:flex-start;margin-top:auto;padding-top:.5rem;display:flex}.project-card-actions button{min-height:44px}.recitation-pool-badge{border:1px solid var(--royal);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.recitation-pool-badge{border:1px solid color-mix(in srgb, var(--royal) 35%, var(--line))}}.recitation-pool-badge{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.recitation-pool-badge{background:color-mix(in srgb, var(--royal) 8%, var(--card))}}.recitation-pool-badge{color:var(--navy);font-size:13px;font-weight:600}.recitation-pool-badge svg{color:var(--royal);flex-shrink:0}.recitation-deck-card{border:1px solid var(--line);background:var(--card);border-radius:14px;margin:14px 0 16px;padding:12px 14px}@supports (color:color-mix(in lab, red, red)){.recitation-deck-card{background:color-mix(in srgb, var(--card) 92%, transparent)}}.recitation-deck-card{box-shadow:0 2px 8px #12264f0a}.recitation-deck-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:10px;display:flex}@supports (color:color-mix(in lab, red, red)){.recitation-deck-toolbar{border-bottom:1px solid color-mix(in srgb, var(--line) 70%, transparent)}}.recitation-mode-block{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.recitation-mode-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-right:2px;font-size:12px;font-weight:700}.recitation-mode-toggle{border:1px solid var(--line);background:var(--card);border-radius:10px;align-items:center;gap:4px;padding:3px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.recitation-mode-toggle{background:color-mix(in srgb, var(--card) 85%, transparent)}}.recitation-mode-btn{min-height:38px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:600;transition:background-color .14s,color .14s,border-color .14s;display:inline-flex}.recitation-mode-btn:hover{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.recitation-mode-btn:hover{background:color-mix(in srgb, var(--royal) 8%, transparent)}}.recitation-mode-btn:hover{color:var(--navy)}.recitation-mode-btn.is-active{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.recitation-mode-btn.is-active{background:color-mix(in srgb, var(--royal) 14%, var(--card))}}.recitation-mode-btn.is-active{color:var(--royal);border-color:var(--royal)}@supports (color:color-mix(in lab, red, red)){.recitation-mode-btn.is-active{border-color:color-mix(in srgb, var(--royal) 45%, var(--line))}}.recitation-mode-btn.is-active{box-shadow:none}.recitation-mode-btn:focus-visible{outline:2px solid var(--royal);outline-offset:2px}.recitation-tooltip-anchor{align-items:center;display:inline-flex;position:relative}.recitation-help-btn{border:1px solid var(--line-strong,var(--line));background:var(--card);width:24px;height:24px;color:var(--muted);cursor:pointer;border-radius:50%;place-items:center;padding:0;font-size:12px;font-weight:700;transition:color .14s,border-color .14s,background-color .14s;display:grid}.recitation-help-btn:hover,.recitation-help-btn:focus-visible{color:var(--royal);border-color:var(--royal);background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.recitation-help-btn:hover,.recitation-help-btn:focus-visible{background:color-mix(in srgb, var(--royal) 8%, var(--card))}}.recitation-help-btn:hover,.recitation-help-btn:focus-visible{outline:none}.recitation-help-popover{background:var(--navy);color:#fff;z-index:50;pointer-events:none;border-radius:8px;width:260px;padding:10px 12px;font-size:12px;line-height:1.45;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 6px 18px #00000038}.recitation-help-popover:before{content:"";border-style:solid;border-width:0 6px 6px;border-color:transparent transparent var(--navy) transparent;position:absolute;top:-6px;left:50%;transform:translate(-50%)}[data-theme=dark] .recitation-help-popover{background:var(--card)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .recitation-help-popover{background:color-mix(in srgb, var(--card) 95%, #fff)}}[data-theme=dark] .recitation-help-popover{border:1px solid var(--line);color:var(--ink)}[data-theme=dark] .recitation-help-popover:before{border-color:transparent transparent var(--card) transparent}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .recitation-help-popover:before{border-color:transparent transparent color-mix(in srgb, var(--card) 95%, #fff) transparent}}.recitation-mode-help{color:var(--muted);margin-left:4px;font-size:12px}.recitation-actions-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.recitation-shuffle-btn{justify-content:center;align-items:center;gap:8px;min-width:130px;min-height:44px;font-size:13px;font-weight:700;display:inline-flex}.recitation-skip-btn{justify-content:center;align-items:center;gap:6px;min-height:44px;font-size:13px;font-weight:600;display:inline-flex}.recitation-settings-anchor{position:relative}.recitation-settings-btn{border:1px solid var(--line);background:var(--card);width:44px;min-height:44px;color:var(--muted);cursor:pointer;border-radius:10px;place-items:center;padding:0;transition:color .14s,border-color .14s,background-color .14s;display:grid}.recitation-settings-btn:hover,.recitation-settings-btn.is-active{color:var(--navy);border-color:var(--royal);background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.recitation-settings-btn:hover,.recitation-settings-btn.is-active{background:color-mix(in srgb, var(--royal) 8%, var(--card))}}.recitation-settings-btn:focus-visible{outline:2px solid var(--royal);outline-offset:2px}.recitation-settings-popover{border:1px solid var(--line);background:var(--card);z-index:50;border-radius:14px;width:270px;padding:14px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 28px #12264f29}.recitation-settings-header{border-bottom:1px solid var(--line);margin-bottom:12px;padding-bottom:8px}.recitation-settings-header strong{color:var(--navy);font-size:13px;font-weight:700}.recitation-settings-body{flex-direction:column;gap:12px;display:flex}.recitation-sound-btn{border:1px solid var(--line);background:var(--card);border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:0 12px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.recitation-sound-btn{background:color-mix(in srgb, var(--card) 95%, transparent)}}.recitation-sound-btn{color:var(--royal);cursor:pointer;font-size:12px;font-weight:600;transition:background-color .14s,border-color .14s,color .14s}.recitation-sound-btn:hover{border-color:var(--royal);background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.recitation-sound-btn:hover{background:color-mix(in srgb, var(--royal) 8%, var(--card))}}.recitation-sound-btn.is-muted{color:var(--muted)}.recitation-switch-row{min-height:40px;color:var(--navy);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:600;display:flex}.recitation-switch-row input{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.recitation-duration-row{flex-direction:column;gap:6px;display:flex}.recitation-duration-label{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.recitation-duration-row input[type=range]{width:100%;accent-color:var(--royal);cursor:pointer}.recitation-empty-card{text-align:center;flex-direction:column;align-items:center;max-width:420px;padding:24px 20px;display:flex}.recitation-empty-attendance-btn{align-items:center;gap:8px;min-height:44px;margin-top:14px;font-size:13px;font-weight:600;display:inline-flex}.recitation-mini-name,.recitation-mini-card>span:not(.avatar){width:100%;color:var(--navy);text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.recitation-mini-card.is-late{border-top-color:var(--status-late)}.recitation-mini-late{background:var(--status-late);border-radius:10px;padding:2px 6px}@supports (color:color-mix(in lab, red, red)){.recitation-mini-late{background:color-mix(in srgb, var(--status-late) 14%, var(--card))}}.recitation-mini-late{color:var(--status-late-text);font-size:12px;font-weight:600}@media (width<=640px){.recitation-deck-toolbar{flex-direction:column;align-items:stretch;gap:10px}.recitation-mode-block{justify-content:space-between}.recitation-mode-help{width:100%;margin-top:4px;margin-left:0}.recitation-actions-bar{justify-content:space-between;width:100%}.recitation-shuffle-btn{flex:1}}.class-grid.student-class-grid{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:22px;display:grid}.class-card.student-index-card{border:1px solid var(--line);border-top:6px solid var(--card-accent,var(--royal));background:repeating-linear-gradient(to bottom, transparent 0, transparent 35px, var(--royal) 36px, transparent 37px), var(--card);border-radius:18px;padding:20px 22px 18px}@supports (color:color-mix(in lab, red, red)){.class-card.student-index-card{background:repeating-linear-gradient(to bottom, transparent 0, transparent 35px, color-mix(in srgb, var(--royal) 5.5%, transparent) 36px, transparent 37px), color-mix(in srgb, var(--card) 96%, var(--accent-amber))}}.class-card.student-index-card{box-shadow:var(--shadow-soft), 3px 6px 0 0 var(--card), 6px 12px 0 0 var(--card)}@supports (color:color-mix(in lab, red, red)){.class-card.student-index-card{box-shadow:var(--shadow-soft), 3px 6px 0 0 color-mix(in srgb, var(--card) 85%, var(--line)), 6px 12px 0 0 color-mix(in srgb, var(--card) 70%, var(--line))}}.class-card.student-index-card{transition:transform .16s,box-shadow .16s,border-color .16s}.class-card.student-index-card:before{display:none}[data-theme=dark] .class-card.student-index-card{background:repeating-linear-gradient(to bottom, transparent 0, transparent 35px, var(--royal) 36px, transparent 37px), var(--card)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .class-card.student-index-card{background:repeating-linear-gradient(to bottom, transparent 0, transparent 35px, color-mix(in srgb, var(--royal) 8%, transparent) 36px, transparent 37px), color-mix(in srgb, var(--card) 95%, var(--paper))}}[data-theme=dark] .class-card.student-index-card{box-shadow:var(--shadow-soft), 3px 6px 0 0 var(--card), 6px 12px 0 0 var(--card)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .class-card.student-index-card{box-shadow:var(--shadow-soft), 3px 6px 0 0 color-mix(in srgb, var(--card) 75%, var(--paper)), 6px 12px 0 0 color-mix(in srgb, var(--card) 55%, var(--paper))}}.class-card.student-index-card:hover,.class-card.student-index-card:focus-within{border-color:var(--card-accent,var(--royal));transform:translateY(-3px)}@supports (color:color-mix(in lab, red, red)){.class-card.student-index-card:hover,.class-card.student-index-card:focus-within{border-color:color-mix(in srgb, var(--card-accent,var(--royal)) 42%, var(--line))}}.class-card.student-index-card:hover,.class-card.student-index-card:focus-within{box-shadow:var(--shadow-floating), 4px 7px 0 0 var(--card), 8px 14px 0 0 var(--card)}@supports (color:color-mix(in lab, red, red)){.class-card.student-index-card:hover,.class-card.student-index-card:focus-within{box-shadow:var(--shadow-floating), 4px 7px 0 0 color-mix(in srgb, var(--card) 82%, var(--line)), 8px 14px 0 0 color-mix(in srgb, var(--card) 68%, var(--line))}}[data-theme=dark] .class-card.student-index-card:hover,[data-theme=dark] .class-card.student-index-card:focus-within{box-shadow:var(--shadow-floating), 4px 7px 0 0 var(--card), 8px 14px 0 0 var(--card)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .class-card.student-index-card:hover,[data-theme=dark] .class-card.student-index-card:focus-within{box-shadow:var(--shadow-floating), 4px 7px 0 0 color-mix(in srgb, var(--card) 72%, var(--paper)), 8px 14px 0 0 color-mix(in srgb, var(--card) 52%, var(--paper))}}@media (prefers-reduced-motion:reduce){.class-card.student-index-card,.class-card.student-index-card:hover,.class-card.student-index-card:focus-within{transition:box-shadow .16s,border-color .16s;transform:none!important}}.class-card.student-index-card.is-pending{opacity:.88}.student-card-top{gap:10px;margin-bottom:12px}.student-card-eyebrow{align-items:center;gap:8px;min-width:0;display:inline-flex}.student-card-eyebrow .class-icon{border-radius:10px;flex-shrink:0;width:34px;height:34px}.student-card-eyebrow .class-label{color:var(--royal);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:11px;font-weight:760}.student-card-heading{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:10px;display:flex}.student-card-heading h3{color:var(--navy);letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-size:20px;font-weight:780;line-height:1.25}.student-card-heading .code-chip{background:var(--card);margin-top:0}@supports (color:color-mix(in lab, red, red)){.student-card-heading .code-chip{background:color-mix(in srgb, var(--card) 85%, transparent)}}.student-pending-note{border:1px solid var(--accent-amber);border-radius:8px;align-items:center;gap:6px;margin:2px 0 10px;padding:5px 10px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.student-pending-note{border:1px solid color-mix(in srgb, var(--accent-amber) 38%, var(--line))}}.student-pending-note{background:var(--accent-amber)}@supports (color:color-mix(in lab, red, red)){.student-pending-note{background:color-mix(in srgb, var(--accent-amber) 12%, var(--card))}}.student-pending-note{color:var(--status-late-text);font-size:11.5px;font-weight:650}.student-card-meta{flex-direction:column;gap:8px;margin-top:2px;display:flex}.student-card-meta .class-schedule,.student-card-meta .faculty-byline{min-width:0;margin:0}.student-card-meta .class-schedule svg{flex-shrink:0}.student-class-summary.student-ledger{border-top:1px solid var(--royal);flex-direction:column;gap:0;margin-top:14px;padding-top:6px;display:flex}@supports (color:color-mix(in lab, red, red)){.student-class-summary.student-ledger{border-top:1px solid color-mix(in srgb, var(--royal) 14%, var(--line))}}.student-ledger-row{border-bottom:1px solid var(--royal);justify-content:space-between;align-items:baseline;gap:8px;min-height:34px;padding:6px 2px;display:flex}@supports (color:color-mix(in lab, red, red)){.student-ledger-row{border-bottom:1px solid color-mix(in srgb, var(--royal) 7%, transparent)}}.student-ledger-row{font-size:12.5px}.student-ledger-row .student-ledger-label{color:var(--muted);text-transform:none;flex-shrink:0;font-size:12px;font-weight:650;display:inline}.student-ledger-row .student-ledger-leader{border-bottom:1px dotted var(--muted);flex:auto;min-width:16px;display:inline-block}@supports (color:color-mix(in lab, red, red)){.student-ledger-row .student-ledger-leader{border-bottom:1px dotted color-mix(in srgb, var(--muted) 42%, transparent)}}.student-ledger-row .student-ledger-leader{transform:translateY(-3px)}.student-ledger-row .student-ledger-value{font-variant-numeric:tabular-nums;text-align:right;color:var(--navy);text-transform:none;flex-shrink:0;font-size:13px;font-weight:760;display:inline}.student-ledger-row .student-ledger-value.is-empty{color:var(--muted);font-size:11.5px;font-style:italic;font-weight:500}.student-index-card .student-class-action{margin-top:14px}.empty-state.student-empty-index-card,.loading-card.student-loading-index-card{border:1px solid var(--line);border-top:6px solid var(--royal);background:repeating-linear-gradient(to bottom, transparent 0, transparent 35px, var(--royal) 36px, transparent 37px), var(--card);border-radius:20px}@supports (color:color-mix(in lab, red, red)){.empty-state.student-empty-index-card,.loading-card.student-loading-index-card{background:repeating-linear-gradient(to bottom, transparent 0, transparent 35px, color-mix(in srgb, var(--royal) 5.5%, transparent) 36px, transparent 37px), color-mix(in srgb, var(--card) 96%, var(--accent-amber))}}.empty-state.student-empty-index-card,.loading-card.student-loading-index-card{box-shadow:var(--shadow-soft), 3px 6px 0 0 var(--card), 6px 12px 0 0 var(--card)}@supports (color:color-mix(in lab, red, red)){.empty-state.student-empty-index-card,.loading-card.student-loading-index-card{box-shadow:var(--shadow-soft), 3px 6px 0 0 color-mix(in srgb, var(--card) 85%, var(--line)), 6px 12px 0 0 color-mix(in srgb, var(--card) 70%, var(--line))}}[data-theme=dark] .empty-state.student-empty-index-card,[data-theme=dark] .loading-card.student-loading-index-card{background:repeating-linear-gradient(to bottom, transparent 0, transparent 35px, var(--royal) 36px, transparent 37px), var(--card)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .empty-state.student-empty-index-card,[data-theme=dark] .loading-card.student-loading-index-card{background:repeating-linear-gradient(to bottom, transparent 0, transparent 35px, color-mix(in srgb, var(--royal) 8%, transparent) 36px, transparent 37px), color-mix(in srgb, var(--card) 95%, var(--paper))}}[data-theme=dark] .empty-state.student-empty-index-card,[data-theme=dark] .loading-card.student-loading-index-card{box-shadow:var(--shadow-soft), 3px 6px 0 0 var(--card), 6px 12px 0 0 var(--card)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .empty-state.student-empty-index-card,[data-theme=dark] .loading-card.student-loading-index-card{box-shadow:var(--shadow-soft), 3px 6px 0 0 color-mix(in srgb, var(--card) 75%, var(--paper)), 6px 12px 0 0 color-mix(in srgb, var(--card) 55%, var(--paper))}}@media (width<=680px){.class-grid.student-class-grid{grid-template-columns:1fr}.class-card.student-index-card{padding:16px 16px 14px}}.design-page-header p{color:var(--muted);margin:0;font-size:15px;line-height:1.6}.student-record-page{padding-bottom:32px}.student-record-header,.student-record-banner,.student-record-summary-strip,.student-record-header-skeleton{width:min(960px,100%,166.667dvh - 266.667px);margin-left:auto;margin-right:auto}.student-record-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px 20px;margin-top:8px;margin-bottom:16px;display:flex}.student-record-header-main{flex:260px;min-width:0}.student-record-header-main h1{color:var(--navy);letter-spacing:-.03em;margin:6px 0 0;font-size:clamp(24px,3.2vw,32px);font-weight:780;line-height:1.15}.student-record-description{color:var(--muted);margin:5px 0 0;font-size:14px;line-height:1.5}.student-record-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.student-record-code-chip{background:var(--card);margin-top:0}.student-record-meta-chip{border:1px solid var(--line);background:var(--card);color:var(--navy);border-radius:20px;align-items:center;gap:6px;padding:5px 10px;font-size:11px;font-weight:680;display:inline-flex}.student-record-meta-chip svg{color:var(--royal);flex-shrink:0}.student-record-banner{margin-top:0;margin-bottom:14px}.student-record-summary-strip{border:1px solid var(--line);border-top:3px solid var(--royal);background:var(--card);border-radius:14px;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:0;margin-bottom:16px;display:grid}@supports (color:color-mix(in lab, red, red)){.student-record-summary-strip{background:color-mix(in srgb, var(--card) 96%, var(--accent-amber))}}.student-record-summary-strip{box-shadow:var(--shadow-soft)}[data-theme=dark] .student-record-summary-strip{background:var(--card)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .student-record-summary-strip{background:color-mix(in srgb, var(--card) 95%, var(--paper))}}.student-record-summary-cell{border-right:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:8px;min-width:0;padding:10px 14px;display:flex}.student-record-summary-cell:last-child{border-right:0}.student-record-summary-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;font-size:11px;font-weight:700}.student-record-summary-value{font-variant-numeric:tabular-nums;color:var(--navy);text-align:right;flex-shrink:0;font-size:15px;font-weight:780}.student-record-summary-value.is-empty{color:var(--muted);font-size:12px;font-style:italic;font-weight:500}.index-card-col-title{flex-wrap:wrap;gap:4px 8px}.index-card-row time{white-space:nowrap;flex-shrink:0}.student-detail-message{padding:6px 4px}.index-card-hint,.index-card-tally{min-width:0;line-height:1.35}.index-card-scene.index-card-scene-inline{aspect-ratio:5/3;width:min(960px,100%,166.667dvh - 266.667px);max-height:none;margin:0 auto}.student-record-header-skeleton{flex-direction:column;gap:10px;margin-top:8px;margin-bottom:16px;display:flex}.student-skeleton-title{border-radius:10px;width:min(320px,75%);height:32px}.student-skeleton-meta{border-radius:8px;width:min(240px,60%);height:22px}.student-skeleton-stat{border-radius:6px;width:100%;height:20px}.index-card-skeleton-face{gap:16px}.student-skeleton-card-head{align-items:center;gap:16px;display:flex}.student-skeleton-avatar{border-radius:18px;flex-shrink:0;width:72px;height:72px}.student-skeleton-lines{flex-direction:column;flex:1;gap:8px;display:flex}.student-skeleton-line-lg{border-radius:8px;width:min(260px,80%);height:22px}.student-skeleton-line-sm{border-radius:6px;width:min(160px,55%);height:14px}.student-skeleton-cols{flex:1;grid-template-columns:1fr 1fr;gap:18px;min-height:180px;display:grid}.student-skeleton-col{border-radius:12px;width:100%;height:100%;min-height:160px}@media (width<=720px){.student-record-header,.student-record-banner,.student-record-summary-strip,.student-record-header-skeleton,.index-card-scene.index-card-scene-inline{width:100%}.student-record-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.student-record-summary-cell:nth-child(2){border-right:0}.student-record-summary-cell:first-child,.student-record-summary-cell:nth-child(2){border-bottom:1px solid var(--line)}.index-card-scene.index-card-scene-inline{aspect-ratio:auto;height:auto;max-height:none}.index-card-scene.index-card-scene-inline .index-card{height:auto}.index-card-scene.index-card-scene-inline .index-card-face{border-radius:16px;height:auto;min-height:100%;padding:16px 14px 14px}.index-card-scene.index-card-scene-inline .student-detail-profile-text .eyebrow{white-space:normal;max-width:100%}.index-card-scene.index-card-scene-inline .student-detail-info{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:8px 0 10px}.index-card-scene.index-card-scene-inline .index-card-records-wrapper{overflow:visible}.index-card-scene.index-card-scene-inline .index-card-front-columns,.index-card-scene.index-card-scene-inline .index-card-back-columns,.student-skeleton-cols{grid-template-columns:1fr;gap:12px;height:auto}.index-card-scene.index-card-scene-inline .index-card-col{height:auto;min-height:110px}.index-card-scene.index-card-scene-inline .index-card-records{max-height:240px}.index-card-scene.index-card-scene-inline .index-card-footer{padding-right:58px}}@media (width<=400px){.student-record-summary-cell{padding:8px 10px}.student-record-summary-label{font-size:10px}.student-record-summary-value{font-size:13.5px}}.dashboard-classes-stack{gap:28px;display:grid}.happening-now-section{border:1px solid var(--accent-teal);border-radius:20px;gap:16px;padding:18px 20px 22px;display:grid}@supports (color:color-mix(in lab, red, red)){.happening-now-section{border:1px solid color-mix(in srgb, var(--accent-teal) 36%, var(--line))}}.happening-now-section{background:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.happening-now-section{background:color-mix(in srgb, var(--accent-teal) 5%, var(--card))}}.happening-now-section{box-shadow:var(--shadow-soft)}[data-theme=dark] .happening-now-section{border-color:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .happening-now-section{border-color:color-mix(in srgb, var(--accent-teal) 42%, var(--line))}}[data-theme=dark] .happening-now-section{background:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .happening-now-section{background:color-mix(in srgb, var(--accent-teal) 8%, var(--card))}}.happening-now-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.happening-now-title-row{align-items:center;gap:10px;display:inline-flex}.happening-now-title-row h3{color:var(--navy);letter-spacing:-.02em;margin:0;font-size:18px;font-weight:760}.happening-now-count{border:1px solid var(--accent-teal);border-radius:999px;align-items:center;padding:4px 11px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.happening-now-count{border:1px solid color-mix(in srgb, var(--accent-teal) 34%, var(--line))}}.happening-now-count{background:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.happening-now-count{background:color-mix(in srgb, var(--accent-teal) 12%, var(--card))}}.happening-now-count{color:var(--navy);font-size:12px;font-weight:700}.live-now-dot{background:var(--accent-teal);width:8px;height:8px;box-shadow:0 0 0 3px var(--accent-teal);border-radius:999px;flex:0 0 8px;display:inline-block}@supports (color:color-mix(in lab, red, red)){.live-now-dot{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent-teal) 24%, transparent)}}.live-now-dot{animation:2.2s ease-in-out infinite live-dot-pulse}@keyframes live-dot-pulse{0%,to{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent-teal) 22%, transparent)}50%{box-shadow:0 0 0 5px color-mix(in srgb, var(--accent-teal) 12%, transparent)}}@media (prefers-reduced-motion:reduce){.live-now-dot{animation:none}}.enrolled-pill.live-now-badge{border:1px solid var(--accent-teal);align-items:center;gap:6px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.enrolled-pill.live-now-badge{border:1px solid color-mix(in srgb, var(--accent-teal) 45%, var(--line))}}.enrolled-pill.live-now-badge{background:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.enrolled-pill.live-now-badge{background:color-mix(in srgb, var(--accent-teal) 15%, var(--card))}}.enrolled-pill.live-now-badge{color:var(--navy);font-weight:760}[data-theme=dark] .enrolled-pill.live-now-badge{border-color:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .enrolled-pill.live-now-badge{border-color:color-mix(in srgb, var(--accent-teal) 52%, var(--line))}}[data-theme=dark] .enrolled-pill.live-now-badge{background:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){[data-theme=dark] .enrolled-pill.live-now-badge{background:color-mix(in srgb, var(--accent-teal) 20%, var(--card))}}[data-theme=dark] .enrolled-pill.live-now-badge{color:var(--navy)}.class-card.is-live-class{border-color:var(--accent-teal)}@supports (color:color-mix(in lab, red, red)){.class-card.is-live-class{border-color:color-mix(in srgb, var(--accent-teal) 45%, var(--line))}}.live-window-status{border:1px solid var(--royal);border-radius:999px;align-items:center;gap:7px;width:fit-content;max-width:100%;margin:4px 0 6px;padding:4px 10px;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.live-window-status{border:1px solid color-mix(in srgb, var(--royal) 28%, var(--line))}}.live-window-status{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.live-window-status{background:color-mix(in srgb, var(--royal) 10%, var(--card))}}.live-window-status{color:var(--navy);font-size:12.5px;font-weight:680;line-height:1.35}.live-window-status .live-now-dot{background:var(--royal);width:6px;height:6px;box-shadow:none;flex:0 0 6px;animation:none}.dashboard-other-classes{gap:14px;display:grid}.dashboard-sub-heading{justify-content:space-between;align-items:center;display:flex}.dashboard-sub-heading h3{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:14px;font-weight:740}@media (width<=480px){.happening-now-section{border-radius:16px;padding:14px 14px 16px}.class-card-counts{flex-wrap:wrap;justify-content:flex-end}}.course-fields-grid{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:start;gap:14px;display:grid}@media (width<=639px){.course-fields-grid{grid-template-columns:minmax(0,1fr);gap:12px}}.legacy-course-notice{border:1px solid var(--royal);border-radius:12px;align-items:center;gap:8px;margin:0 0 6px;padding:10px 12px;display:flex}@supports (color:color-mix(in lab, red, red)){.legacy-course-notice{border:1px solid color-mix(in srgb, var(--royal) 28%, var(--line))}}.legacy-course-notice{background:var(--royal)}@supports (color:color-mix(in lab, red, red)){.legacy-course-notice{background:color-mix(in srgb, var(--royal) 8%, var(--card))}}.legacy-course-notice{color:var(--navy);font-size:13px;font-weight:560;line-height:1.45}.class-card h3.class-card-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.class-card-section-line{color:var(--muted);margin:-6px 0 8px;font-size:13px;font-weight:600;line-height:1.4}.student-card-title-block{gap:3px;min-width:0;display:grid}.student-card-title-block .class-card-section-line{margin:0}.class-shell-eyebrow{color:var(--royal);letter-spacing:.08em;text-transform:uppercase;align-items:center;font-size:11.5px;font-weight:760;line-height:1.2;display:inline-flex}.class-shell-section-line{color:var(--muted);margin:2px 0 0;font-size:13.5px;font-weight:600;line-height:1.4}.student-record-section-line{color:var(--muted);margin:4px 0 0;font-size:14px;font-weight:620;line-height:1.45}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-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}@keyframes spin{to{transform:rotate(360deg)}}
