.shell[data-v-cce2f602]{display:flex;min-height:100vh;background:var(--bg)}.sidebar[data-v-cce2f602]{width:var(--sidebar-w);flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;padding:16px 14px;position:fixed;inset:0 auto 0 0;z-index:40}.brand[data-v-cce2f602]{display:flex;align-items:center;gap:11px;padding:8px 10px 18px}.brand-mark[data-v-cce2f602]{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--primary),#5b8bff);color:#fff;font-weight:800;font-size:14px;display:grid;place-items:center;letter-spacing:-.03em}.brand-name[data-v-cce2f602]{font-size:17px;font-weight:750;letter-spacing:-.03em}.nav[data-v-cce2f602]{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.nav-label[data-v-cce2f602]{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-subtle);margin:16px 10px 6px}.nav-item[data-v-cce2f602]{display:flex;align-items:center;gap:11px;padding:9px 11px;border-radius:var(--r-sm);font-size:14px;font-weight:550;color:var(--text-muted);cursor:pointer;border:none;background:none;width:100%;text-align:left;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.nav-item[data-v-cce2f602]:hover{background:var(--surface-3);color:var(--text)}.nav-item .ic[data-v-cce2f602]{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.nav-item.fill-ic .ic[data-v-cce2f602]{fill:currentColor;stroke:none}.nav-item.router-link-active[data-v-cce2f602]{background:var(--primary-soft);color:var(--primary);font-weight:650}.logout[data-v-cce2f602]{margin-top:8px;color:var(--text-muted)}.logout[data-v-cce2f602]:hover{background:var(--danger-soft);color:var(--danger)}.main[data-v-cce2f602]{flex:1;min-width:0;margin-left:var(--sidebar-w);display:flex;flex-direction:column}.topbar[data-v-cce2f602]{height:var(--topbar-h);background:hsla(0,0%,100%,.82);-webkit-backdrop-filter:saturate(180%) blur(8px);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px;padding:0 24px;position:sticky;top:0;z-index:30}.topbar-title[data-v-cce2f602]{font-size:17px;font-weight:700}.hamburger[data-v-cce2f602]{display:none;width:38px;height:38px;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--r-sm);cursor:pointer;place-items:center}.hamburger .ic[data-v-cce2f602]{width:20px;height:20px;fill:none;stroke:var(--text);stroke-width:2;stroke-linecap:round}.user-chip[data-v-cce2f602]{display:flex;align-items:center;gap:9px;padding:5px 12px 5px 5px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface)}.avatar[data-v-cce2f602]{width:28px;height:28px;border-radius:50%;background:var(--primary);color:#fff;font-size:13px;font-weight:700;display:grid;place-items:center}.user-name[data-v-cce2f602]{font-size:13px;font-weight:600;color:var(--text);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content[data-v-cce2f602]{flex:1;min-width:0}.scrim[data-v-cce2f602]{position:fixed;inset:0;background:rgba(16,24,40,.4);z-index:35}@media (max-width:900px){.main[data-v-cce2f602]{margin-left:0}.sidebar[data-v-cce2f602]{transform:translateX(-100%);transition:transform var(--dur) var(--ease)}.sidebar.open[data-v-cce2f602]{transform:translateX(0);box-shadow:var(--shadow-lg)}.hamburger[data-v-cce2f602]{display:grid}}.auth[data-v-9ad4c672]{display:flex;min-height:100vh;background:var(--bg)}.brand-panel[data-v-9ad4c672]{flex:1.1;position:relative;overflow:hidden;background:linear-gradient(150deg,#1a2b52,#22408a 45%,#2f6bff);color:#fff;display:flex;align-items:center;padding:60px}.brand-inner[data-v-9ad4c672]{position:relative;z-index:2;max-width:460px}.brand-row[data-v-9ad4c672]{display:flex;align-items:center;gap:12px;margin-bottom:48px}.brand-panel .brand-mark[data-v-9ad4c672]{width:40px;height:40px;border-radius:10px;background:hsla(0,0%,100%,.16);border:1px solid hsla(0,0%,100%,.25);display:grid;place-items:center;font-weight:800;font-size:15px}.brand-panel .brand-name[data-v-9ad4c672]{font-size:19px;font-weight:750}.brand-headline[data-v-9ad4c672]{font-size:38px;line-height:1.18;font-weight:750;letter-spacing:-.03em}.brand-sub[data-v-9ad4c672]{margin-top:18px;font-size:15px;color:hsla(0,0%,100%,.72)}.brand-glow[data-v-9ad4c672]{position:absolute;width:520px;height:520px;right:-160px;bottom:-200px;background:radial-gradient(circle,hsla(0,0%,100%,.22),transparent 62%);border-radius:50%;z-index:1}.form-panel[data-v-9ad4c672]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;position:relative}.form-card[data-v-9ad4c672]{width:100%;max-width:380px}.mobile-brand[data-v-9ad4c672]{display:none;align-items:center;gap:10px;margin-bottom:28px;justify-content:center}.mobile-brand .brand-mark[data-v-9ad4c672]{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,var(--primary),#5b8bff);color:#fff;display:grid;place-items:center;font-weight:800;font-size:14px}.mobile-brand .brand-name[data-v-9ad4c672]{font-size:17px;font-weight:750}.form-title[data-v-9ad4c672]{font-size:26px;font-weight:750}.form-desc[data-v-9ad4c672]{color:var(--text-muted);margin:8px 0 28px}.error-banner[data-v-9ad4c672]{background:var(--danger-soft);color:var(--danger);border:1px solid #f6c8ca;padding:10px 12px;border-radius:var(--r-sm);font-size:13px;font-weight:550;margin:0 0 16px}.btn-block[data-v-9ad4c672]{height:46px;font-size:15px;margin-top:4px}.footer-note[data-v-9ad4c672]{position:absolute;bottom:26px;color:var(--text-subtle);font-size:12px}@media (max-width:860px){.brand-panel[data-v-9ad4c672]{display:none}.mobile-brand[data-v-9ad4c672]{display:flex}}.gateway-chart[data-v-27a0d2ca]{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);padding:20px;display:flex;flex-direction:column}.card-head[data-v-27a0d2ca]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.card-title[data-v-27a0d2ca]{font-size:16px;font-weight:700}.gateway-chart-container[data-v-27a0d2ca]{flex:1;display:flex;flex-direction:column}.chart-area[data-v-27a0d2ca]{flex:1;min-height:320px;width:100%;position:relative}canvas[data-v-27a0d2ca]{max-height:100%}.dash[data-v-b8211978]{display:flex;flex-direction:column;gap:22px}.dash-head[data-v-b8211978]{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.dash-title[data-v-b8211978]{font-size:22px;font-weight:750}.company-logo[data-v-b8211978]{max-height:44px;width:auto;-o-object-fit:contain;object-fit:contain;opacity:.95}.stat-grid[data-v-b8211978]{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat[data-v-b8211978]{display:flex;align-items:center;gap:14px;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);cursor:pointer;text-align:left;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.stat[data-v-b8211978]:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat[data-v-b8211978]:active{transform:translateY(0)}.stat-ic[data-v-b8211978]{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;flex-shrink:0}.stat-ic svg[data-v-b8211978]{width:24px;height:24px;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ic-blue[data-v-b8211978]{background:var(--primary-soft)}.ic-blue svg[data-v-b8211978]{stroke:var(--primary)}.ic-green[data-v-b8211978]{background:var(--success-soft)}.ic-green svg[data-v-b8211978]{stroke:var(--success)}.ic-slate[data-v-b8211978]{background:var(--surface-3)}.ic-slate svg[data-v-b8211978]{stroke:var(--text-muted)}.ic-red[data-v-b8211978]{background:var(--danger-soft)}.ic-red svg[data-v-b8211978]{stroke:var(--danger)}.stat-body[data-v-b8211978]{display:flex;flex-direction:column;gap:3px;min-width:0}.stat-label[data-v-b8211978]{font-size:13px;font-weight:600;color:var(--text-muted)}.stat-value[data-v-b8211978]{font-size:28px;font-weight:750;line-height:1.1;letter-spacing:-.02em}.chart-grid[data-v-b8211978]{display:grid;grid-template-columns:1fr 1.3fr;gap:16px;align-items:stretch}.card-head[data-v-b8211978]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.card-title[data-v-b8211978]{font-size:16px;font-weight:700}.chart-card[data-v-b8211978]{display:flex;flex-direction:column}.chart-wrap[data-v-b8211978]{position:relative;flex:1;min-height:300px;display:flex;align-items:center;justify-content:center;padding:12px 4px 4px}.chart-wrap canvas[data-v-b8211978]{max-width:300px!important;max-height:300px!important}@media (max-width:1100px){.stat-grid[data-v-b8211978]{grid-template-columns:repeat(2,1fr)}.chart-grid[data-v-b8211978]{grid-template-columns:1fr}}@media (max-width:560px){.stat-grid[data-v-b8211978]{grid-template-columns:1fr}}.taglist-container[data-v-5b57edc4]{position:relative;padding:26px 30px;min-height:calc(100vh - var(--topbar-h));transition:padding-right .3s var(--ease)}.taglist-container.with-side-panel[data-v-5b57edc4]{padding-right:430px}.taglist-container>h2[data-v-5b57edc4]{font-size:22px;font-weight:750;margin-bottom:18px}.filter-section[data-v-5b57edc4]{margin:0 0 20px;padding:16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center}.filter-section .filter-section[data-v-5b57edc4]{margin:0;padding:0;background:none;border:none;box-shadow:none;width:auto;gap:10px}.search-group[data-v-5b57edc4]{width:100%;margin:0 0 4px}.search-info[data-v-5b57edc4]{color:var(--text-muted);font-size:12px;margin-top:5px}.filter-group[data-v-5b57edc4]{display:flex;align-items:center;gap:9px}.filter-group>label[data-v-5b57edc4],.filter-section>label[data-v-5b57edc4]{font-weight:600;color:var(--text-muted);font-size:13px;white-space:nowrap}.filter-date[data-v-5b57edc4],.filter-select[data-v-5b57edc4],.items-per-page[data-v-5b57edc4],.search-input[data-v-5b57edc4]{height:38px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);font-size:14px;color:var(--text);font-family:inherit;transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.search-input[data-v-5b57edc4]{width:100%}.filter-select[data-v-5b57edc4]{min-width:150px;cursor:pointer}.filter-date[data-v-5b57edc4]{min-width:140px;cursor:pointer}.filter-date[data-v-5b57edc4]:focus,.filter-select[data-v-5b57edc4]:focus,.items-per-page[data-v-5b57edc4]:focus,.search-input[data-v-5b57edc4]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}.active-buttons[data-v-5b57edc4]{display:flex;gap:14px}.checkbox-label[data-v-5b57edc4]{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;color:var(--text)}.checkbox-label input[type=checkbox][data-v-5b57edc4]{cursor:pointer;accent-color:var(--primary);width:15px;height:15px}.date-filter[data-v-5b57edc4],.date-inputs[data-v-5b57edc4]{display:flex;align-items:center;gap:10px}.date-separator[data-v-5b57edc4]{color:var(--text-subtle);font-weight:600}.filter-actions[data-v-5b57edc4]{display:flex;gap:10px;align-items:center}.apply-filters[data-v-5b57edc4],.clear-filters[data-v-5b57edc4]{height:38px;padding:0 16px;font-size:13px;font-weight:600;border-radius:var(--r-sm);cursor:pointer;border:1px solid transparent;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.apply-filters[data-v-5b57edc4]{background:var(--primary);color:#fff}.apply-filters[data-v-5b57edc4]:hover{background:var(--primary-hover)}.clear-filters[data-v-5b57edc4]{background:var(--surface);color:var(--text-muted);border-color:var(--border-strong)}.clear-filters[data-v-5b57edc4]:hover{background:var(--danger-soft);color:var(--danger);border-color:transparent}table[data-v-5b57edc4]{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow)}thead th[data-v-5b57edc4]{background:var(--surface-2);padding:12px 14px;text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);cursor:pointer;border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}thead th[data-v-5b57edc4]:hover{background:var(--surface-3);color:var(--text)}thead th .arrow[data-v-5b57edc4]{display:inline-block;margin-left:4px}th .arrow-default[data-v-5b57edc4]:after{content:"⇅";opacity:.4}th .arrow-up[data-v-5b57edc4]:after{content:"↑";color:var(--primary)}th .arrow-down[data-v-5b57edc4]:after{content:"↓";color:var(--primary)}tbody td[data-v-5b57edc4]{padding:12px 14px;border-bottom:1px solid var(--border);font-size:13.5px;color:var(--text);vertical-align:middle}tbody tr:last-child td[data-v-5b57edc4]{border-bottom:none}tbody tr:hover td[data-v-5b57edc4]{background:var(--surface-2)}.rssi-good[data-v-5b57edc4]{color:var(--success)}.rssi-mid[data-v-5b57edc4]{color:var(--warning)}.rssi-low[data-v-5b57edc4],.thermostat[data-v-5b57edc4]{color:var(--danger)}.battery_good[data-v-5b57edc4]{color:var(--success);font-weight:700}.battery_mid[data-v-5b57edc4]{color:var(--warning);font-weight:700}.battery_none[data-v-5b57edc4]{color:var(--info);font-weight:700}.detail-btn[data-v-5b57edc4]{padding:6px 12px;background:var(--surface);color:var(--primary);border:1px solid var(--border-strong);border-radius:var(--r-sm);cursor:pointer;font-size:13px;font-weight:600;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.detail-btn[data-v-5b57edc4]:hover{background:var(--primary-soft);border-color:var(--primary)}.pagination[data-v-5b57edc4]{display:flex;justify-content:center;align-items:center;margin-top:20px;gap:12px}.page-numbers[data-v-5b57edc4]{display:flex;align-items:center;gap:6px}.page-number-button[data-v-5b57edc4]{min-width:36px;height:36px;padding:0 10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;border-radius:var(--r-sm);font-size:13px;font-weight:600;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.page-number-button.active[data-v-5b57edc4]{background:var(--primary);color:#fff;border-color:var(--primary)}.page-number-button[data-v-5b57edc4]:hover:not(.active){background:var(--surface-3)}.items-per-page[data-v-5b57edc4]{margin-left:8px;cursor:pointer}.side-panel[data-v-5b57edc4]{position:fixed;top:0;right:-420px;width:420px;height:100vh;background:var(--surface);box-shadow:var(--shadow-lg);transition:right .3s var(--ease);z-index:1000;overflow-y:auto;border-left:1px solid var(--border)}.side-panel.is-open[data-v-5b57edc4]{right:0}.side-panel-content[data-v-5b57edc4]{padding:22px;height:100%;overflow-y:auto}.side-panel-header[data-v-5b57edc4]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--border)}.side-panel-header h3[data-v-5b57edc4]{font-size:17px;font-weight:700}.close-btn[data-v-5b57edc4]{background:none;border:none;font-size:24px;line-height:1;cursor:pointer;color:var(--text-subtle);width:32px;height:32px;border-radius:var(--r-sm)}.close-btn[data-v-5b57edc4]:hover{color:var(--text);background:var(--surface-3)}.detail-content[data-v-5b57edc4]{display:flex;flex-direction:column;gap:12px}.detail-item[data-v-5b57edc4]{padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-sm)}.detail-label[data-v-5b57edc4]{display:block;font-weight:600;color:var(--text-muted);margin-bottom:4px;font-size:12px;text-transform:uppercase;letter-spacing:.03em}.detail-value[data-v-5b57edc4]{display:block;color:var(--text);font-size:14px;font-weight:550}@media (max-width:1024px){.side-panel[data-v-5b57edc4]{width:340px}.taglist-container.with-side-panel[data-v-5b57edc4]{padding-right:340px}}@media (max-width:768px){.taglist-container[data-v-5b57edc4]{padding:18px}.taglist-container.with-side-panel[data-v-5b57edc4]{padding-right:18px}.side-panel[data-v-5b57edc4]{width:100%}.date-filter[data-v-5b57edc4]{flex-direction:column;align-items:flex-start}.date-inputs[data-v-5b57edc4]{width:100%}}.modal-overlay[data-v-479bda10]{position:fixed;inset:0;background:rgba(16,24,40,.55);display:flex;justify-content:center;align-items:center;z-index:1100;padding:20px}.modal-content[data-v-479bda10]{background:var(--surface);padding:26px;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);width:100%;max-width:560px}.modal-content>h2[data-v-479bda10]{font-size:18px;font-weight:700;margin-bottom:8px}.settings-section[data-v-479bda10]{margin-top:18px;padding:18px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.form-group[data-v-479bda10]{margin-bottom:18px}.form-group[data-v-479bda10]:last-child{margin-bottom:0}.form-group label[data-v-479bda10]{display:block;margin-bottom:7px;font-weight:600;color:var(--text-muted);font-size:13px}.input-field[data-v-479bda10]{width:100%;height:42px;padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:14px;font-family:inherit;color:var(--text)}.input-field[data-v-479bda10]:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 4px var(--primary-ring)}.slider[data-v-479bda10]{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface-3);border-radius:var(--r-pill);outline:none;margin:8px 0;opacity:.8;cursor:not-allowed}.slider[data-v-479bda10]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;background:var(--primary);border-radius:50%;cursor:pointer}.slider[data-v-479bda10]::-moz-range-thumb{width:18px;height:18px;background:var(--primary);border:none;border-radius:50%;cursor:pointer}.rssi-value[data-v-479bda10]{text-align:center;margin:10px 0;font-weight:700;color:var(--text)}.rssi-range[data-v-479bda10]{display:flex;justify-content:space-between;margin:5px 0;color:var(--text-subtle);font-size:12px}.rssi-description[data-v-479bda10]{font-size:12.5px;color:var(--text-muted);margin-top:8px;line-height:1.5}.button-group[data-v-479bda10]{display:flex;gap:12px;margin-top:22px}.save-button[data-v-479bda10]{flex:1;height:44px;background:var(--primary);color:#fff;border:none;border-radius:var(--r-sm);cursor:pointer;font-size:14px;font-weight:600;transition:background var(--dur) var(--ease)}.save-button[data-v-479bda10]:hover:not(:disabled){background:var(--primary-hover)}.save-button[data-v-479bda10]:disabled{background:var(--border-strong);cursor:not-allowed}.cancel-button[data-v-479bda10]{flex:1;height:44px;background:var(--surface);color:var(--text-muted);border:1px solid var(--border-strong);border-radius:var(--r-sm);cursor:pointer;font-size:14px;font-weight:600;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.cancel-button[data-v-479bda10]:hover{background:var(--surface-3);color:var(--text)}.gatewaylist-container[data-v-43a54d02]{padding:8px 30px 26px}.controls[data-v-43a54d02]{display:flex;align-items:center;padding:20px 30px 4px}.update-interval-container[data-v-43a54d02]{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted);font-weight:600}#updateInterval[data-v-43a54d02]{width:90px;height:36px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:14px;font-family:inherit}#updateInterval[data-v-43a54d02]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}table[data-v-43a54d02]{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow)}thead th[data-v-43a54d02]{background:var(--surface-2);padding:12px 14px;text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);cursor:pointer;border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}thead th[data-v-43a54d02]:hover{background:var(--surface-3);color:var(--text)}thead th .arrow[data-v-43a54d02]{display:inline-block;margin-left:4px}th .arrow-default[data-v-43a54d02]:after{content:"⇅";opacity:.4}th .arrow-up[data-v-43a54d02]:after{content:"↑";color:var(--primary)}th .arrow-down[data-v-43a54d02]:after{content:"↓";color:var(--primary)}tbody td[data-v-43a54d02]{padding:12px 14px;border-bottom:1px solid var(--border);font-size:13.5px;color:var(--text);vertical-align:middle}tbody tr:last-child td[data-v-43a54d02]{border-bottom:none}tbody tr:hover td[data-v-43a54d02]{background:var(--surface-2)}.pointer[data-v-43a54d02]{cursor:pointer}.bold-text[data-v-43a54d02]{font-weight:700}.battery-value[data-v-43a54d02]{color:var(--text-muted)}.rssi-good[data-v-43a54d02]{color:var(--success)}.rssi-mid[data-v-43a54d02]{color:var(--warning)}.rssi-low[data-v-43a54d02],.thermostat[data-v-43a54d02]{color:var(--danger)}.battery_good[data-v-43a54d02]{color:var(--success)!important;font-weight:700}.battery_mid[data-v-43a54d02]{color:var(--warning)!important;font-weight:700}.battery_none[data-v-43a54d02]{color:var(--info)!important;font-weight:700}.connected[data-v-43a54d02]{color:var(--success);font-weight:700}.disconnected[data-v-43a54d02]{color:var(--danger);font-weight:700}.side-panel[data-v-43a54d02]{position:fixed;top:0;right:0;width:800px;max-width:92vw;height:100%;background:var(--surface);box-shadow:var(--shadow-lg);border-left:1px solid var(--border);padding:22px;overflow-y:auto;z-index:1000}.side-panel table[data-v-43a54d02]{box-shadow:none}:root{--bg:#f5f6f8;--surface:#fff;--surface-2:#f9fafb;--surface-3:#f2f4f7;--border:#e7e9ee;--border-strong:#d6dae1;--text:#16191d;--text-muted:#667085;--text-subtle:#98a2b3;--text-invert:#fff;--primary:#2f6bff;--primary-hover:#205ae6;--primary-active:#1a4fca;--primary-soft:#eaf1ff;--primary-ring:rgba(47,107,255,.28);--success:#16a34a;--success-soft:#e7f7ec;--warning:#e08a00;--warning-soft:#fdf3e2;--danger:#e5484d;--danger-soft:#fdecee;--info:#0ea5e9;--info-soft:#e6f6fd;--r-xs:6px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-pill:999px;--shadow-sm:0 1px 2px rgba(16,24,40,.05);--shadow:0 1px 3px rgba(16,24,40,.06),0 1px 2px rgba(16,24,40,.04);--shadow-md:0 4px 12px rgba(16,24,40,.08),0 2px 4px rgba(16,24,40,.04);--shadow-lg:0 12px 32px rgba(16,24,40,.12);--sidebar-w:250px;--topbar-h:62px;--ease:cubic-bezier(0.4,0,0.2,1);--dur:0.18s;--font:"Pretendard",system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans KR","Segoe UI",Roboto,sans-serif}*,:after,:before{box-sizing:border-box}#app,body,html{height:100%;margin:0}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em}h1,h2,h3,h4,h5{margin:0;font-weight:650;color:var(--text);letter-spacing:-.02em}a{color:inherit;text-decoration:none}button{font-family:inherit}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-pill);border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;font-size:14px;font-weight:600;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease);-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--primary-ring)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--primary);color:var(--text-invert)}.btn-primary:hover{background:var(--primary-hover)}.btn-primary:active{background:var(--primary-active)}.btn-ghost{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-ghost:hover{background:var(--surface-3)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(.95)}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-block{width:100%}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow)}.card-pad{padding:20px}.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px}.field>label{font-size:13px;font-weight:600;color:var(--text-muted)}.input{height:44px;width:100%;padding:0 14px;font-size:14px;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.input::-moz-placeholder{color:var(--text-subtle)}.input::placeholder{color:var(--text-subtle)}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;font-size:12px;font-weight:600;border-radius:var(--r-pill)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-muted{background:var(--surface-3);color:var(--text-muted)}.page{padding:26px 30px;max-width:1440px;margin:0 auto}.page-title{font-size:22px;font-weight:700}.page-subtitle{font-size:14px;margin-top:4px}.muted,.page-subtitle{color:var(--text-muted)}.row{display:flex;align-items:center}.gap-8{gap:8px}.gap-12{gap:12px}.spacer{flex:1}.asset-list-container[data-v-7e6fb982]{padding:26px 30px}header[data-v-7e6fb982]{margin-bottom:18px}header h2[data-v-7e6fb982]{font-size:22px;font-weight:750;margin-bottom:16px}.search-filter-container[data-v-7e6fb982]{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}.search-bar[data-v-7e6fb982]{display:flex;gap:8px}.search-bar input[type=text][data-v-7e6fb982]{height:40px;padding:0 14px;width:260px;max-width:60vw;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:14px;font-family:inherit}.search-bar input[type=text][data-v-7e6fb982]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}.search-bar button[data-v-7e6fb982]{height:40px;padding:0 18px;border:none;background:var(--primary);color:#fff;border-radius:var(--r-sm);cursor:pointer;font-size:14px;font-weight:600;transition:background var(--dur) var(--ease)}.search-bar button[data-v-7e6fb982]:hover{background:var(--primary-hover)}.filter-buttons[data-v-7e6fb982]{display:flex;gap:16px;flex-wrap:wrap}.filter-buttons label[data-v-7e6fb982]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);cursor:pointer}.filter-buttons input[type=radio][data-v-7e6fb982]{accent-color:var(--primary);cursor:pointer}table[data-v-7e6fb982]{width:100%;border-collapse:separate;border-spacing:0;margin-top:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow)}thead th[data-v-7e6fb982]{background:var(--surface-2);padding:12px 14px;text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);cursor:pointer;border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}thead th[data-v-7e6fb982]:hover{background:var(--surface-3);color:var(--text)}tbody td[data-v-7e6fb982]{padding:12px 14px;border-bottom:1px solid var(--border);font-size:13.5px;color:var(--text);vertical-align:middle}tbody tr:last-child td[data-v-7e6fb982]{border-bottom:none}tbody tr:hover td[data-v-7e6fb982]{background:var(--surface-2)}th .arrow-default[data-v-7e6fb982]:after{content:"⇅";opacity:.4;margin-left:4px}th .arrow-up[data-v-7e6fb982]:after{content:"↑";color:var(--primary);margin-left:4px}th .arrow-down[data-v-7e6fb982]:after{content:"↓";color:var(--primary);margin-left:4px}table img[data-v-7e6fb982]{width:40px;height:60px;-o-object-fit:contain;object-fit:contain;border-radius:var(--r-xs);background:var(--surface-2)}.battery_good[data-v-7e6fb982]{color:var(--success);font-weight:700}.battery_mid[data-v-7e6fb982]{color:var(--warning);font-weight:700}.battery_none[data-v-7e6fb982]{color:var(--info);font-weight:700}.rssi-good[data-v-7e6fb982]{color:var(--success)}.rssi-mid[data-v-7e6fb982]{color:var(--warning)}.rssi-low[data-v-7e6fb982],.thermostat[data-v-7e6fb982]{color:var(--danger)}.battery-value[data-v-7e6fb982]{color:var(--text-muted)}.side-page[data-v-1a3d4dc2]{position:fixed;top:0;right:0;width:420px;max-width:92vw;height:100%;background:var(--surface);box-shadow:var(--shadow-lg);border-left:1px solid var(--border);padding:24px;z-index:1000;overflow-y:auto}h2[data-v-1a3d4dc2]{font-size:18px;font-weight:700;margin-bottom:22px}.form-group[data-v-1a3d4dc2]{margin-bottom:16px}label[data-v-1a3d4dc2]{font-weight:600;color:var(--text-muted);font-size:13px;display:block;margin-bottom:7px}input[data-v-1a3d4dc2]{width:100%;height:42px;padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:14px;font-family:inherit;color:var(--text)}input[data-v-1a3d4dc2]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}.button-group[data-v-1a3d4dc2]{margin-top:24px;display:flex;gap:12px}button[data-v-1a3d4dc2]{flex:1;height:42px;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;font-size:14px;font-weight:600;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.button-group button[data-v-1a3d4dc2]:first-child{background:var(--primary);color:#fff}.button-group button[data-v-1a3d4dc2]:first-child:hover{background:var(--primary-hover)}.button-group button[data-v-1a3d4dc2]:last-child{background:var(--surface);color:var(--text-muted);border-color:var(--border-strong)}.button-group button[data-v-1a3d4dc2]:last-child:hover{background:var(--surface-3);color:var(--text)}.icon-select-container[data-v-1a3d4dc2]{display:flex;align-items:center;gap:14px}.icon-preview[data-v-1a3d4dc2]{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-2);flex-shrink:0}.icon-preview .material-symbols-outlined[data-v-1a3d4dc2]{font-size:24px;color:var(--text)}select[data-v-1a3d4dc2]{flex:1;height:42px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);font-size:14px;font-family:inherit;cursor:pointer}select[data-v-1a3d4dc2]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}.asset-page-container[data-v-33a18bdf]{padding:26px 30px}.asset-page-container>h1[data-v-33a18bdf]{font-size:22px;font-weight:750;margin-bottom:16px}.filter-buttons[data-v-33a18bdf]{display:flex;gap:16px;margin-bottom:16px;flex-wrap:wrap}.filter-buttons label[data-v-33a18bdf]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted);cursor:pointer}.filter-buttons input[type=radio][data-v-33a18bdf]{accent-color:var(--primary);cursor:pointer}table[data-v-33a18bdf]{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow)}th[data-v-33a18bdf]{background:var(--surface-2);padding:12px 14px;text-align:left;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);cursor:pointer;border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}th[data-v-33a18bdf]:hover{background:var(--surface-3);color:var(--text)}td[data-v-33a18bdf]{padding:12px 14px;border-bottom:1px solid var(--border);font-size:13.5px;color:var(--text);vertical-align:middle}tbody tr:last-child td[data-v-33a18bdf]{border-bottom:none}tbody tr:hover td[data-v-33a18bdf]{background:var(--surface-2)}th .arrow-default[data-v-33a18bdf]:after{content:"⇅";opacity:.4;margin-left:4px}th .arrow-up[data-v-33a18bdf]:after{content:"↑";color:var(--primary);margin-left:4px}th .arrow-down[data-v-33a18bdf]:after{content:"↓";color:var(--primary);margin-left:4px}table img[data-v-33a18bdf]{width:40px;height:60px;-o-object-fit:contain;object-fit:contain;border-radius:var(--r-xs);background:var(--surface-2)}.asset-icon[data-v-33a18bdf]{font-size:30px;color:var(--text-muted);display:flex;align-items:center;justify-content:center;width:40px;height:60px}tbody td button[data-v-33a18bdf]{padding:6px 14px;background:var(--surface);color:var(--primary);border:1px solid var(--border-strong);border-radius:var(--r-sm);cursor:pointer;font-size:12.5px;font-weight:700;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}tbody td button[data-v-33a18bdf]:hover{background:var(--primary-soft);border-color:var(--primary)}.battery_good[data-v-33a18bdf]{color:var(--success);font-weight:700}.battery_mid[data-v-33a18bdf]{color:var(--warning);font-weight:700}.battery_none[data-v-33a18bdf]{color:var(--info);font-weight:700}.rssi-good[data-v-33a18bdf]{color:var(--success)}.rssi-mid[data-v-33a18bdf]{color:var(--warning)}.rssi-low[data-v-33a18bdf],.thermostat[data-v-33a18bdf]{color:var(--danger)}.battery-value[data-v-33a18bdf]{color:var(--text-muted)}.pagination[data-v-33a18bdf]{display:flex;justify-content:center;align-items:center;margin-top:20px;gap:12px}.page-numbers[data-v-33a18bdf]{display:flex;align-items:center;gap:6px}.page-number-button[data-v-33a18bdf]{min-width:36px;height:36px;padding:0 10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);cursor:pointer;border-radius:var(--r-sm);font-size:13px;font-weight:600}.page-number-button.active[data-v-33a18bdf]{background:var(--primary);color:#fff;border-color:var(--primary)}.page-number-button[data-v-33a18bdf]:hover:not(.active){background:var(--surface-3)}.items-per-page[data-v-33a18bdf]{height:36px;padding:0 10px;border:1px solid var(--border-strong);border-radius:var(--r-sm);margin-left:8px;cursor:pointer;font-family:inherit}.sidebar[data-v-19079402]{position:fixed;top:0;right:0;width:340px;max-width:92vw;height:100%;background:var(--surface);box-shadow:var(--shadow-lg);border-left:1px solid var(--border);padding:22px;z-index:1000;display:flex;flex-direction:column}h3[data-v-19079402]{font-size:17px;font-weight:700;margin-bottom:18px}.asset-image[data-v-19079402]{width:100%;height:auto;max-height:220px;-o-object-fit:contain;object-fit:contain;margin-bottom:20px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.details[data-v-19079402]{flex-grow:1;overflow-y:auto}.details p[data-v-19079402]{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border);font-size:13.5px;color:var(--text);margin:0}.details p[data-v-19079402]:last-child{border-bottom:none}strong[data-v-19079402]{font-weight:600;color:var(--text-muted)}button[data-v-19079402]{align-self:stretch;height:42px;padding:0 18px;background:var(--primary);color:#fff;border:none;border-radius:var(--r-sm);cursor:pointer;font-size:14px;font-weight:600;margin-top:16px;transition:background var(--dur) var(--ease)}button[data-v-19079402]:hover{background:var(--primary-hover)}.rssi-good[data-v-19079402]{color:var(--success)}.rssi-mid[data-v-19079402]{color:var(--warning)}.rssi-low[data-v-19079402]{color:var(--danger)}.battery_good[data-v-19079402]{color:var(--success);font-weight:700}.battery_mid[data-v-19079402]{color:var(--warning);font-weight:700}.battery_none[data-v-19079402]{color:var(--info);font-weight:700}.temperature-value[data-v-19079402]{color:var(--danger);font-weight:600}.register-tag-container[data-v-7fc1b07c]{padding:26px 30px}.register-tag-container>h1[data-v-7fc1b07c]{font-size:22px;font-weight:750;margin-bottom:20px}form[data-v-7fc1b07c]{max-width:560px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);padding:24px}.form-group[data-v-7fc1b07c]{margin-bottom:16px}label[data-v-7fc1b07c]{font-weight:600;color:var(--text-muted);font-size:13px;display:block;margin-bottom:7px}input[data-v-7fc1b07c]{width:100%;height:42px;padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:14px;font-family:inherit;color:var(--text)}input[data-v-7fc1b07c]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}button[data-v-7fc1b07c]{margin-top:6px;height:42px;padding:0 20px;background:var(--primary);color:#fff;border:none;border-radius:var(--r-sm);cursor:pointer;font-size:14px;font-weight:600;transition:background var(--dur) var(--ease)}button[data-v-7fc1b07c]:hover{background:var(--primary-hover)}.popup[data-v-7fc1b07c]{position:fixed;inset:0;background:rgba(16,24,40,.55);display:flex;justify-content:center;align-items:center;z-index:1100}.popup-content[data-v-7fc1b07c]{background:var(--surface);padding:28px 32px;border-radius:var(--r-lg);text-align:center;box-shadow:var(--shadow-lg);min-width:280px}.popup-content h3[data-v-7fc1b07c]{font-size:18px;font-weight:700;margin-bottom:18px}.popup-content button[data-v-7fc1b07c]{width:100%}.register-gateway-container[data-v-2be2cc3d]{padding:26px 30px}.register-gateway-container>h1[data-v-2be2cc3d]{font-size:22px;font-weight:750;margin-bottom:20px}form[data-v-2be2cc3d]{max-width:560px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);padding:24px}.form-group[data-v-2be2cc3d]{margin-bottom:16px}label[data-v-2be2cc3d]{font-weight:600;color:var(--text-muted);font-size:13px;display:block;margin-bottom:7px}input[data-v-2be2cc3d]{width:100%;height:42px;padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:14px;font-family:inherit;color:var(--text)}input[data-v-2be2cc3d]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}button[data-v-2be2cc3d]{margin-top:6px;height:42px;padding:0 20px;background:var(--primary);color:#fff;border:none;border-radius:var(--r-sm);cursor:pointer;font-size:14px;font-weight:600;transition:background var(--dur) var(--ease)}button[data-v-2be2cc3d]:hover{background:var(--primary-hover)}.form-group input[data-v-2be2cc3d]{text-transform:uppercase}.gateway-charts-container[data-v-23ce2a64]{padding:26px 30px}.gateway-charts-container>h3[data-v-23ce2a64]{font-size:20px!important;font-weight:750;margin-bottom:20px;letter-spacing:-.02em}.charts-grid[data-v-23ce2a64]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;max-width:100%}.chart-item[data-v-23ce2a64]{text-align:center;padding:22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);height:360px;display:flex;flex-direction:column;align-items:center;transition:box-shadow var(--dur) var(--ease)}.chart-item[data-v-23ce2a64]:hover{box-shadow:var(--shadow-md)}h4[data-v-23ce2a64]{margin-bottom:18px;font-size:15px;font-weight:650;color:var(--text)}.notification-center[data-v-b02e16d8]{width:100%;max-width:820px;margin:0 auto;padding:26px 30px}.notification-center>h2[data-v-b02e16d8]{font-size:22px;font-weight:750;margin-bottom:18px}.notification-card[data-v-b02e16d8]{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--r-md);padding:16px 18px;margin-bottom:12px;box-shadow:var(--shadow);transition:box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.notification-card[data-v-b02e16d8]:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.notification-content[data-v-b02e16d8]{font-size:14.5px;margin:0;color:var(--text-muted);line-height:1.6}.devicename[data-v-b02e16d8]{color:var(--text);font-weight:700}.tag-mac[data-v-b02e16d8]{color:var(--text-subtle);font-size:13px}.send-time[data-v-b02e16d8]{color:var(--text-subtle);font-weight:500}.status-high-temp[data-v-b02e16d8],.status-low-battery[data-v-b02e16d8],.status-low-temp[data-v-b02e16d8],.status-moved[data-v-b02e16d8],.status-normal[data-v-b02e16d8],.status-sleep[data-v-b02e16d8],.status-wake-up[data-v-b02e16d8]{display:inline-block;padding:2px 9px;border-radius:var(--r-pill);font-size:12.5px;font-weight:700}.status-high-temp[data-v-b02e16d8]{color:var(--danger);background:var(--danger-soft)}.status-low-temp[data-v-b02e16d8]{color:var(--info);background:var(--info-soft)}.status-low-battery[data-v-b02e16d8]{color:var(--warning);background:var(--warning-soft)}.status-moved[data-v-b02e16d8]{color:#0d9488;background:#e2f7f4}.status-wake-up[data-v-b02e16d8]{color:var(--success);background:var(--success-soft)}.status-normal[data-v-b02e16d8],.status-sleep[data-v-b02e16d8]{color:var(--text-muted);background:var(--surface-3)}#pieChart[data-v-33bb2d3f]{max-width:400px;max-height:400px;margin:0 auto}canvas[data-v-33bb2d3f]{max-height:100%}#barChart[data-v-54d7556f]{max-width:100%;max-height:100%}.warning-map-container[data-v-78145868]{display:flex;justify-content:center;align-items:flex-start;padding:30px;min-height:calc(100vh - var(--topbar-h))}.warning-map[data-v-78145868]{position:relative;width:auto;height:auto}.map-background[data-v-78145868]{width:800px;max-width:100%;height:auto;border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow)}.tag-marker[data-v-78145868]{position:absolute;background:var(--danger);color:#fff;padding:4px 10px;border-radius:var(--r-pill);cursor:pointer;font-size:12px;font-weight:600;box-shadow:0 2px 6px rgba(229,72,77,.4);white-space:nowrap;transition:transform var(--dur) var(--ease)}.tag-marker[data-v-78145868]:hover{transform:scale(1.06)}.modal[data-v-78145868]{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface);padding:8px;border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);z-index:1100;min-width:320px}.modal-content[data-v-78145868]{position:relative;padding:20px 22px}.modal-content h3[data-v-78145868]{font-size:17px;font-weight:700;margin-bottom:12px}.modal-content p[data-v-78145868]{font-size:13.5px;color:var(--text);margin:7px 0}.modal-content strong[data-v-78145868]{color:var(--text-muted);font-weight:600}.close[data-v-78145868]{position:absolute;top:12px;right:14px;cursor:pointer;font-size:22px;line-height:1;color:var(--text-subtle)}.close[data-v-78145868]:hover{color:var(--text)}.logistic-map[data-v-9f8e5cc2]{display:flex;justify-content:center;align-items:center;width:calc(100vw - 350px);height:100vh;position:relative;pointer-events:none}.map-background[data-v-9f8e5cc2]{width:100%;max-width:1500px;height:auto;margin-right:350px}.line-container[data-v-9f8e5cc2]{position:absolute}.line[data-v-9f8e5cc2]{cursor:pointer;height:4px;transition:all .5s;z-index:1;pointer-events:auto}.dashed[data-v-9f8e5cc2]{border-top:4px dashed red}.solid[data-v-9f8e5cc2]{border-top:4px solid #0ecbe4}.side-page[data-v-f12294dc]{position:fixed;top:0;right:0;width:400px;height:100%;background-color:#fff;box-shadow:-2px 0 5px rgba(0,0,0,.5);padding:20px;z-index:1000;font-family:Arial,sans-serif}h2[data-v-f12294dc]{margin-bottom:20px}.form-group[data-v-f12294dc]{margin-bottom:15px;margin-right:20px}label[data-v-f12294dc]{font-weight:700;display:block;margin-bottom:5px}input[data-v-f12294dc]{width:100%;padding:10px;border:1px solid #ccc;border-radius:4px}.button-group[data-v-f12294dc]{margin-top:20px;display:flex;justify-content:space-between}button[data-v-f12294dc]{width:48%;padding:10px;border:none;border-radius:4px;background-color:#4caf50;color:#fff;cursor:pointer}button[data-v-f12294dc]:hover{background-color:#45a049}.asset2-page-container[data-v-03ca65ba]{padding:20px}.filter-buttons[data-v-03ca65ba]{margin-bottom:10px}table[data-v-03ca65ba]{width:100%;border-collapse:collapse;border:1px solid #ddd}td[data-v-03ca65ba],th[data-v-03ca65ba]{padding:10px;border:1px solid #ddd}th[data-v-03ca65ba]{background-color:#f4f4f4;text-align:left;cursor:pointer;position:relative}th .arrow-default[data-v-03ca65ba]:after{content:"▼"}th .arrow-up[data-v-03ca65ba]:after{content:"▲"}th .arrow-down[data-v-03ca65ba]:after{content:"▼"}table img[data-v-03ca65ba]{width:40px;height:60px;-o-object-fit:contain;object-fit:contain}.battery_good[data-v-03ca65ba]{color:green;font-weight:700}.battery_mid[data-v-03ca65ba]{color:orange;font-weight:700}.battery_none[data-v-03ca65ba]{color:skyblue;font-weight:700}.rssi-good[data-v-03ca65ba]{color:green}.rssi-mid[data-v-03ca65ba]{color:orange}.rssi-low[data-v-03ca65ba],.thermostat[data-v-03ca65ba]{color:red}.battery-value[data-v-03ca65ba]{color:#000}.ws-server-list[data-v-7573f565]{padding:26px 30px;max-width:820px;margin:0 auto}.ws-server-list>h2[data-v-7573f565]{font-size:22px;font-weight:750;margin-bottom:22px}.main-server[data-v-7573f565],.server-list[data-v-7573f565]{margin-bottom:28px}.main-server h3[data-v-7573f565],.server-list h3[data-v-7573f565]{font-size:14px;font-weight:700;color:var(--text-muted);margin-bottom:12px}.server-card[data-v-7573f565]{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;margin-bottom:10px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.server-card.main[data-v-7573f565]{background:var(--primary-soft);border:1px solid var(--primary)}.url-info[data-v-7573f565]{display:flex;flex-direction:column;gap:4px;min-width:0}.url[data-v-7573f565]{font-weight:650;color:var(--text);word-break:break-all}.date[data-v-7573f565]{font-size:12px;color:var(--text-subtle)}.actions[data-v-7573f565]{display:flex;gap:8px;flex-shrink:0}.add-server[data-v-7573f565]{display:flex;gap:10px;margin-top:20px}input[data-v-7573f565]{flex:1;height:40px;padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:14px;font-family:inherit}input[data-v-7573f565]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}button[data-v-7573f565]{height:38px;padding:0 14px;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;font-size:13px;font-weight:600;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);white-space:nowrap}button.primary[data-v-7573f565]{background:var(--primary);color:#fff}button.primary[data-v-7573f565]:hover{background:var(--primary-hover)}button.danger[data-v-7573f565]{background:var(--surface);color:var(--danger);border-color:var(--border-strong)}button.danger[data-v-7573f565]:hover{background:var(--danger-soft);border-color:transparent}.add-server button[data-v-7573f565]{height:40px}.otaserver-list[data-v-bcdd0954]{padding:26px 30px;max-width:820px;margin:0 auto}.otaserver-list>h2[data-v-bcdd0954]{font-size:22px;font-weight:750;margin-bottom:22px}.main-server[data-v-bcdd0954],.server-list[data-v-bcdd0954]{margin-bottom:28px}.main-server h3[data-v-bcdd0954],.server-list h3[data-v-bcdd0954]{font-size:14px;font-weight:700;color:var(--text-muted);margin-bottom:12px}.server-card[data-v-bcdd0954]{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;margin-bottom:10px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow)}.server-card.main[data-v-bcdd0954]{background:var(--primary-soft);border:1px solid var(--primary)}.url-info[data-v-bcdd0954]{display:flex;flex-direction:column;gap:4px;min-width:0}.url[data-v-bcdd0954]{font-weight:650;color:var(--text);word-break:break-all}.date[data-v-bcdd0954]{font-size:12px;color:var(--text-subtle)}.actions[data-v-bcdd0954]{display:flex;gap:8px;flex-shrink:0}.add-server[data-v-bcdd0954]{display:flex;gap:10px;margin-top:20px}input[data-v-bcdd0954]{flex:1;height:40px;padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:14px;font-family:inherit}input[data-v-bcdd0954]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}button[data-v-bcdd0954]{height:38px;padding:0 14px;border:1px solid transparent;border-radius:var(--r-sm);cursor:pointer;font-size:13px;font-weight:600;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);white-space:nowrap}button.primary[data-v-bcdd0954]{background:var(--primary);color:#fff}button.primary[data-v-bcdd0954]:hover{background:var(--primary-hover)}button.danger[data-v-bcdd0954]{background:var(--surface);color:var(--danger);border-color:var(--border-strong)}button.danger[data-v-bcdd0954]:hover{background:var(--danger-soft);border-color:transparent}.add-server button[data-v-bcdd0954]{height:40px}.gateway-control[data-v-387880ca]{padding:8px 30px 26px}.controls[data-v-387880ca]{display:flex;align-items:center;padding:18px 0 0}.update-interval-container[data-v-387880ca]{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-muted);font-weight:600}#interval[data-v-387880ca]{width:90px;height:36px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:14px;font-family:inherit}#interval[data-v-387880ca]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}.header-container[data-v-387880ca]{display:flex;justify-content:space-between;align-items:center;margin:16px 0 20px}.header-container h2[data-v-387880ca]{font-size:22px;font-weight:750}.refresh-btn[data-v-387880ca]{height:40px;padding:0 16px;background:var(--primary);color:#fff;border:none;border-radius:var(--r-sm);cursor:pointer;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;transition:background var(--dur) var(--ease)}.refresh-btn[data-v-387880ca]:hover{background:var(--primary-hover)}.refresh-icon[data-v-387880ca]{font-size:16px}.table-container[data-v-387880ca]{overflow-x:auto;margin-top:12px;border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow)}table[data-v-387880ca]{width:100%;border-collapse:separate;border-spacing:0;background:var(--surface)}td[data-v-387880ca],th[data-v-387880ca]{padding:12px 14px;text-align:left;border-bottom:1px solid var(--border);font-size:13px}th[data-v-387880ca]{background:var(--surface-2);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);white-space:nowrap}tbody tr:last-child td[data-v-387880ca]{border-bottom:none}tbody tr:hover td[data-v-387880ca]{background:var(--surface-2)}.connected[data-v-387880ca]{color:var(--success);font-weight:700}.disconnected[data-v-387880ca]{color:var(--danger);font-weight:700}.edit-btn[data-v-387880ca]{padding:6px 12px;background:var(--surface);color:var(--primary);border:1px solid var(--border-strong);border-radius:var(--r-sm);cursor:pointer;font-size:12.5px;font-weight:700;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.edit-btn[data-v-387880ca]:hover{background:var(--primary-soft);border-color:var(--primary)}.modal-overlay[data-v-387880ca]{position:fixed;inset:0;background:rgba(16,24,40,.55);display:flex;justify-content:center;align-items:center;z-index:1100;padding:20px}.modal-content[data-v-387880ca]{background:var(--surface);border-radius:var(--r-lg);width:720px;max-width:100%;box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto}.modal-header[data-v-387880ca]{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--border)}.modal-header h3[data-v-387880ca]{margin:0;color:var(--text);font-size:17px;font-weight:700}.close-button[data-v-387880ca]{font-size:22px;line-height:1;cursor:pointer;color:var(--text-subtle)}.close-button[data-v-387880ca]:hover{color:var(--text)}.modal-body[data-v-387880ca]{padding:22px}.form-group[data-v-387880ca]{margin-bottom:22px}.form-group label[data-v-387880ca]{display:block;margin-bottom:8px;color:var(--text-muted);font-weight:600;font-size:13px}.input-group[data-v-387880ca]{display:flex;gap:10px}.setting-input[data-v-387880ca],.setting-select[data-v-387880ca]{flex:1;height:40px;padding:0 12px;border:1px solid var(--border-strong);border-radius:var(--r-sm);font-size:14px;font-family:inherit;background:var(--surface)}.setting-input[data-v-387880ca]:focus,.setting-select[data-v-387880ca]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px var(--primary-ring)}.apply-btn[data-v-387880ca]{height:40px;padding:0 16px;background:var(--primary);color:#fff;border:none;border-radius:var(--r-sm);cursor:pointer;font-size:13px;font-weight:600;white-space:nowrap;transition:background var(--dur) var(--ease)}.apply-btn[data-v-387880ca]:hover:not(:disabled){background:var(--primary-hover)}.apply-btn[data-v-387880ca]:disabled{opacity:.55;cursor:not-allowed}.interval-range small[data-v-387880ca],small[data-v-387880ca]{font-size:12px;color:var(--text-muted);margin-left:4px}.modal-footer[data-v-387880ca]{padding:16px 22px;border-top:1px solid var(--border);text-align:right}.cancel-btn[data-v-387880ca]{height:40px;padding:0 20px;background:var(--surface);color:var(--text-muted);border:1px solid var(--border-strong);border-radius:var(--r-sm);cursor:pointer;font-size:14px;font-weight:600}.cancel-btn[data-v-387880ca]:hover{background:var(--surface-3);color:var(--text)}.rssi-container[data-v-387880ca]{display:flex;flex-direction:column;gap:10px}.circle-slider-container[data-v-387880ca]{display:flex;flex-direction:column;align-items:center;justify-content:center;height:320px;position:relative}.circle-visualization[data-v-387880ca]{border-radius:50%;transition:all .3s ease;display:flex;align-items:center;justify-content:center;position:relative;margin:20px auto}.current-value[data-v-387880ca]{font-size:18px;font-weight:700;color:var(--primary)}.circle-range[data-v-387880ca]{position:absolute;bottom:20px;width:80%;margin:0 auto;accent-color:var(--primary)}.rssi-labels[data-v-387880ca]{display:flex;justify-content:space-between;width:80%;margin:10px auto}.rssi-labels[data-v-387880ca],.rssi-max[data-v-387880ca],.rssi-min[data-v-387880ca]{color:var(--text-subtle);font-size:12px}.range-description[data-v-387880ca]{text-align:center;margin-top:10px;color:var(--text-muted);font-size:12.5px}.apply-btn.rssi-apply[data-v-387880ca]{align-self:flex-end}.upload-container[data-v-3639716d]{padding:26px 30px}.upload-section[data-v-3639716d]{margin-bottom:22px;padding:20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);display:flex;align-items:center;gap:14px;flex-wrap:wrap}.upload-section input[type=file][data-v-3639716d]{font-size:14px;color:var(--text-muted)}button[data-v-3639716d]{height:40px;padding:0 18px;background:var(--primary);color:#fff;border:none;border-radius:var(--r-sm);cursor:pointer;font-size:14px;font-weight:600;transition:background var(--dur) var(--ease)}button[data-v-3639716d]:hover:not(:disabled){background:var(--primary-hover)}button[data-v-3639716d]:disabled{opacity:.5;cursor:not-allowed}.success[data-v-3639716d]{color:var(--success);font-weight:600;font-size:13px}.error[data-v-3639716d]{color:var(--danger);font-weight:600;font-size:13px}.preview-section[data-v-3639716d]{margin-top:22px}.preview-section h3[data-v-3639716d]{font-size:16px;font-weight:700;margin-bottom:12px}.table-container[data-v-3639716d]{overflow-x:auto;border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow)}table[data-v-3639716d]{width:100%;border-collapse:separate;border-spacing:0;min-width:800px;background:var(--surface)}td[data-v-3639716d],th[data-v-3639716d]{border-bottom:1px solid var(--border);padding:11px 14px;text-align:left;font-size:13px}th[data-v-3639716d]{background:var(--surface-2);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);white-space:nowrap}tbody tr:last-child td[data-v-3639716d]{border-bottom:none}tbody tr:hover td[data-v-3639716d]{background:var(--surface-2)}.map-container[data-v-af678616]{position:relative;width:100%;height:70vh;margin-bottom:20px;overflow:visible}.background-image[data-v-af678616]{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.tag-marker[data-v-af678616]{position:absolute;transform:translate(-50%,-50%);padding:8px 12px;border-radius:4px;background-color:rgba(0,238,255,.8);color:#000;font-size:14px;font-weight:700;white-space:nowrap;z-index:1000;box-shadow:0 2px 4px rgba(0,0,0,.2);border:1px solid rgba(0,0,0,.1);transition:all .5s ease}.tag-moving[data-v-af678616]{background-color:rgba(255,165,0,.8);transform:translate(-50%,-50%) scale(1.1);box-shadow:0 4px 8px rgba(0,0,0,.3);z-index:1001}.tag-marker[data-v-af678616]:hover{background-color:rgba(0,200,255,.9);transform:translate(-50%,-50%) scale(1.1);z-index:1002}.debug-info[data-v-af678616]{position:absolute;top:10px;left:10px;background-color:hsla(0,0%,100%,.8);padding:5px;z-index:1001}.asset-map[data-v-af678616]{display:flex;flex-direction:column;align-items:center;height:90vh}.controls[data-v-af678616]{margin-bottom:30px}.groups[data-v-af678616]{display:flex;justify-content:center;width:100%;padding:20px;margin-top:20px;gap:20px}.group[data-v-af678616]{background-color:hsla(75,33%,95%,.692);border-radius:5px;padding:15px;box-shadow:0 2px 5px rgba(0,0,0,.2);flex:1;max-width:300px}.group[data-v-af678616]:first-child{order:1}.group[data-v-af678616]:nth-child(2){order:2}.group[data-v-af678616]:nth-child(3){order:3}.tag[data-v-af678616]{position:absolute;transition:top 2s ease,left 2s ease;background-color:#0ef;color:#fff;padding:5px;border-radius:5px;opacity:.75}.weak-signal[data-v-af678616]{color:gray!important}