:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#15243a;background:#edf3f9;--navy-950: #071426;--navy-900: #0b1f3a;--navy-800: #123158;--blue-700: #1d4ed8;--blue-600: #2563eb;--blue-500: #3b82f6;--blue-100: #dbeafe;--page: #edf3f9;--surface: #ffffff;--surface-muted: #f5f8fc;--surface-raised: #f9fbfd;--text: #15243a;--muted: #64748b;--border: #d7e1ed;--border-strong: #bdcada;--focus: rgb(37 99 235 / .2);--radius-sm: 9px;--radius-md: 13px;--radius-lg: 17px;--shadow-sm: 0 2px 7px rgb(7 20 38 / .06);--shadow-md: 0 10px 28px rgb(7 20 38 / .09), 0 2px 6px rgb(7 20 38 / .05);--shadow-lg: 0 18px 48px rgb(7 20 38 / .14), 0 4px 12px rgb(7 20 38 / .07);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:var(--text);background:radial-gradient(circle at 84% 4%,rgb(59 130 246 / .08),transparent 26rem),linear-gradient(145deg,#f3f7fb 0%,var(--page) 54%,#e8f0f8 100%)}button,input,select{font:inherit}button,.file-button{border:1px solid var(--border-strong);background:var(--surface);color:var(--text);min-height:36px;padding:7px 11px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;white-space:nowrap;box-shadow:0 1px 2px #0714260a;transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}button:hover,.file-button:hover{border-color:#9fb0c5;background:var(--surface-muted);box-shadow:var(--shadow-sm)}button:focus-visible,.file-button:focus-within,input:focus-visible,select:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.primary{background:linear-gradient(180deg,var(--blue-500),var(--blue-600));color:#fff;border-color:#2563eb}.primary:hover{background:linear-gradient(180deg,var(--blue-600),var(--blue-700));border-color:#1d4ed8}.danger{color:#b91c1c;border-color:#fecaca}.danger:hover{color:#991b1b;border-color:#fca5a5;background:#fff1f2}.icon{width:38px;padding:0}.student-name-with-cake{display:inline-flex;align-items:center;gap:5px;min-width:0;max-width:100%}.student-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.birthday-cake-icon{flex:0 0 auto;color:#b45309;stroke-width:2.4}.student-card .student-name-with-cake,.student-seat-chip .student-name-with-cake{display:inline-flex}.student-name-link{min-height:0;padding:0;border:0;background:transparent;color:inherit;font-weight:inherit;justify-content:flex-start;white-space:normal}.student-name-link:hover{color:#2563eb;background:transparent}.file-button input{display:none}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);height:100vh;overflow:hidden}.app-shell.course-maximized{grid-template-columns:minmax(0,1fr);height:100vh;overflow:hidden}.app-shell.course-maximized .sidebar{display:none}.app-shell.course-maximized .workspace{height:100vh;overflow:hidden;padding:0}.sidebar{background:linear-gradient(180deg,rgb(37 99 235 / .11),transparent 34%),linear-gradient(165deg,var(--navy-800),var(--navy-950) 68%);color:#f8fafc;padding:18px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh;box-shadow:8px 0 30px #0714261f;z-index:2}.brand{display:flex;align-items:center;gap:12px}.brand strong,.brand span{display:block}.brand span{color:#aab4c3;font-size:.86rem}.sidebar nav{display:grid;gap:6px}.nav-item{border:0;justify-content:flex-start;background:transparent;color:#dbe4f0;min-height:42px;border-radius:10px;box-shadow:none}.nav-item:hover,.nav-item.active{background:#60a5fa29;color:#fff}.nav-item.active{box-shadow:inset 3px 0 #60a5fa,0 6px 16px #0000001f}.nav-item.backup-overdue{border:1px solid #fca5a5;color:#fff;animation:backup-reminder-blink 1.2s ease-in-out infinite}@keyframes backup-reminder-blink{0%,to{background:#7f1d1d;box-shadow:0 0 #ef444400}50%{background:#ef4444;box-shadow:0 0 14px #ef4444d9}}.status{margin-top:auto;color:#aab4c3;font-size:.82rem}.logout-button{flex:0 0 auto}.backup-last-export{margin:5px 0 0;color:#64748b}.backup-due-badge{flex:0 0 auto;padding:7px 10px;border-radius:999px;background:#fee2e2;color:#991b1b;font-size:.82rem;font-weight:800}.version-history-panel h2{display:flex;align-items:center;gap:8px}.version-history-panel .panel-title-row p{margin:4px 0 0;color:#64748b}.version-list{display:grid;gap:9px;margin-top:14px}.version-row{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(300px,1.5fr) auto;align-items:center;gap:12px;padding:11px 12px;border:1px solid #d9e2ee;border-radius:9px;background:#fff}.version-row.current{border-color:#86efac;background:#f0fdf4}.version-main{display:flex;align-items:center;flex-wrap:wrap;gap:5px 8px}.version-main>span:not(.version-current-badge){color:#64748b;font-size:.84rem}.version-current-badge{padding:3px 7px;border-radius:999px;background:#dcfce7;color:#166534;font-size:.75rem;font-weight:800}.version-counts{display:flex;flex-wrap:wrap;gap:5px 12px;color:#475569;font-size:.84rem}.version-actions{flex-wrap:nowrap}@media(max-width:1000px){.version-row{grid-template-columns:1fr}.version-actions{justify-content:flex-start}}@media(prefers-reduced-motion:reduce){.nav-item.backup-overdue{animation:none;background:#b91c1c}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:#f1f5f9}.login-card{width:min(100%,420px);display:grid;gap:18px;justify-items:start;padding:28px;border:1px solid #d9e2ee;border-radius:12px;background:#fff;box-shadow:0 12px 36px #0f172a1a}.login-card>svg{color:#2563eb}.login-card h1,.login-card p{margin:0}.login-card h1{margin-bottom:6px}.login-card>div>p:last-child{color:#64748b}.login-form{width:100%;display:grid;gap:14px}.login-form label{display:grid;gap:6px;color:#475569;font-size:.86rem;font-weight:700}.login-form input{min-height:42px;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;font:inherit}.login-form input:focus{border-color:#2563eb;outline:3px solid rgb(37 99 235 / .14)}.login-message{color:#b91c1c;font-weight:700}.login-status{color:#475569;font-weight:650}.login-trust-device{grid-template-columns:auto 1fr!important;align-items:center;font-weight:650!important}.security-settings .panel-title-row p,.security-form p,.two-factor-enrollment p,.backup-code-panel p{margin:4px 0 0;color:#64748b}.security-state{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;padding:7px 10px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.82rem;font-weight:800}.security-state.active{background:#dcfce7;color:#166534}.security-form{display:grid;gap:10px;align-content:start;max-width:520px;padding:14px;border:1px solid #d9e2ee;border-radius:8px;background:#f8fafc}.security-form h3,.backup-code-panel h3,.two-factor-enrollment h3{margin:0}.security-form label{display:grid;gap:5px;color:#475569;font-size:.82rem;font-weight:700}.security-form input{min-height:38px;border:1px solid #cbd5e1;border-radius:8px;padding:7px 10px;background:#fff;font:inherit}.two-factor-enrollment,.security-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.two-factor-enrollment>div,.backup-code-panel{padding:14px;border:1px solid #d9e2ee;border-radius:8px;background:#f8fafc}.totp-qr-code{display:block;width:240px;max-width:100%;margin:14px 0;border-radius:8px}.totp-secret{display:block;overflow-wrap:anywhere;padding:8px;border-radius:6px;background:#e2e8f0;font-size:.78rem}.backup-code-panel{margin-top:14px;border-color:#93c5fd;background:#eff6ff}.backup-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:12px 0}.backup-code-grid code{padding:7px 9px;border-radius:6px;background:#fff;text-align:center;font-weight:800}.danger-zone{border-color:#fecaca;background:#fef2f2}.workspace{height:100vh;min-width:0;overflow:hidden;padding:20px}.page{max-width:1440px;margin:0 auto}.page-header,.pane-header,.panel-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.page-header h1,.pane-header h1{margin:0;font-size:1.9rem}.page-header.compact h1{font-size:1.45rem}.eyebrow{margin:0 0 2px;color:#64748b;font-weight:700;text-transform:uppercase;font-size:.74rem}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;margin-bottom:16px}.metric,.panel,.list-pane,.detail-pane{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.metric{position:relative;overflow:hidden;padding:16px;background:linear-gradient(145deg,var(--surface),var(--surface-raised))}.metric:before{position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--blue-600),#60a5fa);content:""}.detail-pane.maximized{position:relative;width:100%;height:100vh;border:0;border-radius:0;padding:20px;overflow:auto;background:var(--surface);box-shadow:none}.metric span{display:block;color:#64748b;font-size:.86rem}.metric strong{font-size:1.8rem}.metric.red strong{color:#dc2626}.metric.green strong{color:#16a34a}.panel{padding:18px;margin-bottom:14px}.panel h2,.panel h3{margin:0 0 12px}.status-message{margin:10px 0 0;border:1px solid #bbf7d0;border-radius:6px;background:#f0fdf4;color:#166534;font-weight:700;padding:8px 10px}.panel-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.action-list{display:grid;gap:8px}.action-list button{justify-content:flex-start}.split-page{display:grid;grid-template-columns:330px minmax(0,1fr);gap:14px;height:calc(100vh - 40px);max-width:none;min-height:0}.split-page.wide{grid-template-columns:290px minmax(0,1fr)}.split-page.maximized,.split-page.wide.maximized{grid-template-columns:minmax(0,1fr);gap:0;width:100%;height:100vh}.split-page.maximized>.list-pane{display:none}.list-pane,.detail-pane{min-width:0;min-height:0;overflow:auto;padding:14px}.list{display:grid;gap:7px}.inline-form{display:grid;gap:10px;padding:12px;margin:0 0 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);box-shadow:inset 0 1px #ffffffd9}.inline-form label{display:grid;gap:5px;color:#475569;font-size:.82rem;font-weight:700}.inline-form input,.inline-form select{min-height:36px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:7px 10px;background:var(--surface);color:var(--text);box-shadow:inset 0 1px 2px #0714260a}.inline-form input:focus,.inline-form select:focus{border-color:#2563eb;outline:3px solid rgb(37 99 235 / .14)}.detail-inline-form{margin-top:-2px;margin-bottom:12px;max-width:520px}.student-assignment-form{max-width:720px}.assessment-form{grid-template-columns:minmax(220px,2fr) minmax(150px,1fr) minmax(170px,1fr) minmax(150px,1fr);align-items:end}.assessment-form .button-row{grid-column:1 / -1}.student-master-form{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));align-items:end}.student-master-form .button-row{grid-column:1 / -1}.category-form{grid-template-columns:minmax(220px,1fr) minmax(120px,160px) minmax(90px,120px);align-items:end}.category-form .button-row{grid-column:1 / -1}.category-form input[type=color]{width:100%;padding:4px}.task-form{grid-template-columns:minmax(180px,1fr) minmax(120px,160px);align-items:end}.task-form .button-row{grid-column:1 / -1}.form-note{margin:0;color:#64748b}.assignment-summary{color:#64748b;font-size:.86rem;font-weight:700}.check-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:7px;max-height:340px;overflow:auto;padding:2px}.check-row{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:center;gap:9px;padding:8px;border:1px solid #d9e2ee;border-radius:8px;background:#fff;color:#172033;font-size:.9rem}.check-row.checked{border-color:#86efac;background:#f0fdf4}.check-row input{width:16px;height:16px}.check-row span,.check-row strong,.check-row small{min-width:0}.check-row strong,.check-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.check-row small{margin-top:1px;color:#64748b;font-size:.78rem}.table-input{width:100%;min-width:56px;border:1px solid transparent;border-radius:6px;background:transparent;padding:6px 7px;text-align:center;color:#172033}.table-input:hover,.table-input:focus{border-color:#93c5fd;background:#eff6ff;outline:0}.grade-picker{width:100%;min-width:62px;min-height:34px;border:1px solid #cbd5e1;border-radius:7px;background:#fff;color:#172033;font-weight:800;text-align:center;text-align-last:center}.grade-picker:focus{border-color:#2563eb;outline:2px solid rgba(37,99,235,.18)}.task-tile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:10px 0 12px}.task-tile{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border:1px solid #d9e2ee;border-radius:8px;background:#f8fafc;padding:8px}.task-tile strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-points{grid-column:1 / -1}.number-cell{width:100%;min-height:34px;justify-content:center;border-color:#cbd5e1;background:#fff;font-weight:800}.number-cell:hover,.number-cell:focus{border-color:#2563eb;background:#eff6ff}.score-cell{min-width:64px}.task-tile .compact{min-height:30px;padding:0 8px}.list-row{width:100%;justify-content:flex-start;align-items:flex-start;text-align:left;flex-direction:column;gap:2px;border-color:transparent;background:var(--surface-muted);min-height:48px}.list-row:hover{border-color:#bfd0e4;background:#eef5fc;transform:translateY(-1px)}.list-row span{color:#64748b;font-size:.86rem}.list-row.active{border-color:var(--blue-500);background:linear-gradient(135deg,#eaf2ff,#f4f8ff);box-shadow:inset 3px 0 0 var(--blue-600),var(--shadow-sm)}.list-row.static{cursor:default}.category-row{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:center;min-height:54px}.category-row>span:last-child{display:grid;gap:2px}.category-row small{color:#64748b;font-size:.82rem;font-weight:700}.category-swatch{width:20px;height:20px;border:1px solid rgba(15,23,42,.14);border-radius:999px}.button-row,.chip-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.info-grid div{background:#f8fafc;padding:10px;border-radius:8px}.info-grid span,.info-grid strong{display:block}.info-grid span{color:#64748b;font-size:.82rem}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.tabs button.active,.chip.active,.letter-grid button.active{background:linear-gradient(180deg,var(--blue-500),var(--blue-600));border-color:var(--blue-600);color:#fff}.chip{border-radius:999px;min-height:32px}.grade-scroll{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.grade-overview-scroll{max-height:min(70vh,720px)}.grade-table{width:100%;border-collapse:collapse;min-width:720px}.grade-table.compact{min-width:0}.grade-table th,.grade-table td{border-bottom:1px solid #dfe7f0;border-right:1px solid #dfe7f0;padding:8px 9px;vertical-align:middle;text-align:center}.grade-table th{background:linear-gradient(180deg,#f5f8fc,#eaf0f7);color:#253b58;font-size:.82rem;position:sticky;top:0;z-index:1}.grade-table th.section-separator,.grade-table td.section-separator,.grade-table th.average-start-separator,.grade-table td.average-start-separator,.grade-table th.total-separator,.grade-table td.total-separator{border-left:4px solid #0f172a}.grade-table th.average-end-separator,.grade-table td.average-end-separator,.grade-table th.total-end-separator,.grade-table td.total-end-separator{border-right:4px solid #0f172a}.stacked-header{display:grid;gap:2px;justify-items:center;line-height:1.12}.stacked-header strong{font-weight:800}.stacked-header span{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.stacked-header small{color:#64748b;font-size:.72rem;font-weight:650}.grade-table td:first-child,.grade-table th:first-child,.grade-table td:nth-child(2),.grade-table th:nth-child(2){text-align:left}.assessment-score-table th:not(:first-child),.assessment-score-table td:not(:first-child){text-align:center}.assessment-score-scroll{max-height:min(70vh,720px);scroll-margin-top:14px}.assessment-score-table th:first-child,.assessment-score-table td:first-child{position:sticky;left:0;min-width:190px;background:#fff;box-shadow:2px 0 #e2e8f0;z-index:2}.assessment-score-table thead th{z-index:3}.assessment-score-table thead th:first-child{background:#f1f5f9;z-index:4}.assessment-grade-summary{margin-top:16px}.assessment-grade-summary h4{margin:0 0 8px}.assessment-grade-summary-scroll{max-width:100%}.assessment-grade-summary-table th,.assessment-grade-summary-table td{min-width:88px;text-align:center}.assessment-grade-summary-table th:last-child,.assessment-grade-summary-table td:last-child{min-width:140px}.task-column-header{display:grid;justify-items:center;gap:2px;line-height:1.05}.task-column-header strong{font-size:1rem;font-weight:900}.task-column-header small{color:#0f172a;font-size:.72rem;font-weight:750}.grade-table td{cursor:default}.report-grade-button{min-width:52px;min-height:32px;padding:2px 4px;border-color:transparent;background:transparent;font-weight:800}.report-grade-button:hover{border-color:#93c5fd;background:#eff6ff}.table-panel{padding:12px}.two-column{display:grid;grid-template-columns:280px minmax(0,1fr);gap:12px;min-height:0;overflow:hidden}.list-column{display:grid;align-content:start;gap:8px;min-height:0;overflow:auto}.two-column>:not(.list-column){min-width:0;min-height:0;overflow:auto}.panel>.two-column{height:calc(100vh - 190px)}.list-column-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.compact-list{align-content:start}.badge{background:#e2e8f0;border-radius:999px;padding:3px 8px;font-size:.78rem;font-weight:700}.assessment-meta{min-height:0;margin-top:4px;padding:0;border:0;background:transparent;color:#64748b;font-size:.84rem;font-weight:700}.assessment-meta:hover,.assessment-meta:focus{color:#2563eb;background:transparent}.assessment-meta span:not(:last-child):after{content:"·";margin:0 6px;color:#94a3b8}.grade-scale-editor{display:grid;gap:10px;margin:0 0 14px;padding:12px;border:1px solid #d9e2ee;border-radius:8px;background:#f8fafc}.boundary-table{width:100%;border-collapse:collapse;overflow:hidden;border:1px solid #d9e2ee;border-radius:8px;background:#fff;font-size:.82rem}.boundary-table th,.boundary-table td{padding:6px 8px;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;text-align:center}.boundary-table th{width:92px;background:#f1f5f9;color:#475569;text-align:left}.boundary-table tr:last-child th,.boundary-table tr:last-child td{border-bottom:0}.boundary-table tr:first-child th,.boundary-table tr:first-child td{font-weight:800}.scale-bar{display:flex;gap:0;min-height:46px;overflow:hidden;border:1px solid #d9e2ee;border-radius:8px;background:#fff}.scale-bar-group{display:contents}.scale-segment{display:grid;place-items:center;align-content:center;gap:2px;min-width:36px;color:#172033;font-weight:500;line-height:1.05}.scale-distance{display:grid;grid-template-columns:auto auto auto;place-items:center;align-content:center;gap:2px;width:46px;min-width:42px;padding:0 3px;border-left:1px solid rgba(15,23,42,.08);border-right:1px solid rgba(15,23,42,.08);background:#ffffffad;color:#475569;font-size:.62rem;line-height:1}.scale-distance span{color:#64748b;font-size:.58rem}.scale-distance strong{font-size:.62rem;font-weight:600}.scale-bar .scale-segment>strong{font-size:.9rem;font-weight:650}.scale-bar small{font-size:.68rem;font-weight:500;color:#334155}.note-grade-1{background:#dcfce7}.note-grade-2{background:#bbf7d0}.note-grade-3{background:#fef9c3}.note-grade-4{background:#fed7aa}.note-grade-5{background:#fecaca}.note-grade-6{background:#e5e7eb}.grade-badge{display:inline-grid;place-items:center;min-width:42px;min-height:26px;padding:3px 9px;border:1px solid rgba(15,23,42,.08);border-radius:7px;color:#172033;font-weight:800}.sum-cell{display:inline-flex;align-items:baseline;justify-content:center;gap:6px}.sum-cell strong{font-weight:700}.sum-cell small{color:#2563eb;font-size:.72rem;font-weight:800}.toggle-line{display:inline-flex;align-items:center;gap:8px;color:#475569;font-size:.9rem;font-weight:700}.scale-slider{display:grid;gap:6px;color:#475569;font-size:.86rem;font-weight:700}.scale-slider input{width:100%;accent-color:#2563eb}.number-pad-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;align-items:end;justify-items:center;padding:18px;background:#0f172a2e}.sync-lock-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:20px;background:#0f172a94;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.sync-lock-dialog{width:min(640px,calc(100vw - 40px));max-height:calc(100vh - 40px);overflow:auto;display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;border:2px solid #f59e0b;border-radius:16px;background:#fff;box-shadow:0 28px 90px #0f172a61;padding:22px}.sync-lock-dialog>svg{color:#b45309}.sync-lock-dialog h2{margin:2px 0 8px}.sync-lock-dialog p{margin:0}.sync-lock-meta{margin-top:10px!important;color:#64748b;font-weight:700}.sync-lock-actions,.sync-lock-dialog>.status-message{grid-column:1 / -1}.sync-lock-actions{justify-content:flex-end}@media(max-width:640px){.sync-lock-dialog{grid-template-columns:1fr}.sync-lock-dialog>svg{margin-bottom:-6px}.sync-lock-actions,.sync-lock-dialog>.status-message{grid-column:1}}.number-pad{width:min(720px,calc(100vw - 36px));max-height:min(620px,calc(100vh - 36px));overflow:auto;border:1px solid #cbd5e1;border-radius:14px;background:#fff;box-shadow:0 24px 70px #0f172a3d;padding:14px}.number-pad header,.number-pad footer{display:flex;align-items:center;justify-content:space-between;gap:10px}.number-pad header{margin-bottom:12px}.number-pad header strong,.number-pad header span{display:block}.number-pad header span{margin-top:2px;color:#64748b;font-size:.86rem}.number-pad header button{width:42px;min-height:42px;padding:0;font-size:1.35rem;font-weight:700}.number-pad-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}.number-pad-grid.compact{grid-template-columns:repeat(2,minmax(100px,1fr))}.number-pad-grid button{min-height:58px;border-radius:10px;font-size:1.2rem;font-weight:800}.number-pad-grid button.recommended{border-color:#16a34a;border-width:3px;background:#f0fdf4;box-shadow:inset 0 0 0 1px #16a34a38}.number-pad-grid button:disabled{opacity:.35;cursor:default}.grade-pad{width:min(620px,calc(100vw - 36px))}.grade-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:9px}.grade-choice-grid button{min-height:58px;border-radius:10px;color:#172033;font-size:1.18rem;font-weight:900}.number-pad-step{display:grid;gap:10px}.number-pad-step p{margin:0;color:#475569;font-weight:800}.number-pad footer{margin-top:12px;justify-content:flex-end}.seat-plan-detail{display:grid;gap:12px;min-width:0}.panel-toolbar,.oral-zoom-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:10px}.oral-zoom-toolbar{margin:-2px 0 10px}.workspace-zoom-control{display:grid;grid-template-columns:auto minmax(120px,220px) 58px;align-items:center;gap:9px;color:#405571;font-size:.82rem;font-weight:800}.workspace-zoom-control input{width:100%;margin:0;padding:0;accent-color:var(--blue-600)}.workspace-zoom-control output{color:var(--navy-800);text-align:right;font-variant-numeric:tabular-nums}.zoom-surface{--workspace-zoom: 1;touch-action:pan-x pan-y;font-size:calc(1rem * var(--workspace-zoom))}.seat-grid{display:grid;gap:calc(8px * var(--workspace-zoom));overflow-x:auto;padding:calc(10px * var(--workspace-zoom));border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted);box-shadow:inset 0 1px 2px #0714260a}.seat-cell{display:grid;min-width:76px;min-height:calc(58px * var(--workspace-zoom));place-items:center;border:1px dashed #cbd5e1;border-radius:calc(8px * var(--workspace-zoom));background:var(--surface)}.seat-cell.occupied{border-style:solid;border-color:#93c5fd;background:#eff6ff}.seat-placeholder{color:#94a3b8;font-size:.78rem;font-weight:800}.student-seat-chip{display:grid;width:100%;min-width:0;min-height:calc(48px * var(--workspace-zoom));justify-items:center;align-content:center;gap:calc(1px * var(--workspace-zoom));padding:calc(6px * var(--workspace-zoom)) calc(8px * var(--workspace-zoom));border-color:#bfdbfe;background:#dbeafe;color:#0f172a;cursor:grab;overflow:hidden;white-space:nowrap}.student-seat-chip:active{cursor:grabbing}.student-seat-chip strong,.student-seat-chip>span{display:block;width:100%;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.1}.student-seat-chip>span{color:#475569;font-size:calc(.78rem * var(--workspace-zoom))}.student-seat-chip .student-name-with-cake{width:100%;justify-content:center}.unplaced-panel{display:grid;gap:10px;min-height:96px;padding:calc(10px * var(--workspace-zoom));border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface)}.unplaced-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(calc(130px * var(--workspace-zoom)),1fr));gap:calc(8px * var(--workspace-zoom))}.letter-grid{display:grid;grid-template-columns:repeat(9,minmax(34px,1fr));gap:6px;margin:10px 0}.letter-grid button{min-height:30px;padding:0 4px}.student-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.seat-plan-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.seat-plan-chip-row button{min-height:30px;padding:0 12px}.oral-seat-grid{display:grid;gap:calc(8px * var(--workspace-zoom));overflow-x:auto;padding:calc(10px * var(--workspace-zoom));border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-muted)}.oral-seat-cell{display:grid;min-width:170px;min-height:calc(108px * var(--workspace-zoom));align-items:stretch;border:1px dashed #cbd5e1;border-radius:calc(8px * var(--workspace-zoom));background:var(--surface)}.oral-seat-cell.occupied{border-style:solid;border-color:#bfdbfe;background:#eff6ff}.oral-seat-cell.empty{background:#fff}.oral-seat-cell .seat-placeholder{place-self:center}.oral-seat-cell .student-card{border:0;border-radius:calc(7px * var(--workspace-zoom));background:transparent;padding:calc(8px * var(--workspace-zoom))}.oral-student-grid{grid-template-columns:repeat(auto-fit,minmax(calc(220px * var(--workspace-zoom)),1fr));gap:calc(10px * var(--workspace-zoom))}.oral-unseated-panel{display:grid;gap:10px;margin-top:12px;padding:10px;border:1px dashed #cbd5e1;border-radius:8px;background:#fff}.oral-detail{min-width:0}.oral-title-row{align-items:flex-start}.oral-period-meta{margin:4px 0 0;color:#64748b;font-size:.86rem;font-weight:800}.date-slider{display:grid;min-width:280px;gap:6px;color:#475569;font-size:.86rem;font-weight:800}.date-slider input{width:100%}.oral-edit-form{grid-template-columns:minmax(220px,1.4fr) minmax(180px,1fr) minmax(110px,.45fr);align-items:start;margin:10px 0}.oral-edit-column{display:grid;align-content:start;gap:10px}.oral-edit-column label{min-width:0}.oral-edit-dates{grid-column:1}.oral-edit-steps{grid-column:2}.oral-edit-include{grid-column:3;justify-items:end}.oral-edit-form .checkbox-field{display:grid;align-content:start;justify-items:end;gap:5px;min-height:0;font-weight:800;white-space:nowrap}.oral-edit-form .checkbox-field input{width:auto;margin:0}.oral-step-slider{display:grid;gap:5px}.oral-step-slider span{display:flex;justify-content:space-between}.oral-step-slider input{width:100%;padding:0}.oral-period-warning{margin:10px 0;border:1px solid #fca5a5;background:#fee2e2;color:#991b1b;border-radius:8px;padding:10px 12px;font-weight:900}.student-card{min-width:0;overflow:hidden;border:1px solid var(--border);background:linear-gradient(145deg,var(--surface),var(--surface-muted));border-radius:var(--radius-sm);padding:calc(12px * var(--workspace-zoom, 1));box-shadow:var(--shadow-sm)}.student-card.selected{border-color:#2563eb;background:#eff6ff}.student-card-name{width:100%;min-width:0;overflow:hidden;min-height:0;justify-content:flex-start;padding:0;border:0;background:transparent;color:#0f172a;font-weight:900;white-space:nowrap;box-shadow:none}.student-card-name:hover{color:#2563eb}.student-card-meta-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;margin-top:2px}.reset-day-button{width:24px;min-height:24px;padding:0}.reset-day-button:disabled{opacity:.35}.student-card strong,.student-card span{display:block}.student-card .student-name-with-cake{display:flex;width:100%}.student-card .student-name-text{color:inherit;font-size:inherit;margin:0}.student-card span{color:#64748b;font-size:.88rem;margin-bottom:8px}.student-card-meta-row span{margin-bottom:0}.mark-grid{display:grid;gap:6px}.mark-grid div{display:grid;grid-template-columns:28px repeat(3,1fr);gap:5px;align-items:center}.mark-grid button{display:grid;grid-template-rows:1fr auto;gap:1px;min-height:30px;padding:0}.zoom-surface .mark-grid{gap:calc(6px * var(--workspace-zoom))}.zoom-surface .mark-grid div{grid-template-columns:calc(28px * var(--workspace-zoom)) repeat(3,1fr);gap:calc(5px * var(--workspace-zoom))}.zoom-surface .mark-grid button,.zoom-surface .compact-mark-grid button{min-height:calc(30px * var(--workspace-zoom))}.zoom-surface .student-card span{font-size:calc(.88rem * var(--workspace-zoom));margin-bottom:calc(8px * var(--workspace-zoom))}.zoom-surface .student-card-meta-row span,.zoom-surface .student-card .student-name-text{margin-bottom:0}.mark-grid button strong{line-height:1}.mark-grid button span{min-height:10px;color:#2563eb;font-size:.68rem;font-weight:900;line-height:1}.compact-mark-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:8px}.compact-mark-grid button{display:grid;grid-template-rows:1fr auto;min-height:34px;padding:3px}.compact-mark-grid button span{min-height:10px;color:#2563eb;font-size:.68rem;font-weight:900;line-height:1}.oral-chart{margin-top:12px;border:1px solid #d9e2ee;background:#fff;border-radius:8px;padding:12px}.oral-chart .panel-title-row{margin-bottom:8px}.oral-chart svg{width:100%;max-height:280px}.chart-grid-line{stroke:#e2e8f0;stroke-width:1}.chart-axis-label{fill:#64748b;font-size:12px;font-weight:800;text-anchor:middle}.chart-line{fill:none;stroke:#2563eb;stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.chart-point{fill:#2563eb;stroke:#fff;stroke-width:2}.signature-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;background:#fff;border:1px solid #d9e2ee;border-radius:8px;padding:12px}.signature-card.expanded{border-color:#93c5fd;background:#f8fbff}.signature-summary{justify-content:flex-start;min-height:0;padding:0;border:0;background:transparent;text-align:left;white-space:normal}.signature-summary:hover{background:transparent;border-color:transparent}.signature-summary strong,.signature-summary small,.signature-card span{display:block}.signature-summary small{color:#64748b;font-size:.86rem;font-weight:700}.signature-card .signature-complete{border-color:#bbf7d0;background:#dcfce7}.signature-details{grid-column:1 / -1}.signature-table{overflow:hidden;border:1px solid #d9e2ee;border-radius:8px}.signature-table th,.signature-table td{text-align:center}.signature-table th:first-child,.signature-table td:first-child{text-align:left}.signature-student-row{cursor:pointer}.signature-student-row:hover{background:#eff6ff}.signature-student-row.inactive{cursor:default;color:#94a3b8}.signature-check{width:34px;min-height:30px;padding:0;border-color:#cbd5e1;font-size:1rem;font-weight:900}.signature-check.active{border-color:#16a34a;background:#dcfce7;color:#166534}.empty{min-height:160px;display:grid;place-items:center;color:#64748b;border:1px dashed #cbd5e1;border-radius:8px;background:#f8fafc}@media(max-width:980px){.app-shell{grid-template-columns:1fr;height:auto;min-height:100vh;overflow:visible}.sidebar{position:static;height:auto;padding:12px}.sidebar nav{grid-template-columns:repeat(6,minmax(0,1fr))}.nav-item{justify-content:center;flex-direction:column;font-size:.78rem;gap:3px}.status{display:none}.workspace{height:auto;overflow:visible}.app-shell.course-maximized,.app-shell.course-maximized .workspace,.app-shell.course-maximized .split-page.maximized,.app-shell.course-maximized .detail-pane.maximized{height:100vh;max-height:100vh;overflow:hidden}.app-shell.course-maximized .detail-pane.maximized{overflow:auto}.split-page,.split-page.wide,.two-column,.panel-grid{grid-template-columns:1fr}.split-page,.list-pane,.detail-pane,.two-column,.list-column,.two-column>:not(.list-column),.panel>.two-column{height:auto;max-height:none;overflow:visible}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-factor-enrollment,.security-actions{grid-template-columns:1fr}}@media(max-width:640px){.workspace,.detail-pane.maximized{padding:10px}.sidebar nav{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid,.info-grid{grid-template-columns:1fr}.page-header,.pane-header,.panel-title-row,.signature-card,.panel-toolbar,.oral-zoom-toolbar{align-items:stretch;flex-direction:column}.workspace-zoom-control{grid-template-columns:minmax(74px,auto) minmax(90px,1fr) 54px;width:100%}}
