:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{color:#e6e8eb;background:#0f1115;margin:0}.panel-loading,.panel-error,.panel-empty{text-align:center;padding:2rem}.panel-error{color:#ff6b6b}.login-page{justify-content:center;align-items:center;min-height:100vh;display:flex}.login-form{background:#171a21;border:1px solid #262b36;border-radius:8px;flex-direction:column;gap:.75rem;width:320px;padding:2rem;display:flex}.login-form-logo{align-self:center;height:32px;margin-bottom:.5rem}.login-form label{color:#9aa3b2;flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.login-form input{color:#e6e8eb;background:#0f1115;border:1px solid #333a4a;border-radius:4px;padding:.5rem;font-size:1rem}.login-form button{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:4px;margin-top:.5rem;padding:.6rem;font-weight:600}.login-form button:disabled{opacity:.6;cursor:default}.login-error{color:#ff6b6b;font-size:.85rem}.app{min-height:100vh;display:flex}.app-sidebar{background:#171a21;border-right:1px solid #262b36;flex-direction:column;flex-shrink:0;width:220px;padding:1.25rem 0;display:flex}.app-sidebar-brand{border-bottom:1px solid #262b36;margin-bottom:1rem;padding:0 1.25rem 1.25rem}.app-sidebar-logo{height:28px;display:block}.app-sidebar-nav{flex-direction:column;flex:1;gap:.25rem;padding:0 .75rem;display:flex}.app-sidebar-nav button{text-align:left;color:#9aa3b2;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;padding:.6rem .75rem;font-size:.9rem;display:flex}.app-sidebar-nav button:hover{color:#e6e8eb;background:#1e222c}.app-sidebar-nav button.active{color:#fff;background:#3b82f6}.app-sidebar-user{color:#9aa3b2;border-top:1px solid #262b36;flex-direction:column;gap:.5rem;margin-top:1rem;padding:1rem 1.25rem 0;font-size:.85rem;display:flex}.app-sidebar-user button{color:#e6e8eb;cursor:pointer;background:0 0;border:1px solid #333a4a;border-radius:4px;align-self:flex-start;padding:.3rem .7rem}.app-main{flex:1;min-width:0;padding:1.5rem;overflow-x:auto}.live-grid-controls{align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.live-grid-mode-toggle{gap:.4rem;display:flex}.live-grid-mode-toggle button{color:#d1d5db;cursor:pointer;background:#171a21;border:1px solid #262b36;border-radius:6px;padding:.3rem .7rem}.live-grid-mode-toggle button.active{color:#93c5fd;border-color:#3b82f6}.live-grid{grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:1rem;display:grid}.video-tile{background:#171a21;border:1px solid #262b36;border-radius:8px;overflow:hidden}.video-tile-label{border-bottom:1px solid #262b36;padding:.5rem .75rem;font-size:.9rem;font-weight:600}.video-tile-label-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.video-tile-name{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.45rem;min-width:0;display:flex;overflow:hidden}.video-tile-subtitle{color:#9aa3b2;margin-top:.2rem;font-size:.75rem;font-weight:500}.tile-settings-btn{color:#cbd5e1;cursor:pointer;background:#111827;border:1px solid #374151;border-radius:4px;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;padding:0;display:inline-flex}.tile-settings-btn:hover{color:#93c5fd;border-color:#3b82f6}.tile-settings-btn svg{fill:currentColor;width:14px;height:14px}.video-tile-video{aspect-ratio:16/9;background:#000;width:100%;display:block}.video-tile-snapshot{object-fit:cover}.video-tile-placeholder{aspect-ratio:16/9;color:#6b7280;text-align:center;justify-content:center;align-items:center;padding:1rem;font-size:.85rem;display:flex}.camera-offline{aspect-ratio:16/9;color:#ef4444;background:#0f1115;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;width:100%;display:flex}.camera-offline-disabled{color:#6b7280}.camera-offline-icon{width:34%;min-width:40px;max-width:96px;height:auto}.camera-offline-slash-backing{stroke:#0f1115;stroke-width:4.6px}.camera-offline-text{letter-spacing:.04em;text-transform:uppercase;font-size:.85rem;font-weight:600}.camera-detail-offline{border-radius:8px;position:absolute;inset:0;overflow:hidden}.camera-detail-offline .camera-offline{aspect-ratio:auto;height:100%}.settings-preview .camera-offline{border:1px solid #262b36;border-radius:6px}.video-tile-stage{width:100%;position:relative}.video-reconnecting{color:#fbbf24;letter-spacing:.02em;pointer-events:none;background:#0f1115d9;border-radius:4px;padding:.15rem .5rem;font-size:.75rem;font-weight:600;position:absolute;top:.5rem;left:.5rem}.video-tile-error{color:#ff6b6b;padding:.4rem .75rem;font-size:.8rem}.fleet-table{border-collapse:collapse;background:#171a21;border:1px solid #262b36;border-radius:8px;width:100%;overflow:hidden}.fleet-table th,.fleet-table td{text-align:left;border-bottom:1px solid #262b36;padding:.6rem .9rem;font-size:.9rem}.fleet-table th{color:#9aa3b2;text-transform:uppercase;font-size:.8rem;font-weight:600}.status-badge{border-radius:999px;padding:.15rem .5rem;font-size:.75rem;font-weight:600}.status-badge.status-online{color:#86efac;background:#14532d}.status-badge.status-unreachable{color:#fca5a5;background:#7f1d1d}.status-badge.status-cold_standby,.status-badge.status-never_reported{color:#d1d5db;background:#374151}.video-tile-clickable{cursor:pointer}.camera-detail-header{align-items:baseline;gap:.75rem;margin-bottom:1rem;display:flex}.camera-detail-back{color:#d1d5db;cursor:pointer;background:0 0;border:1px solid #262b36;border-radius:6px;padding:.3rem .7rem}.camera-detail-title{font-size:1.1rem;font-weight:600}.camera-detail-subtitle{color:#9aa3b2;font-size:.8rem}.camera-detail-video-wrap{max-width:960px;margin-bottom:.75rem;position:relative}.camera-detail-video{aspect-ratio:16/9;background:#000;border-radius:8px;width:100%;display:block}.live-badge{color:#fff;letter-spacing:.03em;background:#dc2626;border-radius:4px;padding:.15rem .5rem;font-size:.7rem;font-weight:700}.camera-detail-time-overlay{align-items:center;gap:.45rem;display:inline-flex;position:absolute;top:.6rem;left:.6rem}.camera-time-badge{color:#e5e7eb;letter-spacing:.01em;background:#111827e6;border:1px solid #9ca3af59;border-radius:4px;padding:.2rem .5rem;font-size:.72rem;font-weight:600}.playback-transport{align-items:center;gap:.5rem;max-width:960px;margin-bottom:.6rem;display:flex}.playback-transport button{color:#d1d5db;cursor:pointer;font-variant-numeric:tabular-nums;background:#171a21;border:1px solid #262b36;border-radius:6px;padding:.4rem .8rem}.playback-transport button:hover{color:#93c5fd;border-color:#3b82f6}.playback-rate{color:#9aa3b2;align-items:center;gap:.4rem;margin-left:.25rem;font-size:.85rem;display:flex}.playback-rate select{color:#e6e8eb;background:#0f1115;border:1px solid #333a4a;border-radius:4px;padding:.3rem .4rem}.camera-detail-controls{align-items:center;gap:.75rem;max-width:960px;margin-bottom:.75rem;display:flex}.camera-detail-selected-range-inline{color:#bfdbfe;white-space:nowrap;font-size:.8rem}.playback-timeline-scale{max-width:960px;height:16px;margin-bottom:.2rem;position:relative}.playback-scale-tick{color:#9aa3b2;white-space:nowrap;font-size:.7rem;position:absolute;top:0;transform:translate(-50%)}.camera-detail-controls button{color:#d1d5db;cursor:pointer;background:#171a21;border:1px solid #262b36;border-radius:6px;padding:.4rem .8rem}.camera-detail-controls button.active{color:#facc15;border-color:#facc15}.camera-detail-controls button:disabled{opacity:.5;cursor:default}.playback-timeline{-webkit-user-select:none;user-select:none;background:#171a21;border:1px solid #262b36;border-radius:6px;max-width:960px;height:40px;margin-bottom:.75rem;position:relative;overflow:hidden}.playback-timeline.pan-mode{cursor:grab}.playback-timeline.pan-mode.panning{cursor:grabbing}.playback-timeline.select-mode{cursor:crosshair}.playback-timeline-tools{align-items:center;gap:1rem;max-width:960px;margin-bottom:.6rem;display:flex}.playback-timeline-tools .timeline-zoom{margin-left:auto}.playback-timeline-tools .playback-transport{margin-bottom:0}.playback-timeline-hint{color:#9aa3b2;max-width:960px;margin:.4rem 0 .75rem;font-size:.75rem;line-height:1.4}.timeline-zoom{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.timeline-zoom-window{color:#bfdbfe;font-variant-numeric:tabular-nums;margin-right:.15rem}.timeline-zoom button{color:#d1d5db;cursor:pointer;background:#171a21;border:1px solid #262b36;border-radius:4px;padding:.1rem .5rem;font-size:.8rem;line-height:1.4}.timeline-zoom button:disabled{opacity:.4;cursor:default}.date-stepper{align-items:center;gap:.25rem;display:flex}.date-step-btn{line-height:1;padding:.4rem .5rem!important}.playback-playhead{pointer-events:none;z-index:2;background:#f87171;width:2px;position:absolute;top:0;bottom:0}.playback-playhead-label{color:#fecaca;white-space:nowrap;font-variant-numeric:tabular-nums;background:#0f1115d9;border-radius:3px;padding:0 .2rem;font-size:.7rem;position:absolute;top:1px;left:50%;transform:translate(-50%)}.playback-segment-block{pointer-events:none;background:#3b82f6;border-radius:2px;position:absolute;top:4px;bottom:4px}.playback-segment-block.active{background:#93c5fd}.playback-selection{pointer-events:none;background:#facc1559;border:1px solid #facc15;position:absolute;top:0;bottom:0}.playback-selection-handle{pointer-events:auto;cursor:ew-resize;background:#facc158c;justify-content:center;align-items:center;width:12px;display:flex;position:absolute;top:0;bottom:0}.playback-selection-handle.start{left:-6px}.playback-selection-handle.end{right:-6px}.playback-selection-handle span{color:#1f2430;opacity:0;font-size:.7rem;line-height:1;transition:opacity .1s ease-in}.playback-selection-handle:hover,.playback-selection.is-resizing .playback-selection-handle{background:#facc15}.playback-selection-handle:hover span,.playback-selection.is-resizing .playback-selection-handle span{opacity:1}.range-time-input{color:#e6e8eb;width:6.5rem;font-family:inherit;font-size:inherit;text-align:center;background:#0f1115;border:1px solid #333a4a;border-radius:4px;margin:0 .3rem;padding:.15rem .35rem}.range-time-input:focus{border-color:#facc15;outline:none}.panel-message{color:#bfdbfe;background:#1e3a5f;border:1px solid #3b82f6;border-radius:6px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.cameras-toolbar{flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.cameras-search,.cameras-toolbar select,.settings-card input,.settings-card select,.settings-card textarea{color:#e6e8eb;background:#0f1115;border:1px solid #333a4a;border-radius:4px;padding:.45rem .65rem;font-size:.95rem}.cameras-search{min-width:220px}.cameras-table{border-collapse:collapse;background:#171a21;border:1px solid #262b36;border-radius:8px;width:100%;overflow:hidden}.cameras-table th,.cameras-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #262b36;padding:.55rem .75rem;font-size:.9rem}.cameras-table th{color:#9aa3b2;text-transform:uppercase;font-size:.75rem;font-weight:600}.cameras-table tr.row-disabled{opacity:.55}.cameras-thumb-cell{width:96px}.cameras-thumb{object-fit:cover;background:#0f1115;border-radius:4px;width:88px;height:50px;display:block}.cameras-thumb-empty{border:1px solid #262b36}.linkish{color:#93c5fd;cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;padding:0}.linkish:hover{text-decoration:underline}.btn-primary,.btn-secondary,.btn-danger{cursor:pointer;border-radius:4px;padding:.45rem .85rem;font-size:.9rem;font-weight:600}.btn-primary{color:#fff;background:#3b82f6;border:1px solid #3b82f6}.btn-primary:disabled,.btn-secondary:disabled,.btn-danger:disabled{opacity:.5;cursor:default}.btn-secondary{color:#e6e8eb;background:#171a21;border:1px solid #333a4a;align-items:center;text-decoration:none;display:inline-flex}.btn-danger{color:#fecaca;background:#7f1d1d;border:1px solid #991b1b}.camera-settings{max-width:980px}.camera-settings:has(.onvif-card){max-width:none}.settings-card{background:#171a21;border:1px solid #262b36;border-radius:8px;margin-bottom:1rem;padding:1rem 1.25rem 1.25rem}.settings-card h2{color:#9aa3b2;margin:0 0 1rem;font-size:1rem;font-weight:600}.settings-card label{color:#9aa3b2;flex-direction:column;gap:.3rem;font-size:.8rem;display:flex}.settings-grid{gap:.85rem;display:grid}.settings-grid.two-col{grid-template-columns:1fr 1fr}@media (width>=800px){.settings-grid:not(.two-col){grid-template-columns:1fr 280px}.settings-grid:not(.two-col) label:first-child,.settings-grid:not(.two-col) label:nth-child(2),.settings-grid:not(.two-col) label:nth-child(3){grid-column:1}.settings-preview{grid-area:1/2/span 3}}.settings-preview{flex-direction:column;gap:.6rem;display:flex}.settings-preview img,.settings-preview-empty{aspect-ratio:16/9;object-fit:cover;background:#0f1115;border:1px solid #262b36;border-radius:6px;width:100%}.settings-preview-empty{color:#6b7280;justify-content:center;align-items:center;font-size:.85rem;display:flex}.settings-preview-actions{flex-wrap:wrap;gap:.5rem;display:flex}.settings-checks{flex-direction:column;gap:.5rem;margin-bottom:.85rem;display:flex}.checkbox-row{align-items:center;color:#e6e8eb!important;flex-direction:row!important;gap:.5rem!important;font-size:.9rem!important}.settings-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-bottom:1.5rem;display:flex}.settings-footer-left{gap:.6rem;display:flex}@media (width<=799px){.settings-grid.two-col{grid-template-columns:1fr}}.cameras-tree-table td{padding-top:.3rem;padding-bottom:.3rem}.folder-row{background:#14161c}.folder-row.drop-target{outline-offset:-2px;background:#1d2735;outline:2px dashed #3b82f6}.org-row{background:#171a21;border-bottom:1px solid #333a4a}.org-tree-row .folder-tree-label-static{color:#e6e8eb;font-size:1rem}.folder-tree-label-static{color:#d1d5db;align-items:center;gap:.5rem;font-weight:600;display:flex}.camera-row-name{align-items:center;gap:.4rem;display:flex}.camera-drag-handle{color:#4b5563;cursor:grab;opacity:0;text-align:center;width:1rem;font-size:.9rem}tr:hover .camera-drag-handle{opacity:1}.camera-status-dot{border-radius:999px;flex-shrink:0;width:8px;height:8px}.camera-status-dot.live{background:#22c55e}.camera-status-dot.offline{background:#ef4444}.camera-status-dot.disabled{background:#6b7280}.folder-tree{flex-direction:column;gap:.1rem;font-size:.9rem;display:flex}.folder-tree-row{border-radius:4px;align-items:center;gap:.3rem;padding:.15rem .3rem;display:flex}.folder-tree-row.active{background:#1d2735}.folder-tree-row.folder-tree-root{margin-bottom:.2rem;font-weight:600}.folder-tree-toggle{color:#9aa3b2;cursor:pointer;background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;padding:0;font-size:1.3rem;line-height:1;display:inline-flex}button.folder-tree-toggle:hover:not(:disabled){color:#e6e8eb;background:#262b36}.folder-tree-toggle:disabled{cursor:default;color:#4b5563}.folder-tree-label{color:#d1d5db;cursor:pointer;text-align:left;font-size:inherit;background:0 0;border:none;flex:1;justify-content:space-between;align-items:center;gap:.4rem;padding:.15rem 0;display:flex}.folder-tree-row.active .folder-tree-label{color:#93c5fd}.folder-tree-count{color:#6b7280;font-size:.75rem}.folder-tree-actions{opacity:0;gap:.3rem;display:flex}.folder-tree-row:hover .folder-tree-actions{opacity:1}.folder-tree-actions button{color:#9aa3b2;cursor:pointer;background:0 0;border:1px solid #333a4a;border-radius:4px;padding:.25rem .55rem;font-size:.95rem;line-height:1}.folder-tree-actions button:hover{color:#93c5fd;border-color:#3b82f6}.folder-tree-children{flex-direction:column;display:flex}.settings-add-row{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.6rem;display:flex}.settings-hint{color:#9aa3b2;margin:.4rem 0;font-size:.85rem}.perm-tree-row{gap:.75rem;padding:.3rem .4rem}.perm-tree-row.is-striped{background:#1e222c}.perm-tree-row:hover,.perm-tree-row.is-striped:hover{background:#253044}.perm-tree-name{flex:1;align-items:center;gap:.3rem;min-width:0;display:flex}.perm-tree-name .folder-tree-label-static{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.folder-perm-checks{flex-shrink:0;grid-template-columns:repeat(5,5.25rem) 2.25rem;align-items:center;margin-left:auto;display:grid}.folder-perm-checks>label,.folder-perm-checks>span{border-left:1px solid #333a4a;justify-content:center;align-items:center;min-height:1.6rem;display:flex}.folder-perm-checks>label{cursor:pointer}.folder-perm-checks>.folder-perm-remove-slot{border-left:none}.folder-perm-checks input[type=checkbox]{cursor:pointer;margin:0}.perm-tree-head>span{color:#9aa3b2;text-transform:uppercase;letter-spacing:.03em;font-size:.75rem;font-weight:600}.perm-tree .org-tree-row{border-bottom:1px solid #333a4a;margin-bottom:.2rem;padding-bottom:.4rem}.perm-tree .org-tree-row:hover{background:0 0}.perm-tree .camera-tree-row .folder-tree-label-static{color:#9aa3b2;font-weight:400}.perm-tree .camera-status-dot{margin-right:.15rem}.perm-tree .perm-tree-row .folder-tree-label-static.camera-granted{color:#4ade80}.folder-perm-remove{color:#9aa3b2;cursor:pointer;background:0 0;border:1px solid #333a4a;border-radius:4px;padding:.2rem .4rem;font-size:.75rem;line-height:1}.folder-perm-remove:hover{color:#fca5a5;border-color:#ef4444}.settings-hint-inline{color:#9aa3b2;margin-left:.5rem;font-size:.8rem;font-style:italic}.permission-editor{border-top:1px solid #262b36;flex-direction:column;margin-top:.85rem;padding-top:.85rem;gap:.6rem!important}.onvif-connect-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.onvif-connect-row label{color:#9aa3b2;flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.onvif-connect-row .onvif-port input{width:6rem}.onvif-body{grid-template-columns:1fr;gap:1rem;margin-top:1rem;display:grid}.onvif-field-grid{flex-wrap:wrap;align-items:flex-start;gap:.75rem 1rem;margin-bottom:.5rem;display:flex}.onvif-field-grid>label{color:#9aa3b2;flex-direction:column;flex:none;gap:.25rem;width:7.5rem;font-size:.85rem;line-height:1.25;display:flex}.onvif-field-grid>label.wide{width:12rem}.onvif-field-grid>label.extra-wide{width:24rem;max-width:100%}.onvif-field-grid>label.checkbox-row{width:auto}.onvif-field-grid input,.onvif-field-grid select{width:100%}.onvif-field-grid .settings-hint{white-space:nowrap;font-size:.72rem}.onvif-field-grid label.checkbox-row{flex-direction:row;align-items:center;gap:.45rem}.onvif-field-grid input,.onvif-field-grid select{color:#e6e8eb;background:#0f1115;border:1px solid #333a4a;border-radius:4px;width:100%;padding:.35rem .5rem}.onvif-field-grid label.checkbox-row input{width:auto}.onvif-subheading{color:#9aa3b2;text-transform:uppercase;letter-spacing:.04em;margin:1rem 0 .5rem;font-size:.85rem}.onvif-users-table input,.onvif-users-table select{color:#e6e8eb;background:#0f1115;border:1px solid #333a4a;border-radius:4px;width:100%;padding:.25rem .4rem}.onvif-users-actions{white-space:nowrap;gap:.4rem;display:flex}.onvif-group{background:#0f1115;border:1px solid #262b36;border-radius:6px;padding:.75rem 1rem 1rem}.onvif-group h3{color:#9aa3b2;margin:0 0 .6rem;font-size:.9rem;font-weight:600}.onvif-row{border-bottom:1px solid #1b1f28;justify-content:space-between;gap:1rem;padding:.2rem 0;font-size:.9rem;display:flex}.onvif-row-label{color:#9aa3b2}.onvif-row-value{color:#e6e8eb;text-align:right;word-break:break-all}.onvif-features{flex-wrap:wrap;gap:.5rem;display:flex}.onvif-feature{color:#6b7280;border:1px solid #333a4a;border-radius:999px;padding:.15rem .7rem;font-size:.8rem}.onvif-feature.on{color:#4ade80;border-color:#22c55e}.ptz-pad{grid-template-columns:repeat(3,3rem);grid-auto-rows:3rem;justify-content:center;gap:.35rem;margin:.5rem 0;display:grid}.ptz-button{color:#e6e8eb;cursor:pointer;-webkit-user-select:none;user-select:none;background:#1b1f28;border:1px solid #333a4a;border-radius:4px;font-size:1rem}.ptz-button:hover{border-color:#4b5563}.ptz-button:active{background:#2b3140;border-color:#6366f1}.ptz-center{border:1px dashed #333a4a;border-radius:4px}.ptz-zoom{justify-content:center;gap:.35rem;display:flex}.ptz-zoom .ptz-button{width:auto;height:2.2rem;padding:0 .9rem}.onvif-presets{flex-wrap:wrap;gap:.4rem;margin-top:.5rem;display:flex}.onvif-profile-select{color:#9aa3b2;flex-direction:column;gap:.3rem;margin-bottom:.5rem;font-size:.85rem;display:flex}.onvif-ptz-status{margin-top:.6rem}.settings-tabs{border-bottom:1px solid #262b36;gap:.25rem;margin-bottom:1rem;display:flex}.settings-tabs button{color:#9aa3b2;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:.6rem 1rem;font-size:.95rem}.settings-tabs button:hover{color:#e6e8eb}.settings-tabs button.active{color:#e6e8eb;border-bottom-color:#3b82f6}.ptz-pad-wrap.compact{opacity:.3;background:#0f1115b8;border:1px solid #333a4a;border-radius:8px;flex-direction:column;align-items:center;gap:.35rem;padding:.5rem;transition:opacity .15s;display:flex;position:absolute;top:.75rem;right:.75rem}.ptz-pad-wrap.compact:hover,.ptz-pad-wrap.compact:focus-within{opacity:1}.ptz-pad-wrap.compact .ptz-pad{grid-template-columns:repeat(3,2.2rem);grid-auto-rows:2.2rem;margin:0}.ptz-pad-wrap.compact .ptz-zoom .ptz-button{height:1.8rem;padding:0 .6rem;font-size:.8rem}.ptz-pad-wrap.compact .onvif-presets{justify-content:center;max-width:12rem}.ptz-error{text-align:center;padding:.25rem .5rem;font-size:.8rem}.ptz-speed{color:#9aa3b2;align-items:center;gap:.4rem;font-size:.8rem;display:flex}.ptz-speed input[type=range]{accent-color:#3b82f6;width:6rem}.ptz-speed-value{text-align:right;color:#e6e8eb;font-variant-numeric:tabular-nums;min-width:1.6rem}.video-profile{background:#12151b;border:1px solid #262b36;border-radius:6px;margin-bottom:.75rem;padding:.75rem 1rem 1rem}.video-profile h4{color:#e6e8eb;align-items:center;gap:.5rem;margin:0 0 .75rem;font-size:.9rem;display:flex}.video-profile-codec{color:#9aa3b2;border:1px solid #333a4a;border-radius:999px;padding:.1rem .6rem;font-size:.75rem;font-weight:400}.video-profile .settings-grid label{color:#9aa3b2;flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.video-profile-actions{gap:.5rem;margin-top:.5rem;display:flex}@media (width<=760px){.app{flex-direction:column}.app-sidebar{z-index:10;border-bottom:1px solid #262b36;border-right:none;flex-direction:row;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;position:sticky;top:0;overflow-x:auto}.app-sidebar-brand{border-bottom:none;flex-shrink:0;margin-bottom:0;padding:0}.app-sidebar-logo{height:22px}.app-sidebar-nav{flex-direction:row;flex:1;gap:.25rem;padding:0;overflow-x:auto}.app-sidebar-nav button{white-space:nowrap;padding:.45rem .6rem}.app-sidebar-user{border-top:none;flex-direction:row;flex-shrink:0;align-items:center;margin-top:0;padding:0;font-size:0}.app-sidebar-user button{font-size:.8rem}.app-main{padding:.75rem}.live-grid{grid-template-columns:1fr}.camera-detail-controls,.playback-timeline,.playback-timeline-scale,.playback-timeline-hint,.playback-timeline-tools,.playback-transport,.onvif-body{max-width:100%}.camera-detail-controls,.playback-timeline-tools,.playback-transport{flex-wrap:wrap;gap:.4rem}.playback-timeline-tools .timeline-zoom{margin-left:0}.camera-detail-header{flex-wrap:wrap}.cameras-table,.fleet-table,.users-table{white-space:nowrap;display:block;overflow-x:auto}.settings-card{padding:.75rem}.ptz-pad-wrap.compact{opacity:.55}.ptz-pad-wrap.compact .ptz-pad{grid-template-columns:repeat(3,2.6rem);grid-auto-rows:2.6rem}}.diagnostics-controls{align-items:flex-end;gap:.75rem;margin:.75rem 0;display:flex}.diagnostics-verdict{background:#0f1115;border:1px solid #262b36;border-radius:6px;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.9rem}.diagnostics-verdict.good{color:#86efac;border-color:#16a34a}.diagnostics-verdict.degraded{color:#fcd34d;border-color:#d97706}.diagnostics-verdict.bad{color:#fca5a5;border-color:#dc2626}.diagnostics-alert{color:#fecaca;background:#dc26261f;border:1px solid #dc2626;border-radius:6px;margin-bottom:.75rem;padding:.6rem .75rem;font-size:.85rem;line-height:1.45}.diagnostics-history-title{color:#9aa3b2;margin:1rem 0 .4rem;font-size:.9rem}
