.roll-page[data-v-088e3475]{min-height:100vh;background:#f5f7fa;padding-bottom:80px}.page-header[data-v-088e3475]{background:linear-gradient(135deg,#3a7bd5,#5a9fd4 60%,#7ab8e8);padding:16px 14px 12px;color:#fff}.header-row[data-v-088e3475]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;margin-bottom:10px}.header-left[data-v-088e3475]{-webkit-box-flex:1;-ms-flex:1;flex:1}.header-right[data-v-088e3475]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.class-name[data-v-088e3475]{font-size:17px;font-weight:600;margin-bottom:4px}.class-name i[data-v-088e3475]{margin-right:4px}.class-meta[data-v-088e3475]{font-size:12px;opacity:.85}.meta-sep[data-v-088e3475]{margin:0 3px}.view-toggle[data-v-088e3475]{width:34px;height:34px;background:hsla(0,0%,100%,.2);border-radius:8px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;cursor:pointer;font-size:18px}.view-toggle[data-v-088e3475]:active{background:hsla(0,0%,100%,.35)}.header-tools[data-v-088e3475]{display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.tool-select[data-v-088e3475]{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:120px}.tool-select[data-v-088e3475] .el-input,.tool-select[data-v-088e3475] .el-input__inner{width:100%!important}.tool-date[data-v-088e3475]{width:140px}.tool-btn[data-v-088e3475]{background:hsla(0,0%,100%,.25);color:#fff;border:1px solid hsla(0,0%,100%,.4);padding:0 14px;height:34px;border-radius:8px}@media (max-width:375px){.tool-select[data-v-088e3475]{min-width:110px}.tool-date[data-v-088e3475]{width:120px}.tool-btn[data-v-088e3475]{padding:0 10px}}.tool-btn[data-v-088e3475]:hover{background:hsla(0,0%,100%,.35)}.tool-btn--export[data-v-088e3475]{background:hsla(0,0%,100%,.15);color:#fff;border:1px solid hsla(0,0%,100%,.35)}.tool-btn--export[data-v-088e3475]:hover{background:hsla(0,0%,100%,.3)}.tool-btn--export.is-disabled[data-v-088e3475]{opacity:.5;cursor:not-allowed}.subject-pills[data-v-088e3475]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px;margin-top:8px;-ms-flex-wrap:wrap;flex-wrap:wrap}.subject-pills__label[data-v-088e3475]{font-size:12px;opacity:.8}.subject-pill[data-v-088e3475]{background:hsla(0,0%,100%,.25);border:1px solid hsla(0,0%,100%,.4);border-radius:20px;padding:2px 10px;font-size:12px;font-weight:500}.filter-tabs[data-v-088e3475]{display:-webkit-box;display:-ms-flexbox;display:flex;background:#fff;border-bottom:1px solid #eee;overflow-x:auto}.filter-tab[data-v-088e3475]{-webkit-box-flex:1;-ms-flex:1;flex:1;text-align:center;padding:12px 8px;font-size:13px;color:#666;cursor:pointer;position:relative;white-space:nowrap}.filter-tab.active[data-v-088e3475]{color:#3a7bd5;font-weight:600}.filter-tab.active[data-v-088e3475]:after{content:"";position:absolute;bottom:0;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:30px;height:3px;background:#3a7bd5;border-radius:3px 3px 0 0}.list-body[data-v-088e3475]{margin-top:2px}.state-box[data-v-088e3475]{text-align:center;padding:60px 20px;color:#999}.state-box i[data-v-088e3475]{font-size:48px;margin-bottom:12px;display:block}.state-box p[data-v-088e3475]{font-size:14px;line-height:1.6}.student-grid[data-v-088e3475]{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;padding:10px}.hw-card[data-v-088e3475]{background:#fff;border-radius:12px;padding:14px 10px 10px;text-align:center;position:relative;-webkit-box-shadow:0 1px 4px rgba(0,0,0,.06);box-shadow:0 1px 4px rgba(0,0,0,.06);cursor:pointer;-webkit-transition:-webkit-box-shadow .2s;transition:-webkit-box-shadow .2s;transition:box-shadow .2s;transition:box-shadow .2s,-webkit-box-shadow .2s}.hw-card[data-v-088e3475]:active{-webkit-box-shadow:0 2px 8px rgba(0,0,0,.12);box-shadow:0 2px 8px rgba(0,0,0,.12)}.hw-card__menu[data-v-088e3475]{position:absolute;top:6px;right:6px;width:24px;height:24px;border-radius:50%;background:#f5f5f5;color:#999;font-size:14px}.hw-card__avatar[data-v-088e3475],.hw-card__menu[data-v-088e3475]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}.hw-card__avatar[data-v-088e3475]{width:52px;height:52px;border-radius:50%;margin:0 auto 8px;font-size:18px;font-weight:600;overflow:hidden;border:2px solid #e0e0e0}.hw-card__avatar img[data-v-088e3475]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.hw-card__name[data-v-088e3475]{font-size:13px;font-weight:600;color:#333;margin-bottom:8px}.hw-card__circles[data-v-088e3475]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:4px;margin-bottom:6px;-ms-flex-wrap:wrap;flex-wrap:wrap}.hw-card__ratio[data-v-088e3475]{font-size:12px;color:#888;margin-bottom:6px}.ratio-num[data-v-088e3475]{color:#52c41a;font-weight:600}.ratio-sep[data-v-088e3475]{margin:0 1px}.ratio-den[data-v-088e3475]{color:#999}.status-circle[data-v-088e3475]{width:22px;height:22px;border-radius:50%;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:9px;font-weight:700;color:#fff}.circle--completed[data-v-088e3475]{background:#52c41a}.circle--partial[data-v-088e3475]{background:#fa8c16}.circle--not_done[data-v-088e3475]{background:#ff4d4f}.circle--leave[data-v-088e3475]{background:#1890ff}.circle--uncalled[data-v-088e3475]{background:#d9d9d9;color:#999}.status-pill[data-v-088e3475]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:3px;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:500}.status-pill i[data-v-088e3475]{font-size:10px}.pill--completed[data-v-088e3475]{background:#f0f9eb;color:#52c41a;border:1px solid #b7eb8f}.pill--partial[data-v-088e3475]{background:#fff7e6;color:#fa8c16;border:1px solid #ffd591}.pill--not_done[data-v-088e3475]{background:#fff1f0;color:#ff4d4f;border:1px solid #ffccc7}.pill--leave[data-v-088e3475]{background:#e6f7ff;color:#1890ff;border:1px solid #91d5ff}.pill--uncalled[data-v-088e3475]{background:#f4f4f5;color:#909399;border:1px solid #dcdfe6}.avatar--completed[data-v-088e3475]{border-color:#b7eb8f;background:#f0f9eb;color:#52c41a}.avatar--partial[data-v-088e3475]{border-color:#ffd591;background:#fff7e6;color:#fa8c16}.avatar--not_done[data-v-088e3475]{border-color:#ffccc7;background:#fff1f0;color:#ff4d4f}.avatar--leave[data-v-088e3475]{border-color:#91d5ff;background:#e6f7ff;color:#1890ff}.avatar--uncalled[data-v-088e3475]{border-color:#dcdfe6;background:#f4f4f5;color:#909399}.student-list[data-v-088e3475]{margin-top:2px}.student-row[data-v-088e3475]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:12px 14px;background:#fff;border-bottom:1px solid #f0f0f0;cursor:pointer;-webkit-transition:background .15s;transition:background .15s}.student-row[data-v-088e3475]:active{background:#f5f7fa}.row__avatar[data-v-088e3475]{width:44px;height:44px;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:16px;font-weight:600;margin-right:12px;-ms-flex-negative:0;flex-shrink:0;overflow:hidden;border:2px solid #e0e0e0}.row__avatar img[data-v-088e3475]{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.row__info[data-v-088e3475]{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:0}.row__name[data-v-088e3475]{font-size:14px;font-weight:600;color:#333;margin-bottom:4px}.row__circles[data-v-088e3475]{display:-webkit-box;display:-ms-flexbox;display:flex;gap:4px;-ms-flex-wrap:wrap;flex-wrap:wrap}.row__ratio[data-v-088e3475]{margin:0 10px;font-size:14px;white-space:nowrap}.ratio-done[data-v-088e3475]{color:#52c41a;font-weight:700}.ratio-total[data-v-088e3475]{color:#999}.row__status[data-v-088e3475]{margin-right:8px}.row__arrow[data-v-088e3475]{color:#ccc;font-size:14px}.editor-student[data-v-088e3475]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:14px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid #eee}.editor-name[data-v-088e3475]{font-size:16px;font-weight:600;color:#333}.editor-ratio[data-v-088e3475]{font-size:13px;color:#888;margin-top:4px}.editor-label[data-v-088e3475]{font-size:13px;color:#666;margin-bottom:8px;margin-top:12px}.editor-subjects[data-v-088e3475]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:10px}.editor-subject-item[data-v-088e3475]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px}.editor-subject-name[data-v-088e3475]{font-size:13px;color:#333;width:48px;-ms-flex-negative:0;flex-shrink:0}.editor-status-group[data-v-088e3475]{display:-webkit-box;display:-ms-flexbox;display:flex;gap:6px;-ms-flex-wrap:wrap;flex-wrap:wrap}.editor-status-group--sm[data-v-088e3475]{-webkit-box-flex:1;-ms-flex:1;flex:1}.status-option[data-v-088e3475]{padding:6px 12px;border-radius:8px;cursor:pointer;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:4px;font-size:12px;border:1px solid #e0e0e0;color:#666;background:#fafafa;-webkit-transition:all .15s;transition:all .15s}.status-option[data-v-088e3475]:hover{border-color:#3a7bd5;color:#3a7bd5}.status-option.selected.opt--completed[data-v-088e3475]{background:#f0f9eb;color:#52c41a;border-color:#52c41a}.status-option.selected.opt--partial[data-v-088e3475]{background:#fff7e6;color:#fa8c16;border-color:#fa8c16}.status-option.selected.opt--not_done[data-v-088e3475]{background:#fff1f0;color:#ff4d4f;border-color:#ff4d4f}.status-option.selected.opt--leave[data-v-088e3475]{background:#e6f7ff;color:#1890ff;border-color:#1890ff}.status-option.selected.opt--uncalled[data-v-088e3475]{background:#f4f4f5;color:#909399;border-color:#909399}.status-option--sm[data-v-088e3475]{padding:5px 8px}