html,body,#root{height:100%;margin:0}.app-shell{min-height:100%}.sidebar{background:#fff!important;border-right:1px solid #e5e7eb;padding:16px 12px;transition:all .2s ease}.sidebar.collapsed{padding:14px 8px}.brand{align-items:center;border-bottom:1px solid #eef0f3;display:flex;font-size:16px;font-weight:700;gap:8px;margin-bottom:16px;padding:0 4px 14px}.brand img{border-radius:7px;height:28px;object-fit:contain;width:28px}.sidebar.collapsed .brand{justify-content:center;padding:0 0 12px}.sidebar-toggle{margin-left:auto}.sidebar.collapsed .sidebar-toggle{margin-left:0}.nav-actions{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;width:100%}.nav-actions.ant-space-vertical{gap:8px!important}.nav-actions.ant-space-vertical>.ant-space-item{margin-bottom:0!important}.sidebar-nav-button{align-items:center;display:inline-flex;justify-content:center;min-height:32px}.sidebar.collapsed .nav-actions{align-items:center}.sidebar.collapsed .sidebar-nav-button{height:38px;padding:0;width:44px}.sidebar.collapsed .sidebar-nav-button .ant-btn-icon{margin-inline-end:0}.topbar{align-items:center;background:#fff;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:0 24px}.language-option{align-items:center;display:inline-flex;gap:8px;line-height:1}.language-option-flag{display:inline-block;font-size:18px;line-height:1;min-width:24px;text-align:center}.content{background:#f6f8fb;padding:12px}.content>*,.content .ant-card,.content .ant-card-body,.content .ant-tabs,.content .ant-tabs-content,.content .ant-tabs-tabpane{box-sizing:border-box;max-width:100%;min-width:0}.content h1,.content h2,.content h3,.content h4,.content h5{overflow-wrap:normal;word-break:normal}.topbar-context,.topbar-actions{min-width:0}.topbar-actions{justify-content:flex-end}.auth-loading,.login-screen{min-height:100vh}.auth-loading{align-items:center;background:#f5f7fb;display:flex;justify-content:center}.logo-loader{align-items:center;background:radial-gradient(circle at 42% 28%,rgba(30,64,175,.12),transparent 32%),linear-gradient(135deg,#f8fbff,#eef5ff);display:flex;justify-content:center;min-height:100vh;padding:24px}.logo-loader.compact{min-height:280px}.logo-loader-card{align-items:center;background:#ffffffdb;border:1px solid rgba(148,163,184,.26);border-radius:14px;box-shadow:0 24px 80px #0f172a1f;display:flex;flex-direction:column;gap:8px;min-width:230px;padding:28px 32px}.logo-loader.small,.logo-loader.tiny{background:transparent;min-height:auto;padding:0}.logo-loader.small .logo-loader-card,.logo-loader.tiny .logo-loader-card{background:transparent;border:0;box-shadow:none;min-width:0;padding:0}.logo-loader-mark{align-items:center;animation:logo-loader-pulse 1.8s ease-in-out infinite;background:#fff;border-radius:20px;box-shadow:0 18px 48px #2563eb2e;display:flex;height:82px;justify-content:center;margin-bottom:8px;position:relative;width:82px}.logo-loader.small .logo-loader-mark{border-radius:12px;box-shadow:0 12px 28px #2563eb29;height:46px;margin-bottom:0;width:46px}.logo-loader.tiny .logo-loader-mark{border-radius:9px;box-shadow:0 10px 22px #0f172a38;height:34px;margin-bottom:0;width:34px}.logo-loader-mark img{border-radius:16px;display:block;height:60px;object-fit:contain;position:relative;width:60px;z-index:1}.logo-loader.small .logo-loader-mark img{border-radius:9px;height:32px;width:32px}.logo-loader.tiny .logo-loader-mark img{border-radius:7px;height:23px;width:23px}.logo-loader-ring{animation:logo-loader-ring 1.35s linear infinite;border:2px solid rgba(37,99,235,.18);border-top-color:#1677ff;border-radius:999px;top:-7px;right:-7px;bottom:-7px;left:-7px;position:absolute}.logo-loader.small .logo-loader-ring{top:-5px;right:-5px;bottom:-5px;left:-5px}.logo-loader.tiny .logo-loader-ring{border-width:1px;top:-4px;right:-4px;bottom:-4px;left:-4px}@keyframes logo-loader-pulse{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.02)}}@keyframes logo-loader-ring{to{transform:rotate(360deg)}}.login-screen{align-items:center;background:radial-gradient(circle at 16% 18%,rgba(22,119,255,.34),transparent 28%),radial-gradient(circle at 84% 12%,rgba(20,184,166,.24),transparent 30%),linear-gradient(135deg,#06111f,#0b1627 42%,#101827);color:#fff;display:grid;gap:44px;grid-template-columns:minmax(0,1.1fr) minmax(380px,460px);overflow:hidden;padding:56px clamp(24px,7vw,104px);position:relative}.login-screen:before{animation:login-scan 7s linear infinite;background:linear-gradient(180deg,transparent,rgba(96,165,250,.12),transparent);content:"";height:38%;left:0;position:absolute;right:0;top:-40%}.login-orbit{border:1px solid rgba(148,163,184,.22);border-radius:999px;position:absolute}.login-orbit-one{animation:login-float 9s ease-in-out infinite;height:420px;left:-140px;top:-110px;width:420px}.login-orbit-two{animation:login-float 11s ease-in-out infinite reverse;bottom:-180px;height:520px;right:-180px;width:520px}.login-visual{animation:login-rise .68s ease-out both;max-width:720px;position:relative;z-index:1}.login-brand-mark{align-items:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-radius:18px;box-shadow:0 18px 70px #00000038;color:#93c5fd;display:flex;font-size:34px;height:72px;justify-content:center;margin-bottom:26px;width:72px}.login-brand-mark img{border-radius:14px;display:block;height:54px;object-fit:contain;width:54px}.login-visual .ant-typography{color:#e2e8f0d1;font-size:17px;max-width:620px}.login-visual h1.ant-typography{color:#fff;font-size:clamp(42px,6vw,76px);line-height:.95;margin-bottom:18px}.login-monitor-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:38px;max-width:620px}.login-monitor-tile{animation:login-tile-in .62s ease-out both,login-camera-breathe 4.8s ease-in-out infinite;background:#0f172a94;border:1px solid rgba(148,163,184,.22);border-radius:10px;min-height:118px;overflow:hidden;padding:18px;position:relative}.login-monitor-tile span{color:#60a5fa;font-size:28px}.login-monitor-tile strong{color:#fff;display:block;font-size:15px;margin-top:16px}.login-monitor-tile i{animation:login-signal 2.6s ease-in-out infinite;background:linear-gradient(90deg,transparent,rgba(34,197,94,.42),transparent);bottom:0;height:2px;left:-45%;position:absolute;width:45%}.login-card{animation:login-card-in .62s ease-out both .12s;background:#fffffff5;border:1px solid rgba(255,255,255,.56);border-radius:14px;box-shadow:0 28px 90px #00000052;position:relative;width:min(460px,calc(100vw - 32px));z-index:1}.login-card-icon{color:#1677ff;font-size:24px}.login-title{margin:0!important}@keyframes login-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes login-card-in{0%{opacity:0;transform:translate(22px) scale(.98)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes login-tile-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes login-camera-breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes login-signal{0%{left:-45%}to{left:110%}}@keyframes login-float{0%,to{transform:translateZ(0)}50%{transform:translate3d(18px,-18px,0)}}@keyframes login-scan{to{top:110%}}.ant-table-cell{vertical-align:middle}.app-shell .ant-table-wrapper,.ant-modal .ant-table-wrapper{max-width:100%}.app-shell .ant-table,.ant-modal .ant-table{min-width:100%}.app-shell .ant-table-container,.app-shell .ant-table-content,.ant-modal .ant-table-container,.ant-modal .ant-table-content{overflow-x:auto}.app-shell .ant-table-thead>tr>th,.app-shell .ant-table-tbody>tr>td,.ant-modal .ant-table-thead>tr>th,.ant-modal .ant-table-tbody>tr>td{white-space:nowrap}.app-shell .ant-table-cell .ant-btn,.app-shell .ant-table-cell .ant-tag,.app-shell .ant-table-cell .ant-typography,.app-shell .ant-table-cell .ant-select-selection-item,.ant-modal .ant-table-cell .ant-btn,.ant-modal .ant-table-cell .ant-tag,.ant-modal .ant-table-cell .ant-typography,.ant-modal .ant-table-cell .ant-select-selection-item{white-space:nowrap}.app-shell .ant-table-cell .ant-space:not(.ant-space-vertical),.ant-modal .ant-table-cell .ant-space:not(.ant-space-vertical){flex-wrap:nowrap}.app-shell .ant-table-cell .ant-space-vertical,.ant-modal .ant-table-cell .ant-space-vertical{align-items:flex-start}.ops-table-nowrap .ant-table-cell{white-space:nowrap}.ops-table-actions{display:inline-flex;flex-wrap:nowrap;gap:8px;white-space:nowrap}.network-detail-column{display:none}.dashboard-strip{margin-bottom:16px}.dashboard-card{border-top:3px solid transparent;min-height:128px;overflow:hidden;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.dashboard-monitor{margin-bottom:2px}.monitor-kpi{position:relative;display:flex;min-height:166px;height:100%;padding:18px;overflow:hidden;flex-direction:column;gap:12px;background:linear-gradient(145deg,#fff,#f8fbff);border:1px solid #dce6f2;border-radius:16px;box-shadow:0 8px 24px #1e40af0f}.monitor-kpi:before{position:absolute;inset:0 auto 0 0;width:4px;content:"";background:#94a3b8}.monitor-kpi.tone-capacity:before{background:#3b82f6}.monitor-kpi.tone-health:before{background:#22c55e}.monitor-kpi.tone-incidents:before{background:#f59e0b}.monitor-kpi.tone-incidents.has-incident:before{background:#ef4444}.monitor-kpi__head{display:flex;min-width:0;align-items:center;gap:9px}.monitor-kpi__head>.ant-typography{color:#475569;font-size:13px;font-weight:600}.monitor-kpi__head>b{margin-left:auto;color:#1e3a5f;font-size:13px}.monitor-kpi__icon{display:grid;width:34px;height:34px;color:#2563eb;background:#eaf2ff;border-radius:10px;place-items:center}.tone-health .monitor-kpi__icon{color:#159447;background:#eaf9f0}.tone-incidents .monitor-kpi__icon{color:#d97706;background:#fff7e6}.monitor-kpi__state{display:inline-flex;max-width:52%;padding:4px 8px;margin-left:auto;overflow:hidden;align-items:center;gap:5px;color:#16803d;font-size:11px;white-space:nowrap;text-overflow:ellipsis;background:#ecfdf3;border-radius:999px}.monitor-kpi__state.is-warning{color:#b45309;background:#fff7e6}.monitor-kpi__value{display:flex;align-items:baseline;gap:8px;color:#0f172a;font-size:34px;font-weight:750;line-height:1;letter-spacing:-1px}.monitor-kpi__value small{color:#64748b;font-size:12px;font-weight:500;letter-spacing:0}.monitor-kpi__facts{display:flex;margin-top:auto;flex-wrap:wrap;gap:8px 16px;color:#64748b;font-size:12px}.monitor-kpi__facts span{display:inline-flex;align-items:center;gap:6px}.monitor-kpi__facts i{width:7px;height:7px;background:#94a3b8;border-radius:50%}.monitor-kpi__facts i.is-online{background:#22c55e}.monitor-kpi__facts i.is-offline{background:#ef4444}.monitor-kpi__facts i.is-alarm{background:#f59e0b}.monitor-kpi__segmented{display:flex;height:7px;overflow:hidden;background:#e8eef5;border-radius:999px}.monitor-kpi__segmented .is-online{background:linear-gradient(90deg,#16a34a,#4ade80)}.monitor-kpi__segmented .is-offline{background:#ef4444}.dashboard-card:hover{box-shadow:0 10px 24px #0f172a14;transform:translateY(-1px)}.dashboard-card.tone-blue{border-top-color:#3b82f6}.dashboard-card.tone-success{border-top-color:#22c55e}.dashboard-card.tone-danger{border-top-color:#ef4444}.dashboard-card.tone-warning{border-top-color:#f59e0b}.dashboard-card.tone-muted,.dashboard-card.tone-neutral{border-top-color:#cbd5e1}.dashboard-card .ant-card-body{display:flex;flex-direction:column;gap:8px;height:100%}.dashboard-card-meta{min-height:24px}.dashboard-card-note{display:block;font-size:12px;line-height:1.35}.full-width{width:100%}.isapi-access-group{height:100%}.isapi-access-group .ant-list-item{align-items:flex-start}.permission-checkbox-group{background:#f8fafc;border:1px solid #e5e7eb;border-radius:8px;max-height:220px;overflow:auto;padding:10px 12px;width:100%}.identity-users-table .ant-table-cell{vertical-align:middle}.identity-users-table .ant-table-thead>tr>th{white-space:nowrap}.identity-user-cell{max-width:100%}.identity-user-cell .ant-typography{display:block;line-height:1.4;max-width:100%}.identity-user-cell .ant-typography-secondary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.identity-table-select{width:100%}.identity-readonly-tags,.identity-permission-tags{max-height:72px;overflow:hidden}.identity-readonly-tags .ant-tag,.identity-permission-tags .ant-tag{margin-inline-end:0}.identity-user-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,520px),1fr));gap:18px;margin-top:20px;transition:opacity .16s ease}.identity-user-grid.is-loading{opacity:.58;pointer-events:none}.identity-user-card{overflow:visible;border-color:#dbe5f0;border-radius:12px;box-shadow:0 5px 18px #0f172a0d;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.identity-user-card:hover{border-color:#b7d2f5;box-shadow:0 12px 30px #0f172a17}.identity-user-card.is-locked{background:#fafafa;border-color:#e5e7eb}.identity-user-card>.ant-card-head{min-height:58px;padding:0 14px;background:linear-gradient(135deg,#f8fbff,#fff);border-radius:12px 12px 0 0}.identity-user-card>.ant-card-body{padding:16px}.identity-user-card-title{display:flex;align-items:center;min-width:0;gap:10px}.identity-user-avatar{display:grid;flex:0 0 auto;width:34px;height:34px;color:#1677ff;font-size:16px;background:#e6f4ff;border:1px solid #bae0ff;border-radius:10px;place-items:center}.identity-user-card-name{display:grid;min-width:0;line-height:1.35}.identity-user-card-name .ant-typography{max-width:100%}.identity-user-fields{display:grid;grid-template-columns:138px minmax(0,1fr);align-items:center;gap:10px 12px}.identity-user-fields>label{color:#52647c;font-size:13px;font-weight:600}.identity-user-fields .ant-select,.identity-user-fields .camera-selector{min-width:0;width:100%}.identity-user-fields>.ant-tag{justify-self:start;width:auto;max-width:100%;margin-inline-end:0}.identity-user-fields>.ant-typography{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.identity-user-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid #eef2f7}.identity-user-card-footer>.ant-typography{color:#718096;font-size:12px}@media (max-width: 700px){.identity-user-fields{grid-template-columns:minmax(0,1fr);gap:5px}.identity-user-fields>label:not(:first-child){margin-top:7px}.identity-user-card-footer{align-items:flex-start;flex-direction:column}}.nvr-channel-topology{overflow:hidden;width:100%;background:radial-gradient(circle at 10% 18%,rgb(22 119 255 / 12%),transparent 30%),linear-gradient(145deg,#edf6ff,#f4f8fc 48%,#edf3f9);border:1px solid #c9dbee;border-radius:14px;box-shadow:0 8px 24px #0f172a0d}.nvr-detail-tabs>.ant-tabs-nav .ant-tabs-nav-list>.ant-tabs-tab{margin:0 0 0 32px}.nvr-detail-tabs>.ant-tabs-nav .ant-tabs-nav-list>.ant-tabs-tab:nth-child(2){margin-left:0;order:-1}.nvr-channel-topology__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;background:#ffffff94;border-bottom:1px solid #d8e5f2}.nvr-channel-topology__header .ant-typography{margin:0}.nvr-channel-topology__filters{display:grid;grid-template-columns:minmax(220px,420px) 150px;gap:8px;padding:10px 18px;background:#ffffffb8;border-bottom:1px solid #d8e5f2}.nvr-channel-topology__summary{display:flex;align-items:center;flex:0 0 auto;gap:6px;padding:7px 10px;color:#52647c;background:#fff;border:1px solid #dbe5f0;border-radius:999px}.nvr-channel-topology__summary strong{color:#172033}.nvr-channel-topology__canvas{display:grid;grid-template-columns:minmax(176px,220px) minmax(0,1fr);align-items:center;gap:26px;min-height:220px;padding:20px}.nvr-topology-node{display:flex;align-items:center;min-width:0;gap:10px;padding:11px 12px;background:linear-gradient(135deg,#fffffff5,#f2f7fcf5);border:1px solid #cddceb;border-radius:12px;box-shadow:0 7px 18px #0f172a12}.nvr-topology-node--recorder{position:relative;z-index:2;flex-wrap:wrap;border-color:#91caff;box-shadow:0 9px 24px #1677ff1f}.nvr-topology-node--camera{border-left:3px solid #8fbff5}.nvr-topology-link.is-online .nvr-topology-node--camera{background:linear-gradient(135deg,#fff,#f2fbf6);border-left-color:#22c55e}.nvr-topology-link.is-offline .nvr-topology-node--camera{background:linear-gradient(135deg,#fff,#fff3f3);border-left-color:#ef4444}.nvr-topology-link.is-unknown .nvr-topology-node--camera{background:linear-gradient(135deg,#fff,#fff9eb);border-left-color:#f59e0b}.nvr-topology-node__icon{display:grid;flex:0 0 auto;width:36px;height:36px;color:#1677ff;font-size:17px;background:#e6f4ff;border-radius:10px;place-items:center}.nvr-topology-node__copy{display:grid;flex:1 1 auto;min-width:0}.nvr-topology-node__copy small,.nvr-topology-node__copy span{overflow:hidden;color:#718096;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.nvr-topology-node__copy strong{overflow:hidden;color:#172033;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.nvr-topology-links{position:relative;display:grid;gap:9px}.nvr-topology-links:before{position:absolute;top:22px;bottom:22px;left:13px;width:2px;content:"";background:#cbd5e1}.nvr-topology-link{display:grid;grid-template-columns:78px 54px minmax(0,1fr);align-items:center;min-width:0}.nvr-topology-link__rail{position:relative;display:flex;align-items:center;color:#94a3b8}.nvr-topology-link__rail i{width:100%;height:2px;background:currentColor}.nvr-topology-link__preview{position:relative;display:grid;flex:0 0 auto;width:38px;height:38px;margin-left:-1px;overflow:hidden;color:currentColor;background:#fff;border:2px solid #fff;border-radius:10px;box-shadow:0 2px 8px #0f172a2e,0 0 0 2px currentColor;place-items:center;transition:border-radius .16s ease,transform .16s ease,box-shadow .16s ease}.nvr-topology-link__preview-button{display:block;padding:0;margin:0;color:inherit;cursor:pointer;background:transparent;border:0;border-radius:10px}.nvr-topology-link__preview-button:focus-visible{outline:3px solid rgb(22 119 255 / 30%);outline-offset:4px}.nvr-topology-link__preview:hover{border-radius:8px;box-shadow:0 5px 14px #0f172a3d,0 0 0 2px currentColor;transform:scale(1.08)}.nvr-topology-link__preview>img{width:100%;height:100%;object-fit:cover}.nvr-topology-link__preview>.anticon{font-size:15px}.nvr-topology-link__preview.is-loading:before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;content:"";background:linear-gradient(105deg,transparent 25%,rgb(255 255 255 / 85%) 46%,transparent 67%);animation:topology-thumbnail-loading 1.1s linear infinite;transform:translate(-100%)}.nvr-topology-link__preview.is-failed{color:#94a3b8;background:#eef2f6}@keyframes topology-thumbnail-loading{to{transform:translate(100%)}}.nvr-topology-link__preview .camera-selector-status-dot{right:1px;bottom:1px;width:8px;height:8px;border-width:1px}.nvr-topology-mini-map{position:relative;display:block;flex:0 0 100%;height:96px;margin-top:2px;overflow:hidden;background:#e8f0f7;border:1px solid #cddceb;border-radius:9px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.nvr-topology-mini-map:hover,.nvr-topology-mini-map:focus-visible{border-color:#69b1ff;box-shadow:0 0 0 3px #1677ff1f;transform:translateY(-1px);outline:none}.nvr-topology-mini-map .leaflet-container{width:100%;height:100%;background:#e8f0f7}.nvr-topology-mini-map__caption{position:absolute;right:6px;bottom:6px;left:6px;z-index:500;overflow:hidden;padding:4px 7px;color:#fff;font-size:10px;text-overflow:ellipsis;white-space:nowrap;background:#0f172ab8;border-radius:6px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.nvr-topology-mini-map.is-empty{display:grid;height:74px;align-content:center;color:#64748b;text-align:center;background:repeating-linear-gradient(135deg,#f4f7fa,#f4f7fa 8px,#edf2f7 8px,#edf2f7 16px)}.nvr-topology-mini-map.is-empty small{font-size:10px}.nvr-topology-mini-map.is-empty strong{color:#52647c;font-size:11px}.nvr-topology-mini-map.is-empty span{color:#1677ff;font-size:10px}.nvr-topology-link__rail>.anticon{flex:0 0 auto;margin-left:-1px;padding:4px;color:#fff;background:currentColor;border-radius:50%;box-shadow:0 0 0 3px #fff}.nvr-topology-link.is-online .nvr-topology-link__rail{color:#22c55e}.nvr-topology-link.is-offline .nvr-topology-link__rail{color:#ef4444}.nvr-topology-link.is-unknown .nvr-topology-link__rail{color:#f59e0b}.nvr-topology-channel{justify-self:center;color:#52647c;font-size:11px;font-weight:700}.nvr-topology-node__meta{display:flex;align-items:center;justify-content:flex-end;flex:0 0 auto;gap:4px}.nvr-topology-node__meta .ant-tag{margin:0}.nvr-channel-topology__legend{display:flex;flex-wrap:wrap;gap:16px;padding:10px 18px;color:#64748b;font-size:12px;background:#ffffff9e;border-top:1px solid #e7eef7}.nvr-channel-topology__pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 18px;background:#ffffffc7;border-top:1px solid #d8e5f2}.nvr-channel-topology__legend span{display:inline-flex;align-items:center;gap:6px}.nvr-channel-topology__legend i{width:8px;height:8px;background:#f59e0b;border-radius:50%}.nvr-channel-topology__legend i.is-online{background:#22c55e}.nvr-channel-topology__legend i.is-offline{background:#ef4444}.nvr-channel-table{overflow:hidden;border:1px solid #dbe5f0;border-radius:12px}.nvr-channel-table .ant-table-thead>tr>th{background:#f1f6fb}.nvr-channel-action-guide{padding:16px;background:linear-gradient(145deg,#f8fbff,#f3f7fb);border:1px solid #d6e3f0;border-radius:12px}.nvr-channel-action-guide__heading{margin-bottom:12px}.nvr-channel-action-guide__heading .ant-typography{margin:0}.nvr-channel-action-guide__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.nvr-channel-action-guide__item{display:grid;gap:3px;min-width:0;padding:10px 12px;background:#ffffffd1;border:1px solid #dbe5f0;border-radius:9px}.nvr-channel-action-guide__item strong{color:#1d4f86;font-size:13px}.nvr-channel-action-guide__item span{color:#64748b;font-size:12px;line-height:1.45}.nvr-channel-action-guide__item.is-danger{background:#fff7f7;border-color:#ffccc7}.nvr-channel-action-guide__item.is-danger strong{color:#cf1322}@media (max-width: 900px){.nvr-channel-topology__canvas{grid-template-columns:minmax(0,1fr)}.nvr-topology-link{grid-template-columns:54px 48px minmax(0,1fr)}.nvr-topology-node__meta{align-items:flex-end;flex-direction:column}.nvr-channel-action-guide__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 620px){.nvr-channel-topology__header{align-items:flex-start;flex-direction:column}.nvr-channel-topology__canvas{padding:12px}.nvr-topology-link{grid-template-columns:40px minmax(0,1fr)}.nvr-topology-channel{display:none}.nvr-topology-node--camera{align-items:flex-start;flex-wrap:wrap}.nvr-topology-node__meta{align-items:center;flex-basis:100%;flex-direction:row;justify-content:flex-start;padding-left:46px}.nvr-channel-action-guide__grid,.nvr-channel-topology__filters{grid-template-columns:minmax(0,1fr)}.nvr-channel-topology__pagination{align-items:flex-start;flex-direction:column}}.address-suggestion{display:flex;flex-direction:column;gap:2px;line-height:1.35;white-space:normal}.address-suggestion span:first-child{color:#111827}.operations-workspace{align-items:start;display:grid;gap:12px;grid-template-columns:minmax(292px,340px) minmax(0,1fr)}.dashboard-health-rail{background:#eef2f7;border-radius:999px;display:flex;height:5px;margin-top:auto;overflow:hidden;width:100%}.dashboard-health-rail .online{background:#22c55e}.dashboard-health-rail .offline{background:#ef4444}.operations-inventory,.operations-detail{min-width:0}.operations-inventory{position:sticky;top:16px}.operations-inventory .ant-table-row{cursor:pointer}.operations-inventory-table .ant-table-container,.operations-inventory-table .ant-table-content{overflow-x:hidden}.operations-inventory-table .ant-table-tbody>tr>td{padding:10px 8px;white-space:normal}.operations-inventory-row{align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) auto;min-width:0;width:100%}.operations-inventory-row__main{min-width:0}.operations-inventory-row__title{align-items:center;display:flex;gap:6px;min-width:0}.operations-inventory-row__title .ant-typography{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.operations-inventory-row__title .ant-tag{flex:0 0 auto;margin:0;white-space:nowrap}.operations-inventory-row__meta{display:block;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.operations-inventory-row__action{flex:0 0 auto;white-space:nowrap}.camera-overview-descriptions .ant-descriptions-view{overflow:hidden}.camera-overview-descriptions .ant-descriptions-view>table{min-width:0;table-layout:fixed;width:100%}.camera-overview-descriptions .ant-descriptions-item-label{min-width:0;white-space:nowrap;width:148px}.camera-overview-descriptions .ant-descriptions-item-content{min-width:0;overflow-wrap:normal;white-space:nowrap;word-break:normal}.camera-connection-status{align-items:center;flex-wrap:nowrap;min-width:max-content}.camera-connection-status .ant-tag{flex:0 0 auto;margin:0}.camera-connection-status .ant-typography{white-space:nowrap}.operations-inventory .selected-row>td{background:#eaf4ff!important}.operations-detail{display:flex;flex-direction:column;gap:12px}.operations-topology-card .ant-card-body{padding:16px}.operations-topology-card .topology-map{height:min(64vh,640px);min-height:500px}.operations-map-summary{display:grid;gap:10px}.operations-context .ant-card-body{padding:14px 16px}.operations-context .statistic-block{min-width:0}.operations-context .statistic-block .ant-typography{overflow-wrap:anywhere}.statistic-block{background:#f8fafc;border:1px solid #e5e7eb;display:flex;flex-direction:column;gap:4px;min-height:64px;padding:10px 12px}.player{align-items:center;aspect-ratio:16 / 9;background:#111827;color:#fff;display:flex;flex-direction:column;font-size:18px;gap:8px;justify-content:center;margin-bottom:12px}.player .anticon{font-size:42px}.live-player{background:#020617;position:relative;width:100%}.live-video{aspect-ratio:16 / 9;background:#111827;display:block;margin-bottom:12px;object-fit:contain;width:100%}.live-player-vidstack{border-radius:4px;overflow:hidden}.vms-vidstack-player{--media-brand: #1677ff;--media-focus-ring-color: rgba(22, 119, 255, .82);aspect-ratio:16 / 9;background:#0f172a;color:#fff;width:100%}.vms-vidstack-player video{object-fit:contain}.vms-vidstack-poster{background:#0f172a}.live-player-loader{align-items:center;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;pointer-events:none;position:absolute;z-index:2}.live-audio-toggle{align-items:center;background:#111827b8;border:1px solid rgba(255,255,255,.24);box-shadow:0 8px 20px #00000042;color:#fff;display:inline-flex;height:30px;justify-content:center;left:10px;position:absolute;top:10px;width:30px;z-index:5}.live-audio-toggle:hover,.live-audio-toggle:focus{background:#1677ffeb!important;border-color:#ffffff61!important;color:#fff!important}.live-audio-toggle.active{background:#16a34ae6}.live-audio-toggle.no-track{opacity:.78}.live-unavailable{align-items:center;aspect-ratio:16 / 9;background:#111827;color:#fff;display:flex;flex-direction:column;gap:12px;justify-content:center;margin-bottom:12px;padding:24px;text-align:center}.live-unavailable .anticon{font-size:42px}.live-unavailable .ant-typography{color:#fff}.live-unavailable .ant-alert{max-width:720px;text-align:left;width:100%}.snapshot{aspect-ratio:16 / 9;background:#0f172a;border:1px solid #e5e7eb;display:block;margin-bottom:12px;object-fit:contain;width:100%}.topology-map{border:1px solid #d9e0ea;display:flex;flex-direction:column;height:min(78vh,760px);min-height:560px;overflow:hidden}.map-notice{border-left:0;border-right:0;border-top:0;flex:0 0 auto}.map-summary{align-items:center;background:#fff;border-bottom:1px solid #d9e0ea;display:flex;flex-wrap:wrap;gap:6px;padding:8px 10px}.topology-map-canvas{flex:1 1 auto;min-height:0;position:relative}.map-inspector{background:#fff;border:1px solid #d9e0ea;border-radius:8px;box-shadow:0 14px 34px #0f172a24;max-height:calc(100% - 24px);max-width:min(980px,calc(100% - 24px));overflow:hidden;padding:10px;position:absolute;right:12px;top:12px;width:min(900px,calc(100% - 24px));z-index:600}.map-inspector-header{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:8px}.map-inspector-list{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding-bottom:2px}.map-inspector-alert{margin-bottom:8px}.map-inspector-item{align-items:flex-start;background:#f8fafc;border:1px solid #e5e7eb;border-radius:7px;display:grid;flex:0 0 245px;gap:6px;min-width:0;padding:8px}.map-inspector-item.exact{background:#f7fef9;border-color:#bbf7d0}.map-inspector-item.estimated{background:#fffbeb;border-color:#fde68a}.map-inspector-title{align-items:center;display:flex;gap:6px;justify-content:space-between;min-width:0}.map-inspector-title .ant-typography,.map-inspector-item .ant-typography{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-coordinate-line{color:#64748b;font-size:12px;min-width:0}.map-coordinate-line .ant-typography{font-family:Consolas,Courier New,monospace}.map-location-accuracy{justify-self:start;margin-inline-end:0}.map-popup{min-width:260px}.map-detail-grid{border:1px solid #eef0f3;display:grid;grid-template-columns:1fr;width:100%}.map-detail-row{display:grid;gap:8px;grid-template-columns:96px minmax(0,1fr);padding:5px 8px}.map-detail-row+.map-detail-row{border-top:1px solid #eef0f3}.map-detail-row .ant-typography:last-child{overflow-wrap:anywhere}.topology-map-canvas .leaflet-container{height:100%}.topology-map .leaflet-container{flex:1 1 auto;min-height:420px;width:100%}.device-marker{background:transparent;border:0;box-shadow:none;color:#fff;font-size:11px;font-weight:700;pointer-events:auto;position:relative}.marker-dot{background:#1769aa;border:3px solid #ffffff;border-radius:999px;box-shadow:0 5px 14px #0f172a47;height:18px;left:1px;position:absolute;top:8px;width:18px;z-index:2}.marker-label{background:#0f172aeb;border:1px solid rgba(255,255,255,.28);border-radius:6px;box-shadow:0 8px 18px #0f172a2e;color:#fff;display:block;left:24px;line-height:1.2;max-width:136px;overflow:hidden;padding:5px 8px;position:absolute;text-overflow:ellipsis;top:3px;white-space:nowrap}.marker-count{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;display:grid;font-size:10px;height:18px;left:12px;line-height:1;place-items:center;position:absolute;top:-1px;width:18px;z-index:3}.marker-subtitle{background:#fff;border:1px solid #dbe4ef;border-radius:999px;color:#475569;display:block;font-size:10px;left:24px;line-height:1.1;max-width:150px;overflow:hidden;padding:3px 7px;position:absolute;text-overflow:ellipsis;top:28px;white-space:nowrap}.nvr-marker .marker-dot{background:#1769aa}.camera-marker .marker-dot{background:#1f9d55}.camera-marker.offline .marker-dot{background:#d93025}.camera-marker.degraded .marker-dot{background:#d97706}.camera-marker.unknown .marker-dot{background:#6b7280}.camera-marker.selected .marker-dot{box-shadow:0 0 0 4px #facc1573,0 5px 14px #0f172a47}.device-cluster-marker .marker-dot{background:#0f172a}.device-cluster-marker .marker-label{background:#0f172af0;max-width:150px}.form-location-picker{background:#f8fbff;border:1px solid #dbeafe;border-radius:8px;margin-bottom:12px;padding:12px}.form-location-picker-header{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:8px}.form-location-picker-help{display:block;margin-bottom:8px}.form-location-picker-address{background:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#334155;display:block;margin-bottom:10px;padding:8px 10px}.location-picker{border:1px solid #d9e0ea;border-radius:6px;height:320px;margin-bottom:12px;overflow:hidden;position:relative}.location-picker .leaflet-container{height:100%;width:100%}.location-picker-copy{background:#fffffff0;border:1px solid #d9e0ea;border-radius:6px;bottom:12px;box-shadow:0 8px 20px #0f172a1f;left:12px;max-width:calc(100% - 24px);padding:6px 8px;position:absolute;z-index:410}.location-picker-marker{align-items:center;background:#1769aa;border:3px solid #ffffff;box-shadow:0 8px 18px #0f172a40;display:flex;justify-content:center}.location-picker-marker span{background:#fff;display:block;height:6px;width:6px}.multi-live-grid{display:grid;gap:10px;width:100%}.nvr-live-view{width:100%}.multi-live-toolbar{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:12px}.multi-live-toolbar.focus{background:#050914c2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(148,163,184,.16);box-shadow:0 8px 24px #00000038;color:#dbeafe;margin:0;min-height:54px;padding:8px 14px}.multi-live-toolbar.focus .ant-typography{color:#e2e8f0db}.live-focus-clock{background:#fff;border:1px solid #dbe4ef;border-radius:6px;color:#334155!important;font-variant-numeric:tabular-nums;padding:5px 10px;white-space:nowrap}.multi-live-toolbar.focus .ant-select-selector,.multi-live-toolbar.focus .ant-btn{border-color:#cbd5e13d;box-shadow:none}.multi-live-toolbar.focus .ant-select-selector{background:#ffffffeb}.multi-live-grid.grid-1{grid-template-columns:1fr}.multi-live-grid.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.multi-live-grid.grid-9{grid-template-columns:repeat(3,minmax(0,1fr))}.multi-live-grid.grid-16{grid-template-columns:repeat(4,minmax(0,1fr))}.multi-live-grid.grid-25{grid-template-columns:repeat(5,minmax(0,1fr))}.multi-live-grid.grid-36{grid-template-columns:repeat(6,minmax(0,1fr))}.multi-live-grid.grid-64{grid-template-columns:repeat(8,minmax(0,1fr))}.multi-live-tile{background:#fff;border:1px solid #d9e0ea;min-width:0;padding:8px}.multi-live-tile.empty{border-style:dashed}.multi-live-header{align-items:center;display:flex;gap:8px;justify-content:space-between;min-height:28px}.multi-live-player{align-items:center;aspect-ratio:16 / 9;background:#111827;color:#fff;display:flex;flex-direction:column;font-size:14px;gap:8px;justify-content:center;margin:8px 0}.multi-live-player.empty{background:#1f2937;color:#d1d5db}.multi-live-player .anticon{font-size:30px}.live-focus-overlay{background:#050914;top:0;right:0;bottom:0;left:0;position:fixed;z-index:2000}.live-focus-shell{display:flex;flex-direction:column;height:100vh;width:100vw}.live-focus-shell .multi-live-grid{flex:1 1 auto;gap:2px;min-height:0;padding:2px}.multi-live-grid.focus.grid-1,.multi-live-grid.focus.grid-4,.multi-live-grid.focus.grid-9,.multi-live-grid.focus.grid-16,.multi-live-grid.focus.grid-25,.multi-live-grid.focus.grid-36,.multi-live-grid.focus.grid-64{grid-auto-rows:minmax(0,1fr)}.multi-live-grid.focus .multi-live-tile{background:#050914;border:0;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0;position:relative}.multi-live-grid.focus .multi-live-header{align-items:flex-start;background:transparent;bottom:auto;color:#fff;left:10px;min-height:0;padding:0;position:absolute;right:10px;top:10px;z-index:8;pointer-events:none}.multi-live-grid.focus .multi-live-title-drag,.multi-live-grid.focus .multi-live-header-actions{align-items:center;background:#05091494;border:1px solid rgba(226,232,240,.14);border-radius:9px;box-shadow:0 8px 22px #00000038;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto}.multi-live-grid.focus .multi-live-title-drag{align-self:flex-start;flex:0 0 auto;max-width:min(50%,320px);min-height:28px;padding:4px 8px}.multi-live-grid.focus .multi-live-header-actions{align-self:flex-start;flex-direction:column;gap:6px;justify-content:flex-start;margin-left:auto;padding:4px 3px}.multi-live-grid.focus .multi-live-drag-handle{color:#ffffffc7;cursor:grab;display:inline-flex}.multi-live-grid.focus .multi-live-header .ant-typography{background:linear-gradient(90deg,#05091494,#05091429);border-radius:6px;box-shadow:none;color:#fff;font-size:13px;font-weight:600;line-height:1.2;max-width:100%;overflow:hidden;padding:0;text-shadow:0 1px 2px rgba(0,0,0,.65);text-overflow:ellipsis;white-space:nowrap}.multi-live-grid.focus .multi-live-header-actions{align-items:center;display:inline-flex;flex:0 0 auto}.multi-live-grid.focus .multi-live-header .ant-tag{border:0;background:#f0fdf4eb;box-shadow:none;font-size:11px;line-height:18px;margin-inline-end:0;min-width:46px;text-align:center}.multi-live-grid.focus .focus-snapshot-button{align-items:center;background:#ffffffeb;border:0;border-radius:7px;box-shadow:none;color:#0f172a;display:inline-flex;height:26px;justify-content:center;min-width:30px;padding:0 7px}.multi-live-grid.focus .focus-snapshot-button:hover{background:#fff;color:#1677ff}.multi-live-grid.focus .multi-live-stream-info.compact{display:none}.multi-live-grid.focus .live-player,.multi-live-grid.focus .multi-live-tile>.ant-space,.multi-live-grid.focus .multi-live-tile>.ant-space>.ant-space-item{display:flex;flex:1 1 auto;flex-direction:column;min-height:0;overflow:hidden}.multi-live-grid.focus .live-player,.multi-live-grid.focus .live-unavailable,.multi-live-grid.focus .multi-live-player{flex:1 1 auto;margin:0;min-height:0;overflow:hidden;padding-top:0}.multi-live-grid.focus .live-video,.multi-live-grid.focus .live-unavailable,.multi-live-grid.focus .multi-live-player{aspect-ratio:auto;height:100%;object-fit:contain;width:100%}.multi-live-grid.focus .multi-live-tile.empty .multi-live-header{background:transparent}.multi-live-grid.focus .multi-live-tile.empty .tile-camera-select{border-top:1px solid #111827;flex:0 0 auto;margin:0}.multi-live-grid.focus .focus-tile-controls{bottom:44px;display:none;left:10px;opacity:0;position:absolute;right:10px;transition:opacity .16s ease;z-index:3}.multi-live-grid.focus .multi-live-tile:hover .focus-tile-controls,.multi-live-grid.focus .multi-live-tile:focus-within .focus-tile-controls{opacity:1}.multi-live-grid.focus .focus-select{margin:0;width:100%}.multi-live-grid.focus .focus-select .ant-select-selector{background:#ffffffeb;border-color:#94a3b847}.multi-live-grid.focus .live-audio-toggle{display:none}.multi-live-grid.focus .multi-live-tile.empty .multi-live-player{min-height:0}.tile-camera-select{margin-top:8px;width:100%}.device-live-actions{margin-top:8px}.device-live-actions-top{margin-bottom:8px;margin-top:0}.ptz-preview-empty{align-items:center;aspect-ratio:16 / 9;background:#111827;color:#fff;display:flex;flex-direction:column;gap:8px;justify-content:center;text-align:center}.ptz-preview-empty .anticon{font-size:36px}.ptz-preview-empty .ant-typography{color:#fff}.ptz-pad{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.ptz-pad .ant-btn{min-width:0}.gallery-image{aspect-ratio:16 / 9;background:#111827;object-fit:contain;width:100%}.gallery-pagination{align-items:center;display:flex;gap:12px;justify-content:space-between}@media (min-width: 1200px){.multi-live-grid.grid-9{grid-template-columns:repeat(3,minmax(0,1fr))}.multi-live-grid.grid-16{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 1180px){.operations-workspace{grid-template-columns:1fr}.operations-inventory{position:static}.login-screen{grid-template-columns:1fr;padding:32px 20px}.login-visual{max-width:none}}@media (max-width: 720px){.login-monitor-grid{grid-template-columns:1fr}.login-visual h1.ant-typography{font-size:42px}}.login-screen{background:radial-gradient(circle at 12% 18%,rgba(37,99,235,.16),transparent 30%),radial-gradient(circle at 82% 16%,rgba(20,184,166,.16),transparent 28%),linear-gradient(135deg,#f8fbff,#eef6ff 48%,#f8fafc);color:#0f172a}.login-screen:before{background:linear-gradient(180deg,transparent,rgba(37,99,235,.09),transparent)}.login-orbit{border-color:#2563eb29}.login-brand-mark{background:#fff;border-color:#2563eb2e;box-shadow:0 20px 70px #2563eb24;color:#1677ff}.login-visual .ant-typography{color:#475569}.login-visual h1.ant-typography{color:#0f172a}.login-card{background:#fffffff0;border:1px solid rgba(148,163,184,.28);box-shadow:0 28px 90px #0f172a29}.login-device-stage{align-items:end;display:grid;gap:16px;grid-template-columns:156px 180px minmax(180px,260px);margin:30px 0 26px;max-width:640px}.login-nvr-unit{animation:login-device-rise .7s ease-out both;background:linear-gradient(180deg,#fff,#eaf2ff);border:1px solid rgba(37,99,235,.18);border-radius:8px;box-shadow:0 18px 42px #0f172a1f;display:flex;flex-direction:column;gap:9px;min-height:112px;padding:16px;position:relative}.login-nvr-unit strong{color:#1d4ed8;font-size:13px;letter-spacing:.08em;margin-top:auto}.login-nvr-led{animation:login-led 1.45s ease-in-out infinite;background:#22c55e;border-radius:999px;box-shadow:0 0 0 4px #22c55e1f;height:10px;position:absolute;right:14px;top:14px;width:10px}.login-nvr-slot{background:#cbd5e1;border-radius:999px;display:block;height:8px;width:92px}.login-nvr-slot.short{width:62px}.login-camera-arm{animation:login-device-rise .76s ease-out both 80ms;height:142px;position:relative}.login-camera-arm:before{background:#94a3b8;bottom:12px;content:"";height:78px;left:88px;position:absolute;transform:rotate(8deg);transform-origin:bottom;width:8px}.login-camera-body{align-items:center;animation:login-camera-pan 4.8s ease-in-out infinite;background:linear-gradient(135deg,#1677ff,#0f766e);border:3px solid #ffffff;border-radius:16px;box-shadow:0 18px 42px #2563eb38;color:#fff;display:flex;font-size:30px;height:76px;justify-content:center;left:36px;position:absolute;top:0;width:112px;z-index:2}.login-camera-lens{animation:login-lens 2.8s ease-in-out infinite;background:#ffffffe6;border-radius:999px;bottom:14px;height:10px;position:absolute;right:16px;width:10px}.login-camera-beam{animation:login-beam 3.2s ease-in-out infinite;background:linear-gradient(90deg,rgba(37,99,235,.2),transparent);border-radius:999px;height:54px;left:134px;opacity:.7;position:absolute;top:14px;transform:skewY(-9deg);width:120px}.login-keyboard{animation:login-device-rise .82s ease-out both .14s;background:#ffffffb8;border:1px solid rgba(148,163,184,.24);border-radius:8px;box-shadow:0 18px 42px #0f172a1a;display:grid;gap:6px;grid-template-columns:repeat(6,minmax(0,1fr));padding:12px}.login-keyboard span{animation:login-key-press 2.4s ease-in-out infinite;background:#e2e8f0;border-radius:5px;box-shadow:inset 0 -2px #0f172a1f;height:18px}.login-monitor-tile{background:#ffffffc7;border-color:#2563eb2e;box-shadow:0 12px 34px #0f172a14}.login-monitor-tile strong{color:#0f172a}.nvr-live-view{background:#f8fafc;border:1px solid #e2e8f0;display:flex;flex-direction:column;height:clamp(560px,calc(100vh - 210px),960px);overflow:hidden}.device-detail-card{border-radius:8px;overflow:visible;scroll-margin-top:72px}.device-detail-card>.ant-card-head{background:#fffffffa;border-bottom-color:#e5e7eb;min-height:56px;position:sticky;top:0;z-index:8}.device-detail-card>.ant-card-head .ant-card-extra{min-width:0;padding:8px 0}.device-detail-card>.ant-card-head .device-detail-actions{justify-content:flex-end;max-width:min(760px,68vw)}.device-detail-card>.ant-card-body{padding:0 16px 16px}.device-detail-tabs>.ant-tabs-nav{background:#fffffffa;margin:0;padding-top:14px;position:sticky;top:56px;z-index:7}.device-detail-tabs>.ant-tabs-content-holder{max-height:none;overflow:visible;overscroll-behavior:auto;padding-top:16px}.device-detail-tabs .ant-tabs-tabpane{min-width:0}.device-detail-card .ant-descriptions-view,.device-live-summary-card .ant-descriptions-view{overflow-x:auto}.device-detail-card .ant-descriptions-view>table,.device-live-summary-card .ant-descriptions-view>table{min-width:760px}.device-detail-card .ant-descriptions-item-label,.device-live-summary-card .ant-descriptions-item-label{white-space:nowrap}.device-detail-card .ant-descriptions-item-content,.device-live-summary-card .ant-descriptions-item-content{min-width:110px;overflow-wrap:normal;word-break:normal}.nvr-overview-descriptions .ant-descriptions-view{overflow:hidden}.nvr-overview-descriptions .ant-descriptions-view>table{min-width:0;table-layout:fixed;width:100%}.nvr-overview-descriptions .ant-descriptions-item-label{width:148px}.nvr-overview-descriptions .ant-descriptions-item-content{min-width:0}.device-detail-value{display:inline-block;max-width:calc(100% - 22px);overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.device-detail-value:not(:has(+.ant-typography-copy)){max-width:100%}@media (max-width: 1599px){.nvr-overview-descriptions .ant-descriptions-item-label,.camera-overview-descriptions .ant-descriptions-item-label{width:176px}.nvr-overview-descriptions .ant-descriptions-item-content,.camera-overview-descriptions .ant-descriptions-item-content{width:auto}.device-detail-value{max-width:calc(100% - 22px)}}@media (max-width: 900px){.device-detail-card>.ant-card-head{align-items:flex-start}.device-detail-card>.ant-card-head .device-detail-actions{justify-content:flex-start;max-width:100%}.nvr-overview-descriptions .ant-descriptions-item-label,.camera-overview-descriptions .ant-descriptions-item-label{width:132px}}.device-live-layout{align-items:flex-start;margin:0!important}.device-live-main,.device-live-side{min-width:0}.device-live-main .live-player,.device-live-main .live-unavailable,.device-live-loading{min-height:0}.device-live-main .live-video,.device-live-main .live-unavailable{max-height:clamp(300px,calc(100vh - 270px),560px);object-fit:contain}.device-live-side{position:sticky;top:0}.device-live-side .snapshot{background:#0f172a;border-radius:6px;display:block;max-height:260px;object-fit:contain;width:100%}.multi-live-toolbar{background:#f8fafcf5;border-bottom:1px solid #e2e8f0;flex:0 0 auto;margin:0;padding:10px;position:sticky;top:0;z-index:4}.multi-live-controls{row-gap:8px;width:100%}.live-playback-hint{align-items:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;color:#475569!important;display:inline-flex;line-height:1.35;min-height:32px;padding:4px 8px}.media-gateway-info{align-items:center;background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;display:flex;flex:1 1 100%;flex-wrap:wrap;gap:6px;line-height:1.35;max-width:100%;min-height:34px;min-width:0;overflow:hidden;padding:5px 8px}.media-gateway-info .ant-tag{max-width:100%;margin-inline-end:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-gateway-title{color:#0f172a;flex:0 0 auto;white-space:nowrap}.media-gateway-summary{flex:0 1 auto;margin-right:4px;min-width:140px}.media-gateway-info .ant-typography{max-width:100%}.nvr-live-view>.multi-live-grid,.nvr-live-view>.multi-live-player,.nvr-live-view>.multi-live-alert{margin:10px}.nvr-live-view>.multi-live-grid{flex:1 1 auto;min-height:0;overflow:auto;padding-right:4px}.nvr-live-view>.multi-live-grid.density-compact{gap:6px}.nvr-live-view>.multi-live-grid.density-compact .multi-live-tile{padding:6px}.nvr-live-view>.multi-live-grid.density-compact .multi-live-header{min-height:22px;padding-bottom:2px}.nvr-live-view>.multi-live-grid.density-compact .multi-live-header .ant-typography{font-size:12px}.nvr-live-view>.multi-live-grid.density-compact .live-player,.nvr-live-view>.multi-live-grid.density-compact .live-unavailable,.nvr-live-view>.multi-live-grid.density-compact .multi-live-player{margin:4px 0}.nvr-live-view>.multi-live-grid.density-compact .live-player>.ant-space,.nvr-live-view>.multi-live-grid.density-compact .live-player+.ant-space,.nvr-live-view>.multi-live-grid.density-compact .tile-camera-select,.nvr-live-view>.multi-live-grid.density-compact .multi-live-tile>.ant-space{display:none}.nvr-live-view>.multi-live-grid.density-large .multi-live-tile{padding:10px}.nvr-live-view>.multi-live-grid.density-large .live-player,.nvr-live-view>.multi-live-grid.density-large .live-unavailable,.nvr-live-view>.multi-live-grid.density-large .multi-live-player{margin:10px 0}.multi-live-tile{border-radius:8px;box-shadow:0 10px 24px #0f172a0d;position:relative}.multi-live-tile.recording{border-color:#ff4d4f;box-shadow:0 0 0 1px #ff4d4f3d,0 10px 24px #0f172a0f}.multi-live-video-wrap{position:relative}.live-recording-badge{align-items:center;background:#dc2626f0;border:1px solid rgba(255,255,255,.42);border-radius:4px;color:#fff;display:inline-flex;font-size:12px;font-weight:700;height:24px;left:10px;letter-spacing:0;padding:0 8px;position:absolute;top:10px;z-index:6}.live-recording-badge:before{background:#fff;border-radius:999px;content:"";height:7px;margin-right:6px;width:7px}.live-recording-tag,.live-recording-status{font-weight:600;margin-inline-end:0}.multi-live-player.offline{background:#172033;color:#f8fafc}.multi-live-header{padding:0 2px 4px}.multi-live-tile .live-video,.multi-live-tile .live-unavailable,.multi-live-tile .multi-live-player{border-radius:4px}.nvr-live-view{height:auto;max-height:none;overflow:visible}.nvr-live-view .multi-live-toolbar{align-items:flex-start;border:1px solid #dbe4f0;border-bottom:0;display:grid;gap:6px;grid-template-columns:minmax(0,1fr);margin:0;padding:8px}.nvr-live-view .multi-live-controls{align-items:center;display:flex;gap:8px;width:100%}.camera-live-workspace{overflow:hidden;background:#f4f8fc;border:1px solid #d6e3f0;border-radius:14px;box-shadow:0 8px 24px #0f172a0f}.camera-live-workspace__header,.camera-live-workspace__toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px}.camera-live-workspace__header{background:linear-gradient(135deg,#f8fbff,#eef6ff);border-bottom:1px solid #dbe7f3}.camera-live-workspace__header .ant-typography{margin:0}.camera-live-workspace__toolbar{flex-wrap:wrap;background:#ffffffd1;border-bottom:1px solid #dbe7f3}.camera-live-mode-select{min-width:220px}.camera-live-workspace .device-live-layout{padding:16px}.camera-live-workspace .device-live-main{overflow:hidden;padding:10px!important;color:#172033;background:#fff;border:1px solid #d6e3f0;border-radius:12px}.camera-live-workspace .device-live-main .live-player,.camera-live-workspace .device-live-main .live-unavailable{overflow:hidden;color:#fff;background:#0b1220;border:1px solid #1e293b;border-radius:9px}.camera-live-workspace .device-live-main .live-stream-details{padding:12px;color:#172033;background:#f8fafc;border:1px solid #dbe5f0;border-radius:9px}.camera-live-workspace .device-live-main .live-stream-details .ant-typography,.camera-live-workspace .device-live-main .live-stream-details .ant-descriptions-item-content{color:#172033}.camera-live-workspace .device-live-side{display:grid;gap:12px}.camera-live-snapshot-card,.camera-live-source-card{overflow:hidden;border-color:#d6e3f0;border-radius:10px}.camera-live-snapshot-card .snapshot{margin-bottom:9px;cursor:zoom-in}.camera-live-snapshot-empty{display:grid;min-height:150px;margin-bottom:9px;color:#7c8da3;background:repeating-linear-gradient(135deg,#f5f8fb,#f5f8fb 8px,#edf2f7 8px,#edf2f7 16px);border-radius:7px;place-content:center;text-align:center}.camera-live-snapshot-empty .anticon{margin:0 auto 7px;font-size:25px}.camera-live-source-card dl{margin:0}.camera-live-source-card dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:7px 0;border-bottom:1px solid #eef2f7}.camera-live-source-card dl>div:last-child{border-bottom:0}.camera-live-source-card dt{color:#64748b}.camera-live-source-card dd{overflow:hidden;max-width:130px;margin:0;color:#172033;font-weight:600;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 700px){.camera-live-workspace__header{align-items:flex-start;flex-direction:column}.camera-live-mode-select{width:100%}.camera-live-workspace__toolbar>.ant-space{width:100%}}.nvr-live-view .multi-live-controls .ant-select{max-width:100%}.multi-live-page-controls{align-items:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;flex:0 1 auto;padding:3px 6px}.multi-live-page-controls .ant-typography{white-space:nowrap}.live-large-nvr-hint{flex:1 1 100%;line-height:1.4}.nvr-live-view .multi-live-primary-action,.nvr-live-view .multi-live-secondary-action{height:32px}.nvr-live-view>.multi-live-grid{border:1px solid #dbe4f0;margin:0;max-height:none;overflow:visible;padding:8px}.nvr-live-view>.multi-live-grid.grid-1{grid-template-columns:minmax(0,1fr)}.nvr-live-view>.multi-live-grid.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.nvr-live-view>.multi-live-grid.grid-9{grid-template-columns:repeat(3,minmax(0,1fr))}.nvr-live-view>.multi-live-grid.grid-16{grid-template-columns:repeat(4,minmax(0,1fr))}.nvr-live-view>.multi-live-grid.grid-25{grid-template-columns:repeat(5,minmax(0,1fr))}.nvr-live-view>.multi-live-grid.grid-36{grid-template-columns:repeat(6,minmax(0,1fr))}.nvr-live-view>.multi-live-grid.grid-64{grid-template-columns:repeat(8,minmax(0,1fr))}.nvr-live-view>.multi-live-grid.density-compact{gap:8px}.nvr-live-view>.multi-live-grid.density-compact .multi-live-tile{display:flex;flex-direction:column;min-height:0;padding:6px}.nvr-live-view>.multi-live-grid.density-compact .multi-live-header{background:#fff;min-height:22px;padding:0 2px 4px}.nvr-live-view>.multi-live-grid.density-compact .live-player,.nvr-live-view>.multi-live-grid.density-compact .live-unavailable,.nvr-live-view>.multi-live-grid.density-compact .multi-live-player{flex:1 1 auto;height:clamp(190px,22vw,280px);margin:0;min-height:170px}.nvr-live-view>.multi-live-grid.density-compact.grid-1 .live-player,.nvr-live-view>.multi-live-grid.density-compact.grid-1 .live-unavailable,.nvr-live-view>.multi-live-grid.density-compact.grid-1 .multi-live-player{height:clamp(360px,55vh,640px)}.nvr-live-view>.multi-live-grid.density-compact .live-video,.nvr-live-view>.multi-live-grid.density-compact .live-unavailable,.nvr-live-view>.multi-live-grid.density-compact .multi-live-player{aspect-ratio:auto;height:100%;margin:0;object-fit:contain;object-position:center center}.nvr-live-view>.multi-live-grid.density-compact .focus-tile-controls,.nvr-live-view>.multi-live-grid.density-compact .tile-camera-select,.nvr-live-view>.multi-live-grid.density-compact .multi-live-tile>.ant-space,.nvr-live-view>.multi-live-grid.density-compact .live-player+.ant-space{display:none!important}.nvr-live-view>.multi-live-grid.density-comfortable .live-player,.nvr-live-view>.multi-live-grid.density-comfortable .live-unavailable,.nvr-live-view>.multi-live-grid.density-comfortable .multi-live-player{aspect-ratio:16 / 9;height:auto;margin:2px 0 6px;min-height:0}.nvr-live-view>.multi-live-grid.many-cameras{gap:6px;padding:8px}.nvr-live-view>.multi-live-grid.many-cameras .multi-live-tile{padding:5px}.nvr-live-view>.multi-live-grid.grid-25 .live-player,.nvr-live-view>.multi-live-grid.grid-25 .live-unavailable,.nvr-live-view>.multi-live-grid.grid-25 .multi-live-player{height:clamp(130px,12vw,190px);margin:2px 0}.nvr-live-view>.multi-live-grid.grid-36 .live-player,.nvr-live-view>.multi-live-grid.grid-36 .live-unavailable,.nvr-live-view>.multi-live-grid.grid-36 .multi-live-player{height:clamp(110px,9vw,160px);margin:2px 0}.nvr-live-view>.multi-live-grid.grid-64 .live-player,.nvr-live-view>.multi-live-grid.grid-64 .live-unavailable,.nvr-live-view>.multi-live-grid.grid-64 .multi-live-player{height:clamp(90px,7vw,130px);margin:2px 0}.nvr-live-view>.multi-live-grid.many-cameras .multi-live-header{min-height:22px;padding-bottom:2px}.nvr-live-view>.multi-live-grid.many-cameras .multi-live-header .ant-typography{font-size:12px}.nvr-live-view>.multi-live-grid.many-cameras .multi-live-stream-info,.nvr-live-view>.multi-live-grid.many-cameras .tile-camera-select,.nvr-live-view>.multi-live-grid.many-cameras .live-player+.ant-space{display:none}.nvr-live-view>.multi-live-grid.density-comfortable .live-video,.nvr-live-view>.multi-live-grid.density-comfortable .live-unavailable,.nvr-live-view>.multi-live-grid.density-comfortable .multi-live-player{aspect-ratio:auto;height:100%;object-fit:contain;object-position:center center}.nvr-live-view>.multi-live-grid.density-large .live-player,.nvr-live-view>.multi-live-grid.density-large .live-unavailable,.nvr-live-view>.multi-live-grid.density-large .multi-live-player{height:clamp(360px,44vw,620px)}.live-command-header{align-items:center;display:flex;flex:1 1 100%;gap:16px;justify-content:space-between;min-width:0;padding:2px 2px 8px;width:100%}.live-command-identity,.live-command-statuses{align-items:center;display:flex}.live-command-identity{gap:8px;min-width:180px}.live-command-identity>div{display:flex;flex-direction:column;line-height:1.3}.live-command-statuses{background:#f3f7fb;border:1px solid #dbe4ef;border-radius:6px;gap:4px;flex:0 1 auto;max-width:100%;overflow-x:auto;padding:3px}.live-command-statuses>span,.live-command-statuses .live-focus-clock{background:#fff;border-radius:4px;color:#526174;font-size:12px;padding:4px 8px;white-space:nowrap}.live-command-statuses>span b{color:#111827;font-size:14px;margin-right:3px}.live-command-statuses>span.recording,.live-command-statuses>span.recording b{color:#cf1322}.live-gateway-status{align-items:center;display:inline-flex;height:32px;margin:0;white-space:nowrap}.live-tile-command-bar{align-items:center;border-top:1px solid #e7edf4;display:flex;justify-content:space-between;min-height:42px;padding-top:6px}.live-tile-command-bar .ant-btn{align-items:center;display:inline-flex;height:32px;justify-content:center;padding:0;width:32px}.multi-live-tile.recording .live-tile-command-bar{border-top-color:#ffccc7}.multi-live-toolbar.focus .live-command-header{color:#fff;padding-bottom:2px}.multi-live-toolbar.focus .live-command-identity .ant-typography{color:#fff}.multi-live-toolbar.focus .live-command-statuses{background:#172338;border-color:#334155}.multi-live-toolbar.focus .live-command-statuses>span,.multi-live-toolbar.focus .live-command-statuses .live-focus-clock{background:#0f172a;color:#cbd5e1!important}.multi-live-toolbar.focus .live-command-statuses>span b{color:#fff}@media (max-width: 760px){.live-command-header{align-items:stretch;flex-direction:column;gap:8px}.live-command-statuses{width:100%}.live-tile-command-bar{overflow-x:auto}}@keyframes login-device-rise{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes login-camera-pan{0%,to{transform:translate(0) rotate(-2deg)}50%{transform:translate(10px) rotate(3deg)}}@keyframes login-beam{0%,to{opacity:.34;transform:skewY(-9deg) scaleX(.82)}50%{opacity:.72;transform:skewY(-5deg) scaleX(1)}}@keyframes login-lens{0%,to{box-shadow:0 0 #fff0}50%{box-shadow:0 0 18px #ffffffe6}}@keyframes login-led{0%,to{opacity:.55}50%{opacity:1}}@keyframes login-key-press{0%,74%,to{transform:translateY(0)}82%{transform:translateY(3px)}}@media (max-width: 920px){.login-device-stage{grid-template-columns:1fr}.login-camera-arm{display:none}.nvr-live-view{height:auto;overflow:visible}.device-detail-card>.ant-card-head,.device-detail-tabs>.ant-tabs-nav,.device-live-side{position:static}.device-detail-card>.ant-card-body{padding:0 14px 16px}.device-detail-tabs>.ant-tabs-content-holder{max-height:none;overflow:visible}.nvr-live-view>.multi-live-grid{overflow:visible}}html,body,#root{min-width:0;overflow-x:hidden}.app-shell,.app-shell .ant-layout,.content,.device-detail-card,.device-detail-tabs,.nvr-live-view,.multi-live-grid,.multi-live-tile,.live-player,.live-video{min-width:0}.content{max-width:100vw;overflow-x:hidden}.multi-live-controls,.multi-live-controls .ant-space-item{max-width:100%;min-width:0}.multi-live-camera-select{max-width:100%;min-width:220px}.multi-live-camera-select .ant-select-selector{max-width:100%}.nvr-live-view>.multi-live-grid{width:100%}@media (max-width: 1400px){.nvr-live-view>.multi-live-grid.grid-25,.nvr-live-view>.multi-live-grid.grid-36,.nvr-live-view>.multi-live-grid.grid-64{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 1100px){.nvr-live-view>.multi-live-grid.grid-9,.nvr-live-view>.multi-live-grid.grid-16,.nvr-live-view>.multi-live-grid.grid-25,.nvr-live-view>.multi-live-grid.grid-36,.nvr-live-view>.multi-live-grid.grid-64{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.content{padding:8px}.topbar{gap:8px;padding:0 10px}.nvr-live-view .multi-live-toolbar{padding:8px}.multi-live-controls{align-items:stretch;display:flex;flex-direction:column;width:100%}.multi-live-controls .ant-space-item,.multi-live-controls .ant-select,.multi-live-controls .ant-btn{max-width:100%!important;width:100%!important}.nvr-live-view>.multi-live-grid{gap:8px;grid-template-columns:1fr!important;padding:8px}.nvr-live-view>.multi-live-grid.density-compact .live-player,.nvr-live-view>.multi-live-grid.density-comfortable .live-player,.nvr-live-view>.multi-live-grid.density-large .live-player{height:clamp(180px,56vw,280px)}.multi-live-meta{font-size:12px;line-height:1.45}}@media (max-width: 520px){.dashboard-strip .ant-col{flex:0 0 100%;max-width:100%}.device-detail-card>.ant-card-head{padding:0 10px}.device-detail-card>.ant-card-body{padding:0 10px 12px}}.device-live-workbench{display:grid;gap:10px;grid-template-columns:minmax(236px,280px) minmax(0,1fr)}.device-live-tree-card,.device-live-summary-card,.device-live-player-card,.device-live-empty{border-radius:8px}.device-live-tree-card{align-self:start;position:sticky;top:72px}.device-live-tree-card .ant-card-body{display:flex;flex-direction:column;gap:10px;padding:10px}.device-live-tree-card .ant-tree{background:transparent}.device-live-tree-card .ant-tree-list{border:1px solid #eef2f7;border-radius:8px;padding:4px}.live-tree-title{display:inline-flex;max-width:100%;min-width:0}.live-tree-title .ant-typography{max-width:116px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-live-tree-card .ant-tree-treenode{padding-bottom:2px}.device-live-tree-card .ant-tree-node-content-wrapper{min-width:0}.device-live-tree-card .ant-tag{line-height:20px;margin-inline-end:0}.device-live-content{min-width:0}.device-live-summary-card .ant-card-body{padding:12px}.device-live-player-card .ant-card-body{padding:8px}.login-visual:after{background:linear-gradient(90deg,rgba(37,99,235,.08) 1px,transparent 1px),linear-gradient(180deg,rgba(37,99,235,.08) 1px,transparent 1px);background-size:44px 44px;border-radius:18px;content:"";height:210px;opacity:.46;position:absolute;right:-90px;top:156px;transform:perspective(600px) rotateY(-24deg) rotateX(12deg);width:310px;z-index:-1}.login-visual:before{animation:login-pulse-ring 4.4s ease-in-out infinite;border:1px solid rgba(37,99,235,.18);border-radius:999px;content:"";height:260px;left:-44px;position:absolute;top:86px;width:260px;z-index:-1}.login-monitor-tile:nth-child(2n){transform:translateY(12px)}.login-card:before{background:linear-gradient(135deg,#2563eb29,#14b8a624);border-radius:18px;content:"";top:-22px;right:-22px;bottom:-22px;left:-22px;position:absolute;transform:rotate(-2deg);z-index:-1}@keyframes login-pulse-ring{0%,to{opacity:.42;transform:scale(.98)}50%{opacity:.85;transform:scale(1.04)}}@media (min-width: 1500px){.login-screen{grid-template-columns:minmax(720px,1fr) minmax(420px,560px)}.login-visual{max-width:900px}.login-device-stage,.login-monitor-grid{max-width:760px}}@media (max-width: 1100px){.device-live-workbench{grid-template-columns:1fr}.device-live-tree-card{position:static}.device-live-tree-card .ant-tree-list{max-height:320px;overflow:auto}}@media (max-width: 720px){.device-live-summary-card .ant-card-head,.device-live-player-card .ant-card-head,.device-live-tree-card .ant-card-head{padding:0 10px}.device-live-summary-card .ant-card-body,.device-live-player-card .ant-card-body,.device-live-tree-card .ant-card-body{padding:10px}.login-visual:before,.login-visual:after{display:none}}.device-live-page{display:grid;gap:12px}.device-live-back-connections{justify-self:start}.device-live-workbench{align-items:start;grid-template-columns:minmax(236px,280px) minmax(0,1fr)}.device-live-workbench.tree-collapsed{grid-template-columns:56px minmax(0,1fr)}.device-live-workbench.tree-collapsed .device-live-tree-card .ant-card-head{padding:0;min-height:48px}.device-live-workbench.tree-collapsed .device-live-tree-card .ant-card-head-title{display:none}.device-live-workbench.tree-collapsed .device-live-tree-card .ant-card-extra{display:flex;justify-content:center;margin:0;padding:0;width:100%}.device-live-workbench.tree-collapsed .device-live-tree-card .ant-space{justify-content:center;width:100%}.device-live-workbench.tree-collapsed .device-live-tree-toggle{height:34px;padding:0;width:36px}.device-live-workbench.tree-collapsed .device-live-tree-card .ant-card-body{display:none}.device-live-tree-card{position:static!important;top:auto!important}.device-live-tree-card .ant-tree-list{max-height:none!important;overflow:visible!important}.device-live-content,.device-live-player-card,.device-live-player-card .ant-card-body,.nvr-live-view{overflow-x:clip!important;overflow-y:visible!important}.nvr-live-view>.multi-live-grid{overflow-x:clip!important;overflow-y:visible!important}.multi-live-tile{overflow:hidden}.multi-live-title-drag,.multi-live-title-drag .ant-typography{min-width:0}.multi-live-drag-handle{color:#64748b;cursor:grab;flex:0 0 auto;font-size:15px}.multi-live-drag-handle:active{cursor:grabbing}.multi-live-tile.dragging{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff24,0 12px 28px #0f172a1a;opacity:.78}.multi-live-player.offline{gap:10px;min-height:220px;text-align:center}.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty){background:#0b1220;border-color:#cbd5e1;padding:0}.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .multi-live-header{background:linear-gradient(180deg,#020617d1,#02061700);color:#fff;left:0;min-height:48px;padding:9px 10px 14px;pointer-events:none;position:absolute;right:0;top:0;z-index:7}.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .multi-live-header .ant-typography{color:#fff;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px rgba(0,0,0,.72);white-space:nowrap}.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .multi-live-header-actions,.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .multi-live-drag-handle{pointer-events:auto}.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .multi-live-drag-handle{color:#ffffffd1}.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .multi-live-video-wrap,.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty)>.multi-live-player{margin:0}.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .live-video,.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .live-unavailable,.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .multi-live-player{border-radius:0}.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .live-tile-command-bar{background:linear-gradient(0deg,#020617e6,#02061700);border:0;margin-top:-48px;min-height:48px;opacity:0;padding:10px;position:relative;transform:translateY(5px);transition:opacity .16s ease,transform .16s ease;z-index:7}.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty):hover .live-tile-command-bar,.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty):focus-within .live-tile-command-bar{opacity:1;transform:translateY(0)}.nvr-live-view>.multi-live-grid:not(.density-compact) .live-tile-command-bar .ant-btn{background:#0f172ac2;border-color:#ffffff38;color:#fff}.nvr-live-view>.multi-live-grid:not(.density-compact) .live-tile-command-bar .ant-btn:hover{background:#fffffff5;color:#1677ff}.nvr-live-view>.multi-live-grid:not(.density-compact) .tile-camera-select{background:#fff;padding:7px 8px 8px}.multi-live-stream-popover{display:grid;gap:8px;max-width:min(340px,calc(100vw - 48px))}.multi-live-stream-popover .ant-typography{display:block}.live-stream-details-button{flex:0 0 auto}@media (hover: none),(pointer: coarse){.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .live-tile-command-bar{opacity:1;transform:none}}@media (max-width: 760px){.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .live-tile-command-bar{opacity:1;overflow-x:auto;transform:none}}.single-camera-workspace{display:flex}.single-camera-summary{background:radial-gradient(circle at 90% -20%,rgba(22,119,255,.12),transparent 34%),#fff;overflow:hidden}.single-camera-summary .ant-card-head{min-height:68px}.single-camera-identity{min-width:0}.single-camera-identity>.ant-space-item:nth-child(2){min-width:0}.single-camera-identity .ant-typography{margin:0}.single-camera-identity .ant-typography-secondary{display:block;font-size:12px;font-weight:400;margin-top:2px}.single-camera-icon{align-items:center;background:#eaf3ff;border:1px solid #cfe3ff;border-radius:10px;color:#1677ff;display:inline-flex;font-size:19px;height:38px;justify-content:center;width:38px}.single-camera-facts .ant-descriptions-view{background:#f8fafcbd;border:1px solid #e5ebf3;border-radius:8px;padding:6px 10px}.single-camera-facts .ant-descriptions-item{padding-bottom:0}.single-camera-facts .ant-descriptions-item-label{color:#718096;font-size:11px;padding-bottom:2px}.single-camera-facts .ant-descriptions-item-content{color:#1f2937;font-size:13px;font-weight:600;padding-bottom:4px}.single-camera-toolbar .multi-live-controls{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.single-camera-toolbar .multi-live-controls>.ant-space-item{min-width:0}.single-camera-toolbar .multi-live-controls .ant-btn{flex:0 0 auto;max-width:100%;white-space:nowrap}.single-camera-toolbar .single-camera-select{flex:1 1 240px!important;max-width:none!important;min-width:0;width:auto!important}.single-camera-toolbar .live-large-nvr-hint,.single-camera-toolbar .multi-live-page-controls{display:none}.single-camera-workspace .device-live-player-card>.ant-card-head{min-height:46px}.single-camera-workspace .device-live-player-card>.ant-card-body{padding:0}.single-camera-workspace .nvr-live-view>.multi-live-grid{background:#0a0f1a;border-color:#111827;padding:10px}.single-camera-workspace .nvr-live-view>.multi-live-grid.grid-1 .multi-live-tile{border-color:#263247;box-shadow:0 18px 42px #02061733;margin:0 auto;max-width:1440px;width:100%}.single-camera-workspace .nvr-live-view>.multi-live-grid.grid-1 .live-player,.single-camera-workspace .nvr-live-view>.multi-live-grid.grid-1 .live-unavailable,.single-camera-workspace .nvr-live-view>.multi-live-grid.grid-1 .multi-live-player{aspect-ratio:16 / 9;height:min(68vh,810px);min-height:420px}.single-camera-workspace .vms-vidstack-player{height:100%}.single-camera-workspace .vms-vidstack-player video{object-fit:contain}.operations-chart-grid{width:100%}.operations-chart-card{height:100%;overflow:hidden}.operations-chart-card .ant-card-head{min-height:44px}.operations-chart-card .ant-card-body{min-height:282px;padding:10px 14px 12px}.operations-chart-card canvas{max-width:100%}.camera-health-chart{align-items:center;display:grid;gap:4px;grid-template-columns:minmax(180px,1fr) minmax(120px,.8fr)}.camera-health-legend{display:grid;gap:8px}.camera-health-legend-item{align-items:center;background:#f8fafc;border:1px solid #edf1f6;border-radius:7px;display:grid;gap:7px;grid-template-columns:9px minmax(0,1fr) auto;padding:6px 8px}.camera-health-dot{background:#22c55e;border-radius:999px;height:8px;width:8px}.camera-health-dot.tone-1{background:#ef4444}.camera-health-dot.tone-2{background:#f59e0b}.camera-health-dot.tone-3{background:#94a3b8}@media (max-width: 560px){.camera-health-chart{grid-template-columns:1fr}}.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty){background:#fff;border-color:#dbe5f0}.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .multi-live-video-wrap,.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty)>.multi-live-player{background:#fff}.nvr-live-view>.multi-live-grid:not(.density-compact) .multi-live-tile:not(.empty) .live-tile-command-bar{background:#fff;border-top:1px solid #dbe5f0;margin-top:0;min-height:48px;opacity:1;padding:7px 8px;transform:none}.nvr-live-view>.multi-live-grid:not(.density-compact) .live-tile-command-bar .ant-btn{background:#f8fafc;border-color:#cfd9e6;border-radius:6px;color:#334155;font-size:12px;font-weight:600;height:32px;padding:0 9px;width:auto}.nvr-live-view>.multi-live-grid:not(.density-compact) .live-tile-command-bar .ant-btn-dangerous{background:#fff7f7;border-color:#ffb3b3;color:#cf1322}.nvr-live-view>.multi-live-grid:not(.density-compact) .live-tile-command-bar .ant-btn-primary.ant-btn-dangerous{background:#dc2626;border-color:#ef4444;color:#fff}.nvr-live-view>.multi-live-grid:not(.density-compact) .live-tile-command-bar .ant-btn:hover{background:#eaf3ff;border-color:#69b1ff;color:#0958d9;box-shadow:0 2px 7px #1677ff1f}.nvr-live-view>.multi-live-grid:not(.density-compact) .live-tile-command-bar .live-stream-details-button{background:#f8fafc;border-color:#d7e0eb;color:#64748b;padding:0;width:30px}.nvr-live-view>.multi-live-grid:not(.density-compact) .live-tile-command-bar .ant-btn:disabled{color:#a0aec0;background:#f5f7fa;border-color:#e2e8f0}.multi-live-tile.recording .live-tile-command-bar{background:snow;border-top-color:#ffccc7}.nvr-live-view>.multi-live-grid,.single-camera-workspace .nvr-live-view>.multi-live-grid{gap:10px;padding:10px;background:#f3f6fa;border-color:#dbe5f0;border-radius:12px}.nvr-live-view>.multi-live-grid .multi-live-tile.empty{background:#fff;border:1px dashed #cbd8e8}.nvr-live-view>.multi-live-grid .multi-live-tile.empty .multi-live-header{color:#334155;background:#fff}.nvr-live-view>.multi-live-grid .multi-live-tile.empty .live-unavailable{color:#64748b;background:linear-gradient(145deg,#f8fafc,#eef3f8);border-color:#d7e1ed}.nvr-live-view>.multi-live-grid.grid-9 .live-tile-action,.nvr-live-view>.multi-live-grid.grid-16 .live-tile-action{font-size:0;padding:0;width:32px}.nvr-live-view>.multi-live-grid.grid-9 .live-tile-action .anticon,.nvr-live-view>.multi-live-grid.grid-16 .live-tile-action .anticon{font-size:14px}.nvr-live-view .multi-live-toolbar{background:linear-gradient(135deg,#eff6ffeb,#f8fafcfa);border-color:#cfdaea}.nvr-live-view .multi-live-toolbar .ant-select-selector{border-color:#c8d5e6!important;box-shadow:none!important}.nvr-live-view .multi-live-toolbar .ant-select-focused .ant-select-selector{border-color:#3b82f6!important;box-shadow:0 0 0 2px #3b82f61f!important}.nvr-live-view .multi-live-primary-action{background:#1769d2;border-color:#1769d2;color:#fff}.nvr-live-view .multi-live-primary-action:hover{background:#0f5fc5!important;border-color:#0f5fc5!important;color:#fff!important}.apexcharts-series path,.apexcharts-pie-area{transition:filter .14s ease,opacity .14s ease!important}.apexcharts-series[rel="2"],.apexcharts-series.apexcharts-inactive{opacity:1!important}@media (max-width: 1260px){.single-camera-toolbar .multi-live-controls{grid-template-columns:repeat(3,minmax(130px,1fr)) minmax(240px,2fr)}}@media (max-width: 820px){.single-camera-toolbar .multi-live-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.single-camera-toolbar .single-camera-select{grid-column:1 / -1}.single-camera-workspace .nvr-live-view>.multi-live-grid.grid-1 .live-player,.single-camera-workspace .nvr-live-view>.multi-live-grid.grid-1 .live-unavailable,.single-camera-workspace .nvr-live-view>.multi-live-grid.grid-1 .multi-live-player{height:auto;min-height:260px}}@media (max-width: 1100px){.device-live-workbench,.device-live-workbench.tree-collapsed{grid-template-columns:1fr}.device-live-workbench.tree-collapsed .device-live-tree-card .ant-card-head-title{display:block}}.live-guide-page{color:#0f172a}.live-guide-hero,.live-guide-card{border-radius:8px;overflow:hidden}.live-guide-hero{background:radial-gradient(circle at 88% 12%,rgba(22,119,255,.16),transparent 28%),linear-gradient(135deg,#fff,#eef6ff);border-color:#dbeafe}.live-guide-hero h2.ant-typography{margin:0}.live-guide-preview{background:#0f172a;border:1px solid rgba(15,23,42,.08);border-radius:10px;box-shadow:0 22px 50px #0f172a2e;padding:12px}.live-guide-screen{display:grid;gap:6px;grid-template-columns:repeat(2,minmax(0,1fr))}.live-guide-screen span{aspect-ratio:16 / 9;background:linear-gradient(135deg,#94a3b824,#2563eb2e),#1e293b;border:1px solid rgba(255,255,255,.08);border-radius:5px;position:relative}.live-guide-screen span:after{background:#86efac;border-radius:999px;content:"";height:7px;position:absolute;right:8px;top:8px;width:7px}.live-guide-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.live-guide-card{height:100%}.live-guide-card .ant-card-body{min-height:170px}.live-guide-icon{align-items:center;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;color:#1677ff;display:inline-flex;font-size:22px;height:44px;justify-content:center;width:44px}.diagnostics-page{color:#0f172a}.diagnostics-hero{background:radial-gradient(circle at 90% 16%,rgba(34,197,94,.12),transparent 30%),linear-gradient(135deg,#fff,#f1f7ff);border-color:#dbeafe;border-radius:8px}.diagnostics-hero h2.ant-typography{margin:0}.diagnostics-score{align-items:center;background:#ffffffb8;border:1px solid #e2e8f0;border-radius:8px;display:flex;gap:18px;justify-content:center;min-height:150px;padding:16px}.diagnostics-check,.diagnostics-endpoint{border:1px solid #e2e8f0;border-radius:8px;height:100%;padding:12px}.diagnostics-check.good,.diagnostics-endpoint.good{background:#f0fdf4;border-color:#bbf7d0}.diagnostics-check.warn,.diagnostics-endpoint.warn{background:#fffbeb;border-color:#fde68a}.diagnostics-check.bad,.diagnostics-endpoint.bad{background:#fff1f2;border-color:#fecdd3}.diagnostics-value,.diagnostics-url{display:block;max-width:100%;overflow-wrap:anywhere}.diagnostics-action-row{margin-top:6px}.diagnostics-url{font-family:Consolas,Courier New,monospace;font-size:12px}.nvr-stream-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}.nvr-stream-card{border-radius:8px;overflow:hidden}.nvr-stream-card .ant-card-head{min-height:46px}.nvr-stream-card .ant-card-head-title{min-width:0;white-space:normal}.stream-config-subcard{height:100%}.stream-config-subcard .ant-card-body{min-height:132px}.stream-config-fields{display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.stream-config-field{background:#f8fafc;border:1px solid #eef2f7;border-radius:6px;min-width:0;padding:6px 8px}.stream-config-field span,.stream-config-note{color:#64748b;display:block;font-size:12px}.stream-config-field strong{display:block;font-size:13px;overflow-wrap:anywhere}.live-stream-badges{align-items:center;display:flex;flex-wrap:wrap;gap:4px}.live-stream-badges.compact{gap:3px;margin-top:-4px}.live-stream-badges .ant-tag{margin-inline-end:0}.multi-live-stream-info{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;min-height:24px}.multi-live-stream-info .ant-tag{margin-inline-end:0}.multi-live-stream-info.compact{bottom:44px;left:10px;margin:0;max-width:calc(100% - 88px);position:absolute;z-index:3}.multi-live-stream-info.compact .ant-tag{background:#0f172ad1;border-color:#ffffff3d;color:#fff}.recording-list{display:flex;flex-direction:column;gap:10px;margin-top:8px}.recording-list-item{align-items:center;border:1px solid #e5e7eb;border-radius:6px;display:flex;justify-content:space-between;gap:12px;padding:10px 12px}.recording-time-input{border:1px solid #d9d9d9;border-radius:6px;height:32px;padding:4px 11px}.recording-segment-card{height:100%}.recording-video{background:#111827;border-radius:6px;max-height:64vh;width:100%}.recording-player{width:100%;aspect-ratio:16 / 9;overflow:hidden;background:#050b16;border-radius:12px}.recording-player-shell{overflow:hidden;background:#f8fafc;border:1px solid #dbe5f1;border-radius:12px}.recording-player-shell .recording-player{border-radius:0}.recording-player-controls{padding:10px 12px;background:#fff;border-top:1px solid #dbe5f1}.recording-player-rate{width:84px}.recording-player video{width:100%;height:100%;object-fit:contain}.recording-video-loading{align-items:center;display:flex;min-height:360px;justify-content:center}.nvr-playback-console{background:#f8fafc;border:1px solid #dbe4ef;border-radius:8px;color:#172033;overflow:hidden}.recording-source-explainer,.nvr-playback-source-explainer{margin-bottom:14px}.nvr-playback-header{align-items:center;background:#fff;border-bottom:1px solid #e5edf5;display:grid;gap:12px;grid-template-columns:minmax(160px,auto) minmax(250px,1fr) minmax(160px,190px) auto auto;min-width:0;padding:12px 16px}.nvr-playback-brand{align-items:center;display:flex;gap:10px;min-width:0}.nvr-playback-brand>span{color:#1f6fb2;font-size:24px}.nvr-playback-brand strong{display:block;line-height:1.15;white-space:nowrap}.nvr-playback-brand span{display:block}.nvr-playback-brand div span{color:#6b778c;font-size:11px}.nvr-date-switcher{align-items:center;background:#f3f7fb;border:1px solid #d6e1ec;border-radius:7px;display:flex;min-width:0}.nvr-date-switcher input{background:transparent;border:0;color:#172033;font-weight:600;padding:8px}.nvr-date-switcher .ant-select{flex:1 1 auto;min-width:0}.nvr-date-switcher .ant-select-selector{background:transparent!important;border:0!important;box-shadow:none!important;color:#172033!important;font-weight:600}.nvr-date-switcher .ant-select-arrow{color:#6b778c}.nvr-date-switcher .ant-btn{color:#64748b}.nvr-selector{min-width:0;width:100%}.nvr-playback-actions{display:flex;gap:8px;justify-content:flex-end}.nvr-camera-picker{align-items:center;background:#fff;border-bottom:1px solid #e5edf5;display:grid;gap:14px;grid-template-columns:auto minmax(260px,1fr) minmax(220px,auto);min-width:0;padding:10px 16px}.nvr-camera-picker>span{color:#334155;font-weight:600;white-space:nowrap}.nvr-camera-multi-select{min-width:0;width:100%}.nvr-camera-multi-select>.ant-select{width:100%}.nvr-camera-picker>.ant-typography{overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.nvr-camera-multi-select .ant-select-selection-overflow{flex-wrap:nowrap}.nvr-playback-grid{display:grid;grid-template-columns:minmax(0,960px);justify-content:center;justify-items:center;padding:16px clamp(12px,2.5vw,28px)}.nvr-playback-grid.count-1{grid-template-columns:1fr}.nvr-playback-tile{aspect-ratio:16 / 9;background:repeating-linear-gradient(115deg,#eef3f8 0,#eef3f8 40px,#e7edf5,#e7edf5 42px);border:1px solid #c8d6e5;border-radius:12px;box-shadow:0 12px 30px #0f2b461f;min-height:260px;max-height:min(58vh,540px);max-width:960px;position:relative;overflow:hidden;width:100%}.nvr-playback-tile.active{border-color:#5ba7df;box-shadow:0 14px 34px #175c9d29,inset 0 0 0 1px #5ba7df}.nvr-tile-title{align-items:center;display:flex;justify-content:space-between;left:12px;position:absolute;right:12px;top:10px;z-index:4}.nvr-tile-title strong{background:#0f172ab3;border-radius:6px;color:#fff;padding:5px 9px;text-shadow:0 1px 2px rgba(0,0,0,.4)}.nvr-tile-camera-icon{color:#9aabba;font-size:38px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.nvr-tile-loader{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.nvr-tile-loader .ant-spin-text{color:#172033;white-space:nowrap}.nvr-scrub-preview{height:100%;object-fit:contain;width:100%}.nvr-preview-loader{background:#ffffffb8;border-radius:4px;left:50%;padding:8px;position:absolute;top:50%;transform:translate(-50%,-50%);z-index:4}.nvr-playback-transition{align-items:center;background:#eef3f8;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;overflow:hidden;position:absolute;z-index:3}.nvr-playback-transition>img{filter:saturate(.94);height:100%;object-fit:contain;width:100%}.nvr-playback-transition:after{background:#f8fafc52;content:"";top:0;right:0;bottom:0;left:0;position:absolute}.nvr-playback-transition>.logo-loader{top:0;right:0;bottom:0;left:0;position:absolute;z-index:2}.nvr-playback-transition .logo-loader-card{background:#fffffff0;box-shadow:0 10px 30px #0f2b462e}.nvr-playback-tile-error{align-items:center;color:#ff7875;display:flex;flex-direction:column;gap:10px;left:50%;max-width:80%;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.nvr-playback-tile-error .anticon{font-size:30px}.nvr-playback-tile .live-player,.nvr-playback-tile video{height:100%;object-fit:contain;width:100%}.nvr-vidstack-player{--media-brand: #2f80ed;--media-button-hover-bg: rgba(255, 255, 255, .18);--media-controls-color: #ffffff;--media-focus-ring: #74b9ff;--media-font-family: Inter, "Segoe UI", sans-serif;--media-menu-bg: #ffffff;--media-menu-border: 1px solid #d8e3ef;--media-menu-color-gray-50: #eef4fa;--media-menu-color-gray-100: #e3edf7;--media-menu-color-gray-200: #d5e2ef;--media-menu-color-gray-300: #ffffff;--media-menu-color-gray-400: #ffffff;--media-menu-text-color: #172033;--media-menu-text-secondary-color: #64748b;--media-menu-box-shadow: 0 14px 34px rgba(15, 43, 70, .18);background:#f4f7fb;height:100%;width:100%}.nvr-vidstack-player video{background:#f4f7fb;object-fit:contain}.nvr-native-player{background:#f4f7fb;height:100%;position:relative;width:100%}.nvr-native-player>video{background:#f4f7fb;display:block;height:100%;object-fit:contain;width:100%}.nvr-native-player-tools{align-items:center;background:#fffffff0;border:1px solid #d8e3ef;border-radius:8px;bottom:46px;box-shadow:0 6px 18px #0f2b4629;display:flex;gap:4px;left:50%;padding:4px;position:absolute;transform:translate(-50%);z-index:3}.nvr-native-player-tools button,.nvr-native-player-tools select{background:#fff;border:1px solid #d8e3ef;border-radius:6px;color:#172033;height:32px}.nvr-native-player-tools button{align-items:center;cursor:pointer;display:inline-flex;gap:5px;padding:0 9px}.nvr-native-player-tools select{padding:0 8px}.nvr-vidstack-player .vds-time-slider,.nvr-vidstack-player .vds-time-group,.nvr-vidstack-player .vds-live-button{display:none}.nvr-live-view>.multi-live-grid:not(.focus):not(.density-compact) .multi-live-tile:not(.empty) .multi-live-header{background:transparent;min-height:0;padding:0}.nvr-live-view>.multi-live-grid:not(.focus):not(.density-compact) .multi-live-tile:not(.empty) .multi-live-title-drag{align-items:center;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#ffffffb3;border:1px solid rgba(203,213,225,.72);border-radius:6px;box-shadow:0 2px 8px #0f172a14;height:28px;justify-content:center;left:8px;padding:0;position:absolute;top:34px;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease;width:28px}.nvr-live-view>.multi-live-grid:not(.focus):not(.density-compact) .multi-live-tile:not(.empty) .multi-live-title-drag .ant-typography{display:none}.nvr-live-view>.multi-live-grid:not(.focus):not(.density-compact) .multi-live-tile:not(.empty) .multi-live-drag-handle{color:#64748b;font-size:14px}.nvr-live-view>.multi-live-grid:not(.focus):not(.density-compact) .multi-live-tile:not(.empty) .multi-live-title-drag:hover{background:#fffffff0;border-color:#93b4d8;box-shadow:0 3px 10px #0f172a24}.nvr-live-view>.multi-live-grid:not(.focus):not(.density-compact) .multi-live-tile:not(.empty) .multi-live-header-actions{position:absolute;right:10px;top:10px}.nvr-live-view>.multi-live-grid:not(.focus):not(.density-compact) .multi-live-tile:not(.empty) .multi-live-header-actions .ant-tag{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 2px 8px #0f172a14;margin-inline-end:0}.nvr-player-seek-button{position:relative}.nvr-player-seek-button>.anticon{font-size:23px}.nvr-player-seek-button>small{color:currentColor;font-size:8px;font-weight:800;left:50%;line-height:1;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%)}.nvr-tile-status{background:#ffffffc2;border-radius:4px;top:50px;color:#0f172a;font-family:Consolas,monospace;font-size:12px;left:12px;padding:2px 5px;position:absolute;z-index:4}.nvr-playback-transport{background:#fff;border-top:1px solid #e5edf5;padding:14px clamp(12px,3vw,36px) 18px}.nvr-scrub-popover{background:#fff;border:1px solid #9fb5ca;border-radius:6px;box-shadow:0 8px 24px #0f172a33;padding:6px;pointer-events:none;position:fixed;transform:translate(-50%,calc(-100% - 14px));width:248px;z-index:1200}.nvr-scrub-popover-media{align-items:center;aspect-ratio:16 / 9;background:#edf3f8;display:flex;justify-content:center;overflow:hidden;position:relative}.nvr-scrub-popover-media>img{height:100%;object-fit:contain;width:100%}.nvr-scrub-popover-media>.anticon{color:#8aa0b5;font-size:28px}.nvr-scrub-popover-media>.ant-spin{position:absolute}.nvr-scrub-popover-meta{align-items:center;display:flex;gap:8px;justify-content:space-between;padding-top:5px}.nvr-scrub-popover-meta strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nvr-scrub-popover-meta span{font-family:Consolas,monospace;white-space:nowrap}.nvr-scrub-popover small{color:#cf1322;display:block;overflow:hidden;padding-top:3px;text-overflow:ellipsis;white-space:nowrap}.nvr-transport-actions{align-items:center;background:#f7faff;border:1px solid #dbe7f3;border-radius:10px;display:flex;gap:8px;margin-bottom:16px;padding:10px}.nvr-play-button{background:#1677c8;border-color:#1677c8;color:#fff;height:42px;width:50px}.nvr-playback-rate{min-width:82px}.nvr-current-time{font-family:Consolas,monospace;font-size:20px;margin:0 auto 0 12px}.nvr-timeline-heading{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.nvr-timeline-heading>div{align-items:baseline;display:flex}.nvr-timeline{overflow-x:auto}.nvr-timeline-hours{display:flex;justify-content:space-between;margin-left:104px;min-width:720px;padding-bottom:5px}.nvr-timeline-hours span{color:#64748b;font:10px Consolas,monospace}.nvr-timeline-row{align-items:center;display:grid;gap:10px;grid-template-columns:94px minmax(720px,1fr);margin:5px 0}.nvr-timeline-row>span{color:#33516f;font:12px Consolas,monospace}.nvr-timeline-track{background:#d8e2ee;cursor:grab;height:19px;overflow:hidden;position:relative;touch-action:none;-webkit-user-select:none;user-select:none}.nvr-timeline-track.scrubbing{cursor:grabbing}.nvr-record-segment{bottom:0;position:absolute;top:0}.nvr-record-segment.continuous,.nvr-timeline-legend .continuous:before{background:#5fa66f}.nvr-record-segment.motion,.nvr-timeline-legend .motion:before{background:#d89a24}.nvr-record-segment.alarm,.nvr-timeline-legend .alarm:before{background:#e94b5f}.nvr-event-marker{border-radius:999px;bottom:-3px;box-shadow:0 0 0 2px #fffc;height:25px;position:absolute;top:-3px;transform:translate(-50%);width:4px;z-index:3}.nvr-event-marker.motion{background:#f2ae30}.nvr-event-marker.alarm{background:#ff4d64}.nvr-playhead{background:#ef7d22;bottom:-4px;box-shadow:0 0 0 1px #ffffffbf;position:absolute;top:-4px;width:2px;z-index:2}.nvr-timeline-track.scrubbing .nvr-playhead{box-shadow:0 0 0 2px #ffffffe6;width:3px;z-index:5}.nvr-timeline-legend{display:flex;gap:18px;justify-content:center;margin-top:10px}.nvr-timeline-legend span{color:#526175;font-size:11px}.nvr-timeline-legend span:before{border-radius:2px;content:"";display:inline-block;height:8px;margin-right:5px;width:8px}.nvr-event-diagnostics{margin-top:10px}.nvr-playback-console{--nvr-accent: #1473e6;--nvr-accent-soft: #eaf3ff;--nvr-border: #d9e3ee;--nvr-muted: #64748b;background:#f5f8fc;border-color:var(--nvr-border);border-radius:14px;box-shadow:0 12px 36px #1e406414}.nvr-playback-header{background:linear-gradient(180deg,#fff,#fbfdff);min-height:68px;padding:12px 18px}.nvr-playback-source-explainer{border-radius:10px;margin:12px 14px}.nvr-playback-console>.ant-alert-banner{border-inline:0}.nvr-camera-picker{padding:10px 18px}.nvr-playback-workspace{display:grid;gap:0;grid-template-columns:248px minmax(0,1fr);min-height:540px}.nvr-playback-channel-rail{background:#fff;border-right:1px solid var(--nvr-border);min-width:0;padding:14px 10px}.nvr-channel-rail-heading{align-items:flex-start;display:flex;gap:8px;justify-content:space-between;padding:2px 6px 12px}.nvr-channel-rail-heading strong,.nvr-channel-rail-heading span{display:block}.nvr-channel-rail-heading strong{color:#16253a;font-size:14px}.nvr-channel-rail-heading span{color:var(--nvr-muted);font-size:11px;line-height:1.35;margin-top:3px}.nvr-channel-list{display:flex;flex-direction:column;gap:5px;max-height:520px;overflow:auto;padding:2px}.nvr-channel-item{align-items:center;background:transparent;border:1px solid transparent;border-radius:10px;color:#172033;cursor:pointer;display:grid;gap:9px;grid-template-columns:56px minmax(0,1fr);min-width:0;padding:7px;position:relative;text-align:left;transition:background .14s ease,border-color .14s ease,box-shadow .14s ease,transform .14s ease}.nvr-channel-item:hover{background:#f4f8fd;border-color:#d8e6f5;transform:translateY(-1px)}.nvr-channel-item.selected{background:var(--nvr-accent-soft);border-color:#9bc6f6;box-shadow:inset 3px 0 0 var(--nvr-accent)}.nvr-channel-thumbnail{align-items:center;background:#e8eef5;border-radius:7px;display:flex;height:38px;justify-content:center;overflow:hidden;position:relative;width:56px}.nvr-channel-thumbnail img{height:100%;object-fit:cover;width:100%}.nvr-channel-copy{min-width:0}.nvr-channel-copy strong,.nvr-channel-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nvr-channel-copy strong{font-size:13px}.nvr-channel-copy small{color:var(--nvr-muted);font-size:10px;margin-top:2px}.nvr-channel-record-state{border-radius:999px;bottom:5px;font-size:9px;line-height:16px;max-width:86px;overflow:hidden;padding:0 6px;position:absolute;right:6px;text-overflow:ellipsis;white-space:nowrap}.nvr-channel-record-state.available{background:#e8f7ee;color:#16834b}.nvr-channel-record-state.empty{background:#f1f4f7;color:#718096}.nvr-playback-stage{background:radial-gradient(circle at 50% 10%,#fff 0,#f4f8fc 62%,#edf3f9);min-width:0;padding:14px 16px 18px}.nvr-stage-heading{align-items:center;display:flex;justify-content:space-between;margin:0 auto 10px;max-width:960px}.nvr-stage-heading>div:first-child strong,.nvr-stage-heading>div:first-child span{display:block}.nvr-stage-heading>div:first-child span{color:var(--nvr-muted);font-size:11px;margin-top:2px}.nvr-stage-status{align-items:center;display:flex;gap:12px}.nvr-stage-status>span{align-items:center;color:var(--nvr-muted);display:flex;font-size:11px;gap:6px}.nvr-stage-status i{background:#94a3b8;border-radius:50%;height:7px;width:7px}.nvr-stage-status .is-playing i{animation:nvr-status-pulse 1.8s infinite;background:#22b866}.nvr-stage-status strong{color:#172033;font:600 17px Consolas,monospace}@keyframes nvr-status-pulse{0%,to{box-shadow:0 0 #22b86652}50%{box-shadow:0 0 0 5px #22b86600}}.nvr-playback-stage .nvr-playback-grid{padding:0}.nvr-playback-tile{border-radius:10px;box-shadow:0 16px 38px #20406024}.nvr-playback-transport{padding:16px 18px 18px}.nvr-timeline-heading{gap:14px}.nvr-timeline-tools{align-items:center;display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.nvr-timeline{overflow:hidden}.nvr-timeline-hours{margin-left:100px;min-width:0}.nvr-timeline-row{grid-template-columns:90px minmax(0,1fr)}.nvr-timeline-track{background:#dbe5ef;border-radius:6px;height:24px}.nvr-record-segment{opacity:.9}.nvr-playhead{background:#f07721;box-shadow:0 0 0 1px #fff,0 0 10px #f077218c}@media (max-width: 1180px){.nvr-playback-header{grid-template-columns:minmax(160px,auto) minmax(240px,1fr) minmax(150px,190px) auto}.nvr-playback-actions{grid-column:2 / -1}.nvr-playback-workspace{grid-template-columns:210px minmax(0,1fr)}.nvr-channel-record-state{display:none}}@media (max-width: 900px){.nvr-playback-header{align-items:stretch;grid-template-columns:1fr 1fr}.nvr-playback-brand{grid-column:1 / -1}.nvr-playback-actions{grid-column:auto;justify-content:stretch}.nvr-playback-actions .ant-btn{flex:1}.nvr-playback-grid{grid-template-columns:1fr}.nvr-camera-picker{align-items:stretch;grid-template-columns:1fr}.nvr-camera-picker>.ant-typography{text-align:left}.nvr-current-time{margin-right:auto}.nvr-playback-workspace{display:block;min-height:0}.nvr-playback-channel-rail{border-bottom:1px solid var(--nvr-border);border-right:0;padding:10px}.nvr-channel-rail-heading{display:none}.nvr-channel-list{flex-direction:row;max-height:none;overflow-x:auto}.nvr-channel-item{flex:0 0 176px;grid-template-columns:44px minmax(0,1fr)}.nvr-channel-thumbnail{height:34px;width:44px}.nvr-playback-stage{padding:12px}.nvr-timeline-heading{align-items:stretch;flex-direction:column}.nvr-timeline-tools{justify-content:flex-start}.nvr-timeline-tools .ant-segmented{flex:1 1 auto}}@media (max-width: 620px){.nvr-playback-header{grid-template-columns:1fr}.nvr-playback-brand,.nvr-playback-actions{grid-column:auto}.nvr-playback-actions .ant-btn span:not(.anticon){display:none}.nvr-camera-picker{grid-template-columns:1fr}.nvr-camera-picker>span,.nvr-camera-picker>.ant-typography{display:none}.nvr-stage-heading>div:first-child{display:none}.nvr-playback-tile{min-height:0}.nvr-playback-transport{padding:12px 10px 14px}.nvr-timeline-heading>div:first-child{justify-content:space-between;width:100%}.nvr-current-time{margin-left:8px;margin-right:0}.nvr-timeline-tools .ant-btn span:not(.anticon){display:none}.nvr-timeline-row{gap:6px;grid-template-columns:58px minmax(0,1fr)}.nvr-timeline-hours{margin-left:64px}.nvr-timeline-hours span:nth-child(2n){display:none}.nvr-timeline-legend{flex-wrap:wrap;gap:8px 12px}}.live-stream-details{margin-top:10px}.live-stream-details>.ant-typography{display:block;margin-bottom:8px}.live-stream-details .ant-descriptions-view{overflow-x:auto}.live-stream-details .ant-descriptions-item-label{white-space:nowrap}.live-stream-details .ant-descriptions-item-content{min-width:110px;word-break:normal}.ai-review-page{min-width:0;color:#172033;background:#f6f8fb;border:1px solid #dce4ee}.ai-review-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;background:#fff;border-bottom:1px solid #dce4ee}.ai-review-header h3{margin:0;letter-spacing:0}.ai-review-title-icon{color:#d97706;font-size:24px}.ai-review-toolbar{display:grid;grid-template-columns:minmax(420px,1fr) minmax(520px,1.3fr);gap:12px;padding:12px 20px;background:#fff;border-bottom:1px solid #dce4ee}.ai-review-toolbar .ant-segmented{min-width:0}.ai-review-filters{display:grid;grid-template-columns:minmax(138px,.65fr) minmax(220px,1.45fr) minmax(150px,.8fr);gap:8px;min-width:0}.ai-review-filters .ant-select,.ai-review-filters .ant-picker{width:100%;min-width:0}.ai-review-page>.ant-alert{margin:12px 20px 0}.ai-review-grid{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:10px;padding:14px 20px 20px}.ai-review-card{position:relative;display:block;min-width:0;overflow:hidden;padding:0;color:inherit;text-align:left;background:#fff;border:1px solid #d5dee9;border-radius:6px;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.ai-review-card:hover,.ai-review-card:focus-visible{border-color:#1677ff;box-shadow:0 5px 16px #17395c24;outline:none;transform:translateY(-1px)}.ai-review-thumbnail{position:relative;display:grid;width:100%;aspect-ratio:16 / 9;overflow:hidden;place-items:center;background:#e8eef5}.ai-review-thumbnail>img{width:100%;height:100%;object-fit:cover}.ai-review-thumbnail .ant-skeleton,.ai-review-thumbnail .ant-skeleton-image{width:100%!important;height:100%!important}.ai-review-no-image{display:grid;width:100%;height:100%;color:#8da0b5;font-size:34px;place-items:center;background:repeating-linear-gradient(120deg,#edf2f7,#edf2f7 20px,#e7edf4 20px,#e7edf4 21px)}.ai-review-card-overlay{position:absolute;top:8px;right:8px;left:8px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#fff;font-weight:700;text-shadow:0 1px 3px rgb(0 0 0 / 80%)}.ai-review-card-overlay>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-review-card-overlay .ant-tag{flex:none;margin:0;text-shadow:none}.ai-review-card-meta,.ai-review-card-detail{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:9px 11px 0}.ai-review-card-meta strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-review-card-meta span,.ai-review-card-detail{color:#64748b;white-space:nowrap}.ai-review-card-detail{min-height:31px;padding-top:4px;padding-bottom:9px;font-size:12px}.ai-review-card-detail span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis}.ai-review-loading,.ai-review-empty{display:grid;min-height:420px;place-items:center}.ai-review-load-more{display:flex;justify-content:center;padding:0 20px 22px}.ai-review-viewer{display:grid;min-height:420px;overflow:hidden;place-items:center;background:#101827;border-radius:6px}.ai-review-viewer video,.ai-review-viewer .ant-image,.ai-review-viewer img{display:block;width:100%;max-height:72vh;object-fit:contain}.ai-review-viewer-meta{display:flex;align-items:center;gap:12px;min-width:0;padding-top:12px;color:#59677a}.ai-review-preview-modal .ant-modal-content{background:#11151d;border:1px solid #2a3342;border-radius:12px;box-shadow:0 28px 80px #00000075;overflow:hidden;padding:0}.ai-review-preview-modal .ant-modal-header{background:#11151d;border-bottom:1px solid #283140;margin:0;padding:14px 52px 14px 18px}.ai-review-preview-modal .ant-modal-title{color:#f8fafc;font-size:14px}.ai-review-preview-modal .ant-modal-close{color:#aeb9ca;top:9px}.ai-review-preview-modal .ant-modal-close:hover{background:#252c38;color:#fff}.ai-review-preview-modal .ant-modal-body{padding:0}.ai-review-preview{display:grid;grid-template-columns:minmax(0,1fr) 310px;min-height:min(76vh,820px)}.ai-review-preview .ai-review-viewer{background:radial-gradient(circle at center,#202938 0,#0a0d12 68%);border-radius:0;min-height:560px;position:relative}.ai-review-preview .ai-review-viewer video,.ai-review-preview .ai-review-viewer .ant-image,.ai-review-preview .ai-review-viewer img{max-height:min(76vh,820px)}.ai-review-preview-nav{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111827b8;border-color:#ffffff2e;border-radius:999px;color:#fff;display:inline-flex;height:42px;justify-content:center;opacity:0;position:absolute;top:50%;transform:translateY(-50%);transition:opacity .15s ease,background .15s ease,transform .15s ease;width:42px;z-index:5}.ai-review-viewer:hover .ai-review-preview-nav,.ai-review-preview-nav:focus-visible{opacity:1}.ai-review-preview-nav:hover{background:#2563ebe6!important;color:#fff!important;transform:translateY(-50%) scale(1.04)}.ai-review-preview-nav.previous{left:14px}.ai-review-preview-nav.next{right:14px}.ai-review-preview-nav:disabled{display:none}.ai-review-media-dock{align-items:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#111827d1;border:1px solid rgba(255,255,255,.16);border-radius:12px;bottom:18px;box-shadow:0 12px 34px #00000057;display:flex;gap:2px;left:50%;padding:5px;position:absolute;transform:translate(-50%);z-index:7}.ai-review-media-dock .ant-btn{align-items:center;border-radius:8px;color:#e5edf8;display:inline-flex;font-size:16px;height:36px;justify-content:center;min-width:36px;padding:0 8px}.ai-review-media-dock .ant-btn:hover{background:#ffffff21!important;color:#fff!important}.ai-review-media-dock .primary-control{background:#ffffff1f;font-size:18px}.ai-review-media-dock .rate-control{font-size:14px;font-weight:700}.ai-review-viewer:fullscreen{background:#05070a;height:100vh;width:100vw}.ai-review-viewer:fullscreen video,.ai-review-viewer:fullscreen img,.ai-review-viewer:fullscreen .ant-image{height:100vh;max-height:100vh;object-fit:contain;width:100vw}.ai-review-preview-details{background:#171c25;border-left:1px solid #2b3443;color:#dbe3ef;display:flex;flex-direction:column;gap:18px;min-width:0;padding:20px}.ai-review-preview-heading{align-items:center;display:flex;gap:12px;min-width:0}.ai-review-preview-heading>div{min-width:0}.ai-review-preview-heading .ant-typography{color:#f8fafc;margin:0}.ai-review-preview-heading .ant-typography-secondary{color:#94a3b8;display:block;margin-top:3px}.ai-review-preview-object-icon{align-items:center;background:#24344e;border:1px solid #3a5277;border-radius:10px;color:#7db4ff;display:inline-flex;flex:0 0 auto;font-size:18px;height:40px;justify-content:center;width:40px}.ai-review-preview-facts{border-bottom:1px solid #2b3443;border-top:1px solid #2b3443;display:grid}.ai-review-preview-facts>div{display:grid;gap:3px;padding:10px 0}.ai-review-preview-facts>div+div{border-top:1px solid #252e3b}.ai-review-preview-facts span,.ai-review-preview-confidence span{color:#8e9caf;font-size:12px}.ai-review-preview-facts strong,.ai-review-preview-confidence strong{color:#edf2f7;font-size:13px}.ai-review-preview-confidence>div{display:flex;justify-content:space-between;margin-bottom:7px}.ai-review-preview-actions{display:flex;flex-wrap:wrap;gap:8px}.ai-review-preview-actions .ant-btn{background:#202938;border-color:#39475b;color:#dce6f5}.ai-review-preview-position{align-items:center;border-top:1px solid #2b3443;display:flex;flex-direction:column;gap:5px;margin-top:auto;padding-top:14px;text-align:center}.ai-review-preview-position .ant-typography{color:#e7edf7}.ai-review-preview-position .ant-typography-secondary{color:#8290a4;font-size:11px}@media (max-width: 900px){.ai-review-preview{grid-template-columns:1fr}.ai-review-preview .ai-review-viewer{min-height:46vh}.ai-review-preview-details{border-left:0;border-top:1px solid #2b3443}.ai-review-preview-nav{opacity:1}.ai-review-media-dock{bottom:10px;max-width:calc(100% - 20px)}}.ai-live-panel{min-height:520px;background:#eef3f8}.ai-live-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) auto auto;align-items:center;gap:10px;padding:12px 20px;background:#fff;border-bottom:1px solid #dce4ee}.ai-live-toolbar .ant-select{width:100%}.ai-live-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.ai-live-grid.count-1{grid-template-columns:minmax(0,1fr);max-width:1280px;margin:0 auto}.ai-live-tile{min-width:0;overflow:hidden;background:#fff;border:1px solid #cbd7e5;border-radius:6px}.ai-live-tile.detecting{border-color:#d99a16;box-shadow:0 0 0 1px #d99a16}.ai-live-media{position:relative;aspect-ratio:16 / 9;overflow:hidden;background:#111827}.ai-live-media>.ant-space,.ai-live-media .live-player,.ai-live-media .live-video{width:100%;height:100%}.ai-live-media>.ant-space{display:block}.ai-live-media .live-video{object-fit:contain}.ai-live-box{position:absolute;z-index:3;min-width:28px;min-height:22px;pointer-events:none;border:2px solid #f59e0b}.ai-live-box.alert{border-color:#ef4444}.ai-live-box span{position:absolute;bottom:100%;left:-2px;max-width:180px;overflow:hidden;padding:2px 5px;color:#fff;font-size:12px;line-height:18px;text-overflow:ellipsis;white-space:nowrap;background:#b77906}.ai-live-box.alert span{background:#dc2626}.ai-live-tile footer{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;padding:8px 12px}.ai-live-tile footer>div{min-width:0;overflow:hidden;white-space:nowrap}.ai-live-tile footer .ant-tag{margin-inline-end:4px}.ai-live-loading,.ai-live-empty{display:grid;min-height:460px;place-items:center}.ai-config-camera-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin-bottom:16px}.ai-config-camera-row .ant-select,.camera-selector,.camera-selector .ant-select{width:100%}.camera-selector-option{display:grid;grid-template-columns:82px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;min-width:0;padding:4px 2px}.camera-selector-option-media{cursor:zoom-in;position:relative;display:grid;overflow:hidden;width:82px;height:50px;color:#64748b;background:linear-gradient(135deg,#1677ff14,#0f172a14),#eef3f8;border:1px solid rgb(148 163 184 / 24%);border-radius:9px;place-items:center}.camera-selector-option-media img{width:100%;height:100%;object-fit:cover;transition:transform .18s ease,filter .18s ease}.camera-selector-status-dot{position:absolute;right:6px;bottom:6px;width:8px;height:8px;background:#94a3b8;border:2px solid #fff;border-radius:50%;box-shadow:0 1px 4px #0f172a52}.camera-selector-status-dot.is-online{background:#22c55e}.camera-selector-status-dot.is-offline{background:#ef4444}.camera-selector-option-copy,.camera-selector-option-heading{min-width:0}.camera-selector-option-copy{display:grid;overflow:hidden;gap:1px}.camera-selector-option-heading{display:flex;align-items:center;gap:6px}.camera-selector-option-heading strong{overflow:hidden;color:#172033;font-size:14px;text-overflow:ellipsis;white-space:nowrap}.camera-selector-option-copy small{overflow:hidden;color:#64748b;text-overflow:ellipsis;white-space:nowrap}.camera-selector-popup{container-type:inline-size;overflow:hidden;padding:5px!important;border:1px solid rgb(148 163 184 / 24%);border-radius:12px!important;box-shadow:0 16px 44px #0f172a2e!important;animation:camera-selector-enter .15s cubic-bezier(.2,.8,.2,1)}.camera-selector-popup .ant-select-item-option{margin:2px 0;padding:0 5px!important;border-radius:9px;transition:background-color .15s ease,transform .15s ease}.camera-selector-popup .ant-select-item-option-content{width:100%;min-width:0;overflow:hidden}.camera-selector-popup .rc-virtual-list-holder,.camera-selector-popup .rc-virtual-list-holder-inner{max-width:100%;overflow-x:hidden!important}.camera-selector-popup .ant-select-item-option:hover,.camera-selector-popup .ant-select-item-option-active{background:#f0f6ff!important;transform:translate(2px)}.camera-selector-popup .ant-select-item-option-selected{background:#e6f4ff!important;box-shadow:inset 3px 0 #1677ff}.camera-selector-popup .ant-select-item-option:hover .camera-selector-option-media img,.camera-selector-popup .ant-select-item-option-selected .camera-selector-option-media img{filter:saturate(1.08) contrast(1.03);transform:scale(1.045)}.camera-selector-hover-popover{pointer-events:none;z-index:1200}.camera-selector-hover-popover .ant-popover-inner{overflow:hidden;padding:0;background:#0f172a;border:1px solid rgb(255 255 255 / 14%);border-radius:12px;box-shadow:0 18px 50px #0f172a52}.camera-selector-hover-popover .ant-popover-arrow:before{background:#0f172a}.camera-selector-hover-preview{position:relative;overflow:hidden;width:min(340px,42vw);aspect-ratio:16 / 9;margin:0;background:#0f172a}.camera-selector-hover-preview img{display:block;width:100%;height:100%;object-fit:cover;animation:camera-selector-preview-reveal .18s ease-out}.camera-selector-hover-preview figcaption{position:absolute;right:0;bottom:0;left:0;display:grid;gap:1px;padding:28px 12px 10px;color:#fff;background:linear-gradient(transparent,#020617d6)}.camera-selector-hover-preview figcaption strong{font-size:14px}.camera-selector-hover-preview figcaption span{overflow:hidden;color:#dbeafe;font-size:12px;text-overflow:ellipsis;white-space:nowrap}@keyframes camera-selector-preview-reveal{0%{opacity:0;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}@keyframes camera-selector-enter{0%{opacity:0;transform:translateY(-5px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.camera-selector-option-copy small .anticon,.camera-selector-preview-copy span .anticon{margin-right:5px}.camera-selector-preview{display:grid;grid-template-columns:124px minmax(0,1fr);gap:10px;margin-top:6px;padding:6px;background:#f8fafc;border:1px solid #dbe5f0;border-radius:8px}.camera-selector-preview-image{position:relative;display:grid;overflow:hidden;min-height:70px;color:#94a3b8;background:#e8eef5;border-radius:6px;place-items:center}.camera-selector-preview-image img{width:100%;height:70px;object-fit:cover}.camera-selector-preview-image span{position:absolute;right:5px;bottom:4px;left:5px;padding:2px 4px;color:#fff;font-size:11px;text-align:center;background:#0f172ab8;border-radius:4px}.camera-selector-preview-copy{display:grid;align-content:center;min-width:0;gap:4px}.camera-selector-preview-copy strong{font-size:15px}.camera-selector-preview-copy span{overflow:hidden;color:#64748b;text-overflow:ellipsis;white-space:nowrap}@container (max-width: 430px){.camera-selector-option{grid-template-columns:68px minmax(0,1fr);gap:8px}.camera-selector-option-media{width:68px;height:44px}.camera-selector-option>.ant-tag{display:none}.camera-selector-option-copy small:last-child{display:none}}@container (max-width: 300px){.camera-selector-option{grid-template-columns:54px minmax(0,1fr);gap:6px}.camera-selector-option-media{width:54px;height:38px}.camera-selector-option-copy small{font-size:11px}}@media (hover: none),(max-width: 640px){.camera-selector-hover-popover{display:none}.camera-selector-option-media{cursor:default}}.ai-config-apply-banner{position:relative;overflow:hidden;display:flex;align-items:center;gap:9px;min-height:48px;margin-bottom:8px;padding:9px 12px;color:#0958d9;background:#e6f4ff;border:1px solid #91caff;border-radius:6px}.ai-config-apply-banner:after{position:absolute;right:0;bottom:0;left:0;height:2px;background:linear-gradient(90deg,transparent 0%,#1677ff 45%,transparent 100%);content:"";animation:ai-config-progress 1.45s ease-in-out infinite}.ai-config-apply-banner.is-slow{color:#874d00;background:#fffbe6;border-color:#ffe58f}.ai-config-apply-banner.is-slow:after{background:linear-gradient(90deg,transparent 0%,#faad14 45%,transparent 100%)}.ai-config-apply-icon{display:grid;flex:0 0 28px;width:28px;height:28px;place-items:center;border-radius:50%;background:#ffffffb8}.ai-config-apply-copy{display:grid;flex:1;min-width:0;gap:1px}.ai-config-apply-copy strong,.ai-config-apply-copy small{overflow-wrap:anywhere}.ai-config-apply-copy small{color:currentcolor;opacity:.78}@keyframes ai-config-progress{0%{transform:translate(-100%)}to{transform:translate(100%)}}.ai-config-section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.ai-config-section-heading>div{display:grid;gap:2px;min-width:0}.ai-config-section-heading strong{font-size:15px}.ai-config-section-heading span{color:#667085;font-size:13px}.ai-config-feature-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ai-config-feature{display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:78px;padding:11px 12px;background:#fafafa;border:1px solid #e5e7eb;border-radius:8px;transition:transform .18s ease,border-color .18s ease,background-color .18s ease,box-shadow .18s ease}.ai-config-feature:hover{transform:translateY(-1px);border-color:#adc6ff;box-shadow:0 3px 10px #0f172a12}.ai-config-feature.is-enabled{background:#f6ffed;border-color:#95de64}.ai-config-feature.is-disabled{opacity:.58}.ai-config-feature.is-paused,.ai-config-feature.is-enabled.is-paused{background:#fafafa;border-color:#d9d9d9;box-shadow:none;opacity:.72;transform:none}.ai-config-feature.is-paused .ai-config-feature-icon,.ai-config-feature.is-enabled.is-paused .ai-config-feature-icon{color:#8c8c8c;background:#fff;border-color:#d9d9d9}.ai-config-paused-alert{margin-top:12px;animation:ai-config-reveal .22s ease-out}@keyframes ai-config-reveal{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.ai-config-apply-banner:after,.ai-config-paused-alert{animation:none}}.ai-config-feature-icon{display:grid;width:36px;height:36px;color:#475467;background:#fff;border:1px solid #d0d5dd;border-radius:8px;place-items:center;transition:color .18s ease,border-color .18s ease,transform .18s ease}.ai-config-feature.is-enabled .ai-config-feature-icon{color:#237804;border-color:#95de64;transform:scale(1.04)}.ai-config-feature-copy{display:grid;gap:3px;min-width:0}.ai-config-feature-copy strong,.ai-config-feature-copy span{overflow-wrap:anywhere}.ai-config-feature-copy span{color:#667085;font-size:12px;line-height:1.4}.ai-config-face-library{margin-top:12px}.ai-config-engine-heading{margin-top:20px;padding-top:16px;border-top:1px solid #e5e7eb}.ai-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.ai-config-grid .wide{grid-column:1 / -1}.ai-config-grid .ant-input-number{width:100%}.ai-config-json{font-family:Consolas,Courier New,monospace;font-size:13px}.ai-config-loading{display:grid;min-height:360px;place-items:center}@media (max-width: 1500px){.ai-review-grid{grid-template-columns:repeat(3,minmax(220px,1fr))}}@media (max-width: 1180px){.ai-review-toolbar{grid-template-columns:1fr}.ai-review-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media (max-width: 720px){.ai-review-header,.ai-review-toolbar,.ai-review-grid{padding-right:12px;padding-left:12px}.ai-review-header{align-items:flex-start}.ai-review-toolbar .ant-segmented-group{display:grid;grid-template-columns:repeat(2,1fr)}.ai-review-filters,.ai-review-grid{grid-template-columns:1fr}.ai-review-viewer{min-height:260px}.ai-live-grid,.ai-live-toolbar,.ai-config-grid,.ai-config-camera-row,.ai-config-feature-list{grid-template-columns:1fr}.camera-selector-option{grid-template-columns:68px minmax(0,1fr);min-width:0}.camera-selector-option>.ant-tag{display:none}.camera-selector-option-media{width:68px;height:44px}.camera-selector-preview{grid-template-columns:112px minmax(0,1fr)}}@media (prefers-reduced-motion: reduce){.ai-config-feature,.ai-config-feature-icon{transition:none}}.setup-device-table .ant-table-container,.setup-device-table .ant-table-content{overflow-x:hidden}.setup-device-table .ant-table-tbody>tr>td{padding:14px 16px;white-space:normal}.setup-device-table .ant-table-row-expand-icon-cell{width:42px;padding-inline:10px 0!important;vertical-align:top;padding-top:20px!important}.setup-device-table .ant-table-tbody>.setup-device-table__active-row>td{background:#eef6ff;box-shadow:inset 0 1px #91caff,inset 0 -1px #91caff}.setup-device-table .ant-table-tbody>.setup-device-table__active-row>td:first-child{box-shadow:inset 3px 0 #1677ff,inset 0 1px #91caff,inset 0 -1px #91caff}.setup-device-table .ant-table-tbody>.setup-device-table__active-row:hover>td{background:#e6f4ff!important}.setup-detail-anchor{scroll-margin-top:76px;border-radius:8px}.setup-detail-context{display:flex;align-items:center;gap:8px;min-width:0;margin-bottom:8px;padding:8px 12px;color:#0958d9;background:#e6f4ff;border:1px solid #91caff;border-radius:6px}.setup-detail-context strong{min-width:0;overflow-wrap:anywhere;color:#003eb3}.setup-device-row{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(0,2.2fr);gap:12px 20px;min-width:0}.setup-device-row__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}.setup-device-row__identity{display:flex;flex-direction:column;gap:3px;min-width:0}.setup-device-row__name,.setup-device-row__model{overflow-wrap:anywhere}.setup-device-row__name{font-size:15px}.setup-device-row__facts{display:grid;grid-template-columns:repeat(3,minmax(145px,1fr));gap:10px;min-width:0}.setup-device-fact{display:flex;flex-direction:column;gap:2px;min-width:0;padding-inline-start:12px;border-inline-start:2px solid #e5e7eb}.setup-device-fact>span,.setup-device-fact>small{color:#6b7280}.setup-device-fact>strong,.setup-device-fact>small{overflow-wrap:anywhere}.setup-device-fact .ant-space{flex-wrap:wrap;row-gap:2px}.setup-device-fact .ant-typography{font-size:12px}.setup-device-row__actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px;padding-top:10px;border-top:1px solid #f0f0f0}.setup-device-row__actions .ant-btn{flex:0 0 auto}@media (max-width: 1100px){.setup-device-row{grid-template-columns:1fr}.setup-device-row__facts{grid-template-columns:repeat(2,minmax(145px,1fr))}}@media (max-width: 700px){.setup-device-table .ant-table-tbody>tr>td{padding:12px 10px}.setup-device-row__facts{grid-template-columns:1fr}.setup-device-row__actions .ant-btn{flex:1 1 calc(50% - 8px)}}.timelapse-page{min-width:0;padding:20px}.timelapse-page-header,.timelapse-results-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.timelapse-page-header{margin-bottom:18px}.timelapse-page-header .ant-typography,.timelapse-results-header .ant-typography{margin:0}.timelapse-composer{display:grid;grid-template-columns:minmax(180px,1fr) minmax(340px,1.8fr) auto minmax(170px,1fr) auto;align-items:end;gap:12px;padding:16px;border:1px solid #d9e2ec;background:#fff}.timelapse-field{display:grid;min-width:0;gap:6px}.timelapse-field>.ant-select,.timelapse-field>.ant-picker,.timelapse-field>.ant-input{width:100%}.timelapse-create-button{min-width:152px}.timelapse-source-guide{margin-top:12px}.timelapse-source-guide .ant-alert-description{line-height:1.55}.timelapse-recording-days{display:grid;gap:10px;margin-top:10px;padding:14px 16px;border:1px solid #bbf7d0;background:#f7fef9}.timelapse-recording-days-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.timelapse-recording-days-list{display:flex;flex-wrap:wrap;gap:8px}.timelapse-job-progress{margin-top:12px;padding:16px 18px;border:1px solid #bfdbfe;border-left:4px solid #1677ff;background:#f8fbff}.timelapse-job-progress-ready{border-color:#bbf7d0;border-left-color:#16a34a;background:#f7fef9}.timelapse-job-progress-error{border-color:#fecaca;border-left-color:#dc2626;background:snow}.timelapse-job-heading,.timelapse-job-footer,.timelapse-job-title,.timelapse-job-meta{display:flex;align-items:center}.timelapse-job-heading,.timelapse-job-footer{justify-content:space-between;gap:16px}.timelapse-job-title,.timelapse-job-meta{gap:10px;min-width:0}.timelapse-job-meta{justify-content:flex-end;flex-wrap:wrap}.timelapse-job-progress .ant-progress{margin:14px 0 10px}.timelapse-job-progress .ant-progress-text{min-width:42px;font-variant-numeric:tabular-nums}.timelapse-indeterminate-wrap{margin:14px 0 10px}.timelapse-indeterminate-progress{position:relative;height:8px;overflow:hidden;border-radius:999px;background:#dbeafe}.timelapse-indeterminate-progress>span{position:absolute;inset-block:0;width:36%;border-radius:inherit;background:linear-gradient(90deg,#1677ff,#69b1ff,#1677ff);animation:timelapse-indeterminate 1.4s ease-in-out infinite}@keyframes timelapse-indeterminate{0%{transform:translate(-110%)}to{transform:translate(310%)}}.timelapse-processing-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:9px}.timelapse-processing-summary .anticon{margin-right:6px;color:#1677ff}.timelapse-slow-notice{margin:0 0 14px}.timelapse-job-steps{margin:2px 0 14px}.timelapse-job-steps .ant-steps-item-title{font-size:13px;white-space:nowrap}.timelapse-job-footer{padding-top:11px;border-top:1px solid #dbeafe}.timelapse-auto-refresh{white-space:nowrap}.timelapse-auto-refresh>span{display:inline-block;width:7px;height:7px;margin-right:6px;border-radius:50%;background:#1677ff;animation:timelapse-status-pulse 1.4s ease-in-out infinite}@keyframes timelapse-status-pulse{0%,to{opacity:.35}50%{opacity:1}}.timelapse-results{margin-top:20px;padding-top:16px;border-top:1px solid #e5e7eb}.timelapse-results-header{margin-bottom:12px}.timelapse-export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.timelapse-export-item{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;padding:12px;border:1px solid #d9e2ec;background:#fff}.timelapse-export-icon{display:grid;width:40px;height:40px;place-items:center;color:#1677ff;background:#eaf4ff;font-size:20px}.timelapse-export-body{display:grid;min-width:0;gap:5px}.timelapse-export-body>.ant-typography{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timelapse-player{display:block;width:100%;max-height:72vh;background:#111827}@media (max-width: 1250px){.timelapse-composer{grid-template-columns:repeat(2,minmax(0,1fr))}.timelapse-create-button{width:max-content}}@media (max-width: 800px){.timelapse-page{padding:12px}.timelapse-page-header,.timelapse-job-heading,.timelapse-job-footer{align-items:flex-start;flex-wrap:wrap}.timelapse-job-meta{justify-content:flex-start}.timelapse-job-steps .ant-steps-item-title{white-space:normal}.timelapse-processing-summary{align-items:flex-start;flex-direction:column;gap:4px}.timelapse-composer,.timelapse-export-grid{grid-template-columns:1fr}.timelapse-export-item{grid-template-columns:40px minmax(0,1fr)}.timelapse-export-item>.ant-space{grid-column:1 / -1;justify-content:flex-end}}@media (max-width: 1199px){.app-shell>.ant-layout-sider.sidebar{flex:0 0 72px!important;max-width:72px!important;min-width:72px!important;padding:14px 8px;width:72px!important}.sidebar .brand{justify-content:center;padding-inline:0}.sidebar .brand>span,.sidebar .sidebar-toggle{display:none}.sidebar .nav-actions{align-items:center}.sidebar .sidebar-nav-button{font-size:0;height:40px;min-width:0;padding:0;width:46px}.sidebar .sidebar-nav-button .ant-btn-icon{font-size:16px;margin-inline-end:0}.topbar{gap:10px;padding-inline:14px}.topbar-actions{gap:6px!important}.topbar-user-name{display:none}.ai-review-header{align-items:stretch;display:grid;grid-template-columns:1fr}.ai-review-header>div:first-child{min-width:0}.ai-review-header>div:first-child>.ant-typography{display:block;max-width:72ch}.ai-review-header>.ant-space{flex-wrap:wrap;width:100%}.camera-live-workspace__header,.camera-live-workspace__toolbar,.timelapse-page-header,.timelapse-results-header,.nvr-detail-actions,.device-detail-actions{align-items:flex-start;flex-wrap:wrap}.content .ant-card-head-wrapper{align-items:flex-start;gap:8px}.content .ant-card-extra>.ant-space,.content .ant-card-head-title>.ant-space{flex-wrap:wrap}.content .ant-descriptions-view,.content .ant-table-wrapper{max-width:100%}}@media (max-width: 900px){.topbar{height:56px;min-height:56px}.topbar-context>.ant-space-item:nth-last-child(-n+2){display:none}.topbar-actions .ant-btn{font-size:0;padding-inline:10px}.topbar-actions .ant-btn .anticon{font-size:16px;margin-inline-end:0}.topbar-actions .ant-select{max-width:116px}.ai-review-header{padding:14px}.ai-review-header h3{font-size:20px;line-height:1.25;white-space:normal}.ai-review-header>.ant-space{display:grid;grid-template-columns:repeat(3,minmax(0,auto));justify-content:start}.ai-review-toolbar{padding:10px 14px}.operations-chart-grid,.dashboard-strip .ant-row{min-width:0}.device-live-workbench,.camera-live-workspace .device-live-layout{grid-template-columns:1fr}.multi-live-toolbar,.multi-live-toolbar-row,.multi-live-controls,.recording-toolbar,.setup-toolbar,.content .ant-form-item-control,.content .ant-form-item-control-input,.content .ant-form-item-control-input-content,.content .ant-select,.content .ant-picker{max-width:100%;min-width:0}}@media (max-width: 640px){.app-shell>.ant-layout-sider.sidebar{flex-basis:56px!important;max-width:56px!important;min-width:56px!important;padding-inline:5px;width:56px!important}.sidebar .brand img{height:24px;width:24px}.sidebar .sidebar-nav-button{width:42px}.content{padding:6px}.topbar{padding-inline:6px}.topbar-context .ant-btn{padding-inline:7px}.topbar-actions .ant-select{width:88px}.topbar-actions .ant-select-selection-item .language-option-flag{display:none}.topbar-actions .ant-select-selection-item .language-option{font-size:12px}.ai-review-header>.ant-space{grid-template-columns:repeat(3,40px)}.ai-review-header>.ant-space .ant-btn,.ai-review-header>.ant-space .ant-segmented-item-label{font-size:0}.ai-review-header>.ant-space .ant-btn{padding-inline:8px}.ai-review-header>.ant-space .anticon,.ai-review-header>.ant-space .ant-segmented-item-icon{font-size:16px;margin-inline-end:0}.ai-review-header>.ant-space .ant-segmented{grid-column:span 2}.content .ant-card-head{padding-inline:10px}.content .ant-card-body{padding:10px}.content .ant-card-head-wrapper{flex-direction:column}.content .ant-card-extra{margin-inline-start:0;width:100%}.timelapse-page-header,.timelapse-results-header,.timelapse-recording-days-heading,.nvr-timeline-heading{align-items:stretch;flex-direction:column}.identity-user-grid,.operations-chart-grid,.timelapse-export-grid{grid-template-columns:1fr!important}}
