.building-plan{flex-direction:column;gap:1rem;display:flex}.building-plan-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.building-plan-view-switch{gap:.25rem;display:flex}.building-plan-view-switch button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-fg);border-radius:var(--radius);cursor:pointer;font:inherit;padding:.35rem .75rem}.building-plan-view-switch button[aria-pressed=true]{background:var(--color-accent);color:var(--color-accent-fg);border-color:var(--color-accent)}.building-plan-view-switch button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.building-plan-section-chips{flex-wrap:wrap;gap:.25rem;display:flex}.building-plan-section-chips button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-fg);cursor:pointer;font:inherit;border-radius:999px;padding:.25rem .75rem;font-size:.875rem}.building-plan-section-chips button[aria-pressed=true]{background:var(--color-accent);color:var(--color-accent-fg);border-color:var(--color-accent)}.building-plan-section-chips button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.building-plan-suggested-banner{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-2);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.building-plan-svg-wrap{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);max-width:100%;overflow:auto}.building-plan-svg{width:100%;height:auto;max-height:min(60vh,560px);display:block}.building-room{stroke:var(--color-fg-muted);stroke-width:2px;cursor:default}.building-room[tabindex]{cursor:pointer}.building-room:focus-visible{stroke:var(--color-accent);stroke-width:3px;outline:none}.building-room-label{fill:var(--color-fg);text-anchor:middle;dominant-baseline:hanging;pointer-events:none;font-weight:650}.building-room-value{fill:var(--color-fg-muted);font-variant-numeric:tabular-nums;text-anchor:middle;dominant-baseline:hanging;pointer-events:none}.building-room-removed-marker{fill:var(--status-warn);text-anchor:middle;dominant-baseline:hanging;pointer-events:none}.building-room.is-outside-section{opacity:.35}.building-room-label-overlay rect{fill:var(--color-surface);stroke:var(--color-border);stroke-width:1px;vector-effect:non-scaling-stroke}.building-room-label-overlay text{fill:var(--color-fg);text-anchor:middle;dominant-baseline:hanging;pointer-events:none}.building-plan-zoom-controls{gap:.25rem;margin-bottom:.5rem;display:flex}.building-plan-zoom-controls button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-fg);border-radius:var(--radius);cursor:pointer;min-width:2.25rem;font:inherit;padding:.3rem .6rem}.building-plan-zoom-controls button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.building-wall{stroke:var(--color-fg);stroke-width:3px;fill:none}.building-opening{stroke-width:3px;fill:none}.building-opening-door{stroke:var(--tone-solar)}.building-opening-window{stroke:var(--tone-care)}.building-placement{fill:var(--color-surface);stroke:var(--color-fg-muted);stroke-width:1.4px}.building-placement-label{fill:var(--color-fg-muted);text-anchor:middle;pointer-events:none;font-size:9.5px}.building-equipment-top{fill:color-mix(in srgb, var(--tone-heat) 14%, var(--color-surface));stroke:var(--tone-heat);stroke-width:1.4px}.building-equipment-label{fill:var(--color-fg-muted);text-anchor:middle;dominant-baseline:hanging;pointer-events:none}.building-run-top{fill:none;stroke-width:2.5px}.building-run-top.is-flowing{animation:1.1s linear infinite building-run-flow}@keyframes building-run-flow{to{stroke-dashoffset:-16px}}.building-pv-field{fill:color-mix(in srgb, var(--tone-solar) 22%, var(--color-surface));stroke:var(--tone-solar);stroke-width:1.2px}.building-plan-legend{color:var(--color-fg-muted);flex-wrap:wrap;gap:.5rem 1.25rem;font-size:.85rem;display:flex}.building-plan-legend-swatch{vertical-align:-.1em;border-radius:2px;width:.85em;height:.85em;margin-right:.35em;display:inline-block}.building-plan-table{border-collapse:collapse;width:100%}.building-plan-table th,.building-plan-table td{text-align:left;border-bottom:1px solid var(--color-border);padding:.4rem .6rem}.building-plan-table td.is-numeric{font-variant-numeric:tabular-nums;text-align:right}.building-plan-table .is-stale{color:var(--color-fg-muted)}.building-plan-editor-toolbar{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.building-plan-editor-toolbar button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-fg);border-radius:var(--radius);cursor:pointer;font:inherit;padding:.35rem .6rem}.building-plan-editor-toolbar button:disabled{opacity:.5;cursor:not-allowed}.building-plan-editor-toolbar button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.building-plan-editor-hint{color:var(--color-fg-muted);font-size:.85rem}.building-plan-snap-badge{border-radius:var(--radius);background:var(--color-surface-2);color:var(--color-fg-muted);padding:.1rem .4rem;font-size:.75rem}.building-room.is-draft{stroke-dasharray:6 4}.building-room.is-assign-selected{stroke:var(--color-accent);stroke-dasharray:4 3;stroke-width:3px}.building-plan-section-list{flex-direction:column;gap:.35rem;margin:.5rem 0;padding:0;list-style:none;display:flex}.building-plan-section-list li{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.building-plan-room-assign-list{flex-direction:column;gap:.2rem;max-height:12rem;margin:.5rem 0;padding:0;list-style:none;display:flex;overflow-y:auto}.building-plan-room-assign-list label{align-items:center;gap:.4rem;display:flex}:root{--buildingplan-wall:#c9c0b2;--buildingplan-wall-edge:#e8e1d3}:root[data-theme=light]{--buildingplan-wall:#ddd6c9;--buildingplan-wall-edge:#9c9286}.building-plan-3d{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--bg-sunken,var(--color-surface-sunken));flex-direction:column;min-height:420px;display:flex}.building-plan-3d-controls{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap;align-items:center;gap:.75rem;padding:.5rem .6rem;display:flex}.building-plan-3d-exploded-toggle{color:var(--color-fg);align-items:center;gap:.35rem;font-size:.9rem;display:flex}.building-plan-3d--fullscreen{z-index:1000;border:0;border-radius:0;min-height:0;position:fixed;inset:0}.building-plan-3d-fullscreen{margin-left:auto}.building-plan-3d-viewport{flex:1;min-height:360px;position:relative}.building-plan-3d-viewport canvas{outline:none;width:100%;height:100%;display:block}.building-plan-3d-label{border-radius:var(--radius);background:color-mix(in srgb, var(--color-surface) 82%, transparent);color:var(--color-fg);border:1px solid var(--color-border);white-space:nowrap;padding:.1rem .4rem;font-size:12px;line-height:1.2}.building-plan-3d-touch-controls{grid-template-rows:repeat(3,2.75rem);grid-template-columns:repeat(3,2.75rem);gap:.25rem;display:grid;position:absolute;bottom:.75rem;right:.75rem}.building-plan-3d-touch-controls button{border:1px solid var(--color-border);background:color-mix(in srgb, var(--color-surface) 85%, transparent);color:var(--color-fg);border-radius:var(--radius);font:inherit}.building-plan-3d-fallback{padding:1rem}.building-scan-panel{flex-direction:column;gap:.75rem;display:flex}.building-scan-list{flex-direction:column;gap:.5rem;display:flex}.building-scan-row{border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:.6rem;padding:.5rem .7rem;display:flex}.building-scan-row .field{align-items:center;gap:.35rem;display:flex}.building-scan-upload-progress{border-radius:var(--radius);background:var(--color-surface-2);width:100%;height:.4rem;overflow:hidden}.building-scan-upload-progress>span{background:var(--color-accent);height:100%;transition:width .2s;display:block}@media (prefers-reduced-motion:reduce){.building-run-top.is-flowing{animation-duration:.01ms}}@media (width<=700px){.building-plan-editor-only-tablet{display:none}}.uplot,.uplot *,.uplot :before,.uplot :after{box-sizing:border-box}.uplot{width:min-content;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{-webkit-user-select:none;user-select:none;position:relative}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{width:100%;height:100%;display:block;position:relative}.u-axis{position:absolute}.u-legend{text-align:center;margin:auto;font-size:14px}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{pointer-events:none;background:#00000012;position:absolute}.u-cursor-x,.u-cursor-y{pointer-events:none;will-change:transform;position:absolute;top:0;left:0}.u-hz .u-cursor-x,.u-vt .u-cursor-y{border-right:1px dashed #607d8b;height:100%}.u-hz .u-cursor-y,.u-vt .u-cursor-x{border-bottom:1px dashed #607d8b;width:100%}.u-cursor-pt{pointer-events:none;will-change:transform;border:0 solid;border-radius:50%;position:absolute;top:0;left:0;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}.plant-schema{margin:0 0 1.5rem}.plant-schema-caption{margin:0 0 .5rem;font-size:.95rem}.plant-schema-title{font-weight:700}.plant-schema-subtitle{color:var(--color-fg-muted)}.plant-schema-hint{color:var(--color-fg-muted);font-size:.85rem;display:none}@media (width<=900px){.plant-schema-hint{display:inline}}.plant-schema-scroll{border-radius:var(--radius);max-width:100%;overflow-x:auto}.plant-schema-scroll:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.plant-schema-svg{max-width:none}.plant-divider{stroke:var(--color-border);stroke-width:1.5px}.plant-pipe{fill:none;stroke-width:4px;stroke-linejoin:round;stroke-linecap:butt}.plant-pipe.is-dashed{stroke-dasharray:8 6}.plant-pipe-warm{stroke:var(--pipe-vl,var(--tone-heat))}.plant-pipe-return{stroke:var(--pipe-rl,var(--tone-care))}.plant-pipe-solar,.plant-pipe-signal{stroke:var(--tone-solar);stroke-width:3px}.plant-pipe-circulation{stroke:var(--pipe-vl,var(--tone-heat));stroke-width:3px}.plant-pipe-circulation.is-dashed{stroke-dasharray:2 5;stroke-linecap:round}.plant-pipe-electric{stroke:var(--color-fg-muted);stroke-width:3px}.plant-pipe-neutral{stroke:var(--color-fg-muted);stroke-width:2px}.plant-arrow-warm,.plant-arrow-circulation{fill:var(--pipe-vl,var(--tone-heat))}.plant-arrow-return{fill:var(--pipe-rl,var(--tone-care))}.plant-arrow-solar,.plant-arrow-signal{fill:var(--tone-solar)}.plant-arrow-electric,.plant-arrow-neutral{fill:var(--color-fg-muted)}.plant-box.is-dashed{stroke-dasharray:6 4}.plant-box-generator.is-on,.plant-box-heatpump.is-on,.plant-box-circuit.is-on{stroke:var(--status-ok);stroke-width:2px}.plant-box-solar,.plant-box-relay{stroke:var(--tone-solar)}.plant-tank{stroke:var(--color-fg-muted);stroke-width:1.5px}.plant-grad-warm{stop-color:var(--pipe-vl,var(--tone-heat));stop-opacity:.5}.plant-grad-dhw{stop-color:var(--tone-solar);stop-opacity:.5}.plant-grad-cold{stop-color:var(--pipe-rl,var(--tone-care));stop-opacity:.45}.plant-manifold{fill:var(--pipe-vl,var(--tone-heat));stroke:var(--color-fg-muted);stroke-width:1px}.plant-marker circle{fill:var(--color-surface);stroke-width:2px}.plant-marker text{font-size:11px;font-weight:700}.plant-marker.plant-tone-warm circle{stroke:var(--pipe-vl,var(--tone-heat))}.plant-marker.plant-tone-warm text{fill:var(--pipe-vl,var(--tone-heat))}.plant-marker.plant-tone-return circle{stroke:var(--pipe-rl,var(--tone-care))}.plant-marker.plant-tone-return text{fill:var(--pipe-rl,var(--tone-care))}.plant-pump circle{fill:var(--color-surface);stroke:var(--color-fg);stroke-width:2px}.plant-pump path{fill:var(--color-fg-muted)}.plant-pump.is-on circle{stroke:var(--status-ok)}.plant-pump.is-on path{fill:var(--status-ok)}.plant-pump-blade{transform-box:fill-box;transform-origin:50%}.plant-pump-blade.is-running{animation:plant-pump-spin var(--plant-pump-speed,2.4s) linear infinite}@keyframes plant-pump-spin{to{transform:rotate(360deg)}}.plant-valve path{fill:none;stroke:var(--color-fg-muted);stroke-width:1.6px}.plant-valve .plant-valve-pointer{stroke:var(--color-fg);stroke-linecap:round}.plant-node{stroke-width:2px;fill:var(--color-surface)}.plant-node-pv{stroke:var(--tone-solar);fill:color-mix(in srgb, var(--tone-solar) 16%, var(--color-surface))}.plant-node-battery{stroke:var(--tone-ok);fill:color-mix(in srgb, var(--tone-ok) 14%, var(--color-surface))}.plant-node-grid{stroke:var(--tone-care);fill:color-mix(in srgb, var(--tone-care) 14%, var(--color-surface))}.plant-node-house{stroke:var(--color-fg);fill:var(--color-surface-2)}.plant-link:focus-visible .plant-box,.plant-link:focus-visible .plant-tank,.plant-link:focus-visible .plant-node,.plant-link:focus-visible .plant-pump circle{stroke:var(--color-accent);stroke-width:3px}.plant-text{fill:var(--color-fg)}.plant-text-heading{font-size:15px;font-weight:700}.plant-text-title{font-size:13px;font-weight:650}.plant-text-value{font-variant-numeric:tabular-nums;font-size:13px}.plant-text-sub{font-variant-numeric:tabular-nums;font-size:12px}.plant-text-small{font-size:11px}.plant-tone-muted{fill:var(--color-fg-muted)}.plant-text.plant-tone-warm{fill:var(--pipe-vl,var(--tone-heat))}.plant-text.plant-tone-return{fill:var(--pipe-rl,var(--tone-care))}.plant-text.plant-tone-solar{fill:var(--tone-solar)}.plant-value{cursor:pointer}.plant-value:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.plant-schema-previous{margin:0 0 1.5rem}.plant-schema-previous>summary{cursor:pointer;color:var(--color-fg-muted);font-size:.9rem}.plant-schema-open{color:var(--color-fg-muted);margin-top:.75rem;font-size:.85rem}.plant-schema-open h4{color:var(--color-fg);margin:0 0 .25rem;font-size:.85rem;font-weight:600}.plant-schema-open ul{margin:0;padding-left:1.1rem}.plant-schema-svg{width:100%;height:auto;font-family:inherit;display:block}.plant-component{cursor:default}.plant-component[tabindex]{cursor:pointer}.plant-component[tabindex]:focus-visible .plant-box{outline:2px solid var(--focus-ring);outline-offset:2px}.plant-box{fill:var(--bg-sunken);stroke:var(--line-strong);stroke-width:1.4px}.plant-component.is-off .plant-box{stroke-dasharray:4 4;opacity:.7}.plant-label{fill:var(--fg);font-size:12px;font-weight:650}.plant-sub{fill:var(--fg-muted);font-size:10.5px}.plant-sub.is-dim{fill:var(--fg-faint)}.plant-sub.is-missing{fill:var(--fg-faint);font-style:italic}.plant-pipe{fill:none;stroke-linecap:round;stroke-linejoin:round}.plant-pipe.is-flowing{stroke-dasharray:26 6;animation:1s linear infinite plant-flow-move}.plant-pipe.is-idle{stroke-dasharray:3 7;opacity:.4}@keyframes plant-flow-move{to{stroke-dashoffset:-32px}}.plant-rotor{transform-box:fill-box;transform-origin:50%}.plant-component.is-running .plant-rotor{animation:2.4s linear infinite plant-rotor-spin}@keyframes plant-rotor-spin{to{transform:rotate(360deg)}}.plant-pump-icon.is-running{animation:plant-rotor-spin var(--plant-pump-speed,2.4s) linear infinite}.plant-flame{transform-box:fill-box;transform-origin:50%}.plant-flame.is-burning{animation:1.4s ease-in-out infinite plant-flame-flicker}@keyframes plant-flame-flicker{0%,to{opacity:.85;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.08)}}.plant-status-grid{grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.9rem;display:grid}.plant-status-item .eyebrow{margin-bottom:.25rem;display:block}.plant-status-item .value{font-size:1.05rem;font-weight:650}.plant-simple-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elevated);max-width:22rem;padding:.9rem 1rem}.plant-simple-card[tabindex]{cursor:pointer}.plant-simple-card[tabindex]:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.plant-simple-card.is-off{opacity:.75}.plant-simple-card-head{align-items:center;gap:.5rem;margin-bottom:.6rem;display:flex}.plant-simple-card-icon{width:1.4rem;height:1.4rem;color:var(--fg-muted);flex:none;display:inline-flex}.plant-simple-card-name{flex:1;font-weight:650}.plant-simple-card-state{color:var(--fg-faint);font-size:.78rem}.plant-simple-card-state.is-running{color:var(--ok)}.plant-simple-card-meta{grid-template-columns:1fr auto;gap:.25rem 1rem;margin:0;font-size:.85rem;display:grid}.plant-simple-card-meta dt{color:var(--fg-muted)}.plant-simple-card-meta dd{text-align:right;margin:0}.plant-extra-list{grid-template-columns:1fr auto;gap:.3rem 1rem;font-size:.85rem;display:grid}.plant-extra-list dt{color:var(--fg-muted)}.plant-extra-list dd{text-align:right;justify-content:flex-end;align-items:baseline;gap:.5rem;margin:0;display:flex}.plant-extra-list .plant-extra-age{color:var(--fg-faint);font-size:.78rem}.plant-extra-list .plant-extra-stale{color:var(--fg-faint)}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.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,)}.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,)!important}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0c0b09;--color-surface:#141210;--color-surface-2:#0a0908;--color-surface-sunken:#0a0908;--color-fg:#f4f1ea;--color-fg-muted:#b7aea2;--color-border:#f4f1ea29;--color-accent:#7eb4ff;--color-accent-hover:#9ec8ff;--color-accent-fg:#0c0b09;--tone-ok:#3ee07a;--tone-solar:#ffc45a;--tone-energy:#3eecc8;--tone-home:#9ea2ff;--tone-care:#7eb4ff;--tone-signal:#ff7ec4;--tone-heat:#ff8a5c;--tone-air:#7ec1e8;--status-ok:#30d158;--status-warn:#fbbf24;--status-crit:#f87171;--status-neutral:#94a3b8;--status-silent:#d4b106;--radius-sm:2px;--radius:3px;--radius-lg:4px;--gap:1rem;--tap:2.75rem;--shadow-sm:0 1px 0 #0000008c;--shadow-md:0 1px 0 #000000b3}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0c0b09;--color-surface:#141210;--color-surface-2:#0a0908;--color-surface-sunken:#0a0908;--color-fg:#f4f1ea;--color-fg-muted:#b7aea2;--color-border:#f4f1ea29;--color-accent:#7eb4ff;--color-accent-hover:#9ec8ff;--color-accent-fg:#0c0b09;--tone-ok:#3ee07a;--tone-solar:#ffc45a;--tone-energy:#3eecc8;--tone-home:#9ea2ff;--tone-care:#7eb4ff;--tone-signal:#ff7ec4;--tone-heat:#ff8a5c;--tone-air:#7ec1e8;--status-ok:#30d158;--status-warn:#fbbf24;--status-crit:#f87171;--status-neutral:#94a3b8;--status-silent:#d4b106;--shadow-sm:0 1px 0 #0000008c;--shadow-md:0 1px 0 #000000b3}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f5f3f0;--color-surface:#fff;--color-surface-2:#eceae5;--color-surface-sunken:#eceae5;--color-fg:#1c1a17;--color-fg-muted:#6a635b;--color-border:#1c1a1724;--color-accent:#1d5fd0;--color-accent-hover:#1750b5;--color-accent-fg:#fff;--tone-ok:#1c7a46;--tone-solar:#e8a33d;--tone-energy:#0f9d8f;--tone-home:#6366f1;--tone-care:#1d5fd0;--tone-signal:#c2569b;--tone-heat:#c1440e;--tone-air:#3f7ea6;--status-ok:#1c7a46;--status-warn:#b45309;--status-crit:#b91c1c;--status-neutral:#52606d;--status-silent:#7a5f0c;--shadow-sm:0 1px 0 #1c1a170f;--shadow-md:0 1px 0 #1c1a171a}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:var(--color-bg);color:var(--color-fg);letter-spacing:-.005em;-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI Variable Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:17px;line-height:1.5}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}h1,h2,h3,h4,h5,h6{letter-spacing:-.015em;overflow-wrap:break-word;font-weight:650;line-height:1.1}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:10;background:var(--color-accent);color:var(--color-accent-fg);border-radius:var(--radius);padding:.5rem .75rem;position:absolute;top:0;left:-9999px}.skip-link:focus{top:.5rem;left:.5rem}.app-shell{grid-template-columns:250px 1fr;min-height:100dvh;display:grid}.nav-backdrop,.menu-toggle,.topbar-brand,.topbar-start{display:none}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;align-self:start;gap:1rem;height:100dvh;padding:1.25rem 1rem;display:flex;position:sticky;top:0;overflow-y:auto}.brand{letter-spacing:.06em;color:inherit;align-items:center;gap:.6rem;font-weight:700;text-decoration:none;display:flex}.brand small{letter-spacing:normal;color:var(--color-fg-muted);font-weight:400;display:block}.brand-symbol{border-radius:var(--radius);background:var(--color-accent);width:2rem;height:2rem;color:var(--color-accent-fg);place-items:center;display:grid}.mark{border-radius:var(--radius);background:linear-gradient(145deg, var(--color-accent), #5ac8fa);flex:none;width:22px;height:22px;position:relative}.mark:before,.mark:after{content:"";background:#fffffff2;border-radius:0;height:2px;position:absolute;left:5px}.mark:before{width:12px;top:7px}.mark:after{width:7px;top:12px}.nav-caption{text-transform:uppercase;letter-spacing:.16em;color:var(--color-fg-muted);margin:0;font-size:.6875rem}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--color-fg-muted);align-items:center;gap:.7rem;margin:0 0 .75rem;font-size:.6875rem;display:flex}.eyebrow:after{content:"";background:var(--color-border);flex:1;min-width:1.5rem;height:1px}nav{flex-direction:column;gap:.25rem;display:flex}.nav-link{min-height:var(--tap);border-radius:var(--radius);color:inherit;border:1px solid #0000;align-items:center;gap:.6rem;padding:.5rem .65rem;text-decoration:none;display:flex}.nav-link:hover{background:var(--color-surface-2)}.nav-link.active{background:var(--color-surface-2);border-color:var(--color-border);font-weight:600}.nav-mark{font-variant-numeric:tabular-nums;color:var(--color-fg-muted);font-size:.75rem}.sidebar-note{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface-2);margin-top:auto;padding:.75rem;font-size:.85rem}.sidebar-note p{margin:.4rem 0 0}.workspace{flex-direction:column;min-width:0;display:flex}.topbar{border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1.5rem;display:flex}.topbar-start{flex:auto;align-items:center;gap:.75rem;min-width:0}.topbar-identity{min-width:0;color:var(--color-fg-muted);font-size:.9rem}.topbar .button-secondary{min-height:var(--tap)}.site-switcher,.tenant-switcher{flex-direction:column;flex:16rem;gap:.2rem;min-width:0;display:flex}.site-switcher label,.tenant-switcher label{text-transform:uppercase;letter-spacing:.16em;color:var(--color-fg-muted);font-size:.6875rem}.site-switcher select,.tenant-switcher select{height:var(--tap);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);width:100%;min-width:0;color:inherit;font:inherit;padding:.5rem .6rem}.tenant-switcher .form-error{margin:0;font-size:.8rem}main{flex-direction:column;flex:1;gap:1.25rem;min-width:0;padding:1.5rem;display:flex}footer{border-top:1px solid var(--color-border);color:var(--color-fg-muted);padding:.75rem 1.5rem;font-size:.85rem}@media (width<=860px){.app-shell{grid-template-columns:1fr}.topbar-start{flex:auto;order:1;align-items:center;gap:.75rem;min-width:0;display:flex}.menu-toggle,.topbar-brand{align-items:center;gap:.5rem;display:inline-flex}.menu-toggle{min-width:var(--tap);min-height:var(--tap);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:inherit;font:inherit;cursor:pointer;justify-content:center;padding:.4rem .65rem}.topbar-brand{letter-spacing:.06em;color:inherit;font-weight:700;text-decoration:none}.nav-backdrop{z-index:20;background:#0006;border:0;padding:0;display:block;position:fixed;inset:0}.sidebar{z-index:21;visibility:hidden;width:min(20rem,86vw);box-shadow:var(--shadow-md);position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.sidebar.is-open{visibility:visible;transform:translate(0)}@media (prefers-reduced-motion:no-preference){.sidebar{transition:transform .35s,visibility .35s}}.topbar{align-items:flex-start;gap:.5rem;padding:.5rem 1rem}.topbar .button-secondary{order:2}.topbar-identity{flex:100%;order:3;font-size:.8rem;line-height:1.35}.tenant-switcher{flex-basis:100%;order:4;position:relative}.site-switcher{flex-basis:100%;order:5;position:relative}.site-switcher label,.tenant-switcher label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}main{gap:.75rem;padding:.75rem 1rem}footer{padding:.75rem 1rem}.sidebar-note{display:none}}.boot-screen,.login-page{background:var(--color-bg);place-items:center;min-height:100vh;padding:1.5rem;display:grid;position:relative}.login-page .theme-toggle{position:absolute;top:1rem;right:1rem}.login-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:min(26rem,100%);box-shadow:var(--shadow-sm);padding:2.25rem}.login-brand{align-items:center;gap:.6rem;display:flex}.login-brand-name{font-size:1.15rem;font-weight:700}.login-brand-sub{color:var(--color-fg-muted);margin:.2rem 0 1.5rem;font-size:.85rem}.login-card h1{margin:0 0 .65rem}.login-policy{border-left:3px solid var(--color-accent);background:var(--color-surface-2);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:0 0 1rem;padding:.75rem 1rem}@media (width<=860px){.login-policy{padding:.6rem .75rem;font-size:.9375rem;line-height:1.45}}.login-progress{color:var(--color-fg-muted);margin:0 0 .75rem;font-size:.85rem}.login-account{margin:0 0 .35rem}.login-option{border-top:1px solid var(--color-border);margin-top:1rem;padding-top:1rem}.login-option h2{margin:0 0 .35rem;font-size:1rem}.login-option p{margin:0 0 .65rem}.button-primary.login-passkey-button{text-align:center;width:100%;padding:.85rem 1.5rem;font-size:1.05rem;display:block}.login-divider{color:var(--color-fg-muted);align-items:center;gap:.75rem;margin:.85rem 0;font-size:.85rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.login-footer{border-top:1px solid var(--color-border);color:var(--color-fg-muted);margin-top:1.75rem;padding:1rem 0 0;font-size:.8rem;line-height:1.7}.login-footer a{color:inherit}.login-footer-sep{color:var(--color-fg-muted);margin:0 .5rem}.login-legal{text-align:center;width:min(26rem,100%);color:var(--color-fg-muted);margin:0;font-size:.75rem;line-height:1.7}.login-legal a{color:inherit}.login-shell{flex-direction:column;align-items:center;gap:1.75rem;width:100%;display:flex}.login-header{text-align:center;width:min(26rem,100%)}.login-header .login-brand{justify-content:center}.login-brand-sep{color:var(--color-fg-muted);margin:0 .2rem;font-weight:400}.login-lead{color:var(--color-fg-muted);margin:.5rem 0 0;font-size:.95rem}.login-trust{color:var(--color-fg-muted);align-items:center;gap:.4rem;margin:0 0 1rem;font-size:.8125rem;display:flex}.login-trust svg{color:var(--color-fg-muted);flex:none}.login-trust strong{color:var(--color-fg);font-weight:600}.page-heading{justify-content:space-between;align-items:flex-start;gap:var(--gap);border-bottom:1px solid var(--color-border);flex-wrap:wrap;padding-bottom:1rem;display:flex}.page-heading h1{letter-spacing:-.022em;margin:.15rem 0 .5rem;font-size:clamp(1.7rem,4.4vw,2.6rem);line-height:1.12}.page-heading p{color:var(--color-fg-muted);margin:0}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem 1.25rem}.panel-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.75rem;display:flex}.panel-danger{border-color:var(--status-crit);border-left-width:3px}.panel-danger .panel-heading h2{color:var(--status-crit)}.removal-actions{flex-wrap:wrap;gap:.75rem;margin-top:.75rem;display:flex}.removal-pending{border:1px solid var(--status-warn);border-radius:var(--radius-sm);margin-top:.75rem;padding:.75rem 1rem}.removal-pending p{margin:0 0 .5rem}.removal-pending p:last-child{margin-bottom:0}.panel-heading h2{margin:0;font-size:1.05rem}.metric-grid{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(10.5rem,1fr));display:grid}.metric-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:1rem}@media (width<=860px){.login-page{padding:.75rem}.login-card{padding:1.15rem 1rem 1.25rem}.login-brand-sub{margin-bottom:.7rem}.login-option{margin-top:.7rem;padding-top:.7rem}.login-divider{margin:.6rem 0}.login-option .button-secondary{text-align:center;width:100%;display:block}.login-footer{margin-top:1.15rem}.page-heading{padding-bottom:.5rem}.page-heading .eyebrow{margin-bottom:.4rem}.page-heading h1{margin:.1rem 0 .35rem}.page-heading p{font-size:.85rem;line-height:1.35}.metric-card{padding:.75rem}.fleet-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem}.fleet-metrics .metric-card{padding:.45rem .35rem;position:relative}.fleet-metrics .metric-card h2{font-size:.8125rem;line-height:1.2}.fleet-metrics .metric-value{margin-top:.15rem;font-size:1.15rem}.fleet-metrics .metric-card .muted{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.panel{padding:.75rem .85rem}}.metric-card h2,.metric-card h3{color:var(--color-fg-muted);margin:0;font-size:.85rem;font-weight:500}.metric-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin:.25rem 0 0;font-size:1.9rem}.panel-subheading{margin:1.25rem 0 .75rem;font-size:.95rem}.muted{color:var(--color-fg-muted);margin:.35rem 0 0;font-size:.85rem}.freshness-stale{color:var(--status-warn);font-weight:600}.history-chart{margin:.75rem 0 0}.history-chart svg{width:100%;height:auto;max-height:220px;display:block}.history-grid-line{stroke:var(--color-border);stroke-width:1px}.history-area{fill:var(--tone-energy);opacity:.16}.history-line{fill:none;stroke:var(--tone-energy);stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.sparkline{width:100%;height:2.75rem;display:block}.sparkline .history-line{stroke-width:2px}.sparkline .history-area{opacity:.18}.history-axis-label{fill:var(--color-fg-muted);font-size:20px}.mirror-chart svg{width:100%;height:auto;max-height:200px;display:block}.mirror-chart-legend{color:var(--color-fg-muted);flex-wrap:wrap;gap:.75rem;margin:.4rem 0 0;font-size:.8125rem;display:flex}.mirror-chart-legend-item{align-items:center;gap:.35rem;display:inline-flex}.mirror-chart-legend-dot{border-radius:50%;width:.6rem;height:.6rem;display:inline-block}.chip-row{flex-wrap:wrap;gap:.4rem;display:inline-flex}.status-chip{border:1px solid var(--color-border);border-radius:var(--radius-sm);letter-spacing:.01em;background:var(--color-surface);align-items:center;gap:.4rem;padding:.2rem .5rem;font-size:.8125rem;font-weight:600;display:inline-flex}.site-notice-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.site-notice-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);align-items:flex-start;gap:.6rem;padding:.55rem .7rem;display:flex}.site-notice-icon{flex:none;padding-top:.1rem;display:flex}.site-notice-body{min-width:0}.site-notice-text{margin:0}.site-notice-meta{margin:.2rem 0 0;font-size:.85rem}.backup-usage-bar{width:100%;height:.6rem;accent-color:var(--color-accent);border:1px solid var(--color-border);border-radius:var(--radius-sm);display:block}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}.data-table th,.data-table td{text-align:left;vertical-align:top;border-bottom:1px solid var(--color-border);padding:.55rem .6rem}.data-table thead th{text-transform:uppercase;letter-spacing:.05em;color:var(--color-fg-muted);white-space:nowrap;font-size:.8rem}.site-traffic-table{table-layout:fixed}.sort-button{font:inherit;color:inherit;cursor:pointer;text-transform:inherit;letter-spacing:inherit;background:0 0;border:0;padding:0}.row-select-button{font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.row-select-button[aria-pressed=true]{color:var(--color-accent);font-weight:600}.entity-row-stale,.entity-row-stale .row-select-button[aria-pressed=true]{color:var(--color-fg-muted)}.value-history-trigger{font:inherit;color:inherit;cursor:pointer;text-align:inherit;border-radius:var(--radius);background:0 0;border:0;margin:0;padding:0}.value-history-trigger:hover,.value-history-trigger:focus-visible{text-decoration:underline}.value-history-body .statistics-chart{margin:.75rem 0}.value-history-stats{gap:.35rem;margin:.5rem 0;display:grid}.value-history-stats dt{font-weight:600}.cell-sub{color:var(--color-fg-muted);font-size:.8rem;display:block}.cell-urgent{color:var(--status-crit);font-weight:600}.cell-highlight{background:var(--color-accent-soft,#0f9d8f1a);font-weight:600}.mirror-view h3{margin:1.25rem 0 .5rem}.mirror-role-charts{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;display:grid}.mirror-mail-frame{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;width:100%;height:min(70vh,800px);display:block}.detail-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem;margin:0;display:grid}.detail-list dt{color:var(--color-fg-muted);font-size:.8rem}.detail-list dd{margin:.1rem 0 0;font-weight:600}.gate-cell{border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:var(--status-neutral);white-space:nowrap;align-items:center;gap:.35rem;padding:.15rem .5rem;font-size:.85rem;display:inline-flex}.gate-symbol{font-size:.9em}.gate-block,.notice-block{border-left:3px solid var(--status-neutral)}.gate-block h2,.notice-block h2{margin:0 0 .4rem;font-size:1.05rem}.field{border:0;flex-direction:column;gap:.3rem;min-width:0;margin-bottom:.9rem;padding:0;display:flex}.field>label,.field>legend{color:var(--color-fg-muted);font-size:.85rem}.field input[type=text],.field input[type=email],.field input[type=password],.field input[type=search],.field input[type=number],.field select{height:var(--tap);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:inherit;font:inherit;min-width:0;padding:.5rem .6rem}.field textarea{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:inherit;font:inherit;resize:vertical;min-width:0;min-height:5.5rem;padding:.5rem .6rem}.field-counter{color:var(--color-fg-muted);text-align:right;margin:.25rem 0 0;font-size:.8rem}.component-rule-card{border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:.8rem;padding:.8rem .9rem}.component-rule-card-heading{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.6rem;display:flex}.component-rule-card-heading h3{margin:0;font-size:1rem}.component-rule-status-on{color:var(--status-ok);font-size:.85rem;font-weight:600}.component-rule-status-off{color:var(--color-fg-muted);font-size:.85rem;font-weight:600}.component-rule-card-actions{gap:.5rem;margin-top:.5rem;display:flex}.component-rule-row-list{margin:0;padding:0;list-style:none}.component-rule-row{border:1px dashed var(--color-border);border-radius:var(--radius-sm);margin-bottom:.6rem;padding:.6rem}.field-wide{grid-column:1/-1}.code-input{letter-spacing:.25em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.choice{color:var(--color-fg);align-items:center;gap:.5rem;font-size:.95rem;display:flex}.choice-nested{margin-left:1.5rem}.choice-grid{border:none;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.35rem 1rem;margin:.5rem 0;padding:0;display:grid}.choice-grid legend{color:var(--color-fg-muted);padding:0;font-size:.85rem}.alert-signal-history{flex-direction:column;gap:.5rem;margin:.5rem 0;padding:0;list-style:none;display:flex}.alert-signal-row{border-bottom:1px solid var(--color-border);padding-bottom:.5rem;font-size:.9rem}.pv-full-document{border:1px solid var(--color-border);border-radius:var(--radius);max-height:240px;margin:0 0 .75rem;padding:.6rem .9rem;font-size:.9rem;overflow-y:auto}.pv-full-document h3,.pv-full-document h4,.pv-full-document h5{margin:.7rem 0 .3rem}.pv-full-document h3:first-child,.pv-full-document h4:first-child,.pv-full-document h5:first-child{margin-top:0}.pv-full-document p{margin:0 0 .5rem}.pv-full-document ul,.pv-full-document ol{margin:0 0 .5rem 1.25rem;padding:0}.pv-full-document blockquote{border-left:2px solid var(--color-border);color:var(--color-fg-muted);margin:0 0 .5rem;padding-left:.75rem}.form-grid{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:end;display:grid}.inline-form{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.inline-form input{min-width:10rem}.filter-bar{gap:var(--gap);grid-template-columns:minmax(15rem,1.4fr) minmax(11rem,1fr) minmax(11rem,1fr) minmax(16.5rem,1.6fr);align-items:end;margin-bottom:.75rem;display:grid}.filter-bar .field{margin-bottom:0}.filter-bar .field>label{white-space:nowrap}.filter-bar .field input,.filter-bar .field select{width:100%}.filter-bar input[type=search]{appearance:none}.filter-bar input[type=search]::-webkit-search-decoration{display:none}.filter-bar input[type=search]::placeholder{color:#0000}@media (width<=1279px){.filter-bar{grid-template-columns:1fr 1fr}.filter-bar .field:first-child{grid-column:1/-1}.filter-bar .field:has(#fleet-sort){grid-column:1/-1}}@media (width<=860px){.filter-bar{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:.5rem}.filter-bar .field:first-child{grid-column:1/-1}.filter-bar .field:has(#fleet-sort){grid-column:1/-1}.filter-bar select{appearance:none;background-color:var(--color-surface);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23f4f1ea' d='M1.2 1.2h9.6L6 6.8z'/%3E%3C/svg%3E");background-position:right .4rem center;background-repeat:no-repeat;background-size:.7rem .45rem;padding-left:.4rem;padding-right:1.3rem;font-size:.9375rem}:root[data-theme=light] .filter-bar select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%231c1a17' d='M1.2 1.2h9.6L6 6.8z'/%3E%3C/svg%3E")}.filter-bar .field{position:relative}.filter-bar .field>label{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.filter-bar input[type=search]{font-size:.9375rem}.filter-bar input[type=search]::placeholder{color:var(--color-fg-muted);opacity:1}.metric-value{font-size:1.45rem}.metric-card .muted{font-size:.8125rem}}.button-primary,.button-secondary{font:inherit;min-height:var(--tap);border-radius:var(--radius-sm);cursor:pointer;border:1px solid var(--color-border);letter-spacing:.01em;padding:.5rem 1rem;font-weight:600}.button-primary{background:var(--color-accent);color:var(--color-accent-fg);border-color:#0000}.button-secondary{background:var(--color-surface);color:inherit}.button-primary:hover:not(:disabled){background:var(--color-accent-hover)}.button-secondary:hover:not(:disabled){background:var(--color-surface-2)}@media (prefers-reduced-motion:no-preference){.button-primary,.button-secondary{transition:background-color .15s}}.button-primary:disabled,.button-secondary:disabled{opacity:.6;cursor:not-allowed}.theme-toggle{width:var(--tap);height:var(--tap);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-fg);cursor:pointer;flex:none;justify-content:center;align-items:center;display:inline-flex}.theme-toggle:hover{background:var(--color-surface-2)}.button-danger{font:inherit;min-height:var(--tap);border-radius:var(--radius-sm);cursor:pointer;letter-spacing:.01em;background:var(--color-surface);color:var(--status-crit);border:1px solid var(--status-crit);padding:.5rem 1rem;font-weight:600}.button-danger:hover:not(:disabled){background:var(--color-surface-2)}.button-danger:disabled{opacity:.6;cursor:not-allowed}@media (prefers-reduced-motion:no-preference){.button-danger{transition:background-color .15s}}.text-button{font:inherit;color:var(--color-accent);cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.text-link{color:var(--color-accent)}.form-error{color:var(--status-crit);border-left:3px solid var(--status-crit);padding-left:.6rem;font-weight:600}.form-warning{color:var(--status-warn);border-left:3px solid var(--status-warn);padding-left:.6rem;font-weight:600}.form-notice{color:var(--status-ok);border-left:3px solid var(--status-ok);padding-left:.6rem;font-weight:600}.empty-state{color:var(--color-fg-muted)}.dialog-overlay{z-index:100;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.dialog-backdrop{cursor:default;background:#0000008c;border:0;padding:0;position:absolute;inset:0}.dialog{background:var(--color-surface);color:inherit;border:1px solid var(--color-border);border-radius:var(--radius);width:min(30rem,100vw - 2rem);max-width:30rem;max-height:calc(100vh - 2rem);padding:1.25rem 1.5rem;position:relative;overflow-y:auto}.dialog:focus{outline:none}.dialog h2{margin:0 0 .75rem;font-size:1.05rem}.dialog p{margin:0 0 .75rem}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;margin-top:1.25rem;display:flex}@media (width<=480px){.dialog{padding:1rem 1.1rem}.dialog-actions{flex-direction:column-reverse}.dialog-actions .button-primary,.dialog-actions .button-secondary,.dialog-actions .button-danger{text-align:center;width:100%}}.totp-qr{border-radius:var(--radius-sm);background:#fff;width:min(220px,100%);margin:1rem auto;padding:.75rem}.totp-qr svg{width:100%;height:auto;display:block}.recovery-codes{grid-template-columns:repeat(2,1fr);gap:.5rem;margin:1rem 0;padding:0;list-style:none;display:grid}.recovery-code{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:center;letter-spacing:.03em;padding:.4rem .5rem;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.recovery-actions{flex-wrap:wrap;gap:.6rem;margin:1rem 0;display:flex}@media print{.no-print{display:none!important}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#fff;--color-surface:#fff;--color-surface-2:#fff;--color-surface-sunken:#fff;--color-fg:#000;--color-fg-muted:#333;--color-border:#777}.invitation-page{min-height:0;padding:0;display:block}.invitation-page .login-card{width:100%;max-width:none;box-shadow:none;border:0;padding:0}.invitation-page .recovery-codes{break-inside:avoid}}.fleet-grid{gap:var(--gap);grid-template-columns:repeat(auto-fill,minmax(16.5rem,1fr));margin:0;padding:0;list-style:none;display:grid}.fleet-card{--tone:var(--status-neutral);background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--tone);border-radius:var(--radius);min-height:100%;color:inherit;box-shadow:none;flex-direction:column;gap:.65rem;padding:1rem 1rem 1rem 1.1rem;text-decoration:none;display:flex}.fleet-card[data-liveness=online]{--tone:var(--status-ok)}.fleet-card[data-liveness=degraded]{--tone:var(--status-warn)}.fleet-card[data-liveness=offline]{--tone:var(--status-crit)}.fleet-card[data-liveness=silent]{--tone:var(--status-silent)}.fleet-card[data-reporting=silent]{background:var(--color-surface-2);box-shadow:none;border-style:dashed dashed dashed solid}.fleet-card[data-reporting=zero]{background:var(--color-surface)}@media (prefers-reduced-motion:no-preference){.fleet-card{transition:border-color .25s,background-color .25s}}.fleet-card:hover,.fleet-card:focus-visible{box-shadow:none;border-color:var(--tone)}@supports (color:color-mix(in lab, red, red)){.fleet-card:hover,.fleet-card:focus-visible{border-color:color-mix(in oklab, var(--tone) 32%, var(--color-border))}}.fleet-card-head{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.fleet-card-head .chip-row{flex-shrink:0}.fleet-card-name{min-width:0}.fleet-card-title{letter-spacing:-.022em;margin:0;font-size:1.05rem;font-weight:600}.fleet-card-power{font-variant-numeric:tabular-nums;letter-spacing:-.022em;margin:0;font-size:1.7rem;line-height:1.1}.fleet-card-live{gap:inherit;flex-direction:column;display:flex}.fleet-card-live .muted{margin:0}.fleet-card-silent{color:var(--status-neutral);margin:0;font-size:1.05rem;font-weight:600}.fleet-card-meta{gap:.2rem .75rem;margin:0;font-size:.85rem;display:grid}.fleet-card-meta>div{grid-template-columns:8.2rem minmax(0,1fr);align-items:baseline;gap:.35rem;min-width:0;display:grid}.fleet-card-meta dt{color:var(--color-fg-muted);font-size:.8rem;line-height:1.3}.fleet-card-meta dd{font-variant-numeric:tabular-nums;color:var(--color-fg);margin:0}@media (width<=860px){.fleet-card-head{flex-direction:column;align-items:flex-start;gap:.35rem}.fleet-card-head .chip-row{flex-wrap:nowrap}.fleet-card-head .status-chip{white-space:nowrap}.fleet-card{gap:.4rem;padding:.75rem .85rem .7rem .95rem}.fleet-card-live{grid-template-columns:auto minmax(0,1fr);align-items:end;gap:.2rem .75rem;display:grid}.fleet-card-live .fleet-card-power{grid-area:1/1}.fleet-card-live .sparkline{grid-area:1/2;min-width:0;height:1.7rem}.fleet-card-live .muted{grid-column:1/-1;font-size:.8rem;line-height:1.25}.fleet-card-meta{grid-template-columns:minmax(0,1fr) minmax(0,1.45fr) minmax(0,1fr);gap:.15rem .25rem}.fleet-card-meta>div{flex-direction:column;gap:.05rem;display:flex}.fleet-card-meta dt{white-space:nowrap;font-size:.7rem;line-height:1.2}.fleet-card-meta dd{font-size:.8rem;line-height:1.25}.fleet-card-meta .gate-cell{white-space:normal;max-width:100%;padding:.08rem .28rem;font-size:.8125rem}}.host-grid{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(16.5rem,1fr));margin:0;padding:0;list-style:none;display:grid}.host-tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;gap:.6rem;height:100%;padding:1rem 1.1rem;display:flex}.host-tile[data-stale]{background:var(--color-surface-2);border-style:dashed}.host-tile-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.4rem;display:flex}.host-tile-head h3{margin:0;font-size:1rem}.host-tile-head p{margin:0}.host-bar{--tone:var(--status-ok);flex-direction:column;gap:.2rem;display:flex}.host-bar[data-tone=warn]{--tone:var(--status-warn)}.host-bar[data-tone=crit]{--tone:var(--status-crit)}.host-bar-head{justify-content:space-between;font-size:.85rem;display:flex}.host-bar-value{color:var(--tone);font-variant-numeric:tabular-nums}.host-bar-track{background:var(--color-surface-2);border-radius:999px;height:.5rem;overflow:hidden}.host-bar-fill{background:var(--tone);border-radius:inherit;height:100%}.host-bar-detail{margin:0;font-size:.78rem}.host-metric-chart{height:1.25rem;margin-top:.1rem}.host-net{border-top:1px solid var(--color-border);flex-direction:column;gap:.35rem;margin-top:.15rem;padding-top:.6rem;display:flex}.host-net-values{font-variant-numeric:tabular-nums;justify-content:space-between;font-size:.85rem;display:flex}.host-net-chart{height:2.25rem}.host-net-rx{stroke:var(--tone-care)}.host-net-tx{stroke:var(--tone-heat)}.site-hero-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);align-items:end;gap:1rem;margin-bottom:1rem;display:grid}.site-hero-primary .metric-value{letter-spacing:-.03em;font-size:clamp(2.4rem,6vw,3.5rem)}.metric-card.site-hero-primary{background:0 0;border:0;padding:0}.site-hero .history-chart{margin:0}.site-hero .history-chart svg{max-height:180px}.technik-block+.technik-block{border-top:1px solid var(--color-border);margin-top:1.25rem;padding-top:1.25rem}@media (width<=700px){.site-hero-grid,.fleet-grid{grid-template-columns:1fr}}.site-tabs{border-bottom:1px solid var(--color-border);flex-direction:row;gap:.25rem;margin:-.5rem 0 0;display:flex}.site-tabs a{min-height:var(--tap);color:inherit;white-space:nowrap;border-bottom:3px solid #0000;justify-content:center;align-items:center;margin-bottom:-1px;padding:0 1rem;font-weight:600;text-decoration:none;display:inline-flex}.site-tabs a[aria-current=page]{border-bottom-color:var(--color-accent);color:var(--color-accent)}.pv-mirror-subnav{border-bottom:1px solid var(--color-border);flex-flow:wrap;gap:.25rem;margin:0 0 1rem;display:flex}.pv-mirror-subnav button{min-height:var(--tap);color:inherit;font-weight:600;font-size:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;justify-content:center;align-items:center;margin-bottom:-1px;padding:0 1rem;display:inline-flex}.pv-mirror-subnav button[aria-current=true]{border-bottom-color:var(--color-accent);color:var(--color-accent)}.site-interface-panel{padding:0;overflow:hidden}.site-interface-frame{border:0;width:100%;height:min(80vh,900px);display:block}.entity-toolbar{flex-wrap:wrap;gap:.5rem;margin:.85rem 0;display:flex}.entity-bulk-toolbar{margin:.65rem 0}.entity-bulk-toolbar p{margin:0 0 .35rem}.entity-bulk-buttons{flex-wrap:wrap;gap:.5rem;display:flex}.entity-search{margin-top:.5rem}.entity-search input[type=search]{appearance:none;width:100%}.entity-search input[type=search]::-webkit-search-decoration{display:none}.entity-sort-mode{border:0;flex-direction:column;gap:.35rem;margin:.6rem 0 .9rem;padding:0;display:flex}.entity-sort-mode legend{color:var(--color-fg-muted);padding:0;font-size:.85rem}.entity-sort-mode-options{flex-wrap:wrap;gap:.25rem 1.25rem;display:flex}.entity-domain{margin-top:1rem}.entity-domain h3{text-transform:uppercase;letter-spacing:.08em;color:var(--color-fg-muted);margin:0 0 .15rem;font-size:.85rem}.entity-row{border-top:1px solid var(--color-border);padding:.35rem 0 .55rem}.entity-track{min-height:var(--tap);align-items:flex-start;gap:.65rem;padding-top:.35rem;display:flex}.entity-track input[type=checkbox],.entity-switches input[type=checkbox]{flex-shrink:0;width:1.15rem;height:1.15rem;margin:.2rem 0 0}.entity-copy{flex:1;min-width:0}.entity-name{overflow-wrap:anywhere;font-weight:600;display:block}.entity-id{color:var(--color-fg-muted);overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;display:block}.entity-unit{color:var(--color-fg-muted);font-variant-numeric:tabular-nums;flex-shrink:0}.entity-switches{flex-wrap:wrap;align-items:center;gap:.15rem 1rem;padding-left:1.8rem;display:flex}.entity-switches .choice{min-height:var(--tap)}.entity-switches .muted{flex:100%;margin:0 0 .35rem}@media (width<=860px){.site-tabs a{flex:1;padding:0 .5rem}.entity-toolbar .button-primary,.entity-toolbar .button-secondary,.entity-bulk-buttons .button-secondary{flex:100%}.entity-switches{padding-left:0}}.entity-domain-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.entity-domain-head h3{margin:0}.component-grid{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));margin-top:.75rem;display:grid}.component-tile-head{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.6rem;display:flex}.component-tile-name{align-items:flex-start;gap:.5rem;min-width:0;display:flex}.component-tile-name h3{overflow-wrap:anywhere;margin:0;font-size:1rem}.component-icon,.component-tile-name svg{color:var(--color-fg-muted);flex-shrink:0;margin-top:.1rem}.component-kind-label{color:var(--color-fg-muted);margin:.1rem 0 0;font-size:.8rem}.component-fields dt{flex-wrap:wrap;align-items:baseline;gap:.35rem;display:flex}.component-field-required{color:var(--status-warn);font-size:.8rem;font-weight:500}.component-toolbar{flex-wrap:wrap;gap:.75rem;margin-top:1rem;display:flex}.component-source-row{border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:flex-end;gap:.6rem 1rem;margin-top:.6rem;padding-top:.6rem;display:flex}.component-source-row .field{flex:12rem;margin-bottom:0}@media (width<=860px){.component-source-row{flex-direction:column;align-items:stretch}.component-source-row .field{flex-basis:auto}}.component-field-derived{margin:.3rem 0 0;font-size:.8rem}.component-energy-charts{flex-direction:column;gap:1rem;margin-top:.75rem;display:flex}.component-energy-chart svg{width:100%;height:auto;max-height:200px;display:block}.component-energy-chart figcaption{margin-bottom:.25rem;font-weight:600}.component-energy-computed-note{color:var(--color-fg-muted);font-weight:400}.component-energy-bar{fill:var(--tone-energy)}.component-energy-bar-computed{fill:var(--tone-energy);opacity:.4;stroke:var(--tone-energy);stroke-width:1px;stroke-dasharray:2 2}.component-energy-axis-label{fill:var(--color-fg-muted)}.component-energy-disclaimer{margin:.25rem 0 0;font-size:.85rem}.production-config-form{flex-direction:column;gap:.75rem;max-width:20rem;margin-top:1rem;display:flex}.ventilation-order-list{flex-direction:column;gap:.4rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.ventilation-order-list li{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);justify-content:space-between;align-items:center;gap:.75rem;padding:.4rem .6rem;display:flex}.ventilation-order-buttons{gap:.25rem;display:flex}.ventilation-order-buttons button{min-width:var(--tap);min-height:var(--tap);padding:0 .5rem}.components-preview-list{margin:0;padding-left:1.25rem}.components-preview-list li{margin-bottom:.4rem}.assembly-list{flex-direction:column;gap:.75rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.assembly-card{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);padding:.75rem}.assembly-connections{border-top:1px solid var(--color-border);margin-top:.5rem;padding-top:.5rem}.assembly-connections h4{margin:0 0 .4rem;font-size:.9rem}.assembly-connection-list{flex-direction:column;gap:.3rem;margin:0 0 .5rem;padding:0;list-style:none;display:flex}.assembly-connection-list li{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.audit-entry-list{flex-direction:column;gap:.75rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.audit-entry{border:1px solid var(--color-border);border-radius:var(--radius);padding:.6rem .75rem}.audit-entry-head{flex-wrap:wrap;justify-content:space-between;gap:.5rem;font-weight:600;display:flex}.audit-entry-head time{color:var(--color-fg-muted);font-size:.85rem;font-weight:400}.audit-entry-actor{margin:.2rem 0 0;font-size:.85rem}.audit-entry-details{margin:.5rem 0 0;font-size:.85rem}.schema-diagram{width:100%;height:auto;font-family:inherit;display:block}@keyframes leitwarte-flow-dash{to{stroke-dashoffset:-24px}}@keyframes leitwarte-spin{to{transform:rotate(360deg)}}.energy-flow-diagram,.energy-flow-legend{--ef-heat:#ff5d55;--ef-gas:#c8946a;--ef-neutral:#d9d4cb}:root[data-theme=light] .energy-flow-diagram,:root[data-theme=light] .energy-flow-legend{--ef-heat:#c62828;--ef-gas:#8a4f24;--ef-neutral:#2b2824}.energy-flow-line{fill:none}.energy-flow-idle{opacity:.45}.energy-flow-unknown{stroke-dasharray:2 5}.energy-flow-animated{stroke-dasharray:14 10;stroke-linecap:butt;animation:1.1s linear infinite leitwarte-flow-dash}.energy-flow-node-shape{--ef-node:var(--color-fg-muted);fill:var(--ef-node)}@supports (color:color-mix(in lab, red, red)){.energy-flow-node-shape{fill:color-mix(in srgb, var(--ef-node) 12%, var(--color-surface))}}.energy-flow-node-shape{stroke:var(--ef-node);stroke-width:2.5px}.energy-flow-node-generation .energy-flow-node-shape{--ef-node:var(--tone-solar)}.energy-flow-node-storage .energy-flow-node-shape{--ef-node:var(--tone-ok)}.energy-flow-node-grid .energy-flow-node-shape{--ef-node:var(--tone-care)}.energy-flow-node-house .energy-flow-node-shape{--ef-node:var(--ef-neutral);stroke-width:3px}.energy-flow-node-heat_generator .energy-flow-node-shape,.energy-flow-role-chp .energy-flow-node-shape,.energy-flow-node-consumption .energy-flow-node-shape{--ef-node:var(--ef-neutral)}.energy-flow-role-gas .energy-flow-node-shape{--ef-node:var(--ef-gas)}.energy-flow-node-inactive{opacity:.6}.energy-flow-node-inactive .energy-flow-node-shape{stroke-dasharray:4 4}.energy-flow-node-icon{color:var(--color-fg-muted)}.energy-flow-node-generation .energy-flow-node-icon{color:var(--tone-solar)}.energy-flow-node-storage .energy-flow-node-icon{color:var(--tone-ok)}.energy-flow-node-grid .energy-flow-node-icon{color:var(--tone-care)}.energy-flow-node-heat_generator .energy-flow-node-icon,.energy-flow-role-chp .energy-flow-node-icon{color:var(--ef-heat)}.energy-flow-node-consumption .energy-flow-node-icon,.energy-flow-node-house .energy-flow-node-icon{color:var(--color-fg)}.energy-flow-role-gas .energy-flow-node-icon{color:var(--ef-gas)}.energy-flow-hub-glow{fill:var(--color-accent);opacity:.18}.energy-flow-node-label{fill:var(--color-fg-muted);font-size:13px}.energy-flow-node-value{fill:var(--color-fg);font-size:14px;font-weight:600}.energy-flow-node-value-heat{fill:var(--ef-heat)}.energy-flow-legend{border-top:1px solid var(--color-border);color:var(--color-fg-muted);flex-wrap:wrap;gap:.4rem 1.1rem;margin:.75rem 0 0;padding:.6rem 0 0;font-size:.8rem;list-style:none;display:flex}.energy-flow-legend li{align-items:center;gap:.4rem;display:inline-flex}.energy-flow-legend-swatch{border-radius:50%;flex:none;width:.7rem;height:.7rem}.energy-flow-legend-swatch-off{border:1.5px dashed var(--color-fg-muted)}.heating-link{fill:none;stroke:var(--color-border)}.heating-link-active{stroke:var(--tone-heat)}.heating-link-animated{stroke-dasharray:8 6;animation:1.1s linear infinite leitwarte-flow-dash}.heating-link-idle{stroke:var(--color-border)}.heating-buffer-shell{fill:var(--color-surface);stroke:var(--color-border);stroke-width:2px}.heating-buffer-fill{stroke:none}.heating-buffer-fill-cool{fill:var(--tone-care)}.heating-buffer-fill-hot{fill:var(--tone-heat)}.heating-buffer-value{fill:var(--color-fg);text-shadow:0 0 3px var(--color-surface);font-size:15px;font-weight:700}.heating-tank-dhw .heating-buffer-shell{stroke-dasharray:4 3}.heating-rail-line{stroke:var(--color-border);stroke-width:6px;stroke-linecap:round}.heating-rail-label{fill:var(--color-fg-muted);font-size:11px}.heating-generator-circle{fill:var(--color-surface);stroke:var(--tone-heat);stroke-width:2px}.heating-circuit-pump-icon{fill:var(--color-fg-muted)}.heating-circuit-pump-icon.is-running{fill:var(--tone-heat)}.heating-node-inactive{opacity:.45}.heating-node-label{fill:var(--color-fg-muted);font-size:13px}.heating-node-value{fill:var(--color-fg);font-size:14px;font-weight:600}.heating-circuit-temps{font-size:12px}.heating-circuit-supply{fill:var(--tone-heat);font-weight:600}.heating-circuit-return{fill:var(--tone-care);font-weight:600}.heating-pump-state{fill:var(--color-fg-muted);font-size:12px}.heating-mixer-track{fill:var(--color-surface-sunken)}.heating-mixer-fill{fill:var(--tone-care)}.heating-mixer-label,.hybrid-generator-sub{fill:var(--color-fg-muted);font-size:11px}.hybrid-outdoor-temp{fill:var(--color-fg-muted);font-size:12px}.hybrid-heatpump-case,.hybrid-boiler-case{fill:var(--color-surface);stroke:var(--color-border);stroke-width:2px}.hybrid-heatpump.is-running .hybrid-heatpump-case,.hybrid-boiler.is-running .hybrid-boiler-case{stroke:var(--tone-heat)}.hybrid-heatpump-fan{fill:none;stroke:var(--color-border);stroke-width:2px;stroke-dasharray:4 4}.hybrid-heatpump.is-running .hybrid-heatpump-fan{stroke:var(--tone-heat);stroke-dasharray:none}.hybrid-heatpump-fan-blade{stroke:var(--color-border);stroke-width:2px;stroke-linecap:round;opacity:0}.hybrid-heatpump.is-running .hybrid-heatpump-fan-blade{stroke:var(--tone-heat);opacity:1;transform-box:fill-box;transform-origin:50%;animation:2.4s linear infinite leitwarte-spin}.hybrid-boiler-flame{fill:var(--color-border)}.hybrid-boiler.is-running .hybrid-boiler-flame{fill:var(--status-warn)}.hybrid-chargepump-body{fill:var(--color-surface);stroke:var(--color-border);stroke-width:1.6px}.hybrid-chargepump-vane{fill:var(--color-fg-muted)}.hybrid-dhw-charge.is-charging .hybrid-chargepump-vane{fill:var(--tone-heat);animation:1.6s linear infinite leitwarte-flow-dash}.hybrid-diverter-valve{fill:none;stroke:var(--color-fg-muted);stroke-width:1.6px}.ventilation-chain-link{stroke:var(--tone-air);stroke-width:2px;fill:none}.ventilation-chain-arrow-head{fill:var(--tone-air)}.ventilation-chain-box{fill:var(--color-surface);stroke:var(--tone-air);stroke-width:2px}.ventilation-chain-node-inactive .ventilation-chain-box{stroke:var(--color-border);opacity:.55}.ventilation-chain-value{fill:var(--color-fg);font-size:13px;font-weight:600}.ventilation-chain-label{fill:var(--color-fg-muted);font-size:12px}.demo-page{max-width:78rem;margin:0 auto;padding:0 1rem 3rem}.demo-banner{z-index:20;background:var(--status-warn);color:#1c1a17;text-align:center;letter-spacing:.01em;padding:.5rem 1rem;font-weight:700;position:sticky;top:0}.demo-header{padding:1.5rem 0 .5rem}.demo-header h1{margin:0 0 .25rem}.demo-controls{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);z-index:10;flex-wrap:wrap;align-items:center;gap:1rem;margin:1rem 0;padding:.85rem 1rem;display:flex;position:sticky;top:2.6rem}.demo-control-group{align-items:center;gap:.5rem;display:flex}.demo-time-slider{flex:16rem;align-items:center;gap:.6rem;min-width:14rem;display:flex}.demo-time-slider input[type=range]{min-width:8rem;min-height:var(--tap);flex:1}.demo-time-value{text-align:right;font-variant-numeric:tabular-nums;min-width:3.4rem;font-weight:700}.demo-season-group{gap:.35rem;display:flex}.demo-season-group button{min-height:var(--tap)}.demo-season-group button[aria-pressed=true]{background:var(--color-accent);color:var(--color-accent-fg);border-color:var(--color-accent)}.demo-play-button{min-height:var(--tap);min-width:8rem}.demo-section{margin:1.75rem 0}.demo-metrics{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.75rem;display:grid}.demo-tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:.85rem 1rem}.demo-tile-label{color:var(--color-fg-muted);margin:0 0 .25rem;font-size:.8125rem}.demo-tile-value{font-variant-numeric:tabular-nums;margin:0;font-size:1.375rem;font-weight:700}.demo-tile-sub{color:var(--color-fg-muted);margin:.15rem 0 0;font-size:.8125rem}.demo-device-grid{grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:.75rem;display:grid}.demo-schema-grid{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr));gap:1.25rem;display:grid}.demo-chart-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1.25rem;padding:1rem}.demo-chart-card h2{margin:0 0 .5rem;font-size:1rem}.demo-uplot{width:100%}@media (width<=640px){.demo-controls{position:static}.demo-time-slider{flex:100%}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}:root{--fg-muted:var(--color-fg-muted);--line:var(--color-border);--line-strong:color-mix(in srgb, var(--color-fg) 26%, transparent);--c-pv:var(--tone-solar);--c-bhkw-el:var(--tone-heat);--c-netz-bezug:var(--tone-care);--c-netz-ein:var(--tone-energy);--c-speicher:var(--tone-ok);--c-waerme:var(--tone-heat);--c-waerme-2:var(--tone-heat);--c-kessel:var(--tone-heat);--c-alarm:var(--status-crit);--c-verbraucher:var(--color-fg-muted);--state-running:var(--status-ok);--state-off:var(--color-fg-muted);--state-ready:var(--color-accent);--state-fault:var(--status-crit);--fg:var(--color-fg);--fg-faint:color-mix(in srgb, var(--color-fg) 55%, transparent);--bg-sunken:var(--color-surface-sunken);--bg-elevated:var(--color-surface);--accent:var(--color-accent);--accent-hover:var(--color-accent-hover);--focus-ring:var(--color-accent);--ok:var(--tone-ok);--c-now:var(--color-accent);--pipe-vl:var(--tone-heat);--pipe-rl:var(--tone-care);--pipe-tww:var(--tone-solar);--pipe-kw:var(--tone-air);--pipe-aul:var(--tone-ok);--pipe-zul:var(--tone-air);--pipe-abl:var(--tone-signal);--pipe-fol:var(--color-fg-muted);--pipe-kmr-heiss:var(--tone-heat);--pipe-kmr-fluessig:var(--tone-home);--pipe-kmr-sauggas:var(--tone-care);--pipe-off:var(--line-strong)}.dash-shell .panel{border-radius:var(--radius-lg)}.dash-shell .panel-heading h2,.dash-shell .panel>h2{letter-spacing:-.01em;font-size:1.05rem}.dash-shell .panel-heading>.muted{color:var(--color-fg-muted);max-width:32rem;margin:0;font-size:.78rem}.dash-shell .component-grid{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr))}.dash-shell .component-tile-name h3,.dash-shell .metric-card h3{font-size:.92rem;font-weight:650}.dash-shell .component-kind-label{text-transform:uppercase;letter-spacing:.06em;font-size:.72rem}.dash-masthead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 1.5rem;margin-bottom:.9rem;display:flex}.dash-masthead h1{letter-spacing:-.015em;margin:0;font-size:clamp(1.35rem,2.4vw,1.75rem);font-weight:650}.dash-subtitle{color:var(--color-fg-muted);margin:.3rem 0 0;font-size:.875rem}.dash-shell .breadcrumb{color:var(--color-fg-muted);align-items:center;gap:.35rem;margin:0 0 .9rem;font-size:.8rem;display:flex}.dash-shell .breadcrumb a{color:inherit;text-decoration:none}.dash-shell .breadcrumb a:hover{color:var(--color-fg);text-decoration:underline}.dash-shell .breadcrumb .current{color:var(--color-fg);font-weight:600}.dash-tabs{scrollbar-width:thin;border-bottom:1px solid var(--color-border);flex-direction:row;gap:.3rem;margin-bottom:1.1rem;display:flex;overflow-x:auto}.dash-tabs a{min-height:var(--tap);color:var(--color-fg-muted);white-space:nowrap;border-bottom:2px solid #0000;align-items:center;gap:.4rem;margin-bottom:-1px;padding:.6rem .9rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .12s,border-color .12s;display:inline-flex}.dash-tabs a:hover{color:var(--color-fg)}.dash-tabs a[aria-current=page]{color:var(--color-fg);border-bottom-color:var(--color-accent)}.dash-tabs a svg{flex:none;width:1rem;height:1rem}.dash-main-grid{grid-template-columns:240px 1fr;align-items:start;gap:1.5rem;margin-bottom:1.25rem;display:grid}.dash-main-grid-right{flex-direction:column;gap:1.25rem;min-width:0;display:flex}@media (width<=1100px){.dash-main-grid{grid-template-columns:1fr}.dash-kpi-rail{flex-flow:wrap}.dash-kpi-card{flex:11rem}}@media (width<=720px){.dash-masthead{flex-direction:column;align-items:flex-start}.dash-kpi-card{flex:100%}}.dash-kpi-rail{flex-direction:column;gap:.85rem;display:flex}.dash-kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:.9rem 1rem}.dash-kpi-card .eyebrow{margin-bottom:.35rem;display:block}.dash-kpi-value-row{justify-content:space-between;align-items:flex-end;gap:.6rem;display:flex}.dash-kpi-value{letter-spacing:-.01em;font-size:1.6rem;font-weight:650;display:block}.dash-kpi-sub{color:var(--color-fg-muted);margin:.3rem 0 0;font-size:.74rem}.kpi-ring{flex:none}.dash-kpi-spark{width:100%;height:26px;margin-top:.5rem;display:block}.dash-area-tiles{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;display:grid}.dash-area-tile{color:inherit;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.1rem;text-decoration:none;transition:border-color .12s,background .12s;display:block}.dash-area-tile:hover,.dash-area-tile:focus-visible{border-color:color-mix(in srgb, var(--color-fg) 30%, var(--color-border));background:var(--color-surface-2)}.dash-area-tile h3{margin:0 0 .5rem;font-size:.95rem}.dash-area-tile .value{font-size:1.1rem;font-weight:650}.dash-plant-grid{grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:1rem;margin:0;padding:0;list-style:none;display:grid}.dash-plant-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:inherit;flex-direction:column;gap:.4rem;padding:1rem 1.1rem;text-decoration:none;transition:border-color .12s,background .12s;display:flex}.dash-plant-card:hover,.dash-plant-card:focus-visible{border-color:color-mix(in srgb, var(--color-fg) 30%, var(--color-border));background:var(--color-surface-2)}.dash-plant-card-head{justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex}.dash-plant-card h4{margin:0;font-size:.92rem;font-weight:650}.dash-plant-card-kind{color:var(--color-fg-muted);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.72rem}.dash-plant-card-value{margin-top:auto;font-size:1.05rem;font-weight:650}.dash-plant-area+.dash-plant-area{margin-top:1.75rem}.dash-plant-area-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-fg-muted);margin:0 0 .75rem;font-size:.8rem;font-weight:700}.dash-plant-card-age{margin:0;font-size:.7rem}.dash-appliance-area-grid{grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));gap:1rem;display:grid}.dash-appliance-area-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1rem 1.1rem}.dash-appliance-area-card h4{margin:0 0 .6rem;font-size:.92rem;font-weight:650}.dash-appliance-area-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.dash-appliance-area-list li a{color:inherit;border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:.6rem;padding:.25rem .3rem;text-decoration:none;transition:background .12s;display:flex}.dash-appliance-area-list li a:hover,.dash-appliance-area-list li a:focus-visible{background:var(--color-surface-2)}.dash-appliance-name{overflow-wrap:anywhere;flex:auto;min-width:0;font-weight:600}.dash-appliance-area-list li a>.dash-state-badge{flex:none}.dash-appliance-area-list li a>.tabular{white-space:nowrap;flex:none}.dash-state-badge{align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;display:inline-flex}.dash-state-badge .dot{background:currentColor;border-radius:50%;flex:none;width:.5rem;height:.5rem}.dash-state-badge.is-running{color:var(--status-ok)}.dash-state-badge.is-unknown{color:var(--color-fg-muted);font-style:italic}.dash-state-badge.is-off{color:var(--color-fg-muted)}.dash-battery-badge{color:var(--status-warn);border:1px solid var(--status-warn);border-radius:999px;align-items:center;padding:.1rem .5rem;font-size:.72rem;font-weight:600;display:inline-flex}.dash-room-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.dash-room-list li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.3rem .6rem;display:flex}.dash-room-name{overflow-wrap:anywhere;flex:auto;min-width:0;font-weight:600}.dash-room-list li>.tabular,.dash-room-list li>.dash-state-badge{flex:none}.dash-room-age{font-size:.72rem}.dash-status-grid{grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));gap:.9rem;display:grid}.dash-status-item .eyebrow{margin-bottom:.25rem;display:block}.dash-status-item .value{font-size:1.05rem;font-weight:650}.dash-load-peak-window{margin-top:.15rem;font-size:.78rem;display:block}.dash-billing-month h3{margin:.8rem 0 .4rem;font-size:.95rem}.dash-billing-month:first-of-type h3{margin-top:0}.dash-billing-chart{margin-top:1rem}.dash-billing-chart-legend{gap:1rem;margin-bottom:.5rem;font-size:.8rem;display:flex}.dash-billing-legend-item{align-items:center;gap:.35rem;display:inline-flex}.dash-billing-swatch{border-radius:2px;width:.7rem;height:.7rem;display:inline-block}.dash-billing-swatch-ertrag{background:var(--c-pv)}.dash-billing-swatch-einspeisung{background:var(--c-netz-ein)}.dash-billing-chart-bars{align-items:flex-end;gap:.4rem;height:6rem;display:flex}.dash-billing-chart-month{flex-direction:column;flex:1;align-items:center;gap:.3rem;min-width:0;display:flex}.dash-billing-bar-pair{align-items:flex-end;gap:2px;width:100%;height:5rem;display:flex}.dash-billing-bar{border-radius:2px 2px 0 0;flex:1;min-height:1px}.dash-billing-bar-ertrag{background:var(--c-pv)}.dash-billing-bar-einspeisung{background:var(--c-netz-ein)}.dash-billing-chart-label{color:var(--color-fg-muted);white-space:nowrap;font-size:.68rem}.dash-consumer-bars{flex-direction:column;gap:.7rem;display:flex}.dash-consumer-row{grid-template-columns:10rem 1fr 4.5rem;align-items:center;gap:.75rem;display:grid}.dash-consumer-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.85rem;overflow:hidden}.dash-consumer-track{background:var(--color-surface-sunken);border-radius:999px;height:.6rem;overflow:hidden}.dash-consumer-fill{background:var(--color-fg-muted);border-radius:999px;height:100%;transition:width .3s}.dash-consumer-value{text-align:right;font-size:.85rem}.dash-consumer-total{border-top:1px solid var(--color-border);color:var(--color-fg-muted);justify-content:space-between;margin-top:.3rem;padding-top:.7rem;font-size:.85rem;display:flex}.dash-period-switch{border:1px solid var(--color-border);border-radius:var(--radius-lg);gap:.2rem;margin-bottom:.9rem;padding:.2rem;display:inline-flex}.dash-period-switch button{color:var(--color-fg-muted);border-radius:var(--radius);cursor:pointer;min-height:var(--tap);background:0 0;border:none;padding:.35rem .7rem;font-size:.8rem;font-weight:600}.dash-period-switch button.is-active{background:var(--color-accent);color:var(--color-accent-fg)}.dash-phase-table-wrap{margin-top:1rem;overflow-x:auto}.dash-phase-table{border-collapse:collapse;width:100%;font-size:.85rem}.dash-phase-table th,.dash-phase-table td{text-align:right;border-bottom:1px solid var(--color-border);padding:.4rem .6rem}.dash-phase-table th[scope=row],.dash-phase-table th[scope=col]:first-child{text-align:left}.dash-schieflast{margin:.6rem 0 0;font-size:.8rem}.dash-phase-age{white-space:nowrap;font-size:.68rem;display:block}.dash-meter-table-wrap{overflow-x:auto}.dash-meter-table{border-collapse:collapse;width:100%;font-size:.85rem}.dash-meter-table th,.dash-meter-table td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:.4rem .6rem}@keyframes dash-pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes dash-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes dash-wave{0%{background-position:0 0}to{background-position:2rem 0}}@keyframes dash-flash{0%{background-color:color-mix(in srgb, var(--color-accent) 25%, transparent)}to{background-color:#0000}}.dash-shell .panel,.dash-kpi-card,.dash-plant-card,.dash-area-tile{animation:.35s both dash-fade-in}.dash-live-status{color:var(--color-fg-muted);align-items:center;gap:.4rem;margin:.4rem 0 0;font-size:.78rem;display:inline-flex}.dash-live-dot{background:currentColor;border-radius:50%;flex:none;width:.5rem;height:.5rem;animation:2s ease-in-out infinite dash-pulse}.dash-live-fresh{color:var(--status-ok)}.dash-live-aging{color:var(--status-warn)}.dash-live-stale{color:var(--status-crit)}.dash-live-unknown{color:var(--color-fg-muted)}.dash-fullscreen-link{color:var(--color-accent);align-self:center;font-size:.78rem;font-weight:600;text-decoration:none}.dash-fullscreen-link:hover,.dash-fullscreen-link:focus-visible{text-decoration:underline}.dash-alert-row{border-inline-start-width:3px;animation:.35s both dash-fade-in}.dash-alert-pulse-once{animation:1.6s ease-out dash-flash}.is-resolved{opacity:.55}.dash-battery-fill-track{background:var(--color-surface-sunken);border-radius:999px;height:.5rem;margin-top:.4rem;overflow:hidden}.dash-battery-fill{background:var(--c-speicher);border-radius:999px;height:100%;transition:width .3s}.dash-battery-fill.is-charging{background-image:repeating-linear-gradient(45deg, color-mix(in srgb, var(--c-speicher) 85%, white 15%) 0 .5rem, var(--c-speicher) .5rem 1rem);animation:1.2s linear infinite dash-wave}.dash-fullscreen{min-height:100vh;padding:2rem 2.5rem;font-size:1.15em}.dash-fullscreen .dash-tabs{display:none}.dash-fullscreen-bar{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.dash-fullscreen-exit{color:var(--color-accent);font-size:.85rem;font-weight:600;text-decoration:none}.dash-fullscreen-exit:hover,.dash-fullscreen-exit:focus-visible{text-decoration:underline}.dash-fullscreen-paused{font-size:.8rem}.dash-empty-state{text-align:left}.dash-empty-state p+p{margin-top:.6rem}.dash-shell .demo-uplot{width:100%;color:var(--color-fg-muted)}.dash-shell .demo-uplot .u-legend{color:var(--color-fg-muted);text-align:left;margin-top:.4rem;font-size:.74rem}.dash-shell .demo-uplot .u-legend th{padding:2px 8px 2px 0;font-weight:600}.dash-shell .demo-uplot .u-series>*{padding:2px 8px 2px 0}.statistics-chart{width:100%;min-height:340px;color:var(--color-fg-muted)}.stats-page .statistics-chart{margin:.75rem 0}.stats-custom-range{flex-wrap:wrap;gap:1rem;margin:.5rem 0;display:flex}.stats-custom-range input{margin-left:.35rem}.stats-picker{flex-direction:column;gap:.3rem;max-width:24rem;margin:.75rem 0;display:flex}.stats-picker select{border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:inherit;min-height:var(--tap);padding:.4rem .5rem}.stats-series-list{flex-direction:column;gap:.5rem;margin:.75rem 0 0;padding:0;list-style:none;display:flex}.stats-series-list li{border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem;padding:.5rem .75rem;display:flex}.stats-series-label{font-weight:600}.stats-series-stats{color:var(--color-fg-muted);flex-wrap:wrap;gap:.5rem;font-size:.85rem;display:flex}.dash-room-setpoint{font-size:.8rem}.dash-window-badge{border-radius:999px;align-items:center;padding:.1rem .5rem;font-size:.72rem;font-weight:600;display:inline-flex}.dash-window-badge.open{color:var(--status-warn);border:1px solid var(--status-warn)}
