.assignment-analysis-notice{margin:12px 0;min-width:0;max-width:100%;border-radius:8px;overflow-wrap:anywhere}.assignment-analysis-notice p{margin:0}.assignment-analysis-notice ul{padding-left:20px;margin:8px 0 0}.assignment-analysis-notice li{white-space:pre-wrap}.assignment-recovery-actions{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0;min-width:0}.assignment-recovery-actions>.ant-btn{min-height:44px;height:auto;white-space:normal}.assignment-card-actions>.assignment-recovery-actions{flex:1;margin:0}.assignment-card-actions>.assignment-recovery-actions>.ant-btn{flex:1;padding:8px}.assignment-draft-details-trigger{display:none}.assignment-analysis-summary{margin-top:10px;padding:10px;border-radius:8px;background:#fff4df;color:#916921;overflow-wrap:anywhere}.assignment-analysis-summary p{margin:6px 0;line-height:1.6}.assignment-analysis-summary small{display:block;font-size:12px;line-height:1.5}.image-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.image-item{min-width:0}.image-item>.ant-typography{display:block;margin-top:6px;font-size:12px}.image-grid .ant-image,.review-image .ant-image{display:block;width:100%}.image-grid .ant-image-img,.review-image .ant-image-img{display:block;width:100%;aspect-ratio:3 / 4;object-fit:contain;background:#f4f2ec;border:1px solid #e3dfd5;border-radius:12px}.review-image{position:relative;display:block;width:100%}.bbox{border-width:4px;box-shadow:0 0 0 2px #fffc}.sider-brand strong{font-size:17px;white-space:nowrap}.batch-review-body{min-width:0;overflow-wrap:anywhere}.batch-review-help{color:#66776f;font-size:13px;line-height:1.6}.batch-review-body label{font-weight:500}.batch-review-presets{margin:20px 0 12px}.batch-review-stamp{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.batch-stamp-preview{display:flex;gap:16px;align-items:center;padding:12px;background:#faf9f5;border-radius:8px;margin:8px 0}.batch-stamp-preview svg{width:100px;flex:0 0 100px;fill:none;stroke:#d23535;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.batch-stamp-preview span{font-size:12px;color:#66776f}.batch-review-selection{margin-top:16px;padding-block:8px;border-top:1px solid #eee}.batch-review-students{max-height:240px;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.batch-review-students .ant-checkbox-wrapper{min-height:44px;padding:8px;align-items:center;border:1px solid #eee;border-radius:8px;overflow-wrap:anywhere}.batch-review-students small{display:block;color:#89948f;font-size:12px}.batch-review-overlay .ant-drawer-footer{padding-bottom:calc(12px + env(safe-area-inset-bottom));text-align:right}.batch-review-overlay .ant-drawer-body{padding:16px}.batch-review-body .ant-progress{margin-top:16px}@media(max-width:991px){.batch-review-overlay .ant-btn{min-height:44px}.batch-review-presets .ant-btn{font-size:12px;padding-inline:8px}}.assignment-detail-content{display:flex;flex-direction:column;gap:16px}.assignment-overview h2{margin:0 0 8px;font-size:22px;line-height:1.45;overflow-wrap:anywhere}.assignment-overview p{margin:0;color:#78847e;font-size:13px;line-height:1.7}.assignment-progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.assignment-progress-grid>div{background:#f2f7f3;border:1px solid #e0e9e1;border-radius:14px;padding:16px}.assignment-progress-grid>div>span{font-size:14px;color:#546c5e}.assignment-progress-grid strong{display:block;font-size:30px;margin-top:8px;color:#244e44;line-height:1.4}.assignment-progress-grid strong small{font-size:13px;color:#718277;font-weight:400}.assignment-progress-grid p{margin:0;font-size:12px;color:#718277}.assignment-progress-note{font-size:12px;color:#7a857e;line-height:1.6}.assignment-progress-grid+.assignment-progress-note{margin-top:-8px}.assignment-materials{border-bottom:1px solid #e6ebe5;padding-bottom:12px}.assignment-materials summary{cursor:pointer;font-size:14px;padding:8px 0;color:#425b4d}.roster-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.roster-heading h3{font-size:17px;margin:0}.roster-heading>span{color:#7a857e;font-size:13px}.roster-quick-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px}.roster-quick-filters button{border:1px solid #e1e5df;border-radius:12px;background:#fff;color:#617268;padding:10px 4px;font:inherit;cursor:pointer;min-height:64px}.roster-quick-filters span{display:block;font-size:12px;white-space:nowrap}.roster-quick-filters strong{display:block;font-size:20px;margin-top:4px}.roster-quick-filters [aria-pressed=true]{background:#315f55;border-color:#315f55;color:#fff}.roster-search{display:flex;gap:10px;margin-bottom:14px}.roster-search>.ant-input-search{flex:1;min-width:0}.roster-search>.ant-select{width:170px;flex-shrink:0}.roster-student{display:flex;align-items:center;gap:12px}.roster-student-main{flex:1;min-width:0}.roster-student-main>strong{display:block;font-size:16px;overflow-wrap:anywhere;margin-bottom:6px}.roster-student-main p{margin:6px 0;font-size:13px;color:#5f6d65;overflow-wrap:anywhere}.roster-student-main small{display:block;color:#859088;font-size:12px;line-height:1.6}.roster-student>.ant-btn{flex:0 0 auto;min-width:84px}.roster-waiting{font-size:12px;color:#929b95;flex-shrink:0}@media(max-width:767px){.assignment-detail .ant-drawer-header{flex-wrap:nowrap!important}.assignment-detail .ant-drawer-header-title{align-items:center}.assignment-detail .ant-drawer-extra{margin-left:auto}.assignment-detail .ant-drawer-body{background:#fafbf8}.assignment-detail-content{gap:14px}.assignment-overview h2{font-size:20px}.assignment-progress-grid>div{padding:12px}.roster-search{flex-wrap:wrap}.roster-search>.ant-input-search{flex:1 1 100%}.roster-search>.ant-select{width:100%}.assignment-detail .record-card{padding:14px}.roster-student .ant-tag{font-size:12px}.roster-section{min-width:0}}.weekly-home,.weekly-page .weekly-panel{background:var(--teacher-surface,#fff);border:1px solid var(--teacher-line,#e4e9e5);border-radius:12px;padding:16px;margin:12px 0}.weekly-home{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.weekly-home h3,.weekly-page h3,.weekly-page h4{margin:0 0 8px;overflow-wrap:anywhere}.weekly-home p,.weekly-page p{color:var(--teacher-muted,#687970);margin:8px 0;overflow-wrap:anywhere}.weekly-home .ant-btn,.weekly-page .ant-btn{min-height:44px;white-space:normal;height:auto}.weekly-page{min-width:0}.weekly-page .page-head{gap:12px;flex-wrap:wrap}.weekly-page .page-head>div{min-width:0}.weekly-page .page-head h2{overflow-wrap:anywhere}.weekly-page .weekly-loading{padding:32px;display:flex;justify-content:center;gap:12px}.weekly-page .weekly-period{width:100%;max-width:360px;margin:12px 0;min-height:44px}.weekly-page .weekly-class-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.weekly-page .weekly-class-grid .weekly-panel{margin:0;min-width:0}.weekly-page .weekly-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.weekly-page .weekly-stats>div{background:var(--teacher-soft,#f6f8f6);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:6px}.weekly-page .weekly-stats span{font-size:13px;color:var(--teacher-muted,#687970)}.weekly-page .weekly-stats strong{font-size:24px;color:var(--teacher-ink,#263e33)}.weekly-page .weekly-note{font-size:13px;line-height:1.7}.weekly-page .weekly-followups,.weekly-page .weekly-closures{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.weekly-page .weekly-followups>div,.weekly-page .weekly-closures>div{display:flex;align-items:flex-start;flex-direction:column;gap:8px;border:1px solid var(--teacher-line,#e4e9e5);border-radius:12px;padding:16px;overflow-wrap:anywhere;min-width:0}.weekly-page .weekly-assignment{padding:4px 0;overflow-wrap:anywhere}.weekly-page .weekly-panel .ant-table-cell{overflow-wrap:anywhere}@media(max-width:767px){.weekly-page .weekly-class-grid,.weekly-page .weekly-followups,.weekly-page .weekly-closures{grid-template-columns:minmax(0,1fr)}.weekly-page .weekly-panel{padding:16px}.weekly-page .weekly-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.weekly-page .page-head h2{font-family:inherit;font-size:22px;font-weight:600;line-height:1.4;margin:0}.weekly-page .weekly-students .ant-input-search{max-width:360px;margin:4px 0 16px}.weekly-page .weekly-students .ant-input,.weekly-page .weekly-students .ant-input-affix-wrapper{min-height:44px}.weekly-page .weekly-students .ant-input-affix-wrapper .ant-input{min-height:0}.weekly-page .weekly-student-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.weekly-page .weekly-student-heading h4{font-size:16px;min-width:0}.weekly-page .weekly-student-heading .ant-tag{flex-shrink:0;margin:0}.weekly-page .weekly-student-progress{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;background:var(--teacher-soft);padding:12px;border-radius:8px;margin:8px 0}.weekly-page .weekly-student-progress strong{font-size:24px;color:var(--teacher-ink)}.weekly-page .weekly-student-progress small,.weekly-page .weekly-student-progress span{font-size:13px;color:var(--teacher-muted);font-weight:400}.weekly-page .weekly-student-card p{font-size:13px}.weekly-page .weekly-page-actions,.weekly-share-actions{display:flex;flex-wrap:wrap;gap:8px}.weekly-share-actions{justify-content:flex-end}.weekly-share-preview{max-height:65vh;overflow:auto;background:#f6f8f6;border:1px solid #e4e9e5;border-radius:8px}.weekly-share-preview img{display:block;width:100%;height:auto}.weekly-share-actions .ant-btn,.weekly-page-actions .ant-btn{min-height:44px}.weekly-share-loading{padding:32px;display:flex;align-items:center;justify-content:center;gap:12px}.correction-inbox .correction-inbox-body{max-height:72dvh;overflow-y:auto;overscroll-behavior:contain;padding:4px 2px max(8px,env(safe-area-inset-bottom));color:var(--teacher-ink)}.correction-inbox .correction-inbox-overview{padding:0 0 16px;border-bottom:1px solid var(--teacher-line);margin-bottom:16px}.correction-inbox .correction-inbox-actions{display:flex;gap:8px;flex-wrap:wrap}.correction-inbox .correction-inbox-actions>.ant-btn{min-height:44px;height:auto;white-space:normal;padding:8px 12px}.correction-inbox .correction-inbox-help,.correction-inbox .correction-inbox-class{font-size:13px;color:var(--teacher-muted);line-height:1.6}.correction-inbox .correction-inbox-list{display:grid;gap:12px;margin-top:16px;min-height:80px}.correction-inbox .correction-inbox-assignment{min-width:0;padding:16px;border:1px solid var(--teacher-line);border-radius:var(--teacher-card-radius);background:var(--teacher-soft)}.correction-inbox h3{font-size:16px;line-height:1.5;margin:0;overflow-wrap:anywhere}.correction-inbox p{overflow-wrap:anywhere;line-height:1.6;margin:8px 0 12px}.correction-inbox .ant-checkbox-wrapper{min-height:44px;align-items:center;font-size:14px}.correction-inbox .correction-inbox-confirm{margin-bottom:16px}.correction-inbox .ant-alert{margin-bottom:12px}.correction-inbox .ant-modal-close{width:44px;height:44px}@media(max-width:767px){.correction-inbox .correction-inbox-body{max-height:calc(100dvh - 120px)}.correction-inbox .correction-inbox-actions>.ant-btn{flex:1;min-width:0}.correction-inbox .correction-inbox-assignment{padding:12px}}.assignment-list-filters{margin-bottom:16px}.assignment-list-filters>.ant-input-search{max-width:520px;margin-bottom:12px}.assignment-filter-row{display:flex;align-items:center;gap:12px}.assignment-status-tabs{display:flex;gap:4px;background:#eaf0ec;border-radius:10px;padding:3px}.assignment-status-tabs button{border:0;background:transparent;border-radius:7px;color:#687970;font:inherit;min-height:38px;padding:0 16px;cursor:pointer;white-space:nowrap}.assignment-status-tabs button[aria-pressed=true]{color:#24594b;background:#fff;box-shadow:0 1px 3px #234b3812;font-weight:600}.assignment-filter-row>.ant-select{min-width:180px;max-width:320px}.assignment-class-sheet .ant-select{width:100%;min-height:44px}.assignment-class-sheet .ant-drawer-body{padding-bottom:calc(20px + env(safe-area-inset-bottom))}.assignment-filter-footer{display:flex;gap:12px;margin-top:20px}.assignment-filter-footer .ant-btn{flex:1;min-height:44px}.assignment-applied-filter{margin-top:8px;display:flex;min-width:0}.assignment-applied-filter .ant-btn{max-width:100%;background:#eaf2ee;color:#315f55;border:0}.assignment-applied-filter .ant-btn>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-list-count{font-size:12px;color:#77847f;margin:0 0 10px}.assignment-list-more .ant-popover-inner{padding:6px!important}.assignment-list-more-actions{display:flex;flex-direction:column;min-width:150px}.assignment-list-more-actions>.ant-btn{min-height:44px;padding-inline:15px;justify-content:flex-start;border:0;box-shadow:none}@media(max-width:991px){.app-content .assignment-list-page .page-head{flex-direction:row;align-items:center;gap:12px;margin-bottom:16px}.assignment-list-page .page-head h2{font-weight:600;line-height:1.4;font-family:inherit;font-size:22px}.assignment-list-page .page-head p{display:none}.app-content .assignment-list-page .page-head>.ant-btn{align-self:center;min-height:44px;border-radius:9px;padding-inline:12px;flex-shrink:0}.assignment-list-filters>.ant-input-search{max-width:none}.assignment-list-filters .ant-input-affix-wrapper{min-height:44px;background:#fff;border-radius:9px 0 0 9px}.assignment-list-filters .ant-input-search-button{min-height:44px}.assignment-filter-row{gap:8px}.assignment-status-tabs{flex:1;min-width:0}.assignment-status-tabs button{flex:1;min-height:44px;padding:0 8px;font-size:14px}.assignment-filter-row>.ant-btn{flex-shrink:0;min-height:44px;padding-inline:10px;border:0;background:transparent;box-shadow:none;color:#63776e}.assignment-filter-row>.has-filter{color:#24594b;background:#e5eee8}.assignment-list-page .table-card{background:transparent;box-shadow:none}.assignment-list-page .table-card>.ant-card-body{padding:0}.assignment-list-page .record-card{padding:16px;border:1px solid #e4e9e5;border-radius:12px;box-shadow:none}.assignment-list-page .responsive-cards{gap:12px}.assignment-card-heading{display:flex;align-items:flex-start;gap:10px}.assignment-card-title{flex:1;min-width:0;border:0;background:none;color:#243c33;text-align:left;padding:0;font-family:inherit;font-size:17px;font-weight:600;line-height:1.55;overflow-wrap:anywhere;cursor:pointer;min-height:44px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.assignment-state{font-size:12px;white-space:nowrap;padding:3px 7px;border-radius:5px;line-height:20px;flex-shrink:0;margin-top:2px;background:#f1f3f1;color:#748078}.assignment-state.is-active{background:#eaf3ed;color:#3a7154}.assignment-state.is-pending{background:#fff4df;color:#916921}.assignment-card-meta{display:flex;gap:8px;align-items:flex-start;margin:2px 0 7px;color:#66796e;font-size:13px;line-height:20px}.assignment-card-meta>span:first-child{min-width:0;overflow-wrap:anywhere}.assignment-ai-mode{flex-shrink:0;color:#839187;font-size:12px}.assignment-card-deadline{display:flex;gap:6px;align-items:center;font-size:12px;color:#87918b;margin-bottom:14px}.assignment-card-progress{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:12px;border-radius:8px;background:#f6f8f6}.assignment-card-progress-item{min-width:0}.assignment-card-progress-item>span{display:block;font-size:12px;color:#738378;margin-bottom:4px}.assignment-card-progress-item strong{display:block;font-size:22px;font-weight:600;line-height:28px;color:#345c4c;font-variant-numeric:tabular-nums}.assignment-card-progress-item small{font-size:12px;color:#849087;font-weight:400}.assignment-card-progress-item .ant-progress{display:block;margin:5px 0 0;line-height:1}.assignment-card-progress-item .ant-progress-bg{background:#719b85!important}.assignment-card-progress-item .ant-progress-inner{background:#e4ebe5}.assignment-card-followups{display:flex;flex-wrap:wrap;gap:0 12px;margin:4px 0 -4px}.assignment-card-followups>.ant-btn{min-height:44px;padding:0;border:0;box-shadow:none;color:#9a7031;background:transparent;font-size:12px}.assignment-card-actions{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid #edf0ed}.assignment-card-actions>.ant-btn{min-height:44px;border-radius:8px;font-size:14px;flex:1;padding:0 10px;white-space:nowrap}.assignment-card-actions>.assignment-more-trigger{flex:0 0 44px;padding:0;color:#7b8880;border:0;box-shadow:none;background:#f4f6f4}.assignment-list-page .card-pagination{margin:20px 0 4px}}*{box-sizing:border-box}body{margin:0;color:#20332f;background:#f5f3ed}.full-spin{min-height:100vh;display:grid;place-items:center}.auth-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:#f5f3ed}.auth-story{padding:10vh 8vw;background:linear-gradient(145deg,#173f38,#315f55);color:#fff;position:relative;overflow:hidden}.auth-story:after{content:"答";position:absolute;right:-30px;bottom:-140px;font:700 420px/1 serif;color:#ffffff0a}.brand{display:flex;gap:14px;align-items:center}.brand-mark{width:48px;height:48px;border-radius:16px;background:#f1c979;color:#173f38;display:grid;place-items:center;font:700 26px serif}.auth-story h1{font:600 48px/1.2 serif;margin:18vh 0 20px}.auth-story p{font-size:18px;line-height:1.8;max-width:560px;color:#dce9e5}.auth-panel{display:grid;place-items:center;padding:40px}.auth-card{width:min(440px,100%);box-shadow:0 24px 80px #2635311a}.app-shell{min-height:100vh}.sider-brand{height:82px;padding:18px 22px;color:#fff;display:flex;gap:12px;align-items:center}.sider-brand strong{display:block;font:600 21px serif}.sider-brand span{color:#a9c4bc;font-size:12px}.app-header{height:76px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ebe7dc}.app-content{padding:26px;min-width:0}.page-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px}.page-head h2{font:600 30px serif;margin:0}.page-head p{margin:6px 0 0;color:#77847f}.metric{border:0;box-shadow:0 8px 28px #2a3b360f}.metric .ant-statistic-title{color:#77847f}.metric .ant-statistic-content{font:600 34px serif}.table-card{border:0;box-shadow:0 8px 30px #2835310d}.activation{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at top,#e5f0eb,#f5f3ed 55%)}.activation-card{width:min(620px,92vw);text-align:center;padding:30px}.activation-icon{width:84px;height:84px;margin:auto;border-radius:28px;background:#f1c979;display:grid;place-items:center;font-size:36px;color:#173f38}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.image-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;border:1px solid #e3dfd5}.review-image{position:relative;display:inline-block;max-width:100%}.review-image img{max-width:100%;border-radius:12px}.bbox{position:absolute;border:3px solid #d14343;border-radius:50%;pointer-events:none}.mobile-only-note{color:#77847f}@media(max-width:800px){.auth-page{grid-template-columns:1fr}.auth-story{display:none}.app-content{padding:16px}}.app-header{line-height:normal;gap:20px;flex-shrink:0}.header-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-account{display:flex;align-items:center;gap:12px;flex-shrink:0;margin-left:auto}.header-account>.ant-avatar,.header-account>.ant-btn{flex-shrink:0}.header-account-copy{display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:0;max-width:180px}.header-account-copy>.ant-typography{display:block;margin:0;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-account-copy>.header-subjects{font-size:12px;line-height:18px}.sider-brand{overflow:hidden}.sider-brand>.brand-mark{flex-shrink:0}.sider-brand>div:last-child{min-width:0;white-space:nowrap}.sider-brand strong{font-size:18px}.ant-layout-sider-collapsed .sider-brand{padding:18px 12px;justify-content:center}.ant-layout-sider-collapsed .sider-brand>div:last-child{display:none}@media(max-width:800px){.app-header{padding:0 16px;gap:12px}.header-account{gap:10px}}@media(max-width:600px){.app-header>.header-title{display:none}.header-account-copy{max-width:140px}}.mobile-nav,.mobile-student-tabs,.mobile-brand{display:none}.filter-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}.filter-controls .ant-select{min-width:150px}.filter-trigger{margin-bottom:12px}.account-card{max-width:680px;margin-bottom:20px}.account-card .ant-card-body{display:flex;flex-direction:column;gap:16px;overflow-wrap:anywhere}.todo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:24px}.todo-item{border:1px solid #e0e7e1;background:#fff;border-radius:16px;padding:20px;text-align:left;cursor:pointer;color:#244e44;font:inherit}.todo-item strong{display:block;font-size:32px;margin:8px 0}.todo-item:hover{border-color:#315f55}.more-actions{display:inline-block}.more-actions summary{cursor:pointer;padding:8px;list-style:none}.more-actions>div{display:flex;flex-wrap:wrap;gap:8px;padding:8px}.responsive-cards{display:grid;gap:12px}.record-card{background:#fff;border:1px solid #e6e8e3;border-radius:14px;padding:16px;min-width:0}.record-field{display:flex;gap:12px;margin:9px 0;align-items:flex-start}.record-label{flex:0 0 76px;color:#78857f;font-size:13px}.record-value{flex:1;min-width:0;overflow-wrap:anywhere}.record-title{display:block;margin-top:0}.record-title>.record-label{display:none}.record-title .record-value{font-size:17px}.record-actions{border-top:1px solid #edf0ec;padding-top:12px;margin-bottom:0}.record-actions>.record-label{display:none}.record-actions .ant-space{flex-wrap:wrap}.card-pagination{margin-top:16px;justify-content:center}.filter-sheet .ant-drawer-body{padding-bottom:calc(20px + env(safe-area-inset-bottom))}.account-heading{display:flex;gap:12px;align-items:center}.record-card .ant-tag{white-space:normal}.record-card .ant-space-item{min-width:0}.request-summary{margin-bottom:16px}@media(max-width:767px){.app-shell:not(.grading-shell)>.ant-layout-sider{display:none}.app-shell>.ant-layout{min-width:0}.app-shell .app-header{display:none}.app-content{padding:16px 16px calc(88px + env(safe-area-inset-bottom))}.grading-shell .app-content{padding:0}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:30;background:#fff;border-top:1px solid #e2e6df;padding:6px 8px calc(6px + env(safe-area-inset-bottom));justify-content:space-around}.mobile-nav button{border:0;background:transparent;color:#6b7871;display:flex;flex-direction:column;gap:4px;align-items:center;justify-content:center;flex:1;min-height:52px;font:inherit;font-size:12px}.mobile-nav button .anticon{font-size:21px}.mobile-nav button[aria-current=page]{color:#24594b;background:#edf4ef;border-radius:12px;font-weight:600}body:has(.ant-drawer-open) .mobile-nav,body:has(.ant-modal-wrap:not([style*="display: none"])) .mobile-nav{visibility:hidden}.mobile-student-tabs{display:flex;gap:8px;margin-bottom:16px}.mobile-student-tabs .ant-btn{flex:1}.app-content .page-head{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin-bottom:16px}.page-head h2{font-size:24px;line-height:1.4;font-weight:600}.page-head p{font-size:13px;line-height:1.6}.page-head>.ant-btn{align-self:flex-start}.page-head .ant-input-affix-wrapper{width:100%!important}.table-card>.ant-card-body{padding:0}.table-card{box-shadow:none;background:transparent}.ant-tabs .ant-tabs-tab{padding:12px 0}.todo-grid{gap:12px}.todo-item{padding:16px}.todo-item strong{font-size:28px}.todo-item small{font-size:12px}.mobile-brand{display:block;margin-bottom:24px;font-size:23px;font-weight:600;color:#24594b}.auth-panel{padding:24px 16px}.auth-card .ant-card-body{padding:24px}.auth-page{min-height:100dvh}.responsive-drawer .ant-drawer-content-wrapper{max-width:100vw}.responsive-drawer .ant-drawer-header{padding:16px}.responsive-drawer .ant-drawer-header-title{min-width:0;align-items:flex-start}.responsive-drawer .ant-drawer-title{overflow-wrap:anywhere}.responsive-drawer .ant-drawer-header{flex-wrap:wrap;gap:12px}.responsive-drawer .ant-drawer-extra{margin-left:0}.responsive-drawer .ant-drawer-body{padding:16px;padding-bottom:calc(24px + env(safe-area-inset-bottom))}.responsive-drawer .ant-space{max-width:100%;flex-wrap:wrap}.responsive-drawer .ant-space-item{min-width:0;max-width:100%}.responsive-modal{width:100%!important;max-width:100%!important;top:0;padding-bottom:0;margin:0;vertical-align:top!important}.responsive-modal .ant-modal-container,.responsive-modal .ant-modal-content{border-radius:0;min-height:100dvh;padding:20px 16px calc(16px + env(safe-area-inset-bottom));display:flex;flex-direction:column}.responsive-modal .ant-modal-body{flex:1;max-height:none!important;overflow:visible!important;padding-bottom:20px}.responsive-modal .ant-modal-header{padding-right:30px}.responsive-modal .ant-modal-footer{position:sticky;bottom:0;background:#fff;padding:12px 0 calc(12px + env(safe-area-inset-bottom));margin-top:auto;z-index:1}.responsive-modal .ant-modal-footer .ant-btn{min-height:44px}.responsive-modal .ant-radio-group{display:flex;flex-wrap:wrap;gap:8px}.responsive-modal .ant-radio-button-wrapper{border:1px solid #ddd;border-radius:8px;height:auto;white-space:normal}.ant-input,.ant-input-affix-wrapper,.ant-input-number-input,.ant-select-input,.ant-picker-input>input{font-size:16px!important}.app-content .ant-btn,.responsive-modal .ant-btn,.responsive-drawer .ant-btn{min-height:44px;height:auto;white-space:normal}.filter-controls{display:flex;flex-direction:column;align-items:stretch}.filter-controls>*{width:100%!important;max-width:100%}.filter-controls .ant-select{min-width:0}.ant-picker-dropdown{max-width:100vw}.ant-picker-panel-layout,.ant-picker-panels{flex-wrap:wrap}.ant-picker-time-panel{max-width:100vw}.ant-picker-datetime-panel{flex-direction:column}.edit-materials{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px!important;width:100%}.edit-materials>.ant-space-item{width:auto!important;min-width:0}.edit-materials>.ant-space-item>div{width:100%!important}.edit-materials .ant-image,.edit-materials img,.edit-materials video{max-width:100%;width:100%!important}.edit-materials .ant-space{flex-wrap:wrap}.ant-descriptions-view{overflow-wrap:anywhere}.account-card .ant-card-body,.profile-form .ant-card-body{padding:20px}.record-card .ant-progress{max-width:100%}}.assignment-title-link{height:auto;white-space:normal;padding:0;text-align:left;font-weight:600;line-height:1.6}.assignment-info{width:100%;padding:12px;border:1px solid #e1e7e0;border-radius:12px}.assignment-info summary{cursor:pointer;font-weight:600;padding:8px 0}@media(max-width:767px){.responsive-modal .ant-input:not(textarea),.responsive-modal .ant-input-affix-wrapper,.responsive-modal .ant-picker,.responsive-modal .ant-select,.responsive-drawer .ant-input:not(textarea),.responsive-drawer .ant-select{min-height:44px}.responsive-modal .ant-input-affix-wrapper .ant-input{min-height:0}.assignment-title-link{font-size:17px;min-height:0!important}.record-card>.ant-checkbox-wrapper{min-height:44px;align-items:center}.record-card .record-title{margin-top:4px}}@media(min-width:768px)and (max-width:991px){.app-content .page-head{align-items:stretch;flex-direction:column;gap:12px}.app-content .page-head>.ant-btn{align-self:flex-start}.table-card>.ant-card-body{padding:12px}.record-card .ant-btn{min-height:40px}.page-head .ant-input-affix-wrapper{max-width:100%}.app-header{padding:0 16px}.header-title{display:none}}:root{--teacher-primary:#315f55;--teacher-ink:#263e33;--teacher-muted:#687970;--teacher-surface:#fff;--teacher-soft:#f6f8f6;--teacher-selected:#eaf3ed;--teacher-line:#e4e9e5;--teacher-warning-bg:#fff4df;--teacher-warning-ink:#916921;--teacher-card-radius:12px;--teacher-control-radius:8px;--teacher-gap:12px;--teacher-touch:44px}.home-page,.account-home{max-width:1060px}.account-section>h3{font-size:14px;font-weight:600;color:var(--teacher-muted);margin:0 0 10px}.home-followups,.account-links{background:var(--teacher-surface);border:1px solid var(--teacher-line);border-radius:var(--teacher-card-radius);overflow:hidden}.home-followups>button,.account-links>button{display:flex;align-items:center;gap:12px;width:100%;border:0;border-bottom:1px solid #edf0ed;background:none;padding:16px;font:inherit;text-align:left;cursor:pointer;color:var(--teacher-ink);min-height:76px}.home-followups>button:last-child,.account-links>button:last-child{border-bottom:0}.home-row-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:9px;background:var(--teacher-selected);color:var(--teacher-primary);font-size:18px;flex-shrink:0}.home-row-copy{flex:1;min-width:0}.home-row-copy strong{font-size:15px;line-height:1.5;display:block;font-weight:500}.home-row-copy small{display:block;font-size:12px;color:var(--teacher-muted);line-height:1.6;margin-top:3px;overflow-wrap:anywhere}.home-row-count{font-size:20px;color:var(--teacher-muted);font-variant-numeric:tabular-nums}.home-row-count small{font-size:12px;margin-left:4px}.home-row-count.has-count{color:var(--teacher-warning-ink)}.home-followups>button>.anticon,.account-links>button>.anticon{font-size:11px;color:#98a59d}.home-loading{display:flex;justify-content:center;gap:12px;align-items:center;min-height:180px;font-size:14px;color:var(--teacher-muted)}.home-empty{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--teacher-primary);margin-top:16px}.home-empty>.ant-btn{margin-left:auto;min-height:44px}.home-page button:disabled{cursor:default;opacity:.6}.account-home{max-width:680px}.account-identity{display:flex;align-items:flex-start;gap:14px;padding:20px;background:var(--teacher-surface);border:1px solid var(--teacher-line);border-radius:var(--teacher-card-radius)}.account-identity>.ant-avatar{flex-shrink:0;background:var(--teacher-selected);color:var(--teacher-primary)}.account-identity>div{min-width:0}.account-identity h3{font-size:18px;margin:0;color:var(--teacher-ink);line-height:1.5;overflow-wrap:anywhere}.account-identity p{font-size:13px;line-height:1.6;color:var(--teacher-muted);margin:4px 0 8px;overflow-wrap:anywhere}.account-role{display:inline-block;padding:3px 8px;border-radius:5px;background:var(--teacher-selected);color:var(--teacher-primary);font-size:12px}.account-section{margin-top:24px}.account-profile{border:1px solid var(--teacher-line);border-radius:var(--teacher-card-radius);margin-top:16px;background:var(--teacher-surface)}.account-profile>summary{display:flex;align-items:center;gap:12px;list-style:none;padding:16px;cursor:pointer;min-height:76px}.account-profile>summary::-webkit-details-marker{display:none}.account-profile>summary>.anticon{font-size:11px;color:#98a59d;transition:transform .15s}.account-profile[open]>summary>.anticon{transform:rotate(90deg)}.account-profile .profile-form{border:0;box-shadow:none;border-radius:0 0 12px 12px;background:transparent}.account-profile .profile-form>.ant-card-body{padding:4px 16px 16px}.account-profile .ant-form-item{margin-bottom:18px}.account-profile .ant-form-item-label{padding-bottom:6px}.account-profile .ant-btn-primary{min-height:44px;border-radius:8px;width:100%}.account-home>.account-logout{width:100%;min-height:44px;margin-top:24px;border-radius:8px;border:1px solid var(--teacher-line);color:var(--teacher-muted);box-shadow:none}.account-access{display:flex;gap:12px;margin:16px 0;padding:16px;color:var(--teacher-muted);border:1px solid var(--teacher-line);background:var(--teacher-surface);border-radius:var(--teacher-card-radius)}.account-access p{margin:0;font-size:14px;line-height:1.7}@media(max-width:991px){.app-content .home-page .page-head,.app-content .account-home .page-head,.app-content .review-list-page .page-head{flex-direction:row;align-items:center;gap:12px;margin-bottom:16px}.home-page .page-head h2,.account-home .page-head h2,.review-list-page .page-head h2{font-family:inherit;font-size:22px;font-weight:600;line-height:1.4;margin:0}.home-page .page-head p,.review-list-page .page-head p{display:none}.app-content .home-page .page-head>.ant-btn,.app-content .review-list-page .page-head>.ant-btn{min-height:44px;align-self:center;border-radius:8px;color:var(--teacher-muted)}.account-identity{padding:16px}.account-section{margin-top:20px}.account-profile .ant-input,.account-profile .ant-input-affix-wrapper{min-height:44px;font-size:16px}.account-profile .ant-switch{min-height:32px;min-width:52px;margin:6px 0}.account-profile .ant-form-item-control-input{min-height:44px}.account-profile .ant-switch .ant-switch-handle{top:7px}.review-list-page>.ant-input-search .ant-input-affix-wrapper,.review-list-page .ant-input-search-button{min-height:44px}.review-list-page .table-card{background:transparent;box-shadow:none}.review-list-page .table-card>.ant-card-body{padding:0}.review-list-page .record-card{border:1px solid var(--teacher-line);border-radius:12px;padding:16px;box-shadow:none}.review-list-page .ant-tabs-nav{margin-bottom:12px}.review-list-page .ant-tabs-tab{min-height:44px;font-size:14px}.review-task-heading{display:flex;align-items:flex-start;gap:10px}.review-task-heading h3,.review-task-card>h3{margin:0;font-size:17px;line-height:1.5;flex:1;min-width:0;overflow-wrap:anywhere;color:var(--teacher-ink)}.review-task-heading>span{font-size:12px;line-height:20px;background:var(--teacher-warning-bg);color:var(--teacher-warning-ink);padding:3px 7px;border-radius:5px;white-space:nowrap}.review-task-card p{font-size:12px;color:var(--teacher-muted);line-height:1.6;overflow-wrap:anywhere;margin:6px 0}.review-task-assignment{font-size:14px;line-height:1.6;color:var(--teacher-ink);background:var(--teacher-soft);border-radius:8px;padding:10px 12px;margin-top:12px;overflow-wrap:anywhere}.review-task-card .review-task-requirement{white-space:pre-wrap;color:var(--teacher-ink)}.review-task-footer{border-top:1px solid #edf0ed;margin-top:12px;padding-top:12px;display:flex;gap:8px;align-items:center;justify-content:space-between}.review-task-footer small{font-size:12px;color:var(--teacher-muted)}.review-task-footer .ant-btn,.review-task-card>.ant-btn{min-height:44px;border-radius:8px;flex-shrink:0}}.home-entry-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.home-entry{min-width:0;padding:18px 16px;border:1px solid var(--teacher-line);border-radius:var(--teacher-card-radius);background:var(--teacher-surface);text-align:left;font:inherit;color:var(--teacher-ink);cursor:pointer;transition:border-color .15s,background .15s}.home-entry:focus-visible{outline:2px solid var(--teacher-primary);outline-offset:3px}.home-entry-heading{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500}.home-entry-heading .home-row-icon{width:28px;height:28px;font-size:16px;border-radius:8px}.home-entry-heading>.anticon{margin-left:auto;color:#98a59d;font-size:10px}.home-entry-count{display:flex;align-items:baseline;gap:6px;margin:16px 0 4px;color:var(--teacher-muted);overflow-wrap:anywhere}.home-entry-count strong{font-size:30px;line-height:1.2;font-weight:600;font-variant-numeric:tabular-nums;min-width:0}.home-entry-count.has-count strong{color:var(--teacher-primary)}.home-entry-count small,.home-entry-action{font-size:12px;color:var(--teacher-muted)}.home-entry-count small{flex-shrink:0}.home-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px}.home-metric{padding:16px;border:1px solid var(--teacher-line);border-radius:var(--teacher-card-radius);background:var(--teacher-soft);display:flex;flex-direction:column;gap:8px;min-width:0}.home-metric>span{font-size:12px;color:var(--teacher-muted)}.home-metric>strong{font-size:22px;line-height:1.3;color:var(--teacher-ink);font-weight:500;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}@media(hover:hover){.home-entry:not(:disabled):hover{border-color:#a3beb3;background:var(--teacher-soft)}}@media(max-width:991px){.home-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-entry{padding:14px 12px}.home-entry-heading{gap:6px}.home-entry-count{margin-top:14px}.home-metrics{gap:8px}.home-metric{padding:12px 10px}}
