.archive-video[data-v-d8d83b84]{position:absolute;inset:0}.archive-video video[data-v-d8d83b84]{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;visibility:hidden}.archive-video video.active[data-v-d8d83b84]{visibility:visible}.buffer-state[data-v-d8d83b84]{position:absolute;bottom:12px;left:12px;padding:5px 8px;background:#000b;color:#fff;font-size:11px;pointer-events:none}.button-group[data-v-897eb38f]{display:inline-flex;align-items:stretch;flex-shrink:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius);background:transparent}.button-group[data-v-897eb38f] button{border:0;border-radius:0;box-shadow:none;min-height:36px}.button-group[data-v-897eb38f] button+button{border-left:1px solid var(--border)}.button-group[data-v-897eb38f] button:focus-visible{position:relative;z-index:10}.motion-mark[data-v-b9b59cea]{position:absolute;top:34px;width:10px;height:30px;min-width:10px;padding:0;background:var(--destructive);border:0;z-index:2;cursor:pointer}.nvr-timeline[data-v-b9b59cea]{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:14px 12px}.timeline-heading[data-v-b9b59cea]{display:flex;align-items:center;justify-content:space-between;font-size:12px;gap:15px}.timeline-heading small[data-v-b9b59cea]{font-size:10px;margin-left:15px}.timeline-actions[data-v-b9b59cea]{display:flex;gap:8px;align-items:center}.timeline-actions button[data-v-b9b59cea]{padding:6px 10px}.timeline-actions select[data-v-b9b59cea]{border:0;padding:4px 8px;font-size:11px}.timeline-navigation[data-v-b9b59cea]{display:flex;gap:8px;align-items:stretch;margin-top:18px}.timeline-navigation>button[data-v-b9b59cea]{padding:0 4px;border:0;background:transparent}.time-ruler[data-v-b9b59cea]{position:relative;height:95px;flex:1;overflow:hidden;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:var(--background)}.time-ruler.dragging[data-v-b9b59cea]{cursor:grabbing}.tick[data-v-b9b59cea]{position:absolute;height:100%;border-left:1px solid var(--border)}.tick span[data-v-b9b59cea]{position:absolute;top:7px;left:5px;white-space:nowrap;font:10px var(--font-mono);color:var(--muted-foreground)}.record-track[data-v-b9b59cea]{position:absolute;left:0;right:0;top:40px;height:26px;background:var(--muted)}.record-span[data-v-b9b59cea]{position:absolute;height:100%;background:var(--primary);opacity:.65}.timeline-cursor[data-v-b9b59cea]{position:absolute;top:28px;bottom:5px;width:1px;background:var(--foreground);pointer-events:none}.timeline-cursor span[data-v-b9b59cea]{position:absolute;top:40px;left:7px;font:10px var(--font-mono);background:var(--card);padding:3px 5px}.timeline-cursor[data-v-b9b59cea]:before{content:"";position:absolute;top:-4px;left:-4px;border:4px solid transparent;border-top-color:var(--foreground)}.timeline-cursor.preview[data-v-b9b59cea]{left:50%;background:var(--primary)}.time-hover[data-v-b9b59cea]{position:absolute;right:6px;bottom:4px;color:var(--muted-foreground);font:10px var(--font-mono);pointer-events:none}.timeline-note[data-v-b9b59cea]{display:flex;gap:7px;align-items:center;margin:12px 24px 0;font-size:10px;color:var(--muted-foreground)}.timeline-note i[data-v-b9b59cea]{width:7px;height:7px;background:var(--primary)}.timeline-note span[data-v-b9b59cea]{margin-left:15px}@media(max-width:900px){.timeline-heading small[data-v-b9b59cea]{display:none}.tick:nth-child(2n) span[data-v-b9b59cea]{display:none}}.sidebar[data-v-17b74533]{width:264px;flex-shrink:0;overflow:hidden;background:var(--sidebar);border-right:1px solid var(--sidebar-border);transition:width .24s cubic-bezier(.23,1,.32,1)}.sidebar.collapsed[data-v-17b74533]{width:0;border:0}.sidebar-inner[data-v-17b74533]{width:264px;height:100%;display:flex;flex-direction:column;padding:24px 16px}@media(prefers-reduced-motion:reduce){.sidebar[data-v-17b74533]{transition:none}}@media(max-width:760px){.sidebar[data-v-17b74533]{position:absolute;z-index:12;inset:65px auto 0 0}}:root{--background: #000000;--foreground: #ffffff;--card: #0f0f0f;--card-foreground: #ffffff;--popover: #0f0f0f;--popover-foreground: #ffffff;--primary: #2fe92b;--primary-foreground: #0f0f0f;--secondary: #2a2a2c;--secondary-foreground: #ffffff;--muted: #1b1b1d;--muted-foreground: #bbcbb2;--accent: #1b1b1d;--accent-foreground: #ffffff;--destructive: #ff5102;--destructive-foreground: #ffffff;--border: #26272d;--input: #1b1b1d;--ring: #2fe92b;--chart-1: #2fe92b;--chart-2: #ff9821;--chart-3: #f57733;--chart-4: #ff5102;--chart-5: #6b7367;--sidebar: #000000;--sidebar-foreground: #ffffff;--sidebar-primary: #2fe92b;--sidebar-primary-foreground: #0f0f0f;--sidebar-accent: #1b1b1d;--sidebar-accent-foreground: #ffffff;--sidebar-border: #26272d;--sidebar-ring: #2fe92b;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius: .25rem;--shadow-color: #000000;--shadow-opacity: .08;--shadow-blur: 24px;--shadow-spread: 0px;--shadow-offset-x: 0;--shadow-offset-y: 1px;--letter-spacing: 0em;--spacing: .25rem}.dark{--background: #000000;--foreground: #ffffff;--card: #0f0f0f;--card-foreground: #ffffff;--popover: #0f0f0f;--popover-foreground: #ffffff;--primary: #2fe92b;--primary-foreground: #0f0f0f;--secondary: #2a2a2c;--secondary-foreground: #ffffff;--muted: #1b1b1d;--muted-foreground: #bbcbb2;--accent: #1b1b1d;--accent-foreground: #ffffff;--destructive: #ff5102;--destructive-foreground: #ffffff;--border: #26272d;--input: #1b1b1d;--ring: #2fe92b;--chart-1: #2fe92b;--chart-2: #ff9821;--chart-3: #f57733;--chart-4: #ff5102;--chart-5: #6b7367;--sidebar: #000000;--sidebar-foreground: #ffffff;--sidebar-primary: #2fe92b;--sidebar-primary-foreground: #0f0f0f;--sidebar-accent: #1b1b1d;--sidebar-accent-foreground: #ffffff;--sidebar-border: #26272d;--sidebar-ring: #2fe92b;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--radius: .25rem;--shadow-color: #000000;--shadow-opacity: .08;--shadow-blur: 24px;--shadow-spread: 0px;--shadow-offset-x: 0;--shadow-offset-y: 1px;--letter-spacing: 0em;--spacing: .25rem}*{box-sizing:border-box}body{margin:0;background:var(--background);color:var(--foreground);font:14px var(--font-sans);letter-spacing:var(--letter-spacing);color-scheme:dark}button,input,select{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;background:var(--card);color:var(--foreground);cursor:pointer;transition:background .15s,transform .15s}button:hover{background:var(--secondary)}button:active{transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--ring);outline-offset:3px}button:disabled{opacity:.5;cursor:wait}svg{width:18px;height:18px;stroke-width:1.7;flex-shrink:0}input,select{background:var(--input);color:var(--foreground);border:1px solid var(--border);border-radius:var(--radius);padding:11px 12px;min-width:0}input{width:100%}label{display:flex;flex-direction:column;gap:8px;margin:16px 0;color:var(--muted-foreground);font-size:13px}h1,h2,h3,p{margin-top:0}h1{font-size:27px;font-weight:550;letter-spacing:-.8px;margin-bottom:0}h2{font-size:21px;font-weight:550}h3{font-size:14px;font-weight:550;margin:24px 0 10px}p{line-height:1.6;color:var(--muted-foreground)}small,.hint{font-size:11px;color:var(--muted-foreground)}.primary{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary);font-weight:600}.primary:hover{background:color-mix(in srgb,var(--primary) 85%,white)}.danger{color:var(--destructive)}.icon{width:34px;height:34px;padding:8px;border-color:transparent;background:transparent}.brand{display:flex;align-items:center;gap:10px;font-size:19px;letter-spacing:3px;font-weight:650;height:32px}.brand>svg{color:var(--primary);width:29px;height:29px}.version{font-size:10px;color:var(--muted-foreground);margin-left:auto;letter-spacing:0;border:1px solid var(--border);padding:3px 5px;border-radius:var(--radius)}.app-shell{display:flex;height:100dvh;overflow:hidden}.side-heading{display:flex;align-items:center;justify-content:space-between;margin:44px 4px 18px;font-size:10px;letter-spacing:1.4px;color:var(--muted-foreground)}.side-heading small{margin-left:7px;background:var(--muted);padding:2px 5px}.camera-list{flex:1;overflow:auto}.camera-row{border:1px solid transparent;border-radius:var(--radius);margin-bottom:8px}.camera-row.active{background:var(--sidebar-accent);border-color:var(--sidebar-border)}.camera-select{width:100%;border:0;background:transparent;justify-content:flex-start;text-align:left;padding:14px 12px}.camera-select>svg{color:var(--muted-foreground)}.active .camera-select>svg{color:var(--primary)}.camera-select span{flex:1;min-width:0}.camera-select strong{display:block;font-size:13px;font-weight:500;overflow:hidden;text-overflow:ellipsis}.camera-select small{display:flex;align-items:center;gap:6px;margin-top:7px;font-size:10px}.camera-select b{font-size:10px;font-weight:400;color:var(--muted-foreground)}i.online,.server-state i,.live-tag i{display:inline-block;background:var(--primary);width:5px;height:5px;border-radius:50%}.camera-select i:not(.online){background:var(--destructive);width:5px;height:5px;border-radius:50%}.camera-actions{display:flex;justify-content:flex-end;padding:0 6px 6px}.camera-actions .icon{width:27px;height:25px}.camera-actions svg{width:13px;height:13px}.side-bottom{padding-top:20px}.storage{display:flex;gap:12px;align-items:center;padding:10px 4px}.storage>svg{color:var(--muted-foreground)}.storage small{display:block;font-size:9px;letter-spacing:1px;margin-bottom:7px}.storage strong{font-size:12px;font-weight:500}.storage strong span{color:var(--muted-foreground);font-weight:400}.meter{height:3px;background:var(--secondary);margin:4px 4px 23px}.meter span{display:block;height:100%;background:var(--primary)}.side-button{width:100%;justify-content:flex-start;border:0;background:transparent;padding:12px 8px;font-size:12px}.muted{color:var(--muted-foreground)}main{flex:1;min-width:0;overflow:auto}.topbar{height:66px;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 26px;gap:18px}.breadcrumb{display:flex;gap:14px;align-items:center;font-size:12px;color:var(--muted-foreground)}.breadcrumb svg{width:12px}.breadcrumb strong{font-weight:400;color:var(--foreground)}.server-state{margin-left:auto;font-size:11px;color:var(--muted-foreground);display:flex;gap:8px;align-items:center}.server-state.offline{color:var(--destructive)}.server-state.offline i{background:var(--destructive)}.workspace{padding:26px 30px 0;max-width:2200px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:23px}.eyebrow{font-size:9px;color:var(--muted-foreground);letter-spacing:1.6px;margin-bottom:11px}.button-group button{font-size:12px}.button-group button.selected{background:var(--secondary);color:var(--primary)}.video-stage{position:relative;aspect-ratio:16/9;max-height:calc(100dvh - 295px);min-height:220px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;align-items:center;justify-content:center}.video-stage video{width:100%;height:100%;object-fit:contain;background:#000}.video-stage:fullscreen{max-height:none;border:0;aspect-ratio:auto}.video-tags{position:absolute;top:16px;left:16px;display:flex;gap:6px;pointer-events:none}.video-tags>span{padding:6px 9px;font-size:10px;border-radius:var(--radius);background:#000b;display:flex;align-items:center;gap:6px}.live-tag{color:var(--primary);letter-spacing:1px}.record-tag i{background:var(--destructive);width:5px;height:5px;border-radius:50%}.fullscreen{position:absolute;bottom:14px;right:14px;background:#000a}.video-empty{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;background:#090909}.video-empty>svg{width:36px;height:36px;color:var(--muted-foreground);opacity:.4}.video-empty h3{font-size:16px;margin:20px 0 8px}.ptz{position:absolute;bottom:14px;left:14px;display:grid;grid-template:repeat(3,30px)/repeat(3,30px);background:#000b;border:1px solid #ffffff22;border-radius:50%;padding:7px;gap:0}.ptz button{padding:5px;border:0;background:transparent;touch-action:none}.ptz button:hover{color:var(--primary)}.ptz-up{grid-area:1/2}.ptz-left{grid-area:2/1}.ptz-center{grid-area:2/2}.ptz-center svg{width:10px}.ptz-right{grid-area:2/3}.ptz-down{grid-area:3/2}.controls{display:flex;justify-content:space-between;gap:20px;padding:22px 0}.control-section{display:flex;flex-direction:column;gap:9px}.control-section>small{font-size:9px;letter-spacing:1.2px}.control-section .hint{font-size:10px}.talk-button{font-size:12px;touch-action:none;-webkit-user-select:none;user-select:none;min-height:38px}.talking{background:var(--primary);color:var(--primary-foreground)}.red{color:var(--destructive);fill:var(--destructive)}.text-button{font-size:10px;display:inline;border:0;background:transparent;padding:0 0 0 8px;color:var(--primary)}.statusbar{display:flex;gap:16px;align-items:center;border-top:1px solid var(--border);padding:15px 0;font-size:10px;color:var(--muted-foreground)}.statusbar>span{display:flex;gap:6px;align-items:center}.statusbar>span:last-child{margin-left:auto;font-size:9px;letter-spacing:1px}.statusbar svg{width:12px;height:12px}.notice{display:flex;align-items:center;justify-content:space-between;background:var(--muted);border-left:2px solid var(--destructive);margin-bottom:12px;padding:5px 12px;font-size:12px}.error{color:var(--destructive)}dialog{background:var(--popover);color:var(--popover-foreground);border:1px solid var(--border);border-radius:calc(var(--radius)*2);padding:26px;max-width:570px;width:calc(100% - 32px);max-height:90dvh;box-shadow:0 24px 90px #0009}dialog::backdrop{background:#000b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.modal-header h2{margin:0}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px;padding-top:20px;border-top:1px solid var(--border)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{min-width:0;margin-top:0}.folder-selected{display:flex;align-items:center;gap:10px;background:var(--input);border:1px solid var(--border);padding:12px;color:var(--foreground);overflow-wrap:anywhere}.folder-browser{border:1px solid var(--border);padding:12px;margin:15px 0}.folder-path{font:11px var(--font-mono);padding:6px 0 12px;overflow-wrap:anywhere}.folders{max-height:190px;overflow:auto;margin:8px 0}.folders button{display:flex;width:100%;justify-content:flex-start;border:0;background:transparent;padding:8px}.folders button:hover{background:var(--accent)}.archive-panel{padding:20px 0}.archive-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:22px;font-size:12px}.archive-toolbar input{width:145px;border:0;padding:6px}.archive-toolbar>select{max-width:140px}.archive-toolbar>span{margin-left:auto;font:12px var(--font-mono)}.speed{display:flex;flex-direction:row;align-items:center;margin:0}.speed select{padding:7px}.timeline{height:32px;background:var(--muted);position:relative;cursor:crosshair;overflow:hidden}.segment{position:absolute;top:5px;bottom:5px;background:var(--primary);opacity:.7}.playhead{position:absolute;width:2px;top:0;bottom:0;background:#fff}.hours{display:flex;justify-content:space-between;margin-top:8px}.hours button{border:0;background:transparent;font:10px var(--font-mono);padding:4px;color:var(--muted-foreground)}.hours button:hover{color:var(--primary)}.archive-legend{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--muted-foreground);margin-top:15px}.archive-legend i{width:6px;height:6px;background:var(--primary)}.archive-legend span{margin-left:14px}.archive-legend span:last-child{margin-left:auto}.login-page{min-height:100dvh;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 10%,#2fe92b09,transparent 60%)}.login-card{width:410px;max-width:calc(100% - 32px);border:1px solid var(--border);padding:36px;background:var(--card);border-radius:calc(var(--radius)*2)}.login-card .brand{margin-bottom:46px}.login-card h1{font-size:26px;margin-bottom:12px}.login-card p{font-size:12px}.login-card .wide{width:100%;margin-top:12px;justify-content:space-between}.login-card footer{font-size:9px;display:flex;align-items:center;gap:7px;color:var(--muted-foreground);margin-top:24px}.login-card footer svg{width:13px}@media(max-width:1100px){.workspace{padding:20px 20px 0}.controls{flex-wrap:wrap;gap:15px}.video-stage{max-height:none}.control-section.night{margin-left:auto}.breadcrumb{font-size:11px}.archive-toolbar{flex-wrap:wrap}}@media(max-width:760px){.topbar{padding:0 16px}.server-state{font-size:0}.workspace{padding:18px 14px 0}.page-heading{align-items:flex-start;flex-direction:column}h1{font-size:24px}.controls{gap:20px}.control-section.night{margin-left:0}.video-stage{min-height:190px}.statusbar>span:last-child{display:none}.form-grid{grid-template-columns:1fr}.hours button:nth-child(2n){display:none}.archive-legend{flex-wrap:wrap}.archive-toolbar>span{margin-left:0}.breadcrumb{gap:8px}.login-card{padding:28px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}.brand-logo{width:48px;height:48px;object-fit:contain;filter:invert(1)}.login-card .brand{height:auto;margin-bottom:26px}.login-card .brand-logo{width:64px;height:64px}.archive-transport{display:flex;align-items:center;justify-content:center;gap:20px;margin:0 0 18px}.archive-transport>span{font:12px var(--font-mono);color:var(--muted-foreground)}.sidebar-backdrop,.sidebar-close{display:none}@media(max-width:760px){body{overscroll-behavior-y:none}.app-shell{height:100dvh}main{overscroll-behavior-y:contain}.topbar{position:sticky;top:0;z-index:10;background:var(--background);height:64px;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}.topbar>.icon{width:44px;height:44px}.breadcrumb{min-width:0;flex:1}.breadcrumb strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-state{margin-left:0}.workspace{padding:18px max(12px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.sidebar-backdrop{display:block;position:fixed;inset:64px 0 0;background:#0009;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:11;border:0;border-radius:0}.sidebar-close{display:inline-flex;margin-left:auto}.sidebar-inner .version{display:none}.sidebar-inner{padding-bottom:max(16px,env(safe-area-inset-bottom))!important}.camera-select{min-height:60px}.camera-actions .icon{width:44px;height:40px}.side-heading>.icon{width:44px;height:44px}.side-button{min-height:46px}.side-heading{margin-top:24px}.brand-logo{width:44px;height:44px}.page-heading{gap:18px;margin-bottom:16px}.page-heading .button-group{width:100%}.page-heading .button-group button{flex:1;min-height:44px}.eyebrow{font-size:8px;letter-spacing:1.1px}.video-stage{aspect-ratio:16/9;min-height:0;border-radius:var(--radius);overflow:visible}.video-stage video{border-radius:var(--radius)}.video-tags{top:7px;left:7px;gap:4px}.video-tags>span{font-size:8px;padding:4px 6px}.fullscreen{width:38px;height:38px;right:6px;bottom:6px}.ptz{position:relative;bottom:auto;left:auto;grid-template:repeat(3,40px)/repeat(3,40px);margin:10px auto 0;border-color:var(--border);background:var(--card);padding:3px;flex-shrink:0}.video-stage:has(.ptz){margin-bottom:148px}.video-stage>.ptz{position:absolute;top:calc(100% + 12px);left:calc(50% - 64px);margin:0}.ptz button{min-height:40px;min-width:40px}.video-stage:fullscreen{margin-bottom:0}.video-stage:fullscreen>.ptz{top:auto;bottom:12px;left:12px;background:#000b}.controls{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;padding:20px 0}.control-section{width:100%;gap:10px}.control-section small{font-size:10px}.control-section .button-group,.control-line{width:100%}.control-section .button-group button{flex:1;min-height:46px;padding:10px 8px;font-size:13px}.control-section .hint{font-size:11px;line-height:1.5}.talk-button{width:100%;min-height:50px;font-size:14px}.text-button{min-height:30px;font-size:12px}.archive-toolbar{gap:10px}.archive-toolbar>.button-group{flex:1;min-width:240px}.archive-toolbar>.button-group button{min-width:44px}.archive-toolbar input{flex:1;width:auto;min-width:0;font-size:16px}.archive-toolbar>select{flex:1;max-width:none;min-width:120px}.archive-toolbar>span{display:none}.archive-toolbar>.speed{flex:1}.archive-toolbar>button{min-height:44px}.archive-transport{gap:10px;flex-direction:column;align-items:stretch}.archive-transport>.button-group{width:100%}.archive-transport button{flex:1;padding:8px 6px;min-height:44px}.archive-transport>span{text-align:center}.archive-legend>i,.archive-legend>span:first-of-type{display:none}.archive-legend{font-size:10px}.archive-legend>span:last-child{margin-left:0}.statusbar{font-size:10px;line-height:1.5;flex-wrap:wrap}.notice{font-size:12px;overflow-wrap:anywhere}.notice>.icon{min-width:40px;min-height:40px}dialog{width:calc(100% - 16px);max-height:calc(100dvh - 24px);padding:20px 16px;border-radius:8px}dialog h2{font-size:20px}.modal-header{position:sticky;top:-20px;padding:8px 0;background:var(--popover);z-index:1}.modal-header>.icon{width:44px;height:44px}input,select{font-size:16px;min-height:44px}.modal-actions{position:sticky;bottom:-20px;background:var(--popover);padding:14px 0 4px;gap:10px}.modal-actions>button{flex:1;min-height:46px}.folder-selected{font-size:13px}.folders button{min-height:44px}.login-page{padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);min-height:100dvh}.login-card{padding:26px 22px;max-width:calc(100% - 32px)}.login-card .wide{min-height:48px;font-size:14px}.login-card label{font-size:13px}}@media(max-width:760px)and (orientation:landscape){.video-stage{max-height:none}.page-heading{flex-direction:row;align-items:center}.page-heading>.button-group{width:auto}.page-heading .eyebrow{display:none}.video-stage:has(.ptz){margin-bottom:0}.video-stage>.ptz{top:auto;bottom:10px;left:10px;background:#000b}.controls{grid-template-columns:repeat(2,minmax(0,1fr))}.control-section.night{grid-column:1/-1}}@media(max-width:760px){.timeline-heading{flex-direction:column;align-items:stretch}.timeline-actions{justify-content:space-between}.timeline-actions>button{min-width:44px;min-height:44px}.timeline-actions .button-group{flex:1}.timeline-actions select{flex:1;min-height:44px!important;font-size:14px!important}.timeline-actions .button-group button{min-width:44px!important}.timeline-navigation{gap:2px}.timeline-navigation>button{min-width:24px}.time-ruler{height:110px}.timeline-note{margin-left:0;margin-right:0;flex-wrap:wrap;font-size:10px}.timeline-note span{margin-left:0}.record-track{height:32px}}.camera-settings{position:absolute;right:12px;top:12px;width:44px;height:44px;background:#000c;border:1px solid #ffffff30;z-index:2}.camera-settings:hover{background:var(--card);color:var(--primary)}.video-tags{max-width:calc(100% - 76px);flex-wrap:wrap}@media(max-width:760px){.camera-settings{right:6px;top:6px}}.ptz-position{position:absolute;right:12px;bottom:64px;width:100px;height:56px;border:1px solid #ffffff90;border-radius:3px;background:transparent;pointer-events:none}.ptz-marker{position:absolute;width:8px;height:8px;background:#fff;box-shadow:0 0 3px #000;transform:translate(-50%,-50%);transition:left .2s,top .2s}.ptz-unknown{display:grid;place-items:center;height:100%;color:#fff}@media(max-width:760px){.ptz-position{right:6px;bottom:52px;width:80px;height:44px}}@media(min-width:1101px){.workspace{width:100%;max-width:clamp(960px,calc((100dvh - 295px)*16/9 + 60px),1660px);margin-inline:auto}.video-stage{width:100%;max-height:none}}input.volume-slider{width:100%;padding:0;min-height:44px;accent-color:var(--primary);cursor:pointer}.video-tags{left:50%;transform:translate(-50%);justify-content:center;max-width:calc(100% - 120px)}@media(max-width:760px){.video-tags{top:40px;max-width:calc(100% - 24px)}}.audio-setting{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0 0}.audio-setting strong{font-size:13px;font-weight:500}.audio-setting p{margin:5px 0}.audio-setting input[role=switch]{appearance:none;width:40px;min-width:40px;height:24px;min-height:24px;border-radius:20px;background:var(--muted);position:relative;padding:0;opacity:.55}.audio-setting input[role=switch]:before{content:"";position:absolute;width:16px;height:16px;border-radius:50%;left:3px;top:3px;background:var(--muted-foreground)}.audio-pending{margin:6px 0 22px}.speed-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:4px}.speed-buttons>span{font-size:12px;color:var(--muted-foreground);margin-right:6px}.speed-buttons>button{min-height:36px;padding:6px 9px;font-size:12px}.speed-buttons>button.selected{color:var(--primary);border-color:var(--primary);background:var(--secondary)}@media(max-width:760px){.speed-buttons{width:100%;gap:6px}.speed-buttons>span{width:100%}.speed-buttons>button{min-height:44px;flex:1 0 18%}}.playback-volume{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.playback-volume .icon{width:40px;height:40px;flex-shrink:0}.playback-volume label{margin:0;font-size:12px;white-space:nowrap}.playback-volume input{width:180px;min-width:60px;min-height:40px;padding:0;accent-color:var(--primary);cursor:pointer}.playback-volume output{width:44px;font:12px var(--font-mono);color:var(--muted-foreground)}.playback-volume>span{font-size:11px;color:var(--muted-foreground);margin-left:auto}@media(max-width:760px){.playback-volume{gap:8px;flex-wrap:wrap}.playback-volume input{flex:1;width:90px}.playback-volume>span{width:100%;margin-left:48px}.playback-volume .icon{width:44px;height:44px}}.camera-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;border-bottom:1px solid var(--border);flex-wrap:wrap}.camera-toolbar>.controls{display:contents}.camera-toolbar .control-section.night{margin-left:0}.camera-toolbar>.playback-volume{border:0;padding:0;display:grid;grid-template-columns:36px minmax(80px,120px) 38px;gap:4px 8px;flex-shrink:0}.camera-toolbar .playback-volume label{grid-column:1/-1;grid-row:1;font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted-foreground)}.camera-toolbar .playback-volume .icon{grid-column:1;grid-row:2;width:36px;height:36px}.camera-toolbar .playback-volume input{grid-column:2;grid-row:2;width:100%;min-height:36px}.camera-toolbar .playback-volume output{grid-column:3;grid-row:2}.camera-toolbar .playback-volume>span{grid-column:1/-1;margin:0;font-size:10px}.camera-toolbar .control-section{width:auto}.camera-toolbar .talk-button{white-space:nowrap}@media(max-width:760px){.camera-toolbar{display:grid;grid-template-columns:minmax(0,1fr);gap:18px}.camera-toolbar>.playback-volume{grid-template-columns:44px minmax(80px,1fr) 44px}.camera-toolbar .playback-volume .icon{width:44px;height:44px}.camera-toolbar .playback-volume input{min-height:44px}.camera-toolbar .control-section{width:100%}.camera-toolbar .control-section.night{grid-column:auto}}.app-shell>main{display:flex;flex-direction:column;overflow:hidden;min-height:0}.topbar{flex:0 0 54px;height:54px;position:static}.topbar .eyebrow{margin:0;font-size:9px;white-space:nowrap}.workspace{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;padding-top:14px;padding-bottom:0;margin:0 auto}.page-heading{flex-shrink:0;margin-bottom:12px}.page-heading h1{font-size:24px;margin:0}.workspace>.video-stage{flex:1 1 0;min-height:80px;max-height:none;aspect-ratio:auto;width:100%;margin-bottom:0;overflow:hidden}.camera-toolbar{flex-shrink:0;padding:10px 0;gap:12px}.camera-toolbar .control-section{gap:5px}.statusbar{flex-shrink:0;padding:6px 0;font-size:10px}.archive-panel{flex-shrink:0;padding:8px 0}.archive-toolbar{margin-bottom:8px;gap:8px}.archive-transport{margin-bottom:6px}.archive-legend{margin-top:5px}.notice{flex-shrink:0;margin:4px 0}.video-stage:fullscreen{height:100dvh;max-height:none}.nvr-timeline{padding:8px!important}.time-ruler{height:72px!important}.timeline-navigation{margin-top:8px!important}.timeline-note{margin-top:5px!important}@media(max-width:1100px){.topbar .eyebrow{display:none}.camera-toolbar{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;justify-content:flex-start}.camera-toolbar .control-section{flex-shrink:0}.camera-toolbar .control-section .hint{font-size:10px}.camera-toolbar .talk-button{width:auto}}@media(max-width:760px){.topbar{flex-basis:48px;height:48px}.workspace{padding:8px 10px 0}.page-heading{flex-direction:row;align-items:center;gap:8px;margin-bottom:8px}.page-heading h1{font-size:16px}.page-heading .button-group{width:auto;flex-shrink:0}.page-heading .button-group button{font-size:11px;padding:8px;min-height:40px}.page-heading .button-group svg{width:14px}.camera-toolbar{display:flex;padding:8px 0;gap:18px}.camera-toolbar .control-section{width:auto}.camera-toolbar>.playback-volume{grid-template-columns:36px 90px 38px}.camera-toolbar .control-section .button-group button{font-size:11px;min-height:40px}.camera-toolbar .talk-button{min-height:40px;font-size:12px}.camera-toolbar .control-section .hint{max-width:220px}.video-stage>.ptz{top:auto;bottom:6px;left:6px;grid-template:repeat(3,30px)/repeat(3,30px);padding:2px;background:#000b}.ptz button{min-width:30px;min-height:30px}.archive-toolbar{flex-wrap:nowrap;overflow-x:auto}.archive-toolbar>*{flex-shrink:0}.speed-buttons{width:auto;flex-wrap:nowrap}.speed-buttons>span{width:auto}.speed-buttons>button{flex:none;min-height:40px}.archive-transport{flex-direction:row}.archive-transport>span{display:none}.archive-transport button{min-height:36px}.timeline-note,.archive-legend{display:none}.timeline-navigation{margin-top:4px!important}.time-ruler{height:66px!important}.statusbar{padding:4px 0}}@media(max-height:500px){.topbar{flex-basis:38px;height:38px}.workspace{padding-top:4px}.page-heading{margin-bottom:4px}.page-heading h1{font-size:16px}.camera-toolbar{padding:4px 0}.camera-toolbar .hint,.camera-toolbar .playback-volume>span,.statusbar{display:none}.timeline-heading,.timeline-note{display:none}.archive-panel{padding:4px 0}.time-ruler{height:50px!important}.archive-toolbar{margin-bottom:4px}}.motion-filter{display:flex;align-items:center;gap:8px;font-size:12px;margin:6px 0}.motion-filter input{width:18px;min-height:18px;height:18px;accent-color:var(--primary)}.settings-tabs{display:flex;gap:8px;margin-bottom:18px}.settings-tabs .selected{border-color:var(--primary);color:var(--primary)}
