.login-mask[data-v-617d19f8]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 30%,#0d1b3a,#060d1f 70%)}.login-card[data-v-617d19f8]{width:360px;padding:36px 28px;border-radius:16px;background:#101c38eb;border:1px solid rgba(77,171,247,.35);box-shadow:0 12px 40px #00000080;text-align:center;color:#e0e6ff}.login-title[data-v-617d19f8]{font-size:22px;font-weight:700;letter-spacing:1px}.login-sub[data-v-617d19f8]{margin-top:8px;font-size:13px;color:#8da5c4}.login-hint[data-v-617d19f8]{margin-top:6px;font-size:13px;color:#9fd0ff;min-height:20px}.pwd-wrap[data-v-617d19f8]{margin-top:12px;display:flex;flex-direction:column;gap:12px}.pwd-input[data-v-617d19f8]{width:100%;padding:11px 14px;border:1px solid #2d3a5f;border-radius:8px;background:#0d1b3a99;color:#e0e6ff;font-size:14px;box-sizing:border-box}.pwd-input[data-v-617d19f8]::placeholder{color:#6c7a9c}.pwd-input[data-v-617d19f8]:focus{outline:none;border-color:#4dabf7}.pwd-btn[data-v-617d19f8]{width:100%;padding:11px;border:none;border-radius:8px;cursor:pointer;background:#4dabf7;color:#06122b;font-size:15px;font-weight:600}.pwd-btn[data-v-617d19f8]:hover{background:#74c0fc}.pwd-btn[data-v-617d19f8]:disabled{opacity:.6;cursor:not-allowed}.panel-title[data-v-df32bd3c]{display:flex;align-items:center;justify-content:space-between}.date-picker[data-v-df32bd3c]{background:#0d1b3a99;border:1px solid #2d3a5f;border-radius:6px;color:#e0e6ff;font-size:13px;padding:4px 8px;color-scheme:dark;outline:none;cursor:pointer}.date-picker[data-v-df32bd3c]:hover{border-color:#4dabf7}.today-btn[data-v-df32bd3c]{background:#4dabf7;border:none;border-radius:6px;color:#06122b;font-size:12px;padding:4px 12px;font-weight:600;cursor:pointer}.today-btn[data-v-df32bd3c]:hover{background:#74c0fc}.panel .list-item[data-v-df32bd3c]{gap:6px;flex-wrap:nowrap}.panel .list-item .room[data-v-df32bd3c]{flex:none;width:40px;color:#8da5c4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.panel .list-item .name[data-v-df32bd3c]{flex:1;min-width:56px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel .list-item .gate[data-v-df32bd3c]{flex:none;width:48px;color:#8da5c4;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.panel .list-item .time[data-v-df32bd3c]{flex:none;width:80px;color:#8da5c4;text-align:right;font-family:Consolas,Monaco,monospace;font-size:12px;white-space:nowrap}.dot[data-v-df32bd3c]{width:10px;height:10px;border-radius:50%;flex:none}.dot.green[data-v-df32bd3c]{background:#51cf66}.dot.yellow[data-v-df32bd3c]{background:#ffd43b}.dot.red[data-v-df32bd3c]{background:#ff6b6b}.dot.blue[data-v-df32bd3c]{background:#4dabf7}.panel .list-item.highlight[data-v-df32bd3c]{border:1px solid rgba(255,56,56,.85);background:linear-gradient(90deg,#ff383826,#ff383808);box-shadow:inset 3px 0 #ff3838,0 0 12px #ff383873;animation:pulseDanger-df32bd3c 1.6s ease-in-out infinite}@keyframes pulseDanger-df32bd3c{0%,to{box-shadow:inset 3px 0 #ff3838,0 0 10px #ff383859}50%{box-shadow:inset 3px 0 #ff3838,0 0 20px #ff3838d9}}.hover-card[data-v-df32bd3c]{position:fixed;background:linear-gradient(135deg,#1a2d56,#0f1d3d);border:1px solid rgba(255,80,80,.6);border-radius:10px;padding:12px 14px;min-width:230px;max-width:290px;z-index:9998;box-shadow:0 6px 28px #0000008c,0 0 0 1px #ff505026;pointer-events:auto;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer}.hover-card[data-v-df32bd3c]:hover{border-color:#ff5050d9;box-shadow:0 8px 32px #0009,0 0 16px #ff505040}.hc-title[data-v-df32bd3c]{font-size:16px;font-weight:700;color:#ff5252;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(255,80,80,.3)}.hc-row[data-v-df32bd3c]{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px;font-size:12px}.hc-k[data-v-df32bd3c]{color:#8da5c4;flex:none}.hc-v[data-v-df32bd3c]{color:#e8eef7;text-align:right}.hc-v.clr-green[data-v-df32bd3c]{color:#51cf66}.hc-v.clr-yellow[data-v-df32bd3c]{color:#ffd43b}.hc-v.clr-red[data-v-df32bd3c]{color:#ff6b6b}.hc-v.clr-blue[data-v-df32bd3c]{color:#4dabf7}.detail-backdrop[data-v-df32bd3c]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:10000}.detail-drawer[data-v-df32bd3c]{position:fixed;right:0;top:0;bottom:0;width:480px;max-width:92vw;background:linear-gradient(180deg,#0d1b3a,#142552);border-left:1px solid rgba(255,80,80,.5);z-index:10001;box-shadow:-8px 0 32px #00000080;display:flex;flex-direction:column;animation:slideIn-df32bd3c .22s ease}@keyframes slideIn-df32bd3c{0%{transform:translate(100%)}to{transform:translate(0)}}.detail-header[data-v-df32bd3c]{padding:16px 20px;border-bottom:1px solid rgba(255,80,80,.3);display:flex;align-items:center;justify-content:space-between}.detail-header h2[data-v-df32bd3c]{margin:0;font-size:18px;color:#ff5252;font-weight:600}.detail-close[data-v-df32bd3c]{background:transparent;border:1px solid rgba(255,80,80,.5);color:#ff5252;width:30px;height:30px;border-radius:6px;cursor:pointer;font-size:16px}.detail-close[data-v-df32bd3c]:hover{background:#ff505026}.detail-person-card[data-v-df32bd3c]{padding:16px 20px;border-bottom:1px solid rgba(255,80,80,.2);background:#ffffff05}.detail-person-card .name[data-v-df32bd3c]{font-size:22px;font-weight:700;color:#e8eef7;margin-bottom:8px}.detail-person-card .info[data-v-df32bd3c]{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px;font-size:13px;color:#c5d3e8}.detail-person-card .info .k[data-v-df32bd3c]{color:#8da5c4}.detail-tabs[data-v-df32bd3c]{display:flex;border-bottom:1px solid rgba(255,80,80,.2);background:#0003}.detail-tab[data-v-df32bd3c]{flex:1;padding:12px 8px;text-align:center;cursor:pointer;color:#8da5c4;font-size:13px;border-bottom:2px solid transparent;transition:.15s}.detail-tab[data-v-df32bd3c]:hover{color:#e8eef7}.detail-tab.active[data-v-df32bd3c]{color:#ff5252;border-bottom-color:#ff5252;background:#ff50500f}.detail-tab .badge[data-v-df32bd3c]{display:inline-block;background:#ff505040;color:#ff5252;border-radius:9px;padding:1px 7px;margin-left:4px;font-size:11px}.detail-body[data-v-df32bd3c]{flex:1;overflow-y:auto;padding:12px 20px}.detail-body[data-v-df32bd3c]::-webkit-scrollbar{width:6px}.detail-body[data-v-df32bd3c]::-webkit-scrollbar-thumb{background:#ff50504d;border-radius:3px}.event-item[data-v-df32bd3c]{padding:10px 0;border-bottom:1px dashed rgba(255,255,255,.06);font-size:13px}.event-item[data-v-df32bd3c]:last-child{border-bottom:none}.event-item .top[data-v-df32bd3c]{display:flex;justify-content:space-between;color:#8da5c4;font-size:12px;margin-bottom:4px}.event-item .top .status[data-v-df32bd3c]{padding:1px 8px;border-radius:4px;font-size:11px}.status-pending[data-v-df32bd3c]{background:#ffd43b33;color:#ffd43b}.status-processing[data-v-df32bd3c]{background:#4dabf733;color:#4dabf7}.status-approved[data-v-df32bd3c],.status-done[data-v-df32bd3c],.status-confirmed[data-v-df32bd3c]{background:#51cf6633;color:#51cf66}.status-rejected[data-v-df32bd3c]{background:#ff6b6b33;color:#ff6b6b}.status-rated[data-v-df32bd3c]{background:#ff505033;color:#ff5252}.event-item .body[data-v-df32bd3c]{color:#e8eef7;line-height:1.6}.event-empty[data-v-df32bd3c]{text-align:center;color:#8da5c4;padding:40px 0}.stats-row .stat-card.clickable[data-v-df32bd3c]{cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s}.stats-row .stat-card.clickable[data-v-df32bd3c]:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0d1b3a80;border-color:#ff505080}.detail-drawer .kpi-list-item[data-v-df32bd3c]{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px 14px;margin-bottom:8px;cursor:pointer;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s}.detail-drawer .kpi-list-item[data-v-df32bd3c]:hover{background:#4dabf724;border-color:#4dabf78c;transform:translate(3px);box-shadow:0 4px 14px #00000059}.detail-drawer .kpi-list-item.danger[data-v-df32bd3c]{background:#ff38381a;border-color:#ff383873;box-shadow:inset 3px 0 #ff3838}.detail-drawer .kpi-list-item.danger[data-v-df32bd3c]:hover{background:#ff383833;border-color:#ff3838bf;box-shadow:inset 3px 0 #ff3838,0 0 14px #ff383866}.detail-drawer .kpi-list-item .kpi-row1[data-v-df32bd3c]{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;gap:8px}.detail-drawer .kpi-list-item .name[data-v-df32bd3c]{font-size:16px;font-weight:600;color:#e8eef7}.detail-drawer .kpi-list-item .status-badge[data-v-df32bd3c]{font-size:12px;padding:3px 10px;border-radius:12px;font-weight:500;white-space:nowrap}.detail-drawer .kpi-list-item .status-badge.bg-green[data-v-df32bd3c]{background:#51cf662e;color:#51cf66;border:1px solid rgba(81,207,102,.45)}.detail-drawer .kpi-list-item .status-badge.bg-yellow[data-v-df32bd3c]{background:#ffd43b2e;color:#ffd43b;border:1px solid rgba(255,212,59,.45)}.detail-drawer .kpi-list-item .status-badge.bg-red[data-v-df32bd3c]{background:#ff6b6b2e;color:#ff6b6b;border:1px solid rgba(255,107,107,.55)}.detail-drawer .kpi-list-item .status-badge.bg-blue[data-v-df32bd3c]{background:#4dabf72e;color:#4dabf7;border:1px solid rgba(77,171,247,.45)}.detail-drawer .kpi-list-item .kpi-row2[data-v-df32bd3c]{display:flex;justify-content:space-between;font-size:12px;color:#8da5c4;gap:8px}.detail-drawer .kpi-list-item .kpi-row2 .time[data-v-df32bd3c]{font-family:Consolas,Monaco,monospace;color:#b0c5e0}.detail-drawer.danger-panel .detail-header h2[data-v-df32bd3c]{color:#ff5252}.detail-drawer .detail-header h2 .count[data-v-df32bd3c]{color:#8da5c4;font-size:14px;font-weight:400;margin-left:6px}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{width:100%;height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;background:#0a0e27;color:#e0e6ff}.app{display:grid;grid-template-rows:80px 1fr;height:100vh;background:linear-gradient(180deg,#0a0e27,#060818)}.header{display:flex;align-items:center;justify-content:space-between;padding:0 40px;background:linear-gradient(90deg,rgba(30,107,184,.2) 0%,transparent 50%,rgba(30,107,184,.2) 100%);border-bottom:1px solid rgba(64,158,255,.3)}.title{font-size:32px;font-weight:700;background:linear-gradient(90deg,#4dabf7,#74c0fc,#4dabf7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:4px}.clock{font-size:20px;color:#74c0fc;font-family:Consolas,monospace}.header-right{display:flex;align-items:center;gap:20px}.exe-tools{display:flex;align-items:center;gap:2px;padding:3px;background:#0d1e3a80;border:1px solid rgba(64,158,255,.22);border-radius:8px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:.35;transition:opacity .25s ease}.header:hover .exe-tools,.exe-tools:hover{opacity:1}.exe-btn{width:34px;height:30px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:6px;padding:0;color:#8ab4dc;cursor:pointer;transition:background .18s,color .18s}.exe-btn svg{width:15px;height:15px;display:block}.exe-btn:hover{background:#4dabf72e;color:#cfe4ff}.exe-btn.on{background:#4dabf742;color:#74c0fc;box-shadow:inset 0 0 0 1px #74c0fc80}.exe-btn.danger:hover{background:#e5484d38;color:#ff9b9b}.net-banner{position:fixed;top:80px;left:0;right:0;z-index:60;display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;font-size:14px;letter-spacing:.5px;color:#ffd7d7;background:linear-gradient(90deg,#e5484d14,#e5484d47 50%,#e5484d14);border-bottom:1px solid rgba(229,72,77,.5)}.net-banner .nb-dot{width:8px;height:8px;border-radius:50%;background:#ff6b6b;animation:nb-pulse 1.4s infinite}@keyframes nb-pulse{0%{box-shadow:0 0 #ff6b6bb3}70%{box-shadow:0 0 0 9px #ff6b6b00}to{box-shadow:0 0 #ff6b6b00}}.manage-link{display:inline-block;padding:6px 16px;background:linear-gradient(135deg,#1e6bb866,#4dabf733);border:1px solid rgba(64,158,255,.4);border-radius:4px;color:#74c0fc;text-decoration:none;font-size:14px;transition:all .2s}.manage-link:hover{background:#409eff4d;border-color:#409effb3;color:#fff}.main{display:grid;grid-template-columns:360px 1fr 360px;gap:16px;padding:16px;overflow:hidden}.panel{background:#0d193a99;border:1px solid rgba(64,158,255,.2);border-radius:8px;padding:16px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;overflow:hidden}.panel-title{font-size:16px;font-weight:600;color:#4dabf7;padding-bottom:12px;border-bottom:1px solid rgba(64,158,255,.2);margin-bottom:12px}.center{display:grid;grid-template-rows:auto 1fr;gap:16px}.stats-row{display:grid;grid-template-columns:repeat(5,1fr);gap:16px}.stat-card{background:linear-gradient(135deg,#0d193acc,#1e6bb826);border:1px solid rgba(64,158,255,.3);border-radius:8px;padding:20px;text-align:center}.stat-card .num{font-size:48px;font-weight:700;line-height:1}.stat-card .lbl{font-size:14px;color:#8da5c4;margin-top:8px}.stat-card.green .num{color:#51cf66}.stat-card.yellow .num{color:#ffd43b}.stat-card.red .num{color:#ff6b6b}.stat-card.blue .num{color:#4dabf7}.stat-card.gray .num{color:#adb5bd}.stat-card.total .num{color:#e0e6ff}.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.chart-box{background:#0d193a99;border:1px solid rgba(64,158,255,.2);border-radius:8px;padding:16px;display:flex;flex-direction:column}.chart-box .panel-title{padding-bottom:8px;margin-bottom:0}.chart{flex:1;min-height:0}.list{flex:1;overflow-y:auto}.list::-webkit-scrollbar{width:4px}.list::-webkit-scrollbar-thumb{background:#409eff4d;border-radius:2px}.list-item{display:flex;justify-content:space-between;align-items:center;padding:10px 8px;border-bottom:1px solid rgba(64,158,255,.1);font-size:13px}.list-item:last-child{border:none}.dot{width:8px;height:8px;border-radius:50%;margin-right:8px}.dot.green{background:#51cf66;box-shadow:0 0 6px #51cf66}.dot.yellow{background:#ffd43b;box-shadow:0 0 6px #ffd43b}.dot.red{background:#ff6b6b;box-shadow:0 0 6px #ff6b6b}.dot.blue{background:#4dabf7;box-shadow:0 0 6px #4dabf7}.dot.gray{background:#adb5bd}.list-item .name{flex:1}.list-item .room{color:#8da5c4;margin-right:12px;font-family:monospace}.list-item .time{color:#74c0fc;font-family:monospace;font-size:12px}.left-col{display:grid;grid-template-rows:minmax(0,38%) minmax(0,62%);gap:16px;min-height:0}.left-col .panel{min-height:0}.fix-list{display:flex;flex-direction:column;gap:8px}.fix-item{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:6px;background:#ffffff08;border-left:3px solid rgba(64,158,255,.55)}.fix-item.overdue{background:#ff6b6b1a;border-left-color:#ff6b6b}.fix-thumb{width:64px;height:48px;flex:none;object-fit:cover;border-radius:4px;background:#ffffff0f}.fix-body{flex:1;min-width:0}.fix-name{font-size:15px;font-weight:600;color:#e0e6ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fix-rep{margin-left:6px;font-size:11px;font-weight:600;padding:1px 7px;border-radius:9px;background:#74c0fc29;color:#74c0fc;vertical-align:middle}.fix-sub{margin-top:3px;font-size:12px;color:#8da5c4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fix-room{color:#74c0fc;font-family:Consolas,monospace;margin-right:8px}.fix-right{flex:none;text-align:right}.fix-state{display:inline-block;font-size:12px;padding:2px 8px;border-radius:10px;white-space:nowrap}.fix-state.pending{background:#ff6b6b2e;color:#ff6b6b}.fix-state.reviewing{background:#ffd43b2e;color:#ffd43b}.fix-state.closed{background:#51cf662e;color:#51cf66}.fix-due{display:block;margin-top:4px;font-size:11px;color:#8da5c4}.fix-item.overdue .fix-due{color:#ff6b6b;font-weight:600}.fix-src{display:inline-block;margin-top:4px;padding:1px 6px;border-radius:8px;font-size:10px;background:#ff6b6b2e;color:#ff6b6b}.fix-overdue-badge{font-size:12px;padding:2px 8px;border-radius:10px;background:#ff6b6b33;color:#ff6b6b;font-weight:600}.fix-dots{display:flex;justify-content:center;gap:6px;padding-top:8px;flex:none}.fix-dot{width:6px;height:6px;border-radius:50%;background:#8da5c459}.fix-dot.on{background:#4dabf7}
