@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/53e45098eac42afb-s.p.0udrnr4-18tjo.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/85ea1b3aadcead52-s.18lx4otehud-r.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(../media/3c285486269019b7-s.p.1br53b7gww62p.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/625a092f804baad3-s.p.3bgaltqld2gq2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6afabefbb32d7517-s.0mlt1uo-cplt-.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a4f4f75ad654963f-s.p.22m3f6pvfu2zf.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/8ffc259da9d23054-s.p.2heyes1wqz_kz.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/9e486ba39c38fb8a-s.37omzjo7pfhh3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6f42e0a3b0519c4d-s.p.31-z0m_4g_6pa.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Be Vietnam Pro Fallback;src:local(Arial);ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.0%;size-adjust:110.36%}.be_vietnam_pro_566c0249-module__q2TgTq__className{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.be_vietnam_pro_566c0249-module__q2TgTq__variable{--font-body:"Be Vietnam Pro", "Be Vietnam Pro Fallback"}
@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e390973e931a41c5-s.3zhtymus0wdqb.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/59b15b4bcd7b1eb5-s.3nkuoiize4urq.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e532fa1b9921e1cd-s.p.1da667lu-u79a.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/2fe89d53234c61d4-s.1i05ju5aeyhye.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/99e609270109b47d-s.p.1dgcou5jor5q_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5e05ae5b48faa55e-s.31-2bzhq1gx_9.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/a7afbb44bec2bb18-s.3xauquyg2sixn.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/02263ebadd758ea4-s.p.2taws-qdxmzlf.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/68757d6cddeff913-s.0htwiiqufp3l9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/effe91970fc4db64-s.p.28xcb7557rbh2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono Fallback;src:local(Arial);ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.0%;size-adjust:134.59%}.ibm_plex_mono_ada6987c-module__1dHT9W__className{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.ibm_plex_mono_ada6987c-module__1dHT9W__variable{--font-mono:"IBM Plex Mono", "IBM Plex Mono Fallback"}
:root{--color-primary:#1e3a4a;--color-primary-hover:#2c5468;--color-primary-active:#16303d;--color-primary-foreground:#fbfaf7;--color-accent:#f5b400;--color-accent-hover:#dfa300;--color-accent-foreground:#16303d;--color-secondary:#e7eef1;--color-secondary-foreground:#2c5468;--color-background:#fbfaf7;--color-surface:#fff;--color-surface-elevated:#fff;--color-surface-subtle:#f3f6f7;--color-border:#e1e6e9;--color-border-strong:#c9d4d9;--color-text-primary:#16303d;--color-text-secondary:#4a6472;--color-text-muted:#7b898f;--color-success:#3d7a5f;--color-success-soft:#e5f1eb;--color-warning:#8a5a00;--color-warning-soft:#fff3cc;--color-error:#b55249;--color-error-soft:#f8e8e6;--color-info:#2c5468;--color-info-soft:#e7eef1;--color-neutral:#56666e;--color-neutral-soft:#f1f3f4;--color-overlay:#16303d7a;--color-focus-ring:#f5b40073;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:999px;--elevation-0:none;--elevation-1:0 1px 2px #1e3a4a14;--elevation-2:0 10px 28px #1e3a4a1f;--elevation-3:0 20px 56px #1e3a4a29}*{box-sizing:border-box}html{background:var(--color-background);color:var(--color-text-primary)}body{background:var(--color-background);min-width:320px;color:var(--color-text-primary);font-family:var(--font-body), system-ui, sans-serif;margin:0;font-size:15px;line-height:1.55}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--color-primary);font-family:var(--font-body), system-ui, sans-serif;letter-spacing:-.035em;line-height:1.12}h1{font-size:clamp(2rem,4vw,3.5rem)}h2{font-size:clamp(1.35rem,2vw,2rem)}h3{font-size:1.12rem}.wordmark,.brand-lockup{color:var(--color-primary);font-family:var(--font-body), system-ui, sans-serif;letter-spacing:-.05em;align-items:center;gap:10px;font-size:1.35rem;font-weight:700;display:inline-flex}.wordmark-mark,.brand-mark{background:var(--color-accent);width:30px;height:30px;color:var(--color-primary);border-radius:9px 9px 9px 2px;place-items:center;display:grid}.workspace-page{background:var(--color-background);min-height:100vh}.workspace-main{width:calc(100% - 48px);margin:0 auto;padding:44px 0 72px}.workspace-header{z-index:20;border-bottom:1px solid var(--color-primary-hover);background:var(--color-primary);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0}.workspace-header-inner{align-items:center;gap:36px;width:calc(100% - 48px);min-height:70px;margin:auto;display:flex}.workspace-nav-desktop{flex:1;align-items:center;gap:4px;display:flex}.workspace-nav-link{border-radius:var(--radius-md);color:var(--color-border-strong);align-items:center;gap:7px;padding:9px 12px;font-size:.88rem;font-weight:600;display:inline-flex}.workspace-nav-link:hover,.workspace-nav-link.is-active{background:var(--color-primary-hover);color:var(--color-primary-foreground)}.workspace-nav-link.is-active{box-shadow:inset 0 -2px var(--color-accent)}.workspace-header-actions{align-items:center;gap:14px;margin-left:auto;display:flex}.workspace-role-label{color:var(--color-border-strong);font-family:var(--font-mono), monospace;letter-spacing:.06em;text-transform:uppercase;font-size:.75rem}.header-logout,.workspace-mobile-logout{color:var(--color-border-strong);background:0 0;border:0;align-items:center;gap:7px;font-weight:600;display:inline-flex}.header-logout:hover,.workspace-mobile-logout:hover,.workspace-header .brand-lockup,.workspace-header .wordmark{color:var(--color-primary-foreground)}.mobile-menu-toggle,.workspace-mobile-panel{display:none}.public-shell{background:radial-gradient(circle at 85% 0%, var(--color-warning-soft) 0, transparent 25rem), var(--color-background);min-height:100vh;padding:52px 24px}.public-header{justify-content:space-between;align-items:center;width:100%;margin:0 auto;padding:20px 0;display:flex}.lp-hero,.editorial-hero{grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:center;gap:clamp(36px,8vw,112px);width:100%;margin:48px auto 0;padding:72px 0;display:grid}.eyebrow,.auth-eyebrow{color:var(--color-warning);font-family:var(--font-mono), monospace;letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px;font-size:.73rem;font-weight:600}.lead,.muted{color:var(--color-text-secondary)}.landing-preview,.editorial-preview{border:1px solid var(--color-primary);border-radius:var(--radius-xl);background:var(--color-primary);color:var(--color-primary-foreground);box-shadow:13px 13px 0 var(--color-accent);padding:24px}.landing-preview div{border-bottom:1px solid var(--color-primary-hover);justify-content:space-between;gap:16px;padding:15px 0;display:flex}.landing-preview div:last-child{border:0}.landing-preview span{color:var(--color-border-strong);font-size:.84rem}.landing-preview strong{font-family:var(--font-body), system-ui, sans-serif}.lp-pill{border:1px solid var(--color-border);color:var(--color-text-secondary);font-family:var(--font-mono), monospace;border-radius:999px;align-items:center;gap:8px;padding:7px 10px;font-size:.72rem;display:inline-flex}.auth-wrap,.auth-card{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface-elevated);width:min(500px,100%);box-shadow:var(--elevation-2);margin:auto;padding:clamp(26px,6vw,48px)}.stack{gap:20px;display:grid}.auth-heading h1,.auth-heading h2,.auth-title{margin-bottom:6px}.auth-class{color:var(--color-text-secondary)}.btn{border-radius:var(--radius-md);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:9px 15px;font-weight:700;line-height:1;transition:background-color .18s,transform .18s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary,.btn-accent{background:var(--color-accent);color:var(--color-text-primary)}.btn-primary:hover,.btn-accent:hover,.btn-primary:active,.btn-accent:active{background:var(--color-accent-hover)}.btn-secondary,.btn-outline{border-color:var(--color-border);background:var(--color-surface-elevated);color:var(--color-primary)}.btn-ghost{color:var(--color-primary-hover);background:0 0}.btn-ghost:hover{background:var(--color-secondary)}.btn:disabled{border-color:var(--color-border);background:var(--color-surface-subtle);color:var(--text-disabled);cursor:not-allowed;transform:none}.btn-danger{background:var(--color-error);color:var(--color-primary-foreground)}.card,.workspace-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-elevated);box-shadow:var(--elevation-1)}.card{padding:22px}.card-hover:hover{border-color:var(--color-accent);box-shadow:var(--elevation-2)}.input,input:not([type=checkbox]),textarea,select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-elevated);width:100%;min-height:43px;color:var(--color-text-primary);padding:10px 12px}.input:focus,input:focus,textarea:focus,select:focus{border-color:var(--color-accent);outline:3px solid var(--color-focus-ring);outline-offset:1px}.field-label,label{color:var(--color-primary);gap:7px;font-size:.86rem;font-weight:700;display:grid}.form-error{color:var(--color-error);margin:0;font-size:.86rem}.form-success{color:var(--color-success)}.badge,.pill,.workspace-status{border-radius:999px;align-items:center;width:max-content;padding:4px 8px;font-size:.75rem;font-weight:700;display:inline-flex}.badge-info{background:var(--color-secondary);color:var(--color-primary-hover)}.badge-success,.badge-graded,.pill.graded,.pill.submitted,.workspace-status.is-complete{background:var(--color-success-soft);color:var(--color-success)}.badge-warning,.badge-amber,.badge-pending,.workspace-status.is-pending{background:var(--color-warning-soft);color:var(--color-warning)}.badge-danger,.pill.overdue{background:var(--color-error-soft);color:var(--color-error)}.badge-draft{border:1px solid var(--color-border);background:var(--color-surface-elevated);color:var(--color-primary-hover)}.badge-published{background:var(--color-secondary);color:var(--color-primary-hover)}.badge-closed,.pill.closed{background:var(--color-neutral-soft);color:var(--color-neutral)}.badge-returned,.pill.returned{background:var(--color-primary);color:var(--color-primary-foreground)}.page-head{display:none!important}.page-head h1{margin:0;font-size:1.25rem}.page-head p,.page-head .eyebrow,.workspace-person .eyebrow,.teacher-dash-heading .eyebrow{display:none}.student-workspace-view,.teacher-dash,.class-overview{gap:26px;display:grid}.workspace-topbar,.teacher-dash-header{display:none!important}.workspace-person{align-items:center;gap:8px;display:flex}.workspace-avatar{background:var(--color-primary);width:26px;height:26px;color:var(--color-warning-soft);font-family:var(--font-body), system-ui, sans-serif;border-radius:50%;place-items:center;font-size:.85rem;display:grid}.workspace-person h1,.teacher-dash-heading h1{margin:0;font-size:1.15rem}.workspace-user-meta{border:1px solid var(--color-border);color:var(--color-text-secondary);font-family:var(--font-mono), monospace;padding:6px 9px;font-size:.75rem}.student-summary-strip{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-elevated);grid-template-columns:minmax(230px,1.35fr) repeat(4,minmax(110px,1fr));display:grid;overflow:hidden}.student-class-signature{border-right:1px solid var(--color-border);background:linear-gradient(145deg, var(--color-primary), var(--color-primary-hover));color:var(--color-primary-foreground);align-items:center;gap:14px;padding:24px;display:flex}.student-class-signature strong{font-family:var(--font-body), system-ui, sans-serif;font-size:1.35rem;display:block}.student-class-signature small{color:var(--color-border-strong)}.signature-icon{background:var(--color-accent);width:44px;height:44px;color:var(--color-primary);border-radius:10px;place-items:center;display:grid}.workspace-metric{border-right:1px solid var(--color-border);align-items:center;gap:10px;padding:20px;display:flex}.workspace-metric:last-child{border:0}.workspace-metric svg{color:var(--color-accent)}.workspace-metric span{color:var(--color-text-secondary);font-size:.78rem;display:block}.workspace-metric strong{color:var(--color-primary);font-family:var(--font-body), system-ui, sans-serif;font-size:1.32rem}.student-dashboard-panels{grid-template-columns:minmax(0,1.55fr) minmax(250px,.75fr);gap:20px;display:grid}.student-dashboard-secondary{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-panel{padding:22px}.workspace-panel-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.workspace-panel-title>span{color:var(--color-primary);align-items:center;gap:9px;font-weight:700;display:inline-flex}.workspace-panel-title svg{color:var(--color-accent)}.workspace-panel-title a{color:var(--color-warning);font-size:.82rem;font-weight:700}.deadline-panel{align-content:start;display:grid}.deadline-panel>strong{font-family:var(--font-body), system-ui, sans-serif;font-size:1.25rem}.workspace-progress-number{color:var(--color-primary);font-family:var(--font-body), system-ui, sans-serif;margin:8px 0;font-size:3.2rem;display:block}.workspace-assignment-list{border-top:1px solid var(--color-border)}.workspace-assignment-row{border:0;border-bottom:1px solid var(--color-border);width:100%;color:var(--color-text-primary);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:16px;padding:15px 0;display:flex}.workspace-assignment-row:hover strong{color:var(--color-warning)}.workspace-assignment-row strong,.workspace-assignment-row small{display:block}.workspace-assignment-row small{color:var(--color-text-secondary);margin-top:3px;font-size:.78rem}.notification-item{border:0;border-bottom:1px solid var(--color-border);width:100%;color:var(--color-text-primary);text-align:left;background:0 0;justify-content:space-between;gap:15px;padding:14px 0;display:flex}.notification-item small{color:var(--color-text-secondary);white-space:nowrap}.header-notification-wrapper{position:relative}.header-notification-trigger{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:40px;height:40px;color:var(--color-primary);cursor:pointer;justify-content:center;align-items:center;display:inline-flex;position:relative}.header-notification-dot{background:var(--color-accent);border-radius:50%;width:7px;height:7px;position:absolute;top:6px;right:6px}.header-notification-popover{z-index:30;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);width:min(360px,100vw - 24px);color:var(--color-text-primary);box-shadow:var(--elevation-2);position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.header-notification-title{border-bottom:1px solid var(--color-border);padding:12px 16px;font-weight:700}.header-notification-list{max-height:280px;overflow-y:auto}.header-notification-item{border:0;border-bottom:1px solid var(--color-border);background:var(--color-surface);width:100%;color:var(--color-text-primary);text-align:left;cursor:pointer;padding:12px 16px;display:block}.header-notification-item:hover,.header-notification-item.is-unread{background:var(--color-secondary)}.header-notification-message{font-size:.875rem;line-height:1.4}.header-notification-time{color:var(--color-text-muted);margin-top:4px;font-size:.75rem}.header-notification-empty{color:var(--color-text-muted);text-align:center;padding:20px 16px;font-size:.875rem}.header-notification-all{color:var(--color-primary);text-align:center;padding:11px 16px;font-size:.875rem;font-weight:700;display:block}.student-summary-cards{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.student-summary-cards .stat-card{min-height:116px}.student-class-card{align-items:center;gap:var(--space-3);background:var(--color-surface);color:var(--color-primary);display:flex}.student-class-card .signature-icon{border-radius:var(--radius-md);background:var(--color-accent);width:48px;height:48px;color:var(--color-text-primary);flex:none;justify-content:center;align-items:center;display:inline-flex}.student-class-card div{gap:3px;display:grid}.student-class-card strong{order:initial;font-size:1.25rem}.student-class-card span,.student-class-card small{color:var(--color-text-secondary)}.student-class-card strong{color:var(--color-primary)}@media (max-width:800px){.student-summary-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.teacher-dash-header{align-items:center}.teacher-dash-heading{align-items:center;gap:15px;display:flex}.teacher-dash-icon{display:none}.teacher-metrics-grid{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-elevated);grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.teacher-metric{border-right:1px solid var(--color-border);align-items:center;gap:12px;padding:20px;display:flex}.teacher-metric:last-child{border:0}.teacher-metric strong,.teacher-metric span:not(.student-icon-tile){display:block}.teacher-metric strong{font-family:var(--font-body), system-ui, sans-serif;font-size:1.65rem}.teacher-metric span:not(.student-icon-tile){color:var(--color-text-secondary);font-size:.77rem}.student-icon-tile{border:1px solid var(--color-border);background:var(--color-surface-elevated);width:38px;height:38px;color:var(--color-primary-hover);border-radius:50%;flex:none;place-items:center;display:grid}.student-icon-tile.blue{background:var(--color-secondary);color:var(--color-primary-hover)}.student-icon-tile.green{background:var(--color-success-soft);color:var(--color-success)}.student-icon-tile.amber{background:var(--color-warning-soft);color:var(--color-warning)}.student-icon-tile.violet{background:var(--color-secondary);color:var(--color-primary-hover)}.teacher-class-grid,.class-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.teacher-class-card{gap:20px;min-height:200px;display:grid}.teacher-class-card-head{justify-content:space-between;align-items:flex-start;display:flex}.teacher-class-card h2{margin:0 0 5px;font-size:1.35rem}.teacher-mini-ring{color:var(--color-warning);place-items:center;display:grid;position:relative}.teacher-mini-ring svg{transform:rotate(-90deg)}.teacher-mini-ring span{color:var(--color-primary);font-size:.62rem;font-weight:700;position:absolute}.progress-track{background:var(--color-surface-subtle);border-radius:99px;height:6px;overflow:hidden}.progress-value{border-radius:inherit;background:var(--color-accent);height:100%}.class-overview-link .card{height:100%}.class-overview-icon{background:var(--color-accent);width:42px;height:42px;color:var(--color-text-primary);border-radius:50%;place-items:center;margin-bottom:22px;display:grid}.class-overview-link h2{margin-bottom:8px}.class-overview-link p{color:var(--color-text-secondary)}.class-overview-link>.card>span:last-child{color:var(--color-warning);font-size:.82rem;font-weight:700}.data-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-elevated);overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table th{background:var(--color-surface-subtle);color:var(--color-text-secondary);font-family:var(--font-mono), monospace;letter-spacing:.07em;text-align:left;text-transform:uppercase;font-size:.7rem;font-weight:600}.data-table th,.data-table td{border-bottom:1px solid var(--color-border);padding:13px 16px}.data-table tbody tr:last-child td{border:0}.data-table tbody tr:hover{background:var(--color-secondary)}.modal-backdrop,.modal-overlay{z-index:1000;background:var(--color-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal,.modal-content{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface-elevated);width:min(680px,100%);max-height:min(780px,92vh);box-shadow:var(--elevation-2);padding:26px;overflow-y:auto}.modal-sm{width:min(440px,100%)}.modal-md{width:min(640px,100%)}.modal-lg{width:min(860px,100%)}.modal-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:22px;display:flex}.modal-close{color:var(--color-text-secondary);background:0 0;border:0;font-size:1.5rem}.workspace-state,.teacher-empty-state{text-align:center;place-content:center;gap:16px;min-height:280px;display:grid}@media (max-width:800px){.workspace-header-inner,.workspace-main{width:calc(100% - 32px)}.workspace-nav-desktop,.header-logout,.workspace-role-label{display:none}.mobile-menu-toggle{border:1px solid var(--color-primary-hover);border-radius:var(--radius-md);background:var(--color-primary-hover);width:38px;height:38px;color:var(--color-primary-foreground);place-items:center;display:grid}.workspace-mobile-panel{border:1px solid var(--color-primary-hover);border-radius:var(--radius-lg);background:var(--color-primary);width:calc(100% - 32px);box-shadow:var(--elevation-2);margin:0 auto 14px;padding:8px;display:block}.workspace-mobile-panel nav{display:grid}.workspace-mobile-link,.workspace-mobile-logout{border-radius:var(--radius-md);color:var(--color-border-strong);align-items:center;gap:10px;padding:12px;display:flex}.workspace-mobile-link.is-active{background:var(--color-primary-hover);color:var(--color-primary-foreground);box-shadow:inset 3px 0 var(--color-accent)}.workspace-main{padding-top:30px}.lp-hero,.editorial-hero{grid-template-columns:1fr;padding:40px 0}.student-summary-strip,.teacher-metrics-grid{grid-template-columns:repeat(2,1fr)}.student-class-signature{border-right:0;border-bottom:1px solid var(--color-border);grid-column:1/-1}.workspace-metric:nth-child(3),.teacher-metric:nth-child(2){border-right:0}.workspace-metric:nth-child(-n+3),.teacher-metric:nth-child(-n+2){border-bottom:1px solid var(--color-border)}.student-dashboard-panels,.student-dashboard-secondary,.teacher-class-grid,.class-overview-grid{grid-template-columns:1fr}.teacher-dash-header{flex-direction:column;align-items:flex-start}.teacher-dash-header .btn{width:100%}.public-shell{padding:30px 16px}}@media (max-width:480px){.workspace-header-inner{min-height:62px}.workspace-main{width:calc(100% - 24px)}.wordmark{font-size:1.2rem}.student-summary-strip,.teacher-metrics-grid{grid-template-columns:1fr}.workspace-metric,.teacher-metric,.workspace-metric:nth-child(3),.teacher-metric:nth-child(2){border-right:0;border-bottom:1px solid var(--color-border)}.workspace-metric:last-child,.teacher-metric:last-child{border-bottom:0}.workspace-topbar{flex-direction:column;align-items:flex-start}.workspace-user-meta{margin-left:66px}.auth-wrap,.auth-card{padding:24px}.landing-preview{box-shadow:8px 8px 0 var(--color-accent)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.landing-page{background:radial-gradient(circle at 92% 2%, var(--color-warning-soft) 0, transparent 22rem), var(--color-background);min-height:100vh;padding:0 24px 72px}.landing-page h1{margin:18px 0;font-size:clamp(3rem,6.6vw,5.8rem)}.landing-page .lead{max-width:540px;font-size:1.08rem}.class-lookup{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-elevated);max-width:560px;box-shadow:var(--elevation-2);align-items:center;gap:10px;margin-top:30px;padding:7px 7px 7px 14px;display:flex}.class-lookup>svg{color:var(--color-warning);flex:none}.class-lookup input{background:0 0;border:0;min-width:0;padding:8px 0}.class-lookup input:focus{border:0}.class-lookup .btn{flex:none}.hero-note{color:var(--color-text-secondary);align-items:center;gap:7px;margin-top:16px;font-size:.8rem;display:flex}.hero-note svg{color:var(--color-success)}.landing-principles{border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);grid-template-columns:repeat(3,1fr);gap:0;width:100%;margin:0 auto;display:grid}.landing-principles article{border-right:1px solid var(--color-border);padding:28px 30px}.landing-principles article:last-child{border:0}.landing-principles svg{color:var(--color-warning)}.landing-principles h2{margin:14px 0 7px;font-size:1.25rem}.landing-principles p{color:var(--color-text-secondary);margin:0;font-size:.88rem}.public-record-card{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface-elevated);width:min(560px,100%);box-shadow:var(--elevation-2);margin:auto;padding:32px}.record-label{justify-content:space-between;align-items:center;gap:12px;display:flex}.record-label .eyebrow{margin:0}.form-stack,.login-form,.settings-stack,.dialog-form{gap:16px;display:grid}.form-field{gap:7px;display:grid}.form-label{color:var(--color-primary);font-size:.86rem;font-weight:700}.form-label-hint{margin:-2px 0 0;font-size:.78rem}.field-underline,.form-input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-elevated);width:100%;min-height:43px;padding:10px 12px}.field-underline:focus,.form-input:focus{border-color:var(--color-accent);outline:3px solid var(--color-focus-ring);outline-offset:1px}.button,.login-button{border-radius:var(--radius-md);background:var(--color-accent);min-height:42px;color:var(--color-text-primary);border:0;justify-content:center;align-items:center;padding:9px 15px;font-weight:700;display:inline-flex}.button:hover,.login-button:hover,.button:active,.login-button:active{background:var(--color-accent-hover)}.button:disabled,.login-button:disabled{border:1px solid var(--color-border);background:var(--color-surface-subtle);color:var(--text-disabled);cursor:not-allowed}.button-secondary{border:1px solid var(--color-border);background:var(--color-surface-elevated);color:var(--color-primary)}.button-sm{min-height:34px;padding:6px 9px;font-size:.78rem}.split,.cluster,.settings-row,.dialog-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.cluster{flex-wrap:wrap;justify-content:flex-start}.settings-row input{max-width:460px}.table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-elevated);overflow:auto}.table-wrap table{border-collapse:collapse;width:100%}.table-wrap th,.table-wrap td{border-bottom:1px solid var(--color-border);text-align:left;padding:13px 15px}.table-wrap th{background:var(--color-surface-subtle);color:var(--color-text-secondary);font-family:var(--font-mono), monospace;text-transform:uppercase;font-size:.7rem}.table-wrap tbody tr:hover{background:var(--color-secondary)}.status-text{font-size:.76rem;font-weight:700}.status-warning{color:var(--color-warning)}.status-success{color:var(--color-success)}.dialog-actions{justify-content:flex-end}.form-notice{border-left:3px solid var(--color-accent);background:var(--color-warning-soft);color:var(--color-primary);padding:12px 14px;font-size:.86rem}.form-notice p{margin:0}.auth-lockout{border-radius:var(--radius-md);background:var(--color-error-soft);color:var(--color-error);padding:10px 12px;font-size:.84rem}.otp-input{justify-content:center;gap:8px;display:flex}.otp-input input{text-align:center;-webkit-text-security:disc;min-height:48px;width:40px!important}.pin-reveal{border:1px solid var(--color-accent);border-radius:var(--radius-md);background:var(--color-warning-soft);padding:16px}.pin-label{color:var(--color-warning);font-family:var(--font-mono), monospace;font-size:.7rem;font-weight:700;display:block}.pin-value{font-family:var(--font-mono), monospace;letter-spacing:.16em;margin:6px 0;font-size:1.8rem}.pin-help{font-size:.76rem;display:block}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid>.card{height:100%}@media (max-width:800px){.landing-principles{grid-template-columns:1fr}.landing-principles article{border-right:0;border-bottom:1px solid var(--color-border)}.landing-principles article:last-child{border-bottom:0}.class-lookup{flex-wrap:wrap;align-items:stretch}.class-lookup input{flex:1}.class-lookup .btn{width:100%}.settings-row,.split{flex-direction:column;align-items:stretch}.settings-row input{max-width:none}.grid{grid-template-columns:1fr}}.grade-workspace{gap:20px;padding-bottom:90px;display:grid;position:relative}.grade-header-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-elevated);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:24px;display:flex}.grade-header-main{flex:1;min-width:280px}.grade-kpi-grid{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.grade-kpi-item{border-left:2px solid var(--color-border);gap:2px;padding:10px 16px;display:grid}.grade-kpi-item strong{font-family:var(--font-body), system-ui, sans-serif;font-size:1.35rem;line-height:1}.grade-kpi-item span{font-size:.76rem}.grade-controls-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.grade-filter-tabs{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-elevated);gap:6px;padding:4px;display:flex;overflow-x:auto}.grade-tab-btn{color:var(--color-text-secondary);white-space:nowrap;background:0 0;border:0;border-radius:6px;padding:6px 12px;font-size:.82rem;font-weight:600;transition:all .15s}.grade-tab-btn:hover{color:var(--color-primary)}.grade-tab-btn.is-active{background:var(--color-warning-soft);color:var(--color-primary);font-weight:700}.grade-search-box{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-elevated);align-items:center;gap:8px;min-width:260px;padding:0 12px;display:flex}.grade-search-box svg{color:var(--color-text-secondary)}.grade-search-input{background:0 0;border:0;min-height:auto;padding:8px 0;font-size:.88rem}.grade-search-input:focus{border:0;outline:none}.grade-table th,.grade-table td{vertical-align:middle;padding:12px 14px}.grade-table tr.is-unsubmitted{opacity:.72}.grade-student-cell{align-items:center;gap:10px;display:flex}.grade-student-avatar{background:var(--color-primary);width:32px;height:32px;color:var(--color-warning-soft);border-radius:50%;flex-shrink:0;place-items:center;font-size:.88rem;font-weight:700;display:grid}.grade-student-mssv{font-family:var(--font-mono), monospace;font-size:.75rem;display:block}.grade-score-input{min-height:36px;font-weight:700;font-family:var(--font-mono), monospace;max-width:100px;padding:6px 10px}.grade-status-select{min-height:36px;padding:6px 10px;font-size:.82rem}.grade-feedback-input{min-height:36px;padding:6px 10px;font-size:.85rem}.sticky-grade-bar{z-index:30;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface-elevated);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:var(--elevation-2);margin-top:10px;padding:14px 20px;position:sticky;bottom:24px}.sticky-grade-content{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.grade-progress-info{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.grade-progress-title{color:var(--color-primary);font-size:.88rem}.grade-action-group{align-items:center;gap:14px;margin-left:auto;display:flex}.class-create-wizard{gap:22px;max-width:980px;display:grid}.class-create-stepper{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-elevated);grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.class-create-stepper li{border-right:1px solid var(--color-border);min-width:0;color:var(--color-text-secondary);align-items:center;gap:10px;padding:14px 16px;display:flex}.class-create-stepper li:last-child{border-right:0}.class-create-stepper li>span{border:1px solid var(--color-border);width:28px;height:28px;font-family:var(--font-mono), monospace;border-radius:50%;flex:0 0 28px;place-items:center;font-size:.75rem;display:grid}.class-create-stepper li strong{font-size:.78rem}.class-create-stepper li.is-current{background:var(--color-primary);color:var(--color-primary-foreground)}.class-create-stepper li.is-current>span{border-color:var(--color-accent);color:var(--color-warning-soft)}.class-create-stepper li.is-complete{color:var(--color-success)}.class-create-stepper li.is-complete>span{border-color:var(--color-success);background:var(--color-success-soft)}.class-create-stage{gap:18px;padding:clamp(22px,4vw,36px);display:grid}.class-create-stage>h2,.class-create-stage>p{margin:0}.class-create-stage .form-stack{max-width:680px}.class-create-file{border:1px dashed var(--color-accent);border-radius:var(--radius-lg);background:var(--color-warning-soft);gap:9px;padding:22px;display:grid}.class-create-file small{color:var(--color-text-secondary)}.class-create-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.class-create-actions.is-split{justify-content:space-between}.class-create-preview{gap:16px;padding-top:6px;display:grid}.class-create-stats{border:1px solid var(--color-border);border-radius:var(--radius-lg);grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.class-create-stats span{border-right:1px solid var(--color-border);color:var(--color-text-secondary);gap:4px;padding:16px;font-size:.78rem;display:grid}.class-create-stats span:last-child{border-right:0}.class-create-stats strong{color:var(--color-primary);font-family:var(--font-body), system-ui, sans-serif;font-size:1.55rem}.class-create-review{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.class-create-review section{border:1px solid var(--color-border);border-radius:var(--radius-lg);align-content:start;gap:7px;padding:20px;display:grid}.class-create-review section>span{color:var(--color-text-secondary);font-family:var(--font-mono), monospace;text-transform:uppercase;font-size:.7rem}.class-create-review section>strong{color:var(--color-primary);font-family:var(--font-body), system-ui, sans-serif;font-size:1.35rem}.class-create-review section>p{min-height:42px;color:var(--color-text-secondary);margin:0}.class-create-review section>.btn{justify-self:start}.class-create-complete{text-align:center;justify-items:center}.class-create-success{background:var(--color-success);color:#fff;border-radius:50%;place-items:center;width:54px;height:54px;font-size:1.5rem;display:grid}.pin-download-gate{border:1px solid var(--color-accent);border-radius:var(--radius-lg);background:var(--color-warning-soft);justify-items:center;gap:8px;width:min(620px,100%);padding:18px;display:grid}.pin-download-gate.is-done{border-color:var(--color-success);background:var(--color-success-soft)}.pin-download-gate p{color:var(--color-text-secondary);margin:0}.class-create-error{margin:0}@media (max-width:720px){.class-create-stepper{grid-template-columns:repeat(2,1fr)}.class-create-stepper li:nth-child(2){border-right:0}.class-create-stepper li:nth-child(-n+2){border-bottom:1px solid var(--color-border)}.class-create-review{grid-template-columns:1fr}.class-create-actions.is-split{flex-direction:column-reverse;align-items:stretch}.class-create-actions.is-split>.cluster{display:grid}.class-create-actions .btn{width:100%}}.student-modal-body{flex-direction:column;gap:20px;max-height:75vh;padding-right:4px;display:flex;overflow-y:auto}.student-assignment-meta-bar{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-wrap:wrap;align-items:center;gap:12px;padding:12px 16px;font-size:.85rem;display:flex}.student-assignment-meta-item{color:var(--color-text-secondary);align-items:center;gap:6px;display:flex}.student-assignment-meta-item strong{color:var(--color-primary);font-weight:600}.student-section-card{background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:12px;padding:16px 18px;display:flex}.student-section-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:10px;padding-bottom:8px;display:flex}.student-section-title{color:var(--color-primary);align-items:center;gap:8px;margin:0;font-size:.95rem;font-weight:700;display:flex}.student-instruction-text{font-family:var(--font-body), sans-serif;color:var(--color-text-primary);white-space:pre-wrap;word-break:break-word;margin:0;font-size:.92rem;line-height:1.65}.student-attachment-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;display:grid}.student-attachment-card{background:var(--color-background);border:1px solid var(--color-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;transition:all .15s;display:flex}.student-attachment-card:hover{border-color:var(--color-accent);background:var(--color-warning-soft);transform:translateY(-1px)}.student-attachment-info{align-items:center;gap:10px;min-width:0;display:flex}.student-attachment-icon{background:var(--color-surface-elevated);border:1px solid var(--color-border);width:36px;height:36px;color:var(--color-accent-hover);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.student-attachment-meta{flex-direction:column;min-width:0;display:flex}.student-attachment-name{color:var(--color-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:600;overflow:hidden}.student-attachment-size{font-family:var(--font-mono), monospace;color:var(--color-text-secondary);font-size:.75rem}.student-attachment-action{color:var(--color-primary);background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:6px;flex-shrink:0;align-items:center;gap:4px;padding:6px 10px;font-size:.8rem;font-weight:600;display:flex}.student-attachment-card:hover .student-attachment-action{border-color:var(--color-accent);background:var(--color-primary);color:var(--color-primary-foreground)}.assignment-badge-cluster{align-items:center;gap:6px;margin-top:4px;display:flex}.assignment-attachment-badge{background:var(--color-warning-soft);color:var(--color-accent-hover);border:1px solid var(--color-border-strong);border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-flex}.class-section-layout{flex-direction:column;gap:28px;display:flex}.class-context-nav{border-bottom:1px solid var(--color-border);flex-direction:column;gap:8px;padding-bottom:18px;display:flex}.class-context-top{flex-direction:column;gap:8px;display:flex}.class-back-link{color:var(--color-text-secondary);align-items:center;gap:6px;width:fit-content;font-size:.85rem;font-weight:600;transition:color .15s;display:inline-flex}.class-back-link:hover{color:var(--color-primary)}.class-title-block{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.class-code-badge{font-family:var(--font-mono), monospace;letter-spacing:.04em;background:var(--color-primary);color:var(--color-warning-soft);border-radius:6px;align-items:center;padding:4px 10px;font-size:.85rem;font-weight:700;display:inline-flex}.class-name-heading{font-family:var(--font-body), system-ui, sans-serif;color:var(--color-primary);margin:0;font-size:clamp(1.4rem,2.5vw,2.1rem);line-height:1.2}.pagination-wrap{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:18px;padding:14px 4px 6px;display:flex}.pagination-wrap-controls-only{justify-content:flex-end}.pagination-info{color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:16px;font-size:.88rem;display:flex}.pagination-size-label{color:var(--color-text-secondary);align-items:center;gap:8px;font-size:.85rem;display:inline-flex}.pagination-size-select{border:1px solid var(--color-border);background-color:var(--color-background);color:var(--color-primary);cursor:pointer;border-radius:6px;padding:4px 8px;font-size:.85rem;font-weight:600;transition:border-color .15s}.pagination-size-select:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 2px #e5a93b33}.pagination-controls{align-items:center;gap:5px;display:inline-flex}.pagination-pages{align-items:center;gap:4px;display:inline-flex}.pagination-btn{min-width:34px;height:34px;color:var(--color-primary);background:var(--color-background);border:1px solid var(--color-border);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;padding:0 8px;font-size:.85rem;font-weight:600;transition:all .15s;display:inline-flex}.pagination-btn:hover:not(:disabled){background:var(--color-surface-elevated);border-color:var(--color-primary)}.pagination-btn:disabled{opacity:.35;cursor:not-allowed}.pagination-btn.is-active{background:var(--color-primary);color:var(--color-accent);border-color:var(--color-primary);font-weight:700}.pagination-ellipsis{min-width:24px;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:.85rem;display:inline-flex}.class-danger-zone{border-top:1px dashed var(--color-border);margin-top:36px;padding-top:24px}.class-danger-card{background:var(--color-background);border:1px solid #dc354540;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex}.class-danger-info h3{color:var(--color-error);margin:0 0 4px;font-size:1.05rem}.class-danger-info p{margin:0;font-size:.88rem}.btn-outline-danger{color:var(--color-error);border:1px solid var(--color-error);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:8px;padding:8px 16px;font-size:.88rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-outline-danger:hover:not(:disabled){background:var(--color-error);color:var(--color-primary-foreground)}.btn-danger{color:var(--color-primary-foreground);background:var(--color-error);border:1px solid var(--color-error);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 18px;font-size:.9rem;font-weight:600;transition:opacity .15s,transform .1s;display:inline-flex}.btn-danger:hover:not(:disabled){opacity:.9}.btn-danger:disabled,.btn-outline-danger:disabled{opacity:.5;cursor:not-allowed}.assignment-status-tabs{background:var(--color-surface-subtle);border:1px solid var(--color-border);scrollbar-width:none;border-radius:10px;align-items:center;gap:4px;max-width:100%;padding:4px;display:inline-flex;overflow-x:auto}.assignment-status-tabs::-webkit-scrollbar{display:none}.assignment-tab-btn{color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:6px;padding:6px 14px;font-size:.86rem;font-weight:500;transition:all .15s cubic-bezier(.4,0,.2,1);display:inline-flex}.assignment-tab-btn:hover:not(.is-active){color:var(--color-primary);background:#fff9}.assignment-tab-btn.is-active{background:var(--color-surface-elevated);color:var(--color-primary);border-color:#0000000f;font-weight:600;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a}.tab-count-badge{min-width:18px;height:18px;color:var(--color-text-secondary);background:#0000000f;border-radius:9px;justify-content:center;align-items:center;padding:0 6px;font-size:.72rem;font-weight:600;transition:all .15s;display:inline-flex}.assignment-tab-btn.is-active .tab-count-badge,:where(.btn-primary){background:var(--color-primary);color:var(--color-primary-foreground)}:where(.btn-primary:hover:not(:disabled)){background:var(--color-primary-hover)}:where(.btn-primary:active:not(:disabled)){background:var(--color-primary-active)}:where(.btn-secondary){background:var(--color-secondary);color:var(--color-secondary-foreground)}:where(.btn-outline,.btn-destructive-outline){border:1px solid var(--color-border-strong);background:0 0}:where(.btn-destructive-outline){border-color:var(--color-error);color:var(--color-error)}:where(.btn-destructive){background:var(--color-error);color:var(--color-primary-foreground)}:where(.btn-destructive:hover:not(:disabled)){background:var(--color-error)}:where(.card,.card-glass,.card.glass,.glass){box-shadow:var(--elevation-0)}:where(.font-display){font-family:var(--font-body), system-ui, sans-serif}.alert{gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--color-surface-subtle);align-items:flex-start;display:flex}.alert>div{gap:var(--space-1);display:grid}.alert-success{border-color:var(--color-success);background:var(--color-success-soft);color:var(--color-success)}.alert-info{border-color:var(--color-info);background:var(--color-info-soft);color:var(--color-info)}.alert-warning{border-color:var(--color-warning);background:var(--color-warning-soft);color:var(--color-warning)}.alert-error{border-color:var(--color-error);background:var(--color-error-soft);color:var(--color-error)}.badge-error{background:var(--color-error-soft);color:var(--color-error)}.card-interactive{cursor:pointer;transition:border-color .16s}.card-interactive:hover,.card-hover:hover{border-color:var(--color-accent)}.card-highlighted{border-left:3px solid var(--color-accent)}.card-compact{padding:var(--space-4)}.toast-region{z-index:100;right:var(--space-4);bottom:var(--space-4);gap:var(--space-2);width:min(360px,100vw - 32px);display:grid;position:fixed}.toast{justify-content:space-between;align-items:center;gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--color-surface);box-shadow:var(--elevation-2);display:flex}.toast-success{border-color:var(--color-success)}.toast-error{border-color:var(--color-error)}.toast button{color:inherit;background:0 0;border:0;font-size:1.25rem}.modal-grab-handle{width:36px;height:4px;margin:0 auto var(--space-2);border-radius:var(--radius-full);background:var(--color-border-strong);display:none}.back-link{align-items:center;gap:var(--space-1);color:var(--color-text-secondary);font-weight:700;display:inline-flex}.back-link:hover{color:var(--color-primary)}.empty-state{justify-items:center;gap:var(--space-2);padding:var(--space-12) var(--space-4);text-align:center;display:grid}.empty-state-icon{border-radius:var(--radius-full);background:var(--color-surface-subtle);width:48px;height:48px;color:var(--color-primary);place-items:center;display:grid}.empty-state h4,.empty-state p{margin:0}.empty-state p{max-width:42ch;color:var(--color-text-muted)}.skeleton{border-radius:var(--radius-sm);background:var(--color-surface-subtle);animation:1.4s ease-in-out infinite skeleton-pulse;display:block}@keyframes skeleton-pulse{50%{opacity:.45}}.page-header{gap:var(--space-2);margin-bottom:var(--space-8);display:grid}.grade-import-primary{margin:var(--space-6) 0}.import-preview-table-wrap{max-height:280px;overflow:auto}.import-preview-table-wrap th:first-child,.import-preview-table-wrap td:first-child{background:var(--color-surface);position:sticky;left:0}.identity-mono{font-family:var(--font-mono), monospace}.import-feedback-cell{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.import-row-invalid{background:var(--color-error-soft)}.grade-import-primary h2{margin:var(--space-2) 0;font-size:1.35rem}.grade-import-primary p{max-width:62ch;margin:0}.teacher-content-back{align-items:center;min-height:44px;margin-bottom:12px;display:flex}.grade-page-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.grade-page-title{margin:0;font-size:1.5rem}.grade-results-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.grade-results-toolbar .form-input{max-width:360px}.grade-results-card{overflow:hidden}.grade-results-table th:first-child,.grade-results-table td:first-child{z-index:1;background:var(--color-surface);position:sticky;left:0}.grade-feedback-cell{white-space:pre-wrap;min-width:260px}@media (max-width:800px){.grade-page-toolbar,.grade-results-toolbar{align-items:stretch}.grade-page-toolbar>*,.grade-results-toolbar>*{width:100%;max-width:none}}.auth-card{width:min(440px,100% - 24px);margin:var(--space-12) auto;padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--elevation-0)}.auth-card h1{margin:0 0 var(--space-2);font-size:clamp(1.5rem,3vw,2rem)}.auth-card-description{margin:0 0 var(--space-6);color:var(--color-text-secondary)}.toolbar{align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);display:flex}.toolbar-search{flex:1;max-width:400px}.toolbar-filters,.toolbar-actions{align-items:center;gap:var(--space-2);display:flex}.workspace-main{width:min(1120px,100% - 48px)}.student-email-card{margin-top:var(--space-6)}.student-email-card h2{margin:0 0 var(--space-2);font-size:1.1rem}.student-email-card .stack-form{gap:var(--space-3);max-width:420px;margin-top:var(--space-4);display:grid}.page-header-row{justify-content:space-between;align-items:flex-end;gap:var(--space-6);display:flex}.page-header h1{margin:0}.page-header p{margin:var(--space-2) 0 0;color:var(--color-text-secondary)}.page-header-actions{gap:var(--space-3);display:flex}.eyebrow{color:var(--color-text-muted);letter-spacing:.08em;text-transform:uppercase;font-size:.75rem;font-weight:700}.table-sticky-col{z-index:1;background:var(--color-surface);position:sticky;left:0}@media (max-width:800px){.modal-grab-handle{display:block}.page-header-row{flex-direction:column;align-items:stretch}.page-header-actions{flex-direction:column;width:100%}.page-header-actions>*{width:100%}.toast-region{right:var(--space-2);bottom:var(--space-2);width:calc(100vw - 16px)}.toolbar{flex-direction:column;align-items:stretch}.toolbar-search{width:100%;max-width:none}.toolbar-filters,.toolbar-actions{flex-wrap:wrap;width:100%}.modal-overlay,.modal-backdrop{align-items:flex-end}.modal-content,.modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;width:100%;max-height:min(88vh,720px);margin:0;animation:.18s ease-out bottom-sheet-in}}@keyframes bottom-sheet-in{0%{opacity:.6;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.bottom-sheet-in,.modal-content,.modal{animation:none}}html,body{overflow-x:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:800px){.workspace-header-inner,.workspace-main,.public-header,.landing-page{width:calc(100% - 24px)}.workspace-header-inner{gap:var(--space-3);min-height:62px}.workspace-nav-desktop,.header-logout{display:none}.mobile-menu-toggle{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:inline-flex}.workspace-mobile-panel{width:100%;padding:var(--space-4)}.teacher-metrics-grid,.student-summary-strip,.landing-principles,.student-dashboard-panels{grid-template-columns:1fr}.class-create-wizard{width:min(100%,840px)}.class-create-stepper{grid-template-columns:repeat(2,minmax(0,1fr))}.table-wrap,.data-table-wrap,.import-preview-table-wrap{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.table-wrap table,.data-table-wrap table{min-width:640px}.btn,button,input,select,textarea,.pagination-btn{min-height:44px}}@media (min-width:481px) and (max-width:800px){.teacher-metrics-grid,.student-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:801px){.teacher-metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:480px){.workspace-main{padding-top:var(--space-6)}.auth-card{padding:var(--space-6) var(--space-4)}.otp-input{gap:var(--space-1)}.otp-digit{width:42px;height:50px}}.input-error{border-color:var(--color-error)}.input-success{border-color:var(--color-success)}.form-hint{color:var(--color-text-muted);font-size:.8125rem}.search-input-wrap{align-items:center;display:flex;position:relative}.search-input-wrap .input{width:100%;padding-right:40px}.search-input-clear{color:var(--color-text-muted);background:0 0;border:0;font-size:1.25rem;position:absolute;right:8px}.otp-input-error{animation:.24s ease-in-out otp-shake}.page-back-slot{margin-bottom:var(--space-3)}.back-link{border-radius:var(--radius-md);width:44px;height:44px;color:var(--color-text);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.back-link:hover{background:var(--color-secondary)}.back-link:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.auth-card{border:1px solid var(--color-border);background:var(--color-surface);width:min(100%,440px);box-shadow:none;border-radius:16px;margin-inline:auto;padding:32px}.auth-card-header{gap:var(--space-2);display:grid}.auth-card-header h1{margin:0}.auth-card-description{color:var(--color-text-muted);margin:0}.auth-card-context{margin-top:var(--space-2);gap:4px;display:grid}.auth-class-code{color:var(--color-text-muted);font-family:IBM Plex Mono,monospace}.auth-card-notice{margin-top:var(--space-4)}.auth-form{margin-top:var(--space-5)}.login-form,.auth-form>form{gap:16px;display:grid}.login-form .btn,.auth-form>form>.btn{width:100%}.auth-card-footer{margin-top:var(--space-4);text-align:right}.auth-card-footer-link{color:var(--color-primary);text-decoration:underline}.teacher-metrics-grid{gap:var(--space-4);background:0 0;border:0;grid-template-columns:repeat(4,minmax(0,1fr));display:grid;overflow:visible}.stat-card{align-content:center;gap:var(--space-2);min-height:116px;padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:none;display:grid;position:relative}.stat-card strong{order:1;font-size:1.75rem;line-height:1}.stat-card .muted{order:2;font-size:.8125rem}.stat-card>svg,.stat-card>span:first-child:not(.muted){top:var(--space-4);right:var(--space-4);color:var(--color-primary);position:absolute}.page-header{margin-bottom:var(--space-6)}.page-header .eyebrow,.page-header p{display:none}.page-header h1{letter-spacing:-.02em;font-size:1.5rem}.class-context-nav{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border)}.class-context-top{align-items:center;gap:var(--space-3);display:flex}.class-context-top .page-back-slot{margin:0}.class-title-block{align-items:center;gap:var(--space-3);display:flex}.class-name-heading{letter-spacing:-.02em;margin:0;font-size:1.25rem}.class-code-badge,.auth-class-code{font-family:var(--font-mono), monospace}@media (max-width:800px){.auth-card{padding:24px}.teacher-metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.auth-card{width:calc(100% - 24px)}.teacher-metrics-grid{gap:var(--space-3)}.stat-card{min-height:100px;padding:var(--space-4)}}@keyframes otp-shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}@media (prefers-reduced-motion:reduce){.otp-input-error{animation:none}}.class-section-layout{gap:12px}.class-section-layout>.teacher-content-back{border:0}.student-login-fields{gap:var(--space-4);grid-template-columns:1fr;display:grid}.student-pin-field .otp-input{justify-content:flex-start;gap:6px;width:100%;min-width:0}.student-pin-field .otp-digit{flex:1;min-width:0;max-width:none;min-height:48px;width:auto!important}.auth-card-header.has-context{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.auth-card-header.has-context .auth-card-context{text-align:right;margin-top:0}.auth-form .student-login-submit{background:var(--color-accent);color:var(--color-text-primary)}.auth-form .student-login-submit:hover:not(:disabled){background:var(--color-accent-hover)}@media (max-width:800px){.student-pin-field .otp-input{justify-content:center}.student-pin-field .otp-digit{flex:1}.auth-card-header.has-context{align-items:flex-start}}.landing-principles{gap:var(--space-4);border:0}.landing-principles article,.landing-principles article:last-child{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.landing-preview.card-highlighted{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-primary-foreground)}.landing-preview.card-highlighted div{border-bottom-color:var(--color-primary-hover)}.landing-preview.card-highlighted div:last-child{border-bottom:0}.landing-preview.card-highlighted span{color:var(--color-secondary)}.landing-preview.card-highlighted strong{color:var(--color-primary-foreground)}
