*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100vh;line-height:1.5;text-rendering:optimizeSpeed;font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text-main);-webkit-font-smoothing:antialiased}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;border:none;background:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}table{border-collapse:collapse;width:100%}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--color-bg: #f0f7ff;--color-surface: #ffffff;--color-surface-hover: #e6f2fd;--color-surface-muted: #f4f9ff;--color-border: #cfe2f5;--color-border-hover: #b4d3f2;--color-border-focus: #0284c7;--color-text-main: #0c2340;--color-text-muted: #2d4665;--color-text-subtle: #527397;--color-text-inverse: #ffffff;--color-primary: #0284c7;--color-primary-hover: #0369a1;--color-primary-dark: #0c4a6e;--color-primary-light: #e0f2fe;--color-primary-subtle: #f0f9ff;--color-navy: #1e3a8a;--color-navy-dark: #172554;--color-navy-light: #dbeafe;--color-accent: #38bdf8;--color-accent-hover: #0ea5e9;--color-accent-light: #e0f2fe;--color-accent-subtle: #f0f9ff;--color-accent-border: #bae6fd;--color-success: #15803d;--color-success-bg: #dcfce7;--color-success-border: #86efac;--color-warning: #b45309;--color-warning-bg: #fef3c7;--color-warning-border: #fcd34d;--color-danger: #b91c1c;--color-danger-bg: #fee2e2;--color-danger-border: #fca5a5;--color-info: #0284c7;--color-info-bg: #e0f2fe;--color-info-border: #7dd3fc;--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(12, 35, 64, .04);--shadow-sm: 0 1px 3px 0 rgba(12, 35, 64, .06), 0 1px 2px -1px rgba(12, 35, 64, .04);--shadow-md: 0 4px 6px -1px rgba(12, 35, 64, .07), 0 2px 4px -2px rgba(12, 35, 64, .04);--shadow-lg: 0 10px 15px -3px rgba(12, 35, 64, .09), 0 4px 6px -4px rgba(12, 35, 64, .03);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .2s cubic-bezier(.4, 0, .2, 1);--focus-ring: 0 0 0 3px rgba(2, 132, 199, .25)}.app-container{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{color:var(--color-text-main);font-weight:700;line-height:1.25}p{color:var(--color-text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:600;font-size:var(--text-sm);padding:.625rem 1.125rem;min-height:42px;border-radius:var(--radius-md);transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);border:1.5px solid transparent;-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn:disabled{opacity:.55;cursor:not-allowed;pointer-events:none}.btn-primary{background-color:var(--color-primary);color:var(--color-text-inverse);box-shadow:0 1px 2px #1e3a8a26}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary{background-color:var(--color-surface);color:var(--color-text-main);border-color:var(--color-border)}.btn-secondary:hover:not(:disabled){background-color:var(--color-surface-hover);border-color:var(--color-border-hover)}.btn-outline{background-color:transparent;color:var(--color-primary);border-color:var(--color-primary)}.btn-outline:hover:not(:disabled){background-color:var(--color-primary-subtle)}.btn-warning{background-color:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning-border)}.btn-warning:hover:not(:disabled){background-color:#fde68a}.btn-danger{background-color:var(--color-danger);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){background-color:#991b1b}.btn-sm{min-height:34px;padding:.35rem .75rem;font-size:var(--text-xs)}.btn-lg{min-height:48px;padding:.75rem 1.75rem;font-size:var(--text-base)}.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.25rem}.form-label{font-size:var(--text-sm);font-weight:600;color:var(--color-text-main)}.form-label .required{color:var(--color-danger);margin-left:.25rem}.form-input,.form-select,.form-textarea{width:100%;padding:.65rem .95rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-main);font-size:var(--text-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:var(--focus-ring)}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-text-subtle)}.form-input.is-error,.form-textarea.is-error{border-color:var(--color-danger)}.form-error{font-size:var(--text-xs);font-weight:500;color:var(--color-danger);margin-top:.25rem}.form-helper{font-size:var(--text-xs);color:var(--color-text-subtle);margin-top:.25rem}.badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .65rem;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;line-height:1}.badge-neutral{background-color:var(--color-surface-muted);color:var(--color-text-muted);border:1px solid var(--color-border)}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary);border:1px solid var(--color-accent-border)}.badge-success{background-color:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border)}.badge-warning{background-color:var(--color-warning-bg);color:var(--color-warning);border:1px solid var(--color-warning-border)}.badge-danger{background-color:var(--color-danger-bg);color:var(--color-danger);border:1px solid var(--color-danger-border)}.badge-info{background-color:var(--color-info-bg);color:var(--color-info);border:1px solid var(--color-info-border)}.card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;box-shadow:var(--shadow-xs)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000;opacity:1;transition:opacity var(--transition-normal)}.modal-card{background-color:var(--color-surface);border-radius:var(--radius-xl);border:1px solid var(--color-border);box-shadow:var(--shadow-lg);width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{padding:1.25rem 1.75rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:var(--text-lg);font-weight:700;color:var(--color-text-main)}.modal-body{padding:1.75rem;overflow-y:auto}.modal-footer{padding:1.125rem 1.75rem;border-top:1px solid var(--color-border);background-color:var(--color-surface-muted);display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;display:flex;flex-direction:column;gap:.5rem;z-index:2000;pointer-events:none}.toast{pointer-events:auto;min-width:280px;max-width:420px;padding:.95rem 1.35rem;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:500;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:.75rem;background-color:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-main);animation:toast-in .2s ease-out}.toast-success{border-left:4px solid var(--color-success)}.toast-warning{border-left:4px solid var(--color-warning)}.toast-error{border-left:4px solid var(--color-danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.empty-state{text-align:center;padding:3rem 1.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center}.empty-state-icon{width:48px;height:48px;color:var(--color-text-subtle);margin-bottom:1rem}.empty-state-title{font-size:var(--text-base);font-weight:700;color:var(--color-text-main);margin-bottom:.25rem}.empty-state-desc{font-size:var(--text-sm);color:var(--color-text-muted);max-width:340px;margin-bottom:1.25rem;line-height:1.5}.student-portal{min-height:100vh;display:flex;flex-direction:column;background-color:var(--color-bg)}.student-navbar{height:64px;background-color:var(--color-surface);border-bottom:2px solid var(--color-accent-border);padding:0 1.75rem;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-xs)}.student-navbar-brand{display:flex;align-items:center;gap:.875rem}.student-logo-img{height:38px;width:auto;max-width:175px;object-fit:contain;display:block}.student-school-badge{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-primary);background-color:var(--color-primary-light);border:1px solid var(--color-accent-border);padding:.25rem .625rem;border-radius:var(--radius-xs)}.student-app-title{font-size:var(--text-base);font-weight:700;color:var(--color-text-main);letter-spacing:-.01em}.student-link-teacher{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:600;padding:.5rem .875rem;border-radius:var(--radius-md);border:1px solid transparent;transition:all var(--transition-fast)}.student-link-teacher:hover{color:var(--color-primary);background-color:var(--color-primary-subtle);border-color:var(--color-primary-light)}.student-content-container{flex:1;display:flex;align-items:center;justify-content:center;padding:2.5rem 1.25rem}.student-card-wrapper{width:100%;max-width:520px}.student-card-wrapper .card{border:1.5px solid var(--color-accent-border);box-shadow:0 8px 24px -4px #0284c714}.student-step-header{text-align:center;margin-bottom:2rem}.student-step-header h1{font-size:1.625rem;font-weight:700;color:var(--color-text-main);margin-bottom:.375rem;letter-spacing:-.02em}.student-step-header p{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.5}.grade-grid{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:480px){.grade-grid{grid-template-columns:repeat(3,1fr)}}.grade-btn{background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem 1rem;text-align:center;transition:all var(--transition-fast);box-shadow:var(--shadow-xs);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}.grade-btn:hover{border-color:var(--color-accent);background-color:var(--color-accent-subtle);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.grade-btn:focus-visible{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-primary)}.grade-label{display:block;font-size:var(--text-xs);text-transform:uppercase;font-weight:600;letter-spacing:.05em;color:var(--color-text-subtle);margin-bottom:.25rem}.grade-number{display:block;font-size:1.5rem;font-weight:700;color:var(--color-primary)}.class-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.875rem;margin-top:1rem}@media(min-width:480px){.class-grid{grid-template-columns:repeat(4,1fr)}}.class-btn{background-color:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);height:52px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-base);color:var(--color-text-main);transition:all var(--transition-fast);box-shadow:var(--shadow-xs);cursor:pointer}.class-btn:hover{border-color:var(--color-accent);background-color:var(--color-accent-subtle);color:var(--color-primary);transform:translateY(-1px)}.class-btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.confirmation-details{background-color:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;margin-bottom:1.5rem}.confirmation-row{display:flex;justify-content:space-between;align-items:center;padding:.625rem 0;border-bottom:1px dashed var(--color-border);font-size:var(--text-sm)}.confirmation-row:last-child{border-bottom:none}.confirmation-label{color:var(--color-text-subtle)}.confirmation-value{font-weight:600;color:var(--color-text-main)}.finish-card{text-align:center;padding:2.75rem 2rem}.finish-icon-wrap{width:64px;height:64px;background-color:var(--color-success-bg);color:var(--color-success);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;box-shadow:0 0 0 4px var(--color-surface),0 0 0 6px var(--color-success-border)}.finish-title{font-size:1.625rem;font-weight:700;color:var(--color-text-main);margin-bottom:.5rem;letter-spacing:-.01em}.finish-subtitle{color:var(--color-text-muted);font-size:var(--text-base);margin-bottom:1.75rem;line-height:1.5}.finish-info-box{background-color:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.5rem;margin-bottom:1.5rem;text-align:left}.cbt-app{min-height:100vh;display:flex;flex-direction:column;background-color:var(--color-bg)}.cbt-header{position:sticky;top:0;z-index:100;height:64px;background-color:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 1.75rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;box-shadow:var(--shadow-xs)}.cbt-header-left{display:flex;flex-direction:column;gap:.15rem}.cbt-exam-title{font-size:var(--text-base);font-weight:700;color:var(--color-primary);line-height:1.2;letter-spacing:-.01em}.cbt-student-info{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:500}.cbt-header-right{display:flex;align-items:center;gap:1rem}.cbt-save-indicator{display:inline-flex;align-items:center;gap:.375rem;font-size:var(--text-xs);font-weight:600;padding:.35rem .65rem;border-radius:var(--radius-full);transition:all var(--transition-fast)}.cbt-save-saved{color:var(--color-success);background-color:var(--color-success-bg);border:1px solid var(--color-success-border)}.cbt-save-saving{color:var(--color-accent);background-color:var(--color-accent-subtle);border:1px solid var(--color-accent-border)}.cbt-save-error{color:var(--color-danger);background-color:var(--color-danger-bg);border:1px solid var(--color-danger-border)}.cbt-timer-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.4rem .85rem;border-radius:var(--radius-md);background-color:var(--color-primary-subtle);border:1.5px solid var(--color-primary-light);font-family:var(--font-mono);font-size:.95rem;font-weight:700;color:var(--color-primary);letter-spacing:.06em}.cbt-timer-badge.is-urgent{background-color:var(--color-danger-bg);border-color:var(--color-danger-border);color:var(--color-danger);animation:pulse-urgent 1s infinite alternate}@keyframes pulse-urgent{0%{opacity:.9}to{opacity:1;transform:scale(1.02)}}.cbt-layout{flex:1;display:flex;max-width:1240px;width:100%;margin:0 auto;padding:1.75rem 1.25rem;gap:1.75rem;align-items:flex-start}@media(max-width:960px){.cbt-layout{flex-direction:column;padding:1rem;gap:1.25rem}}.cbt-question-area{flex:1;min-width:0;display:flex;flex-direction:column;background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:hidden}.cbt-question-header{padding:1rem 1.75rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;background-color:var(--color-surface-muted)}.cbt-question-number{font-size:var(--text-base);font-weight:700;color:var(--color-primary)}.cbt-question-body{padding:1.75rem;flex:1}.cbt-question-text{font-size:1.125rem;line-height:1.65;color:var(--color-text-main);margin-bottom:2rem;white-space:pre-line;font-weight:500}.cbt-options-list{display:flex;flex-direction:column;gap:.875rem}.cbt-option-card{display:flex;align-items:center;gap:1rem;padding:.875rem 1.25rem;min-height:58px;border:1.5px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.cbt-option-card:hover{border-color:var(--color-accent);background-color:var(--color-accent-subtle)}.cbt-option-card.is-selected{border-color:var(--color-primary);background-color:var(--color-primary-subtle);box-shadow:0 0 0 1px var(--color-primary)}.cbt-option-radio{width:32px;height:32px;border-radius:var(--radius-full);border:2px solid var(--color-border-hover);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-sm);color:var(--color-text-subtle);flex-shrink:0;transition:all var(--transition-fast);background-color:var(--color-surface)}.cbt-option-card:hover .cbt-option-radio{border-color:var(--color-accent);color:var(--color-accent)}.cbt-option-card.is-selected .cbt-option-radio{border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-text-inverse)}.cbt-option-text{flex:1;font-size:var(--text-base);color:var(--color-text-main);line-height:1.5}.cbt-essay-container{display:flex;flex-direction:column;gap:.625rem}.cbt-essay-textarea{width:100%;min-height:240px;padding:1.125rem;border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-family:inherit;font-size:var(--text-base);line-height:1.65;resize:vertical;color:var(--color-text-main);background-color:var(--color-surface);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.cbt-essay-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.cbt-essay-footer{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-xs);color:var(--color-text-subtle);font-weight:500}.cbt-footer{padding:1.125rem 1.75rem;border-top:1px solid var(--color-border);background-color:var(--color-surface-muted);display:flex;align-items:center;justify-content:space-between;gap:.875rem}@media(max-width:640px){.cbt-footer{flex-direction:column-reverse;gap:.75rem}.cbt-footer>*{width:100%}}.cbt-palette-sidebar{width:310px;flex-shrink:0;display:flex;flex-direction:column;gap:1rem;position:sticky;top:80px}@media(max-width:960px){.cbt-palette-sidebar{width:100%;position:static}}.cbt-palette-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;box-shadow:var(--shadow-xs)}.cbt-palette-header{font-size:var(--text-sm);font-weight:700;color:var(--color-text-main);margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between}.cbt-palette-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem}.cbt-num-btn{height:46px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:700;transition:all var(--transition-fast);border:1.5px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-main);cursor:pointer}.cbt-num-btn.status-unanswered{border-color:var(--color-border-hover);background-color:var(--color-surface);color:var(--color-text-main)}.cbt-num-btn.status-unanswered:hover{background-color:var(--color-surface-hover);border-color:var(--color-accent)}.cbt-num-btn.status-answered{background-color:var(--color-success);border-color:var(--color-success);color:var(--color-text-inverse)}.cbt-num-btn.status-answered:hover{background-color:#166534}.cbt-num-btn.status-flagged{background-color:var(--color-warning);border-color:var(--color-warning);color:var(--color-text-inverse)}.cbt-num-btn.status-flagged:hover{background-color:#92400e}.cbt-num-btn.is-active{outline:3px solid var(--color-primary);outline-offset:2px;font-weight:800}.cbt-palette-legend{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--color-border);display:grid;grid-template-columns:1fr 1fr;gap:.625rem}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:var(--text-xs);font-weight:500;color:var(--color-text-muted)}.legend-swatch{width:14px;height:14px;border-radius:var(--radius-xs);flex-shrink:0}.legend-swatch.unanswered{background-color:var(--color-surface);border:1.5px solid var(--color-border-hover)}.legend-swatch.answered{background-color:var(--color-success)}.legend-swatch.flagged{background-color:var(--color-warning)}.legend-swatch.active{background-color:var(--color-surface);border:2px solid var(--color-primary)}.review-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.875rem;margin-bottom:1.25rem}.review-stat-box{padding:1.125rem .75rem;border-radius:var(--radius-md);text-align:center;border:1px solid var(--color-border)}.review-stat-box.answered{background-color:var(--color-success-bg);border-color:var(--color-success-border);color:var(--color-success)}.review-stat-box.unanswered{background-color:var(--color-surface-muted);border-color:var(--color-border);color:var(--color-text-muted)}.review-stat-box.flagged{background-color:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning)}.review-stat-num{font-size:1.75rem;font-weight:800;line-height:1;margin-bottom:.35rem}.review-stat-label{font-size:var(--text-xs);font-weight:600}.unanswered-alert{padding:.875rem 1.125rem;background-color:var(--color-danger-bg);border:1px solid var(--color-danger-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-danger);margin-bottom:1rem;display:flex;align-items:center;gap:.625rem;font-weight:500}.teacher-login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 1.5rem;background:radial-gradient(circle at 50% 15%,#e0f2fe 0%,#f0f9ff 45%,var(--color-bg) 85%);position:relative;overflow:hidden}.teacher-login-card{width:100%;max-width:430px;background-color:var(--color-surface);border:1px solid rgba(186,230,253,.9);border-top:4px solid var(--color-primary);border-radius:var(--radius-xl);padding:2.5rem 2.25rem;box-shadow:0 10px 25px -5px #0284c714,0 20px 25px -5px #0f172a0a;position:relative;z-index:2}.teacher-login-header{text-align:center;margin-bottom:2rem;display:flex;flex-direction:column;align-items:center}.teacher-login-logo{height:52px;width:auto;max-width:225px;object-fit:contain;margin-bottom:1.25rem;display:block}.teacher-login-title{font-size:1.45rem;font-weight:700;color:var(--color-text-main);margin-bottom:.35rem;letter-spacing:-.01em}.teacher-login-subtitle{font-size:var(--text-xs);color:var(--color-text-muted)}.password-input-wrap{position:relative;display:flex;align-items:center}.password-input-wrap .form-input{padding-right:2.75rem}.btn-password-toggle{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:none;border:none;padding:.35rem;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);transition:color var(--transition-fast)}.btn-password-toggle:hover{color:var(--color-primary)}.brand-logo-img{height:38px;width:auto;max-width:175px;object-fit:contain;display:block}.teacher-app-shell{display:flex;min-height:100vh;background-color:var(--color-bg)}.teacher-sidebar{width:265px;flex-shrink:0;background-color:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:50;transition:transform var(--transition-normal)}@media(max-width:1024px){.teacher-sidebar{position:fixed;transform:translate(-100%);box-shadow:var(--shadow-lg)}.teacher-sidebar.is-open{transform:translate(0)}}.teacher-sidebar-brand{height:64px;padding:0 1.5rem;display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid var(--color-border)}.teacher-brand-school{font-size:11px;font-weight:700;color:var(--color-primary);text-transform:uppercase;letter-spacing:.06em}.teacher-brand-app{font-size:var(--text-base);font-weight:700;color:var(--color-text-main);letter-spacing:-.01em}.teacher-nav-list{padding:1.25rem .875rem;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.35rem}.teacher-nav-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .875rem;border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted);transition:all var(--transition-fast);cursor:pointer;border-left:3px solid transparent}.teacher-nav-item:hover{background-color:var(--color-surface-hover);color:var(--color-primary)}.teacher-nav-item.is-active{background-color:var(--color-primary-subtle);color:var(--color-primary);border-left-color:var(--color-primary)}.teacher-nav-badge{margin-left:auto;font-size:var(--text-xs);padding:.15rem .5rem;border-radius:var(--radius-full);background-color:var(--color-warning-bg);color:var(--color-warning);font-weight:700}.teacher-sidebar-footer{padding:1rem 1.25rem;border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.teacher-profile-summary{display:flex;flex-direction:column;overflow:hidden}.teacher-name-label{font-size:var(--text-sm);font-weight:700;color:var(--color-text-main);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-role-label{font-size:var(--text-xs);color:var(--color-text-subtle)}.teacher-workspace{flex:1;display:flex;flex-direction:column;min-width:0}.teacher-topbar{height:64px;background-color:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 1.75rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.teacher-topbar-title{font-size:1.125rem;font-weight:700;color:var(--color-text-main)}.teacher-content-area{flex:1;padding:2rem 1.75rem;max-width:1360px;width:100%;margin:0 auto}@media(max-width:768px){.teacher-content-area{padding:1rem}}.metrics-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:1.25rem;margin-bottom:1.75rem}@media(min-width:640px){.metrics-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.metrics-grid{grid-template-columns:repeat(4,1fr)}}.metric-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.35rem 1.5rem;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:.5rem}.metric-header{display:flex;align-items:center;justify-content:space-between;color:var(--color-primary);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em}.metric-value{font-size:2.125rem;font-weight:800;color:var(--color-text-main);line-height:1}.metric-desc{font-size:var(--text-xs);color:var(--color-text-subtle)}.table-container{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);overflow:hidden}.table-responsive{width:100%;overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);text-align:left}.data-table th{background-color:var(--color-surface-muted);color:var(--color-text-muted);font-weight:700;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;padding:.85rem 1.125rem;border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table td{padding:.95rem 1.125rem;border-bottom:1px solid var(--color-border);color:var(--color-text-main);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background-color:var(--color-surface-hover)}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.toolbar-group{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.grading-split-container{display:grid;grid-template-columns:1fr;gap:1.5rem}@media(min-width:960px){.grading-split-container{grid-template-columns:1fr 1fr}}.grading-student-panel{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.grading-rubric-panel{background-color:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}.grading-score-input-wrap{display:flex;align-items:center;gap:.75rem;margin-top:.5rem}.grading-score-input{width:90px;font-size:var(--text-lg);font-weight:700;text-align:center;padding:.5rem}.error-bar-bg{width:100%;height:8px;background-color:var(--color-surface-muted);border-radius:var(--radius-full);overflow:hidden;margin-top:.35rem}.error-bar-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal)}.data-table-compact{table-layout:auto;width:100%}.data-table-compact th{padding:.75rem .65rem;font-size:.75rem}.data-table-compact td{padding:.75rem .65rem}.question-workspace{display:flex;flex-direction:column;gap:1.25rem;width:100%}.question-workspace-header{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:1rem}.question-item-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem 1.5rem;box-shadow:var(--shadow-xs);display:flex;flex-direction:column;gap:.85rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.question-item-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-sm)}.question-item-card.is-mc{border-left:4px solid var(--color-primary)}.question-item-card.is-essay{border-left:4px solid var(--color-warning)}.question-image-preview-wrap{margin:.5rem 0;max-width:480px}.question-image-preview-img{max-height:220px;max-width:100%;object-fit:contain;border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface-muted);display:block}.image-uploader-box{background-color:var(--color-surface-muted);border:1.5px dashed var(--color-border);border-radius:var(--radius-md);padding:1rem;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.image-uploader-box:hover{border-color:var(--color-primary);background-color:var(--color-surface-hover)}
