@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@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;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, 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;--spacing:.25rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--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,ui-sans-serif, system-ui, 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{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{.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}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.block{display:block}.flex{display:flex}.hidden{display:none}.inline-block{display:inline-block}.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}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.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}.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,)}.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))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}}:root{--font-geist-sans:"Geist Variable";--bg-primary:#1b1b1b;--bg-secondary:#0f1520;--bg-card:#0006;--bg-glass:#0006;--border-glass:#ffee001f;--border-glow:#ff000040;--text-primary:#e2e8f0;--text-secondary:#aab6c7;--text-muted:#7d8da3;--accent-cyan:#38bdf8;--accent-green:#34d399;--accent-red:#f87171;--accent-amber:#fbbf24;--accent-purple:#a78bfa;--accent-blue:#60a5fa;--glow-cyan:0 0 20px #38bdf84d;--glow-green:0 0 15px #34d3994d;--glow-red:0 0 15px #f871714d;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--dot-offset:14px}*{box-sizing:border-box;margin:0;padding:0}html{font-size:111.75%}html,body,#root{background:var(--bg-primary);height:100%;color:var(--text-primary);font-family:var(--font-geist-sans), "Inter", system-ui, -apple-system, sans-serif;overflow:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#38bdf833;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#38bdf866}.glass-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-glass);border-radius:var(--radius-lg);transition:border-color .3s,box-shadow .3s}.glass-card:hover{border-color:var(--border-glow);box-shadow:var(--glow-cyan)}.glass-card-static{background:var(--bg-glass);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-glass);border-radius:var(--radius-lg)}.widget-card{min-width:0;overflow:hidden}.widget-card--panel{padding:14px 16px}.widget-card-header{flex:none;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.widget-card-heading{flex-direction:column;min-width:0;display:flex}.widget-card-title{color:#e2e8f0;letter-spacing:.025em;margin:0;font-size:1rem;font-weight:750;line-height:1.3}.widget-card-action{flex:none;display:flex}.widget-card--inset{background:linear-gradient(145deg,#0f192da8,#050a1485);border:1px solid #38bdf829;border-radius:12px}.widget-card--inset>.widget-card-header{border-bottom:1px solid #94a3b81c;min-height:38px;margin-bottom:0;padding:7px 10px}.widget-card--inset>.widget-card-header .widget-card-title{font-size:.92rem}.widget-card-eyebrow{color:#f7f7f7;letter-spacing:.1em;margin-bottom:2px;font-size:.92rem;font-weight:800}.status-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.7rem;font-weight:600;display:inline-flex}.status-ok{color:var(--accent-green);background:#34d39926;border:1px solid #34d39940}.status-warning{color:var(--accent-amber);background:#fbbf2426;border:1px solid #fbbf2440}.status-critical{color:var(--accent-red);background:#f8717126;border:1px solid #f8717140}@keyframes pulse-green{0%,to{box-shadow:0 0 #34d39966}50%{box-shadow:0 0 0 6px #34d39900}}@keyframes pulse-red{0%,to{box-shadow:0 0 #f8717166}50%{box-shadow:0 0 0 6px #f8717100}}@keyframes pulse-amber{0%,to{box-shadow:0 0 #fbbf2466}50%{box-shadow:0 0 0 6px #fbbf2400}}.pulse-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.pulse-dot-green{background:var(--accent-green);animation:2s infinite pulse-green}.pulse-dot-red{background:var(--accent-red);animation:1.5s infinite pulse-red}.pulse-dot-amber{background:var(--accent-amber);animation:2s infinite pulse-amber}.grid-bg{background-image:linear-gradient(#38bdf808 1px,#0000 1px),linear-gradient(90deg,#38bdf808 1px,#0000 1px);background-size:40px 40px}.gradient-text{background:linear-gradient(135deg, var(--accent-cyan), var(--accent-blue));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:.6s forwards fadeInUp}.fade-in-up-delay-1{opacity:0;animation-delay:.1s}.fade-in-up-delay-2{opacity:0;animation-delay:.2s}.fade-in-up-delay-3{opacity:0;animation-delay:.3s}.fade-in-up-delay-4{opacity:0;animation-delay:.4s}@keyframes sweepGlow{0%{transform:translate(-100%)}to{transform:translate(200%)}}.glow-line{position:relative;overflow:hidden}.glow-line:after{content:"";background:linear-gradient(90deg,#0000,#38bdf826,#0000);width:50%;height:100%;animation:3s ease-in-out infinite sweepGlow;position:absolute;top:0;left:0}.sensor-tooltip{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-glow);border-radius:var(--radius-md);pointer-events:none;z-index:100;min-width:200px;box-shadow:var(--glow-cyan), 0 8px 32px #00000080;background:#0a0e17f2;padding:12px 16px;position:absolute}.dashboard-layout{grid-template-rows:auto minmax(0,1fr);grid-template-columns:480px minmax(0,1fr) 650px;gap:16px;height:100vh;padding:12px 16px;display:grid;position:relative;background-image:none!important}.panel-aside{z-index:5;flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.main-content{border-radius:var(--radius-lg);pointer-events:none;flex-direction:column;justify-content:flex-end;min-width:0;min-height:0;display:flex;overflow:hidden}.event-journal{pointer-events:auto;z-index:4;background:linear-gradient(155deg,#0d1828f7,#060d19f7);border-color:#94b3d433;flex-direction:column;flex-shrink:0;height:220px;min-height:180px;max-height:220px;display:flex;position:relative;box-shadow:0 12px 36px #0000003d,inset 0 1px #ffffff09}.event-journal.widget-card--panel{padding:0}.event-journal:hover{border-color:#67c6ef52;box-shadow:0 12px 36px #0000004d}.event-journal>.widget-card-header{gap:12px;margin:0;padding:15px 16px 13px}.event-journal .widget-card-title{letter-spacing:0;font-size:.88rem}.event-journal-count{color:#c4d7e9;font-variant-numeric:tabular-nums;white-space:nowrap;background:#94b3d412;border:1px solid #94b3d421;border-radius:7px;align-items:center;gap:5px;padding:4px 7px;font-size:.67rem;display:inline-flex}.event-journal-count>span{color:#8195ac;font-size:.58rem}.event-journal-entries{overscroll-behavior:contain;scrollbar-gutter:stable;flex-direction:column;flex:auto;gap:8px;min-height:0;margin:0 4px;padding:0 8px 12px;list-style:none;display:flex;overflow-y:auto}.event-journal-entries:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:-2px;border-radius:8px}.event-journal-entry{--journal-accent:#7abfe9;--journal-tint:122, 191, 233;background:linear-gradient(115deg, rgba(var(--journal-tint), .065), #0f192999);border:1px solid rgba(var(--journal-tint), .13);border-radius:10px;flex:none;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:11px 12px;display:grid;position:relative}.event-journal-entry:before{background:var(--journal-accent);content:"";opacity:.8;border-radius:0 3px 3px 0;width:2px;position:absolute;top:13px;bottom:13px;left:-1px}.event-journal-entry:first-child{background:linear-gradient(115deg, rgba(var(--journal-tint), .11), #0f1929c7);border-color:rgba(var(--journal-tint), .23)}.event-journal-entry--alarm,.event-journal-entry--critical{--journal-accent:#ff8795;--journal-tint:255, 135, 149}.event-journal-entry--warning{--journal-accent:#f4c56c;--journal-tint:244, 197, 108}.event-journal-entry--recovered{--journal-accent:#70d9b1;--journal-tint:112, 217, 177}.event-journal-entry--pump{--journal-accent:#8eb6ff;--journal-tint:142, 182, 255}.event-journal-icon{background:rgba(var(--journal-tint), .1);border:1px solid rgba(var(--journal-tint), .19);color:var(--journal-accent);border-radius:9px;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.event-journal-icon svg{width:18px;height:18px}.event-journal-content{min-width:0}.event-journal-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:5px 10px;margin-bottom:5px;display:flex}.event-journal-kind{color:var(--journal-accent);letter-spacing:.015em;font-size:.59rem;font-weight:650;line-height:1.4}.event-journal-entry time{font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:baseline;gap:7px;line-height:1.4;display:inline-flex}.event-journal-date{color:#8092a9;font-size:.57rem}.event-journal-clock{color:#bdcce0;letter-spacing:.025em;font-size:.64rem}.event-journal-entry p{color:#e0e8f3;overflow-wrap:anywhere;margin:0;font-size:.72rem;font-weight:450;line-height:1.6}.event-journal-empty{color:var(--text-muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:7px;min-height:112px;padding:12px 16px 18px;display:flex}.event-journal-empty-icon{color:#719bbd;background:#67c6ef0d;border:1px solid #67c6ef21;border-radius:12px;justify-content:center;align-items:center;width:37px;height:37px;margin-bottom:2px;display:flex}.event-journal-empty strong{color:#c0cfe0;font-size:.72rem;font-weight:550}.event-journal-empty>span:last-child{font-size:.63rem;line-height:1.5}.event-journal-empty--loading .event-journal-empty-icon{opacity:.65}.event-journal-status{background:#f4c56c0e;border:1px solid #f4c56c26;border-radius:8px;margin:0 12px 10px;padding:8px 10px;font-size:.65rem;line-height:1.5}.event-journal-status--error{color:#f4c56c}.event-journal-footer{border-top:1px solid #94b3d417;flex-wrap:wrap;flex:none;justify-content:space-between;align-items:center;gap:6px 12px;padding:9px 16px;display:flex}.event-journal-connection{color:#8297ad;align-items:center;gap:6px;font-size:.56rem;display:inline-flex}.event-journal-connection>span{background:#70d9b1;border-radius:50%;width:4px;height:4px}.event-journal-connection--unavailable{color:#e0b86c}.event-journal-connection--unavailable>span{background:#f4c56c}.event-journal-timezone{color:#8297ad;font-variant-numeric:tabular-nums;letter-spacing:.06em;font-size:.55rem}.initial-state-error{color:#fbbf24;z-index:4;background:#070e1af0;border-radius:8px;margin-bottom:8px;padding:10px;font-size:.72rem;position:relative}.app-header{grid-column:1/-1;justify-content:space-between;align-items:center;width:100%;height:48px;padding:0 4px;display:flex;position:relative}.header-top-row{z-index:60;justify-content:space-between;align-items:center;width:100%;display:flex;position:relative}.header-status-container{z-index:50;align-items:center;display:flex;position:absolute;left:46%;transform:translate(-50%)}.header-menu{position:relative}.header-menu-trigger{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;width:34px;height:34px;padding:4px;font-size:1.2rem;transition:background .2s,border-color .2s,color .2s;display:flex}.header-menu-trigger:hover,.header-menu-trigger[aria-expanded=true]{color:var(--text-primary);background:#38bdf817;border-color:#38bdf838}.header-menu-popup{z-index:200;background:#080f1af7;border:1px solid #38bdf833;border-radius:9px;min-width:150px;padding:6px;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 14px 38px #00000080}.header-logout-button{color:#fca5a5;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:9px;width:100%;padding:9px 10px;font-size:.78rem;font-weight:700;transition:background .2s,color .2s;display:flex}.header-logout-button:hover:not(:disabled){color:#fecaca;background:#f871711f}.header-logout-button:disabled{cursor:wait;opacity:.65}.header-logout-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:17px;height:17px}.header-last-message{color:#34d399;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.68rem;font-weight:700;transform:translate(-7vw)}.header-last-message--warning{color:#fbbf24}.header-last-message--critical{color:#f87171}.header-last-message--waiting{color:#60a5fa}.left-panel,.right-panel{flex-direction:column;gap:12px;height:100%;display:flex;overflow:hidden}.floor-list-card{flex-direction:column;flex:auto;min-height:0;display:flex}.response-actions-card{flex:none}.response-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.sprinkler-system-card{flex:auto;min-height:0;overflow-y:auto}.sprinkler-status-section-title{justify-content:space-between;align-items:center;gap:10px;display:flex}.sprinkler-overall-badge{letter-spacing:.08em;border:1px solid;border-radius:999px;flex:none;align-items:center;gap:5px;padding:4px 8px;font-size:.82rem;font-weight:800;display:inline-flex}.sprinkler-overall-badge--normal{color:#34d399;background:#34d39914}.sprinkler-overall-badge--warning{color:#fbbf24;background:#fbbf2414}.sprinkler-overall-badge--critical,.sprinkler-overall-badge--fire{color:#f87171;background:#f8717117}.sprinkler-status-dot{background:#64748b;border-radius:50%;flex:none;width:7px;height:7px;display:inline-block;box-shadow:0 0 8px}.sprinkler-status-dot--normal{color:#34d399;background:#34d399}.sprinkler-status-dot--warning{color:#fbbf24;background:#fbbf24;animation:2s infinite pulse-amber}.sprinkler-status-dot--critical,.sprinkler-status-dot--fire{color:#f87171;background:#f87171;animation:1.5s infinite pulse-red}.sprinkler-status-dot--neutral{color:#60a5fa;background:#60a5fa}.sprinkler-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:8px;display:grid}.sprinkler-metrics--single{grid-template-columns:1fr}.sprinkler-telemetry-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%;margin-bottom:8px;display:grid}.sprinkler-telemetry-row .sprinkler-metrics{margin-bottom:0}.sprinkler-telemetry-row>.sprinkler-metric{width:100%}.sprinkler-global-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.sprinkler-global-status{background:#0f192d7a;border:1px solid #34d39933;border-radius:8px;align-content:center;gap:4px;min-width:0;padding:10px 7px;display:grid}.sprinkler-global-status--warning{background:#fbbf2412;border-color:#fbbf247a}.sprinkler-global-status--critical,.sprinkler-global-status--fire{background:#f8717114;border-color:#f8717194}.sprinkler-global-status-label{color:var(--text-muted);letter-spacing:.035em;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;font-weight:800;overflow:hidden}.sprinkler-global-status-value{color:#34d399;text-overflow:ellipsis;white-space:nowrap;justify-content:center;align-items:center;gap:4px;font-size:.66rem;font-weight:800;display:flex;overflow:hidden}.sprinkler-global-status--warning .sprinkler-global-status-value{color:#fbbf24}.sprinkler-global-status--critical .sprinkler-global-status-value,.sprinkler-global-status--fire .sprinkler-global-status-value{color:#f87171}.sprinkler-metric{text-align:center;background:#0f192d7a;border:1px solid #34d39938;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:76px;padding:7px 5px;display:flex}@keyframes sprinkler-metric-glow-yellow{0%,to{box-shadow:0 0 8px #fbbf244d,inset 0 0 8px #fbbf240d}50%{box-shadow:0 0 22px #fbbf24bf,inset 0 0 14px #fbbf2424}}@keyframes sprinkler-metric-glow-red{0%,to{box-shadow:0 0 9px #f8717159,inset 0 0 8px #f871710f}50%{box-shadow:0 0 24px #f87171d1,inset 0 0 16px #f8717129}}.sprinkler-metric--warning{background:#fbbf241a;border-color:#fbbf24d9;animation:1.6s ease-in-out infinite sprinkler-metric-glow-yellow}.sprinkler-metric--critical{background:#f8717112;border-color:#f871719e}.sprinkler-metric--fire{background:#f8717121;border-color:#f87171e6;animation:1.25s ease-in-out infinite sprinkler-metric-glow-red}.sprinkler-metric--neutral{background:#60a5fa0f;border-color:#60a5fa61}.sprinkler-metric-icon{color:#f8fafc;border:1px solid #94a3b852;border-radius:50%;flex:none;justify-content:center;align-items:center;width:32px;height:32px;font-size:.92rem;display:flex}.sprinkler-metric-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:20px;height:20px}.sprinkler-metric-copy{flex-direction:column;align-items:center;width:100%;min-width:0;display:flex}.sprinkler-metric-copy small{color:#fff;font-size:.87rem;font-weight:700;line-height:1.15}.sprinkler-metric-copy strong{color:#fff;font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;max-width:100%;margin-top:2px;font-size:.72rem;overflow:hidden}.sprinkler-metric--normal .sprinkler-metric-copy strong{color:#34d399}.sprinkler-metric--warning .sprinkler-metric-copy strong{color:#fbbf24}.sprinkler-metric--critical .sprinkler-metric-copy strong,.sprinkler-metric--fire .sprinkler-metric-copy strong{color:#f87171}.sprinkler-metric--neutral .sprinkler-metric-copy strong{color:#60a5fa}.sprinkler-metric-hint{color:#ffffffc7;text-overflow:ellipsis;white-space:nowrap;grid-area:hint;font-size:.56rem;overflow:hidden}.sprinkler-metric--warning .sprinkler-metric-hint,.sprinkler-metric--critical .sprinkler-metric-hint{color:#fff}.sprinkler-operations-grid{grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:8px;display:grid}.sprinkler-operations-grid--pump-only{grid-template-columns:1fr}.sprinkler-operation-module--fire,.sprinkler-operation-module--critical{border-color:#f871718c;box-shadow:inset 0 0 24px #f871710b,0 0 16px #f8717114}.sprinkler-operation-state{color:#34d399;background:#34d39914;border:1px solid #34d39938;border-radius:999px;flex:none;align-items:center;gap:5px;padding:4px 7px;font-size:.68rem;font-weight:800;display:flex}.sprinkler-operation-state--fire,.sprinkler-operation-state--critical{color:#f87171;background:#f8717114;border-color:#f8717159}.sprinkler-operation-body{min-height:146px;display:grid}.sprinkler-operation-body--pump{grid-template-columns:minmax(0,1.45fr) minmax(210px,.55fr)}.sprinkler-operation-body--control{grid-template-columns:minmax(0,.68fr) minmax(0,1.32fr)}.sprinkler-operation-image-wrap{justify-content:center;align-items:center;min-width:0;display:flex;position:relative;overflow:hidden}.sprinkler-operation-image-wrap:after{content:"";pointer-events:none;background:linear-gradient(#0000 45%,#050a14eb);position:absolute;inset:0}.sprinkler-operation-image-wrap--pump,.sprinkler-operation-image-wrap--control{border-right:1px solid #94a3b81a}.sprinkler-operation-image{filter:drop-shadow(0 9px 12px #000000a6);object-fit:contain;width:100%;height:142px;padding:4px 8px 18px}.sprinkler-operation-image-wrap--control .sprinkler-operation-image{height:146px;padding-inline:7px}.sprinkler-operation-module--pump-station .sprinkler-operation-body{min-height:205px}.sprinkler-operation-module--pump-station .sprinkler-operation-image{height:200px;padding:4px 10px 20px}.sprinkler-operation-image-wrap--pump{min-height:205px}.sprinkler-pump-equipment-image{opacity:1;visibility:visible;z-index:1;display:block;position:relative}.sprinkler-operation-module--pump-station .sprinkler-pump-live-list{padding:10px}.sprinkler-operation-module--pump-station .sprinkler-pump-live{padding:9px 10px}.sprinkler-pressure-chart{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) 104px;min-height:145px;margin-top:8px;display:grid}.sprinkler-pressure-chart>.widget-card-header,.sprinkler-pressure-chart>.sprinkler-pressure-chart-canvas{grid-column:1;min-width:0}.sprinkler-pressure-chart>.sprinkler-pressure-current{grid-area:1/2/3}.sprinkler-pressure-return-button{color:#7dd3fc;cursor:pointer;font:inherit;background:#38bdf817;border:1px solid #38bdf857;border-radius:6px;padding:3px 7px;font-size:.62rem;font-weight:750;transition:background .2s,border-color .2s,color .2s}.sprinkler-pressure-return-button:hover:not(:disabled){color:#e0f2fe;background:#38bdf82b;border-color:#7dd3fcb3}.sprinkler-pressure-return-button:disabled{cursor:default;opacity:.38}.sprinkler-pressure-current{text-align:center;background:#34d39914;border-left:1px solid #34d39947;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;padding:10px 7px;display:flex;letter-spacing:normal!important}.sprinkler-pressure-current small{color:#fff;font-size:.83rem;font-weight:750;line-height:1.25}.sprinkler-pressure-current strong{color:#34d399;font-size:1.55rem;font-weight:850;line-height:1}.sprinkler-pressure-current-unit{color:#fff;font-size:.7rem;font-weight:750}.sprinkler-pressure-current--critical{background:#f8717114;border-left-color:#f871717a}.sprinkler-pressure-current--critical strong{color:#f87171}.sprinkler-pressure-chart-canvas{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;height:108px;padding:3px 3px 1px}.sprinkler-pressure-chart-canvas--dragging{cursor:grabbing}.sprinkler-pressure-chart-canvas .recharts-text{fill:var(--text-muted)}.sprinkler-pressure-chart-empty{color:var(--text-muted);justify-content:center;align-items:center;height:100%;font-size:.76rem;display:flex}.sprinkler-control-unit-card{background:radial-gradient(circle at 24% 58%,#f871711a,#0000 34%),radial-gradient(circle at 75% 20%,#38bdf814,#0000 40%),#00000047;flex:auto;min-height:0;padding:10px;overflow:hidden}.sprinkler-control-unit-card .sprinkler-operation-module{flex-direction:column;height:100%;display:flex}.sprinkler-control-unit-card .sprinkler-operation-header{min-height:50px;padding:9px 11px}.sprinkler-control-unit-card .sprinkler-operation-kicker{font-size:.6rem}.sprinkler-control-unit-card .sprinkler-operation-header strong{font-size:.8rem}.sprinkler-control-unit-card .sprinkler-operation-state{padding:5px 8px;font-size:.6rem}.sprinkler-control-unit-card .sprinkler-operation-body{flex:auto;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:220px}.sprinkler-control-unit-card .sprinkler-operation-body--control-cells{grid-template-columns:1fr}.sprinkler-control-unit-card .sprinkler-operation-image-wrap{background:radial-gradient(#f871711a,#0000 58%),linear-gradient(#0f192d33,#050a1480)}.sprinkler-control-unit-card .sprinkler-operation-image{height:100%;min-height:210px;max-height:290px;padding:10px 8px 24px}.sprinkler-control-unit-card .sprinkler-image-label{color:var(--text-secondary);font-size:.55rem;bottom:8px}.sprinkler-control-unit-card .sprinkler-control-grid--diagram{align-content:stretch;gap:8px;padding:10px}.sprinkler-control-unit-card .sprinkler-control-unit{padding:8px}.sprinkler-control-unit-card .sprinkler-control-number{font-size:.74rem}.sprinkler-control-unit-card .sprinkler-control-copy strong{font-size:.69rem}.sprinkler-control-unit-card .sprinkler-control-copy small{font-size:.58rem}.sprinkler-control-unit-card .sprinkler-control-check{width:20px;height:20px;font-size:.62rem}.sprinkler-control-unit-card .sprinkler-inline-valves{padding:8px 10px 10px}.sprinkler-control-unit-card .sprinkler-inline-valves-title{margin-bottom:6px}.sprinkler-control-unit-card .sprinkler-inline-valves-title span,.sprinkler-control-unit-card .sprinkler-inline-valves-title small{font-size:.58rem}.sprinkler-control-unit-card .sprinkler-unit-chip{justify-content:center;padding:7px 6px}.sprinkler-image-label{color:var(--text-muted);letter-spacing:.075em;text-align:center;z-index:1;font-size:.49rem;font-weight:750;position:absolute;bottom:5px;left:8px;right:8px}.sprinkler-pump-live-list{gap:5px;padding:7px;display:grid}.sprinkler-pump-live{background:#070e1a75;border:1px solid #34d39924;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:5px;min-width:0;padding:5px 6px;display:grid}.sprinkler-pump-live--fire{background:#f8717114;border-color:#f8717180}.sprinkler-pump-live--neutral{border-color:#60a5fa38}.sprinkler-pump-index{color:var(--text-muted);font-size:.58rem;font-weight:800}.sprinkler-pump-copy{flex-direction:column;min-width:0;display:flex}.sprinkler-pump-copy strong{color:#e2e8f0;text-overflow:ellipsis;white-space:nowrap;font-size:.67rem;overflow:hidden}.sprinkler-pump-copy small{color:var(--text-muted);margin-top:2px;font-size:.54rem;line-height:1.25}.sprinkler-pump-live--fire .sprinkler-pump-copy small{color:#f87171;font-weight:750}.sprinkler-status-section{border-top:1px solid #94a3b81f;padding-top:8px}.sprinkler-status-section+.sprinkler-status-section{margin-top:8px}.sprinkler-status-section-title{margin-bottom:6px}.sprinkler-status-section-title span{color:#d5dde8;letter-spacing:.055em;font-size:.68rem;font-weight:750}.sprinkler-status-section-title small{color:var(--text-muted);font-size:.54rem}.sprinkler-unit-row{gap:4px;padding-bottom:1px;display:flex;overflow:hidden}.sprinkler-unit-chip{background:#0f192d6b;border:1px solid #34d39933;border-radius:7px;flex:1 1 0;align-items:center;gap:5px;min-width:38px;padding:5px 6px;display:flex}.sprinkler-unit-chip--critical{background:#f8717114;border-color:#f87171a6}.sprinkler-unit-chip span:not(.sprinkler-status-dot){color:#e2e8f0;font-size:.62rem;font-weight:700}.sprinkler-unit-chip small{color:var(--text-muted);margin-left:auto;font-size:.52rem}.sprinkler-unit-chip--critical small{color:#f87171}.sprinkler-empty-state{color:var(--text-muted);font-size:.52rem}.sprinkler-control-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;display:grid}.sprinkler-control-grid--diagram{align-content:center;padding:6px}@keyframes sprinkler-unit-working-pulse{0%,to{border-color:#f871718c;box-shadow:inset 0 0 14px #ef44440f,0 0 #ef444400}50%{border-color:#f87171;box-shadow:inset 0 0 22px #ef444424,0 0 14px #ef444461}}.sprinkler-zone-unit{background:linear-gradient(145deg,#0f192db8,#050a14bd);border:1px solid #60a5fa38;border-radius:9px;grid-template-rows:auto 1fr auto;min-height:0;display:grid;position:relative;overflow:hidden}.sprinkler-zone-unit--working{background:radial-gradient(circle at 50% 56%,#ef44442e,#0000 52%),linear-gradient(145deg,#320f18e0,#12070de6);animation:1.45s ease-in-out infinite sprinkler-unit-working-pulse}.sprinkler-zone-unit-title{border-bottom:1px solid #94a3b81a;justify-content:space-between;align-items:center;padding:5px 6px;display:flex}.sprinkler-zone-unit-title span{color:var(--text-muted);letter-spacing:.04em;font-size:.43rem;font-weight:800}.sprinkler-zone-unit-title strong{color:var(--text-secondary);font-size:.67rem}.sprinkler-zone-unit--working .sprinkler-zone-unit-title span,.sprinkler-zone-unit--working .sprinkler-zone-unit-title strong{color:#fca5a5}.sprinkler-zone-diagram{justify-content:center;align-items:center;min-height:70px;display:flex;position:relative;overflow:hidden}.sprinkler-zone-equipment-image{filter:drop-shadow(0 7px 8px #000000a6);object-fit:contain;width:100%;height:68px;padding:3px 4px;transition:filter .25s,transform .25s}.sprinkler-control-unit-card .sprinkler-zone-equipment-image{height:clamp(82px,12vh,120px)}.sprinkler-zone-unit--working .sprinkler-zone-equipment-image{filter:drop-shadow(0 0 10px #f87171a6);transform:scale(1.04)}.sprinkler-zone-status-bar{color:#86efac;letter-spacing:.04em;background:#34d39914;border-top:1px solid #34d3992e;justify-content:center;align-items:center;gap:5px;padding:5px 4px;font-size:.46rem;font-weight:800;display:flex}.sprinkler-zone-unit--working .sprinkler-zone-status-bar{color:#fecaca;background:#ef444429;border-top-color:#f8717161}.sprinkler-control-side{grid-template-rows:1fr auto;min-width:0;display:grid}.sprinkler-inline-valves{border-top:1px solid #94a3b81a;padding:5px 6px 6px}.sprinkler-inline-valves-title{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.sprinkler-inline-valves-title span{color:var(--text-secondary);letter-spacing:.07em;font-size:.53rem;font-weight:800}.sprinkler-inline-valves-title small{color:#34d399;font-size:.48rem;font-weight:750}.sprinkler-operation-module--critical .sprinkler-inline-valves-title small{color:#f87171}.sprinkler-control-unit{background:#0f192d73;border:1px solid #34d39933;border-radius:8px;align-items:center;gap:5px;min-width:0;padding:5px 6px;display:flex}.sprinkler-control-unit--critical{background:#f8717114;border-color:#f87171a6}.sprinkler-control-number{color:var(--text-secondary);font-size:.68rem;font-weight:800}.sprinkler-control-copy{flex-direction:column;flex:1;min-width:0;display:flex}.sprinkler-control-copy strong{color:#e2e8f0;text-overflow:ellipsis;white-space:nowrap;font-size:.61rem;overflow:hidden}.sprinkler-control-copy small{color:#34d399;margin-top:1px;font-size:.52rem}.sprinkler-control-unit--critical .sprinkler-control-copy small{color:#f87171}.sprinkler-control-check{color:#06121a;background:#34d399;border-radius:50%;flex:none;justify-content:center;align-items:center;width:17px;height:17px;font-size:.54rem;font-weight:900;display:flex}.sprinkler-control-unit--critical .sprinkler-control-check{color:#21090b;background:#f87171}.sprinkler-container{justify-content:center;align-items:center;width:38px;height:35px;display:flex}@media (width<=1700px){.dashboard-layout{grid-template-columns:400px minmax(0,1fr) 520px;gap:12px;padding:8px 12px}.sprinkler-operation-module--pump-station .sprinkler-operation-body,.sprinkler-operation-image-wrap--pump{min-height:155px}.sprinkler-operation-module--pump-station .sprinkler-operation-image{height:153px}.sprinkler-operation-module--pump-station .sprinkler-pump-live-list{padding:7px}.sprinkler-operation-module--pump-station .sprinkler-pump-live{padding:6px 7px}.sprinkler-pressure-chart-canvas{height:64px}}@media (width<=1150px) and (width>=769px){.dashboard-layout{grid-template-columns:minmax(240px,320px) minmax(0,1fr) minmax(360px,440px)}}@media (width<=768px){:root{--dot-offset:11px}.dashboard-layout{background-image:none;flex-direction:column;gap:16px;height:100vh;padding:12px 10px;display:flex;overflow-y:auto}.panel-aside{flex:none;height:auto;display:block;overflow:visible}.main-content{border-radius:var(--radius-md);flex:none;height:55vh;min-height:420px;pointer-events:auto!important;position:relative!important}.app-header{flex-direction:column;align-items:center;gap:8px;height:auto;padding:8px 4px}.header-status-container{justify-content:center;width:100%;margin-top:4px;position:static;transform:none}.header-status-badge{gap:8px!important;padding:6px 14px!important}.header-status-badge-icon{width:30px!important;height:30px!important;font-size:1rem!important}.header-status-badge-value{font-size:.85rem!important}.header-status-badge-detail{font-size:.65rem!important}.left-panel,.right-panel{height:auto!important;overflow:visible!important}.left-panel .glass-card,.right-panel .glass-card{height:auto!important;padding:12px 14px!important;overflow:visible!important}.sprinkler-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.sprinkler-telemetry-row{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.response-actions-grid,.sprinkler-operations-grid,.sprinkler-operation-body--pump,.sprinkler-operation-body--control{grid-template-columns:1fr}.sprinkler-operation-image-wrap--pump,.sprinkler-operation-image-wrap--control{border-bottom:1px solid #94a3b81a;border-right:0}.sprinkler-operation-image{height:190px}.sprinkler-operation-image-wrap--control .sprinkler-operation-image{height:220px}.sprinkler-pressure-chart-canvas{height:150px}.floor-list-container{padding-right:4px;max-height:none!important;overflow-y:visible!important}.sensor-dot{width:17px!important;height:17px!important}.sprinkler-container{height:28px!important}}.alert-card{border-radius:var(--radius-md);background:#0f192d33;border:1px solid #38bdf814;padding:10px 12px;transition:all .2s}.alert-card:hover{background:#0f192d66;border-color:#38bdf833}.recharts-cartesian-grid-horizontal line,.recharts-cartesian-grid-vertical line{stroke:#38bdf80f!important}.stat-value{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:1.5rem;font-weight:700}.floor-row{color:var(--text-secondary);align-items:center;gap:8px;padding:3px 0;font-size:.72rem;display:flex}.floor-row .floor-num{text-align:right;width:24px;color:var(--text-primary);font-weight:600}.sensor-dot{border-radius:50%;width:20px;height:20px;display:inline-block}.sensor-dot-ok{background:var(--accent-green)}.sensor-dot-warn{background:var(--accent-amber)}.sensor-dot-error{background:var(--accent-red)}.sensor-dot-off{background:var(--text-muted);opacity:.55}.floor-list-header{color:var(--text-primary);letter-spacing:.07em;text-align:center;grid-template-columns:52px 1fr 68px;padding:0 4px 5px;font-size:.66rem;font-weight:800;display:grid}.floor-list-container{flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden}.floor-list-container .floor-row{border-bottom:1px solid #fff1;min-height:0;flex:1 1 0!important;padding:0 10px!important}.floor-list-container .floor-row:last-child{border-bottom:0}.floor-list-container .floor-num{text-align:center;width:32px}.floor-list-container .sensor-dot{width:18px;height:18px}.floor-list-container .sprinkler-container{height:20px}.response-actions-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.response-action{background:#0f192d59;border:1px solid #38bdf81f;border-radius:9px;align-items:center;gap:10px;min-height:48px;padding:7px 10px;display:flex}.response-action--active{background:var(--response-color)}@supports (color:color-mix(in lab, red, red)){.response-action--active{background:color-mix(in srgb, var(--response-color) 8%, transparent)}}.response-action--active{border-color:var(--response-color);box-shadow:0 0 14px var(--response-color)}@supports (color:color-mix(in lab, red, red)){.response-action--active{box-shadow:0 0 14px color-mix(in srgb, var(--response-color) 18%, transparent)}}.response-action-icon{background:#0a0f1ed9;border:1px solid #ffffff59;border-radius:50%;flex:0 0 34px;justify-content:center;align-items:center;height:34px;display:flex}.response-action-icon img{filter:brightness(0)invert();object-fit:contain;width:20px;height:20px}.response-action-copy{flex-direction:column;min-width:0;display:flex}.response-action-copy strong{color:#e2e8f0;font-size:.84rem}.response-action-copy small{color:var(--response-color,var(--text-secondary));margin-top:2px;font-size:.75rem;font-weight:750}.sprinkler-operations-grid--combined{grid-template-columns:1fr}.sprinkler-combined-equipment{flex-direction:column;min-height:0;display:flex}.sprinkler-pump-stage{background:radial-gradient(#38bdf81a,#0000 65%);border-bottom:1px solid #94a3b81f;justify-content:center;align-items:center;min-width:0;min-height:320px;padding:8px;display:flex;position:relative;overflow:visible}.sprinkler-pump-layout{grid-template-columns:34% 66%;align-items:stretch;width:100%;max-width:560px;display:grid;position:relative}.sprinkler-pump-diagram{aspect-ratio:1449/1086;grid-column:2;width:92%;margin-bottom:10%;margin-left:-5%;line-height:normal;position:relative}.sprinkler-pump-stage .sprinkler-pump-equipment-image{filter:drop-shadow(0 12px 14px #000000b8);object-fit:contain;width:100%;height:auto;padding:0;display:block}.sprinkler-pump-callout-lines{fill:none;pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.sprinkler-pump-callout-line{fill:none;stroke:url(#sprinkler-callout-flow);stroke-linecap:round;stroke-width:1.5px;vector-effect:non-scaling-stroke}.sprinkler-pump-callout-line circle{fill:#4ade80;stroke:none}.sprinkler-pump-callout-list{z-index:3;position:absolute;inset:0 66% 0 0}.sprinkler-pump-callout{pointer-events:auto;background:#050a14eb;border:1px solid #34d39980;border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:6px;padding:8px 9px;display:grid;position:absolute;left:12%;right:6px;transform:translateY(-50%)}.sprinkler-pump-callout--neutral{border-color:#60a5fa94}.sprinkler-pump-callout--critical,.sprinkler-pump-callout--fire{border-color:#f87171c2}.sprinkler-pump-callout-copy{flex-direction:column;min-width:0;display:flex}.sprinkler-pump-callout-copy>span{color:#fff;font-size:.74rem;font-weight:800;line-height:1.2}.sprinkler-pump-callout-copy strong{color:#34d399;margin-top:2px;font-size:.65rem;font-weight:850;line-height:1.25}.sprinkler-pump-callout-copy small{color:#60a5fa;margin-top:2px;font-size:.59rem;font-weight:800}.sprinkler-pump-callout--critical .sprinkler-pump-callout-copy strong,.sprinkler-pump-callout--fire .sprinkler-pump-callout-copy strong,.sprinkler-pump-callout-copy .sprinkler-jokey-runtime--critical{color:#f87171}.sprinkler-equipment-statuses{pointer-events:none;z-index:3;position:absolute;inset:0}.sprinkler-valve-callout{color:#34d399;pointer-events:none;width:0;height:0;position:absolute}.sprinkler-valve-callout--neutral{color:#60a5fa}.sprinkler-valve-callout--critical{color:#f87171}.sprinkler-valve-callout-lines{fill:none;pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.sprinkler-valve-callout-line{fill:none;stroke:#2563eb;stroke-linecap:round;stroke-width:1px;vector-effect:non-scaling-stroke}.sprinkler-valve-callout-card{pointer-events:auto;white-space:nowrap;z-index:3;background:#050a14f7;border:1px solid;border-radius:6px;flex-direction:column;min-width:92px;padding:5px 6px;display:flex;position:absolute}.sprinkler-valve-callout-card>span{color:#fff;font-size:.66rem;font-weight:800}.sprinkler-valve-callout-card strong{color:currentColor;margin-top:2px;font-size:.59rem;font-weight:850}.sprinkler-valve-callout--right .sprinkler-valve-callout-card{top:0;left:28px;transform:translateY(-50%)}.sprinkler-valve-callout--left .sprinkler-valve-callout-card{top:0;right:28px;transform:translateY(-50%)}.sprinkler-valve-callout--down .sprinkler-valve-callout-card{top:29px;left:0;transform:translate(-50%)}.sprinkler-equipment-marker{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#d5dde8;pointer-events:auto;white-space:nowrap;background:#050a14db;border:1px solid #34d3996b;border-radius:6px;grid-template-columns:auto 1fr;align-items:center;gap:4px;padding:4px 5px;display:grid;position:absolute;transform:translate(-50%,-50%)}.sprinkler-equipment-marker-copy{flex-direction:column;gap:1px;min-width:0;display:flex}.sprinkler-equipment-marker-copy>span{color:#d5dde8;font-size:.5rem;font-weight:750}.sprinkler-equipment-marker-copy strong{color:#34d399;font-size:.43rem;font-weight:850}.sprinkler-equipment-marker-copy small{color:#60a5fa;font-size:.39rem;font-style:normal;font-weight:800}.sprinkler-equipment-marker-copy .sprinkler-jokey-runtime--critical{color:#f87171}.sprinkler-equipment-marker--pump{grid-template-columns:auto 1fr auto}.sprinkler-pump-mode-icon{color:#34d399;background:#34d3991f;border:1px solid #34d39973;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.sprinkler-pump-mode-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:16px;height:16px}.sprinkler-pump-mode-icon--manual{color:#fbbf24;background:#fbbf241f;border-color:#fbbf2480}.sprinkler-equipment-marker--pump .sprinkler-equipment-marker-copy>span{font-size:.54rem}.sprinkler-equipment-marker--pump .sprinkler-equipment-marker-copy strong{font-size:.46rem}.sprinkler-equipment-marker--fire,.sprinkler-equipment-marker--critical{border-color:#f87171b8}.sprinkler-equipment-marker--fire .sprinkler-equipment-marker-copy strong,.sprinkler-equipment-marker--critical .sprinkler-equipment-marker-copy strong{color:#f87171}.sprinkler-equipment-marker--neutral{border-color:#60a5fa8c}.sprinkler-equipment-marker--neutral .sprinkler-equipment-marker-copy strong{color:#60a5fa}.sprinkler-node-column{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px;display:grid}.sprinkler-node{background:#070e1a94;border:1px solid #34d39933;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:252px;padding:8px 6px;display:flex;overflow:hidden}.sprinkler-node--working{border-color:#f87171b8;box-shadow:inset 0 0 14px #f871711f}.sprinkler-node>img{filter:drop-shadow(0 4px 5px #000000b3);object-fit:contain;width:100px;height:110px}.sprinkler-node-copy{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.sprinkler-node strong{color:#fff;font-size:.7rem}.sprinkler-node small{color:#34d399;align-items:center;gap:5px;font-size:.62rem;font-weight:800;display:flex}.sprinkler-node--working small{color:#f87171}@media (width<=1700px){.sprinkler-pump-stage{min-height:210px;padding:6px}.sprinkler-pump-layout{max-width:460px}.sprinkler-pump-callout{gap:4px;padding:6px 7px;right:6px}.sprinkler-pump-callout-copy>span{font-size:.68rem}.sprinkler-pump-callout-copy strong{font-size:.6rem}.sprinkler-pump-callout-copy small{font-size:.55rem}.sprinkler-valve-callout-card{min-width:86px;padding:5px 6px}.sprinkler-valve-callout-card>span{font-size:.6rem}.sprinkler-valve-callout-card strong{font-size:.54rem}.sprinkler-node{min-height:150px;padding:6px}.sprinkler-node>img{width:100px;max-width:100%;height:100px}.sprinkler-node strong{font-size:.62rem}.sprinkler-node small{font-size:.55rem}.sprinkler-pressure-chart{grid-template-columns:minmax(0,1fr) 90px;min-height:124px}.sprinkler-pressure-chart-canvas{height:88px}.sprinkler-pressure-current strong{font-size:1.3rem}}@media (width<=768px){.sprinkler-pump-stage{min-height:250px}.sprinkler-telemetry-row{grid-template-columns:repeat(2,minmax(0,1fr))}.sprinkler-pump-layout{grid-template-columns:38% 62%}.sprinkler-pump-callout-list{right:62%}.floor-list-container .floor-row{flex:0 0 31px!important}.floor-list-container .sprinkler-container{height:24px}}@media (width<=520px){.sprinkler-node-column{grid-template-columns:repeat(2,minmax(0,1fr))}.sprinkler-pump-callout{right:4px}.sprinkler-pump-callout-copy>span{font-size:.6rem}.sprinkler-pump-callout-copy strong{font-size:.53rem}.sprinkler-pump-mode-icon{width:19px;height:19px}.sprinkler-valve-callout-card{min-width:72px}.sprinkler-valve-callout-card>span{font-size:.47rem}.sprinkler-valve-callout-card strong{font-size:.43rem}}.building-overlay-container{z-index:0;pointer-events:none;background-color:#000;width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.building-image-wrapper{pointer-events:none;width:100%;height:100%;margin-left:-4%;position:relative}.building-overlay-img{object-fit:contain;object-position:center center;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%}.building-overlay-svg{z-index:10;width:100%;height:100%;position:absolute;top:0;left:0}.floor-rect{pointer-events:auto;transition:all .2s}@keyframes pulse-fire-rect{0%{fill-opacity:.15;stroke-opacity:.4}50%{fill-opacity:.35;stroke-opacity:.8}to{fill-opacity:.15;stroke-opacity:.4}}.floor-rect-fire{animation:2s ease-in-out infinite pulse-fire-rect}.building-tooltip{border:1.5px solid var(--border-glow);border-radius:var(--radius-md);z-index:50;pointer-events:none;box-shadow:var(--glow-cyan), 0 8px 32px #00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0f1ef2;min-width:150px;padding:8px 12px;transition:opacity .15s;position:absolute}.building-tooltip-title{color:var(--text-primary);margin-bottom:4px;font-size:.85rem;font-weight:700}.building-tooltip-status{font-size:.75rem;font-weight:500}.fire-badge{z-index:30;border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;background:#ef4444e6;border:1px solid #ef444480;align-items:center;gap:8px;padding:4px 8px;animation:.3s ease-out slide-in-badge;display:flex;position:absolute;box-shadow:0 0 15px #ef444466}@keyframes slide-in-badge{0%{opacity:0;transform:translate(-90%,-50%)}to{opacity:1;transform:translate(-100%,-50%)}}.fire-badge-dot{background:#fff;border-radius:50%;width:6px;height:6px;animation:1.5s infinite ping-white}@keyframes ping-white{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(2.5)}to{opacity:0;transform:scale(1)}}.fire-badge-content{color:#fff;white-space:nowrap;align-items:center;gap:6px;font-size:.72rem;font-weight:700;display:flex}.fire-glow-dot{z-index:25;pointer-events:none;background:#ef4444;border-radius:50%;width:12px;height:12px;animation:1.5s infinite pulse-glow;position:absolute;box-shadow:0 0 20px 8px #ef4444}@keyframes pulse-glow{0%{opacity:.7;transform:translate(-50%,-50%)scale(.8)}50%{opacity:1;transform:translate(-50%,-50%)scale(1.2)}to{opacity:.7;transform:translate(-50%,-50%)scale(.8)}}.login-page{background:radial-gradient(circle at 50% 18%,#38bdf821,#0000 34%),linear-gradient(145deg,#080d16 0%,#111a28 54%,#070b12 100%);justify-content:center;align-items:center;height:100vh;padding:24px;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";pointer-events:none;background-image:linear-gradient(#38bdf809 1px,#0000 1px),linear-gradient(90deg,#38bdf809 1px,#0000 1px);background-size:42px 42px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 88%);mask-image:linear-gradient(#000,#0000 88%)}.login-card{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);z-index:1;background:#080f1adb;border:1px solid #38bdf838;border-radius:18px;width:100%;max-width:430px;padding:34px;position:relative;box-shadow:0 28px 80px #00000085,0 0 38px #38bdf814}.login-brand{letter-spacing:.02em;align-items:center;gap:10px;font-size:1.15rem;font-weight:800;display:flex}.login-brand-icon{background:linear-gradient(135deg,#38bdf8,#1e40af);border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.login-heading{margin:28px 0 24px}.login-heading p{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:6px;font-size:.78rem}.login-heading h1{color:#f8fafc;font-size:1.65rem;line-height:1.2}.login-form{gap:18px;display:grid}.login-field{color:var(--text-secondary);gap:8px;font-size:.78rem;font-weight:650;display:grid}.login-field input{color:var(--text-primary);font:inherit;background:#020812b8;border:1px solid #7dd3fc2e;border-radius:9px;outline:none;padding:12px 13px;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.login-field input:focus{border-color:#38bdf8b8;box-shadow:0 0 0 3px #38bdf81c}.login-error{color:#fca5a5;background:#f871711a;border:1px solid #f8717147;border-radius:8px;padding:10px 12px;font-size:.76rem;line-height:1.45}.login-submit{color:#fff;cursor:pointer;font:inherit;background:linear-gradient(135deg,#0ea5e9,#2563eb);border:0;border-radius:9px;min-height:45px;margin-top:2px;padding:11px 16px;font-size:.9rem;font-weight:750;transition:filter .2s,transform .2s}.login-submit:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.login-submit:disabled{cursor:wait;opacity:.68}.header-menu-trigger svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.8px;width:20px;height:20px}.header-menu-popup{border-radius:13px;min-width:264px;padding:8px}.header-menu-identity{border-bottom:1px solid #94b3d41f;flex-direction:column;gap:4px;margin-bottom:7px;padding:9px 10px 12px;display:flex}.header-menu-identity strong{color:#e5edf8;font-size:.84rem}.header-menu-identity span{color:#8297ad;text-overflow:ellipsis;font-size:.7rem;overflow:hidden}.header-navigation-link{color:#c0cee0;border:1px solid #0000;border-radius:8px;align-items:center;gap:11px;padding:10px;text-decoration:none;transition:background .15s,border-color .15s;display:flex}.header-navigation-link:hover,.header-navigation-link.active{color:#f1f7ff;background:#38bdf814;border-color:#38bdf824}.header-navigation-link>span{flex-direction:column;gap:3px;font-size:.8rem;font-weight:650;display:flex}.header-navigation-link small{color:#8297ad;font-size:.62rem;font-weight:450}.header-navigation-link svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:19px;height:19px}.header-menu-divider{background:#94b3d41f;height:1px;margin:7px 2px}.header-menu-error{color:#fca5a5;padding:8px 10px;font-size:.7rem}.header-navigation-link:focus-visible,.header-menu-trigger:focus-visible,.header-logout-button:focus-visible,.monitor-button:focus-visible,.journal-history-link:focus-visible,.journal-settings-link:focus-visible{outline-offset:2px;outline:2px solid #7dd3fc}.event-journal>.widget-card-header{padding:11px 13px 9px}.event-journal-entries{gap:5px;margin:0 3px;padding:0 7px 7px}.event-journal-entry{padding:0;display:block}.event-journal-entry:before{top:10px;bottom:10px}.journal-row-heading{grid-template-columns:24px minmax(0,1fr) 15px;align-items:center;gap:8px;min-height:40px;padding:7px 9px;display:grid;position:relative}.journal-row-toggle{cursor:pointer;z-index:0;background:0 0;border:0;border-radius:9px;width:100%;position:absolute;inset:0}.journal-row-toggle:hover{background:#94b3d40b}.journal-row-toggle:focus-visible{outline-offset:-2px;outline:2px solid #7dd3fc}.journal-row-heading .event-journal-icon{pointer-events:none;border-radius:7px;width:24px;height:24px;position:relative}.journal-row-heading .event-journal-icon svg{width:15px;height:15px}.journal-row-summary{color:#e0e8f3;pointer-events:none;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;line-height:1.5;position:relative;overflow:hidden}.journal-row-chevron{fill:none;pointer-events:none;stroke:#8297ad;stroke-width:1.6px;width:15px;height:15px;transition:transform .2s;position:relative}.event-journal-entry--expanded .journal-row-chevron{transform:rotate(180deg)}.journal-row-details{opacity:0;grid-template-rows:0fr;transition:grid-template-rows .22s,opacity .18s;display:grid}.event-journal-entry--expanded .journal-row-details{opacity:1;grid-template-rows:1fr}.journal-row-details-inner{min-height:0;padding:0 12px;overflow:hidden}.event-journal-entry--expanded .journal-row-details-inner{padding-bottom:12px}.journal-row-details p{margin:7px 0}.journal-row-details .journal-english-description{color:#8fa4bb;font-size:.68rem}.journal-subject-link{color:#8bd7f9;cursor:pointer;font:inherit;line-height:inherit;pointer-events:auto;text-align:left;background:0 0;border:0;border-bottom:1px dotted #7dd3fc99;border-radius:1px;padding:0;display:inline}.journal-subject-link:hover{color:#c5efff;border-bottom-style:solid}.journal-subject-link:focus-visible{outline-offset:2px;outline:2px solid #7dd3fc}.journal-row-tags{flex-wrap:wrap;gap:5px;display:flex}.journal-row-tags span{background:rgba(var(--journal-tint),.09);color:var(--journal-accent);border-radius:4px;padding:3px 5px;font-size:.59rem}.journal-row-device{color:#71879e;overflow-wrap:anywhere;font-size:.6rem}.event-journal-footer{padding:7px 13px}.journal-history-link,.journal-settings-link{color:#8eb6d2;white-space:nowrap;font-size:.65rem;text-decoration:none}.journal-history-link{align-items:center;gap:5px;display:flex}.journal-history-link:hover,.journal-settings-link:hover{color:#bdeaff}.event-journal-empty{min-height:86px;padding:8px 14px}.event-journal-empty-icon{width:27px;height:27px;margin:0}.event-journal-empty-icon svg{width:16px;height:16px}.secondary-page-layout{background:radial-gradient(at 45% 0,#22527f21,#0000 55%),#080f1b;height:100vh;padding:12px 24px 32px;overflow-y:auto}.secondary-page-layout>.app-header{margin-bottom:38px}.secondary-page-content{max-width:1380px;margin:0 auto;padding:0 8px}.secondary-page-heading{justify-content:space-between;align-items:center;gap:20px;margin-bottom:27px;display:flex}.page-eyebrow{color:#6f98ba;letter-spacing:.12em;font-size:.65rem;font-weight:700}.secondary-page-heading h1{color:#eef5ff;letter-spacing:-.02em;margin:9px 0;font-size:1.65rem;font-weight:700}.secondary-page-heading p{color:#8da2b9;margin:0;font-size:.82rem;line-height:1.6}.journal-page-grid,.profile-page-grid{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:22px;display:grid}.profile-page-grid{grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr)}.journal-filter-card,.journal-history-card,.profile-information-card,.profile-preferences-card{background:#0c1727d6;border-color:#94b3d426;padding:20px}.journal-filter-card>.widget-card-header,.journal-history-card>.widget-card-header,.profile-information-card>.widget-card-header,.profile-preferences-card>.widget-card-header{margin-bottom:20px}.journal-filter-card .widget-card-title,.journal-history-card .widget-card-title,.profile-information-card .widget-card-title,.profile-preferences-card .widget-card-title{font-size:.93rem}.monitor-button{color:#c6dff3;cursor:pointer;font:inherit;white-space:nowrap;background:#4d8bbd1a;border:1px solid #7db4e03d;border-radius:8px;min-height:37px;padding:8px 13px;font-size:.75rem;transition:background .15s}.monitor-button:hover:not(:disabled){background:#4d8bbd33}.monitor-button:disabled{cursor:default;opacity:.4}.preference-switch-row{border-bottom:1px solid #94b3d41f;justify-content:space-between;align-items:center;gap:20px;padding:0 0 22px;display:flex}.preference-switch-row>span{flex-direction:column;gap:7px;display:flex}.preference-switch-row strong{color:#e1ebf7;font-size:.82rem;font-weight:600}.preference-switch-row small{color:#8297ad;font-size:.71rem;line-height:1.6}.preference-switch-row input{accent-color:#38bdf8;appearance:none;cursor:pointer;background:#22354a;border:1px solid #94b3d440;border-radius:20px;flex:0 0 38px;width:38px;height:22px;transition:background .2s;position:relative}.preference-switch-row input:before{content:"";background:#96a8bb;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px}.preference-switch-row input:checked{background:#14769e}.preference-switch-row input:checked:before{background:#e4f7ff;transform:translate(16px)}.preference-switch-row input:focus-visible,.journal-type-options input:focus-visible{outline-offset:3px;outline:2px solid #7dd3fc}.preference-switch-row input:disabled{cursor:wait;opacity:.5}.journal-type-options{border:0;min-width:0;margin:22px 0 0;padding:0}.journal-type-options legend{color:#d4e1ef;padding:0;font-size:.8rem;font-weight:650}.journal-type-options>p{color:#748ba4;margin:7px 0 15px;font-size:.68rem;line-height:1.6}.journal-type-options label{color:#bacbdf;cursor:pointer;border-radius:6px;align-items:flex-start;gap:10px;padding:8px 2px;font-size:.74rem;line-height:1.5;display:flex}.journal-type-options input{accent-color:#38bdf8;flex-shrink:0;width:14px;height:14px;margin:2px 0 0}.journal-type-options:disabled label{cursor:wait;opacity:.65}.preference-save-status{color:#68849e;margin:15px 0 0;font-size:.66rem;line-height:1.5}.preference-save-status--error{color:#fbbf24}.journal-query-form{border-bottom:1px solid #94b3d41f;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:flex-end;gap:12px;margin-bottom:17px;padding-bottom:18px;display:grid}.journal-query-form label{color:#8fa7bf;flex-direction:column;gap:7px;font-size:.66rem;display:flex}.journal-query-form input{color:#d5e3f2;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:inherit;background:#040c1899;border:1px solid #94b3d42b;border-radius:7px;min-width:0;min-height:37px;padding:8px 10px;font-size:.73rem}.journal-query-form input:focus{border-color:#399aca;outline:1px solid #399aca}.journal-page-number{color:#748ba4;font-size:.68rem}.event-journal-entries--full{gap:8px;margin:0;padding:0;overflow:visible}.event-journal-entries--full .journal-row-heading{gap:12px;min-height:52px;padding:11px 13px}.event-journal-entries--full .journal-row-summary{font-size:.78rem}.event-journal-entries--full .journal-row-details-inner{padding-left:49px;padding-right:20px}.journal-pagination{border-top:1px solid #94b3d41f;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:18px;display:flex}.journal-pagination>span{color:#71879e;font-size:.68rem}.profile-details{margin:0}.profile-details>div{border-bottom:1px solid #94b3d417;padding:18px 0}.profile-details>div:first-child{padding-top:2px}.profile-details>div:last-child{border:0;padding-bottom:2px}.profile-details dt{color:#748ba4;margin-bottom:9px;font-size:.68rem}.profile-details dd{color:#dce8f6;overflow-wrap:anywhere;margin:0;font-size:.9rem;line-height:1.5}@media (width<=1050px){.journal-page-grid{grid-template-columns:250px minmax(0,1fr);gap:16px}.journal-query-form{grid-template-columns:minmax(0,1fr) auto}.journal-query-form label:first-child{grid-column:1/-1}}@media (width<=768px){.secondary-page-layout{padding:12px 10px 26px}.secondary-page-layout>.app-header{margin-bottom:24px}.secondary-page-content{padding:0}.secondary-page-heading{align-items:flex-start;gap:14px;margin-bottom:20px}.secondary-page-heading h1{font-size:1.35rem}.secondary-page-heading p{font-size:.74rem}.journal-page-grid,.profile-page-grid{grid-template-columns:minmax(0,1fr);gap:16px}.journal-filter-card{order:2}.journal-filter-card,.journal-history-card,.profile-information-card,.profile-preferences-card{padding:16px}.journal-query-form{gap:10px}.journal-row-heading{grid-template-columns:22px minmax(0,1fr) 14px}.event-journal{height:210px;max-height:210px}}@media (prefers-reduced-motion:reduce){.journal-row-details,.journal-row-chevron,.preference-switch-row input,.preference-switch-row input:before{transition:none}}.journal-row-heading{grid-template-columns:24px minmax(0,1fr) auto 15px}.journal-row-time{color:#8199b1;font-variant-numeric:tabular-nums;pointer-events:none;white-space:nowrap;font-size:.59rem;position:relative}.event-journal-entry .journal-row-date{color:#8199b1;font-size:.6rem}.journal-widget-actions{align-items:center;gap:11px;display:flex}.journal-filter-trigger{color:#8eb6d2;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:4px;align-items:center;gap:3px;padding:2px;font-size:.65rem;display:flex}.journal-filter-trigger svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.5px;width:15px;height:15px}.journal-filter-trigger:hover,.journal-filter-trigger[aria-expanded=true]{color:#c5efff}.journal-filter-trigger:focus-visible{outline-offset:2px;outline:2px solid #7dd3fc}.journal-filter-popover{z-index:500;background:#0d192a;border:1px solid #7db4e040;border-radius:12px;width:300px;max-height:min(70vh,600px);padding:16px;position:fixed;overflow-y:auto;box-shadow:0 16px 48px #00000080}.journal-filter-popover-heading{justify-content:space-between;align-items:center;display:flex}.journal-filter-popover-heading strong{color:#dce8f6;font-size:.8rem}.journal-filter-popover-heading button{color:#8297ad;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:2px 5px;font-size:1.25rem;line-height:1}.journal-filter-popover .journal-type-options{margin-top:17px}.journal-filter-popover .journal-type-options legend{font-size:.72rem}.journal-filter-popover .journal-type-options label{padding:7px 1px;font-size:.69rem}@media (width<=768px){.header-top-row{gap:8px}.header-top-row>div:first-child{flex:none}.header-top-row>div:last-child{flex:auto;justify-content:flex-end;min-width:0}.header-last-message{text-overflow:ellipsis;max-width:155px;font-size:.54rem;overflow:hidden}.header-connection-indicator{display:none!important}}@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}@property --tw-ease{syntax:"*";inherits:false}.historical-floor-banner{color:#c0d8eb;background:#38bdf812;border-bottom:1px solid #38bdf829;flex-wrap:wrap;flex:none;align-items:center;gap:7px 16px;padding:10px 24px;font-size:.73rem;line-height:1.5;display:flex}.historical-floor-banner strong{color:#7dd3fc}.historical-floor-banner time{color:#e2e8f0;font-variant-numeric:tabular-nums}.historical-floor-banner p{color:#94a3b8;flex-basis:100%;margin:0;font-size:.67rem}.historical-floor-banner--error{color:#fca5a5;background:#f8717112}.historical-floor-banner button{color:inherit;cursor:pointer;font:inherit;background:#ffffff0f;border:1px solid #94a3b84d;border-radius:6px;padding:5px 9px}.historical-floor-readings{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:9px;width:620px;max-width:100%;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.historical-floor-readings li{color:#cbd5e1;background:#94a3b80d;border:1px solid #94a3b826;border-radius:8px;padding:12px;font-size:.76rem;line-height:1.5}.historical-floor-readings li[data-status=fire]{color:#fca5a5;border-color:#f87171}.historical-floor-readings li[data-status=warning]{color:#fde68a;border-color:#fbbf24}.historical-floor-readings li[data-status=normal]{color:#6ee7b7;border-color:#34d399}.historical-floor-readings small{margin-top:5px;font-size:.67rem;display:block}.historical-change-legend{color:#a7e5ff;align-items:center;gap:8px;display:inline-flex}.historical-change-legend i{border:2px solid #38bdf8;border-radius:50%;width:15px;height:15px;display:inline-block}.historical-sensor-change-ring{pointer-events:none;border:2px solid #38bdf8;border-radius:50%;position:absolute;inset:-10px;box-shadow:0 0 0 3px #0a0e17cc,0 0 15px #38bdf8a6}.historical-floor-readings li[data-sensor-changed=true]{box-shadow:0 0 0 2px #38bdf8}.historical-floor-readings li[data-status=unknown]{background:repeating-linear-gradient(135deg,#64748b0f,#64748b0f 5px,#0000 5px 10px);border-style:dashed}.historical-floor-readings strong{font-size:.76rem;font-weight:600}.historical-reading-changed{color:#a7e5ff;background:#38bdf81f;border:1px solid #38bdf859;border-radius:4px;margin-left:8px;padding:1px 5px;font-size:.58rem;display:inline-block}@media (width<=600px){.historical-floor-banner{padding:9px 12px}.historical-floor-readings{padding:0 12px}}.notification-channel-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:24px;display:grid}.notification-channel-card{background:linear-gradient(145deg,#101e31f2,#091321f2);border-color:#8ab4d72e;padding:24px}.notification-channel-card>.widget-card-header{border-bottom:1px solid #8ab4d71f;margin-bottom:22px;padding-bottom:19px}.notification-channel-card .widget-card-title{letter-spacing:-.015em;font-size:1.02rem}.notification-channel-status{color:#ddbc7f;white-space:nowrap;background:#f5be5a12;border:1px solid #f5be5a2b;border-radius:6px;align-items:center;gap:6px;padding:4px 7px;font-size:.62rem;line-height:1.5;display:inline-flex}.notification-channel-status i{background:currentColor;border-radius:50%;width:4px;height:4px}.notification-channel-status--ready{color:#7cdbb6;background:#49cf9e12;border-color:#49cf9e30}.notification-channel-intro{align-items:center;gap:14px;margin-bottom:20px;display:flex}.notification-channel-icon{color:#89bdf5;background:#5da7f017;border:1px solid #5da7f030;border-radius:12px;flex:0 0 47px;justify-content:center;align-items:center;height:47px;display:flex}.notification-channel-card--telegram .notification-channel-icon{color:#6acdf6;background:#38bdf814;border-color:#38bdf833}.notification-channel-icon svg{width:25px;height:25px}.notification-channel-intro p{color:#9cb1c9;max-width:320px;margin:0;font-size:.76rem;line-height:1.65}.notification-channel-note{color:#b4a58d;background:#f5be5a0b;border:1px solid #f5be5a21;border-radius:8px;margin-bottom:24px;padding:10px 12px;font-size:.68rem;line-height:1.65}.notification-telegram-start{background:#38bdf80b;border:1px solid #38bdf821;border-radius:8px;justify-content:space-between;align-items:center;gap:14px;margin-bottom:24px;padding:10px 12px;display:flex}.notification-telegram-start p{color:#8fa9c3;font-size:.69rem;line-height:1.6}.notification-telegram-start a{color:#7dd3fc;flex-shrink:0;font-size:.69rem;text-decoration:none}.notification-contact-form>label{color:#ccd9e9;margin-bottom:9px;font-size:.73rem;font-weight:550;display:block}.notification-contact-input-row{gap:10px;display:flex}.notification-contact-input-row input{color:#e1edf9;font:inherit;background:#030b17a3;border:1px solid #8ab4d738;border-radius:8px;flex:1;min-width:0;min-height:42px;padding:10px 12px;font-size:.83rem}.notification-contact-input-row input::placeholder{color:#536a83}.notification-contact-input-row input:focus{border-color:#46afe0;outline:1px solid #46afe0}.notification-contact-input-row input[aria-invalid=true]{border-color:#f18a93}.notification-contact-input-row input:disabled{opacity:.55}.notification-add-button{color:#a9dffd;background:#2884ba2b;border-color:#40a2d95c;min-height:42px;padding:9px 15px;font-size:.72rem}.notification-input-hint{color:#6c849f;margin:8px 0 0;font-size:.63rem;line-height:1.6}.notification-contact-error{color:#f4a2aa;margin:9px 0 0;font-size:.69rem;line-height:1.6}.notification-contact-list-heading{border-top:1px solid #8ab4d71f;justify-content:space-between;align-items:center;gap:10px;margin:26px 0 13px;padding-top:21px;display:flex}.notification-contact-list-heading h4{color:#b5c9df;font-size:.72rem;font-weight:600}.notification-contact-list-heading>span{color:#809dbb;font-variant-numeric:tabular-nums;text-align:center;background:#8ab4d714;border:1px solid #8ab4d71f;border-radius:5px;min-width:25px;padding:3px 6px;font-size:.63rem}.notification-contact-list{flex-direction:column;gap:9px;margin:0;padding:0;list-style:none;display:flex}.notification-contact-item{background:#050e1b78;border:1px solid #8ab4d71f;border-radius:9px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px 14px;padding:13px 14px;display:grid}.notification-contact-details{min-width:0}.notification-contact-details>strong{color:#dfebf8;font-variant-numeric:tabular-nums;letter-spacing:.025em;overflow-wrap:anywhere;font-size:.87rem;font-weight:550}.notification-contact-meta{flex-wrap:wrap;align-items:center;gap:5px 9px;margin-top:5px;display:flex}.notification-contact-meta>span{color:#7a94ae;font-size:.6rem}.notification-contact-meta time{color:#526c87;font-size:.56rem}.notification-contact-meta .notification-link-status{color:#b6a485}.notification-contact-meta .notification-link-status--linked{color:#7bd8b5}.notification-remove-button{color:#879db5;cursor:pointer;font:inherit;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:5px;padding:7px;font-size:.64rem;display:inline-flex}.notification-remove-button:hover:not(:disabled){color:#f2a1a8;background:#f8717112;border-color:#f871712b}.notification-remove-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.4px;width:16px;height:16px}.notification-remove-button:disabled{cursor:wait;opacity:.5}.notification-remove-button:focus-visible,.notification-telegram-start a:focus-visible{outline-offset:2px;outline:2px solid #7dd3fc}.notification-removal-error{grid-column:1/-1;margin:0}.notification-empty-state{color:#6f87a1;text-align:center;border:1px dashed #8ab4d721;border-radius:9px;flex-direction:column;justify-content:center;align-items:center;gap:7px;min-height:142px;padding:20px 12px;display:flex}.notification-empty-state svg{color:#496985;width:26px;height:26px;margin-bottom:5px}.notification-empty-state strong{color:#8da6bf;font-size:.71rem;font-weight:500}.notification-empty-state span{font-size:.62rem}.notification-page-error{color:#d3b88b;background:#f5be5a0d;border:1px solid #f5be5a2b;border-radius:10px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;padding:14px 18px;display:flex}.notification-page-error p{font-size:.75rem;line-height:1.5}@media (width<=900px){.notification-channel-grid{gap:18px}.notification-channel-card{padding:19px}.notification-channel-card .widget-card-title{font-size:.9rem}.notification-channel-status{font-size:.56rem}}@media (width<=680px){.notification-channel-grid{grid-template-columns:minmax(0,1fr);gap:18px}.notification-channel-card{padding:18px}.notification-channel-card>.widget-card-header{gap:7px;margin-bottom:18px;padding-bottom:17px}.notification-channel-status{padding:4px 6px;font-size:.55rem}.notification-contact-item{gap:8px;padding:12px 10px}.notification-remove-button span{display:none}.notification-remove-button{min-width:32px;min-height:32px}.notification-page-error{flex-direction:column;align-items:flex-start;gap:10px}}.notification-test{border-top:1px solid #8ab4d71f;grid-column:1/-1;padding-top:12px}.notification-test>label{color:#8fa9c3;margin-bottom:7px;font-size:.66rem;display:block}.notification-test-controls{flex-wrap:wrap;gap:8px;display:flex}.notification-test select{color:#d6e5f5;width:160px;min-width:0;font:inherit;background:#0b1828;border:1px solid #294158;border-radius:7px;flex:1;padding:9px;font-size:.72rem}.notification-test button{white-space:nowrap;font-size:.7rem}.notification-test select:focus-visible{outline-offset:2px;outline:2px solid #7dd3fc}.notification-test select:disabled{opacity:.5}.notification-test-success{color:#7bd8b5;margin-top:9px;font-size:.69rem}@media (width<=420px){.notification-test-controls{flex-direction:column}.notification-test select,.notification-test button{width:100%}}.notification-telegram-qr{background:linear-gradient(135deg,#38bdf813,#07132299);border:1px solid #38bdf833;border-radius:14px;align-items:center;gap:20px;margin:0 0 24px;padding:18px;display:flex}.notification-qr-image{background:#fff;border-radius:10px;flex:0 0 180px;place-items:center;width:180px;height:180px;display:grid;overflow:hidden}.notification-qr-image img{width:100%;height:100%;display:block}.notification-qr-image>span{color:#244158;text-align:center;padding:16px;font-size:.7rem}.notification-qr-description{min-width:0}.notification-qr-eyebrow{color:#6acdf6;letter-spacing:.12em;font-size:.59rem}.notification-qr-description h4{color:#e0edf9;margin:8px 0;font-size:.9rem}.notification-qr-description p{color:#91a9c1;margin:8px 0;font-size:.69rem;line-height:1.7}.notification-qr-username{color:#8ed9ff;overflow-wrap:anywhere;font-size:.73rem}@media (width<=1100px){.notification-telegram-qr{text-align:center;flex-direction:column}.notification-qr-image{flex-basis:210px;width:210px;height:210px}}.notification-qr-card{text-align:center;background:#fff;border-radius:20px;flex:0 0 256px;width:256px;margin-top:24px;padding:28px 8px 16px;position:relative}.notification-qr-avatar{color:#fff;background:linear-gradient(150deg,#b590ff,#6656d9);border:4px solid #fff;border-radius:50%;place-items:center;width:58px;height:58px;font-size:26px;font-weight:700;display:grid;position:absolute;top:-27px;left:50%;transform:translate(-50%)}.notification-qr-card-name{color:#234553;overflow-wrap:anywhere;padding:0 5px;font-size:11px;display:block}.notification-qr-card .notification-qr-image{width:240px;height:240px;margin:0 auto}.notification-loading-state{border:1px solid #8ab4d71f;border-radius:9px;min-height:142px;padding:24px 16px;list-style:none}.notification-loading-bar{background:#8ab4d71f;border-radius:5px;width:65%;height:12px;margin-bottom:16px;display:block}.notification-loading-bar+.notification-loading-bar{width:42%}@media (width<=1100px){.notification-qr-card{flex-basis:auto}}
