.qrcode-area[data-v-23219f37]{display:inline-block;text-align:center}.qrcode-tip[data-v-23219f37]{margin-top:8px;font-size:12px;color:#888}.schedule-calendar-container[data-v-3b1713e2]{min-height:calc(100vh - 160px);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.schedule-calendar-container[data-v-3b1713e2] .ant-card-body{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding:24px;padding-top:0!important}.header-section[data-v-3b1713e2]{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:end;align-items:flex-end;margin-bottom:12px}.header-section .title-area h2[data-v-3b1713e2]{margin:0 0 4px 0;font-size:20px;font-weight:600}.header-section .title-area p[data-v-3b1713e2]{margin:0;color:#8c8c8c;font-size:12px}.header-section .action-area[data-v-3b1713e2]{display:-ms-flexbox;display:flex;margin-left:auto;gap:8px}.conflict-alert[data-v-3b1713e2]{margin-bottom:8px}.filter-panel[data-v-3b1713e2]{padding:10px 16px;background:#f5f5f5;border-radius:8px;margin-bottom:8px}.filter-panel[data-v-3b1713e2] .ant-form-inline .ant-form-item{margin-right:16px;margin-bottom:4px}.calendar-wrapper[data-v-3b1713e2]{-ms-flex:1;flex:1;border:1px solid #e8e8e8;border-radius:8px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.calendar-header[data-v-3b1713e2]{display:-ms-flexbox;display:flex;background:#fafafa;border-bottom:1px solid #e8e8e8}.calendar-header .time-column[data-v-3b1713e2]{width:60px;padding:8px 4px;text-align:center;font-size:11px;font-weight:500;color:#8c8c8c;border-right:1px solid #e8e8e8}.calendar-header .day-column[data-v-3b1713e2]{-ms-flex:1;flex:1;padding:6px 8px;text-align:center;border-right:1px solid #e8e8e8}.calendar-header .day-column.today[data-v-3b1713e2]{background:#e6f7ff}.calendar-header .day-column.today .day-date[data-v-3b1713e2]{color:#1890ff;font-weight:600}.calendar-header .day-column .day-name[data-v-3b1713e2]{font-size:11px;color:#8c8c8c;margin-bottom:2px}.calendar-header .day-column .day-date[data-v-3b1713e2]{font-size:14px;font-weight:500;color:#262626}.calendar-header .day-column .day-course-count[data-v-3b1713e2]{margin-top:2px}.calendar-body[data-v-3b1713e2]{-ms-flex:1;flex:1;position:relative;overflow:hidden}.events-layer[data-v-3b1713e2]{position:absolute;top:0;left:60px;right:0;bottom:0;display:-ms-flexbox;display:flex;pointer-events:none;z-index:5}.day-events-column[data-v-3b1713e2]{position:relative;-ms-flex:1;flex:1;border-right:1px solid #e8e8e8}.day-events-column[data-v-3b1713e2]:last-child{border-right:none}.time-row[data-v-3b1713e2]{display:-ms-flexbox;display:flex;border-bottom:1px solid #e8e8e8;min-height:60px;position:relative}.time-row .time-cell[data-v-3b1713e2]{width:60px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:11px;color:#8c8c8c;background:#fafafa;border-right:1px solid #e8e8e8}.time-row .schedule-cell[data-v-3b1713e2]{-ms-flex:1;flex:1;border-right:1px solid #e8e8e8;cursor:pointer;position:relative;transition:background .2s;min-height:60px}.time-row .schedule-cell[data-v-3b1713e2]:hover{background:#f5f5f5}.event-item[data-v-3b1713e2]{position:absolute;padding:4px 6px;border-radius:4px;font-size:12px;cursor:pointer;z-index:10;box-sizing:border-box;border-left:3px solid;overflow:hidden;pointer-events:auto}.event-item[data-v-3b1713e2]:hover{opacity:.85}.event-item .event-time[data-v-3b1713e2]{font-size:10px;opacity:.7;margin-bottom:2px}.event-item .event-type[data-v-3b1713e2]{font-size:10px;font-weight:500;margin-bottom:2px}.event-item .event-title[data-v-3b1713e2]{font-weight:500;margin-bottom:2px}.event-item .event-info[data-v-3b1713e2]{font-size:11px;color:#595959;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:2px}.event-item .event-info-inline[data-v-3b1713e2]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:6px;font-size:10px;color:#595959}.event-item .event-info-inline .info-item[data-v-3b1713e2]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:2px}.event-item .event-info-vertical .event-info[data-v-3b1713e2]{margin-top:2px}.tooltip-content .tooltip-row[data-v-3b1713e2]{display:-ms-flexbox;display:flex;margin-bottom:4px;line-height:1.5}.tooltip-content .tooltip-row .tooltip-label[data-v-3b1713e2]{color:hsla(0,0%,100%,.65);width:50px;-ms-flex-negative:0;flex-shrink:0}.tooltip-content .tooltip-row .tooltip-value[data-v-3b1713e2]{color:#fff;-ms-flex:1;flex:1}.month-calendar-wrapper[data-v-3b1713e2]{-ms-flex:1;flex:1;border:1px solid #e8e8e8;border-radius:8px;overflow-y:auto;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.month-calendar-wrapper .month-grid[data-v-3b1713e2]{padding:8px;min-height:100%}.month-calendar-wrapper .month-grid .week-header[data-v-3b1713e2]{display:-ms-grid;display:grid;-ms-grid-columns:(1fr)[7];grid-template-columns:repeat(7,1fr);border-bottom:1px solid #e8e8e8;padding-bottom:4px}.month-calendar-wrapper .month-grid .week-header .weekday-header[data-v-3b1713e2]{text-align:center;font-weight:500;font-size:12px;color:#595959}.month-calendar-wrapper .month-grid .days-grid[data-v-3b1713e2]{display:-ms-grid;display:grid;-ms-grid-columns:(1fr)[7];grid-template-columns:repeat(7,1fr);gap:1px}.month-calendar-wrapper .month-grid .days-grid .day-cell[data-v-3b1713e2]{min-height:80px;padding:4px 6px;border:1px solid #f0f0f0;cursor:pointer;transition:background-color .2s}.month-calendar-wrapper .month-grid .days-grid .day-cell[data-v-3b1713e2]:hover{background-color:#f5f5f5}.month-calendar-wrapper .month-grid .days-grid .day-cell.today[data-v-3b1713e2]{background-color:#e6f7ff;border-color:#1890ff}.month-calendar-wrapper .month-grid .days-grid .day-cell.other-month[data-v-3b1713e2]{background-color:#f5f5f5;color:#bfbfbf}.month-calendar-wrapper .month-grid .days-grid .day-cell .day-number[data-v-3b1713e2]{font-size:12px;font-weight:500;margin-bottom:2px}.month-calendar-wrapper .month-grid .days-grid .day-cell .day-events .event-badge[data-v-3b1713e2]{display:inline-block;font-size:9px;padding:0 2px;margin:1px 0;border-radius:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.stats-footer[data-v-3b1713e2]{display:-ms-flexbox;display:flex;gap:24px;padding:16px 0;border-top:1px solid #e8e8e8;margin-top:16px}.stats-footer .stat-item[data-v-3b1713e2]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.stats-footer .stat-item .stat-icon[data-v-3b1713e2]{width:48px;height:48px;border-radius:50%;background:#e6f7ff;color:#1677ff;font-size:24px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.stats-footer .stat-item .stat-icon.error[data-v-3b1713e2]{background:#fff1f0;color:#ff4d4f}.stats-footer .stat-item .stat-content .stat-label[data-v-3b1713e2]{font-size:12px;color:#8c8c8c}.stats-footer .stat-item .stat-content .stat-value[data-v-3b1713e2]{font-size:20px;font-weight:600;color:#262626}.ant-card-head-title[data-v-1849217c]{font-weight:700}.color-display[data-v-1849217c]{width:32px;height:32px;border-radius:4px;border:1px solid #d9d9d9;cursor:pointer}.color-picker-panel[data-v-1849217c]{display:-ms-grid;display:grid;-ms-grid-columns:(24px)[4];grid-template-columns:repeat(4,24px);gap:4px;padding:8px}.color-option[data-v-1849217c]{width:24px;height:24px;border-radius:2px;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:1px solid #d9d9d9}.color-option.selected[data-v-1849217c]{border:2px solid #1890ff;box-shadow:0 0 0 2px rgba(24,144,255,.2)}.custom-color-selector[data-v-1849217c]{-ms-grid-column:span 4;grid-column:span 4;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;margin-top:4px}.operator-wrap[data-v-438a11a0]{height:40px;display:-ms-flexbox;display:flex;gap:10px}.search-wrap[data-v-438a11a0]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:8px 16px}.operator-wrap[data-v-36d30832]{height:40px;display:-ms-flexbox;display:flex;gap:10px}.search-wrap[data-v-36d30832]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:8px 16px}.search-section[data-v-0f79c48e]{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e8e8e8}.filter-tip[data-v-0f79c48e]{margin-bottom:8px;padding:4px 8px;background:#fffbe6;border:1px solid #ffe58f;border-radius:4px;color:#8c8c8c;font-size:12px}.filter-tip .anticon[data-v-0f79c48e]{margin-right:4px;color:#faad14}.selected-tip[data-v-0f79c48e]{margin-top:12px;padding:8px 12px;background:#e6f7ff;border-radius:4px;color:#595959}.class-info-container[data-v-61b11a5e]{height:calc(100vh - 160px);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.class-info-container[data-v-61b11a5e] .ant-card-body{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;padding:16px}.filter-section[data-v-61b11a5e]{padding:12px 0;border-bottom:1px solid #e8e8e8;margin-bottom:16px}.content-layout[data-v-61b11a5e]{display:-ms-flexbox;display:flex;gap:16px;-ms-flex:1;flex:1;overflow:hidden;min-height:0}.class-list-section[data-v-61b11a5e]{width:320px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;border-right:1px solid #e8e8e8;padding-right:16px;overflow:hidden;min-height:0;-ms-flex-negative:0;flex-shrink:0}.section-header[data-v-61b11a5e]{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;margin-bottom:12px;-ms-flex-negative:0;flex-shrink:0}.section-title[data-v-61b11a5e]{font-size:16px;font-weight:500;color:#262626}.class-card-list[data-v-61b11a5e]{-ms-flex:1;flex:1;overflow-y:auto;min-height:0;padding-right:4px}.class-card[data-v-61b11a5e]{padding:16px;background:#fff;border:1px solid #e8e8e8;border-radius:8px;cursor:pointer;transition:all .3s;margin-bottom:12px}.class-card[data-v-61b11a5e]:hover{box-shadow:0 2px 8px rgba(0,0,0,.1)}.class-card.active[data-v-61b11a5e]{border-color:#1890ff;background:#e6f7ff}.card-header[data-v-61b11a5e]{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center;margin-bottom:8px}.class-code[data-v-61b11a5e]{font-size:12px;color:#8c8c8c}.class-name[data-v-61b11a5e]{font-size:14px;font-weight:500;margin:4px 0;color:#262626}.class-info[data-v-61b11a5e]{font-size:12px;color:#8c8c8c;margin-bottom:4px}.class-cert-info[data-v-61b11a5e]{font-size:11px;color:#1890ff;margin-bottom:8px}.class-stats[data-v-61b11a5e]{display:-ms-flexbox;display:flex;gap:16px;font-size:12px;color:#595959}.class-stats .stat-item[data-v-61b11a5e]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:4px}.student-section[data-v-61b11a5e]{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.header-actions[data-v-61b11a5e],.header-left[data-v-61b11a5e]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.selected-class-name[data-v-61b11a5e]{font-size:14px;color:#1890ff}.student-table-wrapper[data-v-61b11a5e]{-ms-flex:1;flex:1;overflow:auto}.table-toolbar[data-v-61b11a5e]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin-bottom:10px;padding:8px;background:#fafafa;border:1px solid #e8e8e8;border-radius:4px}.progress-detail-content .progress-info-section[data-v-61b11a5e],.progress-detail-content .student-info-section[data-v-61b11a5e]{margin-bottom:20px}.progress-detail-content .attendance-section[data-v-61b11a5e]{margin-top:20px}.progress-detail-content .attendance-section h4[data-v-61b11a5e]{font-weight:500;color:#262626}.notify-config .config-cards[data-v-5ae1ca92]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:16px}.notify-config .config-card[data-v-5ae1ca92]{-ms-flex:0 0 calc(50% - 8px);flex:0 0 calc(50% - 8px);min-width:380px;transition:opacity .3s}.notify-config .config-card.config-card-disabled[data-v-5ae1ca92]{opacity:.6}.notify-config .config-card .card-title[data-v-5ae1ca92]{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;-ms-flex-align:center;align-items:center}.notify-config .config-card .card-title-text[data-v-5ae1ca92]{font-weight:500;font-size:14px}.notify-config .config-card .card-body[data-v-5ae1ca92] .ant-form-item{margin-bottom:8px}.notify-config .config-card .card-disabled-text[data-v-5ae1ca92]{color:#999;text-align:center;padding:12px 0;font-size:13px}.notify-config .config-footer[data-v-5ae1ca92]{margin-top:24px;text-align:center}.course-index-container[data-v-523bdce6]{min-height:calc(100vh - 160px)}.ant-tabs-bar{margin-bottom:16px}.course-index-container .course-header[data-v-523bdce6]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px;font-size:16px;font-weight:500}.course-index-container .back-icon[data-v-523bdce6]{font-size:16px;cursor:pointer;transition:color .3s}.course-index-container .back-icon[data-v-523bdce6]:hover{color:#1890ff}.ant-tabs-nav{font-size:15px;font-weight:500}