:root{--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}.video-player[data-v-3aea0eb8]{aspect-ratio:16/9;background:#000;border-radius:8px;width:100%;position:relative;overflow:hidden}video[data-v-3aea0eb8]{object-fit:contain;width:100%;height:100%}video.loading[data-v-3aea0eb8]{opacity:.3}.loading-overlay[data-v-3aea0eb8],.error-overlay[data-v-3aea0eb8]{color:#888;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex;position:absolute;inset:0}.spinner[data-v-3aea0eb8]{border:2px solid #ffffff1a;border-top-color:#4fc3f7;border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin-3aea0eb8}@keyframes spin-3aea0eb8{to{transform:rotate(360deg)}}.error-overlay button[data-v-3aea0eb8]{color:#eee;cursor:pointer;background:#28283ccc;border:1px solid #fff3;border-radius:6px;margin-top:8px;padding:6px 16px;font-size:12px}.controls-bar[data-v-3aea0eb8]{opacity:0;background:linear-gradient(#0000,#000000b3);align-items:center;gap:4px;padding:8px;transition:opacity .2s;display:flex;position:absolute;bottom:0;left:0;right:0}.video-player:hover .controls-bar[data-v-3aea0eb8],.controls-bar.visible[data-v-3aea0eb8]{opacity:1}.ctrl-btn[data-v-3aea0eb8]{cursor:pointer;background:#ffffff1a;border:none;border-radius:4px;padding:4px 8px;font-size:16px}.ctrl-btn[data-v-3aea0eb8]:hover{background:#fff3}.res-btn[data-v-3aea0eb8]{letter-spacing:1px;color:#aaa;padding:4px 6px;font-size:11px;font-weight:700}.res-btn.hd[data-v-3aea0eb8]{color:#4fc3f7}.rec-btn[data-v-3aea0eb8]{color:#e57373}.rec-btn.recording[data-v-3aea0eb8]{animation:1.5s infinite rec-pulse-3aea0eb8}@keyframes rec-pulse-3aea0eb8{0%,to{opacity:1}50%{opacity:.4}}.mode-badge[data-v-3aea0eb8]{color:#ffb74d;letter-spacing:.5px;border:1px solid #ffb74d66;border-radius:3px;padding:2px 5px;font-size:10px;font-weight:700}.nvr-playback[data-v-355d101e]{margin-top:12px}.playback-header[data-v-355d101e]{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.date-picker[data-v-355d101e]{color:#eee;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#28283ccc;border:1px solid #ffffff26;border-radius:6px;flex:1;min-width:120px;padding:6px 10px;font-size:13px}.quality-toggle[data-v-355d101e]{gap:2px;display:flex}.quality-toggle button[data-v-355d101e]{color:#888;cursor:pointer;background:#28283c99;border:1px solid #ffffff26;padding:4px 10px;font-size:11px}.quality-toggle button[data-v-355d101e]:first-child{border-radius:4px 0 0 4px}.quality-toggle button[data-v-355d101e]:last-child{border-radius:0 4px 4px 0}.quality-toggle button.active[data-v-355d101e]{color:#eee;background:#4fc3f74d;border-color:#4fc3f780}.time-input[data-v-355d101e]{align-items:center;gap:4px;display:flex}.time-picker[data-v-355d101e]{color:#eee;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#28283ccc;border:1px solid #ffffff26;border-radius:6px;width:100px;padding:6px 8px;font-size:13px}.go-btn[data-v-355d101e]{color:#4fc3f7;cursor:pointer;background:#4fc3f726;border:1px solid #4fc3f766;border-radius:6px;padding:6px 10px;font-size:12px}.go-btn[data-v-355d101e]:disabled{opacity:.4;cursor:not-allowed}.stop-btn[data-v-355d101e]{color:#e57373;cursor:pointer;background:#e5737326;border:1px solid #e5737366;border-radius:6px;padding:6px 14px;font-size:13px}.timeline-container[data-v-355d101e]{cursor:crosshair;margin-bottom:12px;position:relative}.timeline-bar[data-v-355d101e]{background:#ffffff0d;border-radius:4px;height:28px;position:relative;overflow:visible}.segment[data-v-355d101e]{background:#4caf5080;border-radius:2px;height:100%;transition:background .15s;position:absolute;top:0}.segment[data-v-355d101e]:hover{background:#4caf50cc}.playhead[data-v-355d101e]{z-index:2;background:#4fc3f7;width:2px;height:32px;position:absolute;top:-2px;transform:translate(-1px)}.playhead[data-v-355d101e]:after{content:"";background:#4fc3f7;border-radius:50%;width:10px;height:10px;position:absolute;top:-4px;left:-4px}.hover-indicator[data-v-355d101e]{z-index:3;pointer-events:none;position:absolute;top:-22px;transform:translate(-50%)}.hover-time[data-v-355d101e]{color:#4fc3f7;white-space:nowrap;background:#141428f2;border:1px solid #4fc3f74d;border-radius:4px;padding:2px 6px;font-family:monospace;font-size:11px}.timeline-labels[data-v-355d101e]{height:16px;margin-top:2px;position:relative}.timeline-labels span[data-v-355d101e]{color:#666;font-size:10px;position:absolute;transform:translate(-50%)}.timeline-loading[data-v-355d101e],.timeline-error[data-v-355d101e],.no-recordings[data-v-355d101e]{text-align:center;color:#888;padding:16px 0;font-size:13px}.timeline-error[data-v-355d101e]{color:#e57373}.loading-overlay[data-v-355d101e]{color:#888;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex;position:absolute;inset:0}.spinner[data-v-355d101e]{border:2px solid #ffffff1a;border-top-color:#4fc3f7;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin-355d101e}@keyframes spin-355d101e{to{transform:rotate(360deg)}}.download-section[data-v-355d101e]{border:1px solid #ffffff14;border-radius:8px;margin-bottom:12px;overflow:hidden}.download-header[data-v-355d101e]{cursor:pointer;color:#aaa;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;display:flex}.download-header[data-v-355d101e]:hover{color:#ddd}.download-body[data-v-355d101e]{padding:0 14px 12px}.download-row[data-v-355d101e]{color:#ccc;align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.download-row label[data-v-355d101e]{flex-shrink:0;width:36px}.download-btn[data-v-355d101e]{color:#81c784;cursor:pointer;background:#4caf5026;border:1px solid #4caf5066;border-radius:6px;width:100%;margin-top:4px;padding:8px;font-size:13px}.download-btn[data-v-355d101e]:disabled{opacity:.4;cursor:not-allowed}.download-result[data-v-355d101e]{color:#81c784;word-break:break-all;background:#4caf501a;border-radius:4px;margin-top:6px;padding:6px 10px;font-size:12px}.download-result.error[data-v-355d101e]{color:#e57373;background:#e573731a}.playback-video[data-v-355d101e]{aspect-ratio:16/9;cursor:pointer;background:#000;border-radius:8px;width:100%;margin-top:8px;position:relative;overflow:hidden}.playback-video video[data-v-355d101e]{object-fit:contain;width:100%;height:100%}.playback-video video.loading[data-v-355d101e]{opacity:.3}.center-controls[data-v-355d101e]{opacity:0;pointer-events:none;z-index:10;align-items:center;gap:24px;transition:opacity .25s;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.center-controls.visible[data-v-355d101e]{opacity:1;pointer-events:auto}.center-btn[data-v-355d101e]{color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;border:none;border-radius:50%;justify-content:center;align-items:center;transition:all .15s;display:flex}.center-btn[data-v-355d101e]:hover{background:#4fc3f759;transform:scale(1.1)}.play-btn[data-v-355d101e]{width:52px;height:52px;font-size:22px}.skip-btn[data-v-355d101e]{flex-direction:column;gap:0;width:42px;height:42px}.skip-icon[data-v-355d101e]{font-size:18px;line-height:1}.skip-label[data-v-355d101e]{margin-top:-2px;font-size:10px;font-weight:600;line-height:1}.controls-bar[data-v-355d101e]{opacity:0;pointer-events:none;z-index:10;background:linear-gradient(#0000,#000000bf);align-items:center;gap:4px;padding:8px 10px;transition:opacity .25s;display:flex;position:absolute;bottom:0;left:0;right:0}.controls-bar.visible[data-v-355d101e]{opacity:1;pointer-events:auto}.bar-spacer[data-v-355d101e]{flex:1}.ctrl-btn[data-v-355d101e]{cursor:pointer;color:#ddd;background:#ffffff1a;border:none;border-radius:4px;padding:5px 8px;font-size:15px;transition:background .15s}.ctrl-btn[data-v-355d101e]:hover{background:#ffffff40}.rec-btn[data-v-355d101e]{color:#e57373}.rec-btn.recording[data-v-355d101e]{animation:1.5s infinite rec-pulse-355d101e}@keyframes rec-pulse-355d101e{0%,to{opacity:1}50%{opacity:.3}}.stop-ctrl[data-v-355d101e]{color:#e57373;font-size:13px}.speed-wrapper[data-v-355d101e]{position:relative}.speed-btn[data-v-355d101e]{letter-spacing:.5px;color:#4fc3f7;text-align:center;min-width:40px;font-size:12px;font-weight:600}.speed-menu[data-v-355d101e]{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#141428f2;border:1px solid #ffffff26;border-radius:8px;flex-direction:column;gap:2px;min-width:56px;margin-bottom:6px;padding:4px;display:flex;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.speed-menu button[data-v-355d101e]{color:#ccc;cursor:pointer;text-align:center;background:0 0;border:none;border-radius:4px;padding:6px 12px;font-size:13px;transition:all .1s}.speed-menu button[data-v-355d101e]:hover{color:#fff;background:#4fc3f726}.speed-menu button.active[data-v-355d101e]{color:#4fc3f7;background:#4fc3f740;font-weight:600}.device-panel[data-v-ff011f43]{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:90;background:#141428f2;border-left:1px solid #ffffff1a;flex-direction:column;width:360px;max-width:100vw;transition:transform .3s;display:flex;position:fixed;top:48px;bottom:0;right:0}.panel-header[data-v-ff011f43]{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:16px;display:flex}.panel-header h3[data-v-ff011f43]{color:#4fc3f7;font-size:16px}.close-btn[data-v-ff011f43]{color:#888;cursor:pointer;background:0 0;border:none;font-size:18px}.panel-body[data-v-ff011f43]{flex:1;padding:16px;overflow-y:auto}.controls[data-v-ff011f43]{gap:8px;display:flex}.controls button[data-v-ff011f43],.elevator-controls button[data-v-ff011f43]{color:#eee;cursor:pointer;background:#28283ccc;border:1px solid #fff3;border-radius:8px;padding:10px 20px;font-size:14px;transition:all .2s}.controls button[data-v-ff011f43]:hover,.elevator-controls button[data-v-ff011f43]:hover{background:#4fc3f74d}.unlock-btn[data-v-ff011f43]{background:#4caf504d!important}.video-btn[data-v-ff011f43]{background:#4fc3f74d!important}.elevator-controls[data-v-ff011f43]{flex-direction:column;gap:12px;display:flex}.floor-select[data-v-ff011f43]{align-items:center;gap:12px;display:flex}.floor-select input[data-v-ff011f43]{color:#eee;text-align:center;background:#28283ccc;border:1px solid #fff3;border-radius:6px;width:80px;padding:8px;font-size:16px}.direction-btns[data-v-ff011f43]{gap:8px;display:flex}.direction-btns button[data-v-ff011f43]{flex:1}.up-btn[data-v-ff011f43]{color:#81c784!important}.down-btn[data-v-ff011f43]{color:#e57373!important}.playback-btn.active[data-v-ff011f43]{color:#4fc3f7!important;background:#4fc3f74d!important}.hint[data-v-ff011f43]{color:#666;margin-top:8px;font-size:13px}.admin-controls[data-v-ff011f43]{border-top:1px solid #ffffff0d;margin-top:16px;padding-top:12px}.toggle-disable-btn[data-v-ff011f43]{color:#888;cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:6px;padding:6px 14px;font-size:12px}.device-settings[data-v-ff011f43]{border:1px solid #ffffff14;border-radius:8px;margin-top:12px;overflow:hidden}.settings-header[data-v-ff011f43]{cursor:pointer;color:#aaa;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;display:flex}.settings-header[data-v-ff011f43]:hover{color:#ddd}.settings-body[data-v-ff011f43]{padding:0 14px 12px}.setting-row[data-v-ff011f43]{color:#ccc;justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;display:flex}.setting-row.sub-setting[data-v-ff011f43]{color:#999;padding-left:12px;font-size:12px}.setting-toggle[data-v-ff011f43]{background:#ffffff0d;border-radius:6px;gap:2px;padding:2px;display:flex}.setting-toggle button[data-v-ff011f43]{color:#888;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 12px;font-size:12px;transition:all .15s}.setting-toggle button.active[data-v-ff011f43]{color:#4fc3f7;background:#4fc3f740}.setting-toggle button[data-v-ff011f43]:hover:not(.active){color:#ccc}.panel-room-input[data-v-ff011f43]{align-items:center;gap:4px;display:flex}.room-num[data-v-ff011f43]{color:#eee;text-align:center;background:#28283ccc;border:1px solid #ffffff26;border-radius:4px;width:44px;padding:4px 6px;font-size:12px}.room-prefix[data-v-ff011f43]{color:#888;white-space:nowrap;font-size:12px}@media (width<=768px){.device-panel[data-v-ff011f43]{border-top:1px solid #ffffff1a;border-left:none;border-radius:16px 16px 0 0;width:100%;max-height:60vh;top:auto;bottom:0}}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{color:#eee;background:#1a1a2e;width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}.navbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;background:#141428e6;border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;height:48px;padding:0 16px;display:flex;position:fixed;top:0;left:0;right:0}.nav-title{color:#4fc3f7;font-size:16px;font-weight:600}.nav-toggle{color:#aaa;cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:20px;display:none}.nav-links{align-items:center;gap:16px;display:flex}.nav-links a{color:#aaa;border-radius:4px;padding:4px 8px;font-size:14px;text-decoration:none;transition:all .2s}.nav-links a:hover,.nav-links a.router-link-active{color:#fff;background:#4fc3f733}.user-info{border-left:1px solid #ffffff1a;align-items:center;gap:8px;margin-left:8px;padding-left:12px;display:flex}.username{color:#888;font-size:13px}.logout-btn{color:#aaa;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:4px;padding:2px 10px;font-size:12px;transition:all .2s}.logout-btn:hover{color:#f44336;border-color:#f44336}@media (width<=640px){.nav-toggle{display:block}.nav-links{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:99;background:#141428f2;border-bottom:1px solid #ffffff1a;flex-direction:column;gap:0;padding:8px 0;display:none;position:fixed;top:48px;left:0;right:0}.nav-links.open{display:flex}.nav-links a{padding:12px 20px;font-size:15px}.user-info{border-top:1px solid #ffffff1a;border-left:none;margin-left:0;padding:12px 20px}}.three-container[data-v-d4f93da8]{width:100%;height:100%;position:relative}.rotate-buttons[data-v-d4f93da8]{z-index:60;pointer-events:auto;gap:6px;display:flex;position:absolute;transform:translate(-50%,-100%)}.rotate-btn[data-v-d4f93da8]{color:#4fc3f7;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#141428e6;border:1px solid #4fc3f780;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:18px;line-height:1;transition:all .15s;display:flex}.rotate-btn[data-v-d4f93da8]:hover{background:#4fc3f74d;border-color:#4fc3f7;transform:scale(1.15)}.rotate-btn[data-v-d4f93da8]:active{transform:scale(.95)}.device-editor[data-v-cb95b49f]{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:80;background:#141428f2;border-right:1px solid #ffffff1a;flex-direction:column;width:300px;display:flex;position:fixed;top:48px;bottom:0;left:0;overflow:hidden}.unplaced-panel[data-v-cb95b49f],.placed-panel[data-v-cb95b49f]{flex-direction:column;flex:1;display:flex;overflow:hidden}h3[data-v-cb95b49f]{color:#888;text-transform:uppercase;border-bottom:1px solid #ffffff0d;padding:12px 16px;font-size:13px}.search-input[data-v-cb95b49f]{color:#eee;background:#141428cc;border:1px solid #ffffff26;border-radius:6px;margin:8px 12px;padding:8px 12px;font-size:13px}.unplaced-list[data-v-cb95b49f],.placed-list[data-v-cb95b49f]{flex:1;padding:4px 8px;overflow-y:auto}.unplaced-item[data-v-cb95b49f],.placed-item[data-v-cb95b49f]{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:13px;transition:background .15s;display:flex}.unplaced-item[data-v-cb95b49f]:hover{background:#ffffff0d}.unplaced-item.selected[data-v-cb95b49f]{background:#4fc3f733}.item-icon[data-v-cb95b49f]{font-size:16px}.item-name[data-v-cb95b49f]{flex:1}.item-type[data-v-cb95b49f]{color:#555;font-size:11px}.empty-hint[data-v-cb95b49f]{color:#444;text-align:center;padding:20px;font-size:13px}.placement-controls[data-v-cb95b49f]{background:#1e1e32cc;border-top:1px solid #ffffff1a;padding:12px}.control-row[data-v-cb95b49f]{align-items:center;gap:8px;margin-bottom:8px;display:flex}.control-row label[data-v-cb95b49f]{color:#888;width:40px;font-size:12px}.control-row input[type=range][data-v-cb95b49f]{flex:1}.control-row span[data-v-cb95b49f]{color:#666;text-align:right;width:40px;font-size:11px}.control-row select[data-v-cb95b49f]{color:#eee;background:#141428cc;border:1px solid #ffffff26;border-radius:4px;flex:1;padding:4px 8px;font-size:12px}.placement-hint[data-v-cb95b49f]{text-align:center;color:#4fc3f7;padding:16px 8px;font-size:13px;animation:1.5s ease-in-out infinite pulse-cb95b49f}@keyframes pulse-cb95b49f{0%,to{opacity:.6}50%{opacity:1}}.coord-display[data-v-cb95b49f]{padding:8px 0}.coord-row[data-v-cb95b49f]{justify-content:center;align-items:center;gap:8px;margin-bottom:4px;display:flex}.coord-label[data-v-cb95b49f]{color:#888;font-size:11px}.coord-value[data-v-cb95b49f]{color:#4fc3f7;background:#4fc3f71a;border-radius:4px;padding:2px 8px;font-family:monospace;font-size:14px}.coord-hint[data-v-cb95b49f]{text-align:center;color:#555;font-size:11px}.control-actions[data-v-cb95b49f]{gap:8px;margin-top:12px;display:flex}.place-btn[data-v-cb95b49f]{color:#1a1a2e;cursor:pointer;background:#4fc3f7;border:none;border-radius:6px;flex:1;padding:8px;font-weight:600}.place-btn[data-v-cb95b49f]:disabled{opacity:.4;cursor:not-allowed}.cancel-btn[data-v-cb95b49f]{color:#aaa;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:6px;padding:8px 16px}.placed-item[data-v-cb95b49f]{justify-content:space-between}.placed-actions[data-v-cb95b49f]{gap:4px;display:flex}.edit-btn[data-v-cb95b49f]{color:#4fc3f7;cursor:pointer;background:0 0;border:1px solid #4fc3f74d;border-radius:4px;padding:4px 8px;font-size:11px}.remove-btn[data-v-cb95b49f]{color:#f44336;cursor:pointer;background:0 0;border:1px solid #f443364d;border-radius:4px;padding:4px 8px;font-size:11px}@media (width<=768px){.device-editor[data-v-cb95b49f]{border-top:1px solid #ffffff1a;border-right:none;width:100%;max-height:50vh;top:auto;bottom:0}}.building-panel[data-v-eafaace7]{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:85;background:#141428f2;border-left:1px solid #ffffff1a;flex-direction:column;width:300px;max-width:100vw;display:flex;position:fixed;top:48px;bottom:0;right:0}.panel-header[data-v-eafaace7]{border-bottom:1px solid #ffffff1a;align-items:center;gap:8px;padding:14px 16px;display:flex}.panel-header h3[data-v-eafaace7]{color:#4fc3f7;flex:1;font-size:16px}.badge[data-v-eafaace7]{color:#888;background:#ffffff0d;border-radius:10px;padding:2px 8px;font-size:11px}.close-btn[data-v-eafaace7]{color:#888;cursor:pointer;background:0 0;border:none;font-size:18px}.panel-body[data-v-eafaace7]{flex:1;padding:8px 0;overflow-y:auto}.unit-section[data-v-eafaace7]{margin-bottom:4px}.unit-header[data-v-eafaace7]{color:#666;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #ffffff08;padding:8px 16px;font-size:12px}.device-item[data-v-eafaace7]{cursor:pointer;align-items:center;gap:10px;padding:10px 16px;transition:background .15s;display:flex}.device-item[data-v-eafaace7]:hover{background:#ffffff0d}.device-item.disabled[data-v-eafaace7]{opacity:.35;cursor:default}.dev-icon[data-v-eafaace7]{font-size:16px}.dev-name[data-v-eafaace7]{flex:1;font-size:13px}.dev-type[data-v-eafaace7]{color:#555;font-size:11px}.empty[data-v-eafaace7]{text-align:center;color:#444;padding:16px;font-size:13px}@media (width<=768px){.building-panel[data-v-eafaace7]{border-top:1px solid #ffffff1a;border-left:none;border-radius:16px 16px 0 0;width:100%;max-height:50vh;top:auto;bottom:0}}.map-container[data-v-c31137a8]{width:100%;height:100%;padding-top:48px;position:relative}.layer-controls[data-v-c31137a8]{z-index:50;gap:8px;display:flex;position:fixed;top:60px;right:140px}.layer-controls button[data-v-c31137a8]{color:#aaa;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#141428cc;border:1px solid #fff3;border-radius:20px;padding:8px 16px;font-size:13px;transition:all .2s}.layer-controls button.active[data-v-c31137a8]{color:#fff;background:#4fc3f74d;border-color:#4fc3f7}.edit-toggle[data-v-c31137a8]{color:#aaa;cursor:pointer;z-index:50;background:#141428cc;border:1px solid #fff3;border-radius:8px;padding:8px 16px;font-size:13px;position:fixed;top:60px;right:16px}.building-view[data-v-4afdc29a]{flex-direction:column;height:100%;padding-top:48px;display:flex;overflow:hidden}.building-header[data-v-4afdc29a]{border-bottom:1px solid #ffffff1a;flex-shrink:0;align-items:center;gap:16px;padding:12px 16px;display:flex}.back-btn[data-v-4afdc29a]{color:#aaa;cursor:pointer;background:0 0;border:1px solid #fff3;border-radius:6px;padding:6px 12px;font-size:13px}.building-header h2[data-v-4afdc29a]{color:#4fc3f7;margin:0;font-size:18px}.building-info[data-v-4afdc29a]{color:#666;font-size:13px}.main-content[data-v-4afdc29a]{flex:1;display:flex;position:relative;overflow:hidden}.three-container[data-v-4afdc29a]{flex:1;min-width:0}.floor-sidebar[data-v-4afdc29a]{border-left:1px solid #ffffff0d;flex-direction:column;gap:2px;width:50px;padding:4px;display:flex;overflow-y:auto}.floor-sidebar button[data-v-4afdc29a]{color:#666;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #ffffff1a;border-radius:4px;padding:4px 2px;font-size:11px;transition:all .2s}.floor-sidebar button.active[data-v-4afdc29a]{color:#4fc3f7;background:#4fc3f733;border-color:#4fc3f7}.floor-sidebar button.underground[data-v-4afdc29a]{color:#ff9800}.floor-sidebar button.underground.active[data-v-4afdc29a]{color:#ff9800;background:#ff980033;border-color:#ff9800}.device-sidebar[data-v-4afdc29a]{border-left:1px solid #ffffff0d;width:200px;padding:12px;overflow-y:auto}.device-sidebar h3[data-v-4afdc29a]{color:#888;margin:0 0 12px;font-size:13px}.device-list[data-v-4afdc29a]{flex-direction:column;gap:8px;display:flex}.device-card[data-v-4afdc29a]{cursor:pointer;background:#28283c80;border:1px solid #ffffff1a;border-radius:8px;align-items:center;gap:8px;padding:10px;transition:all .2s;display:flex}.device-card[data-v-4afdc29a]:hover{background:#4fc3f71a;border-color:#4fc3f7}.device-card.disabled[data-v-4afdc29a]{opacity:.4;cursor:not-allowed}.device-icon[data-v-4afdc29a]{font-size:20px}.device-name[data-v-4afdc29a]{color:#ccc;font-size:12px}@media (width<=768px){.device-sidebar[data-v-4afdc29a]{width:160px}}.settings-page[data-v-7a7dedc3]{max-width:600px;margin:0 auto;padding:64px 24px 24px}h2[data-v-7a7dedc3]{color:#4fc3f7;margin-bottom:24px}h3[data-v-7a7dedc3]{color:#aaa;text-transform:uppercase;margin:24px 0 12px;font-size:14px}section[data-v-7a7dedc3]{background:#28283c80;border-radius:12px;margin-bottom:16px;padding:16px}.form-group[data-v-7a7dedc3]{align-items:center;gap:12px;margin-bottom:12px;display:flex}.form-group label[data-v-7a7dedc3]{color:#888;width:80px;font-size:13px}.form-group input[data-v-7a7dedc3],.form-group select[data-v-7a7dedc3]{color:#eee;background:#141428cc;border:1px solid #ffffff26;border-radius:6px;flex:1;padding:8px 12px;font-size:14px}button[data-v-7a7dedc3]{color:#4fc3f7;cursor:pointer;background:#4fc3f733;border:1px solid #4fc3f7;border-radius:6px;padding:8px 20px;font-size:14px}button[data-v-7a7dedc3]:disabled{opacity:.4;cursor:not-allowed}.hint[data-v-7a7dedc3]{color:#888;font-size:13px}.hint a[data-v-7a7dedc3]{color:#4fc3f7;text-decoration:none}.hint a[data-v-7a7dedc3]:hover{text-decoration:underline}.preset-builder[data-v-40c84e64]{z-index:200;background:#141428fa;flex-direction:column;max-width:600px;margin:0 auto;display:flex;position:fixed;inset:48px 0 0}.builder-header[data-v-40c84e64]{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:center;padding:16px;display:flex}.builder-header h3[data-v-40c84e64]{color:#4fc3f7}.close-btn[data-v-40c84e64]{color:#888;cursor:pointer;background:0 0;border:none;font-size:18px}.builder-body[data-v-40c84e64]{flex:1;padding:16px;overflow-y:auto}.form-group[data-v-40c84e64]{align-items:center;gap:12px;margin-bottom:12px;display:flex}.form-group label[data-v-40c84e64]{color:#888;flex-shrink:0;width:90px;font-size:13px}.form-group input[type=text][data-v-40c84e64],.form-group input[data-v-40c84e64]:not([type]){color:#eee;background:#141428cc;border:1px solid #ffffff26;border-radius:6px;flex:1;padding:8px 12px;font-size:14px}.icon-picker[data-v-40c84e64]{flex-wrap:wrap;gap:4px;display:flex}.icon-picker button[data-v-40c84e64]{cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:8px;width:36px;height:36px;font-size:18px}.icon-picker button.selected[data-v-40c84e64]{background:#4fc3f733;border-color:#4fc3f7}h4[data-v-40c84e64]{color:#aaa;margin:20px 0 12px;font-size:13px}.steps-list[data-v-40c84e64]{flex-direction:column;gap:8px;display:flex}.step-item[data-v-40c84e64]{background:#1e1e3280;border:1px solid #ffffff14;border-radius:8px;align-items:flex-start;gap:8px;padding:12px;display:flex}.step-num[data-v-40c84e64]{color:#4fc3f7;background:#4fc3f733;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:flex}.step-content[data-v-40c84e64]{flex-direction:column;flex:1;gap:8px;display:flex}.step-content select[data-v-40c84e64],.step-params input[data-v-40c84e64],.step-params select[data-v-40c84e64]{color:#eee;background:#141428cc;border:1px solid #ffffff26;border-radius:6px;padding:6px 10px;font-size:13px}.step-params[data-v-40c84e64]{align-items:center;gap:8px;display:flex}.step-params input[data-v-40c84e64]{width:80px}.step-params span[data-v-40c84e64]{color:#666;font-size:12px}.remove-step[data-v-40c84e64]{color:#f44336;cursor:pointer;background:0 0;border:none;font-size:14px}.add-step[data-v-40c84e64]{color:#4fc3f7;cursor:pointer;background:0 0;border:1px dashed #fff3;border-radius:8px;width:100%;margin-top:12px;padding:10px;font-size:13px}.homekit-toggle[data-v-40c84e64]{border-top:1px solid #ffffff14;margin-top:20px;padding-top:16px}.homekit-toggle input[type=checkbox][data-v-40c84e64]{width:18px;height:18px}.builder-footer[data-v-40c84e64]{border-top:1px solid #ffffff1a;padding:16px}.save-btn[data-v-40c84e64]{color:#1a1a2e;cursor:pointer;background:#4fc3f7;border:none;border-radius:8px;width:100%;padding:12px;font-size:15px;font-weight:600}@media (width<=768px){.preset-builder[data-v-40c84e64]{max-width:100%}}.presets-page[data-v-d4f75224]{max-width:800px;margin:0 auto;padding:64px 24px 24px}h2[data-v-d4f75224]{color:#4fc3f7;margin-bottom:24px}.preset-grid[data-v-d4f75224]{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;display:grid}.preset-card[data-v-d4f75224]{text-align:center;cursor:pointer;background:#28283c80;border:1px solid #ffffff1a;border-radius:16px;padding:24px;transition:all .2s;position:relative}.preset-card[data-v-d4f75224]:hover{background:#4fc3f726;border-color:#4fc3f7}.preset-actions[data-v-d4f75224]{gap:2px;display:none;position:absolute;top:6px;right:6px}.preset-card:hover .preset-actions[data-v-d4f75224]{display:flex}.action-btn[data-v-d4f75224]{color:#aaa;cursor:pointer;background:#ffffff1a;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:flex}.action-btn[data-v-d4f75224]:hover{background:#fff3}.delete-btn[data-v-d4f75224]:hover{color:#f44336}.preset-icon[data-v-d4f75224]{margin-bottom:8px;font-size:32px}.preset-name[data-v-d4f75224]{font-size:14px;font-weight:500}.preset-steps[data-v-d4f75224]{color:#666;margin-top:4px;font-size:12px}.add-card[data-v-d4f75224]{border-style:dashed}.add-card .preset-icon[data-v-d4f75224]{color:#4fc3f7}.devices-page[data-v-80937177]{max-width:1200px;height:100vh;margin:0 auto;padding:64px 24px 24px;overflow-y:auto}.page-header[data-v-80937177]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-header h2[data-v-80937177]{color:#4fc3f7}.header-actions[data-v-80937177]{gap:8px;display:flex}.add-btn[data-v-80937177]{color:#4fc3f7;cursor:pointer;background:#4fc3f733;border:1px solid #4fc3f7;border-radius:6px;padding:8px 16px;font-size:14px}.import-btn[data-v-80937177]{cursor:pointer;color:#aaa;border:1px dashed #fff3;border-radius:6px;padding:8px 16px;font-size:14px;transition:all .2s}.import-btn[data-v-80937177]:hover{color:#4fc3f7;border-color:#4fc3f7}.import-btn input[data-v-80937177]{display:none}.stats-bar[data-v-80937177]{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.stat-badge[data-v-80937177]{color:#888;cursor:pointer;background:#ffffff0d;border-radius:12px;padding:4px 12px;font-size:12px;transition:all .2s}.stat-badge[data-v-80937177]:hover{color:#ccc}.stat-badge.active[data-v-80937177]{color:#4fc3f7;background:#4fc3f726}.filter-bar[data-v-80937177]{gap:8px;margin-bottom:12px;display:flex}.search-input[data-v-80937177]{color:#eee;background:#141428cc;border:1px solid #ffffff26;border-radius:6px;flex:1;padding:8px 12px;font-size:14px}.building-filter[data-v-80937177]{color:#eee;background:#141428cc;border:1px solid #ffffff26;border-radius:6px;min-width:100px;padding:8px 12px;font-size:14px}.device-list[data-v-80937177]{background:#28283c4d;border-radius:12px;overflow:hidden}.list-header[data-v-80937177],.list-row[data-v-80937177]{align-items:center;gap:8px;padding:10px 16px;font-size:13px;display:flex}.list-header[data-v-80937177]{color:#888;text-transform:uppercase;background:#ffffff08;border-bottom:1px solid #ffffff0d;font-size:12px}.list-row[data-v-80937177]{border-bottom:1px solid #ffffff08;transition:background .15s}.list-row[data-v-80937177]:hover{background:#ffffff08}.list-row.selected[data-v-80937177]{background:#4fc3f714}.list-row.disabled[data-v-80937177]{opacity:.5}.col-check[data-v-80937177]{flex-shrink:0;width:30px}.col-name[data-v-80937177]{cursor:pointer;flex:2;align-items:center;gap:8px;min-width:0;display:flex}.col-type[data-v-80937177]{color:#888;flex-shrink:0;width:70px}.col-building[data-v-80937177]{text-align:center;flex-shrink:0;width:50px}.col-ip[data-v-80937177]{color:#888;flex-shrink:0;width:130px;font-family:monospace;font-size:12px}.col-status[data-v-80937177]{flex-shrink:0;align-items:center;gap:6px;width:70px;font-size:12px;display:flex}.col-actions[data-v-80937177]{flex-shrink:0;justify-content:flex-end;gap:4px;width:160px;display:flex}.dev-icon[data-v-80937177]{flex-shrink:0;font-size:16px}.dev-name-text[data-v-80937177]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.dev-id[data-v-80937177]{color:#555;flex-shrink:0;font-size:11px}.status-dot[data-v-80937177]{border-radius:50%;width:6px;height:6px}.status-dot.on[data-v-80937177]{background:#4caf50}.status-dot.off[data-v-80937177]{background:#f44336}.action-btn[data-v-80937177]{color:#aaa;cursor:pointer;background:0 0;border:1px solid #ffffff1a;border-radius:4px;padding:4px 8px;font-size:11px;transition:all .15s}.action-btn[data-v-80937177]:hover{color:#fff}.action-btn.edit[data-v-80937177]:hover{color:#4fc3f7;border-color:#4fc3f7}.action-btn.delete[data-v-80937177]:hover{color:#f44336;border-color:#f44336}.action-btn.toggle[data-v-80937177]:hover{color:#ff9800;border-color:#ff9800}.empty-state[data-v-80937177]{text-align:center;color:#555;padding:40px;font-size:14px}.batch-bar[data-v-80937177]{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:50;background:#1e1e32f2;border:1px solid #ffffff1a;border-radius:12px;align-items:center;gap:12px;padding:10px 20px;font-size:13px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.batch-btn[data-v-80937177]{color:#aaa;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:6px;padding:6px 14px;font-size:13px}.batch-btn.delete[data-v-80937177]{color:#f44336;border-color:#f443364d}.modal-overlay[data-v-80937177]{z-index:200;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal[data-v-80937177]{background:#1e1e32fa;border:1px solid #ffffff1a;border-radius:16px;width:500px;max-width:90vw;max-height:80vh;padding:20px;overflow-y:auto}.modal-sm[data-v-80937177]{width:360px}.modal-form[data-v-80937177]{width:560px}.modal-header[data-v-80937177]{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.modal-header h3[data-v-80937177]{color:#4fc3f7;font-size:16px}.close-btn[data-v-80937177]{color:#888;cursor:pointer;background:0 0;border:none;font-size:20px}.modal-footer[data-v-80937177]{border-top:1px solid #ffffff0d;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:12px;display:flex}.modal-footer button[data-v-80937177]{color:#aaa;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:6px;padding:8px 16px;font-size:13px}.modal-footer button.primary[data-v-80937177]{color:#4fc3f7;background:#4fc3f726;border-color:#4fc3f7}.modal-footer button.delete-confirm[data-v-80937177]{color:#f44336;background:#f4433626;border-color:#f44336}.modal-footer button.cancel[data-v-80937177]{color:#666}.form-body h4[data-v-80937177]{color:#888;text-transform:uppercase;margin:16px 0 8px;font-size:13px}.form-group[data-v-80937177]{margin-bottom:10px}.form-group label[data-v-80937177]{color:#888;margin-bottom:4px;font-size:12px;display:block}.form-group input[data-v-80937177],.form-group select[data-v-80937177]{color:#eee;background:#141428cc;border:1px solid #ffffff26;border-radius:6px;width:100%;padding:8px 12px;font-size:14px}.form-group input[data-v-80937177]:disabled{opacity:.5}.form-row[data-v-80937177]{gap:12px;display:flex}.form-group.half[data-v-80937177]{flex:1}.conflict-hint[data-v-80937177]{color:#ff9800;margin-bottom:8px;font-size:13px}.conflict-list[data-v-80937177]{max-height:200px;margin-bottom:8px;overflow-y:auto}.conflict-item[data-v-80937177]{color:#ccc;cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:13px;display:flex}.toast[data-v-80937177]{color:#fff;z-index:300;cursor:pointer;background:#4caf50e6;border-radius:8px;padding:10px 24px;font-size:14px;animation:.3s fadeIn-80937177;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}@keyframes fadeIn-80937177{0%{opacity:0;transform:translate(-50%)translateY(10px)}}@media (width<=768px){.devices-page[data-v-80937177]{padding:56px 12px 12px}.page-header[data-v-80937177]{flex-direction:column;align-items:flex-start;gap:8px}.col-ip[data-v-80937177],.col-building[data-v-80937177],.col-status[data-v-80937177]{display:none}.col-actions[data-v-80937177]{width:auto}.list-header[data-v-80937177]{display:none}.list-row[data-v-80937177]{flex-wrap:wrap}}.login-page[data-v-48cd82b5]{background:#1a1a2e;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card[data-v-48cd82b5]{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#1e1e32e6;border:1px solid #ffffff1a;border-radius:16px;width:320px;padding:32px}.login-card h2[data-v-48cd82b5]{text-align:center;color:#4fc3f7;margin-bottom:24px;font-size:18px}.form-group[data-v-48cd82b5]{margin-bottom:16px}.form-group input[data-v-48cd82b5]{color:#eee;box-sizing:border-box;background:#141428cc;border:1px solid #ffffff26;border-radius:8px;width:100%;padding:12px 16px;font-size:14px}.form-group input[data-v-48cd82b5]:focus{border-color:#4fc3f7;outline:none}button[type=submit][data-v-48cd82b5]{color:#1a1a2e;cursor:pointer;background:#4fc3f7;border:none;border-radius:8px;width:100%;padding:12px;font-size:15px;font-weight:600;transition:opacity .2s}button[type=submit][data-v-48cd82b5]:disabled{opacity:.5;cursor:not-allowed}.error-msg[data-v-48cd82b5]{color:#f44336;text-align:center;margin-bottom:12px;font-size:13px}
