:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#172033;background:#eef2f7;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#eef2f7}button,input,select{font:inherit}button,.file-button{border:1px solid #cbd5e1;background:#fff;color:#172033;min-height:36px;padding:7px 11px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;white-space:nowrap}button:hover,.file-button:hover{border-color:#94a3b8;background:#f8fafc}.primary{background:#2563eb;color:#fff;border-color:#2563eb}.primary:hover{background:#1d4ed8;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}.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}.sidebar{background:#111827;color:#f8fafc;padding:18px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh}.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:8px}.nav-item:hover,.nav-item.active{background:#243044;color:#fff}.status{margin-top:auto;color:#aab4c3;font-size:.82rem}.logout-button{flex:0 0 auto}.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:#fff;border:1px solid #d9e2ee;border-radius:8px;box-shadow:0 1px 2px #0f172a0a}.metric{padding:14px}.detail-pane.maximized{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;border:0;border-radius:0;padding:20px;background:#fff}.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:16px;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)}.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 #d9e2ee;border-radius:8px;background:#f8fafc}.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 #cbd5e1;border-radius:8px;padding:7px 10px;background:#fff;color:#172033}.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}.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:#f8fafc;min-height:48px}.list-row span{color:#64748b;font-size:.86rem}.list-row.active{border-color:#2563eb;background:#eaf1ff}.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:#2563eb;border-color:#2563eb;color:#fff}.chip{border-radius:999px;min-height:32px}.grade-scroll{overflow:auto;border:1px solid #d9e2ee;border-radius:8px}.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 #e2e8f0;border-right:1px solid #e2e8f0;padding:8px 9px;vertical-align:middle;text-align:center}.grade-table th{background:#f1f5f9;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}.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}.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}.seat-grid{display:grid;gap:8px;overflow-x:auto;padding:10px;border:1px solid #d9e2ee;border-radius:8px;background:#f8fafc}.seat-cell{display:grid;min-width:76px;min-height:58px;place-items:center;border:1px dashed #cbd5e1;border-radius:8px;background:#fff}.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-height:48px;justify-items:center;align-content:center;gap:1px;padding:6px 8px;border-color:#bfdbfe;background:#dbeafe;color:#0f172a;cursor:grab;white-space:normal}.student-seat-chip:active{cursor:grabbing}.student-seat-chip strong,.student-seat-chip span{max-width:100%;overflow-wrap:anywhere;line-height:1.1}.student-seat-chip span{color:#475569;font-size:.78rem}.unplaced-panel{display:grid;gap:10px;min-height:96px;padding:10px;border:1px dashed #cbd5e1;border-radius:8px;background:#fff}.unplaced-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}.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:8px;overflow-x:auto;padding:10px;border:1px solid #d9e2ee;border-radius:8px;background:#f8fafc}.oral-seat-cell{display:grid;min-width:170px;min-height:108px;align-items:stretch;border:1px dashed #cbd5e1;border-radius:8px;background:#fff}.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:7px;background:transparent;padding:8px}.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{border:1px solid #d9e2ee;background:#f8fafc;border-radius:8px;padding:12px}.student-card.selected{border-color:#2563eb;background:#eff6ff}.student-card-name{min-height:0;justify-content:flex-start;padding:0;border:0;background:transparent;color:#0f172a;font-weight:900}.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 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}.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(5,minmax(0,1fr))}.nav-item{justify-content:center;flex-direction:column;font-size:.78rem;gap:3px}.status{display:none}.workspace{height:auto;overflow:visible}.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{align-items:stretch;flex-direction:column}}
