.year-view-container[data-v-2b03ab51]{height:100%;display:flex;flex-direction:column;background:#f5f7fa;padding:16px 20px}.toolbar[data-v-2b03ab51]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:#fff;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,.08);margin-bottom:12px}.toolbar-left[data-v-2b03ab51]{display:flex;align-items:center;gap:20px}.toolbar-title[data-v-2b03ab51]{font-size:18px;font-weight:600;color:#303133;position:relative;padding-left:12px}.toolbar-title[data-v-2b03ab51]:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:18px;background:linear-gradient(180deg,#409eff,#66b1ff);border-radius:2px}.year-picker[data-v-2b03ab51]{display:flex;align-items:center;gap:8px;padding:6px 14px;background:linear-gradient(135deg,#f0f7ff,#e6f4ff);border-radius:20px;border:1px solid #b3d8ff}.container[data-v-2b03ab51] .el-pagination__sizes,.container[data-v-2b03ab51] .el-pagination__total{padding-top:5px!important}.year-picker i[data-v-2b03ab51]{cursor:pointer;padding:6px;color:#409eff;font-size:14px;transition:all .2s;border-radius:50%;background:#fff}.year-picker i[data-v-2b03ab51]:hover{background:#409eff;color:#fff;transform:scale(1.1)}.year-value[data-v-2b03ab51]{font-size:20px;font-weight:700;color:#409eff;min-width:56px;text-align:center;letter-spacing:2px}.toolbar-right[data-v-2b03ab51]{display:flex;align-items:center;gap:20px}.toolbar-info[data-v-2b03ab51]{font-size:13px;color:#606266;background:#f5f7fa;padding:6px 12px;border-radius:4px}.toolbar-legend[data-v-2b03ab51]{display:flex;align-items:center;gap:16px;padding:6px 14px;background:#fafafa;border-radius:8px}.legend-item[data-v-2b03ab51]{display:flex;align-items:center;gap:8px}.legend-color-block[data-v-2b03ab51]{width:16px;height:16px;border-radius:4px;flex-shrink:0}.legend-text[data-v-2b03ab51]{font-size:13px;color:#606266;font-weight:500}.table-area[data-v-2b03ab51]{flex:1;background:#fff;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.06);overflow:hidden;display:flex;flex-direction:column;border:1px solid #ebeef5}.table-wrapper[data-v-2b03ab51]{flex:1;overflow:hidden;display:flex;flex-direction:column;position:relative}.table-header-container[data-v-2b03ab51]{overflow:hidden;flex-shrink:0;background:#fff;border-bottom:2px solid #409eff;box-shadow:0 2px 8px rgba(64,158,255,.1)}.table-header-container table[data-v-2b03ab51]{background:#fff}.year-table[data-v-2b03ab51]{border-collapse:collapse;table-layout:fixed}.year-table td[data-v-2b03ab51],.year-table th[data-v-2b03ab51]{border:1px solid #d4d4d4;text-align:center;vertical-align:middle;font-size:12px}.fixed-col[data-v-2b03ab51]{position:sticky;left:0;z-index:10;width:60px;min-width:60px;background:#fff;box-shadow:2px 0 8px rgba(0,0,0,.06)}.fixed-col.lecturer-col[data-v-2b03ab51],.lecturer-col[data-v-2b03ab51]{background:linear-gradient(180deg,#f0f7ff,#e6f2ff)}.lecturer-col[data-v-2b03ab51]{color:#303133;font-weight:600;font-size:13px;letter-spacing:2px;border-right:1px solid #d4e8ff}.header-row[data-v-2b03ab51]{background:linear-gradient(180deg,#f8fafc,#f1f5f9)}.header-row th[data-v-2b03ab51]{height:26px;line-height:26px;padding:0;font-weight:600;font-size:12px;color:#303133}.month-row[data-v-2b03ab51]{height:32px}.month-row .month-cell[data-v-2b03ab51]{background:linear-gradient(180deg,#f0f7ff,#e6f2ff);font-weight:600;color:#303133;font-size:12px;letter-spacing:1px;border-bottom:1px solid #d4e8ff}.month-row .month-cell.header-clickable[data-v-2b03ab51],.week-row .week-cell.header-clickable[data-v-2b03ab51]{cursor:pointer;transition:all .2s}.month-row .month-cell.header-clickable[data-v-2b03ab51]:hover,.week-row .week-cell.header-clickable[data-v-2b03ab51]:hover{background:linear-gradient(180deg,#d4e8ff,#c0d9f5)!important;color:#409eff}.day-week-row[data-v-2b03ab51]{height:28px}.day-week-row .day-cell[data-v-2b03ab51]{font-weight:600;color:#303133;font-size:11px;transition:all .2s;background:#fff}.day-week-row .day-cell.is-today[data-v-2b03ab51]{background:linear-gradient(135deg,#409eff,#66b1ff);color:#fff;font-weight:700;box-shadow:0 2px 8px rgba(64,158,255,.4)}.day-week-row .day-cell.is-special[data-v-2b03ab51]{background:#f8fafc;color:#909399;font-weight:500;font-size:10px;border-left:1px dashed #e4e7ed}.week-row[data-v-2b03ab51]{height:26px;background:#fafafa}.week-row .week-cell[data-v-2b03ab51]{font-weight:500;color:#606266;font-size:11px;transition:all .2s;background:#fafafa}.week-row .week-cell.is-today[data-v-2b03ab51]{background:linear-gradient(135deg,#ecf5ff,#d4e8ff);color:#409eff;font-weight:600}.placeholder-cell[data-v-2b03ab51]{border:none;background:transparent}.table-body-container[data-v-2b03ab51]{flex:1;overflow:auto;background:#fff}.table-body-container table[data-v-2b03ab51]{background:#fff}.lecturer-row[data-v-2b03ab51]{height:29px;transition:all .2s ease}.lecturer-row[data-v-2b03ab51]:hover{background:linear-gradient(90deg,#f0f7ff,#ecf5ff)}.lecturer-row:hover .lecturer-info .lecturer-name[data-v-2b03ab51]{color:#409eff}.lecturer-cell[data-v-2b03ab51]{padding:2px 2px;text-align:left;height:20px;box-sizing:border-box;background:#fff}.lecturer-name[data-v-2b03ab51]{font-size:11px;color:#303133;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s ease}.lecturer-row:hover .lecturer-name[data-v-2b03ab51]{color:#409eff}.schedule-cell[data-v-2b03ab51]{padding:2px 6px;cursor:pointer;transition:all .2s ease;min-width:28px;height:29px;vertical-align:middle;background:#fff;overflow:hidden;box-sizing:border-box;text-align:center}.schedule-cell .cell-content[data-v-2b03ab51]{justify-content:center}.schedule-cell[data-v-2b03ab51]:hover{background:linear-gradient(180deg,#ecf5ff,#d4e8ff)!important;box-shadow:inset 0 0 0 1px #409eff}.schedule-cell.is-special[data-v-2b03ab51]{background:#fafafa;cursor:default}.schedule-cell.is-special[data-v-2b03ab51]:hover{background:#fafafa}.schedule-cell.is-special.is-special-day[data-v-2b03ab51]{background:linear-gradient(180deg,#f0f7ff,#e6f2ff)}.cell-content[data-v-2b03ab51]{width:100%;height:100%;display:flex;align-items:center;justify-content:center;overflow:hidden}.schedule-text[data-v-2b03ab51]{font-size:11px;color:#303133;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:1.3;min-width:20px;font-weight:500;text-align:center;width:100%}.loading-indicator[data-v-2b03ab51]{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,rgba(64,158,255,.9),rgba(102,177,255,.9));color:#fff;padding:10px 24px;border-radius:20px;font-size:13px;display:flex;align-items:center;gap:8px;box-shadow:0 4px 16px rgba(64,158,255,.4)}.loading-indicator i[data-v-2b03ab51]{font-size:16px}.pagination-wrapper[data-v-2b03ab51]{padding:16px 20px;background:#fff;border-radius:8px;margin-top:12px;box-shadow:0 2px 12px rgba(0,0,0,.06)}.pagination-inner[data-v-2b03ab51]{display:flex;align-items:center;justify-content:space-between;width:100%}.filter-section[data-v-2b03ab51]{display:flex;align-items:center;height:36px}.filter-label[data-v-2b03ab51]{font-size:14px;color:#606266;font-weight:500}.pagination-wrapper[data-v-2b03ab51] .el-pagination{display:flex;align-items:center;font-weight:400;font-size:14px}.pagination-wrapper[data-v-2b03ab51] .el-pagination .el-pagination__sizes{display:flex;align-items:center}.pagination-wrapper[data-v-2b03ab51] .el-pagination .el-pagination__total{display:flex;align-items:center;font-size:13px;color:#909399}.pagination-wrapper[data-v-2b03ab51] .el-pagination.is-background .el-pager li{background:#fff;border:1px solid #e4e7ed;border-radius:6px;margin:0 4px;font-weight:500;min-width:36px;height:36px;line-height:36px;transition:all .2s}.pagination-wrapper[data-v-2b03ab51] .el-pagination.is-background .el-pager li:hover{color:#409eff;border-color:#409eff;background:#ecf5ff}.pagination-wrapper[data-v-2b03ab51] .el-pagination.is-background .el-pager li:not(.disabled).active{background:linear-gradient(135deg,#409eff,#66b1ff);color:#fff;border-color:#409eff;box-shadow:0 2px 8px rgba(64,158,255,.4)}.pagination-wrapper[data-v-2b03ab51] .btn-next,.pagination-wrapper[data-v-2b03ab51] .btn-prev{background:#fff;border:1px solid #e4e7ed;border-radius:6px;padding:0 12px;min-width:36px;height:36px;color:#606266;transition:all .2s}.pagination-wrapper[data-v-2b03ab51] .btn-next:hover,.pagination-wrapper[data-v-2b03ab51] .btn-prev:hover{color:#409eff;border-color:#409eff;background:#ecf5ff}.detail-row[data-v-2b03ab51]{margin-bottom:12px}.table-body-container[data-v-2b03ab51]::-webkit-scrollbar{width:8px;height:8px}.table-body-container[data-v-2b03ab51]::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#c0d8ff,#a0c4ff);border-radius:4px;-webkit-transition:all .2s;transition:all .2s}.table-body-container[data-v-2b03ab51]::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#409eff,#66b1ff)}.table-body-container[data-v-2b03ab51]::-webkit-scrollbar-track{background:#f5f7fa;border-radius:4px}.cell-detail[data-v-2b03ab51]{padding:10px 0}.detail-row[data-v-2b03ab51]{display:flex;margin-bottom:16px;align-items:center}.detail-row[data-v-2b03ab51]:last-child{margin-bottom:0}.detail-row .label[data-v-2b03ab51]{color:#909399;width:80px;flex-shrink:0;font-size:14px}.detail-row .value[data-v-2b03ab51]{color:#303133;font-size:14px;font-weight:500}.dialog-footer[data-v-2b03ab51] .el-button{padding:10px 20px;border-radius:6px;font-weight:500}.dialog-footer[data-v-2b03ab51] .el-button--primary{background:linear-gradient(135deg,#409eff,#66b1ff);border:none;box-shadow:0 2px 8px rgba(64,158,255,.3)}.dialog-footer[data-v-2b03ab51] .el-button--primary:hover{background:linear-gradient(135deg,#337ecc,#409eff);box-shadow:0 4px 12px rgba(64,158,255,.4)}.schedule-dialog[data-v-2b03ab51] .el-dialog{border-radius:12px}.schedule-dialog[data-v-2b03ab51] .el-dialog__header{padding:20px 24px 16px;border-bottom:1px solid #f0f0f0}.schedule-dialog[data-v-2b03ab51] .el-dialog__title{font-size:16px;font-weight:600;color:#303133}.schedule-dialog[data-v-2b03ab51] .el-dialog__body{padding:20px 24px}.schedule-dialog[data-v-2b03ab51] .el-dialog__footer{padding:16px 24px 20px;border-top:1px solid #f0f0f0}.dialog-header-info[data-v-2b03ab51]{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:linear-gradient(135deg,#f8fafc,#f1f5f9);border-radius:8px;margin-bottom:20px}.lecturer-info-mini[data-v-2b03ab51]{display:flex;align-items:center;gap:12px}.lecturer-avatar-mini[data-v-2b03ab51]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;flex-shrink:0}.lecturer-name-mini[data-v-2b03ab51]{font-size:15px;font-weight:600;color:#303133}.date-info[data-v-2b03ab51]{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.date-text[data-v-2b03ab51]{font-size:14px;font-weight:500;color:#303133}.week-text[data-v-2b03ab51]{font-size:12px;color:#909399}.schedule-form[data-v-2b03ab51]{padding:0}.schedule-form[data-v-2b03ab51] .el-form-item{margin-bottom:18px}.schedule-form[data-v-2b03ab51] .el-form-item__label{font-size:13px;color:#606266;font-weight:500}.schedule-form[data-v-2b03ab51] .el-input__inner{border-radius:6px}.schedule-form[data-v-2b03ab51] .el-input__inner:hover{border-color:#c0c4cc}.schedule-form[data-v-2b03ab51] .el-input__inner:focus{border-color:#409eff}.schedule-form[data-v-2b03ab51] .el-textarea__inner{border-radius:6px}.schedule-form[data-v-2b03ab51] .el-textarea__inner:focus{border-color:#409eff}.schedule-form[data-v-2b03ab51] .el-select .el-input__inner{cursor:pointer}.schedule-form[data-v-2b03ab51] .el-radio-group{display:flex;align-items:center;gap:20px;height:40px}.schedule-form[data-v-2b03ab51] .el-radio__inner{border-radius:50%}.schedule-form[data-v-2b03ab51] .el-radio__label{font-size:13px}.schedule-form[data-v-2b03ab51] .el-date-editor .el-input__prefix{color:#909399}.schedule-form[data-v-2b03ab51] .el-date-editor .el-input__icon{line-height:29px}.type-dot[data-v-2b03ab51]{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px}.schedule-form .el-row[data-v-2b03ab51]{margin-bottom:0}.schedule-form .el-col[data-v-2b03ab51]{padding-left:0!important;padding-right:0!important}.schedule-dialog .dialog-footer[data-v-2b03ab51] .el-button{padding:9px 20px;border-radius:6px;font-weight:500;font-size:13px}.schedule-dialog .dialog-footer[data-v-2b03ab51] .el-button--default{background:#fff;border:1px solid #dcdfe6;color:#606266}.schedule-dialog .dialog-footer[data-v-2b03ab51] .el-button--default:hover{color:#409eff;border-color:#c6e2ff;background:#ecf5ff}.schedule-dialog .dialog-footer[data-v-2b03ab51] .el-button--primary{background:linear-gradient(135deg,#409eff,#66b1ff);border:none;box-shadow:0 2px 8px rgba(64,158,255,.3)}.schedule-dialog .dialog-footer[data-v-2b03ab51] .el-button--primary:hover{background:linear-gradient(135deg,#337ecc,#409eff);box-shadow:0 4px 12px rgba(64,158,255,.4);transform:translateY(-1px)}.schedule-dialog .dialog-footer[data-v-2b03ab51] .el-button.is-loading{background:linear-gradient(135deg,#409eff,#66b1ff)}.header-edit-dialog[data-v-2b03ab51] .el-dialog{border-radius:12px}.header-edit-dialog[data-v-2b03ab51] .el-dialog__header{padding:20px 24px 16px;border-bottom:1px solid #f0f0f0}.header-edit-dialog[data-v-2b03ab51] .el-dialog__title{font-size:16px;font-weight:600;color:#303133}.header-edit-dialog[data-v-2b03ab51] .el-dialog__body{padding:20px 24px}.header-edit-dialog[data-v-2b03ab51] .el-dialog__footer{padding:16px 24px 20px;border-top:1px solid #f0f0f0}.header-edit-dialog[data-v-2b03ab51] .el-form-item{margin-bottom:18px}.header-edit-dialog[data-v-2b03ab51] .el-form-item__label{font-size:13px;color:#606266;font-weight:500}.header-edit-dialog[data-v-2b03ab51] .el-input__inner{border-radius:6px}.header-edit-dialog[data-v-2b03ab51] .el-input__inner:focus{border-color:#409eff}.auth-dialog[data-v-2b03ab51] .el-dialog{border-radius:12px}.auth-dialog[data-v-2b03ab51] .el-dialog__header{padding:20px 24px 16px;border-bottom:1px solid #f0f0f0}.auth-dialog[data-v-2b03ab51] .el-dialog__title{font-size:16px;font-weight:600;color:#303133}.auth-dialog[data-v-2b03ab51] .el-dialog__body{padding:0}.auth-dialog[data-v-2b03ab51] .el-dialog__footer{padding:16px 24px 20px;border-top:1px solid #f0f0f0}.auth-dialog-content[data-v-2b03ab51]{padding:20px 24px 24px}.auth-tip[data-v-2b03ab51]{display:flex;align-items:center;gap:8px;padding:12px 16px;background:linear-gradient(135deg,#ecf5ff,#e6f4ff);border-radius:8px;margin-bottom:16px;border:1px solid #b3d8ff}.auth-tip i[data-v-2b03ab51]{color:#409eff;font-size:16px}.auth-tip span[data-v-2b03ab51]{font-size:13px;color:#303133}.auth-table[data-v-2b03ab51]{border-radius:8px;overflow:hidden}.auth-table[data-v-2b03ab51] .el-table__header th{background:linear-gradient(135deg,#f8fafc,#f1f5f9);color:#303133;font-weight:600;font-size:13px;height:29px}.auth-table[data-v-2b03ab51] .el-table__body td{height:48px;font-size:13px}.auth-type-name[data-v-2b03ab51]{font-weight:500;color:#303133}.auth-dialog[data-v-2b03ab51] .el-switch{font-size:12px}.auth-dialog[data-v-2b03ab51] .el-switch__label{color:#606266}.auth-dialog[data-v-2b03ab51] .el-switch__label--active{color:#409eff}