.dorm-board-page[data-v-ad2771fe]{--male:#2563eb;--male-soft:#dbeafe;--female:#db2777;--female-soft:#fce7f3;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%;max-height:100%;min-height:0;overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;padding:4px 4px 8px;background:radial-gradient(1200px 400px at 10% -10%,rgba(13,148,136,.08),transparent 60%),radial-gradient(900px 360px at 90% 0,rgba(37,99,235,.05),transparent 55%),#f8fafc}.board-tabs[data-v-ad2771fe]{-ms-flex-negative:0;flex-shrink:0;margin-bottom:4px}.board-tabs[data-v-ad2771fe] .el-tabs__header{margin:0 0 8px}.board-tabs[data-v-ad2771fe] .el-tabs__nav-wrap:after{height:1px;background:#e2e8f0}.board-tabs[data-v-ad2771fe] .el-tabs__item{height:40px;line-height:40px;font-weight:600;color:#64748b}.board-tabs[data-v-ad2771fe] .el-tabs__content{display:none}.board-layout[data-v-ad2771fe]{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0;display:-webkit-box;display:-ms-flexbox;display:flex;gap:0;border:1px solid var(--dorm-border-muted,#e2e8f0);border-radius:12px;overflow:hidden;background:#fff;-webkit-box-shadow:var(--dorm-shadow,0 1px 2px rgba(15,23,42,.04));box-shadow:var(--dorm-shadow,0 1px 2px rgba(15,23,42,.04))}.left-panel[data-v-ad2771fe],.right-panel[data-v-ad2771fe]{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;overflow:hidden;border:none!important;border-radius:0!important;-webkit-box-shadow:none!important;box-shadow:none!important;margin:0!important}.left-panel[data-v-ad2771fe]{width:300px;-webkit-box-flex:0;-ms-flex:0 0 300px;flex:0 0 300px;border-right:1px solid var(--dorm-border-muted,#e2e8f0)!important;background:#fff}.right-panel[data-v-ad2771fe]{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;background:#fff}.panel-head[data-v-ad2771fe]{padding:14px 16px 12px;border-bottom:1px solid var(--dorm-border-muted);background:-webkit-gradient(linear,left top,left bottom,from(#f0fdfa),to(#fff));background:linear-gradient(180deg,#f0fdfa,#fff)}.panel-title[data-v-ad2771fe]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;font-size:15px;font-weight:700;color:var(--dorm-text-strong)}.panel-title i[data-v-ad2771fe]{color:var(--dorm-primary)}.panel-stat[data-v-ad2771fe]{margin-top:8px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:8px;font-size:13px;color:var(--dorm-text)}.panel-stat em[data-v-ad2771fe]{font-style:normal;color:var(--dorm-muted);font-size:12px}.floor-tree[data-v-ad2771fe]{-webkit-box-flex:1;-ms-flex:1;flex:1;overflow:auto;padding:8px 6px 12px;background:#fff}.floor-tree[data-v-ad2771fe] .el-tree-node__content{height:40px;border-radius:8px;margin:2px 4px}.floor-tree[data-v-ad2771fe] .el-tree-node.is-current>.el-tree-node__content{background:var(--dorm-primary-soft)!important}.floor-tree[data-v-ad2771fe] .el-tree-node__content:hover{background:#f0fdfa}.tree-node[data-v-ad2771fe]{-webkit-box-flex:1;-ms-flex:1;flex:1;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:8px;padding-right:6px}.node-main[data-v-ad2771fe],.tree-node[data-v-ad2771fe]{min-width:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.node-main[data-v-ad2771fe]{gap:6px}.node-label[data-v-ad2771fe]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#0f172a}.tree-node.is-building .node-label[data-v-ad2771fe]{font-weight:650}.gender-pill[data-v-ad2771fe]{-ms-flex-negative:0;flex-shrink:0;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;min-width:22px;height:18px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:600;line-height:1}.gender-pill.male[data-v-ad2771fe]{color:var(--male);background:var(--male-soft)}.gender-pill.female[data-v-ad2771fe]{color:var(--female);background:var(--female-soft)}.occ-badge[data-v-ad2771fe]{-ms-flex-negative:0;flex-shrink:0;padding:2px 8px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:11px;font-variant-numeric:tabular-nums}.room-toolbar[data-v-ad2771fe]{padding:14px 16px 10px;border-bottom:1px solid var(--dorm-border-muted);background:#fff}.selection-meta[data-v-ad2771fe]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:10px;margin-bottom:12px}.selection-meta h3[data-v-ad2771fe]{margin:0;font-size:18px;font-weight:700;color:var(--dorm-text-strong)}.filter-row[data-v-ad2771fe]{-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:10px}.chip-group[data-v-ad2771fe],.filter-row[data-v-ad2771fe]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.chip-group[data-v-ad2771fe]{gap:6px}.chip[data-v-ad2771fe]{border:1px solid #e2e8f0;background:#fff;color:#64748b;border-radius:999px;height:28px;padding:0 12px;font-size:12px;cursor:pointer;-webkit-transition:all .15s ease;transition:all .15s ease}.chip[data-v-ad2771fe]:hover{border-color:var(--dorm-border);color:var(--dorm-primary-deep)}.chip.active[data-v-ad2771fe]{border-color:var(--dorm-primary);background:var(--dorm-primary-soft);color:var(--dorm-primary-deep);font-weight:600}.filter-actions[data-v-ad2771fe]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px}.room-grid[data-v-ad2771fe]{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0;overflow:auto;padding:14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px;-ms-flex-line-pack:start;align-content:start;background:-webkit-gradient(linear,left top,left bottom,from(#f8fafc),color-stop(40%,#fff));background:linear-gradient(180deg,#f8fafc,#fff 40%)}.room-card[data-v-ad2771fe]{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;min-height:118px;padding:12px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;-webkit-box-shadow:0 1px 2px rgba(15,23,42,.04);box-shadow:0 1px 2px rgba(15,23,42,.04);cursor:pointer;-webkit-transition:border-color .15s ease,-webkit-transform .15s ease,-webkit-box-shadow .15s ease;transition:border-color .15s ease,-webkit-transform .15s ease,-webkit-box-shadow .15s ease;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,-webkit-transform .15s ease,-webkit-box-shadow .15s ease}.room-card[data-v-ad2771fe]:hover{-webkit-transform:translateY(-2px);transform:translateY(-2px);border-color:var(--dorm-border);-webkit-box-shadow:0 8px 20px rgba(13,148,136,.12);box-shadow:0 8px 20px rgba(13,148,136,.12)}.room-card.is-full[data-v-ad2771fe]{border-color:#fecaca;background:snow}.room-card.is-empty[data-v-ad2771fe]{border-color:#e2e8f0}.room-card.is-manager[data-v-ad2771fe]{border-color:#fde68a;background:#fffbeb}.room-card.is-nonlive[data-v-ad2771fe]{cursor:default;background:#f8fafc;opacity:.92}.room-card.is-nonlive[data-v-ad2771fe]:hover{-webkit-transform:none;transform:none;-webkit-box-shadow:0 1px 2px rgba(15,23,42,.04);box-shadow:0 1px 2px rgba(15,23,42,.04)}.room-head[data-v-ad2771fe]{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:8px;margin-bottom:10px}.room-code[data-v-ad2771fe]{font-size:16px;font-weight:750;color:#0f172a;letter-spacing:.02em}.room-type[data-v-ad2771fe]{-ms-flex-negative:0;flex-shrink:0;font-size:11px;padding:2px 7px;border-radius:6px;background:#ecfeff;color:#0f766e}.room-type.type-1[data-v-ad2771fe]{background:#fff7ed;color:#c2410c}.room-type.type-2[data-v-ad2771fe]{background:#f1f5f9;color:#64748b}.bed-dots[data-v-ad2771fe]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:6px;min-height:18px;margin-bottom:12px}.dot[data-v-ad2771fe]{width:10px;height:10px;border-radius:50%;background:#e2e8f0;-webkit-box-shadow:inset 0 0 0 1px rgba(15,23,42,.04);box-shadow:inset 0 0 0 1px rgba(15,23,42,.04)}.dot.on[data-v-ad2771fe]{background:var(--dorm-primary)}.dot.on.is-in[data-v-ad2771fe]{background:#10b981}.dot.on.is-out[data-v-ad2771fe]{background:#f59e0b}.dot.on.is-leave[data-v-ad2771fe]{background:#6366f1}.dot.on.is-unknown[data-v-ad2771fe]{background:#94a3b8}.no-bed[data-v-ad2771fe]{font-size:12px;color:#94a3b8}.room-foot[data-v-ad2771fe]{margin-top:auto;display:grid;grid-template-columns:1fr auto;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px}.bar-wrap[data-v-ad2771fe]{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden}.bar[data-v-ad2771fe]{height:100%;border-radius:inherit;background:-webkit-gradient(linear,left top,right top,from(#14b8a6),to(#0d9488));background:linear-gradient(90deg,#14b8a6,#0d9488);-webkit-transition:width .2s ease;transition:width .2s ease}.room-card.is-full .bar[data-v-ad2771fe]{background:-webkit-gradient(linear,left top,right top,from(#fb7185),to(#e11d48));background:linear-gradient(90deg,#fb7185,#e11d48)}.cap[data-v-ad2771fe]{font-size:12px;color:#64748b;font-variant-numeric:tabular-nums;min-width:42px;text-align:right}.non-live[data-v-ad2771fe]{-webkit-box-flex:1;-ms-flex:1;flex:1;font-size:13px}.empty-state[data-v-ad2771fe],.non-live[data-v-ad2771fe]{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;color:#94a3b8}.empty-state[data-v-ad2771fe]{grid-column:1/-1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:8px;padding:72px 16px}.empty-state i[data-v-ad2771fe]{font-size:36px;color:#cbd5e1}.empty-state p[data-v-ad2771fe]{margin:0}.empty-state.compact[data-v-ad2771fe]{padding:40px 16px}.summary-layout[data-v-ad2771fe]{-webkit-box-flex:1;-ms-flex:1;flex:1;min-height:0;overflow:auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;gap:12px;padding-bottom:8px}.kpi-row[data-v-ad2771fe]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.kpi-card[data-v-ad2771fe]{gap:12px;padding:16px}.kpi-card[data-v-ad2771fe],.kpi-icon[data-v-ad2771fe]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.kpi-icon[data-v-ad2771fe]{width:42px;height:42px;border-radius:12px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;font-size:18px;-ms-flex-negative:0;flex-shrink:0}.kpi-value[data-v-ad2771fe]{font-size:24px;font-weight:750;color:#0f172a;line-height:1.1;font-variant-numeric:tabular-nums}.kpi-value small[data-v-ad2771fe]{margin-left:4px;font-size:12px;font-weight:500;color:#64748b}.kpi-label[data-v-ad2771fe]{margin-top:4px;font-size:12px;color:#64748b}.gender-row[data-v-ad2771fe]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.gender-card[data-v-ad2771fe]{padding:16px 18px}.gender-card.male[data-v-ad2771fe]{border-color:#bfdbfe;background:-webkit-gradient(linear,left top,left bottom,from(#eff6ff),color-stop(70%,#fff));background:linear-gradient(180deg,#eff6ff,#fff 70%)}.gender-card.female[data-v-ad2771fe]{border-color:#fbcfe8;background:-webkit-gradient(linear,left top,left bottom,from(#fdf2f8),color-stop(70%,#fff));background:linear-gradient(180deg,#fdf2f8,#fff 70%)}.gender-head[data-v-ad2771fe]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:10px;font-size:14px;font-weight:650}.gender-head strong[data-v-ad2771fe]{font-size:22px;font-variant-numeric:tabular-nums}.gender-card.male .gender-head strong[data-v-ad2771fe]{color:var(--male)}.gender-card.female .gender-head strong[data-v-ad2771fe]{color:var(--female)}.gender-bar[data-v-ad2771fe]{height:8px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin-bottom:12px}.gender-bar i[data-v-ad2771fe]{display:block;height:100%;border-radius:inherit}.gender-card.male .gender-bar i[data-v-ad2771fe]{background:-webkit-gradient(linear,left top,right top,from(#60a5fa),to(#2563eb));background:linear-gradient(90deg,#60a5fa,#2563eb)}.gender-card.female .gender-bar i[data-v-ad2771fe]{background:-webkit-gradient(linear,left top,right top,from(#f472b6),to(#db2777));background:linear-gradient(90deg,#f472b6,#db2777)}.gender-meta[data-v-ad2771fe]{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:12px 18px;font-size:12px;color:#64748b;font-variant-numeric:tabular-nums}.building-summary[data-v-ad2771fe]{padding:16px}.summary-head[data-v-ad2771fe]{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-bottom:14px}.summary-head h3[data-v-ad2771fe]{margin:0;font-size:15px;font-weight:700}.summary-head span[data-v-ad2771fe]{font-size:12px;color:#64748b}.building-grid[data-v-ad2771fe]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.building-card[data-v-ad2771fe]{border:1px solid #e2e8f0;border-radius:12px;padding:14px;background:#fff;cursor:pointer;-webkit-transition:border-color .15s ease,-webkit-box-shadow .15s ease;transition:border-color .15s ease,-webkit-box-shadow .15s ease;transition:border-color .15s ease,box-shadow .15s ease;transition:border-color .15s ease,box-shadow .15s ease,-webkit-box-shadow .15s ease}.building-card[data-v-ad2771fe]:hover{border-color:var(--dorm-border);-webkit-box-shadow:0 6px 18px rgba(13,148,136,.1);box-shadow:0 6px 18px rgba(13,148,136,.1)}.bc-head[data-v-ad2771fe]{-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;margin-bottom:10px}.bc-head[data-v-ad2771fe],.bc-title[data-v-ad2771fe]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px}.bc-title[data-v-ad2771fe]{min-width:0}.bc-title strong[data-v-ad2771fe]{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bc-floors[data-v-ad2771fe]{font-size:12px;color:#94a3b8}.bc-stats[data-v-ad2771fe]{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:12px;padding:8px 10px;border-radius:8px;background:#f8fafc;font-size:12px;color:#64748b;font-variant-numeric:tabular-nums}.bc-stats .rate[data-v-ad2771fe]{color:var(--dorm-primary-deep);font-weight:650;text-align:right}.bc-floors-list[data-v-ad2771fe]{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;max-height:220px;overflow:auto}.floor-row[data-v-ad2771fe]{display:grid;grid-template-columns:64px 72px minmax(0,1fr);-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;font-size:12px}.flabel[data-v-ad2771fe]{color:#334155;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fnum[data-v-ad2771fe]{color:#64748b;font-variant-numeric:tabular-nums;text-align:right}.fbar[data-v-ad2771fe]{height:6px;border-radius:999px;background:#e2e8f0;overflow:hidden}.fbar i[data-v-ad2771fe]{display:block;height:100%;border-radius:inherit;background:-webkit-gradient(linear,left top,right top,from(#5eead4),to(#0d9488));background:linear-gradient(90deg,#5eead4,#0d9488)}.floor-empty[data-v-ad2771fe]{font-size:12px;color:#94a3b8;text-align:center;padding:8px 0}@media (max-width:1280px){.kpi-row[data-v-ad2771fe]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:960px){.board-layout[data-v-ad2771fe]{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.left-panel[data-v-ad2771fe]{width:100%;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;max-height:280px;border-right:none!important;border-bottom:1px solid var(--dorm-border-muted,#e2e8f0)!important}.gender-row[data-v-ad2771fe],.kpi-row[data-v-ad2771fe]{grid-template-columns:1fr}}.dorm-room-roster-pop{padding:0!important;border:none!important;-webkit-box-shadow:0 12px 32px rgba(15,23,42,.18)!important;box-shadow:0 12px 32px rgba(15,23,42,.18)!important;background:#0f172a!important}.dorm-room-roster-pop .roster-pop{color:#e2e8f0;padding:12px 14px 10px}.dorm-room-roster-pop .roster-head{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;gap:8px;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(148,163,184,.25)}.dorm-room-roster-pop .roster-head strong{font-size:13px;color:#fff}.dorm-room-roster-pop .roster-head span{font-size:12px;color:#94a3b8;font-variant-numeric:tabular-nums}.dorm-room-roster-pop .roster-list{list-style:none;margin:0;padding:0;max-height:260px;overflow:auto}.dorm-room-roster-pop .roster-list li{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;gap:6px;padding:4px 0;font-size:12px;line-height:1.4}.dorm-room-roster-pop .roster-list em{-ms-flex-negative:0;flex-shrink:0;width:42px;font-style:normal;color:#94a3b8}.dorm-room-roster-pop .roster-list .who{color:#f8fafc;font-weight:600}.dorm-room-roster-pop .roster-list .no{color:#94a3b8}.dorm-room-roster-pop .roster-list .empty{color:#64748b}.dorm-room-roster-pop .roster-list .presence{margin-left:auto;-ms-flex-negative:0;flex-shrink:0;font-size:11px;font-weight:600;padding:0 5px;border-radius:3px}.dorm-room-roster-pop .roster-list .presence.is-in{color:#6ee7b7;background:rgba(16,185,129,.18)}.dorm-room-roster-pop .roster-list .presence.is-out{color:#fcd34d;background:rgba(245,158,11,.18)}.dorm-room-roster-pop .roster-list .presence.is-leave{color:#a5b4fc;background:rgba(99,102,241,.2)}.dorm-room-roster-pop .roster-list .presence.is-miss{color:#fca5a5;background:rgba(239,68,68,.18)}.dorm-room-roster-pop .roster-list .presence.is-unknown{color:#94a3b8;background:rgba(148,163,184,.15)}.dorm-room-roster-pop .roster-empty{font-size:12px;color:#94a3b8;padding:8px 0}.dorm-room-roster-pop .roster-tip{margin-top:10px;padding-top:8px;border-top:1px solid rgba(148,163,184,.25);font-size:11px;color:#5eead4}