.alert-list[data-v-076bdc7c]{--alert-virtual-row-height:242px;--alert-virtual-gap:8px;display:block;outline:none}.alert-card-footer[data-v-076bdc7c]{min-height:36px}.load-more-tip[data-v-076bdc7c]{text-align:center;padding:6px 0 2px;font-size:11px;color:rgba(148,197,255,.55);min-height:16px}.review-window[data-v-eb12e3e8]{width:980px;height:min(580px,calc(100vh - 48px))}.review-image[data-v-eb12e3e8]{object-fit:contain}.review-image-empty[data-v-eb12e3e8]{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;color:#5a7290;font-size:13px}.device-info-refresh[data-v-7a9cd801]{font-size:15px}.device-info-refresh.spinning[data-v-7a9cd801]{animation:device-info-refresh-spin-7a9cd801 .8s linear infinite}.field-value--icon[data-v-7a9cd801]{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:6px}@keyframes device-info-refresh-spin-7a9cd801{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.device-video-player[data-v-7a9cd801]{display:block;width:100%;height:100%;border:0;background:#000}:root{--space-xs:4px;--space-sm:8px;--space-md:14px;--space-lg:28px;--primary-bg:#040a14;--primary-bg-2:#071018;--card-bg:rgba(6,14,28,0.52);--card-bg-secondary:rgba(8,18,34,0.58);--panel-bg:rgba(5,12,24,0.8);--surface-inset:rgba(4,10,20,0.5);--surface-elevated:rgba(6,14,28,0.92);--glass-surface-top:rgba(6,14,28,0.72);--glass-surface-bottom:rgba(4,10,20,0.58);--border:rgba(0,180,255,0.16);--text-primary:#e8f4ff;--text-secondary:#8ba4be;--text-muted:#5a7290;--text-subtle:#475569;--text-on-accent:#fff;--title-gradient-mid:#a8e6ff;--accent:#00b4ff;--success:#00e676;--warning:#ffb020;--warning-light:#ffc040;--danger:#ff4757;--danger-light:#ff6b7a;--danger-soft:#ff8a95;--purple:#9d7aff;--purple-bg-subtle:rgba(157,122,255,0.12);--purple-bg-hover:rgba(157,122,255,0.25);--purple-border:rgba(157,122,255,0.35);--orange:#ff7a2e;--offline:var(--text-muted);--marker-online:#00c853;--accent-bg:rgba(0,180,255,0.08);--accent-bg-active:var(--border);--accent-border-active:rgba(0,180,255,0.32);--accent-inset-highlight:var(--accent-bg);--accent-scrollbar:rgba(0,180,255,0.22);--device-monitor:#18ce79;--device-monitor-glow:rgba(24,206,121,0.48);--device-broadcast:#19aeea;--device-broadcast-glow:rgba(25,174,234,0.48);--device-machine:#f0aa28;--device-machine-glow:rgba(240,170,40,0.48);--status-fp:var(--text-secondary);--status-fp-border:rgba(139,164,190,0.3);--status-fp-glow:rgba(139,164,190,0.5);--danger-bg-subtle:rgba(255,71,87,0.12);--danger-border:rgba(255,71,87,0.35);--danger-glow:rgba(255,71,87,0.5);--success-glow:rgba(0,230,118,0.5);--glass-blur-sm:8px;--glass-blur-md:20px;--glass-blur-lg:40px;--chart-intrusion:var(--danger);--chart-crowd:var(--warning);--chart-fire:var(--orange);--chart-parking:var(--purple);--chart-behavior:var(--accent);--chart-offline:var(--text-muted);--chart-blur:var(--text-secondary);--chart-interference:var(--accent);--tab-inactive-bg:var(--surface-inset);--tab-inactive-border:rgba(0,180,255,0.18);--tab-inactive-text:var(--text-muted);--tab-hover-bg:var(--accent-bg);--tab-hover-text:var(--text-secondary);--radius:12px;--radius-sm:8px;--font:"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--transition:0.22s cubic-bezier(0.4,0,0.2,1);--panel-header-h:48px;--pie-chart-h:220px;--tab-height:28px;--btn-height-sm:28px;--kpi-bar-min-h:56px;--alert-image-height:240px;--alert-virtual-row-height:256px;--alert-virtual-gap:8px;--modal-width:480px;--modal-height:400px;--device-panel-width:300px;--right-panel-width:320px;--topbar-height:68px;--left-panels-gap:var(--space-md);--content-top-gap:var(--space-md);--content-top-offset:calc(var(--topbar-height) + var(--content-top-gap));--panel-inset:var(--space-md);--panel-gutter:var(--space-lg);--kpi-bar-gap:var(--space-sm);--kpi-zone-h:calc(var(--kpi-bar-min-h) + var(--kpi-bar-gap));--map-ui-top:calc(var(--content-top-offset) + var(--kpi-zone-h));--pie-panel-h:calc(var(--panel-header-h) + var(--pie-chart-h));color-scheme:dark}.screen-page,.screen-page *{margin:0;padding:0;box-sizing:border-box}body.screen-page-body{font-family:var(--font);background:var(--primary-bg);color:var(--text-primary);height:100vh;width:100vw;overflow:hidden;-webkit-font-smoothing:antialiased}.device-panel-wrapper,.glass-panel,.pie-float-panel{background:var(--panel-bg);backdrop-filter:blur(var(--glass-blur-lg)) saturate(1.5);-webkit-backdrop-filter:blur(var(--glass-blur-lg)) saturate(1.5);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 32px rgba(0,0,0,.35),inset 0 1px 0 var(--accent-inset-highlight)}.device-panel-wrapper,.pie-float-panel,.right-panel.glass-panel{background:linear-gradient(160deg,rgba(6,14,28,.62),rgba(4,10,20,.5));backdrop-filter:blur(var(--glass-blur-md)) saturate(1.4);-webkit-backdrop-filter:blur(var(--glass-blur-md)) saturate(1.4)}.alert-action-btn,.batch-select-toggle-btn,.inline-confirm-btn--cancel,.review-nav-btn,.review-tool-btn,.status-filter-btn{border:1px solid var(--border);background:var(--accent-bg);color:var(--text-secondary);font-family:var(--font);cursor:pointer;transition:var(--transition)}.alert-action-btn:hover,.batch-select-toggle-btn:hover,.inline-confirm-btn--cancel:hover,.review-nav-btn:hover:not(:disabled),.review-tool-btn:hover,.status-filter-btn:hover{background:var(--accent-bg-active);color:var(--text-primary);border-color:var(--border)}.alert-action-btn:hover,.review-nav-btn:hover:not(:disabled),.review-tool-btn:hover{color:var(--accent)}.batch-select-toggle-btn,.status-filter-btn{padding:5px 10px;border-radius:6px;font-size:11px;font-weight:500;white-space:nowrap}.batch-select-toggle-btn.active{background:var(--accent-bg-active);border-color:var(--border);color:var(--accent)}.pie-range-filter,.select-sm{appearance:none;-webkit-appearance:none;-moz-appearance:none;padding:4px 26px 4px 10px;border-radius:6px;border:1px solid var(--border);background-color:var(--accent-bg);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10'%3E%3Cpath d='M1 3l4 4 4-4' fill='none' stroke='%238ba4be' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;color:var(--text-secondary);font-size:11px;font-weight:500;line-height:1.6;outline:none;cursor:pointer;font-family:var(--font);transition:var(--transition)}.pie-range-filter:hover,.select-sm:hover{background-color:var(--accent-bg-active);border-color:var(--border);color:var(--text-primary)}.pie-range-filter:focus-visible,.select-sm:focus-visible{border-color:var(--border)}.pie-range-filter option,.select-sm option{background:var(--primary-bg-2);color:var(--text-primary)}.pie-chart-tab{padding:5px 10px;border-radius:6px;border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;font-size:11px;font-weight:500;transition:var(--transition);font-family:var(--font);white-space:nowrap}.pie-chart-tab:hover:not(.active){background:var(--tab-hover-bg);color:var(--text-primary)}.pie-chart-tab.active{background:linear-gradient(135deg,var(--accent-bg-active),rgba(0,180,255,.1));border-color:var(--accent-border-active);color:var(--accent);box-shadow:0 0 8px var(--accent-bg-active)}.pill-tab-group{position:relative;display:-ms-flexbox;display:flex;padding:3px;gap:0;border-radius:999px;background:var(--accent-bg);border:1px solid var(--border)}.pill-tab-group:before{content:"";position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 6px)/var(--pill-tab-cols, 4));border-radius:999px;background:linear-gradient(135deg,rgba(0,180,255,.42),rgba(0,180,255,.3));box-shadow:0 1px 4px var(--accent-bg-active);transition:transform .28s cubic-bezier(.4,0,.2,1);z-index:0;pointer-events:none}.pill-tab{position:relative;z-index:1;-ms-flex:1;flex:1;text-align:center;padding:5px 8px;border:none;border-radius:999px;background:transparent;box-shadow:none;color:var(--text-secondary);cursor:pointer;font-size:11px;font-weight:500;font-family:var(--font);transition:color .2s ease;white-space:nowrap}.pill-tab.active,.pill-tab:hover:not(.active){background:transparent;color:var(--text-primary)}.pill-tab.active{border:none;box-shadow:none;font-weight:600}.alert-list,.device-list-body{scrollbar-width:thin;scrollbar-color:var(--accent-scrollbar) transparent}.alert-list::-webkit-scrollbar,.device-list-body::-webkit-scrollbar{width:3px}.alert-list::-webkit-scrollbar-track,.device-list-body::-webkit-scrollbar-track{background:transparent}.alert-list::-webkit-scrollbar-thumb,.device-list-body::-webkit-scrollbar-thumb{background:var(--accent-scrollbar);border-radius:4px}.alert-card:hover,.dev-card:hover{background:rgba(0,180,255,.07);border-color:rgba(0,180,255,.2);box-shadow:0 2px 12px rgba(0,180,255,.1)}.dev-card--focused:before,.dev-card:hover:before{background:var(--accent)}.alert-card--focused,.dev-card--focused{background:rgba(0,180,255,.1);border-color:rgba(0,180,255,.35);box-shadow:0 0 0 1px rgba(0,180,255,.2),0 4px 16px rgba(0,180,255,.15)}.alert-checkbox,.batch-select-all-label input[type=checkbox]{appearance:none;-webkit-appearance:none;width:14px;height:14px;margin:0;cursor:pointer;-ms-flex-negative:0;flex-shrink:0;border:1px solid hsla(0,0%,100%,.5);border-radius:3px;background:hsla(0,0%,100%,.08);position:relative;transition:var(--transition)}.alert-checkbox:hover,.batch-select-all-label input[type=checkbox]:hover{border-color:#fff}.alert-checkbox:checked,.batch-select-all-label input[type=checkbox]:checked{background:#fff;border-color:#fff}.alert-checkbox:checked:after,.batch-select-all-label input[type=checkbox]:checked:after{content:"";position:absolute;left:4px;top:1px;width:3px;height:7px;border:solid var(--accent);border-width:0 2px 2px 0;transform:rotate(45deg)}.batch-select-all-label input[type=checkbox]:indeterminate{background:#fff;border-color:#fff}.batch-select-all-label input[type=checkbox]:indeterminate:after{content:"";position:absolute;left:3px;top:6px;width:8px;height:2px;background:var(--accent)}.dashboard-bg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(0,180,255,.012) 1px,transparent 0),linear-gradient(90deg,rgba(0,180,255,.012) 1px,transparent 0);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,#000 10%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 50%,#000 10%,transparent 75%);opacity:.6}.bg-glow{position:absolute;border-radius:50%;filter:blur(80px);opacity:.28}.bg-glow--tl{width:500px;height:400px;top:-100px;left:-100px;background:radial-gradient(circle,rgba(0,100,255,.18) 0,transparent 70%)}.bg-glow--br{width:600px;height:500px;bottom:-150px;right:-100px;background:radial-gradient(circle,rgba(0,180,255,.12) 0,transparent 70%)}.bg-scanline{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 4px,rgba(0,180,255,.003) 0,rgba(0,180,255,.003) 5px);opacity:.22}.topbar{position:fixed;top:0;left:0;right:0;width:100%;height:var(--topbar-height);background:linear-gradient(180deg,var(--glass-surface-top),var(--glass-surface-bottom));border-bottom:1px solid var(--border);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:0 var(--panel-gutter);z-index:200;backdrop-filter:blur(var(--glass-blur-md)) saturate(1.25);-webkit-backdrop-filter:blur(var(--glass-blur-md)) saturate(1.25);box-shadow:0 4px 24px rgba(0,0,0,.35),inset 0 -1px 0 rgba(0,180,255,.06)}.topbar:after{content:"";position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:min(60%,600px);height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.6}.topbar-deco{position:absolute;top:50%;transform:translateY(-50%);width:120px;height:2px;opacity:.4}.topbar-deco--left{left:var(--panel-gutter);background:linear-gradient(90deg,var(--accent),transparent)}.topbar-deco--right{right:var(--panel-gutter);background:linear-gradient(270deg,var(--accent),transparent)}.topbar-left{-ms-flex-align:center;gap:16px;-ms-flex:1;flex:1;min-width:0}.topbar-center,.topbar-left{display:-ms-flexbox;display:flex;align-items:center}.topbar-center{position:absolute;left:50%;transform:translateX(-50%);-ms-flex-align:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;max-width:calc(100% - 520px)}.topbar-title-wrap{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:14px}.project-logo{-ms-flex-negative:0;flex-shrink:0;border-radius:10px;box-shadow:0 0 12px rgba(0,180,255,.25);pointer-events:none}.topbar-title-text{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:2px}.project-name{font-weight:700;font-size:22px;line-height:1.2;background:linear-gradient(135deg,#fff,var(--title-gradient-mid) 40%,var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:2px;white-space:nowrap}.project-subtitle{font-size:9px;font-weight:500;letter-spacing:3px;color:var(--text-muted);text-transform:uppercase}.topbar-time-wrap{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:8px;padding:6px 4px}.topbar-time-icon{width:16px;height:16px;color:var(--accent);-ms-flex-negative:0;flex-shrink:0;filter:drop-shadow(0 0 6px rgba(0,180,255,.5))}.topbar-time{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:baseline;align-items:baseline;gap:8px;font-variant-numeric:tabular-nums;white-space:nowrap}.topbar-time .ttime-date{font-size:13px;font-weight:500;color:var(--text-secondary);letter-spacing:.5px}.topbar-time .ttime-week{font-size:12px;font-weight:500;color:var(--text-muted);letter-spacing:.5px}.topbar-time .ttime-clock{font-size:16px;font-weight:700;letter-spacing:1.5px;color:#eafaff;text-shadow:0 0 6px rgba(0,180,255,.55),0 0 16px rgba(0,180,255,.35)}.topbar-right{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:10px;-ms-flex:1;flex:1;-ms-flex-pack:end;justify-content:flex-end;min-width:0}.screen-lot-context{position:relative;height:36px;min-width:0;max-width:300px;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:7px;padding:0 9px;border-radius:8px;background:var(--accent-bg);border:1px solid var(--border);color:var(--text-secondary);font-size:12px;transition:var(--transition)}.screen-lot-context.open{border-color:rgba(0,180,255,.42);box-shadow:0 0 0 1px rgba(0,180,255,.08),0 0 18px rgba(0,180,255,.14)}.screen-lot-label{-ms-flex-negative:0;flex-shrink:0;color:var(--text-muted);white-space:nowrap}.screen-lot-current{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary);font-weight:500}.screen-lot-switcher{position:relative;min-width:0}.screen-lot-trigger{width:190px;height:28px;padding:0 7px 0 10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px;border:0;border-radius:6px;outline:none;background:linear-gradient(135deg,rgba(0,180,255,.13),rgba(0,180,255,.07));color:var(--text-primary);cursor:pointer;font:500 12px var(--font);transition:var(--transition)}.screen-lot-trigger:hover{background:rgba(0,180,255,.18)}.screen-lot-trigger:disabled{cursor:wait;opacity:.65}.screen-lot-trigger-text{-ms-flex:1;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.screen-lot-arrow{width:17px;height:17px;-ms-flex-negative:0;flex-shrink:0;color:var(--accent);transition:transform .22s ease}.screen-lot-context.open .screen-lot-arrow{transform:rotate(180deg)}.screen-lot-menu{position:absolute;z-index:1200;top:calc(100% + 10px);right:-9px;width:min(390px,calc(100vw - 32px));overflow:hidden;border:1px solid rgba(0,180,255,.3);border-radius:10px;background:linear-gradient(155deg,rgba(8,24,40,.97),rgba(3,13,25,.98));backdrop-filter:blur(18px) saturate(1.35);-webkit-backdrop-filter:blur(18px) saturate(1.35);box-shadow:0 18px 48px rgba(0,0,0,.55),inset 0 1px 0 hsla(0,0%,100%,.05)}.screen-lot-menu:before{content:"";position:absolute;top:0;left:18px;right:18px;height:1px;background:linear-gradient(90deg,transparent,rgba(0,180,255,.75),transparent)}.screen-lot-menu-title{height:38px;padding:0 14px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;border-bottom:1px solid rgba(0,180,255,.14);color:var(--text-muted);font-size:11px;letter-spacing:.8px}.screen-lot-menu-list{max-height:min(460px,calc(100vh - 120px));padding:6px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(0,180,255,.45) transparent}.screen-lot-menu-list::-webkit-scrollbar{width:5px}.screen-lot-menu-list::-webkit-scrollbar-track{background:transparent}.screen-lot-menu-list::-webkit-scrollbar-thumb{background:rgba(0,180,255,.4);border-radius:5px}.screen-lot-option{width:100%;min-height:36px;padding-top:7px;padding-right:10px;padding-bottom:7px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:9px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text-secondary);cursor:pointer;font:400 12px/1.4 var(--font);text-align:left;transition:var(--transition)}.screen-lot-option:hover{color:var(--text-primary);background:rgba(0,180,255,.09);border-color:rgba(0,180,255,.1)}.screen-lot-option.is-company{color:#d8f4ff;font-weight:600}.screen-lot-option.selected{color:#fff;background:linear-gradient(90deg,rgba(0,180,255,.22),rgba(0,180,255,.08));border-color:rgba(0,180,255,.32);box-shadow:inset 3px 0 0 var(--accent)}.screen-lot-option-dot{width:6px;height:6px;-ms-flex-negative:0;flex-shrink:0;border-radius:50%;background:rgba(139,164,190,.55)}.screen-lot-option.is-company .screen-lot-option-dot{width:8px;height:8px;background:var(--accent);box-shadow:0 0 8px rgba(0,180,255,.7)}.screen-lot-option.selected .screen-lot-option-dot{background:#7fe8ff;box-shadow:0 0 8px rgba(0,180,255,.85)}.screen-lot-option-name{-ms-flex:1;flex:1;min-width:0;overflow-wrap:anywhere}.screen-lot-check{width:16px;height:16px}.screen-lot-check,.screen-lot-loading{-ms-flex-negative:0;flex-shrink:0;color:var(--accent)}.screen-lot-loading{font-size:10px;white-space:nowrap}.screen-batch-confirm.ant-modal-confirm .ant-modal-content{overflow:hidden;border:1px solid rgba(0,180,255,.34);border-radius:12px;background:radial-gradient(circle at 12% 0,rgba(0,180,255,.13),transparent 38%),linear-gradient(145deg,rgba(8,25,43,.98),rgba(3,12,24,.99));box-shadow:0 24px 70px rgba(0,0,0,.62),0 0 28px rgba(0,180,255,.12),inset 0 1px 0 hsla(0,0%,100%,.06)}.screen-batch-confirm.ant-modal-confirm .ant-modal-content:before{content:"";position:absolute;top:0;left:14%;right:14%;height:1px;background:linear-gradient(90deg,transparent,rgba(0,210,255,.95),transparent)}.screen-batch-confirm.ant-modal-confirm .ant-modal-body{padding:30px 32px 26px}.screen-batch-confirm.ant-modal-confirm .ant-modal-confirm-body>.anticon{width:38px;height:38px;margin-right:15px;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:1px solid rgba(0,180,255,.35);border-radius:50%;background:rgba(0,180,255,.12);color:var(--accent);font-size:21px;box-shadow:0 0 16px rgba(0,180,255,.18)}.screen-batch-confirm--warning.ant-modal-confirm .ant-modal-confirm-body>.anticon{border-color:rgba(255,176,32,.48);background:rgba(255,176,32,.12);color:var(--warning);box-shadow:0 0 16px rgba(255,176,32,.18)}.screen-batch-confirm.ant-modal-confirm .ant-modal-confirm-title{color:#edfaff;font:600 19px/38px var(--font);letter-spacing:.4px}.screen-batch-confirm.ant-modal-confirm .ant-modal-confirm-content{margin:13px 0 0 53px;color:var(--text-secondary);font:400 14px/1.75 var(--font)}.screen-batch-confirm.ant-modal-confirm .ant-modal-confirm-btns{margin-top:28px}.screen-batch-confirm.ant-modal-confirm .ant-btn{height:36px;min-width:88px;padding:0 18px;border-radius:7px;border-color:rgba(139,164,190,.32);background:rgba(139,164,190,.08);color:var(--text-secondary);font:500 13px var(--font);text-shadow:none;box-shadow:none;transition:var(--transition)}.screen-batch-confirm.ant-modal-confirm .ant-btn:focus,.screen-batch-confirm.ant-modal-confirm .ant-btn:hover{border-color:rgba(0,180,255,.4);background:rgba(0,180,255,.1);color:#fff}.screen-batch-confirm.ant-modal-confirm .ant-btn-primary{border-color:rgba(0,180,255,.7);background:linear-gradient(135deg,#049ed7,#007db8);color:#fff;box-shadow:0 5px 16px rgba(0,160,220,.28)}.screen-batch-confirm.ant-modal-confirm .ant-btn-primary:focus,.screen-batch-confirm.ant-modal-confirm .ant-btn-primary:hover{border-color:#49d5ff;background:linear-gradient(135deg,#08b8ed,#078bc7);box-shadow:0 6px 20px rgba(0,180,255,.36)}.screen-batch-confirm--warning.ant-modal-confirm .ant-btn-primary{border-color:rgba(255,176,32,.78);background:linear-gradient(135deg,#d99516,#aa6d08);color:#fff;box-shadow:0 5px 16px rgba(255,176,32,.24)}.screen-batch-confirm--warning.ant-modal-confirm .ant-btn-primary:focus,.screen-batch-confirm--warning.ant-modal-confirm .ant-btn-primary:hover{border-color:#ffd36a;background:linear-gradient(135deg,#eca91e,#bd7d0e);box-shadow:0 6px 20px rgba(255,176,32,.32)}.topbar-icon-btn{width:36px;height:36px;border-radius:8px;border:1px solid var(--border);background:var(--accent-bg);color:var(--text-secondary);cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;transition:var(--transition);padding:0}.topbar-icon-btn .fs-icon{width:18px;height:18px}.topbar-icon-btn.active .fs-icon--expand,.topbar-icon-btn .fs-icon--compress{display:none}.topbar-icon-btn.active .fs-icon--compress{display:block}.topbar-icon-btn:hover{background:var(--accent-bg-active);color:var(--accent);border-color:rgba(0,180,255,.35);box-shadow:0 0 12px rgba(0,180,255,.2)}.backend-entry{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:6px;padding:7px 14px;border-radius:8px;background:var(--accent-bg);border:1px solid var(--border);color:var(--text-secondary);font-size:13px;font-weight:500;text-decoration:none;transition:var(--transition);white-space:nowrap;cursor:pointer}.backend-entry:hover{background:var(--accent-bg-active);color:var(--accent);border-color:var(--border);box-shadow:0 0 16px rgba(0,180,255,.15)}.admin-dropdown-wrapper{position:relative}.admin-trigger{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px;padding:6px 10px;border-radius:8px;background:var(--accent-bg);border:1px solid var(--border);cursor:pointer;transition:var(--transition);font-family:var(--font);color:var(--text-primary)}.admin-trigger:hover{background:rgba(0,180,255,.1);border-color:var(--border)}.avatar-ring{width:28px;height:28px;border-radius:50%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;background:linear-gradient(135deg,rgba(0,180,255,.2),rgba(0,180,255,.1));border:1px solid rgba(0,180,255,.3)}.avatar-icon{width:16px;height:16px;color:var(--accent)}.user-name{font-weight:500;font-size:13px;color:var(--text-primary)}.admin-arrow{font-size:10px;color:var(--text-muted)}.admin-dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:140px;background:rgba(6,14,28,.6);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--border);border-radius:10px;padding:6px;opacity:0;visibility:hidden;transform:translateY(-8px);transition:var(--transition);z-index:1000;box-shadow:0 12px 40px rgba(0,0,0,.5)}.admin-dropdown-wrapper.open .admin-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.admin-dropdown-item{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:start;justify-content:flex-start;gap:8px;width:100%;padding:10px 16px;border:none;background:transparent;color:var(--text-primary);cursor:pointer;font-size:13px;font-weight:500;transition:var(--transition);font-family:var(--font);white-space:nowrap;border-radius:6px}.admin-dropdown-item:hover{background:var(--accent-bg)}.admin-dropdown-item.logout{color:var(--danger-soft)}.admin-dropdown-item.logout:hover{background:rgba(255,71,87,.1)}.admin-dropdown-divider{height:1px;margin:5px 8px;background:var(--border)}.admin-dropdown-item.sound-toggle{-ms-flex-pack:justify;justify-content:space-between;gap:14px}.sound-toggle-label{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:8px}.sound-toggle-icon{width:16px;height:16px;color:var(--text-muted);transition:var(--transition)}.sound-toggle.active .sound-toggle-icon{color:var(--accent)}.sound-toggle:not(.active) .sound-wave{opacity:0}.sound-switch{position:relative;width:34px;height:18px;border-radius:10px;-ms-flex-negative:0;flex-shrink:0;background:hsla(0,0%,100%,.12);transition:var(--transition)}.sound-switch-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--text-secondary);transition:var(--transition)}.sound-toggle.active .sound-switch{background:rgba(0,180,255,.9);box-shadow:0 0 10px rgba(0,180,255,.4)}.sound-toggle.active .sound-switch-knob{left:18px;background:#fff}.main-layout{position:relative;height:100vh;overflow:hidden;z-index:1}#viewHome{width:100%;height:100%;--center-col-inset-left:calc(var(--panel-inset) + var(--device-panel-width) + var(--left-panels-gap));--center-col-inset-right:calc(var(--panel-inset) + var(--right-panel-width) + var(--left-panels-gap))}#viewHome,.panel-frame{position:relative}.panel-corner{position:absolute;width:14px;height:14px;z-index:2;pointer-events:none}.panel-corner--tl{left:-1px;border-left:1px solid var(--accent)}.panel-corner--tl,.panel-corner--tr{top:-1px;border-top:1px solid var(--accent);opacity:.7}.panel-corner--tr{right:-1px;border-right:1px solid var(--accent)}.panel-corner--bl{left:-1px;border-left:1px solid var(--accent)}.panel-corner--bl,.panel-corner--br{bottom:-1px;border-bottom:1px solid var(--accent);opacity:.35}.panel-corner--br{right:-1px;border-right:1px solid var(--accent)}.device-panel-wrapper{top:var(--content-top-offset);bottom:calc(var(--panel-inset) + var(--pie-panel-h) + var(--left-panels-gap))}.device-panel-wrapper,.pie-float-panel{position:absolute;left:var(--panel-inset);width:var(--device-panel-width);z-index:20;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.pie-float-panel{bottom:var(--panel-inset);height:var(--pie-panel-h);transition:box-shadow .2s,border-color .2s}.panel-refresh-btn{width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:var(--accent-bg);color:var(--text-muted);cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:13px;transition:var(--transition);-ms-flex-negative:0;flex-shrink:0}.panel-refresh-btn:hover{background:var(--accent-bg-active);color:var(--accent);border-color:var(--border)}.panel-refresh-btn.spinning{animation:spin-refresh .6s ease}@keyframes spin-refresh{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.card{background:transparent;border-radius:var(--radius);border:none;box-shadow:none;overflow:hidden;-ms-flex-direction:column;flex-direction:column;height:100%}.card,.card-header{display:-ms-flexbox;display:flex}.card-header{min-height:var(--panel-header-h);padding:13px 16px;font-weight:600;font-size:13px;color:var(--text-primary);border-bottom:1px solid rgba(0,180,255,.14);-ms-flex-align:center;align-items:center;gap:8px;background:linear-gradient(180deg,rgba(0,180,255,.1),rgba(0,180,255,.03) 60%,transparent);-ms-flex-wrap:nowrap;flex-wrap:nowrap;-ms-flex-negative:0;flex-shrink:0}.card-header .status-filter-wrapper{margin-left:auto}.header-icon{width:28px;height:28px;border-radius:7px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex-negative:0;flex-shrink:0}.header-icon--green{background:rgba(0,230,118,.14);color:var(--success)}.header-icon--blue{background:rgba(0,180,255,.14);color:var(--accent)}.header-icon--amber{background:rgba(255,176,32,.14);color:var(--warning)}.header-title{font-size:14px;font-weight:600;letter-spacing:.6px;white-space:nowrap;color:var(--text-primary)}.right-panel .card-header{-ms-flex-wrap:wrap;flex-wrap:wrap;row-gap:var(--space-xs);background:linear-gradient(180deg,rgba(255,176,32,.045),rgba(0,180,255,.05) 60%,transparent)}.right-panel .panel-frame:after{content:"";position:absolute;top:0;left:18%;right:18%;height:1px;background:linear-gradient(90deg,transparent,rgba(255,176,32,.28),transparent);z-index:3;pointer-events:none}.pie-float-panel .card-header{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-line-pack:center;align-content:center;row-gap:var(--space-xs);min-height:var(--panel-header-h);padding:10px 12px;-ms-flex-negative:0;flex-shrink:0}.pie-float-panel .header-title{min-width:0}.pie-float-panel .pie-chart-tabs{margin-left:auto}.pie-float-panel .pie-range-filter{margin-left:auto;-ms-flex:0 0 auto;flex:0 0 auto;max-width:72px}.device-list-body{-ms-flex:1;flex:1;overflow-y:auto;padding:6px 8px}.dev-card{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);cursor:pointer;border:1px solid transparent;margin:0 0 7px;position:relative;overflow:hidden;background:rgba(4,10,20,.3)}.dev-card,.dev-card:before{transition:var(--transition)}.dev-card:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;border-radius:0 2px 2px 0;background:transparent}.dev-card-icon{width:34px;height:34px;border-radius:8px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:15px;-ms-flex-negative:0;flex-shrink:0;position:relative}.dev-card-icon.type-monitor{background:rgba(24,206,121,.1);border:1px solid rgba(24,206,121,.25)}.dev-card-icon.type-broadcast{background:rgba(25,174,234,.1);border:1px solid rgba(25,174,234,.25)}.dev-card-icon.type-machine{background:rgba(240,170,40,.1);border:1px solid rgba(240,170,40,.25)}.dev-card-icon.status-offline{background:rgba(90,114,144,.15);border-color:rgba(90,114,144,.2)}.dev-card-icon.status-alert{background:rgba(255,71,87,.12);border-color:rgba(255,71,87,.3)}.dev-card-alert-dot{position:absolute;top:-2px;right:-2px;width:8px;height:8px;border-radius:50%;background:var(--danger);box-shadow:0 0 8px rgba(255,71,87,.7);animation:pulse-alert 1.5s infinite}.dev-card-info{-ms-flex:1;flex:1;min-width:0;padding-right:58px}.dev-card-top{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-width:0}.dev-card-name{font-size:12.5px;font-weight:500;letter-spacing:.2px;color:#c2d3e6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dev-card-meta{font-size:10px;color:var(--text-muted);margin-top:4px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:6px;-ms-flex-wrap:wrap;flex-wrap:wrap}.dev-card-loc{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dev-card-status{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:3px;padding:1px 7px;border-radius:10px;font-size:10px;font-weight:600}.dev-card>.dev-card-status{position:absolute;top:8px;right:9px;z-index:2}.dev-card-status.status-online{background:rgba(0,230,118,.1);color:#00e676}.dev-card-status.status-offline,.dev-card-status.status-unknown{background:rgba(90,114,144,.12);color:#8ba4be}.dev-card-status.status-alert{background:var(--danger-bg-subtle);color:var(--danger-light)}.dev-card-meta .offline-tag{color:var(--warning)}.status-online{background:rgba(0,230,118,.12);color:#00e676;border:1px solid rgba(0,230,118,.25)}.status-offline,.status-unknown{background:rgba(90,114,144,.1);color:#8ba4be;border:1px solid rgba(90,114,144,.2)}.status-alert{background:var(--danger-bg-subtle);color:var(--danger-light);border:1px solid var(--danger-border);animation:pulse-alert 1.5s infinite}@keyframes pulse-alert{0%,to{box-shadow:0 0 0 0 rgba(255,71,87,.3)}50%{box-shadow:0 0 0 6px rgba(255,71,87,0)}}.empty-list-tip{text-align:center;color:var(--text-muted);padding:28px 16px;font-size:12px}.device-type-tabs{--pill-tab-cols:4;margin:8px 12px;-ms-flex-negative:0;flex-shrink:0}.device-type-tabs:has([data-type=monitor].active):before{transform:translateX(100%)}.device-type-tabs:has([data-type=broadcast].active):before{transform:translateX(200%)}.device-type-tabs:has([data-type=machine].active):before{transform:translateX(300%)}.machine-config-icon{display:-ms-inline-flexbox;display:inline-flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;-ms-flex:0 0 auto;flex:0 0 auto}.machine-config-icon>img,.machine-config-icon__fallback{position:absolute;inset:0;width:100%;height:100%}.machine-config-icon__fallback{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.machine-config-icon>img{z-index:1;display:block;object-fit:contain}.status-filter-btn{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:4px}.status-filter-btn .arrow{font-size:9px;transition:transform .2s}.status-filter-btn.open .arrow{transform:rotate(180deg)}.status-filter-wrapper{position:relative;margin-left:auto}.status-popup{position:absolute;top:calc(100% + 6px);right:0;z-index:50;min-width:108px;padding:6px;border-radius:10px;background:rgba(6,14,28,.8);border:1px solid var(--border);box-shadow:0 12px 40px rgba(0,0,0,.5),0 0 20px rgba(0,180,255,.08);display:none}.status-popup.show{display:block;animation:popupFadeIn .15s ease-out}@keyframes popupFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.status-popup-item{padding:8px 12px;border-radius:6px;cursor:pointer;font-size:12px;color:var(--text-secondary);transition:var(--transition);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.status-popup-item:hover{background:rgba(0,180,255,.1);color:var(--text-primary)}.status-popup-item.active{background:var(--accent-bg-active);color:var(--accent)}.status-popup-item .status-dot{width:8px;height:8px;border-radius:50%;-ms-flex-negative:0;flex-shrink:0}.status-dot--all{background:var(--text-muted)}.status-dot--online{background:var(--success);box-shadow:0 0 6px rgba(0,230,118,.5)}.status-dot--offline,.status-dot--unknown{background:var(--text-muted)}.status-dot--alert{background:var(--danger);box-shadow:0 0 6px rgba(255,71,87,.5)}.status-popup-divider{height:1px;background:var(--accent-bg);margin:4px 0}.kpi-bar{position:absolute;top:var(--content-top-offset);left:var(--center-col-inset-left);right:var(--center-col-inset-right);z-index:25;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:center;justify-content:center;gap:var(--space-sm);-ms-flex-wrap:nowrap;flex-wrap:nowrap;pointer-events:none;min-height:var(--kpi-bar-min-h);padding-bottom:var(--kpi-bar-gap);box-sizing:border-box;overflow-x:auto;scrollbar-width:none}.kpi-bar::-webkit-scrollbar{display:none}.kpi-item{-ms-flex:1 1 0px;flex:1 1 0;min-width:100px;max-width:160px;padding:10px 12px;border-radius:var(--radius-sm);background:linear-gradient(160deg,var(--glass-surface-top),var(--glass-surface-bottom));border:1px solid var(--border);backdrop-filter:blur(var(--glass-blur-md)) saturate(1.25);-webkit-backdrop-filter:blur(var(--glass-blur-md)) saturate(1.25);box-shadow:0 4px 20px rgba(0,0,0,.3),inset 0 1px 0 rgba(0,180,255,.05);gap:10px;pointer-events:auto;position:relative;overflow:hidden}.kpi-icon,.kpi-item{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.kpi-icon{width:32px;height:32px;border-radius:8px;-ms-flex-negative:0;flex-shrink:0;-ms-flex-pack:center;justify-content:center}.kpi-icon svg{width:16px;height:16px}.kpi-icon--blue{background:var(--accent-bg-active);color:var(--accent)}.kpi-icon--green{background:rgba(0,230,118,.12);color:var(--success)}.kpi-icon--red{background:rgba(255,71,87,.12);color:var(--danger)}.kpi-icon--amber{background:rgba(255,176,32,.12);color:var(--warning)}.kpi-content{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:2px;min-width:0}.kpi-label{font-size:9.5px;color:var(--text-muted);white-space:nowrap;letter-spacing:.8px;text-transform:uppercase}.kpi-value{font-size:20px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;line-height:1.1;letter-spacing:.5px}.kpi-item--success .kpi-value{color:var(--success)}.kpi-item--danger .kpi-value{color:var(--danger-light)}.kpi-item--warning .kpi-value{color:var(--warning-light)}.kpi-item--blue .kpi-value{color:var(--accent)}.kpi-item--drill{cursor:pointer;pointer-events:auto;transition:transform .15s ease,border-color .2s,box-shadow .2s}.kpi-item--drill:hover{transform:translateY(-1px);border-color:var(--border);box-shadow:0 6px 18px rgba(0,180,255,.15)}.kpi-item--drill.kpi-item--active{border-color:rgba(0,180,255,.4);box-shadow:0 0 0 1px rgba(0,180,255,.2),0 6px 18px rgba(0,180,255,.18)}.kpi-item--drill:focus-visible{outline:2px solid rgba(0,180,255,.6);outline-offset:2px}.device-panel-wrapper,.kpi-bar,.panel-edge-toggle,.pie-float-panel,.right-panel{transition:transform .3s ease,opacity .3s ease,width .3s ease}#viewHome.panel-left-collapsed{--device-panel-width:0px}#viewHome.panel-right-collapsed{--right-panel-width:0px}#viewHome.panel-left-collapsed .device-panel-wrapper,#viewHome.panel-left-collapsed .pie-float-panel{transform:translateX(calc(-100% - var(--panel-gutter)));opacity:0;pointer-events:none}#viewHome.panel-right-collapsed .right-panel{transform:translateX(calc(100% + var(--panel-gutter)));opacity:0;pointer-events:none}#viewHome.panel-left-collapsed .panel-edge-toggle--left{left:var(--space-sm)}#viewHome.panel-right-collapsed .panel-edge-toggle--right{right:var(--space-sm)}.panel-edge-toggle{position:absolute;top:50%;transform:translateY(-50%);z-index:30;width:20px;height:56px;border:1px solid var(--border);border-radius:0 6px 6px 0;background:linear-gradient(160deg,rgba(6,14,28,.62),rgba(4,10,20,.5));color:var(--accent);font-size:14px;line-height:1;cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;backdrop-filter:blur(22px) saturate(1.4);-webkit-backdrop-filter:blur(22px) saturate(1.4);box-shadow:0 4px 20px rgba(0,0,0,.4);font-family:var(--font);padding:0;transition:var(--transition)}.panel-edge-toggle--left{left:calc(var(--device-panel-width) + var(--panel-inset))}.panel-edge-toggle--right{right:calc(var(--right-panel-width) + var(--panel-inset));border-radius:6px 0 0 6px;border-left:1px solid var(--border);border-right:none}.panel-edge-toggle:hover{background:var(--accent-bg-active);color:#fff;border-color:var(--accent)}.pie-chart-tabs{display:-ms-flexbox;display:flex;gap:4px;margin-left:4px;-ms-flex-negative:0;flex-shrink:0}.pie-chart-wrapper{-ms-flex:1;flex:1;min-height:0;height:auto;position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;transition:opacity .35s ease,transform .35s ease}.pie-chart-wrapper #pieCanvas{transform:translateX(-48px)}.pie-chart-wrapper.pie-transitioning{animation:pie-range-in .45s cubic-bezier(.4,0,.2,1)}@keyframes pie-range-in{0%{opacity:.35;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.pie-chart-empty{font-size:12px;color:var(--text-muted);text-align:center;padding:20px}.pie-legend{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:4px;pointer-events:auto;max-height:90%;overflow-y:auto;scrollbar-width:none}.pie-legend::-webkit-scrollbar{display:none}.legend-item{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:6px;font-size:10px;color:var(--text-secondary);padding:3px 6px;border-radius:4px;cursor:pointer;transition:var(--transition);border:1px solid transparent;-webkit-user-select:none;-ms-user-select:none;user-select:none}.legend-item:hover{background:var(--accent-bg);color:var(--text-primary)}.legend-item.active{background:rgba(0,180,255,.14);color:var(--accent);border-color:rgba(0,180,255,.25)}.legend-item.dimmed{opacity:.4}.legend-color{width:8px;height:8px;border-radius:2px;-ms-flex-negative:0;flex-shrink:0}.trend-chart-wrapper{position:absolute;inset:0}.trend-chart-wrapper:not([hidden]){display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:stretch;justify-content:stretch}.trend-chart-wrapper canvas{width:100%!important;height:100%!important}.alert-flash-bar{position:fixed;top:0;left:0;right:0;height:4px;z-index:30000;background:linear-gradient(90deg,transparent,#ff4757 20%,#ff6b7a 50%,#ff4757 80%,transparent);opacity:0;pointer-events:none;box-shadow:0 0 20px rgba(255,71,87,.6),0 2px 12px rgba(255,71,87,.4)}.alert-flash-bar.active{animation:alert-flash-bar 1.4s ease-out forwards}@keyframes alert-flash-bar{0%{opacity:0;transform:scaleX(.3)}12%{opacity:1;transform:scaleX(1)}65%{opacity:.85}to{opacity:0}}.right-panel.alert-panel-flash{animation:panel-alert-flash 1.6s ease-out}@keyframes panel-alert-flash{0%,to{border-color:var(--border);box-shadow:0 8px 32px rgba(0,0,0,.25)}15%,45%{border-color:rgba(255,71,87,.55);box-shadow:0 0 0 1px rgba(255,71,87,.25),0 0 18px rgba(255,71,87,.2)}}.map-area{position:absolute;inset:0;overflow:hidden;background:var(--primary-bg-2);z-index:0}#map{background:var(--primary-bg-2)}#map,.map-fallback{width:100%;height:100%}.map-fallback{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding:24px;text-align:center;gap:8px}.map-fallback-title{font-size:16px;font-weight:600;color:var(--text-primary)}.map-fallback-desc{font-size:13px;color:var(--text-muted);max-width:320px;line-height:1.5}.leaflet-bottom.leaflet-right{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:end;align-items:flex-end;gap:8px;bottom:var(--panel-inset);right:calc(var(--right-panel-width) + var(--panel-inset) + 16px);transition:right .3s ease;z-index:1000}.leaflet-bottom.leaflet-right .leaflet-control{margin:0;float:none;clear:none;opacity:.8;transition:opacity .2s ease}.leaflet-bottom.leaflet-right .leaflet-control:hover{opacity:1}.leaflet-bottom.leaflet-right .leaflet-control-zoom.leaflet-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;border:1px solid var(--border);border-radius:10px;overflow:hidden;background:rgba(6,14,28,.8);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 4px 20px rgba(0,0,0,.4)}.leaflet-bottom.leaflet-right .leaflet-control-zoom a{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:40px;height:36px;line-height:1;background:transparent;color:var(--accent);border:none;border-bottom:1px solid var(--border);border-radius:0;font-size:18px;font-weight:400;transition:var(--transition)}.leaflet-bottom.leaflet-right .leaflet-control-zoom a:last-child{border-bottom:none}.leaflet-bottom.leaflet-right .leaflet-control-zoom a:hover{background:var(--accent-bg-active);color:#fff}.leaflet-bottom.leaflet-right .leaflet-control-zoom a.leaflet-disabled{color:var(--text-subtle);background:transparent;cursor:default}.leaflet-control-zoom-reset svg{width:17px;height:17px;display:block}.leaflet-container{background:var(--primary-bg-2)}.leaflet-container.map-ctrl-rotating{cursor:grabbing}.tianditu-base-tile .leaflet-tile{background-color:var(--primary-bg-2)}.tianditu-anno-tile .leaflet-tile{background-color:transparent}.leaflet-fade-anim .tianditu-anno-tile .leaflet-tile-loaded{transition:opacity .2s linear}#map.tianditu-satellite .tianditu-base-tile .leaflet-tile{mix-blend-mode:normal;filter:brightness(.85) saturate(1.08) contrast(1.05) hue-rotate(-5deg)}.leaflet-control-attribution{display:none}.leaflet-bottom.leaflet-right .map-compass-control{border:none;box-shadow:none;background:transparent;transform:translateX(4px)}.map-compass-btn{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:50px;height:50px;padding:0;border:1px solid var(--border);border-radius:50%;background:rgba(6,14,28,.8);backdrop-filter:blur(12px) saturate(1.25);-webkit-backdrop-filter:blur(12px) saturate(1.25);box-shadow:0 4px 20px rgba(0,0,0,.4);cursor:default;transition:var(--transition)}.map-compass-btn:hover{border-color:rgba(0,180,255,.4);box-shadow:0 4px 22px rgba(0,180,255,.12)}.map-compass-btn--rotatable{cursor:grab}.map-compass-btn--rotatable.map-compass-btn--dragging{cursor:grabbing}.map-compass-svg{width:43px;height:43px;pointer-events:none;transform-origin:50% 50%;transition:transform .12s ease-out}.map-compass-btn--dragging .map-compass-svg{transition:none}.map-compass-label{fill:rgba(148,163,184,.9);font-size:9px;font-weight:600;font-family:var(--font)}.map-compass-n{fill:var(--danger);font-weight:700}.map-legend-btn{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px;width:124px;min-width:124px;height:34px;box-sizing:border-box;padding:0 14px;border-radius:18px;border:1.5px solid;background:linear-gradient(160deg,var(--glass-surface-top),var(--glass-surface-bottom));color:var(--text-primary);font-size:12px;font-weight:500;cursor:pointer;font-family:var(--font);transition:var(--transition);backdrop-filter:blur(var(--glass-blur-md)) saturate(1.25);-webkit-backdrop-filter:blur(var(--glass-blur-md)) saturate(1.25);box-shadow:0 4px 20px rgba(0,0,0,.3),inset 0 1px 0 rgba(0,180,255,.05)}.map-legend-btn>svg{-ms-flex:0 0 16px;flex:0 0 16px}.map-legend-btn>span:not(.map-legend-expand-arrow){-ms-flex:1;flex:1;min-width:0;text-align:left;white-space:nowrap}.map-legend-machine{padding-right:38px}.map-legend-btn:hover{transform:translateX(3px)}.map-legend-btn.active{opacity:1}.map-legend-btn:not(.active){opacity:.9;filter:grayscale(.7);border-style:dashed;color:var(--text-secondary);background:linear-gradient(160deg,var(--glass-surface-top),var(--glass-surface-bottom))}.map-legend{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:8px;pointer-events:auto;z-index:999;position:relative;margin-bottom:16px}.leaflet-bottom.leaflet-left{left:calc(var(--device-panel-width) + var(--panel-inset));transition:left .3s ease}.map-legend-monitor{border-color:rgba(24,206,121,.5)}.map-legend-monitor.active{background:linear-gradient(160deg,rgba(24,206,121,.16),rgba(24,206,121,.06)),linear-gradient(160deg,var(--glass-surface-top),var(--glass-surface-bottom))}.map-legend-broadcast{border-color:rgba(25,174,234,.5)}.map-legend-broadcast.active{background:linear-gradient(160deg,rgba(25,174,234,.16),rgba(25,174,234,.06)),linear-gradient(160deg,var(--glass-surface-top),var(--glass-surface-bottom))}.map-legend-machine{border-color:rgba(240,170,40,.5)}.map-legend-machine.active{background:linear-gradient(160deg,rgba(240,170,40,.14),rgba(240,170,40,.05)),linear-gradient(160deg,var(--glass-surface-top),var(--glass-surface-bottom))}.map-legend-expand-arrow{position:absolute;top:50%;right:7px;width:22px;height:22px;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;color:#ffd27a;border-radius:50%;transform:translateY(-50%);transition:transform .2s ease,background .2s ease}.map-legend-expand-arrow svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.map-legend-expand-arrow:hover{background:rgba(240,170,40,.14)}.map-legend.machine-menu-open .map-legend-expand-arrow{transform:translateY(-50%) rotate(90deg)}.map-machine-type-menu{display:none;position:absolute;left:calc(100% + 10px);bottom:1px;width:max-content;max-width:min(620px,calc(100vw - var(--device-panel-width) - 205px));padding:4px;overflow-x:auto;overflow-y:hidden;border:1px solid rgba(240,170,40,.28);border-radius:18px;background:linear-gradient(90deg,rgba(19,40,53,.92),rgba(13,31,45,.86));box-shadow:0 5px 18px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,210,122,.08);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);scrollbar-width:thin;scrollbar-color:rgba(240,170,40,.35) transparent}.map-legend.machine-menu-open .map-machine-type-menu{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-align:center;align-items:center;gap:3px}.map-machine-type-item{-ms-flex:0 0 auto;flex:0 0 auto;min-height:27px;padding:4px 12px;border:1px solid transparent;border-radius:14px;background:transparent;color:rgba(232,244,255,.76);font:12px var(--font);text-align:center;white-space:nowrap;cursor:pointer}.map-machine-type-item.active,.map-machine-type-item:hover{color:#ffd27a;border-color:rgba(240,170,40,.48);background:linear-gradient(180deg,rgba(240,170,40,.2),rgba(240,170,40,.11));box-shadow:inset 0 0 10px rgba(240,170,40,.06)}.right-panel{position:absolute;top:var(--content-top-offset);right:var(--panel-inset);bottom:var(--panel-inset);width:var(--right-panel-width);z-index:20;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden}.alert-list,.right-panel .card{-ms-flex:1;flex:1}.alert-list{overflow-y:auto;padding:8px 10px;position:relative}.alert-virtual-track{position:relative;width:100%}.alert-virtual-window{position:absolute;left:0;right:0;top:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:var(--alert-virtual-gap);will-change:transform}.alert-virtual-window .alert-card{height:var(--alert-virtual-row-height);min-height:var(--alert-virtual-row-height);max-height:var(--alert-virtual-row-height);overflow:hidden}.alert-virtual-window .alert-card .alert-image-wrap{-ms-flex:1;flex:1;min-height:0;height:auto}.alert-virtual-window .alert-card-footer{-ms-flex:0 0 auto;flex:0 0 auto;overflow:hidden}.alert-card{background:rgba(4,10,20,.3);border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:var(--transition);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;-ms-flex-negative:0;flex-shrink:0}.alert-card .alert-image-wrap{height:170px}.alert-top-bar{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:8px 12px 6px}.alert-location{padding:0;font-size:11px;color:var(--text-secondary)}.alert-card-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;gap:6px;padding:7px 10px;border-top:1px solid var(--accent-bg)}.alert-card-footer .alert-location{-ms-flex:1;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-card-footer .alert-resolver-info{margin-top:0;-ms-flex-negative:0;flex-shrink:0}.alert-card-actions{display:-ms-flexbox;display:flex;gap:6px;-ms-flex-negative:0;flex-shrink:0}.alert-action-btn{padding:2px 8px;border-radius:5px;font-size:11px;font-weight:500;white-space:nowrap}.alert-action-btn--primary{border-color:var(--border);color:var(--accent);background:var(--accent-bg)}.alert-action-btn--success{border-color:rgba(0,230,118,.35);color:var(--success);background:rgba(0,230,118,.08)}.alert-action-btn--success:hover{background:rgba(0,230,118,.15)}.alert-action-btn--fp{background:var(--purple-bg-subtle);border:1px solid var(--purple-border);color:var(--purple);border-radius:5px;padding:2px 8px;font-size:11px;font-weight:500;cursor:pointer;transition:var(--transition);white-space:nowrap}.alert-action-btn--fp:hover{background:var(--purple-bg-hover)}.status-false-positive{color:var(--status-fp);border-color:var(--status-fp-border)}.alert-resolver-info{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:4px 8px;-ms-flex-align:center;align-items:center;margin-top:4px;padding:0;background:none;font-size:10px;color:var(--text-muted)}.alert-time-text,.resolver-at{color:var(--text-secondary)}.alert-time-text{font-size:13px;font-family:inherit;cursor:default}.alert-card--new{animation:alert-card-in .5s ease-out}@keyframes alert-card-in{0%{opacity:0;transform:translateX(12px);border-color:rgba(255,71,87,.6)}to{opacity:1;transform:translateX(0)}}.alert-process-tag{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:5px;padding:0;font-size:11px;font-weight:500;background:none;border:none}.alert-process-tag:before{content:"";width:6px;height:6px;border-radius:50%;-ms-flex-negative:0;flex-shrink:0}.alert-process-tag.status-pending{color:var(--danger-light)}.alert-process-tag.status-pending:before{background:var(--danger-light);box-shadow:0 0 6px var(--danger-glow)}.alert-process-tag.status-resolved{color:var(--success)}.alert-process-tag.status-resolved:before{background:var(--success);box-shadow:0 0 6px var(--success-glow)}.alert-process-tag.status-false-positive{color:var(--status-fp);border:none}.alert-process-tag.status-false-positive:before{background:var(--status-fp);box-shadow:0 0 6px var(--status-fp-glow)}.alert-image-wrap{position:relative;width:100%;height:var(--alert-image-height);background:var(--primary-bg-2);overflow:hidden;border-bottom:1px solid rgba(0,180,255,.08)}.alert-image-wrap img{width:100%;height:100%;display:block;object-fit:cover}.alert-image-placeholder{background:linear-gradient(135deg,#0c1828,var(--primary-bg-2) 50%,#0a1420)}.alert-image-placeholder--error{background:linear-gradient(135deg,#0c1828,var(--primary-bg-2))}.alert-image-skeleton{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(12,24,40,.6) 25%,rgba(20,36,56,.85) 50%,rgba(12,24,40,.6) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.alert-image-skeleton.hidden{display:none}.alert-image{position:relative;z-index:2;opacity:0;transition:opacity .3s ease}.alert-image.loaded{opacity:1}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.alert-image-wrap:before{content:"";position:absolute;top:0;left:0;width:60%;height:45%;background:linear-gradient(135deg,rgba(0,0,0,.4),transparent 75%);z-index:3;pointer-events:none}.alert-type-badge{position:absolute;top:9px;left:9px;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.4px;z-index:4;pointer-events:none;color:#eaf7ff;background:linear-gradient(135deg,rgba(0,180,255,.32),rgba(0,130,210,.24));border:1px solid hsla(0,0%,100%,.28);box-shadow:0 4px 14px rgba(0,0,0,.28),inset 0 1px 0 hsla(0,0%,100%,.3);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);text-shadow:0 1px 3px rgba(0,0,0,.45)}.alert-type-badge:before{content:"";width:6px;height:6px;border-radius:50%;-ms-flex-negative:0;flex-shrink:0;background:#35d0ff;box-shadow:0 0 6px rgba(53,208,255,.9)}.batch-select-toggle-btn{padding:4px 12px;-ms-flex-negative:0;flex-shrink:0;margin-left:auto}.batch-select-toggle-btn.icon-btn{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:28px;height:28px;padding:0}.has-tooltip{position:relative}.has-tooltip:after{content:attr(data-tooltip);position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);padding:4px 8px;border-radius:6px;white-space:nowrap;background:rgba(8,20,36,.96);color:var(--text-primary);border:1px solid rgba(0,180,255,.3);box-shadow:0 4px 14px rgba(0,0,0,.45);font-size:11px;font-weight:500;line-height:1;letter-spacing:.3px;opacity:0;pointer-events:none;z-index:60;transition:opacity .16s ease,transform .16s ease}.has-tooltip:focus-visible:after,.has-tooltip:hover:after{opacity:1;transform:translateX(-50%) translateY(0)}.batch-select-toggle-btn.icon-btn svg{display:block}.alert-more-link{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;gap:2px;margin-left:6px;padding:0;color:var(--text-secondary);font-size:11px;font-weight:500;text-decoration:none;cursor:pointer;white-space:nowrap;transition:var(--transition);font-family:var(--font);border:none;background:none}.alert-more-link:hover{color:var(--accent)}.alert-more-arrow{font-size:12px;line-height:1;transition:transform var(--transition)}.alert-more-link:hover .alert-more-arrow{transform:translateX(2px)}.alert-status-tabs{display:-ms-grid;display:grid;-ms-grid-columns:minmax(0,1fr) 96px;grid-template-columns:minmax(0,1fr) 96px;padding:8px 12px 4px;gap:8px;-ms-flex-align:center;align-items:center;-ms-flex-negative:0;flex-shrink:0}.alert-status-tab-group{--pill-tab-cols:4;width:100%;min-width:0}.alert-status-tab-group:has([data-status=pending].active):before{transform:translateX(100%)}.alert-status-tab-group:has([data-status=resolved].active):before{transform:translateX(200%)}.alert-status-tab-group:has([data-status=false_positive].active):before{transform:translateX(300%)}.alert-count-label{width:96px;font-size:11px;color:var(--text-muted);font-weight:400;white-space:nowrap;text-align:left;overflow:hidden;text-overflow:ellipsis}.batch-action-bar:not([hidden]){display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:6px;padding:8px 12px;background:transparent;border-top:1px solid rgba(0,180,255,.14);border-bottom:1px solid rgba(0,180,255,.14);-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-negative:0;flex-shrink:0;animation:slideDown .18s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.batch-select-all-label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:4px;color:var(--text-secondary);-webkit-user-select:none;-ms-user-select:none;user-select:none}.batch-action-btn,.batch-select-all-label{font-size:11px;cursor:pointer;white-space:nowrap}.batch-action-btn{padding:4px 10px;border-radius:6px;font-family:var(--font);border:1px solid transparent;transition:var(--transition)}.batch-action-btn:disabled{opacity:.4;cursor:not-allowed}.batch-action-resolve{background:rgba(0,230,118,.1);border-color:rgba(0,230,118,.3);color:var(--success)}.batch-action-resolve:not(:disabled):hover{background:rgba(0,230,118,.18)}.batch-action-fp{background:rgba(255,176,32,.1);border-color:rgba(255,176,32,.3);color:var(--warning-light)}.batch-action-fp:not(:disabled):hover{background:rgba(255,176,32,.18)}.batch-action-cancel{background:var(--accent-bg);border-color:var(--border);color:var(--text-muted);margin-left:auto}.batch-action-cancel:hover{background:var(--accent-bg-active);color:var(--text-secondary);border-color:var(--border)}.batch-action-btn--icon{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:28px;height:28px;padding:0}.batch-action-btn--icon svg{display:block}.batch-selected-count{font-size:11px;color:var(--accent);white-space:nowrap}.inline-confirm{position:fixed;z-index:12000;min-width:200px;max-width:280px;padding:12px 14px;background:linear-gradient(145deg,rgba(12,28,48,.98),rgba(8,18,32,.98));border:1px solid rgba(0,180,255,.35);border-radius:8px;box-shadow:0 8px 28px rgba(0,0,0,.45),0 0 0 1px rgba(0,180,255,.08);animation:inlineConfirmIn .16s ease}@keyframes inlineConfirmIn{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.inline-confirm-message{margin:0 0 10px;font-size:12px;line-height:1.5;color:var(--text-secondary)}.inline-confirm-actions{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;gap:6px}.inline-confirm-btn{border-radius:6px;font-family:var(--font);cursor:pointer;border:1px solid transparent;transition:var(--transition)}.inline-confirm-btn,.inline-confirm-btn--cancel{padding:4px 12px;font-size:11px;white-space:nowrap}.inline-confirm-btn--cancel{border-radius:6px}.inline-confirm-btn--primary{background:var(--accent-bg-active);border-color:var(--border);color:var(--accent)}.inline-confirm-btn--primary:hover{background:rgba(0,180,255,.28)}.inline-confirm-btn--success{background:rgba(0,230,118,.14);border-color:rgba(0,230,118,.35);color:var(--success)}.inline-confirm-btn--success:hover{background:rgba(0,230,118,.24)}.inline-confirm-btn--warning{background:rgba(255,176,32,.14);border-color:rgba(255,176,32,.35);color:var(--warning-light)}.inline-confirm-btn--warning:hover{background:rgba(255,176,32,.24)}.alert-card-select{cursor:pointer}.alert-card-select,.alert-top-left{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}.alert-top-left{gap:8px;min-width:0}.modal-shell{border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 25px 60px rgba(0,0,0,.6);backdrop-filter:blur(var(--glass-blur-md));-webkit-backdrop-filter:blur(var(--glass-blur-md))}.modal-container{position:fixed;inset:0;pointer-events:none;z-index:9999}.modal-window{position:absolute;width:var(--modal-width);height:var(--modal-height);background:var(--card-bg);display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;pointer-events:auto}.modal-header{-ms-flex-pack:justify;justify-content:space-between;padding:12px 16px;background:var(--accent-bg);border-bottom:1px solid var(--border);cursor:move;-webkit-user-select:none;-ms-user-select:none;user-select:none}.modal-header,.modal-title{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.modal-title{font-weight:600;font-size:14px;gap:8px;color:var(--text-primary)}.modal-close{width:28px;height:28px;border-radius:50%;border:1px solid var(--border);background:var(--accent-bg);cursor:pointer;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:14px;color:var(--text-secondary);transition:var(--transition)}.modal-close:hover{background:var(--danger-bg-subtle);color:var(--danger-light);border-color:var(--danger-border)}.modal-body{-ms-flex:1;flex:1;min-height:0;padding:16px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:12px;color:var(--text-secondary);overflow:hidden}.video-frame{background:var(--primary-bg-2);border-radius:8px;overflow:hidden;position:relative;height:260px;-ms-flex-negative:0;flex-shrink:0;border:1px solid var(--border)}.video-frame canvas{width:100%;height:100%;display:block}.modal-header-actions{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.app-toast{position:fixed;bottom:48px;left:50%;transform:translateX(-50%) translateY(12px);padding:12px 24px;border-radius:8px;background:rgba(6,14,28,.92);border:1px solid var(--border);color:var(--text-primary);font-size:14px;z-index:30000;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;box-shadow:0 8px 32px rgba(0,0,0,.35)}.app-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.app-toast--error{border-color:rgba(255,71,87,.45);color:#ffb4bc;background:rgba(28,8,12,.94)}.leaflet-marker-icon.device-marker{background:transparent;border:none;transition:none}.leaflet-zoom-anim .leaflet-marker-icon.device-marker.leaflet-zoom-animated,.leaflet-zoom-anim .leaflet-tooltip.leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.custom-marker{width:34px;height:34px;border-radius:50%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-size:16px;border:2px solid hsla(0,0%,100%,.9);box-shadow:0 2px 16px rgba(0,0,0,.5);transition:transform .15s,box-shadow .3s;cursor:pointer}.custom-marker:hover{transform:scale(1.2)}.custom-marker.marker-focused{transform:scale(1.25);box-shadow:0 0 0 4px rgba(0,180,255,.5),0 0 28px rgba(0,180,255,.45);animation:marker-focus-pulse 1.5s ease-in-out infinite}@keyframes marker-focus-pulse{0%,to{box-shadow:0 0 0 4px rgba(0,180,255,.5),0 0 28px rgba(0,180,255,.45)}50%{box-shadow:0 0 0 8px rgba(0,180,255,.2),0 0 36px rgba(0,180,255,.3)}}.custom-marker svg{filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.45))}.mk-monitor{background:var(--device-monitor);box-shadow:0 0 12px var(--device-monitor-glow)}.mk-broadcast{background:var(--device-broadcast);box-shadow:0 0 12px var(--device-broadcast-glow)}.mk-machine{background:var(--device-machine);box-shadow:0 0 12px var(--device-machine-glow)}.mk-square{border-radius:8px}.mk-offline{background:#5a7290;box-shadow:0 0 8px rgba(90,114,144,.4);opacity:.8}.mk-alert{background:#ff4757;box-shadow:0 0 18px rgba(255,71,87,.65);animation:marker-pulse 1.2s infinite}@keyframes marker-pulse{0%,to{box-shadow:0 0 0 0 rgba(255,71,87,.5)}50%{box-shadow:0 0 0 14px rgba(255,71,87,0)}}.device-type-cluster{background:transparent;border:none}.type-cluster-marker{border-radius:50%;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:1px;border:2px solid hsla(0,0%,100%,.92);box-shadow:0 2px 18px rgba(0,0,0,.5);cursor:pointer;transition:transform .15s}.type-cluster-marker:hover{transform:scale(1.12)}.type-cluster-marker svg{filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.45))}.type-cluster-count{font-size:11px;font-weight:700;line-height:1;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.45);font-variant-numeric:tabular-nums}.type-cluster-monitor{background:var(--device-monitor);box-shadow:0 0 14px var(--device-monitor-glow)}.type-cluster-broadcast{background:var(--device-broadcast);box-shadow:0 0 14px var(--device-broadcast-glow)}.type-cluster-machine{background:var(--device-machine);border-radius:10px;box-shadow:0 0 14px var(--device-machine-glow)}.marker-cluster-large,.marker-cluster-medium,.marker-cluster-small,.marker-cluster div{background-color:transparent}.leaflet-tooltip.map-device-tip{padding:0;background:linear-gradient(155deg,rgba(13,27,48,.94),rgba(7,15,29,.94));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(0,180,255,.3);border-radius:11px;box-shadow:0 8px 28px rgba(0,0,0,.55),inset 0 1px 0 rgba(0,180,255,.09);color:var(--text-primary);white-space:nowrap;font-family:inherit}.leaflet-tooltip-top.map-device-tip:before{border-top-color:rgba(9,18,33,.94)}.leaflet-tooltip-bottom.map-device-tip:before{border-bottom-color:rgba(13,27,48,.94)}.leaflet-tooltip-left.map-device-tip:before{border-left-color:rgba(9,18,33,.94)}.leaflet-tooltip-right.map-device-tip:before{border-right-color:rgba(13,27,48,.94)}.map-device-tip .map-tip{padding:9px 11px 10px;min-width:140px}.map-tip-head{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.map-tip-avatar{width:22px;height:22px;border-radius:50%;-ms-flex:0 0 auto;flex:0 0 auto;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;box-shadow:inset 0 0 0 1.5px hsla(0,0%,100%,.85),0 1px 5px rgba(0,0,0,.45)}.map-tip-avatar svg{filter:drop-shadow(0 1px 1px rgba(0,0,0,.4))}.map-tip-name{font-size:12.5px;font-weight:600;color:var(--text-primary);letter-spacing:.2px}.map-tip-badge{margin-left:auto;font-size:10px;font-weight:700;color:#fff;padding:1px 8px;border-radius:9px;line-height:1.6;letter-spacing:.3px;text-shadow:0 1px 1px rgba(0,0,0,.3)}.map-tip-meta{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:5px;margin-top:6px;font-size:11px;color:var(--text-secondary)}.map-tip-dot{opacity:.45}.map-tip-note{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:5px;margin-top:7px;padding-top:7px;font-size:10.5px;font-weight:600;letter-spacing:.2px;border-top:1px solid hsla(0,0%,100%,.09)}.map-tip-note svg{-ms-flex:0 0 auto;flex:0 0 auto}.map-tip-note--alert{color:#ff6b78}.map-tip-note--offline{color:#9fb3c8}#map.map-tooltips-suppressed .leaflet-tooltip.map-device-tip,body.map-device-modal-open .leaflet-tooltip.map-device-tip{display:none}.device-info-window{height:auto;min-height:0;max-height:calc(100vh - 40px);background:rgba(6,14,28,.85)}.device-info-window .device-info-accent{height:3px;-ms-flex-negative:0;flex-shrink:0}.device-info-window .device-info-accent.status-online{background:linear-gradient(90deg,#00e676,rgba(0,230,118,.2))}.device-info-window .device-info-accent.status-offline,.device-info-window .device-info-accent.status-unknown{background:linear-gradient(90deg,#5a7290,rgba(90,114,144,.2))}.device-info-window .device-info-accent.status-alert{background:linear-gradient(90deg,#ff4757,rgba(255,71,87,.2))}.device-info-window .device-info-body{padding:16px;gap:12px;overflow-y:auto}.device-info-window .device-info-grid{display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:0}.device-info-window .device-info-grid .info-field--full{grid-column:1/-1}.device-info-video-section{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:8px}.device-info-video-label{font-size:12px;color:var(--text-secondary);font-weight:500}.device-info-video-frame{width:100%;height:auto;aspect-ratio:16/9}.info-field{padding:10px 12px;background:var(--accent-bg);border-radius:8px;border:1px solid var(--border)}.info-field .field-label{font-size:10px;color:var(--text-muted);margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}.info-field .field-value{font-size:13px;color:var(--text-primary);font-weight:500}.view-panel{position:absolute;inset:0}.app-loading,.view-panel,.view-panel.active{display:-ms-flexbox;display:flex}.app-loading{position:fixed;inset:0;z-index:20000;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;background:var(--primary-bg);transition:opacity .4s ease,visibility .4s ease}.app-loading.hidden{opacity:0;visibility:hidden;pointer-events:none}.app-loading-inner{-ms-flex-direction:column;flex-direction:column;gap:20px}.app-loading-inner,.app-loading-ring{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.app-loading-ring{position:relative;width:80px;height:80px;-ms-flex-pack:center;justify-content:center}.app-loading-ring:before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid rgba(0,180,255,.1);border-top-color:var(--accent);border-right-color:var(--accent);animation:spin-loading 1s linear infinite}.app-loading-logo{border-radius:12px;box-shadow:0 0 14px rgba(0,180,255,.25);position:relative;z-index:1}.app-loading-text{font-size:14px;color:var(--text-secondary);letter-spacing:4px;animation:loading-text-pulse 1.5s ease-in-out infinite}@keyframes loading-text-pulse{0%,to{opacity:.5}50%{opacity:1}}.app-loading-bar{width:160px;height:2px;border-radius:2px;background:rgba(0,180,255,.1);overflow:hidden}.app-loading-bar-fill{display:block;height:100%;width:40%;background:linear-gradient(90deg,var(--accent),var(--accent));border-radius:2px;animation:loading-bar 1.2s ease-in-out infinite}@keyframes loading-bar{0%{transform:translateX(-100%)}to{transform:translateX(350%)}}@keyframes spin-loading{to{transform:rotate(1turn)}}.confirm-overlay{position:fixed;inset:0;z-index:20001;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;background:rgba(2,6,14,.7);-webkit-backdrop-filter:blur(var(--glass-blur-sm));backdrop-filter:blur(var(--glass-blur-sm));animation:fadeInOverlay .2s ease}.confirm-box{width:380px;max-width:92vw;background:linear-gradient(135deg,rgba(8,16,30,.98),rgba(6,12,24,.96));padding:24px;animation:modalSlideIn .25s ease-out}.confirm-title{font-size:16px;font-weight:600;color:var(--text-primary);margin-bottom:10px}.confirm-message{font-size:14px;color:var(--text-secondary);line-height:1.5;margin-bottom:20px}.confirm-actions{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;gap:10px}.confirm-btn{padding:8px 20px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer;font-family:var(--font);transition:var(--transition);border:1px solid transparent}.confirm-btn--cancel{background:var(--accent-bg);border-color:var(--border);color:var(--text-secondary)}.confirm-btn--cancel:hover{background:rgba(0,180,255,.1);color:var(--text-primary)}.confirm-btn--primary{background:var(--accent-bg-active);border-color:var(--border);color:var(--accent)}.confirm-btn--primary:hover{background:rgba(0,180,255,.25)}.confirm-btn--danger{background:rgba(255,71,87,.12);border-color:rgba(255,71,87,.35);color:var(--danger-soft)}.confirm-btn--danger:hover{background:rgba(255,71,87,.22)}.review-overlay{position:fixed;inset:0;z-index:20002;padding:24px;pointer-events:none;opacity:0;transition:opacity .2s ease}.review-overlay.show{opacity:1}.review-window{position:absolute;width:980px;max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);height:auto;pointer-events:auto;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden;background:rgba(6,14,28,.9);transform:translateY(12px) scale(.98)}.review-overlay.show .review-window{transform:translateY(0) scale(1)}.review-accent-top{height:3px;-ms-flex-negative:0;flex-shrink:0;background:linear-gradient(90deg,var(--accent),rgba(0,180,255,.2))}.review-accent-top.status-pending{background:linear-gradient(90deg,var(--danger-light),var(--danger-glow))}.review-accent-top.status-resolved{background:linear-gradient(90deg,var(--success),rgba(0,230,118,.2))}.review-accent-top.status-false-positive{background:linear-gradient(90deg,var(--status-fp),var(--status-fp-glow))}.review-header{cursor:move}.review-title{font-size:14px;font-weight:600}.review-title-icon{color:var(--warning);-ms-flex-negative:0;flex-shrink:0}.review-body{-ms-flex-direction:row;flex-direction:row;gap:20px;padding:16px;overflow:auto}.review-body,.review-left{display:-ms-flexbox;display:flex;min-height:0}.review-left{-ms-flex:0 0 57.6%;flex:0 0 57.6%;-ms-flex-direction:column;flex-direction:column;gap:12px;min-width:0}.review-image-viewport{position:relative;-ms-flex:1;flex:1;min-height:280px;border-radius:8px;overflow:hidden;background:#05080f;border:1px solid var(--border)}.review-image{width:100%;height:100%;object-fit:cover;display:block;transition:transform .18s ease;transform-origin:center center;-webkit-user-select:none;-ms-user-select:none;user-select:none}.review-image-viewport:-ms-fullscreen{width:100vw;height:100vh;min-height:0;border:0;border-radius:0;background:#05080f}.review-image-viewport:fullscreen{width:100vw;height:100vh;min-height:0;border:0;border-radius:0;background:#05080f}.review-image-viewport:-ms-fullscreen .review-image{width:100vw;height:100vh;object-fit:contain}.review-image-viewport:fullscreen .review-image{width:100vw;height:100vh;object-fit:contain}.review-overlay--image-expanded{padding:0;pointer-events:auto;background:#05080f}.review-overlay--image-expanded .review-window{transform:none!important;overflow:visible;backdrop-filter:none;-webkit-backdrop-filter:none}.review-overlay--image-expanded .review-image-viewport{position:fixed;inset:0;z-index:1;width:100vw;height:100vh;min-height:0;border:0;border-radius:0;background:#05080f}.review-overlay--image-expanded .review-image{width:100vw;height:100vh;object-fit:contain}.review-overlay--image-expanded .review-image-toolbar{position:fixed;left:50%;bottom:24px;z-index:2;transform:translateX(-50%);background:rgba(6,20,38,.92);box-shadow:0 8px 28px rgba(0,0,0,.45)}.review-image-toolbar{display:-ms-flexbox;display:flex;gap:8px;padding:6px;border-radius:8px;background:var(--accent-bg);border:1px solid var(--border)}.review-image-toolbar,.review-tool-btn{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.review-tool-btn{width:34px;height:34px;border-radius:6px;display:-ms-inline-flexbox;display:inline-flex;font-size:12px}.review-tool-btn--text{width:auto;padding:0 12px;font-weight:500}.review-nav{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;gap:14px;margin-top:2px}.review-nav-btn{min-width:96px;padding:9px 16px;border-radius:8px;font-size:13px;font-weight:500}.review-nav-btn--next{background:var(--accent-bg-active);color:var(--accent);border-color:var(--border)}.review-nav-btn:disabled{opacity:.4;cursor:not-allowed}.review-counter{font-size:13px;color:var(--text-secondary);font-variant-numeric:tabular-nums}.review-right{-ms-flex:1;flex:1;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:12px;min-width:0}.review-info-grid{display:-ms-grid;display:grid;-ms-grid-columns:1fr 1fr;grid-template-columns:1fr 1fr;gap:10px}.review-info-grid .info-field--full{grid-column:1/-1}.info-field .field-value.review-type-value{color:var(--danger);font-weight:600}.review-time-value{font-family:var(--font-mono,monospace)}.review-info-grid .info-field .field-value .alert-process-tag{font-size:13px;font-weight:500}.review-note-block{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:8px;-ms-flex:1;flex:1;min-height:0}.review-note-label{font-size:13px;color:var(--text-muted)}.review-note-input{-ms-flex:1;flex:1;min-height:96px;resize:vertical;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:rgba(0,180,255,.03);color:var(--text-primary);font-size:13px;font-family:var(--font);line-height:1.5;transition:var(--transition)}.review-note-input:-ms-input-placeholder{color:var(--text-muted)}.review-note-input::placeholder{color:var(--text-muted)}.review-note-input:focus{outline:none;border-color:var(--border);background:rgba(0,180,255,.07)}.review-note-input:disabled{opacity:.6;cursor:not-allowed}.review-actions:not([hidden]){display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;gap:12px;margin-top:auto}.review-btn{padding:10px 26px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;font-family:var(--font);transition:var(--transition);border:1px solid transparent}.review-btn--primary{background:var(--accent-bg-active);border-color:var(--border);color:var(--accent)}.review-btn--primary:hover:not(:disabled){background:rgba(0,180,255,.3)}.review-btn--ghost{background:var(--accent-bg);border-color:var(--border);color:var(--text-secondary)}.review-btn--ghost:hover:not(:disabled){background:rgba(255,71,87,.12);border-color:rgba(255,71,87,.35);color:var(--danger-soft)}.review-btn:disabled{opacity:.45;cursor:not-allowed}@media (max-width:860px){.review-body{-ms-flex-direction:column;flex-direction:column}.review-left{-ms-flex:none;flex:none}.review-image-viewport{height:240px}}@media (max-width:1600px){.kpi-item{max-width:150px}}@media (max-width:1400px){:root{--device-panel-width:260px;--right-panel-width:280px}.kpi-value{font-size:18px}.kpi-item{min-width:88px;max-width:148px;padding:8px 10px}.kpi-icon{width:30px;height:30px}.project-name{font-size:19px}.project-subtitle{display:none}.batch-select-toggle-btn{padding:4px 8px;font-size:11px}.alert-more-link{margin-left:4px}}@media (max-width:1100px){:root{--device-panel-width:230px;--right-panel-width:240px;--kpi-bar-min-h:108px}.kpi-bar{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start;-ms-flex-line-pack:start;align-content:flex-start;gap:6px}.kpi-label{font-size:9px}.kpi-value{font-size:16px}.kpi-icon{width:28px;height:28px}.kpi-item{min-width:calc(33.333% - 6px);max-width:none;-ms-flex:1 1 calc(33.333% - 6px);flex:1 1 calc(33.333% - 6px)}.topbar-deco{display:none}.topbar-center{max-width:calc(100% - 420px)}}@media (max-width:900px){:root{--topbar-height:60px;--device-panel-width:200px;--right-panel-width:220px;--kpi-bar-min-h:152px}.screen-lot-label,.topbar-time-wrap{display:none}.screen-lot-context{max-width:150px}.screen-lot-trigger{width:125px}.project-name{font-size:17px}.topbar-center{max-width:calc(100% - 340px)}.kpi-item{min-width:calc(50% - 6px);-ms-flex:1 1 calc(50% - 6px);flex:1 1 calc(50% - 6px)}}