.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#555;--xy-background-pattern-lines-color-default:#333;--xy-background-pattern-cross-color-default:#333;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}:root{color:#dee2f0;font-synthesis:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:#0f131d;--surface:#0f131d;--surface-lowest:#090e17;--surface-low:#171c25;--surface-container:#0f172a;--surface-high:#252a34;--surface-variant:#30353f;--outline:#3c4a42;--text:#dee2f0;--muted:#94a3b8;--primary:#4edea3;--primary-strong:#10b981;--primary-ink:#003824;--secondary:#b9c7e0;--secondary-container:#3c4a5e;--danger:#ffb4ab;--danger-dark:#93000a;--tertiary:#ffb3af;--sidebar-width:256px;--topbar-height:64px;background:#0f131d;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--background);min-width:320px;min-height:100%}body{background:var(--background);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{color:inherit}button,select{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}h1,h2,h3,h4,p{margin-top:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#dee2f01f;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#dee2f038}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.glass-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#1e293b66;border:1px solid #ffffff1a;box-shadow:inset 0 1px #ffffff06}.content-page{width:min(1440px,100%);margin:0 auto;padding:28px 32px 64px}.page-heading,.section-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.page-heading{margin-bottom:24px}.page-heading h1{color:var(--text);letter-spacing:-.025em;margin:0;font-size:clamp(26px,2.2vw,34px);line-height:1.2}.section-heading h2{margin:0;font-size:22px}.primary-button,.secondary-button,.danger-button,.icon-button{border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:40px;font-weight:600;transition:all .16s;display:inline-flex}.primary-button{color:var(--primary-ink);background:var(--primary-strong);padding:9px 15px;box-shadow:0 0 18px #4edea324}.primary-button:hover:not(:disabled){background:var(--primary);transform:translateY(-1px)}.secondary-button{color:var(--text);background:var(--surface-high);border-color:#ffffff14;padding:9px 15px}.danger-button{color:var(--danger);background:#93000a2e;border-color:#ffb4ab2e;padding:9px 15px}.icon-button{width:40px;color:var(--muted);background:var(--surface-high);border-color:#ffffff14;padding:0}.icon-button:hover{color:var(--primary);background:var(--surface-variant)}.status-dot{background:var(--primary);border-radius:50%;width:9px;height:9px;box-shadow:0 0 12px #4edea3a6}.boot-screen{min-height:100vh;color:var(--primary);letter-spacing:-.02em;place-items:center;font-size:22px;font-weight:700;display:grid}.placeholder-page{min-height:calc(100vh - var(--topbar-height));place-items:center;display:grid}.empty-state{text-align:center;border-radius:14px;align-content:center;place-items:center;width:100%;min-height:390px;padding:40px;display:grid}.empty-state .empty-icon{width:58px;height:58px;color:var(--primary);background:#4edea31a;border-radius:16px;place-items:center;margin-bottom:15px;display:grid}.empty-state h1,.empty-state h2{margin:0 0 8px}.empty-state p{color:var(--muted);margin:0 0 18px}.custom-video-shell{color:#fff;background:#020408;width:100%;height:100%;position:relative;overflow:hidden}.media-player{aspect-ratio:16/9;height:auto}.custom-video-shell>video{z-index:2;object-fit:contain;opacity:1;background:#020408;width:100%;height:100%;transition:opacity .18s;display:block;position:relative}.live-video-player>video{opacity:0}.live-video-player>video.ready{opacity:1}.live-video-preview{z-index:1;object-fit:contain;opacity:0;background:#020408;width:100%;height:100%;transition:opacity .18s;display:block;position:absolute;inset:0}.live-video-preview.visible{opacity:1}.custom-video-controls{z-index:8;background:linear-gradient(#0000,#000000d1);padding:34px 12px 10px;position:absolute;bottom:0;left:0;right:0}.custom-video-track{cursor:pointer;touch-action:none;background:#fff3;border-radius:999px;outline:none;height:8px;margin:0 2px 8px;position:relative}.custom-video-track:before{content:"";position:absolute;inset:-7px 0}.custom-video-track:focus-visible{box-shadow:0 0 0 3px #4edea33d}.custom-video-progress{z-index:1;border-radius:inherit;pointer-events:none;background:#ffffffc7;position:absolute;inset:0 auto 0 0}.custom-video-marker{z-index:2;pointer-events:none;border-radius:999px;min-width:3px;position:absolute;top:1px;bottom:1px}.custom-video-marker.human{background:var(--primary);box-shadow:0 0 7px #4edea3bf}.custom-video-marker.animal{background:#a5b4fc;box-shadow:0 0 7px #a5b4fcb3}.custom-video-thumb{z-index:3;background:var(--primary);pointer-events:none;border:2px solid #fff;border-radius:50%;width:12px;height:12px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 2px 8px #000}.custom-video-actions{align-items:center;gap:4px;min-height:40px;display:flex}.custom-video-actions button{color:#fff;background:0 0;border:0;border-radius:9px;place-items:center;width:40px;height:40px;padding:0;display:grid}.custom-video-actions button:hover{color:var(--primary);background:#ffffff1a}.custom-video-actions time{color:#ffffffd1;font-variant-numeric:tabular-nums;padding-left:3px;font-size:10px}.custom-video-maximize{margin-left:auto}.custom-video-secondary{margin-left:auto;display:inline-flex}.custom-video-actions.has-secondary-actions .custom-video-maximize{margin-left:0}.custom-live-label{color:#fff;letter-spacing:.08em;align-items:center;gap:6px;font-size:9px;font-weight:800;display:inline-flex}.custom-live-label i{background:#fb7185;border-radius:50%;width:7px;height:7px;box-shadow:0 0 7px #fb7185}.custom-marker-legend{color:#ffffffa8;align-items:center;gap:5px;margin-left:auto;font-size:9px;font-weight:700;display:inline-flex}.custom-marker-legend i{border-radius:50%;width:7px;height:7px;margin-left:5px}.custom-marker-legend .human{background:var(--primary)}.custom-marker-legend .animal{background:#a5b4fc}.custom-video-controls.recorded .custom-video-maximize{margin-left:2px}.custom-video-loading{z-index:4;color:#ffffffb8;background:#02040861;place-items:center;font-size:11px;display:grid;position:absolute;inset:0}.custom-video-loading:before{content:"";border:2px solid #ffffff29;border-top-color:var(--primary);border-radius:50%;width:25px;height:25px;animation:.75s linear infinite video-spin}.custom-video-loading span{margin-top:49px;position:absolute}@keyframes video-spin{to{transform:rotate(360deg)}}.live-video-ptz{z-index:9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#090e17e6;border:1px solid #ffffff1f;border-radius:12px;padding:8px;position:absolute;bottom:62px;right:12px;box-shadow:0 14px 34px #00000057}.custom-video-shell:fullscreen{aspect-ratio:auto;background:#000;width:100vw;height:100dvh}:is(.custom-video-shell:fullscreen>video,.custom-video-shell:fullscreen>img){object-fit:contain;width:100%;height:100%}.custom-video-shell:fullscreen .custom-video-controls{padding-right:max(18px, env(safe-area-inset-right));padding-bottom:max(14px, env(safe-area-inset-bottom));padding-left:max(18px, env(safe-area-inset-left))}.custom-video-shell:fullscreen .live-video-ptz{right:max(18px, env(safe-area-inset-right));bottom:max(72px, calc(env(safe-area-inset-bottom) + 64px))}.media-modal-backdrop{z-index:90;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#02050ad6;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.media-modal{background:#101722;border-radius:16px;width:100%;min-width:0;max-width:940px;max-height:calc(100dvh - 48px);overflow:hidden auto}.media-modal>header{justify-content:space-between;align-items:center;gap:16px;min-height:68px;padding:12px 16px;display:flex}.media-modal-heading{align-items:center;gap:11px;min-width:0;display:flex}.media-modal-heading strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.media-modal-content{background:#020408}.media-modal>footer{min-height:58px;color:var(--muted);justify-content:space-between;align-items:center;gap:14px;padding:8px 17px;font-size:11px;display:flex}.media-modal>footer span{align-items:center;gap:6px;display:flex}.media-live-badge{color:#fda4af;letter-spacing:.07em;background:#fb71851a;border-radius:999px;align-items:center;gap:6px;min-height:29px;padding:0 10px;font-size:9px;font-weight:800;display:inline-flex}.media-live-badge svg{fill:currentColor}.media-live-badge.online svg{animation:1.5s infinite live-pulse}.media-live-badge.offline{color:#cbd5e1;background:#94a3b81a}@media (width<=640px){.custom-video-controls{padding-inline:8px;padding-bottom:7px}.custom-video-actions button{width:44px;height:44px}.custom-marker-legend{font-size:8px}.custom-video-actions time{font-size:9px}.media-modal-backdrop{padding:10px}.media-modal{max-height:calc(100dvh - 20px)}.media-modal>header,.media-modal>footer{min-height:60px;padding:8px 10px}.live-video-ptz{bottom:64px;right:8px}.live-video-ptz .ptz-controls{width:132px}}@media (hover:none),(pointer:coarse){.custom-video-actions button{width:44px;height:44px}}@media (width<=430px){.custom-marker-legend{gap:2px;font-size:0}.custom-marker-legend i{margin-left:3px}}.app-shell{background:var(--background);min-height:100vh}.app-shell:before{content:"";pointer-events:none;background:radial-gradient(circle at 92% -10%,#4edea30e,#0000 34%),radial-gradient(circle at 10% 110%,#ffb3af09,#0000 30%);position:fixed;inset:0}.sidebar{z-index:50;width:var(--sidebar-width);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#0f131dc7;border-right:1px solid #ffffff14;flex-direction:column;padding:18px 16px 16px;display:flex;position:fixed;inset:0 auto 0 0}.logo{align-items:center;gap:11px;min-width:0;padding:0 8px;display:flex}.logo img{object-fit:cover;border:1px solid #4edea338;border-radius:12px;flex:none;width:43px;height:43px}.logo div{min-width:0}.logo strong{color:var(--primary);letter-spacing:-.025em;white-space:nowrap;font-size:17px;display:block}.logo-compact{padding:0;display:none}.logo-compact img{border-radius:9px;width:34px;height:34px}.sidebar-nav{flex-direction:column;gap:7px;margin-top:34px;display:flex}.sidebar-nav button{width:100%;min-height:44px;color:var(--muted);text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:13px;padding:0 14px;font-size:12px;font-weight:600;transition:all .16s;display:flex}.sidebar-nav button:hover{color:var(--text);background:#30353f7a}.sidebar-nav button.active{color:#c6d3eb;background:var(--secondary-container);box-shadow:0 0 18px #4edea321}.sidebar-nav button.active svg{color:var(--primary)}.sidebar-footer{margin-top:auto}.utility-nav{border-top:1px solid #ffffff0f;margin-top:16px;padding-top:14px}.topbar{inset:0 0 auto var(--sidebar-width);z-index:40;height:var(--topbar-height);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f131d9e;border-bottom:1px solid #ffffff0e;justify-content:space-between;align-items:center;gap:20px;padding:0 28px;display:flex;position:fixed}.topbar-title{align-items:center;gap:12px;min-width:0;display:flex}.topbar-title>strong{color:var(--primary);white-space:nowrap;font-size:14px}.topbar-actions{align-items:center;gap:10px;display:flex}.search-field{width:230px;position:relative}.search-field input{width:100%;height:34px;color:var(--text);background:#30353f8c;border:1px solid #0000;border-radius:999px;outline:0;padding:0 37px 0 14px;font-size:12px}.search-field input:focus{border-color:#4edea38c;box-shadow:0 0 0 3px #4edea314}.search-field svg{color:var(--muted);pointer-events:none;position:absolute;top:9px;right:12px}.topbar-icon{width:34px;height:34px;color:var(--muted);background:0 0;border:0;border-radius:9px;place-items:center;padding:0;display:grid}.topbar-icon:hover{color:var(--primary);background:#30353f80}.main-content{min-height:calc(100vh - var(--topbar-height));margin-left:var(--sidebar-width);padding-top:var(--topbar-height);position:relative}.camera-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.camera-card{border-radius:10px;min-width:0;position:relative;overflow:hidden}.video-frame{aspect-ratio:16/9;background:#030609;position:relative;overflow:hidden}.camera-preview-image{object-fit:cover;width:100%;height:100%;transition:filter .18s,transform .2s;display:block;position:absolute;inset:0}.camera-card:hover .camera-preview-image{filter:brightness(.82);transform:scale(1.015)}.video-placeholder{color:var(--muted);place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.video-shade{pointer-events:none;background:linear-gradient(#0000009e,#0000 38% 58%,#000000a8);position:absolute;inset:0}.camera-open-surface{z-index:2;color:#fff;background:0 0;border:0;width:100%;padding:0;position:absolute;inset:0}.camera-open-surface>span{opacity:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap;background:#00000094;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-size:11px;font-weight:700;transition:all .18s;display:inline-flex;position:absolute;top:50%;left:50%;transform:translate(-50%,calc(4px - 50%));box-shadow:0 8px 24px #00000047}.camera-open-surface:hover>span,.camera-open-surface:focus-visible>span{opacity:1;transform:translate(-50%,-50%)}.camera-open-surface:focus-visible{outline:2px solid var(--primary);outline-offset:-3px}.camera-label{z-index:3;pointer-events:none;align-items:center;gap:9px;display:flex;position:absolute;top:12px;left:12px}.camera-label h2{color:#fff;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 6px #000;max-width:250px;margin:0;font-size:14px;font-weight:600;overflow:hidden}.live-pill{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.09em;background:#0000008c;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:5px;min-height:23px;padding:0 8px;font-size:9px;font-weight:800;display:inline-flex}.live-pill svg{fill:currentColor}.live-pill.online svg{color:#fb7185;animation:1.5s infinite live-pulse}.live-pill.offline{color:#cbd5e1}@keyframes live-pulse{50%{opacity:.35}}.stream-controls{z-index:5;opacity:0;gap:7px;transition:all .18s;display:flex;position:absolute;top:11px;right:12px;transform:translateY(-4px)}.camera-card:hover .stream-controls,.stream-controls:focus-within{opacity:1;transform:none}.stream-controls button{color:#fff;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#0000009e;border:1px solid #ffffff2e;border-radius:50%;place-items:center;width:32px;height:32px;padding:0;display:grid}.stream-controls button span{display:none}.stream-controls button:hover:not(:disabled),.stream-controls button.active{color:var(--primary-ink);background:var(--primary)}.camera-viewer-host{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ptz-controls{aspect-ratio:1;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:radial-gradient(circle,#50c9b71a 0 5%,#0000 6%),linear-gradient(90deg,#0000 49.5%,#ffffff0f 50%,#0000 50.5%),linear-gradient(#0000 49.5%,#ffffff0f 50%,#0000 50.5%),#0c1420;border:1px solid #ffffff1f;border-radius:50%;outline:none;width:112px;position:relative;overflow:hidden;box-shadow:inset 0 0 24px #0000006b}.ptz-controls.active{cursor:grabbing}.ptz-controls:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px #50c9b72e,inset 0 0 24px #0000006b}.ptz-controls[aria-disabled=true]{opacity:.45;cursor:not-allowed}.ptz-marker{color:#cbd5e185;pointer-events:none;position:absolute}.ptz-marker-up{top:8px;left:50%;transform:translate(-50%)}.ptz-marker-down{bottom:8px;left:50%;transform:translate(-50%)}.ptz-marker-left{top:50%;left:8px;transform:translateY(-50%)}.ptz-marker-right{top:50%;right:8px;transform:translateY(-50%)}.ptz-stick{z-index:2;aspect-ratio:1;color:#07110f;background:var(--primary);pointer-events:none;will-change:transform;border:1px solid #ffffff29;border-radius:50%;place-items:center;width:42px;display:grid;position:absolute;top:50%;left:50%;box-shadow:0 6px 18px #0000007a,0 0 15px #50c9b740}.simple-page h1{letter-spacing:-.025em;margin:0;font-size:clamp(26px,2.2vw,34px)}.dashboard-counts{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.count-card{border-radius:15px;grid-template-rows:1fr auto;grid-template-columns:1fr auto;align-items:start;min-height:138px;padding:20px;display:grid}.count-card svg{color:var(--secondary)}.count-card.accent svg{color:var(--primary)}.count-card.danger svg{color:var(--danger)}.count-card strong{letter-spacing:-.055em;grid-column:1;align-self:end;font-size:40px;font-weight:400;line-height:1}.count-card span{color:var(--muted);grid-column:2;align-self:end;font-size:11px;font-weight:600}.dashboard-panels{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px;display:grid}.dashboard-events-panel{grid-column:1/-1}.dashboard-event-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px;display:grid}.dashboard-event-grid>button{min-width:0;color:var(--text);background:var(--surface-lowest);text-align:left;border:0;border-radius:10px;padding:0 0 10px;overflow:hidden}.dashboard-event-image{aspect-ratio:16/9;background:var(--surface-high);position:relative;overflow:hidden}.dashboard-event-image img{object-fit:cover;width:100%;height:100%;transition:transform .2s;display:block}.dashboard-event-grid>button:hover img{transform:scale(1.035)}.dashboard-event-image span{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%;place-items:center;width:26px;height:26px;display:grid;position:absolute;bottom:8px;left:8px}.dashboard-event-image span.human{background:#10b981d1}.dashboard-event-image span.animal{background:#6366f1d1}.dashboard-event-grid strong,.dashboard-event-grid small{text-overflow:ellipsis;white-space:nowrap;padding-inline:10px;display:block;overflow:hidden}.dashboard-event-grid strong{padding-top:9px;font-size:12px}.dashboard-event-grid small{color:var(--muted);padding-top:3px;font-size:10px}.dashboard-panel{border-radius:15px;min-width:0;overflow:hidden}.dashboard-panel>header{border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;min-height:58px;padding:0 18px;display:flex}.dashboard-panel h2{margin:0;font-size:14px}.dashboard-panel>header button{color:var(--primary);background:0 0;border:0;align-items:center;gap:6px;padding:7px 0;font-size:11px;font-weight:700;display:inline-flex}.dashboard-list{padding:8px}.dashboard-list>button,.dashboard-camera-row{width:100%;min-height:62px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:10px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 10px;display:grid}.dashboard-list>button:hover{background:#ffffff09}.dashboard-list-icon{width:37px;height:37px;color:var(--muted);background:var(--surface-high);border-radius:10px;place-items:center;display:grid}.dashboard-list-icon.on{color:var(--primary);background:#4edea31a}.dashboard-list strong,.dashboard-list small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.dashboard-list strong{margin-bottom:4px;font-size:12px}.dashboard-list small{color:var(--muted);font-size:10px}.dashboard-list button>i{background:#64748b;border-radius:50%;width:7px;height:7px}.dashboard-list button>i.online{background:var(--primary);box-shadow:0 0 9px #4edea380}.dashboard-camera-row>svg{color:#64748b}.dashboard-camera-row>svg.camera-enabled{color:var(--primary)}.managed-device-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.managed-device{border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;min-height:104px;padding:10px 12px 10px 10px;transition:border-color .16s,background .16s;display:grid}.managed-device.is-on{background:#4edea30e;border-color:#4edea352}.managed-device-icon{width:46px;height:46px;color:var(--primary);background:#4edea31a;border-radius:13px;place-items:center;display:grid}.device-card-main{min-width:0;min-height:82px;color:inherit;text-align:left;background:0 0;border:0;border-radius:11px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:15px;padding:8px;display:grid}.device-card-main:hover{background:#ffffff09}.device-card-main>svg{color:var(--muted)}.managed-device-copy{min-width:0}.managed-device-copy strong,.managed-device-copy small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.managed-device-copy strong{margin-bottom:5px;font-size:15px}.managed-device-copy small{color:var(--muted);font-size:11px}.device-card-actions{align-items:center;gap:8px;display:flex}.device-availability{background:#64748b;border-radius:50%;width:7px;height:7px}.device-availability.online{background:var(--primary);box-shadow:0 0 9px #4edea38c}.power-button,.back-button{width:36px;height:36px;color:var(--muted);background:var(--surface-high);border:0;border-radius:10px;place-items:center;padding:0;display:grid}.power-button.on{color:var(--primary-ink);background:var(--primary)}.device-dialog{background:#0f172af7;border-radius:16px;width:min(680px,100%);max-height:calc(100vh - 48px);padding:25px;overflow:auto;box-shadow:0 30px 100px #000}.dialog-title-row{align-items:center;gap:8px;display:flex}.dialog-title-row h2{margin:0}.back-button{background:0 0;margin-left:-7px}.device-type-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px;display:grid}.device-type-grid.protocol-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.device-type-button{min-height:145px;color:var(--muted);background:#1e293b61;border:1px solid #ffffff1a;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:18px;display:flex}.device-type-button:hover{color:var(--primary);background:#4edea30f;border-color:#4edea361}.device-type-button strong{color:var(--text);font-size:14px}.discovery-bar{justify-content:flex-end;margin-top:24px;display:flex}.discovered-list{flex-direction:column;gap:8px;max-height:230px;margin-top:14px;display:flex;overflow:auto}.discovered-list button{min-height:58px;color:var(--text);background:var(--surface-low);text-align:left;border:1px solid #ffffff14;border-radius:10px;justify-content:space-between;align-items:center;gap:14px;padding:10px 13px;display:flex}.discovered-list button.selected{color:var(--primary);border-color:#4edea373}.discovered-list strong,.discovered-list small{display:block}.discovered-list strong{margin-bottom:4px;font-size:12px}.discovered-list small{color:var(--muted);font-size:10px}.device-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:18px;display:grid}.device-form-grid .input-field+.input-field{margin-top:0}.device-details-dialog{background:#0f172afa;border-radius:18px;width:min(880px,100%);max-height:calc(100vh - 48px);padding:25px;overflow:auto;box-shadow:0 30px 100px #000}.device-details-head>div:first-child{align-items:center;gap:13px;display:flex}.device-details-head h2{margin:0 0 5px}.details-status{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:flex}.details-status:before{content:"";background:#64748b;border-radius:50%;width:7px;height:7px}.details-status.online:before{background:var(--primary);box-shadow:0 0 9px #4edea38c}.device-details-body{grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);gap:16px;margin-top:24px;display:grid}.device-control-panel,.device-info-panel{background:#090e177a;border:1px solid #ffffff14;border-radius:14px;min-width:0;padding:18px}.details-power{width:100%;min-height:58px;color:var(--muted);background:var(--surface-high);border:1px solid #ffffff17;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:0 18px;font-weight:700;display:flex}.details-power.on{color:var(--primary-ink);background:var(--primary);border-color:#0000;box-shadow:0 0 28px #4edea324}.device-control{margin-top:22px}.device-control>div:first-child{justify-content:space-between;align-items:center;gap:10px;margin-bottom:11px;display:flex}.device-control strong{font-size:12px}.device-control>div:first-child>span{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.control-slider{width:100%;height:5px;accent-color:var(--primary);display:block}.temperature-slider{accent-color:#fbbf24}.color-controls{align-items:center;gap:13px;display:flex}.color-picker{cursor:pointer;border:3px solid #fffc;border-radius:50%;flex:none;width:48px;height:48px;display:block;overflow:hidden;box-shadow:0 0 18px #ffffff1f}.color-picker input{opacity:0;cursor:pointer;width:60px;height:60px}.color-presets{flex-wrap:wrap;gap:8px;display:flex}.color-presets button{border:2px solid #ffffff73;border-radius:50%;width:28px;height:28px;padding:0;box-shadow:0 4px 10px #00000038}.device-info-panel h3{margin:0 0 9px;font-size:13px}.device-info-row{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:16px;min-height:45px;padding:10px 0;display:flex}.device-info-row:last-child{border-bottom:0}.device-info-row span{color:var(--muted);font-size:10px}.device-info-row strong{overflow-wrap:anywhere;text-align:right;max-width:65%;font-size:11px;font-weight:600}.events-heading{align-items:flex-end}.event-filters{background:var(--surface-lowest);border:1px solid #ffffff14;border-radius:11px;gap:3px;padding:4px;display:flex}.event-filters button{min-height:34px;color:var(--muted);background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-size:11px;font-weight:600;display:inline-flex}.event-filters button:hover{color:var(--text)}.event-filters button.active{color:var(--primary-ink);background:var(--primary)}.event-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;display:grid}.event-card{border-radius:13px;min-width:0;overflow:hidden}.event-card>button{width:100%;color:var(--text);text-align:left;background:0 0;border:0;padding:0;display:block}.event-preview{aspect-ratio:16/9;color:var(--muted);background:#05080e;place-items:center;display:grid;position:relative;overflow:hidden}.event-preview:after{content:"";pointer-events:none;background:linear-gradient(#00000061,#0000 40%,#0000005c);position:absolute;inset:0}.event-preview img{object-fit:cover;width:100%;height:100%;transition:transform .2s,filter .2s;display:block}.event-card:hover .event-preview img{filter:brightness(.88);transform:scale(1.025)}.event-type,.event-live,.event-open{z-index:2;position:absolute}.event-type{color:#fff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080d16a8;border:1px solid #ffffff24;border-radius:999px;align-items:center;gap:6px;min-height:26px;padding:0 9px;font-size:10px;font-weight:700;display:inline-flex;top:10px;left:10px}.event-card.human .event-type svg{color:var(--primary)}.event-card.animal .event-type svg{color:#a5b4fc}.event-live{color:#fda4af;letter-spacing:.08em;text-shadow:0 1px 4px #000;font-size:9px;font-weight:800;top:11px;right:10px}.event-open{color:#fff;opacity:0;background:#0000008c;border-radius:50%;place-items:center;width:32px;height:32px;transition:all .18s;display:grid;bottom:10px;right:10px;transform:translateY(3px)}.event-card:hover .event-open,.event-card:focus-within .event-open{opacity:1;transform:none}.event-card-body{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px;min-height:61px;padding:12px 13px;display:grid}.event-card-body strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.event-card-body>span{color:var(--muted);grid-column:1;align-items:center;gap:5px;padding-top:5px;font-size:10px;display:flex}.event-card-body small{color:var(--primary);grid-area:1/2/span 2;font-size:10px;font-weight:700}.event-empty{min-height:330px}.event-modal-type{border-radius:999px;align-items:center;gap:6px;min-height:29px;padding:0 10px;font-size:10px;font-weight:700;display:inline-flex}.event-modal-type.human{color:var(--primary);background:#4edea31a}.event-modal-type.animal{color:#c7d2fe;background:#6366f124}.event-modal-meta{align-items:center;gap:14px;min-width:0;display:flex}.event-delete-error{color:var(--danger)}.event-delete-button{flex:none;min-height:36px;padding-block:7px}.event-media{aspect-ratio:16/9;color:var(--muted);background:#020408;place-items:center;display:grid}.event-media video,.event-media img{object-fit:contain;width:100%;height:100%;display:block}@media (width<=700px){.event-modal-meta{flex-direction:column;align-items:flex-start;gap:4px}.event-delete-button{padding-inline:11px}}.page-automations{min-height:calc(100vh - var(--topbar-height))}.automation-heading>div{gap:9px;display:flex}.automation-page-error{margin:-12px 0 20px}.notification-panel{border-radius:13px;align-items:center;gap:12px;min-height:72px;margin:0 0 18px;padding:13px 15px;display:flex}.notification-panel.active{border-color:#4edea338}.notification-panel-icon{width:42px;height:42px;color:var(--muted);background:#94a3b814;border-radius:11px;flex:none;place-items:center;display:grid}.notification-panel.active .notification-panel-icon{color:var(--primary);background:#4edea317}.notification-panel>div{flex:1;gap:4px;min-width:0;display:grid}.notification-panel strong{font-size:13px}.notification-panel>div>span{color:var(--muted);font-size:11px}.notification-panel.active>div>span{color:var(--primary)}.automation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.automation-card{opacity:.68;border-radius:14px;min-width:0;padding:17px;transition:border-color .16s,opacity .16s}.automation-card.active{opacity:1;border-color:#4edea33d}.automation-card>header{justify-content:space-between;align-items:center;gap:16px;display:flex}.automation-title{align-items:center;gap:9px;min-width:0;display:flex}.automation-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.automation-status{background:#64748b;border-radius:50%;flex:none;width:7px;height:7px}.automation-card.active .automation-status{background:var(--primary);box-shadow:0 0 10px #4edea38c}.automation-card-actions{align-items:center;gap:8px;display:flex}.automation-card-actions .icon-button{width:34px;min-height:34px}.automation-card-body{width:100%;color:var(--text);text-align:left;background:#090e178c;border:0;border-radius:11px;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:11px;margin-top:16px;padding:14px;display:grid}.automation-card-body>span:not(.automation-card-arrow){text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;font-size:12px;font-weight:650;display:flex;overflow:hidden}.automation-card-body svg{color:var(--primary);flex:none}.automation-card-arrow{color:#64748b}.automation-card-condition{color:var(--muted);align-items:center;gap:6px;margin-top:11px;font-size:11px;display:flex}.automation-empty .primary-button{margin-top:16px}.mini-switch{background:var(--surface-variant);border:0;border-radius:999px;width:38px;height:22px;padding:0;position:relative}.mini-switch i{background:var(--muted);border-radius:50%;width:16px;height:16px;transition:all .16s;position:absolute;top:3px;left:3px}.mini-switch.on{background:#4edea34d}.mini-switch.on i{background:var(--primary);left:19px}.automation-backdrop{padding:14px}.blueprint-dialog{background:#0b111b;border:1px solid #ffffff1a;border-radius:17px;grid-template-rows:auto minmax(0,1fr) auto;width:min(1500px,100%);height:min(900px,100vh - 28px);display:grid;overflow:hidden;box-shadow:0 35px 120px #000}.blueprint-head{background:#111925;border-bottom:1px solid #ffffff14;align-items:center;gap:16px;min-height:68px;padding:12px 16px;display:flex}.blueprint-name{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.blueprint-name>svg{color:var(--primary);flex:none}.blueprint-name input{width:min(460px,100%);height:42px;color:var(--text);background:0 0;border:1px solid #0000;border-radius:8px;outline:0;padding:0 12px;font-size:18px;font-weight:700}.blueprint-name input:hover,.blueprint-name input:focus{background:#0b111b;border-color:#ffffff1a}.blueprint-workspace{grid-template-columns:170px minmax(0,1fr);min-height:0;display:grid}.blueprint-tools{background:#0e1621;border-right:1px solid #ffffff14;flex-direction:column;gap:8px;padding:18px 12px;display:flex}.blueprint-tools>strong{color:#7f8ea3;letter-spacing:.08em;text-transform:uppercase;margin:1px 8px 8px;font-size:10px}.blueprint-tools>button{color:#cbd5e1;text-align:left;background:#161f2c;border:1px solid #ffffff12;border-radius:9px;align-items:center;gap:10px;min-height:46px;padding:0 11px;font-size:12px;font-weight:650;display:flex}.blueprint-tools>button:hover:not(:disabled){color:var(--primary);background:#4edea312;border-color:#4edea347}.blueprint-canvas{background:#080d15;min-width:0;min-height:0}.blueprint-canvas .react-flow__edge-path{stroke:#587068;stroke-width:2px}.blueprint-canvas .react-flow__edge.selected .react-flow__edge-path{stroke:var(--primary)}.blueprint-canvas .react-flow__controls{box-shadow:none;border:1px solid #ffffff1a;border-radius:9px;overflow:hidden}.blueprint-canvas .react-flow__controls-button{color:#cbd5e1;fill:currentColor;background:#17202d;border:0;border-bottom:1px solid #ffffff14}.blueprint-footer{background:#111925;border-top:1px solid #ffffff14;align-items:center;gap:9px;min-height:72px;padding:12px 16px;display:flex}.blueprint-footer>div{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.notification-setup{min-height:36px;color:var(--primary);background:#4edea312;border:1px solid #4edea338;border-radius:8px;align-items:center;gap:7px;padding:0 11px;font-size:11px;font-weight:650;display:flex}.blueprint-error{color:var(--danger);font-size:11px}.graph-node{width:270px;color:var(--text);background:#111a27;border:1px solid #2b3747;border-radius:13px;overflow:visible;box-shadow:0 12px 35px #00000047}.react-flow__node.selected .graph-node{border-color:#4edea3ad;box-shadow:0 0 0 2px #4edea31a,0 14px 40px #00000059}.graph-node>header{border-bottom:1px solid #ffffff12;align-items:center;gap:9px;height:46px;padding:0 12px;display:flex}.graph-node>header>span{width:28px;height:28px;color:var(--primary);background:#4edea317;border-radius:8px;place-items:center;display:grid}.graph-node-condition>header>span{color:#fbbf24;background:#fbbf241a}.graph-node-notification>header>span{color:#60a5fa;background:#60a5fa1a}.graph-node>header strong{flex:1;font-size:12px}.graph-node>header button{color:#7f8ea3;background:0 0;border:0;place-items:center;width:27px;height:27px;padding:0;display:grid}.graph-node-body{gap:10px;padding:13px;display:grid;position:relative}.graph-field{color:#8290a3;text-transform:uppercase;gap:5px;font-size:9px;font-weight:700;display:grid}.graph-field input,.graph-field select,.graph-field textarea{resize:none;width:100%;min-height:35px;color:var(--text);text-transform:none;background:#090f18;border:1px solid #ffffff17;border-radius:7px;outline:none;padding:7px 9px;font-size:11px}.graph-field input:focus,.graph-field select:focus,.graph-field textarea:focus{border-color:#4edea373}.category-picker,.command-picker{grid-template-columns:1fr 1fr;gap:6px;display:grid}.category-picker button,.command-picker button{color:#8290a3;background:#0a111b;border:1px solid #ffffff14;border-radius:7px;justify-content:center;align-items:center;gap:6px;min-height:34px;font-size:10px;font-weight:650;display:flex}.category-picker button.selected,.command-picker button.selected{color:var(--primary);background:#4edea314;border-color:#4edea347}.weekday-picker{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.weekday-picker button{aspect-ratio:1;color:#8290a3;background:#0a111b;border:1px solid #ffffff14;border-radius:6px;padding:0;font-size:9px}.weekday-picker button.selected{color:#fbbf24;background:#fbbf241a;border-color:#fbbf2459}.template-hint{color:#65758b;font-size:9px}.graph-handle{background:var(--primary)!important;border:2px solid #0b111b!important;width:12px!important;height:12px!important}.branch-handle-true{background:var(--primary)!important;top:40%!important}.branch-handle-false{background:#94a3b8!important;top:72%!important}.branch-label{color:#8290a3;text-transform:uppercase;font-size:8px;position:absolute;right:8px}.branch-true{color:var(--primary);top:26px}.branch-false{top:54px}@media (width<=700px){.automation-heading{align-items:flex-start}.automation-heading>div{flex-direction:column-reverse}.notification-panel{padding:11px}.notification-panel>button{min-width:92px}.automation-card-body{grid-template-columns:1fr}.automation-card-arrow{display:none}.automation-backdrop{padding:0}.blueprint-dialog{border:0;border-radius:0;width:100%;height:100dvh}.blueprint-head{gap:8px;min-height:60px;padding:8px 10px}.blueprint-name>svg,.blueprint-head .toggle-control{display:none}.blueprint-name input{font-size:15px}.blueprint-workspace{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.blueprint-tools{border-bottom:1px solid #ffffff14;border-right:0;flex-direction:row;padding:8px;overflow-x:auto}.blueprint-tools>strong{display:none}.blueprint-tools>button{justify-content:center;min-width:112px;min-height:40px}.blueprint-footer{min-height:64px;padding:8px}.blueprint-footer>div{z-index:5;pointer-events:none;position:absolute;bottom:68px;left:8px;right:8px}.notification-setup{pointer-events:auto;background:#13261f}.blueprint-footer .danger-button{padding-inline:11px;font-size:0}.blueprint-footer .secondary-button,.blueprint-footer .primary-button{flex:1}}.login-shell{background:var(--surface-lowest);place-items:center;min-height:100vh;padding:24px;display:grid;position:relative;overflow:hidden}.login-glow{filter:blur(100px);pointer-events:none;border-radius:50%;width:620px;height:620px;position:absolute}.login-glow-one{background:#4edea321;top:-330px;right:-170px}.login-glow-two{background:#ffb3af14;bottom:-410px;left:-210px}.login-card{z-index:1;border-radius:18px;width:100%;max-width:440px;padding:30px;position:relative;box-shadow:0 30px 90px #0000006b}.login-card>.logo{padding:0}.login-card>.logo img{width:52px;height:52px}.login-heading{margin:30px 0 24px}.login-heading h1{letter-spacing:-.035em;margin:0 0 8px;font-size:29px}.input-field{color:var(--muted);font-size:11px;font-weight:600;display:block}.input-field+.input-field{margin-top:14px}.input-field>span{margin-bottom:7px;display:block}.input-field>div{position:relative}.input-field>div svg{color:var(--muted);position:absolute;top:12px;left:12px}.input-field input{width:100%;height:42px;color:var(--text);background:#090e17a8;border:1px solid #ffffff1a;border-radius:8px;outline:0;padding:0 12px;font-size:13px}.input-field>div input{padding-left:39px}.input-field input:focus{border-color:#4edea38c;box-shadow:0 0 0 3px #4edea314}.login-button{width:100%;margin-top:22px}.error-box{color:var(--danger);background:#93000a29;border:1px solid #ffb4ab33;border-radius:8px;margin-top:15px;padding:10px 12px;font-size:12px}.modal-backdrop{z-index:70;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#02060ec7;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow:auto}.camera-dialog{background:#0f172af5;border-radius:16px;width:min(900px,100%);max-height:calc(100vh - 48px);padding:25px;overflow:auto;box-shadow:0 30px 100px #000}.dialog-head{justify-content:space-between;align-items:start;gap:18px;display:flex}.dialog-head h2{margin:0 0 6px;font-size:22px}.dialog-head>div>p:last-child{color:var(--muted);margin:0;font-size:12px}.dialog-section{margin-top:24px}.dialog-section h3{color:var(--primary);letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px;font-size:10px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.form-grid-three{grid-template-columns:140px 1fr 1fr}.dialog-section .input-field+.input-field{margin-top:0}.toggle-row{gap:24px;margin-top:22px;display:flex}.toggle-control{color:var(--muted);cursor:pointer;align-items:center;gap:8px;font-size:12px;display:flex}.toggle-control>input{opacity:0;pointer-events:none;position:absolute}.toggle{background:var(--surface-variant);border-radius:999px;flex:none;width:38px;height:22px;transition:all .16s;position:relative}.toggle i{background:var(--muted);border-radius:50%;width:16px;height:16px;transition:all .16s;position:absolute;top:3px;left:3px}.toggle.on{background:#4edea34d}.toggle.on i{background:var(--primary);left:19px}.dialog-actions{border-top:1px solid #ffffff14;align-items:center;gap:9px;margin-top:24px;padding-top:17px;display:flex}.dialog-actions>span{flex:1}@media (width<=1150px){.search-field{width:190px}.camera-grid,.managed-device-grid,.automation-grid{grid-template-columns:1fr}.dashboard-counts,.event-grid,.dashboard-event-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){:root{--sidebar-width:78px}.sidebar{padding-inline:10px}.sidebar>.logo{justify-content:center;padding:0}.sidebar>.logo div,.sidebar-nav span{display:none}.sidebar-nav button{justify-content:center;padding:0}.topbar{padding-inline:18px}.logo-compact{display:flex}.topbar-title>strong{display:none}.topbar-actions{gap:5px}}@media (width<=700px){:root{--sidebar-width:0px;--topbar-height:58px}.app-shell{min-height:100dvh;padding-bottom:calc(69px + env(safe-area-inset-bottom))}.sidebar{z-index:60;width:100%;height:calc(69px + env(safe-area-inset-bottom));padding:8px 10px max(8px, env(safe-area-inset-bottom));border-top:1px solid #ffffff17;border-right:0;display:block;inset:auto 0 0;transform:translateZ(0)}.sidebar>.logo,.sidebar-footer{display:none}.sidebar-nav{grid-template-columns:repeat(5,1fr);gap:5px;height:100%;margin:0;display:grid}.sidebar-nav button{flex-direction:column;justify-content:center;gap:3px;min-height:52px;padding:0 4px;font-size:9px}.sidebar-nav span{display:block}.topbar{padding:0 12px;left:0}.topbar-actions{margin-left:auto}.search-field{display:none}.main-content{margin-left:0}.content-page{padding:22px 14px 42px}.page-heading h1{font-size:26px}.cameras-page.content-page{padding-inline:0}.cameras-page .page-heading{padding-inline:14px}.camera-grid{gap:12px}.camera-card{background:#080d15;border-left:0;border-right:0;border-radius:0;overflow:visible}.video-frame{overflow:hidden}.camera-label h2{max-width:150px;font-size:12px}.stream-controls{opacity:1;background:#0c121d;border-top:1px solid #ffffff12;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:7px;min-height:58px;padding:7px 10px;display:grid;position:static;transform:none}.stream-controls button{width:100%;height:44px;color:var(--text);background:var(--surface-high);-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:9px;justify-content:center;align-items:center;gap:7px;padding:0 8px;font-size:10px;font-weight:700;display:flex}.stream-controls button span{display:inline}.stream-controls button.active{color:var(--primary-ink)}.dashboard-counts,.dashboard-panels{grid-template-columns:1fr}.events-heading{flex-direction:column;align-items:stretch}.event-filters{align-self:flex-start}.event-grid{grid-template-columns:1fr}.managed-device{padding:8px 10px 8px 8px}.device-type-grid,.device-type-grid.protocol-grid{grid-template-columns:1fr}.device-type-button{min-height:100px}.device-form-grid,.form-grid,.form-grid-three{grid-template-columns:1fr}.modal-backdrop{padding:10px}.camera-dialog,.device-dialog,.device-details-dialog,.automation-dialog{max-height:calc(100vh - 20px);padding:19px}.automation-form{grid-template-columns:1fr}.automation-form .input-field:first-child{grid-column:auto}.device-details-body{grid-template-columns:1fr}.toggle-row{flex-direction:column;gap:12px}.dialog-actions{flex-wrap:wrap}.dialog-actions>span{display:none}.dialog-actions>button{flex:1}.dialog-actions .danger-button{flex-basis:100%}}@media (hover:none),(pointer:coarse){.stream-controls{opacity:1;transform:none}}@media (width<=430px){.topbar-actions .topbar-icon:first-of-type{display:none}.camera-label .live-pill{padding-inline:6px}.camera-label h2{max-width:115px}.login-shell{padding:14px}.login-card{padding:23px}.login-heading h1{font-size:26px}.managed-device-icon{width:40px;height:40px}.device-card-main{gap:10px;padding:5px}.device-card-actions{gap:4px}.device-availability{display:none}}
