@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap");

/*! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,system-ui,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:JetBrains Mono,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.visible{visibility:visible}.flex{display:flex}.shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.border{border-width:1px}.text-danger{color:var(--danger)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}*,:after,:before{box-sizing:border-box}:root{--bg:#f8fafc;--bg-surface:#fff;--bg-canvas:#f1f5f9;--bg-sidebar:#fafbfc;--border:#e2e8f0;--border-hover:#cbd5e1;--text:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--accent:#0891b2;--accent-hover:#0e7490;--accent-muted:#ecfeff;--danger:#dc2626;--danger-muted:#fef2f2;--warning:#d97706;--success:#16a34a;--offline:#94a3b8;--stripe-storage:#0891b2;--stripe-treatment:#059669;--stripe-equipment:#d97706;--stripe-metering:#7c3aed}.dark{--bg:#0c0f16;--bg-surface:#131820;--bg-canvas:#0e1218;--bg-sidebar:#101520;--border:#1e2736;--border-hover:#2a3547;--text:#e2e8f0;--text-secondary:#94a3b8;--text-muted:#475569;--accent:#22d3ee;--accent-hover:#06b6d4;--accent-muted:#083344;--danger:#f87171;--danger-muted:#1c0a0a;--warning:#fbbf24;--success:#4ade80;--offline:#475569}body{margin:0;background-color:var(--bg);font-family:Inter,system-ui,sans-serif;font-size:13px;color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.mono{font-family:JetBrains Mono,monospace}#app{display:flex;height:100vh;flex-direction:column;overflow:hidden}.topnav{z-index:10;display:flex;height:3rem;flex-shrink:0;align-items:center;justify-content:space-between;border-bottom-width:1px;border-color:var(--border);background-color:var(--bg-surface);padding-left:1rem;padding-right:1rem}.topnav-left,.topnav-right{display:flex;align-items:center;gap:10px}.brand{display:flex;align-items:center;gap:.5rem}.brand-name{font-size:13px;font-weight:600;letter-spacing:-.01em;color:var(--text)}.brand-sep{margin-left:2px;margin-right:2px;color:var(--border-hover)}.brand-sub{font-size:.75rem;line-height:1rem;color:var(--text-muted)}.com-picker-wrap{position:relative}.com-btn{display:flex;cursor:pointer;align-items:center;gap:.375rem;border-radius:.375rem;border-width:1px;border-color:var(--border);background-color:var(--bg);padding:.25rem .625rem;font-family:inherit;font-size:.75rem;line-height:1rem;font-weight:500;color:var(--text-secondary);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.com-btn:hover{border-color:var(--border-hover);color:var(--text)}.com-btn .ti{font-size:13px}.dropdown{position:absolute;top:calc(100% + 4px);left:0;z-index:50;width:200px;overflow-y:auto;overflow-x:hidden;border-radius:.5rem;border-width:1px;border-color:var(--border);background-color:var(--bg-surface);--tw-shadow:0 4px 16px #00000014;--tw-shadow-colored:0 4px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);max-height:min(320px,calc(100vh - 60px))}.dropdown::-webkit-scrollbar{width:4px}.dropdown::-webkit-scrollbar-thumb{border-radius:.25rem;background-color:var(--border)}.dropdown-item{cursor:pointer;padding:.5rem .875rem;font-size:.75rem;line-height:1rem;color:var(--text-secondary);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s}.dropdown-item:hover{background-color:var(--bg)}.dropdown-item.active{background-color:var(--accent-muted);font-weight:500;color:var(--accent)}.dropdown-item-sub{margin-top:1px;font-size:10.5px;color:var(--text-muted)}.status-row{display:flex;align-items:center;gap:.375rem}.status-text{font-size:.75rem;line-height:1rem;color:var(--text-muted)}.divider-v{height:18px;width:1px;flex-shrink:0;background-color:var(--border)}.zoom-row{display:flex;align-items:center;gap:.25rem}.zoom-val{width:38px;text-align:center;font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-muted)}.icon-btn{display:flex;height:1.75rem;width:1.75rem;cursor:pointer;align-items:center;justify-content:center;border-radius:5px;border-style:none;background-color:initial;color:var(--text-muted);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s}.icon-btn:hover:not(:disabled){background-color:var(--bg);color:var(--text-secondary)}.icon-btn:disabled{cursor:not-allowed;opacity:.4}.icon-btn .ti{font-size:18px;line-height:1}.text-btn{cursor:pointer;border-radius:5px;border-width:1px;border-color:var(--border);background-color:initial;padding:3px .5rem;font-family:inherit;font-size:11px;color:var(--text-muted);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s}.text-btn:hover{border-color:var(--border-hover);color:var(--text-secondary)}.btn-primary{display:flex;cursor:pointer;align-items:center;gap:5px;border-radius:.375rem;border-style:none;background-color:var(--accent);padding:5px .75rem;font-family:inherit;font-size:.75rem;line-height:1rem;font-weight:500;--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.btn-primary:hover{background-color:var(--accent-hover)}.btn-primary:disabled{cursor:not-allowed;opacity:.4}.btn-primary .ti{font-size:13px}.btn-ghost{cursor:pointer;border-radius:.375rem;border-width:1px;border-color:var(--border);background-color:initial;padding:.375rem .875rem;font-family:inherit;font-size:.75rem;line-height:1rem;color:var(--text-secondary);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s}.btn-ghost:hover{background-color:var(--bg)}.btn-danger{margin-top:.5rem;display:flex;width:100%;cursor:pointer;align-items:center;gap:.375rem;border-radius:.375rem;border-width:1px;border-color:var(--border);background-color:initial;padding:7px .75rem;font-family:inherit;font-size:.75rem;line-height:1rem;color:var(--danger);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s}.btn-danger:hover{border-color:var(--danger);background-color:var(--danger-muted);color:var(--danger)}.pulse-dot{position:relative;height:7px;width:7px;flex-shrink:0;border-radius:9999px;background-color:var(--success)}.pulse-dot:after{content:"";position:absolute;inset:-3px;animation:custom-pulse 2s ease-out infinite;border-radius:9999px;border-width:2px;border-color:var(--success);opacity:0}@keyframes custom-pulse{0%{transform:scale(.6);opacity:.6}to{transform:scale(2.2);opacity:0}}.body-row{display:flex;flex:1 1 0%;overflow:hidden}.sidebar-left{display:flex;width:220px;flex-shrink:0;flex-direction:column;overflow-y:auto;border-right-width:1px;border-color:var(--border);background-color:var(--bg-sidebar);padding:.875rem .75rem 1rem}.sidebar-panel-header{padding:.25rem .125rem .625rem}.sidebar-section-label{display:block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.sidebar-panel-subtitle{margin-top:3px;font-size:11px;color:var(--text-muted)}.sidebar-section-block{display:flex;flex-direction:column;gap:10px;padding:0 .125rem .125rem}.lib-group{border-radius:10px;border-width:1px;border-color:var(--border);background-color:var(--bg-surface);padding:.5rem}.lib-group-label{padding:0 .125rem .375rem;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary)}.lib-item{display:flex;width:100%;cursor:pointer;align-items:center;gap:7px;border-radius:7px;border-style:none;background-color:initial;padding:7px .5rem;text-align:left;font-family:inherit;font-size:11.5px;color:var(--text-secondary);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s}.lib-item:hover{background-color:var(--bg);color:var(--text)}.lib-item .ti{flex-shrink:0;font-size:14px;color:var(--text-muted)}.lib-item-row{display:flex;align-items:center;border-radius:7px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s}.lib-item-row:hover{background-color:var(--bg)}.lib-item-row .lib-item{flex:1 1 0%;border-radius:7px;padding:7px .5rem}.lib-item-row .lib-item:hover{background-color:initial}.status-pip{height:.375rem;width:.375rem;flex-shrink:0;border-radius:9999px}.pip-online{background-color:var(--success)}.pip-warning{background-color:var(--warning)}.pip-offline{background-color:var(--offline)}.pip-maintenance{background-color:var(--text-muted)}.canvas-wrap{position:relative;flex:1 1 0%;cursor:default;overflow:hidden;background-color:var(--bg-canvas);background-image:linear-gradient(var(--border) 1px,#0000 1px),linear-gradient(90deg,var(--border) 1px,#0000 1px);background-size:32px 32px}.canvas-wrap.is-panning{cursor:grabbing}.zoom-layer{transform:translateZ(0);backface-visibility:hidden;image-rendering:-webkit-optimize-contrast}.pan-layer,.zoom-layer{will-change:transform}.pipe-svg{position:absolute;top:0;left:0;overflow:visible}.canvas-empty{pointer-events:none;position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:.75rem;line-height:1rem;color:var(--text-muted)}.canvas-empty-icon{font-size:32px}.canvas-legend{position:absolute;bottom:.75rem;left:.75rem;display:flex;align-items:center;gap:10px;border-radius:7px;border-width:1px;border-color:var(--border);background-color:var(--bg-surface);padding:.375rem .75rem;font-size:11px;color:var(--text-muted)}.legend-item{display:flex;align-items:center;gap:5px}.legend-line{display:inline-block;height:1.5px;width:1rem;border-radius:1px}.legend-line.active{--tw-bg-opacity:1;background-color:rgb(8 145 178/var(--tw-bg-opacity))}.legend-line.inactive{height:0;border-top-width:1.5px;border-style:dashed;--tw-border-opacity:1;border-color:rgb(148 163 184/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(148 163 184/var(--tw-bg-opacity))}.legend-pip{display:inline-block;height:.375rem;width:.375rem;border-radius:9999px}.legend-sep{height:.75rem;width:1px;background-color:var(--border)}.legend-hint{font-size:10.5px;color:var(--text-muted)}.asset-node{position:absolute;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.asset-node:active{cursor:grabbing}.node-card{position:relative;display:flex;width:88px;overflow:visible;border-radius:7px;border-width:1px;border-color:var(--border);background-color:var(--bg-surface);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.asset-node:hover .node-card{border-color:var(--border-hover)}.asset-node.is-selected .node-card{border-color:var(--accent);--tw-shadow:0 0 0 2px var(--accent-muted);--tw-shadow-colored:0 0 0 2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.node-stripe{width:3px;flex-shrink:0;align-self:stretch;border-top-left-radius:6px;border-bottom-left-radius:6px}.stripe-storage{background-color:var(--stripe-storage)}.stripe-treatment{background-color:var(--stripe-treatment)}.stripe-equipment{background-color:var(--stripe-equipment)}.stripe-metering{background-color:var(--stripe-metering)}.node-inner{display:flex;min-width:0;flex:1 1 0%;flex-direction:column;gap:.25rem;padding:7px .5rem .375rem}.node-icon-row{display:flex;align-items:center;justify-content:space-between}.node-icon{font-size:1.125rem;line-height:1.75rem;color:var(--text-secondary)}.node-status-dot{height:.375rem;width:.375rem;flex-shrink:0;border-radius:9999px}.dot-online{background-color:var(--success)}.dot-warning{background-color:var(--warning)}.dot-offline{background-color:var(--offline)}.dot-maintenance{background-color:var(--text-muted)}.node-label-wrap{min-width:0}.node-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:500;letter-spacing:.01em;color:var(--text-secondary)}.node-label-input{width:100%;border-bottom-width:1px;border-style:none;border-color:var(--accent);background-color:initial;font-family:Inter,system-ui,sans-serif;font-size:10px;font-weight:500;color:var(--text);outline:2px solid #0000;outline-offset:2px}.node-reading{display:inline-block;border-radius:3px;background-color:color-mix(in srgb,var(--success) 10%,#0000);padding:1px 5px;font-family:JetBrains Mono,monospace;font-size:9.5px;font-weight:500;color:var(--success)}.port{position:absolute;z-index:5;height:.5rem;width:.5rem;cursor:crosshair;border-radius:9999px;border-width:1.5px;border-color:var(--border-hover);background-color:var(--bg-surface);opacity:0;transition-property:border-color,transform,background;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s}.asset-node.is-selected .port,.asset-node:hover .port{opacity:1}.port:hover{border-color:var(--accent);background-color:var(--accent-muted)}.port-l{left:-5px}.port-l,.port-r{top:50%;--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.port-r{right:-5px}.port-l:hover,.port-r:hover{--tw-translate-y:-50%;--tw-scale-x:1.3;--tw-scale-y:1.3;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.sidebar-right{display:flex;width:260px;flex-shrink:0;flex-direction:column;overflow:hidden;border-left-width:1px;border-color:var(--border);background-color:var(--bg-sidebar)}.panel-header{flex-shrink:0;border-bottom-width:1px;border-color:var(--border);padding:.75rem .875rem .625rem}.panel-subtitle{margin-top:.125rem;display:block;font-size:11px;color:var(--text-muted)}.panel-body{flex:1 1 0%;overflow-y:auto;padding:.625rem .625rem 1rem}.panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding-top:3rem;text-align:center;font-size:11.5px;color:var(--text-muted)}.panel-search{margin:.5rem .625rem .375rem;display:flex;align-items:center;gap:.375rem;border-radius:.375rem;border-width:1px;border-color:var(--border);padding:.375rem .5rem}.panel-search-icon{font-size:12px;color:var(--text-muted)}.panel-search-input{flex:1 1 0%;background-color:initial;font-size:12px;outline:2px solid #0000;outline-offset:2px}.panel-search-input::-moz-placeholder{color:var(--text-muted)}.panel-search-input::placeholder{color:var(--text-muted)}.panel-list{max-height:300px;overflow-y:auto;padding-left:.625rem;padding-right:.625rem;padding-bottom:.25rem}.asset-list-item.is-active{background-color:color-mix(in srgb,var(--accent) 2%,#0000);border-color:color-mix(in srgb,var(--accent) 40%,#0000)}.panel-divider{margin:.25rem .625rem;height:1px;background-color:var(--border)}.panel-properties{flex:1 1 0%;overflow-y:auto;padding:.375rem .75rem 1rem}.properties-header{margin-bottom:.5rem;display:flex;align-items:center;justify-content:space-between}.properties-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500}.panel-properties-empty{display:flex;flex:1 1 0%;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;padding-left:1rem;padding-right:1rem;text-align:center;font-size:11.5px;color:var(--text-muted)}.asset-list-item{margin-bottom:.25rem;display:flex;cursor:pointer;align-items:center;justify-content:space-between;border-radius:.5rem;padding:.5rem .625rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s;border-width:1px;border-color:#0000}.asset-list-item:hover{border-color:var(--border);background-color:var(--bg-surface)}.asset-list-left{display:flex;min-width:0;align-items:center;gap:.625rem}.asset-list-icon{display:flex;height:1.75rem;width:1.75rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.375rem;font-size:13px}.icon-cat-storage{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity))}.icon-cat-treatment{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity))}.icon-cat-control{--tw-bg-opacity:1;background-color:rgb(255 247 237/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(249 115 22/var(--tw-text-opacity))}.icon-cat-measure{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(168 85 247/var(--tw-text-opacity))}.asset-list-info{display:flex;min-width:0;flex-direction:column}.asset-list-name{font-size:.75rem;line-height:1rem;font-weight:500;color:var(--text)}.asset-list-name,.asset-list-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-list-type{font-size:10px;color:var(--text-muted)}.asset-list-right{display:flex;flex-shrink:0;align-items:center;gap:.375rem}.asset-list-arrow{font-size:.75rem;line-height:1rem;color:var(--text-muted)}.back-btn{margin-bottom:.5rem;display:flex;cursor:pointer;align-items:center;gap:.25rem;border-style:none;background-color:initial;padding-left:0;padding-right:0;font-family:inherit;font-size:11px;color:var(--text-muted);transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.back-btn:hover{color:var(--text)}.panel-detail-title{font-size:13px;font-weight:600;color:var(--text)}.status-badge{margin-top:.25rem;display:inline-block;border-radius:9999px;padding:.125rem .5rem;font-size:10px;font-weight:500}.badge-online{background-color:rgb(220 252 231/var(--tw-bg-opacity));color:rgb(22 163 74/var(--tw-text-opacity))}.badge-offline,.badge-online{--tw-bg-opacity:1;--tw-text-opacity:1}.badge-offline{background-color:rgb(243 244 246/var(--tw-bg-opacity));color:rgb(107 114 128/var(--tw-text-opacity))}.badge-warning{background-color:rgb(254 249 195/var(--tw-bg-opacity));color:rgb(202 138 4/var(--tw-text-opacity))}.badge-maintenance,.badge-warning{--tw-bg-opacity:1;--tw-text-opacity:1}.badge-maintenance{background-color:rgb(219 234 254/var(--tw-bg-opacity));color:rgb(59 130 246/var(--tw-text-opacity))}.detail-actions{margin-top:.75rem;display:flex;gap:.5rem}.detail-actions .btn-ghost,.detail-actions .btn-primary{flex:1 1 0%;justify-content:center}.detail-danger{margin-top:.5rem;border-top-width:1px;border-color:var(--border);padding-top:.5rem}.detail-danger .btn-danger{width:100%;justify-content:center}.field-group{margin-bottom:.625rem}.field-label{margin-bottom:.25rem;display:block;font-size:10.5px;color:var(--text-muted)}.field-input{width:100%;resize:none;border-radius:5px;border-width:1px;border-color:var(--border);background-color:var(--bg-surface);padding:.375rem .5rem;font-family:Inter,system-ui,sans-serif;font-size:.75rem;line-height:1rem;color:var(--text);outline:2px solid #0000;outline-offset:2px;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.field-input:focus{border-color:var(--accent)}.field-input.mono{font-family:JetBrains Mono,monospace;font-size:11px}select.field-input{cursor:pointer}.prop-stat{margin-top:.25rem;margin-bottom:.25rem;display:flex;align-items:center;justify-content:space-between;border-radius:.375rem;border-width:1px;border-color:var(--border);background-color:var(--bg);padding:7px .625rem}.prop-stat-label{font-size:11px;color:var(--text-muted)}.prop-stat-val{font-family:JetBrains Mono,monospace;font-size:.875rem;line-height:1.25rem;font-weight:600;color:var(--text)}.modal-back{position:fixed;inset:0;z-index:9999;background-color:#0000004d;--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.modal{position:fixed;top:50%;left:50%;z-index:10000;--tw-translate-x:-50%;--tw-translate-y:-50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:500px;max-width:calc(100vw - 32px);flex-direction:column;border-radius:10px;border-width:1px;border-color:var(--border);background-color:var(--bg-surface);--tw-shadow:0 8px 40px #0003;--tw-shadow-colored:0 8px 40px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);height:-moz-fit-content;height:fit-content;max-height:90vh}.modal,.modal-header{display:flex}.modal-header{align-items:center;justify-content:space-between;border-bottom-width:1px;border-color:var(--border);padding:.875rem 18px .75rem;font-size:13px;font-weight:600;color:var(--text)}.modal-body{overflow-y:auto;padding:1rem 18px}.modal-footer{display:flex;flex-direction:row-reverse;gap:.5rem;border-top-width:1px;border-color:var(--border);padding:.75rem 18px 1rem}.icon-preview-row{display:flex;align-items:center;gap:.5rem}.icon-preview-box{display:flex;height:2.25rem;width:2.25rem;flex-shrink:0;align-items:center;justify-content:center;border-radius:.375rem;border-width:1px;border-color:var(--border);background-color:var(--bg);font-size:1.125rem;line-height:1.75rem;color:var(--text-secondary)}.required{color:var(--danger)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{border-radius:2px;background-color:var(--border-hover)}.lib-popover{position:fixed;left:228px;z-index:40;width:220px;overflow:hidden;border-radius:10px;border-width:1px;border-color:var(--border);background-color:var(--bg-surface);--tw-shadow:0 6px 24px #0000001f;--tw-shadow-colored:0 6px 24px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.lib-popover-header{display:flex;align-items:center;gap:.5rem;border-bottom-width:1px;border-color:var(--border);padding:.625rem .625rem .5rem}.lib-popover-icon{position:relative;display:flex;height:30px;width:30px;flex-shrink:0;align-items:center;justify-content:center;overflow:hidden;border-radius:.375rem;background-color:var(--bg);font-size:15px;color:var(--text-secondary)}.lib-popover-icon:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px}.lib-popover-icon.stripe-storage:before{background-color:var(--stripe-storage)}.lib-popover-icon.stripe-treatment:before{background-color:var(--stripe-treatment)}.lib-popover-icon.stripe-equipment:before{background-color:var(--stripe-equipment)}.lib-popover-icon.stripe-metering:before{background-color:var(--stripe-metering)}.lib-popover-title{min-width:0;flex:1 1 0%}.lib-popover-name{font-size:.75rem;line-height:1rem;font-weight:600;color:var(--text)}.lib-popover-cat{margin-top:1px;font-size:10.5px;color:var(--text-muted)}.lib-popover-rows{padding:.375rem 0}.lib-popover-row{display:flex;align-items:center;justify-content:space-between;padding:5px .625rem;font-size:11.5px}.lib-popover-key{color:var(--text-muted)}.lib-popover-val{font-size:11px;color:var(--text)}.lib-popover-hint{display:flex;align-items:center;gap:.375rem;border-top-width:1px;border-color:var(--border);background-color:var(--bg);padding:7px .625rem;font-size:11px;color:var(--text-muted)}.lib-popover-hint .ti{font-size:13px}[data-tooltip]:after{content:attr(data-tooltip);position:absolute;left:50%;top:100%;margin-top:6px;transform:translateX(-50%);white-space:nowrap;padding:4px 8px;border-radius:6px;font-size:11px;font-weight:500;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);opacity:0;pointer-events:none;transition:opacity .1s;z-index:50}[data-tooltip]:hover:after{opacity:1}[data-tooltip]:disabled:after{content:none}[data-tooltip]{position:relative}