#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#3e5573}.noselect{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.globe[data-v-112169ca]{position:relative;width:100%;height:100%;overflow:hidden}.globe__canvas[data-v-112169ca]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.globe__hit[data-v-112169ca]{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;cursor:crosshair;touch-action:none}.globe__label[data-v-112169ca]{position:absolute;top:0;left:0;display:inline-flex;align-items:center;gap:6px;padding:4px 12px 4px 8px;border:1px solid hsla(0,0%,100%,.14);border-radius:999px;background:rgba(8,12,22,.72);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#c9d6ea;font-size:13px;line-height:1.2;white-space:nowrap;text-decoration:none;opacity:0;will-change:transform;transition:border-color .2s ease,box-shadow .2s ease,color .2s ease}.globe__label.is-active[data-v-112169ca],.globe__label[data-v-112169ca]:focus-visible,.globe__label[data-v-112169ca]:hover{border-color:var(--c);box-shadow:0 0 14px var(--c);color:#fff;outline:none}@media (max-width:599px){.globe__label[data-v-112169ca]{gap:4px;padding:3px 9px 3px 6px;font-size:11px}}.home[data-v-a89eb544]{height:calc(100vh - var(--chrome));height:calc(100dvh - var(--chrome))}.visually-hidden[data-v-a89eb544]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.preset[data-v-04af78cb],.preset[data-v-96d36212]{cursor:pointer;border:1px solid rgba(0,0,0,.3)!important}.vacuum-map-wrap[data-v-6e138c78]{position:relative;background:#1a1a1a;border-radius:8px;overflow:hidden;width:100%;height:50vh;min-height:260px;max-height:75vh;touch-action:none;cursor:grab;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vacuum-map-wrap[data-v-6e138c78]:active{cursor:grabbing}.vacuum-map-wrap.pin-mode[data-v-6e138c78]{cursor:crosshair}.vacuum-map-banner[data-v-6e138c78]{position:absolute;top:8px;left:8px;right:8px;background:rgba(255,193,7,.85);color:#000;padding:4px 8px;border-radius:6px;font-size:12px;text-align:center;pointer-events:none;z-index:2}.vacuum-map-canvas[data-v-6e138c78]{position:absolute;top:0;left:0;display:block;-ms-interpolation-mode:nearest-neighbor;image-rendering:pixelated;image-rendering:crisp-edges;will-change:transform}.vacuum-map-controls[data-v-6e138c78]{position:absolute;right:8px;bottom:8px;display:flex;flex-direction:column;gap:4px;background:rgba(0,0,0,.55);border-radius:6px;padding:4px;z-index:2}.vacuum-map-empty[data-v-6e138c78]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}.marker-layer[data-v-6e138c78]{position:absolute;inset:0;pointer-events:none;z-index:1}.marker-layer .v-icon[data-v-6e138c78]{position:absolute;transform:translate(-50%,-50%);text-shadow:0 0 4px rgba(0,0,0,.85)}.robot-marker[data-v-6e138c78]{font-size:42px!important;color:#ff5252!important}.device-marker[data-v-6e138c78]{font-size:22px!important;color:#9e9e9e!important}.device-marker.device-on[data-v-6e138c78]{color:#ffd740!important;text-shadow:0 0 8px rgba(255,215,64,.9)}.device-marker.device-clickable[data-v-6e138c78]{pointer-events:auto;cursor:pointer}.routine-marker[data-v-6e138c78]{font-size:26px!important;color:#9575cd!important}.routine-marker.routine-active[data-v-6e138c78]{color:#b388ff!important;text-shadow:0 0 10px rgba(179,136,255,.95)}.routine-marker.device-clickable[data-v-6e138c78]{pointer-events:auto;cursor:pointer}.place-banner[data-v-6e138c78]{background:rgba(100,181,246,.9)}.charger-marker[data-v-6e138c78]{font-size:26px!important;color:#4caf50!important}.goto-marker[data-v-6e138c78]{font-size:34px!important;color:#ffd740!important;animation:goto-pulse-data-v-6e138c78 1.2s ease-out infinite}@keyframes goto-pulse-data-v-6e138c78{0%{transform:translate(-50%,-50%) scale(1);opacity:1}50%{transform:translate(-50%,-50%) scale(1.15);opacity:.7}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.kv-grid[data-v-04e57a74]{display:grid;grid-template-columns:auto 1fr;-moz-column-gap:16px;column-gap:16px;row-gap:4px;font-size:13px;line-height:1.4;text-align:left}.kv-label[data-v-04e57a74]{color:hsla(0,0%,100%,.6);white-space:nowrap}.kv-value[data-v-04e57a74]{color:#fff}.joystick-pad[data-v-127a3aaa]{width:240px;height:240px;margin:0 auto;border-radius:50%;background:radial-gradient(circle at center,#2a2a2a 0,#1a1a1a 70%,#111 100%);position:relative;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid #444;box-shadow:inset 0 0 16px rgba(0,0,0,.6)}.pad-axis[data-v-127a3aaa]{position:absolute;background:hsla(0,0%,100%,.06)}.pad-axis-x[data-v-127a3aaa]{left:8%;right:8%;top:50%;height:1px;transform:translateY(-50%)}.pad-axis-y[data-v-127a3aaa]{top:8%;bottom:8%;left:50%;width:1px;transform:translateX(-50%)}.pad-knob[data-v-127a3aaa]{position:absolute;left:50%;top:50%;width:60px;height:60px;margin-left:-30px;margin-top:-30px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#ff8a80,#d32f2f);box-shadow:0 4px 10px rgba(0,0,0,.55);transition:transform 80ms ease-out;pointer-events:none}.readout[data-v-127a3aaa]{font-family:monospace;font-size:12px;color:hsla(0,0%,100%,.75)}.readout-label[data-v-127a3aaa]{color:hsla(0,0%,100%,.45);margin-right:4px}.readout-sep[data-v-127a3aaa]{margin:0 10px;color:hsla(0,0%,100%,.25)}.hint[data-v-127a3aaa]{font-size:11px;color:hsla(0,0%,100%,.45)}.hint .v-icon[data-v-127a3aaa]{vertical-align:-2px;margin-right:4px;color:hsla(0,0%,100%,.45)}.opt-group[data-v-127a3aaa]{text-align:center}.opt-label[data-v-127a3aaa]{font-size:11px;color:hsla(0,0%,100%,.55);margin-bottom:4px;letter-spacing:.5px;text-transform:uppercase}.opt-group[data-v-127a3aaa] .v-btn:not(.v-btn--active):not(.v-btn--disabled):hover{background-color:rgba(255,138,128,.18)!important;color:#ff8a80}.opt-group[data-v-127a3aaa] .v-btn:not(.v-btn--active):not(.v-btn--disabled):hover .v-icon{color:#ff8a80}.opt-group[data-v-127a3aaa] .v-btn--active:hover{filter:brightness(1.15)}.vacuum-view[data-v-cbb7089c]{color:#fff}.room-tile[data-v-cbb7089c]{position:relative;cursor:pointer;transition:transform .12s ease}.room-tile[data-v-cbb7089c]:hover{transform:translateY(-2px)}.room-selected[data-v-cbb7089c]{outline:3px solid #fff;outline-offset:-3px}.room-check[data-v-cbb7089c]{position:absolute;top:4px;right:4px;color:#fff;z-index:1}.depot-table[data-v-36246d02] tbody tr:not(.v-data-table__expanded__content){cursor:pointer}.dropzone[data-v-0d980d25]{border-style:dashed!important;border-width:2px!important;transition:border-color .12s ease-out,background-color .12s ease-out}.dropzone--active[data-v-0d980d25]{border-color:var(--v-primary-base,#1976d2)!important;background-color:rgba(25,118,210,.06)}.map-viewport[data-v-3daff7f2]{position:relative;overflow:hidden;width:100%;max-height:75vh;aspect-ratio:4/3;background:#111;border-radius:4px;cursor:grab;touch-action:none}.map-viewport[data-v-3daff7f2]:active{cursor:grabbing}.map-img[data-v-3daff7f2]{display:block;width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none;will-change:transform;transition:transform 80ms ease-out}.map-img.no-anim[data-v-3daff7f2]{transition:none}.map-controls[data-v-3daff7f2]{position:absolute;top:8px;right:8px;display:flex;flex-direction:column}.map-ctrl-btn[data-v-3daff7f2]{background:rgba(0,0,0,.55);margin-bottom:6px}.mm{--mm-bg:#121212;--mm-surface:#1e1e1e;--mm-surface-2:#2b2b2b;--mm-line:#383838;--mm-fg:#ececec;--mm-muted:#a3a3a3;--mm-dot:#2a2a2a;--mm-ring:#fff;display:flex;flex-direction:column;text-align:left;color:var(--mm-fg);background:var(--mm-bg)}.mm [hidden]{display:none!important}.mm kbd{font:10px/1.5 ui-monospace,Consolas,monospace;color:var(--mm-muted);background:var(--mm-bg);border:1px solid var(--mm-line);border-bottom-width:2px;border-radius:4px;padding:0 4px;box-shadow:none}.mm-bar{display:flex;align-items:center;gap:4px;padding:4px 12px;background:var(--mm-surface);border-bottom:1px solid var(--mm-line)}.mm-keys{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:12px;color:var(--mm-muted)}.mm-keys span{white-space:nowrap}.mm-alert{margin:8px 12px 0!important}.mm-stage{position:relative;flex:1;min-height:0;overflow:hidden}.mm-viewport{position:absolute;inset:0;touch-action:none;cursor:grab;outline:none;background-color:var(--mm-bg);background-image:radial-gradient(var(--mm-dot) 1.2px,transparent 1.3px)}.mm-viewport.is-panning{cursor:grabbing}.mm-world{transform-origin:0 0}.mm-edges,.mm-world{position:absolute;left:0;top:0}.mm-edges{overflow:visible;pointer-events:none}.mm-edges path{fill:none;stroke-linecap:round;opacity:.9}.mm-overlay{inset:0;justify-content:center}.mm-node,.mm-overlay{position:absolute;display:flex;align-items:center}.mm-node{left:0;top:0;box-sizing:border-box;width:-moz-max-content;width:max-content;max-width:220px;gap:5px;padding:3px 10px;border-radius:13px;background:var(--tint);border:2px solid var(--c);color:var(--mm-fg);font-size:13px;font-weight:500;line-height:1.25;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow-wrap:anywhere}.mm-t{min-width:1ch;outline:none}.mm-node.is-root{padding:8px 18px;border-radius:20px;font-size:16px;font-weight:700;background:var(--c);color:var(--ink);box-shadow:0 4px 18px rgba(0,0,0,.5)}.mm-node.is-sel{outline:2px solid var(--mm-ring);outline-offset:2px}.mm-node.is-editing,.mm-node.is-editing .mm-t{cursor:text;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.mm-node.is-editing{box-shadow:0 0 0 4px hsla(0,0%,100%,.12)}.mm-ic{display:inline-flex;gap:3px;color:var(--mm-muted)}.mm-ic:empty{display:none}.mm-node.is-root .mm-ic{color:var(--ink)}.mm-fold{position:absolute;top:50%;left:100%;transform:translate(-50%,-50%);box-sizing:border-box;min-width:16px;height:16px;padding:0 3px;border-radius:8px;border:2px solid var(--c);background:var(--mm-bg);color:var(--mm-fg);font-size:9.5px;font-weight:700;line-height:12px;text-align:center;opacity:0;transition:opacity .12s;cursor:pointer}.mm-node.is-left .mm-fold{left:0}.mm-fold.is-closed,.mm-node.is-sel .mm-fold,.mm-node:hover .mm-fold{opacity:1}.mm-fold.is-closed{background:var(--c);color:var(--ink)}.mm-actions{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:flex;gap:2px;padding:4px;background:var(--mm-surface);border:1px solid var(--mm-line);border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.55);transition:left .2s}.mm--panel .mm-actions{left:calc(50% - 170px)}.mm-act{display:flex;align-items:center;gap:8px;padding:5px 9px;border-radius:7px;color:var(--mm-fg);text-align:left}.mm-act .v-icon{color:inherit}.mm-act:hover:not(:disabled){background:var(--mm-surface-2)}.mm-act:disabled{opacity:.35;cursor:default}.mm-act:focus-visible{outline:2px solid var(--mm-ring);outline-offset:1px}.mm-act>span{align-items:flex-start;gap:2px;font-size:12px;font-weight:500;line-height:1.1;white-space:nowrap}.mm-act>span,.mm-panel.v-card{display:flex;flex-direction:column}.mm-panel.v-card{position:absolute;top:12px;right:12px;bottom:12px;width:320px;max-width:calc(100% - 24px);overflow:auto;padding:14px 16px;gap:14px;background:var(--mm-surface);border-color:var(--mm-line);box-shadow:0 12px 40px rgba(0,0,0,.55)}.mm-panel__head{display:flex;align-items:center}.mm-panel__label{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--mm-muted);margin-bottom:8px}.mm-panel__hint{font-size:12px;color:var(--mm-muted);margin-top:6px}.mm-panel__foot{display:flex;align-items:center;margin-top:auto}.mm-swatches{display:flex;flex-wrap:wrap;gap:8px}.mm-sw{width:28px;height:28px;border-radius:50%;border:2px solid;font-size:11px;font-weight:700}.mm-sw--on{outline:2px solid var(--mm-ring);outline-offset:2px}@media (max-width:720px){.mm-act{padding:9px}.mm-act>span{display:none}.mm--panel .mm-actions{left:50%}.mm-panel.v-card{top:auto;left:0;right:0;bottom:0;width:auto;max-width:none;max-height:72%;border-radius:16px 16px 0 0!important}}@media (prefers-reduced-motion:reduce){.mm-actions,.mm-fold{transition:none}}.request-map[data-v-6b9702db]{height:520px;width:100%}.v-card[data-v-6b9702db],.v-card[data-v-61398f46]{text-align:left}.chip-filter[data-v-61398f46]{cursor:pointer}.v-card[data-v-55d298fa]{text-align:left}.kpis[data-v-55d298fa]{gap:24px 32px}.kpi-value[data-v-55d298fa]{font-size:1.35rem;line-height:1.2;font-weight:500}.kpi-label[data-v-55d298fa]{font-size:.75rem;opacity:.7}.chart-plot[data-v-55d298fa]{position:relative;display:flex;align-items:flex-end;gap:2px;height:180px;border-bottom:1px solid hsla(0,0%,100%,.3)}.slot[data-v-55d298fa]{position:relative;flex:1 1 0;height:100%;display:flex;flex-direction:column;justify-content:flex-end;min-width:2px}.bar[data-v-55d298fa]{width:100%;background:#26a69a;border-radius:4px 4px 0 0}.slot:hover .bar[data-v-55d298fa]{background:#4db6ac}.peak-label[data-v-55d298fa]{position:absolute;top:0;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:.7rem;opacity:.6}.chart-axis[data-v-55d298fa]{display:flex;justify-content:space-between;font-size:.7rem;opacity:.6;margin-top:4px}.tooltip[data-v-55d298fa]{position:absolute;top:0;transform:translateX(-50%);padding:4px 8px;border-radius:4px;background:rgba(0,0,0,.85);font-size:.75rem;line-height:1.3;white-space:nowrap;pointer-events:none}.clickable[data-v-55d298fa]{cursor:pointer}.kv-tree[data-v-5a0d9a5f]{text-align:left}.kv-tree-nested[data-v-5a0d9a5f]{margin-left:16px;padding-left:12px;border-left:2px solid hsla(0,0%,100%,.08);margin-top:4px;margin-bottom:8px}.kv-row[data-v-5a0d9a5f]{padding:2px 0}.kv-pair[data-v-5a0d9a5f]{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:6px 8px;border-bottom:1px solid hsla(0,0%,100%,.05)}.kv-pair[data-v-5a0d9a5f]:last-child{border-bottom:none}.kv-key[data-v-5a0d9a5f]{color:#888;font-size:13px;white-space:nowrap}.kv-value[data-v-5a0d9a5f]{font-family:Consolas,Courier New,monospace;font-size:14px;color:#d4d4d4;text-align:right;word-break:break-all}.kv-group-label[data-v-5a0d9a5f]{font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:#5b9bd5;margin-top:8px;margin-bottom:4px;font-weight:600}.kv-empty[data-v-5a0d9a5f]{color:#666;font-style:italic;padding:8px}.kv-path[data-v-9adbda32]{font-family:Consolas,Courier New,monospace;font-size:13px;color:#888;font-weight:400}.kv-placeholder[data-v-9adbda32]{color:#666;font-style:italic;padding:8px}.response-block[data-v-9adbda32]{background-color:#1e1e1e;color:#d4d4d4;padding:12px;border-radius:4px;overflow-x:auto;font-family:Consolas,Courier New,monospace;font-size:13px;white-space:pre-wrap;word-break:break-all;text-align:left}