.blackboard-shell{min-height:calc(100vh - 86px);padding:20px 24px 28px;background:#f8fafc;color:#1e293b}.blackboard-shell__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;min-height:72px;padding:6px 2px 18px;border-bottom:1px solid #e8eef5}.blackboard-shell__eyebrow{margin-bottom:5px;color:#2563eb;font-size:12px;font-weight:700;letter-spacing:.08em}.blackboard-shell__header h1{margin:0;color:#0f172a;font-size:25px;font-weight:700}.blackboard-shell__header p{margin:7px 0 0;color:#64748b;font-size:14px}.blackboard-shell__actions{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px}.blackboard-shell__body{margin-top:18px}.blackboard-panel{padding:20px;border:1px solid #e5eaf1;border-radius:8px;background:#fff}.blackboard-filter{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;margin-bottom:16px}.blackboard-filter .el-input,.blackboard-filter .el-select{width:210px}.blackboard-metrics{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:14px;margin-bottom:18px}.blackboard-metric{padding:17px 18px;border:1px solid #e5eaf1;border-radius:8px;background:#fff}.blackboard-metric__label{color:#64748b;font-size:13px}.blackboard-metric__value{margin-top:5px;color:#0f172a;font-size:26px;font-weight:700}.blackboard-muted{color:#94a3b8}.blackboard-status-tabs{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:28px;min-height:48px;margin:0 -2px 14px;border-bottom:1px solid #e8eef5}.blackboard-status-tab{position:relative;height:48px;padding:0 2px;border:0;background:transparent;color:#475569;font:inherit;cursor:pointer}.blackboard-status-tab span{margin-left:5px;color:#94a3b8}.blackboard-status-tab.is-active{color:#2563eb;font-weight:600}.blackboard-status-tab.is-active:after{position:absolute;right:0;bottom:-1px;left:0;height:2px;background:#2563eb;content:""}.blackboard-status-tab.is-active span{color:#2563eb}.blackboard-campaign-table{border:1px solid #e5eaf1;border-radius:6px}.blackboard-campaign-table:before,.blackboard-group-table:before{display:none}.blackboard-campaign-table th,.blackboard-group-table th{background:#f8fafc;color:#475569;font-weight:600}.blackboard-campaign-table td,.blackboard-campaign-table th,.blackboard-group-table td,.blackboard-group-table th{border-color:#edf1f6}.blackboard-campaign-table .is-cancelled{color:#94a3b8}.blackboard-progress-cell{width:118px}.blackboard-progress-cell>span{display:block;margin-bottom:7px;color:#334155;font-size:13px}.blackboard-progress-cell .el-progress-bar__outer{background:#e2e8f0}.blackboard-count--excellent{color:#16a34a}.blackboard-count--unqualified{color:#dc2626;font-weight:600}.blackboard-action-buttons{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;gap:8px;min-height:32px;white-space:nowrap}.blackboard-action-buttons .el-button+.el-button{margin-left:0}.blackboard-pagination{margin-top:18px;text-align:right}.blackboard-detail-toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:16px;margin-bottom:16px}.blackboard-detail-toolbar .el-input{width:260px}.blackboard-task-groups{overflow:hidden;border:1px solid #e5eaf1;border-radius:6px}.blackboard-task-group+.blackboard-task-group{border-top:1px solid #dbe4ef}.blackboard-task-group__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:100%;min-height:50px;padding:0 16px;border:0;background:#f8fafc;color:#334155;font:inherit;text-align:left;cursor:pointer}.blackboard-task-group__header strong{min-width:76px;color:#2563eb;font-size:15px}.blackboard-task-group__arrow{width:24px;color:#64748b;-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease}.blackboard-task-group__arrow.is-collapsed{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.blackboard-task-group__count{width:88px;color:#475569;font-size:13px}.blackboard-task-group__progress{width:160px;height:6px;overflow:hidden;border-radius:4px;background:#e2e8f0}.blackboard-task-group__progress span{display:block;height:100%;border-radius:4px;background:#2563eb}.blackboard-task-group__result{margin-left:auto;color:#16a34a;font-size:13px}.blackboard-task-group__result em{margin-left:14px;color:#dc2626;font-style:normal}.blackboard-group-table{width:100%}.blackboard-class-picker__toolbar{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;padding:10px 14px;border:1px solid #dbe6f1;background:#f8fbfe}.blackboard-class-picker__toolbar>span{color:#718398;font-size:12px}.blackboard-grade-groups{max-height:320px;overflow-y:auto;padding-right:4px}.blackboard-grade-group{margin-top:12px;border:1px solid #e4ebf2}.blackboard-grade-group__header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;min-height:42px;padding:0 14px;background:#f5f7fa}.blackboard-grade-group__header strong{margin-right:8px;color:#303133;font-size:14px}.blackboard-grade-group__header span{color:#909399;font-size:12px}.blackboard-class-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:12px 16px;padding:14px}.blackboard-class-list .el-checkbox{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-right:0}.blackboard-class-empty{padding:24px 12px;border:1px dashed #dcdfe6;color:#909399;text-align:center}.blackboard-class-empty+.blackboard-muted,.blackboard-class-picker+.blackboard-muted{margin-top:8px;font-size:12px}.blackboard-detail-items{margin-top:4px}.blackboard-detail-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid #f0f2f5}.blackboard-detail-item:last-child{border-bottom:0}.blackboard-detail-item__body{-webkit-box-flex:1;-ms-flex:1;flex:1}.blackboard-detail-item__name{color:#303133;font-weight:600}.blackboard-detail-item__criteria{margin-top:4px;color:#909399;font-size:12px;line-height:1.7}.blackboard-photo{width:100%;max-height:46vh;margin-top:10px;border-radius:5px;-o-object-fit:contain;object-fit:contain;cursor:-webkit-zoom-in;cursor:zoom-in;background:#f3f5f7}.blackboard-submission-meta{margin-top:8px;color:#7a8794;font-size:12px;line-height:1.8}.blackboard-shell .el-button.is-circle{width:32px;min-width:32px;height:32px;min-height:32px;padding:0}@media (max-width:1100px){.blackboard-metrics{grid-template-columns:repeat(2,1fr)}.blackboard-shell__header{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:14px}.blackboard-detail-toolbar,.blackboard-shell__header{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.blackboard-detail-toolbar{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.blackboard-detail-toolbar .el-input{width:100%}.blackboard-task-group__progress{width:110px}}.blackboard-photo-export[data-v-0b541364]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.blackboard-photo-export__history[data-v-0b541364]{margin-left:10px}.blackboard-photo-export__dot[data-v-0b541364]{display:inline-block;width:7px;height:7px;margin-left:3px;border-radius:50%;background:#e6a23c;vertical-align:1px}.blackboard-photo-export__intro[data-v-0b541364],.blackboard-photo-export__job-head[data-v-0b541364]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:16px}.blackboard-photo-export__intro[data-v-0b541364]{padding:14px 16px;border-radius:8px;background:#f5f7fa}.blackboard-photo-export__intro p[data-v-0b541364],.blackboard-photo-export__message[data-v-0b541364],.blackboard-photo-export__notice[data-v-0b541364],.blackboard-photo-export__summary[data-v-0b541364]{margin:6px 0 0;color:#606266;line-height:1.6}.blackboard-photo-export__empty[data-v-0b541364]{padding:42px 0;color:#909399;text-align:center}.blackboard-photo-export__jobs[data-v-0b541364]{max-height:430px;margin-top:16px;overflow-y:auto}.blackboard-photo-export__job[data-v-0b541364]{padding:16px 0;border-bottom:1px solid #ebeef5}.blackboard-photo-export__job[data-v-0b541364]:last-child{border-bottom:0}.blackboard-photo-export__time[data-v-0b541364]{margin-left:10px;color:#909399;font-size:13px}.blackboard-photo-export__job .el-progress[data-v-0b541364]{margin-top:14px}.blackboard-photo-export__notice[data-v-0b541364]{color:#e6a23c}@media (max-width:760px){.blackboard-photo-export__intro[data-v-0b541364],.blackboard-photo-export__job-head[data-v-0b541364]{-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.blackboard-photo-export__intro>.el-button[data-v-0b541364]{-ms-flex-item-align:start;align-self:flex-start}.blackboard-photo-export__time[data-v-0b541364]{display:block;margin:6px 0 0}}.blackboard-photo-export-dialog{max-width:calc(100vw - 32px)}