:root{--bg:#f3f3f3;--surface:#fff;--surface-soft:#fafafa;--border:#e7e7e7;--border-light:#f0f0f0;--text:#000000e6;--text-secondary:#0009;--text-placeholder:#0006;--muted:#0009;--primary:#0052d9;--primary-hover:#266fe8;--primary-light:#ecf2fe;--success:#00a870;--success-bg:#e8f8f2;--warning:#ed7b2f;--warning-bg:#fef3e6;--danger:#e34d59;--danger-bg:#fdecee;--info:#0594fa;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 6px 16px #0000000f;--radius:12px;--radius-sm:8px;--sidebar-width:248px}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:PingFang SC,Microsoft YaHei UI,Microsoft YaHei,-apple-system,BlinkMacSystemFont,sans-serif}a{color:inherit;text-decoration:none}.layout{grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;margin-bottom:24px;padding:8px 10px;display:flex}.brand-icon{background:linear-gradient(135deg, var(--primary), #003cab);color:#fff;width:42px;height:42px;box-shadow:var(--shadow-sm);border-radius:10px;place-items:center;font-size:20px;font-weight:700;display:grid}.brand h1{letter-spacing:.2px;margin:0;font-size:17px;font-weight:600}.brand p{color:var(--text-secondary);margin:4px 0 0;font-size:11px}.nav{flex-direction:column;gap:4px;padding-right:2px;display:flex;overflow-y:auto}.nav a{border-radius:var(--radius-sm);color:var(--text-secondary);padding:10px 12px;font-size:14px;transition:background .15s,color .15s}.nav a.router-link-active{background:var(--primary-light);color:var(--primary);font-weight:600}.nav a:hover{background:var(--surface-soft);color:var(--text)}.sidebar-footer{color:var(--text-placeholder);border-top:1px solid var(--border-light);margin-top:auto;padding:16px 10px 4px;font-size:12px}.main{flex-direction:column;min-width:0;display:flex}.topbar{background:var(--bg);justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 28px 10px;display:flex}.topbar h2{letter-spacing:.2px;margin:0;font-size:24px;font-weight:600}.subtitle{color:var(--text-secondary);margin:6px 0 0;font-size:13px}.topbar-tags{gap:8px;margin-bottom:8px;display:flex}.tag{border-radius:4px;align-items:center;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.tag--admin{background:var(--primary-light);color:var(--primary)}.tag--api{background:var(--surface-soft);color:var(--text-secondary);border:1px solid var(--border)}.topbar-meta{color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);white-space:nowrap;align-items:center;gap:10px;padding:10px 16px;font-size:12px;display:flex}.topbar-meta code{font-size:11px}.meta-divider{color:var(--border)}.sidebar-footer p{margin:0 0 8px;font-size:12px;line-height:1.5}.sidebar-link{color:var(--primary);font-size:12px;font-weight:600}.sidebar-link:hover{text-decoration:underline}.content{padding:6px 28px 28px}.grid{gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-subsystems{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.grid-2{grid-template-columns:2fr 1fr}.grid-admin-split{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start}.grid-admin-wide{grid-column:1/-1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px 20px}.card-link{transition:transform .15s,box-shadow .15s,border-color .15s}.card-link:hover{box-shadow:var(--shadow-md);border-color:#c9d8f8;transform:translateY(-2px)}.stat-value{color:var(--text);margin-top:8px;font-size:28px;font-weight:700;line-height:1.2}.stat-label{color:var(--text-secondary);font-size:13px}.badge{border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:500;display:inline-flex}.badge.online{background:var(--success-bg);color:var(--success)}.badge.ready{background:var(--primary-light);color:var(--primary)}.badge.planned{color:var(--text-secondary);background:#f3f3f3}.badge.developing{background:var(--warning-bg);color:var(--warning)}.table-wrap{border:1px solid var(--border-light);border-radius:var(--radius-sm);overflow:auto}table{border-collapse:collapse;background:var(--surface);width:100%}th,td{border-bottom:1px solid var(--border-light);text-align:left;padding:12px 14px;font-size:14px}th{color:var(--text-secondary);background:var(--surface-soft);font-weight:600}tbody tr:last-child td{border-bottom:none}.empty{color:var(--text-secondary);text-align:center;padding:32px 0;font-size:14px}.error{color:var(--danger);background:var(--danger-bg);border-radius:var(--radius-sm);border:1px solid #f8b9be;padding:12px 16px}.section-title{margin:0 0 14px;font-size:16px;font-weight:600}code{background:var(--surface-soft);color:var(--primary);border-radius:4px;padding:2px 6px;font-size:12px}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;padding:10px 16px;font-size:14px;transition:background .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:disabled,.btn-primary:disabled{opacity:.5;cursor:not-allowed}.form-row{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.form-row input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:10px 12px;font-size:14px}.form-row input:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #0052d91f}.alert-card{background:var(--warning-bg);border-color:#f9c78f}.row-warn{color:var(--text);background:#f6bf5d14}@media (width<=1200px){.grid-4,.grid-2{grid-template-columns:1fr 1fr}}@media (width<=1100px){body.admin-console:before{content:"建议使用 1280px 以上宽屏访问平台管理端";background:var(--warning-bg);color:var(--warning);text-align:center;padding:8px;font-size:13px;display:block}}:root{--bg:#081416;--surface:#0a181ad6;--surface-soft:#0d2022d1;--border:#8fffe124;--border-light:#8fffe117;--text:#f3fffdeb;--text-secondary:#cde8e3a8;--text-placeholder:#cde8e370;--muted:#cde8e3a8;--primary:#21e2b2;--primary-hover:#47f1c8;--primary-light:#21e2b21f;--success:#52f1b6;--success-bg:#52f1b61f;--warning:#f6bf5d;--warning-bg:#f6bf5d21;--danger:#ff6b7c;--danger-bg:#ff6b7c1f;--info:#22d3ee;--shadow-sm:0 12px 32px #0000002e;--shadow-md:0 22px 58px #00000047;--radius:8px;--radius-sm:8px}.grid{gap:18px}.card{background:radial-gradient(circle at 100% 0%, #22d3ee14, transparent 36%), linear-gradient(145deg, #0c1d1feb, #081214d1), var(--surface);box-shadow:var(--shadow-sm);border-color:#8fffe121;position:relative;overflow:hidden}.card:before{content:"";opacity:.7;background:linear-gradient(90deg,#21e2b200,#21e2b2a6,#22d3ee00);height:2px;position:absolute;inset:0 0 auto}.card-link:hover,.card:hover{border-color:#21e2b247}.section-title{color:var(--text);align-items:center;gap:8px;display:flex}.section-title:before{content:"";background:#21e2b2;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #21e2b21f}.stat-label{color:var(--text-secondary);font-weight:600}.stat-value{color:var(--text);letter-spacing:0}.table-wrap{background:#050c0d6b;border-color:#8fffe11a;box-shadow:inset 0 1px #ffffff0f}table{background:0 0}th{color:#cde8e39e;letter-spacing:.02em;background:#8fffe10d;font-size:12px}td{color:#f3fffdcc}tbody tr{transition:background .14s}tbody tr:hover{background:#21e2b20f}.badge{border:1px solid #0000;font-weight:700}.badge.online,.badge.ready{border-color:#12986429}.badge.developing{border-color:#c970192e}.badge.planned{background:#8fffe10f;border-color:#8fffe114}.empty{color:var(--text-secondary)}.error{box-shadow:var(--shadow-sm);border-color:#c83f4d33}.btn{border-radius:999px;min-height:38px;font-weight:700;transition:transform .14s,box-shadow .14s,border-color .14s,background .14s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn-primary{color:#041112;background:linear-gradient(135deg,#21e2b2,#22d3ee);box-shadow:0 12px 24px #21e2b233}.btn-primary:hover{background:linear-gradient(135deg,#47f1c8,#67e8f9)}.btn-secondary{background:#ffffff0d;border-color:#8fffe129}.btn-secondary:hover{background:#ffffff14;border-color:#21e2b252}input,select{color:var(--text)}.form-row input,.log-filters input,.log-filters select{background:#ffffff0f;border-color:#8fffe124}code{color:#8fffe1;background:#21e2b21a}.feature-card{justify-content:space-between;align-items:center;gap:24px;padding:22px 24px;display:flex}.feature-stats{grid-template-columns:repeat(3,minmax(110px,1fr));gap:12px;min-width:min(520px,55%);display:grid}.feature-stats>div{background:linear-gradient(145deg,#21e2b214,#22d3ee08),#ffffff0a;border:1px solid #8fffe11a;border-radius:8px;padding:14px 16px}.feature-stats span{color:var(--text-secondary);font-size:12px;font-weight:700;display:block}.feature-stats strong{color:var(--text);margin-top:4px;font-size:26px;line-height:1.1;display:block}.remote-row,.log-list li,.camera-tile,.camera-manage-item,.env-metric-card{background:linear-gradient(145deg, #ffffff0f, #8fffe108), var(--surface-soft);border-color:#8fffe11a}.remote-row,.camera-tile,.env-metric-card{box-shadow:0 10px 28px #0000002e}.camera-tile{min-height:238px}.camera-tile:hover:not(.is-disabled),.remote-row:hover,.env-metric-card:hover{border-color:#21e2b23d;box-shadow:0 18px 42px #00000042}.switch-ui{box-shadow:inset 0 0 0 1px #8fffe114}.switch input:checked+.switch-ui{background:linear-gradient(135deg,#21e2b2,#22d3ee)}@media (width<=1300px){.feature-card{flex-direction:column;align-items:stretch}.feature-stats{width:100%;min-width:0}}:root{--ops-sidebar:#121212;--ops-sidebar-hover:#1e1e1e;--ops-sidebar-active:#2a2a2a;--ops-sidebar-text:#ffffff8c;--ops-sidebar-text-active:#fff;--ops-sidebar-border:#ffffff14;--ops-header:#fff;--ops-header-border:#e5e5e5;--ops-workspace:#e8ece9;--ops-bits-surface:#0f1613;--ops-bits-text:#ffffffeb;--ops-bits-muted:#ffffff8c;--ops-sidebar-width:232px}body.admin-console{min-width:1280px}.ops-shell{grid-template-columns:var(--ops-sidebar-width) 1fr;background:var(--ops-workspace);min-width:1280px;min-height:100vh;display:grid}.ops-sidebar{background:var(--ops-sidebar);color:var(--ops-sidebar-text);border-right:1px solid var(--ops-sidebar-border);flex-direction:column;height:100vh;padding:20px 12px;display:flex;position:sticky;top:0}.ops-brand{border-bottom:1px solid var(--ops-sidebar-border);align-items:center;gap:12px;margin-bottom:16px;padding:8px 10px 20px;display:flex}.ops-brand-mark{color:#fff;border:1px solid #fff3;border-radius:8px;place-items:center;width:40px;height:40px;display:grid}.ops-brand h1{color:#fff;letter-spacing:.5px;margin:0;font-size:15px;font-weight:600}.ops-brand p{color:var(--ops-sidebar-text);margin:4px 0 0;font-size:11px}.ops-nav-group{margin-bottom:18px}.ops-nav-title{text-transform:uppercase;letter-spacing:.08em;color:#ffffff59;margin:0 0 6px;padding:0 12px;font-size:11px}.ops-nav a{color:var(--ops-sidebar-text);border-radius:6px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;transition:background .12s,color .12s;display:flex}.ops-nav a:hover{background:var(--ops-sidebar-hover);color:var(--ops-sidebar-text-active)}.ops-nav a.router-link-active{background:var(--ops-sidebar-active);color:var(--ops-sidebar-text-active);font-weight:500}.ops-sidebar-foot{border-top:1px solid var(--ops-sidebar-border);margin-top:auto;padding:14px 10px 4px;font-size:11px;line-height:1.5}.ops-sidebar-foot a{color:#ffffffbf;align-items:center;gap:6px;margin-top:8px;font-weight:500;display:inline-flex}.ops-sidebar-foot a:hover{color:#fff}.ops-workspace{flex-direction:column;min-width:0;display:flex}.ops-topbar{background:var(--ops-header);border-bottom:1px solid var(--ops-header-border);flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;height:56px;padding:0 28px;display:flex}.ops-topbar-main h2{color:var(--text);margin:0;font-size:18px;font-weight:600}.ops-topbar-main p{color:var(--text-secondary);margin:2px 0 0;font-size:12px}.ops-status-bar{color:var(--text-secondary);align-items:center;gap:16px;font-size:12px;display:flex}.ops-status-item{align-items:center;gap:6px;display:inline-flex}.ops-status-dot{background:#999;border-radius:50%;width:8px;height:8px}.ops-status-dot.is-on{background:var(--success);box-shadow:0 0 0 3px #00a87033}.ops-status-dot.is-off{background:var(--danger)}.ops-clock{font-variant-numeric:tabular-nums;color:var(--text);text-align:right;min-width:140px;font-weight:600}.ops-content{flex:1;padding:20px 28px 32px;overflow:auto}.ops-icon{flex-shrink:0;display:block}.ops-icon--sm{width:18px;height:18px}.ops-icon--md{width:22px;height:22px}.ops-icon--lg{width:28px;height:28px}.ops-icon--xl{width:36px;height:36px}.ops-icon--sidebar{color:#ffffffb3}.ops-nav a.router-link-active .ops-icon--sidebar{color:#fff}.ops-icon--muted{color:#00000073}.ops-icon--inverse{color:#fff}.ops-workspace{flex-direction:column;min-width:0;min-height:100vh;display:flex}.ops-workspace--bits{background:linear-gradient(165deg, #dfe8e3 0%, var(--ops-workspace) 45%, #d4ddd8 100%);position:relative}.ops-workspace-bg{opacity:.85}.ops-content--bits{z-index:1;position:relative}.ops-topbar--bits{z-index:1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(90deg,#081214f0,#081214c7),#081214db;border-bottom-color:#1a5f3c1f;position:relative}.ops-topbar--bits h2{font-size:20px;font-weight:700}.ops-kpi--dark{color:var(--ops-bits-text);background:0 0;border:none;width:100%}.ops-kpi--dark .ops-kpi-label{color:var(--ops-bits-muted)}.ops-kpi--dark .ops-kpi-value{color:#b8f5d4}.ops-panel--dark{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--ops-bits-text);background:#0f16138c;border:1px solid #4ade801f}.ops-panel--dark .ops-panel-title{color:var(--ops-bits-text)}.ops-module-tile--dark{background:var(--ops-bits-surface);color:var(--ops-bits-text);border:none;min-height:140px}.ops-module-tile--dark:hover{box-shadow:none}.ops-module-tile--dark .ops-module-desc,.ops-module-tile--dark .ops-module-metric-label{color:var(--ops-bits-muted)}.ops-module-tile--dark .ops-module-metric{color:#86efac}.empty--dark{color:var(--ops-bits-muted)}.table-wrap--dark table{color:var(--ops-bits-text)}.table-wrap--dark th{color:var(--ops-bits-muted);border-color:#ffffff14}.table-wrap--dark td{border-color:#ffffff0f}.ops-kpi-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;display:grid}.ops-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:flex-start;gap:14px;padding:16px 18px;display:flex}.ops-kpi-body{min-width:0}.ops-kpi-value{margin-top:4px;font-size:26px;font-weight:700;line-height:1.15}.ops-kpi-label{color:var(--text-secondary);font-size:12px}.ops-module-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.ops-module-glow{min-width:0}.ops-module-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:inherit;flex-direction:column;gap:10px;min-height:132px;padding:16px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.ops-module-tile:hover{box-shadow:var(--shadow-md);border-color:#bbb}.ops-module-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.ops-module-head strong{font-size:14px}.ops-module-desc{color:var(--text-secondary);flex:1;margin:0;font-size:12px;line-height:1.5}.ops-module-metric{font-size:22px;font-weight:700}.ops-module-metric-label{color:var(--text-secondary);font-size:11px}.ops-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:18px 20px}.ops-panel-title{align-items:center;gap:8px;margin:0 0 14px;font-size:15px;font-weight:600;display:flex}.ops-device-type{align-items:center;gap:8px;display:inline-flex}.ops-device-type .remote-meta{margin:4px 0 0}@media (width<=1500px){.ops-kpi-row,.ops-module-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}:root{--ops-sidebar:#050c0d;--ops-sidebar-hover:#ffffff14;--ops-sidebar-active:#21e2b229;--ops-sidebar-text:#defcf899;--ops-sidebar-text-active:#f4fffd;--ops-sidebar-border:#85f7df21;--ops-header:#081214c7;--ops-workspace:#081416;--ops-bits-surface:#071112;--ops-bits-text:#f3fffdf2;--ops-bits-muted:#c1e7e0a3;--ops-sidebar-width:256px}body.admin-console{background:radial-gradient(circle at 12% 8%,#21e2b224,#0000 28%),linear-gradient(135deg,#050c0d 0%,#081416 42%,#0e2020 100%)}.ops-shell{background:radial-gradient(circle at 84% 12%,#22d3ee1f,#0000 26%),radial-gradient(circle at 36% 92%,#1fbf7514,#0000 32%),linear-gradient(145deg,#061012 0%,#0a1718 54%,#0c1d1d 100%)}.ops-sidebar{background:linear-gradient(#071718fa,#03090afc),radial-gradient(circle at 30% 0,#21e2b233,#0000 38%);box-shadow:18px 0 44px #00000057}.ops-sidebar:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:28px 28px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 82%);mask-image:linear-gradient(#000,#0000 82%)}.ops-brand,.ops-nav,.ops-sidebar-foot,.ops-sidebar-card{z-index:1;position:relative}.ops-brand{margin-bottom:14px;padding:8px 10px 16px}.ops-brand-mark{background:linear-gradient(135deg,#21e2b2eb,#22d3eea3),#0c2a2b;border-color:#c5fff75c;box-shadow:0 0 0 4px #21e2b21f,0 14px 34px #21e2b233}.ops-brand h1{letter-spacing:0;font-size:17px}.ops-brand p{color:#ecfdf5ad}.ops-sidebar-card{color:#f7fffbe6;background:linear-gradient(135deg,#1fbf752e,#14b8a614),#ffffff0a;border:1px solid #beffdd24;border-radius:8px;margin:0 6px 18px;padding:14px 14px 15px}.ops-sidebar-card__eyebrow{color:#8fffe1;background:#21e2b224;border-radius:999px;align-items:center;margin-bottom:8px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.ops-sidebar-card strong{color:#fff;font-size:13px;display:block}.ops-sidebar-card p{color:#ecfdf5a3;margin:8px 0 0;font-size:12px;line-height:1.55}.ops-nav-title{color:#ecfdf557}.ops-nav a{border:1px solid #0000;min-height:42px;position:relative}.ops-nav a:before{content:"";background:0 0;border-radius:3px;align-self:stretch;width:3px;transition:background .16s}.ops-nav a:hover{border-color:#ecfdf514}.ops-nav a.router-link-active{border-color:#21e2b23d;box-shadow:inset 0 0 24px #21e2b21a}.ops-nav a.router-link-active:before{background:linear-gradient(#8fffe1,#22d3ee)}.ops-workspace--bits{background:radial-gradient(circle at 76% 4%,#21e2b229,#0000 32%),radial-gradient(circle at 20% 88%,#22d3ee1c,#0000 30%),linear-gradient(155deg,#0a1618 0%,#0c1d1d 48%,#071112 100%)}.ops-workspace--bits:before{content:"";pointer-events:none;opacity:.72;background:linear-gradient(115deg,#0000 0 16%,#8fffe11a 16.3% 16.7%,#0000 17% 100%),linear-gradient(28deg,#0000 0 66%,#22d3ee14 66.2% 66.7%,#0000 67% 100%);position:absolute;inset:0}.ops-topbar--bits{color:#f3fffd;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(90deg,#081214f0,#081214c7),#081214db;border-bottom:1px solid #8fffe11f;height:74px;padding:0 32px;box-shadow:0 12px 30px #0000002e}.ops-page-kicker{color:#8fffe1;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;margin-bottom:2px;font-size:11px;font-weight:800;display:flex}.ops-page-kicker i{background:#22d3ee;border-radius:50%;width:4px;height:4px;box-shadow:0 0 0 4px #22d3ee24}.ops-topbar--bits h2{color:#f3fffd;font-size:22px;line-height:1.15}.ops-topbar--bits .ops-topbar-main p{color:#cde8e3ad}.ops-workspace--bits .ops-icon--muted{color:#cde8e3b8}.ops-status-bar{gap:10px}.ops-status-item,.ops-clock{color:#f3fffdb8;background:#ffffff0d;border:1px solid #8fffe124;border-radius:999px;min-height:34px;padding:8px 12px;box-shadow:0 8px 24px #00000024}.ops-status-item--accent{color:#8fffe1;background:#21e2b21a;font-weight:800}.ops-clock{color:#f3fffd;justify-content:center;align-items:center;min-width:166px;display:inline-flex}.ops-content{padding:24px 32px 36px}.dashboard-bits{gap:18px}.dashboard-hero{color:#f7fffb;background:linear-gradient(135deg,#091410eb,#0d2d22e0),radial-gradient(circle at 72% 30%,#1fbf756b,#0000 32%);border:1px solid #a0e1be42;border-radius:8px;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);min-height:330px;display:grid;position:relative;overflow:hidden;box-shadow:0 24px 70px #0f322238,inset 0 1px #ffffff17}.dashboard-hero:before{content:"";background-color:#0000;background-image:linear-gradient(90deg,#62f0a114 1px,#0000 1px),linear-gradient(#62f0a10f 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:42px 42px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000,#0000 72%);mask-image:linear-gradient(90deg,#000,#0000 72%)}.dashboard-hero:after{content:"";filter:blur(.5px);opacity:.72;background:linear-gradient(92deg,#0000,#62f0a138,#14b8a629,#0000),repeating-linear-gradient(90deg,#ecfdf514 0 1px,#0000 1px 18px);width:620px;height:220px;animation:6s ease-in-out infinite heroSweep;position:absolute;top:9%;right:-6%;transform:rotate(-18deg)}.dashboard-hero__copy,.dashboard-hero__visual{z-index:1;position:relative}.dashboard-hero__copy{flex-direction:column;justify-content:center;padding:34px 38px;display:flex}.hero-kicker{color:#a8ffcf;letter-spacing:.09em;background:#1fbf751f;border:1px solid #a8ffcf3d;border-radius:999px;width:fit-content;padding:5px 10px;font-size:11px;font-weight:800}.dashboard-hero h1{letter-spacing:0;max-width:760px;margin:18px 0 0;font-size:48px;line-height:1.08}.dashboard-hero h1 span{color:#9ef6c6;display:block}.dashboard-hero p{color:#ecfdf5b8;max-width:760px;margin:18px 0 0;font-size:15px;line-height:1.9}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.hero-action{color:#f7fffbdb;border:1px solid #ecfdf533;border-radius:999px;justify-content:center;align-items:center;min-height:40px;padding:0 18px;font-size:13px;font-weight:700;transition:transform .16s,border-color .16s,background .16s;display:inline-flex}.hero-action:hover{background:#ffffff14;border-color:#9ef6c68c;transform:translateY(-1px)}.hero-action--primary{color:#06130e;background:linear-gradient(135deg,#1fbf75,#14b8a6);border-color:#0000;box-shadow:0 12px 28px #1fbf7547}.dashboard-hero__visual{min-height:330px}.hero-orbit,.hero-core,.hero-node{position:absolute}.hero-orbit{border:1px solid #9ef6c63d;border-radius:50%;inset:46px 38px 46px 10px}.hero-orbit--outer{animation:4s ease-in-out infinite heroPulse}.hero-orbit--inner{opacity:.72;border-style:dashed;animation:24s linear infinite reverse heroRotate;inset:96px 102px 96px 74px}.hero-core{background:radial-gradient(circle at 35% 28%,#fff3,#0000 30%),linear-gradient(135deg,#1fbf75db,#14b8a6b8);border:1px solid #9ef6c657;border-radius:50%;place-items:center;gap:4px;width:110px;height:110px;display:grid;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 12px #1fbf7514,0 26px 48px #00000038}.hero-core span,.hero-node span{color:#f7fffb;font-size:11px;font-weight:800}.hero-node{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#06130ebd;border:1px solid #ecfdf533;border-radius:999px;align-items:center;gap:8px;padding:9px 11px;display:inline-flex;box-shadow:0 12px 32px #0000002e}.hero-node--rfid{top:25%;left:12%}.hero-node--scale{top:29%;right:12%}.hero-node--env{bottom:23%;left:20%}.hero-node--video{bottom:24%;right:10%}.dashboard-split{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:16px;display:grid}.flow-steps{gap:12px;display:grid}.flow-step{background:#ffffff0a;border:1px solid #ecfdf514;border-radius:8px;grid-template-columns:48px 1fr;align-items:start;gap:12px;padding:12px;display:grid}.flow-step__index{color:#9ef6c6;background:#1fbf7529;border-radius:8px;place-items:center;width:42px;height:42px;font-weight:800;display:grid}.flow-step strong,.pitch-card strong{color:#f7fffb;font-size:14px}.flow-step p,.pitch-card p{color:var(--ops-bits-muted);margin:5px 0 0;font-size:12px;line-height:1.55}.pitch-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.pitch-card{background:linear-gradient(145deg,#1fbf751f,#14b8a60a),#ffffff0a;border:1px solid #9ef6c621;border-radius:8px;min-height:112px;padding:16px}.dashboard-table-panel{overflow:hidden}.ops-panel{border-radius:8px;box-shadow:0 16px 44px #1a402d14,inset 0 1px #ffffff8c}.ops-panel--dark{background:linear-gradient(145deg,#101916d1,#09120eb3),#0f16139e;border-color:#9ef6c624;box-shadow:0 24px 60px #091e142e,inset 0 1px #ffffff14}.ops-kpi-row{gap:16px}.ops-kpi{border-radius:8px}.ops-kpi--dark{background:radial-gradient(circle at 100% 0,#1fbf752e,#0000 36%),linear-gradient(145deg,#111f1af5,#0a120ff5);min-height:112px;padding:18px}.ops-kpi--dark .ops-icon{color:#9ef6c6}.ops-kpi--dark .ops-kpi-value{font-size:30px}.ops-module-grid{gap:14px}.ops-module-tile--dark{background:radial-gradient(circle at 100% 0,#14b8a624,#0000 40%),linear-gradient(145deg,#101b17fa,#09100dfa);min-height:156px;padding:18px}.ops-module-tile--dark .badge{border:1px solid #ffffff14}.ops-module-tile--dark strong{color:#f7fffb}.ops-module-metric{color:#9ef6c6}.table-wrap--dark{background:#ffffff08;border-color:#ecfdf514}.table-wrap--dark table{background:0 0}.table-wrap--dark tbody tr:hover{background:#1fbf7514}@keyframes heroRotate{to{transform:rotate(360deg)}}@keyframes heroPulse{0%,to{opacity:.72;transform:scale(1)}50%{opacity:1;transform:scale(1.035)}}@keyframes heroSweep{0%,to{opacity:.42;translate:0}50%{opacity:.76;translate:-24px 10px}}@media (width<=1500px){.dashboard-hero{grid-template-columns:minmax(0,1fr) minmax(320px,.72fr)}.dashboard-hero h1{font-size:40px}.pitch-grid{grid-template-columns:1fr}}@media (width<=1320px){.dashboard-hero{grid-template-columns:1fr}.dashboard-hero__visual{display:none}.dashboard-split{grid-template-columns:1fr}}@keyframes bits-shine-c895e379{to{background-position:-50%}}.border-glow-card[data-v-868436fa]:before{background:linear-gradient(var(--card-bg,#0f1613) 0 100%) padding-box, linear-gradient(#fff0 0% 100%) border-box, var(--gradient-one) border-box, var(--gradient-two) border-box, var(--gradient-three) border-box, var(--gradient-four) border-box, var(--gradient-five) border-box, var(--gradient-six) border-box, var(--gradient-seven) border-box, var(--gradient-base) border-box;opacity:calc((var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, black calc(var(--cone-spread) * 1%), transparent calc((var(--cone-spread) + 15) * 1%), transparent calc((100 - var(--cone-spread) - 15) * 1%), black calc((100 - var(--cone-spread)) * 1%));-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, black calc(var(--cone-spread) * 1%), transparent calc((var(--cone-spread) + 15) * 1%), transparent calc((100 - var(--cone-spread) - 15) * 1%), black calc((100 - var(--cone-spread)) * 1%));mask-image:conic-gradient(from var(--cursor-angle) at center, black calc(var(--cone-spread) * 1%), transparent calc((var(--cone-spread) + 15) * 1%), transparent calc((100 - var(--cone-spread) - 15) * 1%), black calc((100 - var(--cone-spread)) * 1%));border:1px solid #0000}.border-glow-card[data-v-868436fa]:after{background:var(--gradient-one) padding-box, var(--gradient-two) padding-box, var(--gradient-three) padding-box, var(--gradient-four) padding-box, var(--gradient-five) padding-box, var(--gradient-six) padding-box, var(--gradient-seven) padding-box, var(--gradient-base) padding-box;-webkit-mask-image:linear-gradient(to bottom, black, black), radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%), conic-gradient(from var(--cursor-angle) at center, transparent 5%, black 15%, black 85%, transparent 95%);-webkit-mask-image:linear-gradient(to bottom, black, black), radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%), conic-gradient(from var(--cursor-angle) at center, transparent 5%, black 15%, black 85%, transparent 95%);mask-image:linear-gradient(to bottom, black, black), radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%), conic-gradient(from var(--cursor-angle) at center, transparent 5%, black 15%, black 85%, transparent 95%);opacity:calc(var(--fill-opacity,.35) * (var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));mix-blend-mode:soft-light;-webkit-mask-composite:source-out,source-over,source-over;border:1px solid #0000;-webkit-mask-composite:source-out,source-over,source-over;mask-composite:subtract,add,add}.border-glow-card>.edge-light[data-v-868436fa]{inset:calc(var(--glow-padding) * -1);pointer-events:none;z-index:1;-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%);-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%);mask-image:conic-gradient(from var(--cursor-angle) at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%);opacity:calc((var(--edge-proximity) - var(--edge-sensitivity)) / (100 - var(--edge-sensitivity)));mix-blend-mode:plus-lighter}.dashboard-bits .ops-kpi-glow[data-v-ff7db4be],.dashboard-bits .ops-module-glow[data-v-ff7db4be]{min-width:0}.dashboard-bits .ops-module-glow .ops-module-tile[data-v-ff7db4be]{height:100%}.hint[data-v-f68e0693],.hint[data-v-a0b35d53]{color:var(--text-secondary);margin:-6px 0 0;font-size:13px}@media (width<=1100px){.env-metric-grid[data-v-27243f10]{grid-template-columns:repeat(2,minmax(0,1fr))}}.camera-preview[data-v-659f8fce]{aspect-ratio:16/9;background:#1a1a1a;border-radius:6px;justify-content:center;align-items:center;width:100%;max-width:100%;display:flex;position:relative;overflow:hidden}.camera-preview--compact[data-v-659f8fce]{aspect-ratio:4/3;border-radius:8px}.camera-preview--large[data-v-659f8fce]{aspect-ratio:16/9;border-radius:0;width:100%}.preview-video[data-v-659f8fce],.preview-img[data-v-659f8fce]{object-fit:cover;width:100%;max-width:100%;height:100%;display:block}.camera-preview--large .preview-video[data-v-659f8fce]{object-fit:contain;background:#000}.camera-placeholder[data-v-659f8fce]{text-align:center;color:#ffffff80;flex-direction:column;align-items:center;gap:8px;padding:12px;font-size:12px;line-height:1.5;display:flex}.camera-live-tag[data-v-659f8fce]{color:#fff;pointer-events:none;background:#e34d59eb;border-radius:4px;padding:2px 6px;font-size:10px;line-height:1.4;position:absolute;top:6px;left:6px}.video-console[data-v-fa1adf31]{gap:16px}.video-hint[data-v-fa1adf31]{color:var(--text-secondary);margin:0 0 14px;font-size:13px;line-height:1.6}.video-refresh-hint[data-v-fa1adf31]{margin-top:-6px}.webrtc-toggle[data-v-fa1adf31]{color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin:0 0 14px;font-size:13px;display:inline-flex}.webrtc-toggle input[data-v-fa1adf31]{width:16px;height:16px}.webrtc-active-hint[data-v-fa1adf31]{color:var(--text-secondary);background:#2d8cf014;border:1px solid #2d8cf033;border-radius:8px;margin:-6px 0 14px;padding:8px 12px;font-size:12px;line-height:1.6}.webrtc-active-hint code[data-v-fa1adf31]{font-size:11px}.camera-grid[data-v-fa1adf31]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;width:100%;max-width:100%;display:grid;overflow-x:hidden}@media (width<=640px){.camera-grid[data-v-fa1adf31]{grid-template-columns:repeat(2,minmax(0,1fr))}}.camera-tile[data-v-fa1adf31]{border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--surface-soft);text-align:left;cursor:pointer;flex-direction:column;gap:6px;width:100%;min-width:0;padding:10px;transition:box-shadow .15s,transform .15s;display:flex}.camera-tile[data-v-fa1adf31]:hover:not(.is-disabled){transform:translateY(-1px);box-shadow:0 4px 16px #00000014}.camera-tile.is-disabled[data-v-fa1adf31]{opacity:.55;cursor:not-allowed}.camera-tile--empty[data-v-fa1adf31]{cursor:default;grid-column:1/-1}.camera-tile__sub[data-v-fa1adf31]{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;overflow:hidden}.camera-tile__warn[data-v-fa1adf31]{color:#f6bf5d}.camera-tile__info[data-v-fa1adf31]{color:#8fffe1}.video-modal-backdrop[data-v-fa1adf31]{z-index:2000;box-sizing:border-box;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.video-modal-panel[data-v-fa1adf31]{background:var(--surface,#fff);border-radius:12px;flex-direction:column;width:min(920px,100%);max-height:min(92vh,100%);display:flex;overflow:hidden;box-shadow:0 16px 48px #00000047}.video-modal-header[data-v-fa1adf31]{border-bottom:1px solid var(--border-light);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.video-modal-title[data-v-fa1adf31]{flex-direction:column;gap:2px;min-width:0;display:flex}.video-modal-title strong[data-v-fa1adf31]{font-size:15px}.video-modal-title .muted[data-v-fa1adf31]{font-size:12px}.video-modal-close[data-v-fa1adf31]{border:1px solid var(--border-light);background:var(--surface-soft);cursor:pointer;border-radius:8px;flex-shrink:0;padding:6px 14px;font-size:14px}.video-modal-player[data-v-fa1adf31]{background:#111;width:100%}.video-modal-hint[data-v-fa1adf31]{flex-shrink:0;margin:0;padding:10px 16px 14px;font-size:12px}.camera-meta[data-v-fa1adf31]{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.camera-meta strong[data-v-fa1adf31]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.camera-grid-empty[data-v-fa1adf31]{border:1px dashed var(--border-light);border-radius:var(--radius-sm);text-align:center;padding:24px 16px}.camera-rename-btn[data-v-fa1adf31]{border:1px solid var(--border-light);background:var(--surface,#fff);color:var(--text);cursor:pointer;border-radius:6px;align-self:flex-start;margin-top:4px;padding:2px 10px;font-size:12px}.video-manage[data-v-fa1adf31]{border-style:dashed}.camera-manage-list[data-v-fa1adf31]{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.camera-manage-item[data-v-fa1adf31]{border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--surface-soft);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 10px;display:flex}.camera-manage-main[data-v-fa1adf31]{flex-direction:column;flex:1;gap:2px;min-width:160px;display:flex}.camera-manage-main .muted[data-v-fa1adf31]{font-size:12px}.behavior-list[data-v-fa1adf31]{gap:10px;margin:0;padding:0;list-style:none;display:grid}.behavior-list li[data-v-fa1adf31]{border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--surface-soft);grid-template-columns:minmax(0,1fr) auto 140px;align-items:center;gap:12px;padding:12px 14px;display:grid}.behavior-main[data-v-fa1adf31]{flex-direction:column;gap:4px;min-width:0;display:flex}.behavior-main strong[data-v-fa1adf31]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.behavior-time[data-v-fa1adf31]{text-align:right;font-size:12px}@media (width<=900px){.behavior-list li[data-v-fa1adf31]{grid-template-columns:1fr}.behavior-time[data-v-fa1adf31]{text-align:left}}.ops-placeholder-desc[data-v-5fee4ac6],.ops-placeholder-desc[data-v-0d7baebc]{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.7}.console-desc[data-v-319c9496]{color:var(--muted);margin:0;line-height:1.8}.control-actions[data-v-319c9496]{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.action-msg[data-v-319c9496]{color:var(--primary);margin:10px 0 0;font-size:13px}.remote-list[data-v-319c9496]{gap:10px;display:grid}.remote-row[data-v-319c9496]{border-radius:var(--radius-sm);background:var(--surface-soft);border:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:12px;display:flex}.remote-meta[data-v-319c9496]{color:var(--text-secondary);margin:4px 0 0;font-size:12px}.remote-side[data-v-319c9496]{align-items:center;gap:12px;display:flex}.switch[data-v-319c9496]{width:44px;height:24px;display:inline-block;position:relative}.switch input[data-v-319c9496]{opacity:0;width:0;height:0}.switch-ui[data-v-319c9496]{cursor:pointer;background:#cde8e340;border-radius:24px;transition:all .2s;position:absolute;inset:0}.switch-ui[data-v-319c9496]:before{content:"";background:#f3fffd;border-radius:50%;width:18px;height:18px;transition:all .2s;position:absolute;bottom:3px;left:3px}.switch input:checked+.switch-ui[data-v-319c9496]{background:var(--success)}.switch input:checked+.switch-ui[data-v-319c9496]:before{transform:translate(20px)}.log-filters[data-v-319c9496]{flex-wrap:wrap;gap:10px;margin-bottom:12px;display:flex}.log-filters input[data-v-319c9496],.log-filters select[data-v-319c9496]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:8px 12px;font-size:14px}.log-list[data-v-319c9496]{gap:8px;margin:0;padding:0;list-style:none;display:grid}.log-list li[data-v-319c9496]{border-radius:var(--radius-sm);background:var(--surface-soft);grid-template-columns:72px 120px 100px 1fr;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:grid}.log-time[data-v-319c9496]{color:var(--text-secondary);font-size:12px}.log-sn[data-v-319c9496]{font-weight:600}@media (width<=900px){.log-list li[data-v-319c9496]{grid-template-columns:1fr}}.form-row[data-v-c2798a0c]{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.form-row input[data-v-c2798a0c]{border:1px solid var(--border);color:var(--text);background:#ffffff0f;border-radius:8px;padding:8px 10px}.form-row label[data-v-c2798a0c]{color:var(--text-secondary);font-weight:700}.form-row input[data-v-c2798a0c]::placeholder{color:var(--text-placeholder)}.register-card[data-v-c2798a0c]{background:linear-gradient(135deg,#f6bf5d21,#21e2b20a),#091617e0;border:1px solid #f6bf5d57;box-shadow:0 16px 42px #00000038}.register-hint[data-v-c2798a0c]{color:#cde8e3b8;margin:0 0 12px;font-size:14px}.row-warn[data-v-c2798a0c]{color:var(--text);background:#f6bf5d14}.save-error[data-v-c2798a0c]{color:#fff5f6;background:#ff6b7c24;border:1px solid #ff6b7c47;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:14px;line-height:1.5}.save-success[data-v-c2798a0c]{color:#d9fff0;background:#52f1b61f;border:1px solid #52f1b640;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:14px;line-height:1.5}.ops-brand-mark{box-shadow:none;background:0 0;border:none;padding:0;overflow:hidden}.ops-brand-logo{object-fit:cover;border-radius:8px;width:100%;height:100%;display:block}.ops-sidebar-user{color:#ecfdf5cc;margin-bottom:8px;font-size:12px;font-weight:700;display:block}.ops-logout{color:#ecfdf5b8;font:inherit;cursor:pointer;background:0 0;border:1px solid #85f7df21;border-radius:999px;align-items:center;gap:6px;margin-top:10px;padding:8px 12px;font-size:12px;display:inline-flex}.ops-logout:hover{color:#fff;background:#ffffff0a;border-color:#21e2b252}.bits-dot-grid[data-v-bcc6b522]{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.bits-dot-grid__canvas[data-v-bcc6b522]{width:100%;height:100%;display:block}.bits-shiny-text[data-v-c895e379]{background-image:linear-gradient(var(--shiny-spread), var(--shiny-base) 0%, var(--shiny-base) 35%, var(--shiny-peak) 50%, var(--shiny-base) 65%, var(--shiny-base) 100%);-webkit-text-fill-color:transparent;animation:bits-shine-c895e379 var(--shiny-duration) linear infinite;background-position:150%;background-size:200%;-webkit-background-clip:text;background-clip:text;display:inline-block}.login-shell[data-v-80ee27dc]{background:linear-gradient(165deg,#0b1210 0%,#121a17 45%,#0d1512 100%);place-items:center;min-height:100vh;padding:24px;display:grid;position:relative}.login-shell__bg[data-v-80ee27dc]{opacity:.55;position:absolute;inset:0}.login-card[data-v-80ee27dc]{z-index:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#f3fffdeb;background:#0f1613d1;border:1px solid #8fffe124;border-radius:16px;width:min(420px,100%);padding:32px 28px;position:relative;box-shadow:0 24px 64px #00000059}.login-brand[data-v-80ee27dc]{align-items:center;gap:14px;margin-bottom:18px;display:flex}.login-brand__logo[data-v-80ee27dc]{object-fit:cover;border-radius:14px;width:56px;height:56px;box-shadow:0 8px 24px #00000047}.login-brand h1[data-v-80ee27dc]{color:#f3fffd;margin:0;font-size:24px}.login-brand p[data-v-80ee27dc]{color:#f3fffd8c;margin:4px 0 0;font-size:12px}.login-desc[data-v-80ee27dc]{color:#f3fffd9e;margin:0 0 20px;font-size:13px;line-height:1.7}.login-field[data-v-80ee27dc]{margin-bottom:14px}.login-field label[data-v-80ee27dc]{color:#f3fffdb8;margin-bottom:8px;font-size:13px;display:block}.login-field input[data-v-80ee27dc]{color:#f3fffd;background:#ffffff0a;border:1px solid #8fffe129;border-radius:10px;width:100%;padding:12px 14px;font-size:15px}.login-field input[data-v-80ee27dc]::placeholder{color:#f3fffd59}.login-field input[data-v-80ee27dc]:focus{border-color:#8fffe173;outline:none;box-shadow:0 0 0 3px #8fffe11f}.login-error[data-v-80ee27dc]{color:#ffb4bc;background:#e34d591f;border:1px solid #e34d5947;border-radius:10px;margin:0 0 12px;padding:10px 12px;font-size:13px}.login-btn[data-v-80ee27dc]{cursor:pointer;color:#0b1210;background:linear-gradient(135deg,#8fffe1 0%,#5fe0b8 100%);border:none;border-radius:10px;width:100%;margin-top:8px;padding:12px 16px;font-size:15px;font-weight:600}.login-btn[data-v-80ee27dc]:disabled{opacity:.65;cursor:not-allowed}.border-glow-card[data-v-868436fa]{--edge-proximity:0;--cursor-angle:45deg;--edge-sensitivity:30;--color-sensitivity:calc(var(--edge-sensitivity) + 20);--border-radius:14px;--glow-padding:32px;--cone-spread:25;border-radius:var(--border-radius);isolation:isolate;background:var(--card-bg,#0f1613);border:1px solid #ffffff1f;display:grid;position:relative;overflow:visible;transform:translateZ(.01px);box-shadow:0 4px 12px #00000026,0 0 40px #1a5f3c14}.border-glow-card[data-v-868436fa]:before,.border-glow-card[data-v-868436fa]:after,.border-glow-card>.edge-light[data-v-868436fa]{content:"";border-radius:inherit;z-index:-1;transition:opacity .25s ease-out;position:absolute;inset:0}.border-glow-card[data-v-868436fa]:not(:hover):not(.sweep-active):before,.border-glow-card[data-v-868436fa]:not(:hover):not(.sweep-active):after,.border-glow-card:not(:hover):not(.sweep-active)>.edge-light[data-v-868436fa]{opacity:0;transition:opacity .75s ease-in-out}.border-glow-card[data-v-868436fa]:before{background:linear-gradient(var(--card-bg,#0f1613) 0 100%) padding-box, linear-gradient(#fff0 0% 100%) border-box, var(--gradient-one) border-box, var(--gradient-two) border-box, var(--gradient-three) border-box, var(--gradient-four) border-box, var(--gradient-five) border-box, var(--gradient-six) border-box, var(--gradient-seven) border-box, var(--gradient-base) border-box;opacity:calc((var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, black calc(var(--cone-spread) * 1%), transparent calc((var(--cone-spread) + 15) * 1%), transparent calc((100 - var(--cone-spread) - 15) * 1%), black calc((100 - var(--cone-spread)) * 1%));mask-image:conic-gradient(from var(--cursor-angle) at center, black calc(var(--cone-spread) * 1%), transparent calc((var(--cone-spread) + 15) * 1%), transparent calc((100 - var(--cone-spread) - 15) * 1%), black calc((100 - var(--cone-spread)) * 1%));border:1px solid #0000}.border-glow-card[data-v-868436fa]:after{background:var(--gradient-one) padding-box, var(--gradient-two) padding-box, var(--gradient-three) padding-box, var(--gradient-four) padding-box, var(--gradient-five) padding-box, var(--gradient-six) padding-box, var(--gradient-seven) padding-box, var(--gradient-base) padding-box;-webkit-mask-image:linear-gradient(to bottom, black, black), radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%), conic-gradient(from var(--cursor-angle) at center, transparent 5%, black 15%, black 85%, transparent 95%);mask-image:linear-gradient(to bottom, black, black), radial-gradient(ellipse at 50% 50%, black 40%, transparent 65%), conic-gradient(from var(--cursor-angle) at center, transparent 5%, black 15%, black 85%, transparent 95%);opacity:calc(var(--fill-opacity,.35) * (var(--edge-proximity) - var(--color-sensitivity)) / (100 - var(--color-sensitivity)));mix-blend-mode:soft-light;border:1px solid #0000;-webkit-mask-composite:source-out,source-over,source-over;mask-composite:subtract,add,add}.border-glow-card>.edge-light[data-v-868436fa]{inset:calc(var(--glow-padding) * -1);pointer-events:none;z-index:1;-webkit-mask-image:conic-gradient(from var(--cursor-angle) at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%);mask-image:conic-gradient(from var(--cursor-angle) at center, black 2.5%, transparent 10%, transparent 90%, black 97.5%);opacity:calc((var(--edge-proximity) - var(--edge-sensitivity)) / (100 - var(--edge-sensitivity)));mix-blend-mode:plus-lighter}.border-glow-card>.edge-light[data-v-868436fa]:before{content:"";inset:var(--glow-padding);border-radius:inherit;box-shadow:inset 0 0 0 1px var(--glow-color), inset 0 0 8px 0 var(--glow-color-30), 0 0 12px 0 var(--glow-color-20);position:absolute}.border-glow-inner[data-v-868436fa]{z-index:1;border-radius:inherit;flex-direction:column;display:flex;position:relative;overflow:auto}.bits-fade-in[data-v-58b67434]{opacity:0;transform:translateY(var(--fade-distance));transition:opacity var(--fade-duration) cubic-bezier(.22, 1, .36, 1) var(--fade-delay), transform var(--fade-duration) cubic-bezier(.22, 1, .36, 1) var(--fade-delay)}.bits-fade-in.is-visible[data-v-58b67434]{opacity:1;transform:translateY(0)}.dashboard-bits .ops-kpi-glow[data-v-1b866529],.dashboard-bits .ops-module-glow[data-v-1b866529]{min-width:0}.dashboard-bits .ops-module-glow .ops-module-tile[data-v-1b866529]{height:100%}.hint[data-v-335d5d68]{color:var(--text-secondary);margin:-6px 0 16px;font-size:13px}.env-sparkline[data-v-87edfde8]{width:100%;height:36px;margin-top:8px;display:block}.env-metric-grid[data-v-27243f10]{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.env-metric-card[data-v-27243f10]{background:var(--surface-soft);border:1px solid var(--border-light);border-radius:var(--radius);padding:14px 16px}.env-metric-head[data-v-27243f10]{flex-direction:column;gap:4px;display:flex}.env-metric-label[data-v-27243f10]{color:var(--text-secondary);font-size:13px}.env-metric-value[data-v-27243f10]{font-size:28px;font-weight:600;line-height:1.2}.env-metric-level[data-v-27243f10]{margin:8px 0 0;font-size:13px;line-height:1.4}.tone-ok[data-v-27243f10]{color:var(--success)}.tone-warn[data-v-27243f10]{color:var(--warning)}.tone-danger[data-v-27243f10]{color:var(--danger)}.tone-muted[data-v-27243f10]{color:var(--text-placeholder)}.inner-panel[data-v-27243f10]{background:0 0;border:none;margin-top:16px;padding:0}.env-node-list[data-v-27243f10]{color:var(--text-secondary);margin:0;padding-left:18px}.env-node-list li[data-v-27243f10]{margin-bottom:8px}.cell-level[data-v-27243f10]{font-size:12px}@media (width<=1100px){.env-metric-grid[data-v-27243f10]{grid-template-columns:repeat(2,minmax(0,1fr))}}.camera-preview[data-v-f766c042]{aspect-ratio:16/9;background:#1a1a1a;border-radius:6px;justify-content:center;align-items:center;width:100%;max-width:100%;display:flex;position:relative;overflow:hidden}.camera-preview--compact[data-v-f766c042]{aspect-ratio:4/3;border-radius:8px}.camera-preview--large[data-v-f766c042]{aspect-ratio:16/9;border-radius:0;width:100%}.preview-video[data-v-f766c042],.preview-img[data-v-f766c042]{object-fit:cover;width:100%;max-width:100%;height:100%;display:block}.camera-preview--large .preview-video[data-v-f766c042]{object-fit:contain;background:#000}.camera-placeholder[data-v-f766c042]{color:#ffffff8c;text-align:center;flex-direction:column;align-items:center;gap:8px;padding:12px;font-size:12px;display:flex}.camera-live-tag[data-v-f766c042]{color:#fff;pointer-events:none;background:#e34d59eb;border-radius:4px;padding:2px 8px;font-size:11px;line-height:1.4;position:absolute;top:8px;left:8px}.video-console[data-v-825d37a3]{gap:16px}.video-hint[data-v-825d37a3]{color:var(--text-secondary);margin:0 0 14px;font-size:13px;line-height:1.6}.video-refresh-hint[data-v-825d37a3]{margin-top:-6px}.webrtc-toggle[data-v-825d37a3]{color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin:0 0 14px;font-size:13px;display:inline-flex}.webrtc-toggle input[data-v-825d37a3]{width:16px;height:16px}.webrtc-active-hint[data-v-825d37a3]{color:var(--text-secondary);background:#2d8cf014;border:1px solid #2d8cf033;border-radius:8px;margin:-6px 0 14px;padding:8px 12px;font-size:12px;line-height:1.6}.webrtc-active-hint code[data-v-825d37a3]{font-size:11px}.camera-grid[data-v-825d37a3]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;width:100%;max-width:100%;display:grid;overflow-x:hidden}@media (width<=640px){.camera-grid[data-v-825d37a3]{grid-template-columns:repeat(2,minmax(0,1fr))}}.camera-tile[data-v-825d37a3]{border:1px solid var(--border-light);border-radius:var(--radius-sm);background:var(--surface-soft);text-align:left;cursor:pointer;flex-direction:column;gap:6px;width:100%;min-width:0;padding:10px;transition:box-shadow .15s,transform .15s;display:flex}.camera-tile[data-v-825d37a3]:hover:not(.is-disabled){transform:translateY(-1px);box-shadow:0 4px 16px #00000014}.camera-tile.is-disabled[data-v-825d37a3]{opacity:.55;cursor:not-allowed}.camera-tile--empty[data-v-825d37a3]{cursor:default;grid-column:1/-1}.camera-tile__sub[data-v-825d37a3]{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12px;overflow:hidden}.camera-tile__warn[data-v-825d37a3]{color:#f6bf5d}.camera-tile__info[data-v-825d37a3]{color:#8fffe1}.video-modal-backdrop[data-v-825d37a3]{z-index:2000;box-sizing:border-box;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.video-modal-panel[data-v-825d37a3]{background:var(--surface,#fff);border-radius:12px;flex-direction:column;width:min(920px,100%);max-height:min(92vh,100%);display:flex;overflow:hidden;box-shadow:0 16px 48px #00000047}.video-modal-header[data-v-825d37a3]{border-bottom:1px solid var(--border-light);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.video-modal-title[data-v-825d37a3]{flex-direction:column;gap:4px;min-width:0;display:flex}.video-modal-title strong[data-v-825d37a3]{font-size:16px}.video-modal-close[data-v-825d37a3]{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:6px 8px;font-size:14px}.video-modal-player[data-v-825d37a3]{background:#000;min-height:min(56vw,420px)}.video-modal-hint[data-v-825d37a3]{margin:0;padding:10px 16px 14px;font-size:12px}.camera-grid-empty[data-v-825d37a3]{padding:24px 0}.event-list[data-v-825d37a3]{gap:8px;display:grid}.event-row[data-v-825d37a3]{border-radius:var(--radius-sm);background:var(--surface-soft);grid-template-columns:120px 1fr;gap:10px;padding:10px 12px;font-size:13px;display:grid}.ops-placeholder-desc[data-v-5fee4ac6],.ops-placeholder-desc[data-v-0d7baebc]{color:var(--text-secondary);margin:0;font-size:14px;line-height:1.7}.console-desc[data-v-e519b314]{color:var(--muted);margin:0;line-height:1.8}.control-actions[data-v-e519b314]{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.action-msg[data-v-e519b314]{color:var(--primary);margin:10px 0 0;font-size:13px}.remote-list[data-v-e519b314]{gap:10px;display:grid}.remote-row[data-v-e519b314]{border-radius:var(--radius-sm);background:var(--surface-soft);border:1px solid var(--border-light);justify-content:space-between;align-items:center;padding:12px;display:flex}.remote-meta[data-v-e519b314]{color:var(--text-secondary);margin:4px 0 0;font-size:12px}.remote-side[data-v-e519b314]{align-items:center;gap:12px;display:flex}.switch[data-v-e519b314]{width:44px;height:24px;display:inline-block;position:relative}.switch input[data-v-e519b314]{opacity:0;width:0;height:0}.switch-ui[data-v-e519b314]{cursor:pointer;background:#ccc;border-radius:24px;transition:all .2s;position:absolute;inset:0}.switch-ui[data-v-e519b314]:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .2s;position:absolute;bottom:3px;left:3px}.switch input:checked+.switch-ui[data-v-e519b314]{background:var(--success)}.switch input:checked+.switch-ui[data-v-e519b314]:before{transform:translate(20px)}.log-filters[data-v-e519b314]{flex-wrap:wrap;gap:10px;margin-bottom:12px;display:flex}.log-filters input[data-v-e519b314],.log-filters select[data-v-e519b314]{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:8px 12px;font-size:14px}.log-list[data-v-e519b314]{gap:8px;margin:0;padding:0;list-style:none;display:grid}.log-list li[data-v-e519b314]{border-radius:var(--radius-sm);background:var(--surface-soft);grid-template-columns:72px 120px 100px 1fr;align-items:center;gap:8px;padding:10px 12px;font-size:13px;display:grid}.log-time[data-v-e519b314]{color:var(--text-secondary);font-size:12px}.log-sn[data-v-e519b314]{font-weight:600}@media (width<=900px){.log-list li[data-v-e519b314]{grid-template-columns:1fr}}.form-row[data-v-fc297a5c]{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.form-row input[data-v-fc297a5c]{border:1px solid var(--border);border-radius:8px;padding:8px 10px}.register-card[data-v-fc297a5c]{background:#fffbeb;border:1px solid #f59e0b}.register-hint[data-v-fc297a5c]{color:var(--muted);margin:0 0 12px;font-size:14px}.row-warn[data-v-fc297a5c]{background:#fff7ed}.save-error[data-v-fc297a5c]{color:#fff;background:#dc2626;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:14px;line-height:1.5}.save-success[data-v-fc297a5c]{color:#065f46;background:#d1fae5;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:14px;line-height:1.5}
