/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/be-vietnam-pro-vietnamese-400-normal.061fc986.woff2)format("woff2"),url(/_next/static/media/be-vietnam-pro-vietnamese-400-normal.b8a5509c.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/be-vietnam-pro-vietnamese-500-normal.e4f06173.woff2)format("woff2"),url(/_next/static/media/be-vietnam-pro-vietnamese-500-normal.bf8fc1fa.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/be-vietnam-pro-vietnamese-600-normal.4b6c894c.woff2)format("woff2"),url(/_next/static/media/be-vietnam-pro-vietnamese-600-normal.b452c973.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/be-vietnam-pro-vietnamese-700-normal.d1687477.woff2)format("woff2"),url(/_next/static/media/be-vietnam-pro-vietnamese-700-normal.f4f23940.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/be-vietnam-pro-latin-400-normal.33beca82.woff2)format("woff2"),url(/_next/static/media/be-vietnam-pro-latin-400-normal.8d52a966.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:500;src:url(/_next/static/media/be-vietnam-pro-latin-500-normal.40a8add6.woff2)format("woff2"),url(/_next/static/media/be-vietnam-pro-latin-500-normal.fc09bde8.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:600;src:url(/_next/static/media/be-vietnam-pro-latin-600-normal.0d1580dd.woff2)format("woff2"),url(/_next/static/media/be-vietnam-pro-latin-600-normal.d972a64e.woff)format("woff")}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-display:swap;font-weight:700;src:url(/_next/static/media/be-vietnam-pro-latin-700-normal.1f2eb3f4.woff2)format("woff2"),url(/_next/static/media/be-vietnam-pro-latin-700-normal.9ffcf111.woff)format("woff")}@font-face{font-family:Noto Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/noto-sans-latin-400-normal.1d02f490.woff2)format("woff2"),url(/_next/static/media/noto-sans-latin-400-normal.e29ef6e0.woff)format("woff")}@font-face{font-family:Noto Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/noto-sans-latin-ext-400-normal.6233a04b.woff2)format("woff2"),url(/_next/static/media/noto-sans-latin-ext-400-normal.3a9bffcd.woff)format("woff")}@layer theme{:host,:root{--font-sans:var(--font-be-vietnam-pro),"Be Vietnam Pro",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--leading-tight:1.3;--leading-normal:1.5;--ease-out:cubic-bezier(.2,0,0,1);--default-font-family:var(--font-be-vietnam-pro),"Be Vietnam Pro",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--default-mono-font-family:var(--font-mono);--font-ipa:var(--font-noto-sans),"Noto Sans","Charis SIL","Doulos SIL","Gentium Plus","Segoe UI","Lucida Sans Unicode",sans-serif;--font-num:var(--font-noto-sans),"Noto Sans",ui-sans-serif,system-ui,sans-serif;--ease-pop:cubic-bezier(.34,1.4,.64,1)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*,:after,:before{border-color:var(--border)}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background-color:var(--background);color:var(--foreground);font-family:var(--font-sans);line-height:var(--leading-normal);-webkit-tap-highlight-color:transparent}:where(h1,h2,h3,h4){line-height:var(--leading-tight);text-wrap:balance}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}::selection{background-color:var(--primary)}@supports (color:color-mix(in lab,red,red)){::selection{background-color:color-mix(in oklch,var(--primary) 24%,transparent)}}:lang(en-fonipa){font-family:var(--font-ipa);font-variant-ligatures:none}}@layer components;@layer utilities{.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.isolate{isolation:isolate}.block{display:block}.table{display:table}.num{font-family:var(--font-num);font-variant-numeric:tabular-nums}}:root{--radius:.625rem;--background:oklch(98.5% .004 220);--foreground:oklch(24% .025 240);--card:oklch(100% 0 0);--card-foreground:oklch(24% .025 240);--popover:oklch(100% 0 0);--popover-foreground:oklch(24% .025 240);--primary:oklch(50% .085 200);--primary-foreground:oklch(99% .004 200);--secondary:oklch(95% .018 200);--secondary-foreground:oklch(34% .057 200);--muted:oklch(95.5% .006 220);--muted-foreground:oklch(47% .022 240);--accent:oklch(95% .018 200);--accent-foreground:oklch(34% .057 200);--destructive:oklch(52% .19 25);--destructive-foreground:oklch(99% .004 25);--border:oklch(91% .008 220);--input:oklch(64% .02 220);--ring:oklch(56% .095 200);--correct:oklch(53% .13 152);--correct-foreground:oklch(99% .004 152);--correct-subtle:oklch(96.5% .03 152);--correct-subtle-foreground:oklch(40% .1 152);--incorrect:oklch(55% .16 22);--incorrect-foreground:oklch(99% .004 22);--incorrect-subtle:oklch(96.5% .017 22);--incorrect-subtle-foreground:oklch(45% .14 22);--warning:oklch(65% .147 64);--warning-foreground:oklch(22% .05 64);--warning-subtle:oklch(97% .031 85);--warning-subtle-foreground:oklch(43% .1 60);--info:oklch(52% .15 252);--info-foreground:oklch(99% .004 252);--info-subtle:oklch(96.5% .017 252);--info-subtle-foreground:oklch(44% .13 252);--mastered:oklch(52% .2 305);--mastered-foreground:oklch(99% .004 305);--mastered-subtle:oklch(96.5% .02 305);--mastered-subtle-foreground:oklch(45% .18 305);--learning:oklch(50% .085 200);--learning-foreground:oklch(99% .004 200);--learning-subtle:oklch(96% .02 200);--learning-subtle-foreground:oklch(40% .068 200);--locked:oklch(54% .012 220);--locked-foreground:oklch(99% 0 0);--locked-subtle:oklch(94.5% .006 220);--locked-subtle-foreground:oklch(46% .015 220);--chart-1:oklch(63% .105 200);--chart-2:oklch(56.5% .096 200);--chart-3:oklch(50% .085 200);--chart-4:oklch(43.5% .074 200);--chart-5:oklch(37% .063 200);--chart-6:oklch(30% .051 200);--sidebar:oklch(97% .007 220);--sidebar-foreground:oklch(24% .025 240);--sidebar-primary:oklch(50% .085 200);--sidebar-primary-foreground:oklch(99% .004 200);--sidebar-accent:oklch(93% .022 200);--sidebar-accent-foreground:oklch(34% .057 200);--sidebar-border:oklch(91% .008 220);--sidebar-ring:oklch(56% .095 200);--shadow-ink:oklch(24% .025 240);--overlay:oklch(18.5% .018 235/.48);--duration-fast:.1s;--duration-base:.15s;--duration-slow:.25s;--duration-celebrate:.4s}.dark{--background:oklch(18.5% .018 235);--foreground:oklch(95% .008 220);--card:oklch(22.5% .02 235);--card-foreground:oklch(95% .008 220);--popover:oklch(25% .02 235);--popover-foreground:oklch(95% .008 220);--primary:oklch(78% .11 200);--primary-foreground:oklch(20% .034 200);--secondary:oklch(30% .035 200);--secondary-foreground:oklch(92% .03 200);--muted:oklch(27% .018 235);--muted-foreground:oklch(74% .018 220);--accent:oklch(30% .035 200);--accent-foreground:oklch(92% .03 200);--destructive:oklch(68% .17 22);--destructive-foreground:oklch(18% .03 22);--border:oklch(32% .02 235);--input:oklch(52% .025 230);--ring:oklch(74% .11 200);--correct:oklch(75% .15 152);--correct-foreground:oklch(19% .04 152);--correct-subtle:oklch(28% .055 152);--correct-subtle-foreground:oklch(86% .11 152);--incorrect:oklch(72% .14 22);--incorrect-foreground:oklch(19% .04 22);--incorrect-subtle:oklch(29% .06 22);--incorrect-subtle-foreground:oklch(86% .07 22);--warning:oklch(80% .15 68);--warning-foreground:oklch(22% .048 68);--warning-subtle:oklch(29% .05 68);--warning-subtle-foreground:oklch(87% .11 80);--info:oklch(74% .12 252);--info-foreground:oklch(19% .04 252);--info-subtle:oklch(29% .06 252);--info-subtle-foreground:oklch(86% .07 252);--mastered:oklch(74% .15 305);--mastered-foreground:oklch(20% .06 305);--mastered-subtle:oklch(30% .08 305);--mastered-subtle-foreground:oklch(87% .079 305);--learning:oklch(78% .11 200);--learning-foreground:oklch(20% .034 200);--learning-subtle:oklch(29% .045 200);--learning-subtle-foreground:oklch(87% .07 200);--locked:oklch(64% .015 220);--locked-foreground:oklch(18% .015 220);--locked-subtle:oklch(27% .012 235);--locked-subtle-foreground:oklch(76% .012 220);--chart-1:oklch(52% .088 200);--chart-2:oklch(60% .1 200);--chart-3:oklch(68% .11 200);--chart-4:oklch(76% .11 200);--chart-5:oklch(84% .09 200);--chart-6:oklch(91% .06 200);--sidebar:oklch(20.5% .02 235);--sidebar-foreground:oklch(95% .008 220);--sidebar-primary:oklch(78% .11 200);--sidebar-primary-foreground:oklch(20% .034 200);--sidebar-accent:oklch(29% .035 200);--sidebar-accent-foreground:oklch(92% .03 200);--sidebar-border:oklch(30% .02 235);--sidebar-ring:oklch(74% .11 200);--shadow-ink:oklch(8% .01 235);--overlay:oklch(8% .01 235/.64)}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration-base:0s;--duration-slow:0s;--duration-celebrate:0s}*,:after,:before{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.button,.sr-only{white-space:nowrap}.button{border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:10px 17px;font-size:13px;font-weight:500;line-height:1.4;transition:background-color .1s,box-shadow .1s;display:inline-flex}.button-primary{color:var(--primary-foreground)}.button-primary,.button-primary:hover:not(:disabled){background:var(--primary)}@supports (color:color-mix(in lab,red,red)){.button-primary:hover:not(:disabled){background:color-mix(in oklch,var(--primary) 86%,black)}}.button-secondary{background:var(--card);border-color:var(--input)}.button-secondary:hover:not(:disabled){background:var(--secondary)}.button-ghost{color:var(--muted-foreground);background:0 0}.button-ghost:hover:not(:disabled){background:var(--muted);color:var(--foreground)}.button-danger{background:var(--destructive);color:var(--destructive-foreground)}.field{flex-direction:column;gap:8px;min-width:0;display:flex}.field label{font-size:13px;font-weight:500}.badge,.field small{color:var(--muted-foreground)}.badge{background:var(--muted);border-radius:5px;align-items:center;gap:4px;width:fit-content;padding:5px 8px;font-size:11px;font-weight:500;line-height:1.4;display:inline-flex}.badge-success{background:var(--correct-subtle);color:var(--correct-subtle-foreground)}.badge-warning{background:var(--warning-subtle);color:var(--warning-subtle-foreground)}.badge-info{background:var(--learning-subtle);color:var(--learning-subtle-foreground)}.badge-mastered{background:var(--mastered-subtle);color:var(--mastered-subtle-foreground)}.dialog-overlay{z-index:80;background:#14212a66;animation:fa-feedback-in .1s;position:fixed;inset:0}.dialog{background:var(--card);z-index:81;border-radius:14px;width:calc(100% - 32px);max-width:640px;max-height:90dvh;padding:28px;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 16px 70px #14212a26}.dialog>header{justify-content:space-between;align-items:center;gap:14px;margin-bottom:6px;display:flex}.dialog>header h2{font-size:21px}.dialog>.muted{margin-bottom:25px;font-size:13px}.dialog .close{min-width:44px;margin:-9px -10px -9px 0;padding:0;font-size:25px}.meter{background:var(--muted);border-radius:4px;width:100%;height:6px;overflow:hidden}.meter>span{background:var(--primary);border-radius:4px;height:100%;transition:width .1s;display:block}@media (max-width:539px){.dialog{width:100%;max-height:90dvh;padding-bottom:max(23px,env(safe-area-inset-bottom));border-radius:16px 16px 0 0;top:auto;bottom:0;left:0;transform:none}}:root{--font-be-vietnam-pro:"Be Vietnam Pro";--font-noto-sans:"Noto Sans"}*{box-sizing:border-box}body{margin:0;font-size:14px}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a,button,input,select,textarea{touch-action:manipulation}button{cursor:pointer}[aria-disabled=true],button:disabled{cursor:not-allowed;opacity:.5}button{border:0}h1,h2,h3,p{margin:0}h1{letter-spacing:-1.05px;font-size:30px;line-height:1.35}h1,h2{font-weight:600}h2{letter-spacing:-.4px;font-size:20px}h3{font-size:16px;font-weight:600}p{line-height:1.65}strong{font-weight:600}.small,small{font-size:12px;line-height:1.6}.muted{color:var(--muted-foreground)}.block{display:block}.eyebrow{letter-spacing:.09em;color:var(--muted-foreground);margin-bottom:10px;font-size:11px;font-weight:600}.inline-icon{vertical-align:middle;margin-right:6px;display:inline}.actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid var(--input);background:var(--card);color:var(--foreground);border-radius:7px;width:100%;min-width:0;min-height:44px;padding:11px 12px}input[type=file]{font-size:12px}input::file-selector-button{background:var(--secondary);color:var(--primary);border:0;border-radius:5px;margin-right:12px;padding:6px}textarea{resize:vertical;line-height:1.65}input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--primary);flex-shrink:0}input[readonly]{background:var(--muted)!important}.form-stack{flex-direction:column;gap:20px;display:flex}.form-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.audit-filters{grid-template-columns:repeat(3,minmax(0,1fr)) auto;align-items:end;margin-bottom:24px}.audit-details{white-space:pre-wrap;overflow-wrap:anywhere;max-width:360px;margin:8px 0 0;font-size:12px}.privacy-actions{border-top:1px solid var(--border);padding-top:18px}.privacy-actions h3{margin:0 0 4px;font-size:15px}.form-section{border-bottom:1px solid var(--border);flex-direction:column;gap:20px;padding:24px 0 30px;display:flex}.form-section h2{align-items:center;gap:12px;font-size:17px;display:flex}.form-section h2>span{color:var(--primary);border:1px solid var(--border);border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;display:grid}.narrow-form{max-width:730px}.notice{overflow-wrap:anywhere;border-radius:7px;align-items:flex-start;gap:9px;margin:10px 0;padding:13px 15px;font-size:13px;line-height:1.65;display:flex}.notice svg{flex-shrink:0;margin-top:2px}.notice.error{background:var(--incorrect-subtle);color:var(--incorrect-subtle-foreground)}.notice.success{background:var(--correct-subtle);color:var(--correct-subtle-foreground)}.notice.warning{background:var(--warning-subtle);color:var(--warning-subtle-foreground)}.brand{letter-spacing:-.6px;align-items:center;gap:10px;font-size:19px;font-weight:600;display:inline-flex}.brand-mark{border-radius:9px;flex-shrink:0;width:34px;height:34px;display:block}.teacher-shell{min-height:100dvh}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);z-index:30;flex-direction:column;width:242px;padding:29px 20px 17px;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar .brand{margin-left:8px}.sidebar-label{color:var(--muted-foreground);letter-spacing:.04em;margin:38px 12px 14px;font-size:10px}.sidebar nav{flex-direction:column;gap:5px;display:flex}.sidebar nav a{min-height:44px;color:var(--muted-foreground);border-radius:7px;align-items:center;gap:12px;padding:12px;font-size:13px;display:flex}.sidebar nav a:hover{background:var(--muted)}.sidebar nav a.active{background:var(--sidebar-accent);color:var(--primary);font-weight:600}.sidebar-bottom{margin-top:auto}.sidebar-note{color:var(--muted-foreground);padding:20px 12px 27px;font-size:12px}.sidebar-note .eyebrow{color:var(--primary);margin-bottom:8px;font-size:10px}.sidebar-note svg{color:var(--primary);margin-top:16px}.sidebar-account{border-top:1px solid var(--border);align-items:center;gap:10px;padding:20px 4px 0;display:flex}.sidebar-account>div{flex:1;min-width:0}.sidebar-account strong{overflow-wrap:anywhere;font-size:12px;display:block}.sidebar-account small{color:var(--muted-foreground);font-size:10px}.sidebar-account button{color:var(--muted-foreground);background:0 0;place-items:center;width:44px;height:44px;display:grid}.avatar{width:34px;height:34px;color:var(--primary);background:var(--secondary);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;display:inline-grid}.main-wrapper{flex-direction:column;min-height:100dvh;margin-left:242px;display:flex}.topbar{border-bottom:1px solid var(--border);justify-content:space-between;height:76px;padding:0 40px}.topbar,.topbar-right>span{align-items:center;display:flex}.topbar-right>span{gap:10px}.breadcrumb-separator{color:var(--input);padding:0 12px}.teacher-main{flex:1;width:100%;max-width:1450px;margin:0 auto;padding:42px 40px 60px}.page-title{justify-content:space-between;align-items:center;gap:24px;margin-bottom:36px;display:flex}.page-title .eyebrow,.page-title h1{margin-bottom:10px}.page-title>div>p.muted{font-size:13px}.app-footer{color:var(--muted-foreground);flex-wrap:wrap;gap:7px;padding:20px 40px;font-size:11px;display:flex}.app-footer>span{color:var(--input)}.back-link{color:var(--muted-foreground);min-height:28px;margin-bottom:24px}.back-link,.text-link{align-items:center;font-size:12px;display:inline-flex}.text-link{color:var(--primary);gap:6px;font-weight:500}.inline-link{color:var(--primary);text-underline-offset:3px;background:0 0;min-height:32px;padding:0;text-decoration:underline}.section-heading{justify-content:space-between;align-items:center;gap:16px;margin:30px 0 18px;display:flex}.section-heading h2{font-size:17px}.assignment-list,.class-list{border-top:1px solid var(--border)}.assignment-row,.class-row{border-bottom:1px solid var(--border);align-items:center;gap:22px;padding:26px 8px;transition:background .1s;display:flex}.assignment-number,.assignment-row:hover,.class-row:hover{background:var(--secondary)}.assignment-number{width:52px;height:52px;color:var(--primary);font-size:17px;font-weight:500;font-family:var(--font-num);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.assignment-row>div{flex:1}.assignment-row h2,.class-row h2{margin-bottom:7px;font-size:16px}.row-action{color:var(--primary);align-items:center;gap:10px;font-size:12px;display:flex}.class-avatar{background:var(--secondary);width:52px;height:52px;color:var(--primary);font-family:var(--font-num);border-radius:50%;place-items:center;font-size:17px;display:grid}.class-row>div{flex:1}.table-scroll{border-top:1px solid var(--border);max-width:100%;overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}th{color:var(--muted-foreground);white-space:nowrap;background:var(--background);padding:14px 13px;font-size:11px;font-weight:500}td,th{border-bottom:1px solid var(--border)}td{vertical-align:middle;padding:19px 13px;line-height:1.65}td strong{font-size:13px}tbody tr:hover{background:var(--secondary)}@supports (color:color-mix(in lab,red,red)){tbody tr:hover{background:color-mix(in oklch,var(--secondary) 30%,transparent)}}.lesson-title,.person{align-items:center;gap:12px;display:flex}.person{min-width:160px}.lesson-title{min-width:190px}.lesson-title svg{color:var(--primary);flex-shrink:0}.icon-link{width:44px;height:44px;color:var(--muted-foreground);border-radius:7px;place-items:center;display:inline-grid}.icon-link:hover{background:var(--secondary);color:var(--primary)}.section-note{color:var(--muted-foreground);align-items:flex-start;gap:12px;max-width:680px;margin-top:28px;font-size:12px;display:flex}.section-note svg{flex-shrink:0}.empty{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:75px 20px;display:flex}.empty>svg{color:var(--primary)}.empty h2{font-size:19px}.empty p{max-width:450px}.empty a{margin-top:10px}.loading{flex-direction:column;gap:15px;width:100%;margin:24px 0;display:flex}.loading span{background:var(--muted);border-radius:7px;height:42px;animation:fa-skeleton 1.6s ease-in-out infinite}.loading span:nth-child(2){width:85%}.loading span:nth-child(3){width:65%}.startup{flex-direction:column;justify-content:center;align-items:center;gap:20px;min-height:100dvh;padding:30px;display:flex}.startup .loading{width:240px}.credential{color:var(--foreground);-webkit-user-select:all;user-select:all;font-size:13px}.segmented{border:1px solid var(--border);background:var(--muted);border-radius:9px;gap:4px;padding:4px;display:flex}.segmented button{min-height:40px;color:var(--muted-foreground);background:0 0;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.segmented button[aria-pressed=true]{color:var(--primary);background:#fff;font-weight:600;box-shadow:0 1px 3px #14212a16}.tabs{border-bottom:1px solid var(--border);gap:25px;margin-bottom:26px;display:flex;overflow-x:auto}.tabs button{white-space:nowrap;min-height:48px;color:var(--muted-foreground);background:0 0;border-bottom:2px solid #0000;padding:15px 0;font-size:13px}.tabs button[aria-pressed=true]{color:var(--primary);border-bottom-color:var(--primary);font-weight:500}.review-workspace{grid-template-columns:minmax(190px,.75fr) minmax(0,2fr);gap:34px;display:grid}.word-index{border-right:1px solid var(--border);max-height:780px;padding-right:24px;overflow:auto}.word-index>p{margin-bottom:14px;padding-left:12px}.word-index>button{text-align:left;background:0 0;border-radius:7px;align-items:center;gap:13px;width:100%;min-height:64px;padding:15px 12px;display:flex}.word-index>button>span{color:var(--muted-foreground);font-size:11px}.word-index>button strong{font-size:14px;display:block}.word-index>button small{color:var(--muted-foreground);margin-top:4px;font-size:11px;display:block}.word-index>button.active{background:var(--secondary);color:var(--primary)}.preview-toolbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.preview-pane{min-width:0}.word-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:30px}.word-heading{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding-bottom:25px;display:flex}.word-heading h2{color:var(--primary);letter-spacing:-1px;overflow-wrap:anywhere;margin:4px 0 8px;font-size:36px;font-weight:600}.word-heading>div>span{color:var(--muted-foreground);font-size:15px}.word-heading audio{width:160px;max-width:45%;height:40px}.meanings{flex-direction:column;gap:13px;padding:24px 0;display:flex}.meanings>p{align-items:baseline;gap:13px;font-size:17px;display:flex}.pos{color:var(--muted-foreground);font-size:11px;font-style:italic}.examples{border-left:2px solid var(--primary);flex-direction:column;gap:18px;padding-left:18px;display:flex}.examples p[lang=en]{margin-bottom:7px;font-size:16px}.examples p.muted,.word-note{font-size:13px}.word-note{background:var(--background);border-radius:7px;margin:25px 0 16px;padding:16px 18px}.word-note strong{color:var(--primary);font-size:11px}.word-note p{margin-top:6px}.processing-panel{flex-direction:column;gap:16px;max-width:660px;padding:30px 0;display:flex}.processing-panel>svg{color:var(--primary)}progress{accent-color:var(--primary);width:100%;height:10px}.selection-list{border:0;flex-direction:column;gap:4px;max-height:350px;margin:0;padding:0;display:flex;overflow:auto}.selection-list label{align-items:center;gap:12px;min-height:44px;padding:12px 4px;display:flex}.group-list>article{flex-direction:column;align-items:flex-start;gap:20px;padding:20px 0 30px;display:flex}.item-review-form{margin-top:28px;padding-top:25px}.item-review-form,.stats-strip{border-top:1px solid var(--border)}.stats-strip{border-bottom:1px solid var(--border);grid-template-columns:repeat(5,minmax(0,1fr));margin:10px 0 36px;padding:26px 0;display:grid}.stat{border-left:1px solid var(--border);padding:0 20px}.stat:first-child{border:0;padding-left:0}.stat>p{align-items:center;gap:7px;font-size:10px;display:flex}.stat>p>svg{width:14px}.stat>strong{font-size:34px;font-weight:500;line-height:1.6;display:block}.round-distribution{background:var(--secondary);border-radius:10px;grid-template-columns:1fr 1.1fr;align-items:center;gap:32px;margin-bottom:38px;padding:30px;display:grid}.round-distribution h2{margin-bottom:12px;font-size:21px}.distribution-bars{flex-direction:column;gap:10px;display:flex}.distribution-bars>div{grid-template-columns:50px 1fr 24px;align-items:center;gap:12px;font-size:11px;display:grid}.distribution-bars strong{text-align:right}.round-distribution .meter{background:#c8e2e3}.hard-words{padding-top:22px}.hard-word{border-bottom:1px solid var(--border);grid-template-columns:150px 1fr 160px;align-items:center;gap:20px;padding:16px 0;font-size:12px;display:grid}.hard-word>span{text-align:right;color:var(--muted-foreground)}.timeline{justify-content:space-between;gap:15px;padding:25px 0 40px;display:flex;overflow-x:auto}.timeline>div{flex-direction:column;align-items:center;gap:10px;min-width:100px;display:flex}.timeline .button{white-space:normal;max-width:120px;font-size:10px}.round-dot{border:1px solid var(--input);background:var(--card);border-radius:50%;flex-shrink:0;place-items:center;width:46px;height:46px;font-size:17px;display:grid}.round-dot.passed,.round-node.passed .round-dot{background:var(--mastered-subtle);border-color:var(--mastered);color:var(--mastered-subtle-foreground)}.round-dot.current,.round-node.unlocked .round-dot{background:var(--primary);border-color:var(--primary);color:#fff}.round-dot.locked,.round-node.locked .round-dot{color:var(--locked);border-style:dashed}.word-round{margin:3px 8px 3px 0;font-size:10px;display:inline-block}blockquote{border-left:2px solid var(--border);margin:14px 0;padding:4px 0 4px 16px;line-height:1.7}.mobile-menu,.nav-backdrop{display:none}.skip-link{background:var(--primary);color:#fff;z-index:100;padding:15px;position:fixed;top:-100px;left:20px}.skip-link:focus{top:10px}.auth-layout{grid-template-columns:1fr 1fr;min-height:100dvh;display:grid}.auth-story{background:#e3f0ef;flex-direction:column;padding:42px 60px 30px;display:flex;position:relative;overflow:hidden}.auth-story .brand{font-size:21px}.auth-visual{max-width:490px;margin:auto 0;padding:70px 0 40px}.auth-visual>.eyebrow{color:var(--primary)}.auth-visual>h1{letter-spacing:-3px;margin:24px 0;font-size:64px;font-weight:500;line-height:1.17}.auth-visual>h1>span{color:var(--primary)}.auth-visual>p{color:#405e60;max-width:350px;font-size:14px}.vocabulary-print{border-left:1px solid #9cbdbc;margin:48px 0 0 40px;padding:0 0 0 24px;transform:rotate(-4deg)}.vocabulary-print>span:first-child{letter-spacing:-1px;color:var(--primary);margin-right:13px;font-size:29px;font-weight:600}.vocabulary-print>span:nth-child(2){font-size:14px;font-family:var(--font-ipa);color:#405e60}.vocabulary-print>div{color:#405e60;margin:5px 0 10px;font-size:12px}.vocabulary-print>p{color:#405e60;font-size:12px;font-style:italic}.auth-footer{color:#405e60;gap:9px;font-size:11px}.auth-footer,.auth-form-panel{align-items:center;display:flex}.auth-form-panel{background:var(--card);flex-direction:column;justify-content:center;padding:70px 45px 30px}.auth-form{flex-direction:column;gap:20px;width:100%;max-width:375px;margin:auto 0;display:flex}.auth-form h2{letter-spacing:-.9px;margin-top:-9px;font-size:28px}.auth-form>.muted{margin-top:-10px;font-size:13px}.auth-form .eyebrow{color:var(--primary)}.auth-form .form-stack{gap:20px;margin-top:5px}.auth-form .form-stack>.button{height:48px;margin-top:5px}.auth-links{justify-content:space-between;gap:12px;display:flex}.auth-links button{color:var(--muted-foreground);background:0 0;min-height:32px;padding:0;font-size:11px}.auth-bottom{margin-top:40px;font-size:10px}.student-shell .main-wrapper{margin-left:0}.student-shell .topbar{width:100%;max-width:1200px;height:80px;margin:auto}.student-shell .topbar-right{align-items:center;gap:14px;display:flex}.student-main{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:45px 40px 60px;font-size:16px}.student-shell .page-title{margin-bottom:20px}.student-shell .app-footer{width:100%;max-width:1080px;margin:auto}.sync-area{margin-bottom:24px}.sync-status{color:var(--primary);justify-content:flex-end;align-items:center;gap:7px;min-height:36px;font-size:11px;display:flex}.sync-status button{color:var(--primary);background:0 0;place-items:center;width:36px;height:36px;display:grid}.sync-status.is-offline{color:var(--warning-subtle-foreground);background:var(--warning-subtle);border-radius:6px;justify-content:flex-start;padding:8px 12px}.student-assignments{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.student-assignment{border:1px solid var(--border);background:var(--card);border-radius:12px;flex-direction:column;align-items:flex-start;gap:12px;padding:27px;display:flex}.assignment-top{justify-content:space-between;align-items:center;width:100%;margin-bottom:16px;display:flex}.student-assignment h2{font-size:21px;line-height:1.5}.student-assignment>.button{width:100%;min-height:48px;margin-top:14px}.learning-intro{align-items:center;gap:22px;max-width:720px;margin:35px auto;display:flex}.learning-emblem{background:var(--secondary);width:76px;height:76px;color:var(--primary);border-radius:18px;flex-shrink:0;place-items:center;display:grid}.learning-intro h2{margin-bottom:8px;font-size:23px}.learning-intro p.muted{font-size:13px}.round-map{flex-direction:column;max-width:720px;margin:0 auto;display:flex;position:relative}.round-node{text-align:left;border-bottom:1px solid var(--border);background:0 0;align-items:center;gap:22px;width:100%;min-height:116px;padding:20px 10px;display:flex;opacity:1!important}.round-node .round-dot{width:52px;height:52px}.round-node .eyebrow{margin:0 0 5px;font-size:10px}.round-node h3{margin-bottom:7px;font-size:16px}.round-node.locked h3{color:var(--muted-foreground)}.round-node>div{flex:1}.round-node:not(:disabled):hover{background:var(--secondary)}.round-end{color:var(--primary)}.round-node.passed .round-end{color:var(--mastered)}.practice-workspace{max-width:720px;margin:0 auto}.practice-heading{justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px;display:flex}.practice-heading .button{padding-left:0}.practice-workspace>.meter{height:5px;margin-bottom:30px}.word-study .word-card{padding:35px}.practice-action{padding:25px 0 max(15px,env(safe-area-inset-bottom));justify-content:space-between;align-items:center;gap:15px;display:flex}.practice-action .button{min-width:150px;min-height:50px}.exercise{padding-top:10px}.exercise-meta{justify-content:space-between;align-items:center;gap:14px;margin-bottom:28px;display:flex}.exercise-prompt{margin:30px 0}.exercise-prompt h2{letter-spacing:-.5px;overflow-wrap:anywhere;margin:15px 0;font-size:28px;line-height:1.55}.exercise-prompt .passage{background:var(--card);border-left:2px solid var(--primary);padding:20px;font-size:17px}.options{flex-direction:column;gap:13px;display:flex}.option{border:1px solid var(--input);background:var(--card);text-align:left;width:100%;min-height:62px;border-radius:9px;align-items:center;gap:16px;padding:14px 18px;font-size:15px;line-height:1.6;display:flex;opacity:1!important}.option,.option:disabled{color:var(--foreground)}.option>span:nth-child(2){flex:1}.option-letter{border:1px solid var(--border);border-radius:5px;flex-shrink:0;place-items:center;width:29px;height:29px;font-size:12px;display:grid}.option.selected,.option:not(:disabled):hover{background:var(--secondary)}.option.selected{border:2px solid var(--primary);padding:13px 17px}.option.selected .option-letter{border-color:var(--primary);color:var(--primary)}.option.correct{border-color:var(--correct);background:var(--correct-subtle)}.option.incorrect{border-color:var(--incorrect);background:var(--incorrect-subtle);border-style:dashed}.option.correct>svg{color:var(--correct)}.option.incorrect>svg{color:var(--incorrect)}.exercise .practice-action{justify-content:flex-end}.feedback{border-radius:10px;flex-wrap:wrap;align-items:flex-start;gap:13px;margin-top:25px;padding:22px;animation:fa-feedback-in .1s;display:flex}.feedback>svg{flex-shrink:0}.feedback>div:not(.feedback-actions){flex:1;min-width:0}.feedback h3{margin-bottom:7px}.feedback p{font-size:14px}.feedback p.small{margin-top:6px;font-size:12px}.feedback.correct{background:var(--correct-subtle);color:var(--correct-subtle-foreground)}.feedback.incorrect{background:var(--incorrect-subtle);color:var(--incorrect-subtle-foreground)}.feedback.pending{background:var(--info-subtle);color:var(--info-subtle-foreground)}.feedback-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;width:100%;padding-top:10px;display:flex}.feedback-actions .button{min-height:48px}.answer-input{flex-direction:column;gap:12px;display:flex}.answer-input input,.answer-input textarea{min-height:54px;font-size:17px}.tile-answer{border:1px solid var(--input);background:var(--card);border-radius:9px;flex-wrap:wrap;align-items:center;gap:8px;min-height:100px;margin-bottom:20px;padding:17px;display:flex}.tile-answer>.muted{font-size:14px}.tile-bank{flex-wrap:wrap;gap:10px;margin-bottom:15px;display:flex}.tile{border:1px solid var(--input);background:var(--card);border-radius:7px;justify-content:center;align-items:center;min-height:48px;padding:10px 15px;font-size:15px;display:inline-flex}.tile:disabled{opacity:.35}.crossword{gap:2px;max-width:100%;margin:20px 0;display:grid;overflow:auto}.cross-cell{border:1px solid var(--input);background:var(--card);height:28px;font-size:14px;font-family:var(--font-num);place-items:center;display:grid}.cross-cell.focused{background:var(--secondary);border-color:var(--primary)}.cross-void{background:var(--muted);height:28px}.explanation{flex-direction:column;gap:15px;line-height:1.7;display:flex}.explanation>strong{color:var(--primary);font-size:23px}.pending-grades{max-width:720px;margin:40px auto}.pending-grades>article{border-bottom:1px solid var(--border);padding:20px 0}.pending-grades p{margin-top:10px;font-size:14px}.spinning{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (min-width:1600px){.auth-story{padding-left:max(70px,50vw - 675px)}}@media (max-width:1279px) and (min-width:1024px){.sidebar{width:210px;padding-left:13px;padding-right:13px}.main-wrapper{margin-left:210px}.teacher-main{padding:35px 28px}.topbar{padding:0 28px}.stat{padding:0 12px}.stat>p{flex-direction:column;align-items:flex-start}}@media (max-width:1023px){.sidebar{transition:transform .1s;transform:translate(-100%)}.sidebar.is-open{transform:translate(0)}.main-wrapper{margin-left:0}.mobile-menu{z-index:20;display:flex;position:absolute;top:16px;left:16px}.teacher-shell .topbar{height:76px;padding-left:75px}.nav-backdrop{z-index:29;background:#14212a66;display:block;position:fixed;inset:0}.teacher-main{padding:35px 28px}.topbar{padding:0 28px}.auth-story{padding:35px}.auth-visual>h1{font-size:54px}.auth-form-panel{padding:45px 35px}.review-workspace{gap:23px}}@media (max-width:767px){h1{letter-spacing:-.7px;font-size:26px}.page-title{flex-direction:column;align-items:flex-start;gap:18px;margin-bottom:27px}.teacher-main{padding:28px 20px}.topbar{padding:0 20px}.topbar-right>.muted{display:none}.round-distribution{grid-template-columns:1fr;gap:25px;padding:25px}.stats-strip{grid-template-columns:repeat(3,1fr);row-gap:25px}.stat>p{font-size:10px}.stat{padding:0 14px}.stat:nth-child(4){border:0;padding-left:0}.stat>strong{font-size:30px}.review-workspace{grid-template-columns:1fr}.word-index{border-right:0;border-bottom:1px solid var(--border);max-height:220px;padding:0 0 20px}.word-index>button{min-height:55px;padding:10px}.class-row .badge{display:none}.class-row{gap:15px}.row-action{gap:0;font-size:0}.assignment-row{gap:15px}.hard-word{grid-template-columns:100px 1fr;gap:10px}.hard-word>span{grid-column:2;font-size:10px}.auth-layout{flex-direction:column;display:flex}.auth-story{padding:25px}.auth-footer,.auth-visual{display:none}.auth-form-panel{flex:1;padding:38px 25px 25px}.auth-form{margin:20px auto}.student-main{padding:30px 20px 40px}.student-shell .topbar{height:70px}.student-assignments{gap:18px}.student-assignment{padding:20px}.learning-intro{gap:15px}.learning-intro h2{font-size:20px}.learning-emblem{border-radius:12px;width:58px;height:58px}.word-card,.word-study .word-card{padding:24px}.practice-heading{flex-direction:column;align-items:flex-start;gap:3px}.practice-action{gap:10px}.word-study .practice-action>p{max-width:130px}.round-node{gap:17px}.dialog{padding:23px}}@media (max-width:1023px){.audit-filters{grid-template-columns:1fr 1fr}}@media (max-width:539px){.audit-filters,.form-grid{grid-template-columns:1fr;gap:18px}.student-assignments{grid-template-columns:1fr}.student-name{display:none}.student-main{padding:24px 16px 35px}.student-main .page-title h1{font-size:25px}.student-shell .topbar{padding:0 16px}.student-shell .brand{font-size:17px}.student-shell .brand-mark{width:30px;height:30px}.student-shell .app-footer{padding:25px 16px}.sync-status{justify-content:flex-start}.learning-intro{align-items:flex-start;margin-top:26px;margin-bottom:20px}.learning-intro>.learning-emblem{display:none}.round-node{gap:15px;min-height:112px;padding:18px 0}.round-node .round-dot{width:45px;height:45px}.round-node h3{font-size:14px}.round-end{width:20px}.round-node p.small{font-size:10px}.exercise-prompt{margin:25px 0}.exercise-prompt h2{font-size:24px}.word-heading h2{font-size:33px}.word-heading audio{max-width:40%}.meanings>p{font-size:16px}.feedback{gap:9px;padding:18px 15px}.feedback-actions .button{flex:1}.practice-action .button{min-width:145px}.dialog{width:100%;max-height:90dvh;padding-bottom:max(23px,env(safe-area-inset-bottom));border-radius:16px 16px 0 0;top:auto;bottom:0;left:0;transform:none}.class-avatar{width:43px;height:43px;font-size:14px}.class-row h2{font-size:15px}.tabs{gap:20px}.actions{gap:8px}.actions .button{padding:10px 12px;font-size:12px}.app-footer{padding:20px}.stats-strip{grid-template-columns:repeat(2,1fr)}.stat:nth-child(3),.stat:nth-child(5){border:0;padding-left:0}.stat:nth-child(4){border-left:1px solid var(--border);padding-left:14px}.option{gap:12px;padding:14px;font-size:14px}.option.selected{padding:13px}.exercise-meta{gap:8px}}.mobile-navigation{flex-direction:column;gap:8px;margin-bottom:18px;display:flex}.mobile-navigation a{min-height:48px;color:var(--primary);border-radius:7px;align-items:center;gap:12px;padding:12px;display:flex}.mobile-navigation a:hover{background:var(--secondary)}@media (max-width:1023px){.sidebar{display:none}}.is-practicing>.back-link{display:none}.is-practicing>.page-title{margin:0 0 6px}.is-practicing>.page-title .eyebrow,.is-practicing>.page-title p.muted{display:none}.is-practicing>.page-title h1{letter-spacing:-.2px;margin:0;font-size:15px}.is-practicing>.sync-area{margin-bottom:10px}.practice-action{background:var(--background);border-top:1px solid var(--border);z-index:10;position:sticky;bottom:0}.exercise{scroll-margin-top:16px}.skip-link{opacity:0;pointer-events:none;top:10px}.skip-link:focus{opacity:1;pointer-events:auto}.completed-distribution .meter>span{background:var(--mastered)}.answer-input>span{font-size:13px;font-weight:500}.legal-layout{background:var(--background);flex-direction:column;min-height:100vh;display:flex}.legal-header{justify-content:space-between;align-items:center;gap:16px;padding:24px 16px;display:flex}.legal,.legal-header{width:100%;max-width:760px;margin:0 auto}.legal{flex:1;padding:16px 16px 48px;font-size:15px}.legal h2{margin:36px 0 12px}.legal h3{margin:20px 0 8px}.legal p+p,.legal ul+p{margin-top:12px}.legal ul{margin:0;padding-left:22px;line-height:1.65}.legal li+li{margin-top:8px}.legal a,.legal-links a{color:var(--primary);text-underline-offset:3px;text-decoration:underline}.legal mark{background:var(--warning-subtle);color:var(--warning-subtle-foreground);border-radius:3px;padding:0 3px}.legal-footer{width:100%;max-width:760px;margin:0 auto;padding:20px 16px}.app-footer a,.legal-footer a{text-underline-offset:3px;text-decoration:underline}.legal-links{flex-wrap:wrap;gap:4px 12px;display:flex}.auth-bottom+.legal-links{margin-top:6px;font-size:11px}@keyframes fa-feedback-in{0%{opacity:.6;transform:scale(.98)}to{opacity:1;transform:none}}@keyframes fa-skeleton{50%{opacity:.55}}