.sidebar[data-v-df041bdc]{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border);height:100vh;display:flex;flex-direction:column;padding:20px 14px;position:fixed;top:0;left:0}.brand[data-v-df041bdc]{display:flex;flex-direction:column;margin-bottom:28px;padding:0 8px}.brand-mark[data-v-df041bdc]{font-family:var(--font-mono);font-size:15px;font-weight:500;color:var(--accent-signal);letter-spacing:.02em}.brand-sub[data-v-df041bdc]{font-size:11px;color:var(--text-secondary);margin-top:2px}nav[data-v-df041bdc]{display:flex;flex-direction:column;gap:2px;flex:1}.nav-item[data-v-df041bdc]{color:var(--text-secondary);padding:9px 12px;border-radius:var(--radius);font-size:13.5px;font-weight:500}.nav-item[data-v-df041bdc]:hover{background:var(--surface-raised);color:var(--text-primary)}.nav-item.router-link-active[data-v-df041bdc]{background:var(--surface-raised);color:var(--text-primary);box-shadow:inset 2px 0 0 var(--accent-info)}.nav-item-alert.router-link-active[data-v-df041bdc]{box-shadow:inset 2px 0 0 var(--accent-warning)}.nav-item-alert[data-v-df041bdc]:hover{color:var(--accent-warning)}.nav-divider[data-v-df041bdc]{height:1px;background:var(--border);margin:8px 0}.logout[data-v-df041bdc]{margin-top:auto}.layout[data-v-2f79f9d1]{display:flex}.content[data-v-2f79f9d1]{margin-left:var(--sidebar-width);padding:32px 40px;width:100%;min-height:100vh}@media (max-width: 768px){.content[data-v-2f79f9d1]{margin-left:0;padding:20px 16px}}.login-screen[data-v-2f465176]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:16px}.login-card[data-v-2f465176]{width:100%;max-width:360px;padding:36px 32px;display:flex;flex-direction:column;gap:14px}.brand-mark[data-v-2f465176]{font-family:var(--font-mono);color:var(--accent-signal);font-size:14px}h1[data-v-2f465176]{font-size:19px;margin-top:2px}.hint[data-v-2f465176]{color:var(--text-secondary);font-size:12.5px;margin:0 0 8px;line-height:1.4}label[data-v-2f465176]{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-secondary)}.error-msg[data-v-2f465176]{color:var(--accent-danger);font-size:13px;margin:0}button[data-v-2f465176]{margin-top:6px}@media (max-width: 480px){.login-card[data-v-2f465176]{padding:28px 20px}}.overlay[data-v-96692e06]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.dialog[data-v-96692e06]{width:100%;max-width:420px;padding:26px;display:flex;flex-direction:column;gap:14px;max-height:90vh;overflow-y:auto}.dialog h3[data-v-96692e06]{font-size:15px;margin-bottom:4px}label[data-v-96692e06]{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--text-secondary)}.field-help[data-v-96692e06]{font-size:11.5px;color:var(--text-secondary);opacity:.8}.error-msg[data-v-96692e06]{color:var(--accent-danger);font-size:13px;margin:0}.actions[data-v-96692e06]{display:flex;justify-content:flex-end;gap:8px;margin-top:6px;flex-wrap:wrap}.readonly-badge[data-v-96692e06]{font-size:10.5px;font-family:var(--font-mono);color:var(--text-secondary);background:#8b95a31a;border:1px solid var(--border);border-radius:3px;padding:1px 5px;margin-left:6px;vertical-align:middle}.readonly-value[data-v-96692e06]{display:inline-block;opacity:.65;cursor:default}@media (max-width: 480px){.actions[data-v-96692e06]{flex-direction:column-reverse}.actions .btn[data-v-96692e06]{width:100%;text-align:center}}.overlay[data-v-91208f1b]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.dialog[data-v-91208f1b]{width:100%;max-width:380px;padding:24px}.dialog h3[data-v-91208f1b]{font-size:15px;margin-bottom:8px}.msg[data-v-91208f1b]{color:var(--text-secondary);font-size:13.5px;line-height:1.5;margin:0 0 18px}.actions[data-v-91208f1b]{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}@media (max-width: 480px){.actions[data-v-91208f1b]{flex-direction:column-reverse}.actions .btn[data-v-91208f1b]{width:100%;text-align:center}}.page-header[data-v-df56bb8a]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;gap:12px;flex-wrap:wrap}.subtitle[data-v-df56bb8a]{color:var(--text-secondary);font-size:13px;margin-top:4px}.toolbar-container[data-v-df56bb8a]{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;margin:18px 0 14px;gap:12px}.filters-bar[data-v-df56bb8a]{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.filter-group[data-v-df56bb8a]{display:flex;align-items:center;gap:8px}.filter-label[data-v-df56bb8a]{font-size:12.5px;font-weight:500;color:var(--text-secondary);white-space:nowrap}.filter-select[data-v-df56bb8a]{padding:6px 10px;font-size:13px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);width:auto;min-width:140px;transition:border-color .15s ease}.filter-select[data-v-df56bb8a]:hover{border-color:var(--accent-info)}.filter-select[data-v-df56bb8a]:focus{outline:2px solid var(--accent-info);outline-offset:2px}.toolbar[data-v-df56bb8a]{display:flex;align-items:center;gap:16px}.toggle[data-v-df56bb8a]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);cursor:pointer}.toggle input[data-v-df56bb8a]{width:auto}.loading-hint[data-v-df56bb8a]{font-size:12.5px;color:var(--text-secondary)}.th-sortable[data-v-df56bb8a]{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.th-sortable[data-v-df56bb8a]:hover{color:var(--text-primary)}.th-active[data-v-df56bb8a]{color:var(--accent-info)!important}.sort-icon[data-v-df56bb8a]{display:inline-flex;flex-direction:column;margin-left:5px;line-height:1;font-size:9px;vertical-align:middle;gap:1px}.sort-on[data-v-df56bb8a]{color:var(--accent-info)}.sort-off[data-v-df56bb8a]{color:var(--border)}.row-actions[data-v-df56bb8a]{text-align:right;white-space:nowrap;display:flex;gap:6px;justify-content:flex-end;align-items:center}.btn.small[data-v-df56bb8a]{padding:5px 10px;font-size:12.5px}.empty[data-v-df56bb8a]{text-align:center;color:var(--text-secondary);padding:28px 0}@media (max-width: 768px){.page-header[data-v-df56bb8a]{flex-direction:column;align-items:stretch}.page-header .btn[data-v-df56bb8a]{width:100%;text-align:center}.toolbar-container[data-v-df56bb8a]{flex-direction:column;align-items:stretch}.filters-bar[data-v-df56bb8a]{flex-direction:column}.filter-group[data-v-df56bb8a]{flex-direction:column;align-items:flex-start}.filter-select[data-v-df56bb8a]{width:100%;min-width:unset}.toolbar[data-v-df56bb8a]{justify-content:space-between}.row-actions[data-v-df56bb8a]{flex-direction:column;align-items:flex-end;gap:4px}}.page-header[data-v-22131429]{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;gap:12px;flex-wrap:wrap}.subtitle[data-v-22131429]{color:var(--text-secondary);font-size:13px;margin-top:4px}.toolbar-container[data-v-22131429]{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;margin:18px 0 14px;gap:12px}.filters-bar[data-v-22131429]{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.filter-group[data-v-22131429]{display:flex;align-items:center;gap:8px}.filter-label[data-v-22131429]{font-size:12.5px;font-weight:500;color:var(--text-secondary);white-space:nowrap}.filter-select[data-v-22131429]{padding:6px 10px;font-size:13px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);width:auto;min-width:140px;transition:border-color .15s ease}.filter-select[data-v-22131429]:hover{border-color:var(--accent-info)}.toolbar[data-v-22131429]{display:flex;align-items:center;gap:16px}.toggle[data-v-22131429]{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary);cursor:pointer}.toggle input[data-v-22131429]{width:auto}.loading-hint[data-v-22131429]{font-size:12.5px;color:var(--text-secondary)}.type-badge[data-v-22131429]{font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:4px;white-space:nowrap}.type-badge.boiler_temperature[data-v-22131429]{background:#e5a53d26;color:var(--accent-warning);border:1px solid rgba(229,165,61,.3)}.type-badge.level[data-v-22131429]{background:#4da3e526;color:var(--accent-info);border:1px solid rgba(77,163,229,.3)}.count-info[data-v-22131429]{font-size:13px}.silenced-hint[data-v-22131429]{font-size:12px;color:var(--accent-warning);margin-left:4px}.row-actions[data-v-22131429]{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}.btn.small[data-v-22131429]{padding:5px 10px;font-size:12.5px}.empty[data-v-22131429]{text-align:center;color:var(--text-secondary);padding:28px 0}.overlay[data-v-22131429]{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.dialog[data-v-22131429]{width:100%;max-width:460px;padding:26px;display:flex;flex-direction:column;gap:16px;max-height:90vh;overflow-y:auto}.dialog-lg[data-v-22131429]{max-width:620px}.dialog h3[data-v-22131429]{font-size:15px}.msg[data-v-22131429]{color:var(--text-secondary);font-size:13.5px;line-height:1.5;margin:0}.actions[data-v-22131429]{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.field-group[data-v-22131429]{display:flex;flex-direction:column;gap:6px}.field-group>label[data-v-22131429]{font-size:13px;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.field-count[data-v-22131429]{font-size:11.5px;color:var(--text-secondary);opacity:.7;margin-left:auto}.field-help[data-v-22131429]{font-size:12px;color:var(--text-secondary);opacity:.8;margin:0}.error-msg[data-v-22131429]{color:var(--accent-danger);font-size:13px}.readonly-value[data-v-22131429]{opacity:.65;cursor:default;display:inline-block}.checkbox-list[data-v-22131429]{display:flex;flex-direction:column;gap:5px;max-height:160px;overflow-y:auto}.checkbox-item[data-v-22131429]{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-primary);cursor:pointer;padding:6px 8px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-raised)}.checkbox-item input[type=checkbox][data-v-22131429]{width:auto;flex-shrink:0}.checkbox-label[data-v-22131429]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.phone-hint[data-v-22131429]{font-size:11.5px;color:var(--text-secondary);font-family:var(--font-mono)}.tag-chip.small[data-v-22131429]{font-size:11px;padding:1px 4px}.device-card-list[data-v-22131429]{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto}.device-card[data-v-22131429]{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);padding:10px 12px;display:flex;flex-direction:column;gap:10px}.device-card-header[data-v-22131429]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.device-name[data-v-22131429]{font-size:13px;color:var(--text-primary)}.setpoints-inline[data-v-22131429]{display:grid;grid-template-columns:1fr 1fr;gap:8px}.setpoints-inline-3[data-v-22131429]{grid-template-columns:1fr 1fr 1fr}.setpoint-field[data-v-22131429]{display:flex;flex-direction:column;gap:4px}.setpoint-field label[data-v-22131429]{font-size:11.5px;color:var(--text-secondary);display:flex;align-items:center;gap:5px}.setpoint-field input[data-v-22131429]{padding:6px 8px;font-size:13px;width:100%}.empty-devices[data-v-22131429]{color:var(--accent-warning);font-style:italic}.badge-danger[data-v-22131429],.badge-warning[data-v-22131429]{font-size:10px;font-weight:600;padding:1px 4px;border-radius:3px}.badge-danger[data-v-22131429]{background:#e5575f26;color:var(--accent-danger)}.badge-warning[data-v-22131429]{background:#e5a53d26;color:var(--accent-warning)}.silence-desc[data-v-22131429]{color:var(--text-secondary);font-size:13px;margin:0}.silence-list[data-v-22131429]{display:flex;flex-direction:column;gap:6px;max-height:340px;overflow-y:auto}.silence-item[data-v-22131429]{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-raised);transition:border-color .15s ease}.silence-item.silenced[data-v-22131429]{border-color:#e5a53d66;background:#e5a53d0d}.silence-item-info[data-v-22131429]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.setpoints-summary[data-v-22131429]{font-size:11.5px;font-family:var(--font-mono);color:var(--text-secondary);opacity:.8}.silence-badge[data-v-22131429]{font-size:10.5px;font-weight:600;padding:1px 6px;border-radius:3px;background:#e5a53d26;color:var(--accent-warning);border:1px solid rgba(229,165,61,.3)}@media (max-width: 768px){.page-header[data-v-22131429]{flex-direction:column;align-items:stretch}.page-header .btn[data-v-22131429]{width:100%;text-align:center}.toolbar-container[data-v-22131429]{flex-direction:column;align-items:stretch}.filters-bar[data-v-22131429]{flex-direction:column}.filter-group[data-v-22131429]{flex-direction:column;align-items:flex-start}.filter-select[data-v-22131429]{width:100%;min-width:unset}.setpoints-inline[data-v-22131429]{grid-template-columns:1fr 1fr}.setpoints-inline-3[data-v-22131429]{grid-template-columns:1fr}.row-actions[data-v-22131429]{flex-direction:column;align-items:flex-end;gap:4px}}:root{--bg: #12161B;--surface: #1A1F26;--surface-raised: #20262E;--border: #2B323B;--text-primary: #E7EAEE;--text-secondary: #8B95A3;--accent-signal: #34D399;--accent-warning: #E5A53D;--accent-danger: #E5575F;--accent-info: #4DA3E5;--font-display: "IBM Plex Sans", "Inter", sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "IBM Plex Mono", "JetBrains Mono", monospace;--radius: 6px;--sidebar-width: 220px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text-primary);font-family:var(--font-body);font-size:14px;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;margin:0}a{color:var(--accent-info);text-decoration:none}button{font-family:var(--font-body);cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent-info);outline-offset:2px}input,select{font-family:var(--font-body);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);padding:8px 10px;font-size:14px;width:100%}.tag-chip{font-family:var(--font-mono);font-size:12.5px;color:var(--accent-info);background:#4da3e51a;border:1px solid rgba(77,163,229,.25);border-radius:4px;padding:2px 6px;white-space:nowrap}.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;flex-shrink:0}.status-dot.active{background:var(--accent-signal);box-shadow:0 0 6px var(--accent-signal)}.status-dot.inactive{background:var(--accent-warning)}.btn{border:1px solid var(--border);background:var(--surface-raised);color:var(--text-primary);border-radius:var(--radius);padding:8px 14px;font-size:13.5px;font-weight:500;transition:border-color .15s ease,background .15s ease;white-space:nowrap}.btn:hover{border-color:var(--accent-info)}.btn.primary{background:var(--accent-info);border-color:var(--accent-info);color:#0b1117}.btn.primary:hover{background:#5fb0eb}.btn.danger{color:var(--accent-danger)}.btn.danger:hover{border-color:var(--accent-danger);background:#e5575f14}.btn:disabled{opacity:.5;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--border);border-radius:8px}.table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse;min-width:480px}th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);font-weight:600;padding:10px 14px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:11px 14px;border-bottom:1px solid var(--border);font-size:13.5px}tr:last-child td{border-bottom:none}tr:hover td{background:#ffffff04}.topbar{display:none;position:sticky;top:0;z-index:40;background:var(--surface);border-bottom:1px solid var(--border);padding:12px 16px;align-items:center;justify-content:space-between}.topbar-brand{font-family:var(--font-mono);font-size:14px;color:var(--accent-signal)}.topbar-menu-btn{background:none;border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius);padding:6px 10px;font-size:13px}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:45}.sidebar-overlay.open{display:block}@media (max-width: 768px){.topbar{display:flex}.sidebar{position:fixed;top:0;left:0;height:100vh;z-index:50;transform:translate(-100%);transition:transform .22s ease}.sidebar.open{transform:translate(0)}}
