.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-attendance,.content-az>section.dorm-building-page,.content-az>section.dorm-v3-page,.content-az section.dorm-board-page,.content-az section.dorm-building-attendance,.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}@media screen and (min-width:769px){section.dorm-building-attendance .building-main,section.dorm-building-attendance .dp-right,section.dorm-v3-page .dp-right{overflow:hidden!important}}.dorm-building-attendance[data-v-3d20db7c]{height:100%;min-height:0;overflow:hidden;color:#263548}.dorm-building-sidebar[data-v-3d20db7c]{width:200px;min-width:200px;padding:18px 14px;overflow:hidden}.sidebar-head[data-v-3d20db7c]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding:0 4px 14px}.sidebar-head strong[data-v-3d20db7c]{font-size:16px}.sidebar-head span[data-v-3d20db7c]{margin-left:8px;color:#94a3b8;font-size:12px}.sidebar-head i[data-v-3d20db7c]{color:var(--btn-primary,#2563eb);font-size:18px}.building-list[data-v-3d20db7c]{height:calc(100% - 76px);margin-top:12px;overflow:auto}.building-item[data-v-3d20db7c]{padding:13px 12px;margin-bottom:8px;border:1px solid #e8edf3;border-radius:8px;background:#fff;cursor:pointer;-webkit-transition:all .2s;transition:all .2s}.building-item.all-building[data-v-3d20db7c]:not(.active){background:#fbfdff}.building-item[data-v-3d20db7c]:hover{border-color:#99f6e4;background:#f0fdfa}.building-item.active[data-v-3d20db7c],.building-item.all-building.active[data-v-3d20db7c]{border-color:#0d9488;background:#ccfbf1;-webkit-box-shadow:inset 3px 0 0 #0d9488;box-shadow:inset 3px 0 0 #0d9488}.building-item.active .building-item-title[data-v-3d20db7c],.building-item.all-building.active .building-item-title[data-v-3d20db7c]{color:#0f766e}.building-item-title[data-v-3d20db7c]{font-size:14px;font-weight:600}.building-item-meta[data-v-3d20db7c],.building-item-title[data-v-3d20db7c]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between}.building-item-meta[data-v-3d20db7c]{margin-top:8px;color:#475569;font-size:12px}.building-item-meta.muted[data-v-3d20db7c]{margin-top:4px;color:#94a3b8}.building-item-meta .danger[data-v-3d20db7c]{color:#ef4444}.empty-building[data-v-3d20db7c]{padding:60px 20px;color:#94a3b8;text-align:center}.building-main[data-v-3d20db7c]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-width:0;min-height:0;padding:12px 14px;overflow:hidden}.building-toolbar[data-v-3d20db7c]{-ms-flex-negative:0;flex-shrink:0;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;gap:16px;padding-bottom:12px;border-bottom:1px solid #eef2f7}.scope-title[data-v-3d20db7c]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;font-size:18px}.scope-title i[data-v-3d20db7c]{color:var(--btn-primary,#2563eb)}.scope-subtitle[data-v-3d20db7c]{margin-top:7px;color:#94a3b8;font-size:12px}.toolbar-actions[data-v-3d20db7c]{display:-webkit-box;display:-ms-flexbox;display:flex;gap:8px;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.building-content[data-v-3d20db7c]{-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;gap:8px;overflow:hidden}.building-mode-tip[data-v-3d20db7c]{-ms-flex-negative:0;flex-shrink:0;padding:6px 0 2px;color:#64748b;font-size:12px}.mode-dot[data-v-3d20db7c]{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:#94a3b8}.mode-dot.realtime[data-v-3d20db7c]{background:#10b981}.mode-dot.history[data-v-3d20db7c]{background:#64748b}.mode-time[data-v-3d20db7c]{margin-left:12px;color:#94a3b8}.summary-block[data-v-3d20db7c]{-ms-flex-negative:0;flex-shrink:0;padding:0 2px 10px;border-bottom:1px solid #e8ecf1}.summary-block.is-collapsed[data-v-3d20db7c]{padding-bottom:4px}.summary-block-head[data-v-3d20db7c]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-bottom:8px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.summary-block.is-collapsed .summary-block-head[data-v-3d20db7c]{margin-bottom:0}.summary-block-title[data-v-3d20db7c]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px;min-width:0}.summary-block-title i[data-v-3d20db7c]{-ms-flex-negative:0;flex-shrink:0;color:#94a3b8;font-size:12px}.summary-block-head strong[data-v-3d20db7c]{font-size:14px}.summary-link[data-v-3d20db7c]{-ms-flex-negative:0;flex-shrink:0;cursor:pointer;color:#64748b;font-size:12px}.summary-link[data-v-3d20db7c]:hover{color:#0d9488}.building-metrics[data-v-3d20db7c]{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px}.metric-card[data-v-3d20db7c]{min-height:64px;padding:10px 12px;border:1px solid #edf1f5;border-radius:6px;background:#f7f9fb;cursor:pointer;-webkit-transition:background-color .16s ease,-webkit-box-shadow .16s ease;transition:background-color .16s ease,-webkit-box-shadow .16s ease;transition:background-color .16s ease,box-shadow .16s ease;transition:background-color .16s ease,box-shadow .16s ease,-webkit-box-shadow .16s ease}.metric-card[data-v-3d20db7c]:hover{border-color:#99f6e4;background:#fff;-webkit-box-shadow:0 4px 12px rgba(15,23,42,.06);box-shadow:0 4px 12px rgba(15,23,42,.06)}.metric-card.disabled[data-v-3d20db7c]{cursor:default;opacity:.7}.metric-card.disabled[data-v-3d20db7c]:hover{border-color:#edf1f5;background:#f7f9fb;-webkit-box-shadow:none;box-shadow:none}.metric-card em[data-v-3d20db7c]{display:block;color:#64748b;font-size:12px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-card b[data-v-3d20db7c]{display:block;margin-top:6px;color:#334155;font-size:20px;line-height:1.2}.metric-card b.ok[data-v-3d20db7c]{color:#16a34a}.metric-card b.wait[data-v-3d20db7c],.metric-card b.warn[data-v-3d20db7c]{color:#d97706}.metric-card b.bad[data-v-3d20db7c]{color:#dc2626}.metric-link[data-v-3d20db7c]{color:#2563eb;cursor:pointer}.metric-link[data-v-3d20db7c]:hover{text-decoration:underline}.scope-summary[data-v-3d20db7c]{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0;min-width:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.section-head[data-v-3d20db7c]{-ms-flex-negative:0;flex-shrink:0;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 6px}.section-head>div[data-v-3d20db7c]{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-3d20db7c]{font-size:14px}.section-head span[data-v-3d20db7c]{color:#8a96a5;font-size:12px}.scope-table-host[data-v-3d20db7c]{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0;min-width:0;overflow:hidden}.scope-table-host[data-v-3d20db7c] .el-table{height:100%!important}.scope-table-host[data-v-3d20db7c] .el-table__header-wrapper{overflow:hidden!important}.scope-table-host[data-v-3d20db7c] .el-table--scrollable-y .el-table__body-wrapper{overflow-x:hidden!important}.scope-table-host[data-v-3d20db7c] .el-table__body-wrapper{overflow-y:auto!important}.scope-table[data-v-3d20db7c] .el-table__row{cursor:pointer}.scope-table[data-v-3d20db7c]{width:100%}.scope-table[data-v-3d20db7c] .el-table__body td,.scope-table[data-v-3d20db7c] .el-table__header th{padding-left:4px;padding-right:4px}.scope-table[data-v-3d20db7c] .el-table__body .cell,.scope-table[data-v-3d20db7c] .el-table__header .cell{padding-left:2px;padding-right:2px;white-space:nowrap}.scope-name[data-v-3d20db7c]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:7px;font-weight:600}.scope-name.building[data-v-3d20db7c]{color:#1f3a5f}.scope-name.floor[data-v-3d20db7c]{color:#334155}.scope-name.room[data-v-3d20db7c]{color:#64748b;font-weight:500}.detail-toolbar[data-v-3d20db7c]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;margin-bottom:10px}.detail-search-input[data-v-3d20db7c]{width:220px;-webkit-box-flex:0;-ms-flex:0 0 220px;flex:0 0 220px}.student-avatar[data-v-3d20db7c],.student-photo[data-v-3d20db7c]{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;width:28px;height:28px;border-radius:50%}.student-avatar[data-v-3d20db7c]{color:#0f766e;background:#ccfbf1;font-size:12px;font-weight:700}.student-photo[data-v-3d20db7c]{overflow:hidden;-o-object-fit:cover;object-fit:cover;background:#f1f5f9;cursor:pointer}.student-photo-error[data-v-3d20db7c]{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}.pagination-wrap[data-v-3d20db7c]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.detail-pager[data-v-3d20db7c]{margin-top:14px;padding-top:2px}@media (max-width:1480px){.building-metrics[data-v-3d20db7c]{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (max-width:1280px){.dorm-building-sidebar[data-v-3d20db7c]{width:240px;min-width:240px}.building-metrics[data-v-3d20db7c]{grid-template-columns:repeat(4,minmax(96px,1fr))}.section-head span[data-v-3d20db7c]{display:none}.scope-table-host[data-v-3d20db7c] .el-table--scrollable-y .el-table__body-wrapper{overflow-x:auto!important}}.building-detail-dialog.metric-detail-dialog{margin-top:6vh!important}.building-detail-dialog.metric-detail-dialog .el-dialog__body{padding-top:16px;padding-bottom:12px}.building-detail-dialog .metric-detail-table-wrap{height:460px;min-height:460px;overflow:hidden}.building-detail-dialog .metric-detail-table{height:100%}.building-detail-dialog .metric-detail-table .el-table__body-wrapper{overflow-x:auto!important;overflow-y:auto!important}.building-detail-dialog .metric-detail-table .el-table__empty-block{min-height:380px}