@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_ebdb69{font-family:Geist,Geist Fallback;font-style:normal}.__variable_ebdb69{--font-geist:"Geist","Geist Fallback"}.v2-tag{display:inline-block;padding:1px 6px;border-radius:4px;background:#e0f2fe;color:#0369a1;font-size:11px;font-weight:900;vertical-align:middle;margin-left:4px}.navbar-auth-wrap{display:flex;align-items:center;gap:12px;margin-left:auto}.nav-login-btn{padding:8px 16px;font-size:13px;border-radius:7px}.nav-shortcut-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:800;transition:all .2s ease}.nav-shortcut-btn.admin{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.nav-shortcut-btn.admin:hover{background:#fde68a}.nav-shortcut-btn.teacher{background:#dcfce7;color:#166534;border:1px solid #bbf7d0}.nav-shortcut-btn.teacher:hover{background:#bbf7d0}.nav-shortcut-btn.student{background:#e0f2fe;color:#075985;border:1px solid #bae6fd}.nav-shortcut-btn.student:hover{background:#bae6fd}.user-profile-menu-container{position:relative}.user-profile-pill{display:flex;align-items:center;gap:9px;padding:4px 10px 4px 6px;border:1px solid var(--line);border-radius:20px;background:white;cursor:pointer;transition:border-color .2s}.user-profile-pill:hover{border-color:#78bee8}.user-avatar{width:30px;height:30px;border-radius:50%;object-fit:cover;background:#e5f5ff}.user-info-text{text-align:left;line-height:1.2}.user-info-text strong{display:block;font-size:13px;color:var(--ink);max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-arrow{color:var(--muted);transition:transform .2s}.dropdown-arrow.open{transform:rotate(180deg)}.user-dropdown-card{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:250px;background:white;border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 30px rgba(18,48,70,.12);overflow:hidden}.dropdown-user-header{padding:12px 14px;background:#f8fafc;border-bottom:1px solid var(--line)}.dropdown-email{margin:0 0 6px;font-size:12px;color:var(--muted);word-break:break-all}.dropdown-links{display:flex;flex-direction:column;padding:6px 0}.dropdown-item{display:flex;align-items:center;gap:9px;padding:10px 14px;color:var(--ink);font-size:13px;font-weight:700;background:none;border:0;text-align:left;cursor:pointer;transition:background .15s}.dropdown-item:hover{background:#f0f7ff;color:var(--blue)}.dropdown-item.highlight{color:#b45309;background:#fffbeb}.dropdown-item.logout{color:#b91c1c;border-top:1px solid var(--line);margin-top:4px}.dropdown-item.logout:hover{background:#fef2f2}.role-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:800}.role-badge.admin{background:#fef3c7;color:#92400e}.role-badge.teacher{background:#dcfce7;color:#166534}.role-badge.student{background:#e0f2fe;color:#0369a1}.role-badge.pending{background:#fee2e2;color:#b91c1c}.status-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:800}.status-pill.active,.status-pill.graded{background:#dcfce7;color:#166534}.status-pill.disabled,.status-pill.pending,.status-pill.submitted{background:#fef3c7;color:#92400e}.status-pill.draft{background:#f1f5f9;color:#64748b}.modal-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.6);backdrop-filter:blur(4px);padding:16px}.auth-modal-card{position:relative;width:100%;max-width:480px;background:white;border-radius:12px;padding:32px;box-shadow:0 20px 40px rgba(0,0,0,.2);animation:modalPop .2s ease-out}@keyframes modalPop{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-close{position:absolute;top:16px;right:16px;border:0;background:#f1f5f9;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:#64748b}.modal-close:hover{background:#e2e8f0;color:#0f172a}.auth-modal-header{text-align:center;margin-bottom:22px}.auth-icon-badge{width:54px;height:54px;margin:0 auto 12px;display:grid;place-items:center;border-radius:12px;background:#e0f2fe;color:#0284c7}.auth-icon-badge.key{background:#fef3c7;color:#d97706}.auth-modal-header h3{margin:0 0 6px;font-size:22px;color:#0f172a}.auth-modal-header p{margin:0;font-size:13.5px;color:#64748b;line-height:1.5}.auth-quick-accounts{margin-bottom:18px}.auth-divider-label{display:block;font-size:12px;font-weight:800;color:#64748b;text-transform:uppercase;margin-bottom:9px}.quick-btn-group{display:grid;gap:8px}.quick-account-btn{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;cursor:pointer;text-align:left;transition:all .15s}.quick-account-btn:hover{border-color:#0284c7;background:#f0f9ff}.badge-icon{font-size:20px}.quick-account-btn strong{display:block;font-size:13.5px;color:#0f172a}.quick-account-btn small{display:block;font-size:11.5px;color:#64748b}.auth-form{display:grid;gap:14px}.auth-error-msg{background:#fee2e2;color:#b91c1c}.auth-error-msg,.auth-success-msg{padding:10px 12px;border-radius:6px;font-size:13px;font-weight:700}.auth-success-msg{background:#dcfce7;color:#166534}.form-group label{display:block;margin-bottom:5px;font-size:13px;font-weight:750;color:#334155}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #cbd5e1;border-radius:7px;font-size:14px;outline:none;background:white}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#0284c7;box-shadow:0 0 0 3px rgba(2,132,199,.12)}.code-input{font-size:18px!important;font-weight:800;letter-spacing:1px;text-align:center;color:#0369a1;background:#f0f9ff!important}.code-hints{padding:10px 12px;background:#fffbeb;border:1px solid #fef3c7;border-radius:6px;font-size:12px}.code-hints ul{margin:6px 0 0;padding-left:18px}.code-hints li{margin:3px 0}.code-hints code{background:white;padding:1px 5px;border-radius:4px;font-weight:800;color:#b45309}.auth-submit-btn{width:100%;justify-content:center;padding:12px;font-size:15px;font-weight:800}.admin-shell,.grading-shell,.student-submissions-shell,.teacher-shell{background:#f1f5f9;min-height:100vh}.admin-main,.grading-main,.student-main,.teacher-main{width:min(1380px,calc(100% - 36px));margin:0 auto;padding:34px 0 80px}.admin-header-banner,.student-header-banner,.teacher-header-banner{display:flex;align-items:center;justify-content:space-between;padding:28px 32px;background:white;border:1px solid var(--line);border-radius:10px;margin-bottom:24px}.admin-badge-pill,.student-badge-pill,.teacher-badge-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:800;margin-bottom:8px}.admin-badge-pill{background:#fef3c7;color:#92400e}.teacher-badge-pill{background:#dcfce7;color:#166534}.student-badge-pill{background:#e0f2fe;color:#0369a1}.admin-header-banner h1,.student-header-banner h1,.teacher-header-banner h1{margin:0 0 6px;font-size:28px;color:#0f172a}.admin-header-banner p,.student-header-banner p,.teacher-header-banner p{margin:0;font-size:14px;color:#64748b}.admin-kpi-grid,.teacher-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.kpi-card,.teacher-kpi-card{display:flex;align-items:center;gap:16px;padding:20px;background:white;border:1px solid var(--line);border-radius:9px}.kpi-icon{width:48px;height:48px;border-radius:10px;display:grid;place-items:center}.kpi-icon.blue{background:#e0f2fe;color:#0284c7}.kpi-icon.green{background:#dcfce7;color:#16a34a}.kpi-icon.yellow{background:#fef3c7;color:#d97706}.kpi-icon.purple{background:#f3e8ff;color:#9333ea}.kpi-icon.coral{background:#fee2e2;color:#dc2626}.kpi-card strong,.teacher-kpi-card strong{display:block;font-size:24px;color:#0f172a}.kpi-card small,.teacher-kpi-card small{font-size:12.5px;color:#64748b}.admin-tabs{display:flex;gap:8px;margin-bottom:20px}.admin-tab-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:white;border:1px solid var(--line);border-radius:8px;font-size:14px;font-weight:800;color:#475569;cursor:pointer;transition:all .15s}.admin-tab-btn.active,.admin-tab-btn:hover{background:#0284c7;color:white;border-color:#0284c7}.admin-card{background:white;border:1px solid var(--line);border-radius:10px;padding:24px;margin-bottom:24px}.card-header-flex{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.search-bar-inline{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--line);border-radius:6px;background:#f8fafc}.search-bar-inline input{border:0;outline:none;background:transparent;font-size:13px;width:220px}.create-code-card{background:#fcfdfe;border:1.5px dashed #93c5fd}.create-code-form{display:grid;gap:14px;margin-top:16px}.form-row{display:flex;gap:16px}.flex-1{flex:1}.flex-2{flex:2}.input-with-button{display:flex;gap:8px}.input-with-button input{flex:1}.create-btn{justify-self:start;padding:10px 20px}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:13.5px}.admin-table td,.admin-table th{padding:12px 14px;text-align:left;border-bottom:1px solid var(--line)}.admin-table th{background:#f8fafc;color:#475569;font-weight:800;font-size:12.5px;text-transform:uppercase}.code-display{display:inline-flex;align-items:center;gap:6px}.code-display code{font-family:monospace;font-size:14px;font-weight:800;color:#0369a1;background:#f0f9ff;padding:2px 6px;border-radius:4px}.copy-icon-btn{border:0;background:none;cursor:pointer;padding:3px}.table-actions{display:flex;gap:6px}.icon-action-btn{border:1px solid var(--line);background:white;border-radius:5px;padding:5px;cursor:pointer;color:#475569}.icon-action-btn:hover{background:#f1f5f9}.icon-action-btn.danger:hover{background:#fee2e2;color:#b91c1c}.role-select{padding:4px 8px;font-size:12.5px;border-radius:5px}.user-table-cell{display:flex;align-items:center;gap:10px}.table-avatar{width:32px;height:32px;border-radius:50%}.used-by-details summary{cursor:pointer;color:#0284c7;font-weight:700}.used-by-details ul{margin:6px 0 0;padding-left:16px;font-size:12px}.teacher-filters-bar{display:flex;align-items:center;gap:16px;padding:16px 20px;background:white;border:1px solid var(--line);border-radius:8px;margin-bottom:20px}.filter-group{display:flex;align-items:center;gap:8px}.filter-group label{font-size:13px;font-weight:750;color:#475569}.filter-group select{padding:6px 10px;border-radius:6px;font-size:13px}.filter-search{display:flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid var(--line);border-radius:6px;background:#f8fafc;margin-left:auto;width:320px}.filter-search input{border:0;outline:none;background:transparent;font-size:13px;width:100%}.submission-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:18px}.submission-card{background:white;border:1px solid var(--line);border-radius:9px;padding:20px;display:flex;flex-direction:column;box-shadow:0 4px 12px rgba(15,23,42,.04)}.submission-card.submitted{border-left:4px solid #f59e0b}.submission-card.graded{border-left:4px solid #10b981}.submission-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.student-profile-mini{display:flex;align-items:center;gap:10px}.student-avatar{width:36px;height:36px;border-radius:50%}.student-profile-mini strong{display:block;font-size:14px;color:#0f172a}.student-profile-mini small{font-size:12px;color:#64748b}.skill-tag-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:800;background:#f1f5f9;color:#334155}.skill-tag-pill.writing{background:#fef3c7;color:#92400e}.skill-tag-pill.speaking{background:#fee2e2;color:#991b1b}.submission-card-body h4{margin:6px 0 10px;font-size:16px;color:#0f172a}.submission-snippet{font-size:13px;color:#475569;margin-bottom:14px;line-height:1.5}.grade-result-mini{display:flex;align-items:center;gap:12px;padding:10px;background:#ecfdf5;border-radius:7px;margin-bottom:14px}.score-badge-circle{width:44px;height:44px;border-radius:50%;background:#10b981;color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.score-badge-circle span{font-size:15px;font-weight:900}.score-badge-circle small{font-size:9px}.grade-text-mini small{display:block;font-size:11.5px;color:#065f46;font-weight:750}.grade-text-mini p{margin:2px 0 0;font-size:12px;color:#047857;font-style:italic}.submission-card-actions{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}.submit-time{font-size:12px;color:#64748b}.grading-topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;background:white;border:1px solid var(--line);border-radius:9px;margin-bottom:20px}.back-link-btn{display:inline-flex;align-items:center;gap:6px;color:#0284c7;font-weight:800;font-size:13.5px}.grading-title-info{text-align:center}.grading-title-info h2{margin:0 0 4px;font-size:20px}.student-meta-strip{display:flex;gap:16px;font-size:12.5px;color:#64748b}.grading-toast-success{display:flex;align-items:center;gap:10px;padding:14px 20px;background:#10b981;color:white;border-radius:8px;font-weight:800;margin-bottom:18px;box-shadow:0 6px 18px rgba(16,185,129,.25)}.grading-workspace{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.grading-card{background:white;border:1px solid var(--line);border-radius:9px;padding:24px;margin-bottom:20px}.pane-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--line)}.pane-card-header h3{margin:0;font-size:18px;color:#0f172a}.task-pill{padding:3px 8px;background:#f1f5f9;border-radius:4px;font-size:12px;font-weight:750;color:#475569}.prompt-html-content{font-size:15px;line-height:1.7;color:#334155}.rubric-card{background:#f8fafc}.rubric-list{margin:10px 0 0;padding-left:18px;font-size:13px;line-height:1.6}.rubric-list li{margin-bottom:8px}.student-essay-display{padding:18px;background:#fafafa;border:1px solid var(--line);border-radius:7px;font-size:15.5px;line-height:1.8;color:#1e293b;min-height:200px;max-height:400px;overflow-y:auto}.audio-player-box{display:flex;align-items:center;gap:12px;padding:14px;background:#ecfdf5;border-radius:7px;margin-bottom:14px}.full-audio-player{width:100%;height:44px}.overall-score-pill{display:flex;align-items:center;gap:8px;background:#0284c7;color:white;padding:6px 14px;border-radius:20px}.overall-score-pill strong{font-size:18px}.criteria-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px;padding:16px;background:#f8fafc;border-radius:8px}.crit-item label{display:flex;justify-content:space-between;font-size:12.5px;font-weight:750;margin-bottom:6px}.crit-item b{color:#0284c7;font-size:14px}.crit-item input[type=range]{width:100%;accent-color:#0284c7}.overall-input-wrap{margin-bottom:16px}.overall-number-input{font-size:18px!important;font-weight:800;width:140px!important;color:#0284c7}.save-grade-btn{width:100%;justify-content:center;padding:14px;font-size:16px}.submissions-master-detail{display:grid;grid-template-columns:360px 1fr;gap:24px;align-items:start}.submissions-list-pane{background:white;border:1px solid var(--line);border-radius:9px;padding:18px}.submissions-list-pane h3{margin:0 0 14px;font-size:16px}.sub-list-cards{display:grid;gap:10px}.sub-item-card{padding:14px;border:1px solid var(--line);border-radius:7px;cursor:pointer;transition:all .15s}.sub-item-card:hover{border-color:#0284c7;background:#f0f9ff}.sub-item-card.active{border-color:#0284c7;background:#e0f2fe}.sub-item-header{display:flex;justify-content:space-between;margin-bottom:6px}.sub-item-card strong{display:block;font-size:14px;color:#0f172a}.sub-item-card small{display:block;font-size:12px;color:#64748b;margin:2px 0 6px}.sub-date{font-size:11px;color:#94a3b8}.submission-detail-pane{display:grid;gap:20px}.detail-header-card{background:white;border:1px solid var(--line);border-radius:9px;padding:24px}.detail-title-flex{display:flex;align-items:center;justify-content:space-between}.detail-title-flex h2{margin:8px 0 4px;font-size:22px}.big-grade-badge{text-align:center;padding:12px 20px;background:#ecfdf5;border:1.5px solid #a7f3d0;border-radius:9px}.big-grade-badge strong{display:block;font-size:32px;color:#059669;line-height:1}.big-grade-badge span{font-size:12px;color:#047857;font-weight:750}.pending-grade-badge{display:flex;align-items:center;gap:8px;padding:12px 18px;background:#fef3c7;border-radius:8px;color:#92400e;font-weight:800;font-size:13.5px}.teacher-feedback-card{background:#f0fdf4;border:1.5px solid #bbf7d0;border-radius:9px;padding:24px}.teacher-avatar-strip{display:flex;align-items:center;gap:10px;margin-bottom:16px}.teacher-avatar-strip strong{display:block;font-size:16px;color:#166534}.criteria-score-breakdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.criteria-score-box{background:white;border:1px solid #86efac;border-radius:6px;padding:10px;text-align:center}.criteria-score-box small{display:block;font-size:11px;color:#15803d;font-weight:750}.criteria-score-box strong{font-size:18px;color:#166534}.feedback-content-text h4{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:15px;color:#166534}.feedback-content-text p{margin:0;font-size:14.5px;line-height:1.7;color:#14532d;white-space:pre-wrap}.student-content-review-card{background:white;border:1px solid var(--line);border-radius:9px;padding:24px}.student-content-review-card h3{margin:0 0 14px;font-size:17px}.essay-body-text{padding:16px;background:#f8fafc;border:1px solid var(--line);border-radius:7px;font-size:15px;line-height:1.75}.submit-to-teacher-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border:1px solid #059669;border-radius:7px;color:white;background:#059669;font-size:13px;font-weight:800;cursor:pointer;transition:all .2s}.submit-to-teacher-btn:hover{background:#047857}@media (max-width:1024px){.admin-kpi-grid,.teacher-kpi-grid{grid-template-columns:1fr 1fr}.grading-workspace,.submissions-master-detail{grid-template-columns:1fr}}@media (max-width:640px){.admin-kpi-grid,.teacher-kpi-grid{grid-template-columns:1fr}.form-row{flex-direction:column;gap:12px}.teacher-filters-bar{flex-direction:column;align-items:stretch}.filter-search{width:100%;margin-left:0}}