.dorm-module{--dorm-primary:#0d9488;--dorm-primary-deep:#0f766e;--dorm-primary-soft:#ccfbf1;--dorm-bg:#f0fdfa;--dorm-surface:#fff;--dorm-border:#99f6e4;--dorm-border-muted:#e2e8f0;--dorm-text:#134e4a;--dorm-text-strong:#0f172a;--dorm-muted:#64748b;--dorm-danger:#e11d48;--dorm-radius:12px;--dorm-shadow:0 1px 2px rgba(15,23,42,0.04),0 8px 24px rgba(13,148,136,0.06);color:var(--dorm-text-strong)}.dorm-module,.dorm-module *,.dorm-module :after,.dorm-module :before{-webkit-box-sizing:border-box;box-sizing:border-box}.dorm-module .dorm-card{background:var(--dorm-surface);border:1px solid var(--dorm-border-muted);border-radius:var(--dorm-radius);-webkit-box-shadow:var(--dorm-shadow);box-shadow:var(--dorm-shadow)}.dorm-module .dorm-tip{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:8px;margin:0 0 12px;padding:10px 14px;border-radius:10px;background:var(--dorm-bg);border:1px solid var(--dorm-border);color:var(--dorm-text);font-size:13px;line-height:1.5}.dorm-module .dorm-tip i{color:var(--dorm-primary);margin-top:2px;-ms-flex-negative:0;flex-shrink:0}.dorm-module .danger-text{color:var(--dorm-danger)!important}.dorm-module .el-button--primary{background-color:var(--dorm-primary);border-color:var(--dorm-primary)}.dorm-module .el-button--primary:focus,.dorm-module .el-button--primary:hover{background-color:var(--dorm-primary-deep);border-color:var(--dorm-primary-deep)}.dorm-module .el-button--text,.dorm-module .el-tabs__item.is-active{color:var(--dorm-primary-deep)}.dorm-module .el-pagination.is-background .el-pager li:not(.disabled).active,.dorm-module .el-tabs__active-bar{background-color:var(--dorm-primary)}@media (prefers-reduced-motion:reduce){.dorm-module *{-webkit-transition:none!important;transition:none!important}}.content-az>section.dorm-board-page,.content-az>section.dorm-building-page,.content-az>section.dorm-v3-page,.content-az section.dorm-board-page,.content-az section.dorm-building-page,.content-az section.dorm-v3-page{height:100%!important;max-height:100%!important;min-height:0!important;overflow:hidden!important;-webkit-box-sizing:border-box;box-sizing:border-box}.dorm-v3-page[data-v-2f4d4130]{height:100%;max-height:100%;min-height:0;overflow:hidden;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;color:#263548}.page-head[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:10px;padding-bottom:12px;border-bottom:1px solid #e8ecf1}.page-head h2[data-v-2f4d4130]{margin:0;font-size:18px;font-weight:600}.page-head p[data-v-2f4d4130]{margin:5px 0 0;color:#7a8797;font-size:13px}.page-head[data-v-2f4d4130]{-ms-flex-negative:0;flex-shrink:0}.page-head>.department-pane[data-v-2f4d4130]{width:0}.attendance-main[data-v-2f4d4130]{min-width:0;overflow:hidden;padding:12px 14px}.attendance-main[data-v-2f4d4130],.dorm-v3-tabs[data-v-2f4d4130]{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dorm-v3-tabs[data-v-2f4d4130]{background:transparent}.dorm-v3-tabs[data-v-2f4d4130] .el-tabs__header{-ms-flex-negative:0;flex-shrink:0;margin-bottom:14px}.dorm-v3-tabs[data-v-2f4d4130] .el-tabs__content{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0;overflow:auto}.config-card[data-v-2f4d4130]{padding:8px 4px 0}.config-card .el-form[data-v-2f4d4130]{max-width:1080px}.config-explain[data-v-2f4d4130]{max-width:1080px;margin-bottom:14px}.config-explain[data-v-2f4d4130] .el-alert__title{line-height:1.5}.scope-caption[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:7px;min-height:34px;margin-bottom:4px;color:#334155;font-size:13px}.scope-caption i[data-v-2f4d4130]{color:#3b82f6}.scope-caption small[data-v-2f4d4130]{color:#94a3b8;margin-left:4px}.form-tip[data-v-2f4d4130]{color:#8a96a5;font-size:12px;margin-left:14px}.toolbar-row[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;margin:0 0 12px}.mode-tip[data-v-2f4d4130]{-webkit-box-flex:1;-ms-flex:1;flex:1;min-width:220px;color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:7px 10px;font-size:12px;line-height:1.4}.mode-tip i[data-v-2f4d4130]{margin-right:5px;color:#0d9488}.summary-content[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:14px}.summary-block[data-v-2f4d4130]{padding:4px 2px 16px;border-bottom:1px solid #e8ecf1}.summary-block-head[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:14px}.summary-block-head span[data-v-2f4d4130]{color:#8290a0;font-size:12px}.metric-grid[data-v-2f4d4130]{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px}.metric-grid div[data-v-2f4d4130]{background:#f7f9fb;border-radius:4px;padding:10px 9px}.metric-grid em[data-v-2f4d4130]{display:block;color:#7e8b9b;font-size:12px;font-style:normal;white-space:nowrap}.metric-grid b[data-v-2f4d4130]{display:block;margin-top:5px;font-size:20px}.metric-grid .ok[data-v-2f4d4130]{color:#18a66f}.metric-grid .bad[data-v-2f4d4130]{color:#e45d5d}.metric-grid .wait[data-v-2f4d4130]{color:#d99b2b}.metric-card[data-v-2f4d4130]{cursor:pointer;-webkit-transition:background-color .16s ease,-webkit-box-shadow .16s ease,-webkit-transform .16s ease;transition:background-color .16s ease,-webkit-box-shadow .16s ease,-webkit-transform .16s ease;transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease;transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease,-webkit-box-shadow .16s ease,-webkit-transform .16s ease}.metric-card[data-v-2f4d4130]:hover{background:#fff;-webkit-box-shadow:0 6px 16px rgba(15,23,42,.08);box-shadow:0 6px 16px rgba(15,23,42,.08);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.summary-link[data-v-2f4d4130]{cursor:pointer;color:#64748b}.summary-link[data-v-2f4d4130]:hover{color:#0d9488}.class-summary[data-v-2f4d4130] .summary-click-cell,.class-summary[data-v-2f4d4130] .summary-click-row{cursor:pointer}.class-summary[data-v-2f4d4130] .summary-click-row:hover>td{background:#f8fafc!important}.rule-table[data-v-2f4d4130] td,.rule-table[data-v-2f4d4130] th{text-align:center}.rule-table[data-v-2f4d4130] .cell{padding-left:12px;padding-right:12px}.rule-time-text[data-v-2f4d4130]{display:inline-block;white-space:nowrap;color:#334155;font-size:13px}.danger-text[data-v-2f4d4130]{color:#ef4444}.danger-text[data-v-2f4d4130]:hover{color:#dc2626}.rule-detail-toggle[data-v-2f4d4130]{margin-top:-4px}.rule-detail-panel[data-v-2f4d4130]{margin-top:4px}.student-avatar[data-v-2f4d4130]{width:28px;height:28px;border-radius:50%;-webkit-box-flex:0;-ms-flex:0 0 28px;flex:0 0 28px;overflow:hidden;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;background:#ccfbf1;color:#0f766e;font-size:12px;font-weight:700}.student-photo[data-v-2f4d4130]{width:28px;height:28px;border-radius:50%;overflow:hidden;background:#f1f5f9;cursor:pointer;vertical-align:middle}.student-photo-error[data-v-2f4d4130]{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;width:100%;height:100%;color:#94a3b8;font-size:16px}.grade-preview[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:2px;line-height:1.35;min-width:0}.grade-preview-line[data-v-2f4d4130]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#334155}.grade-selected-box[data-v-2f4d4130]{margin-top:8px;padding:8px 10px;border-radius:8px;border:1px solid #e5eaf1;background:#fbfdff;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:10px}.grade-selected-label[data-v-2f4d4130]{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;margin:0;color:#94a3b8;font-size:12px;line-height:1.6;white-space:nowrap}.grade-selected-lines[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:2px;min-width:0;-webkit-box-flex:1;-ms-flex:1;flex:1}.grade-selected-line[data-v-2f4d4130]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#334155;font-size:13px;line-height:1.5}.week-wrap[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:6px}.week-checkbox-group[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:8px}.week-chip[data-v-2f4d4130]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid #dbe3ee;background:#fff;color:#475569;border-radius:6px;padding:7px 12px;min-width:58px;cursor:pointer;-webkit-transition:all .16s ease;transition:all .16s ease;line-height:1}.week-chip[data-v-2f4d4130]:hover{border-color:#38b2a6;color:#14b8a6;background:#f0fdfa}.week-chip.active[data-v-2f4d4130]{border-color:#14b8a6;background:#14b8a6;color:#fff}.week-tip[data-v-2f4d4130]{margin-left:0}.rule-time-block[data-v-2f4d4130]{width:100%;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}.rule-time-inputs[data-v-2f4d4130]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.rule-time-inputs label[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:5px;color:#64748b;font-size:12px}.rule-time-inputs[data-v-2f4d4130] .el-date-editor.el-input{width:100%}.rule-time-axis[data-v-2f4d4130]{border:1px solid #e5edf6;border-radius:10px;padding:10px 12px 8px;background:-webkit-gradient(linear,left top,left bottom,from(#fbfdff),to(#f8fafc));background:linear-gradient(180deg,#fbfdff,#f8fafc)}.axis-track[data-v-2f4d4130]{position:relative;display:grid;grid-template-columns:56% 44%;height:32px;overflow:hidden;border-radius:999px;color:#334155;font-size:12px;line-height:32px;text-align:center}.axis-track[data-v-2f4d4130]:after{content:"";position:absolute;left:56%;top:0;bottom:0;width:2px;background:#0d9488;-webkit-box-shadow:0 0 0 4px rgba(13,148,136,.12);box-shadow:0 0 0 4px rgba(13,148,136,.12)}.axis-before[data-v-2f4d4130]{background:#ecfdf5;color:#047857}.axis-after[data-v-2f4d4130]{background:#fff7ed;color:#c2410c}.rule-time-axis.evening .axis-after[data-v-2f4d4130]{background:#eff6ff;color:#1d4ed8}.axis-points[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-top:8px;color:#94a3b8;font-size:12px}.axis-points span[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:1px}.axis-points span[data-v-2f4d4130]:nth-child(2){text-align:center;color:#0f766e}.axis-points span[data-v-2f4d4130]:last-child{text-align:right}.axis-points b[data-v-2f4d4130]{color:#334155;font-size:13px}.time-rule-tip[data-v-2f4d4130]{margin-left:0;line-height:1.5}.dialog-pager-wrap[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.dorm-grade-tooltip .grade-tooltip-content[data-v-2f4d4130]{line-height:1.6}.dialog-pager[data-v-2f4d4130]{margin-top:14px;margin-left:0;text-align:right;-webkit-box-shadow:none;box-shadow:none;padding:0 0 0 16px;background:transparent}.bar-line[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;margin-top:16px;color:#768495;font-size:12px}.bar-line i[data-v-2f4d4130]{-webkit-box-flex:1;-ms-flex:1;flex:1;background:#e9edf2;height:6px;border-radius:3px;overflow:hidden}.bar-line i b[data-v-2f4d4130]{display:block;height:100%;background:#21a875}.class-summary[data-v-2f4d4130]{min-width:0}.section-head[data-v-2f4d4130]{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;margin:0 2px 10px}.section-head>div[data-v-2f4d4130]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;gap:10px}.section-head strong[data-v-2f4d4130]{font-size:15px}.section-head small[data-v-2f4d4130],.section-head span[data-v-2f4d4130]{color:#8a96a5;font-size:12px}@media (max-width:1280px){.metric-grid[data-v-2f4d4130]{grid-template-columns:repeat(4,minmax(96px,1fr))}}