html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{background:#f3f5f8;color:#172033;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.app-shell{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100vh;overflow:hidden}.app-shell .ant-layout-sider{background:#081827;box-shadow:8px 0 24px #0818271f;height:100vh;overflow-y:auto;overflow-x:hidden}.app-shell>.ant-layout{height:100vh;min-width:0;overflow:hidden}.app-shell .ant-menu-dark{background:#081827}.app-shell .ant-menu-dark .ant-menu-item{height:44px;margin:5px 12px;width:calc(100% - 24px);border-radius:6px;font-weight:600}.app-shell .ant-menu-dark .ant-menu-item-selected{background:#1677ff}.app-logo{height:68px;display:flex;align-items:center;gap:10px;padding:0 18px;color:#fff;font-size:17px;font-weight:700;letter-spacing:0}.app-logo-mark{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:#f4c542;color:#081827;font-size:14px;font-weight:800}.app-header{flex:0 0 auto;height:72px;line-height:normal;padding:0 28px;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;justify-content:space-between}.app-header-title{height:72px;display:flex;flex-direction:column;justify-content:center;gap:2px}.app-title{margin:0;color:#172033;font-size:20px;font-weight:700;line-height:28px}.app-subtitle{color:#8c8c8c;font-size:14px;line-height:22px}.app-user{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:6px;background:#f3f5f8;color:#354154}.app-content{flex:1 1 auto;min-height:0;padding:24px 28px;overflow:auto}.page-panel{background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:18px;box-shadow:0 10px 30px #1720330a}.table-toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.filter-row{display:flex;gap:10px;flex-wrap:wrap}.page-panel .ant-table-thead>tr>th{background:#f7f9fc;color:#172033;font-weight:700}.page-panel .ant-table-tbody>tr:hover>td{background:#f4f8ff}.page-panel .ant-btn-primary{box-shadow:0 6px 14px #1677ff2e}.question-option-row{display:grid;grid-template-columns:76px minmax(180px,1fr) 72px;gap:8px;align-items:start;margin-bottom:8px}.question-option-row .ant-form-item{margin-bottom:0}.paper-compose-page{display:flex;flex-direction:column;gap:14px}.paper-compose-header,.paper-compose-section{background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 10px 30px #1720330a}.paper-compose-header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px}.paper-compose-header h4.ant-typography{margin:0}.paper-compose-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.paper-compose-grid-readonly{grid-template-columns:minmax(0,1fr)}.paper-compose-stats{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px}.paper-stat-value{margin-top:6px;color:#172033;font-size:24px;font-weight:700;line-height:1.2}.paper-stat-value.success{color:#2f8f1f}.paper-stat-value.warning{color:#d46b08}.paper-type-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.paper-compose-section{min-width:0;padding:16px}.paper-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}.paper-batch-picker{display:flex;align-items:center;gap:8px;margin-bottom:14px;padding:12px;background:#f8fafc;border:1px solid #e8edf5;border-radius:6px}.paper-batch-picker .ant-form-item{margin-right:0;margin-bottom:0}.paper-selected-summary{display:flex;justify-content:space-between;gap:10px;margin-bottom:16px}.question-detail-view{display:flex;flex-direction:column;gap:16px}.question-detail-block{display:flex;flex-direction:column;gap:8px}.question-detail-block pre{max-height:260px;margin:0;padding:12px;overflow:auto;white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid #e8edf5;border-radius:6px;color:#172033;font-family:inherit;line-height:1.7}.question-detail-options{display:flex;flex-direction:column;gap:8px}.question-detail-option{display:grid;grid-template-columns:44px minmax(0,1fr);gap:8px;align-items:start;padding:10px 12px;background:#f8fafc;border:1px solid #e8edf5;border-radius:6px}.exam-form{margin-top:16px}@media (max-width: 1280px){.paper-compose-grid{grid-template-columns:minmax(0,1fr)}}.duty-page{padding:22px 24px}.duty-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid #e5eaf2}.duty-header h3.ant-typography{margin:0 0 4px;color:#172033}.duty-date-label{color:#48566a;font-weight:700}.duty-section{margin-top:20px}.duty-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}.duty-section-title h4.ant-typography{margin:0;color:#172033;font-size:18px}.duty-page .ant-table{border:1px solid #e7edf5;border-radius:6px;overflow:hidden}.schedule-page{min-height:calc(100vh - 120px);padding:14px 18px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 10px 30px #1720330a}.schedule-page-header{padding-bottom:10px;border-bottom:1px solid #dfe5ee}.schedule-page-header h2.ant-typography{margin:0;color:#172033;font-size:20px;line-height:30px}.schedule-select-label{color:#637083;font-size:14px;font-weight:700}.schedule-class-select{width:230px}.schedule-year-select{width:112px}.schedule-month-select{width:96px}.schedule-calendar-card{margin-top:12px;padding:12px;border:1px solid #dfe7f2;border-radius:6px;box-shadow:0 8px 22px #1720330a}.schedule-calendar-toolbar{display:flex;justify-content:flex-end;margin-bottom:8px}.schedule-calendar .ant-empty{margin:80px 0}.schedule-week-row{display:grid;grid-template-columns:repeat(7,minmax(82px,1fr));align-items:center;min-height:26px}.schedule-week-cell{text-align:center;color:#48566a;font-size:13px;font-weight:800}.schedule-month-grid{display:grid;grid-template-columns:repeat(7,minmax(82px,1fr));border:1px solid #e7edf5;border-radius:6px;overflow:hidden}.schedule-day-cell{min-height:68px;padding:7px 9px 6px;border-right:1px solid #e7edf5;border-bottom:1px solid #e7edf5;background:#fff;transition:background .16s ease,box-shadow .16s ease}.schedule-day-cell:nth-child(7n){border-right:none}.schedule-day-cell:nth-last-child(-n+7){border-bottom:none}.schedule-day-cell:hover{background:#f7fbff}.schedule-day-cell-clickable{cursor:pointer}.schedule-day-cell-clickable:hover{background:#eef6ff}.schedule-day-cell-muted{background:#f8fafc;color:#b7c3d2}.schedule-day-cell-today{background:#e9f4ff;box-shadow:inset 0 0 0 1px #1677ff}.schedule-day-number{color:#172033;font-size:14px;font-weight:800;line-height:18px}.schedule-day-cell-muted .schedule-day-number{color:#c2ccd9}.schedule-day-body{display:flex;flex-direction:column;align-items:flex-start;gap:3px;margin-top:5px}.schedule-badge{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:19px;padding:0 7px;border-radius:10px;font-size:12px;font-weight:800;white-space:nowrap}.schedule-badge-class{border:1px solid #7db4ff;background:#eaf4ff;color:#1264e8}.schedule-badge-self-study{border:1px solid #61d89d;background:#eafaf2;color:#078446}.schedule-badge-rest,.schedule-badge-holiday{border:1px solid #ffbd3f;background:#fff7e6;color:#c66a00}.schedule-course-content{width:100%;max-width:100%;color:#526173;font-size:11px;line-height:14px;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.schedule-year-grid{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:16px}.schedule-year-month{padding:14px;border:1px solid #e7edf5;border-radius:6px;background:#fff}.schedule-year-month-title{margin-bottom:10px;color:#172033;font-size:16px;font-weight:800}.schedule-year-week-row,.schedule-year-days{display:grid;grid-template-columns:repeat(7,1fr)}.schedule-year-week-row span{height:24px;color:#637083;font-size:12px;font-weight:700;text-align:center}.schedule-year-day{position:relative;min-width:0;height:28px;display:inline-flex;align-items:center;justify-content:center;color:#172033;font-size:12px;font-weight:700}.schedule-year-day-muted{color:#c2ccd9}.schedule-year-day:after{content:"";position:absolute;bottom:2px;left:50%;width:5px;height:5px;border-radius:50%;transform:translate(-50%)}.schedule-year-day-class:after{background:#1677ff}.schedule-year-day-self-study:after{background:#16b96f}.schedule-year-day-rest:after,.schedule-year-day-holiday:after{background:#f59e0b}.teacher-modal-desc{margin:0 0 18px;color:#637083;font-size:15px;line-height:1.7;font-weight:600}.teacher-stage-list{display:flex;flex-direction:column;gap:18px;max-height:520px;overflow-y:auto;padding-right:4px}.teacher-stage-title{margin-bottom:8px;color:#172033;font-size:16px;font-weight:700}.teacher-stage-select{width:100%}.schedule-detail-card{display:flex;flex-direction:column;gap:16px}.schedule-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;border-bottom:1px solid #e7edf5}.schedule-detail-date{color:#637083;font-size:13px;font-weight:700}.schedule-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.schedule-detail-grid div,.schedule-detail-content{padding:12px;border:1px solid #e7edf5;border-radius:6px;background:#f8fafc}.schedule-detail-grid span,.schedule-detail-content span{display:block;margin-bottom:6px;color:#637083;font-size:12px;font-weight:700}.schedule-detail-grid strong{color:#172033;font-size:14px;font-weight:800}.schedule-detail-content p{margin:0;color:#172033;font-size:14px;line-height:1.7;word-break:break-word}.schedule-add-course-form .ant-form-item-label>label{color:#354154;font-weight:700}.teacher-schedule-page{padding:22px 26px;background:#fff;border:1px solid #e5e7eb;border-radius:6px;box-shadow:0 10px 30px #1720330a}.teacher-schedule-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:22px}.teacher-schedule-header h2.ant-typography{margin:0 0 6px;color:#172033;font-size:24px}.teacher-schedule-range{display:flex;align-items:center;gap:10px;color:#526173;font-weight:700}.teacher-schedule-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px}.teacher-schedule-board{min-height:360px;overflow:auto;border:1px solid #e7edf5;border-radius:8px;box-shadow:0 12px 34px #1720330d}.teacher-schedule-board .ant-empty{margin:110px 0}.teacher-schedule-grid{display:grid;min-width:max-content}.teacher-schedule-row-fragment{display:contents}.teacher-schedule-cell{min-height:58px;padding:10px 12px;border-right:1px solid #e7edf5;border-bottom:1px solid #e7edf5;background:#fff}.teacher-schedule-fixed{position:sticky;left:0;z-index:2;background:#fbfcff}.teacher-schedule-head-cell{min-height:52px;display:flex;flex-direction:column;justify-content:center;color:#48566a;font-weight:800;background:#fbfcff}.teacher-schedule-head-cell strong{color:#48566a;font-size:14px}.teacher-schedule-head-cell span{margin-top:2px;color:#8a98aa;font-size:12px}.teacher-schedule-name{display:flex;align-items:center;color:#172033;font-size:15px;font-weight:800}.teacher-schedule-course-cell{display:flex;align-items:center;justify-content:center}.teacher-schedule-bar{display:inline-flex;align-items:center;justify-content:flex-start;align-self:center;justify-self:stretch;z-index:3;height:32px;margin:0 10px;padding:0 18px;border-radius:16px;background:linear-gradient(90deg,#3b82f6,#1d4ed8);color:#fff;font-size:14px;font-weight:800;box-shadow:0 5px 12px #1d4ed838;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:auto}.teacher-free-panel{min-height:260px;padding:18px;border:1px solid #e7edf5;border-radius:8px;background:#fff;box-shadow:0 12px 34px #1720330d}.teacher-free-panel h4.ant-typography{margin:0 0 4px;color:#172033}.teacher-free-list{display:flex;flex-direction:column;gap:8px;margin-top:16px}.teacher-free-item{min-height:38px;display:flex;align-items:center;padding:0 12px;border:1px solid #e7edf5;border-radius:8px;background:#f8fafc;color:#354154;font-size:14px;font-weight:700}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#eef2f6;padding:32px}.login-shell{width:min(920px,100%);min-height:520px;display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden;background:#fff;border-radius:6px;border:1px solid #d9e2ec;box-shadow:0 24px 70px #121f3129}.login-brand{position:relative;padding:56px 52px;display:flex;flex-direction:column;justify-content:center;background:#081827;color:#fff}.login-brand:after{content:"";position:absolute;inset:auto 40px 38px 40px;height:1px;background:#ffffff2e}.login-brand h1.ant-typography{margin:18px 0 8px;color:#fff;font-size:36px;line-height:1.15;letter-spacing:0}.login-brand .ant-typography{color:#ffffffb8;font-size:16px}.brand-mark{width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:6px;background:#f4c542;color:#081827;font-size:20px;font-weight:800}.brand-status{display:flex;gap:10px;margin-top:36px}.brand-status span{min-width:86px;height:34px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;background:#ffffff14;color:#ffffffd1;font-size:13px;font-weight:700}.login-card{padding:58px 52px;display:flex;flex-direction:column;justify-content:center}.login-card h3.ant-typography{margin:0 0 4px;color:#172033;font-size:28px}.login-form{margin-top:28px}.login-form .ant-form-item-label>label{color:#354154;font-weight:600}.login-form .ant-input,.login-form .ant-input-affix-wrapper{border-radius:6px}.login-form .ant-btn{margin-top:8px;border-radius:6px;font-weight:700;box-shadow:0 10px 22px #1677ff33}.table-link-button{height:auto;padding:0;white-space:normal;text-align:left}.homework-preview-modal .ant-modal-content{border-radius:8px}.homework-preview-modal .ant-modal-header{margin:0;padding-bottom:14px;border-bottom:1px solid #edf0f5}.homework-preview-modal .ant-modal-title{max-width:calc(100% - 48px);overflow:hidden;color:#111827;font-size:18px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.homework-preview-modal .ant-modal-close{top:18px}.markdown-preview{max-height:70vh;overflow:auto;padding:10px 2px 2px;color:#1f2937;font-size:16px;line-height:1.8}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3{color:#111827;font-weight:700;line-height:1.35}.markdown-preview h1{margin:8px 0 18px;padding-bottom:14px;border-bottom:1px solid #e7edf5;font-size:28px}.markdown-preview h2{margin:30px 0 18px;padding-left:12px;border-left:4px solid #1677ff;font-size:22px}.markdown-preview h3{margin:24px 0 12px;font-size:18px}.markdown-preview p{margin:0 0 14px;white-space:pre-wrap}.markdown-preview ul{margin:0 0 16px 22px;padding:0}.markdown-preview pre{margin:16px 0;padding:0;overflow:auto}.markdown-preview pre code{display:block;padding:14px;border-radius:6px;background:#f3f6fa;color:#111827;font-size:14px;line-height:1.7}.markdown-preview-spacer{height:8px}.homework-grade-modal .ant-modal-content{border-radius:8px}.homework-grade-modal .ant-modal-header{margin:0;padding-bottom:14px;border-bottom:1px solid #edf0f5}.homework-grade-modal .ant-modal-title{max-width:calc(100% - 48px);overflow:hidden;color:#111827;font-size:18px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.homework-grade-workbench{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;min-height:560px}.homework-grade-preview{min-width:0;border-right:1px solid #edf0f5;padding-right:18px}.homework-grade-preview .markdown-preview{max-height:68vh}.homework-grade-panel{display:flex;flex-direction:column;gap:14px}.grade-student-card{padding:14px;border:1px solid #e6ecf5;border-radius:8px;background:#f8fbff}.grade-student-card span,.grade-meta-list span{display:block;margin-bottom:6px;color:#7a8699;font-size:12px;font-weight:700}.grade-student-card strong{display:block;color:#111827;font-size:20px}.grade-student-card p{margin:6px 0 0;color:#4b5563}.grade-meta-list{display:grid;gap:10px}.grade-meta-list>div{padding:12px 14px;border:1px solid #edf0f5;border-radius:8px;background:#fff}.grade-meta-list strong{color:#111827}.grade-form{padding-top:4px}.exam-submission-detail{display:grid;gap:18px}.exam-submission-question-list{display:grid;gap:16px;max-height:58vh;overflow:auto;padding-right:6px}.exam-submission-question{display:grid;gap:12px;padding:16px;border:1px solid #edf0f5;border-radius:8px;background:#fff}.exam-submission-question-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.exam-submission-options{display:grid;gap:8px;padding:12px;border:1px solid #edf0f5;border-radius:8px;background:#f8fafc}.exam-submission-answer{display:grid;gap:8px;padding:12px;border:1px solid #e6ecf5;border-radius:8px;background:#fbfdff}.exam-submission-answer>div{white-space:pre-wrap}@media (max-width: 760px){.login-shell{grid-template-columns:1fr}.login-brand{min-height:240px;padding:36px 28px}.login-card{padding:36px 28px}}@media (max-width: 1100px){.homework-grade-workbench{grid-template-columns:1fr}.homework-grade-preview{border-right:0;padding-right:0}}
