.brand-logo[data-v-d034c5b6]{z-index:1;filter:drop-shadow(0 2px 4px #03121e52);width:100%;height:100%;display:block;position:relative;overflow:visible}.icon[data-v-266ec8d1]{vertical-align:-.18em;flex:none;display:inline-block}@font-face{font-family:AegisQ Korean;src:url(/fonts/aegisq-korean.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}:root{--bg-0:#061426;--bg-1:#0a1d34;--bg-2:#102945;--bg-3:#173858;--line:#294b70;--line-soft:#1b3858;--txt-0:#f7faff;--txt-1:#c9d8eb;--txt-2:#7f96b3;--cyan:#72a0ff;--cyan-dim:#2f78ff29;--green:#2bd19b;--amber:#ffb454;--red:#ff6174;--blue:#22b8e8;--orange:#ff9d52;--hair:#ffffff0e;--hair-strong:#ffffff17;--shadow:0 18px 48px -22px #000000bf;--shadow-sm:0 10px 28px -18px #000000b8;--glow-cyan:0 0 0 1px var(--cyan), 0 0 20px #2f78ff4d;--font-d:"Manrope", "AegisQ Korean", "Noto Sans KR", "Malgun Gothic", "맑은 고딕", sans-serif;--font-b:"AegisQ Korean", "Noto Sans KR", "Malgun Gothic", "맑은 고딕", sans-serif;--font-m:"IBM Plex Mono", ui-monospace, "AegisQ Korean", "Noto Sans KR", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{color:var(--txt-0);font-family:var(--font-b);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:radial-gradient(100% 78% at 58% -20%, #2f78ff2e, transparent 58%), radial-gradient(72% 88% at 105% 8%, #22b8e817, transparent 56%), var(--bg-0);font-size:14px;line-height:1.45;overflow:hidden}#view:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#7ba3de07 1px,#0000 1px),linear-gradient(90deg,#7ba3de07 1px,#0000 1px);background-size:72px 72px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(120% 100% at 50% 0,#000 55%,#0000 100%);mask-image:radial-gradient(120% 100% at 50% 0,#000 55%,#0000 100%)}#view>*{z-index:1;position:relative}.app{grid-template:"side top"66px"side view"1fr/94px 1fr;min-width:1320px;height:100vh;display:grid}.sidebar{background:var(--bg-1);border-right:1px solid var(--line-soft);scrollbar-width:thin;scrollbar-color:var(--line-soft) transparent;flex-direction:column;grid-area:side;align-items:center;gap:2px;min-height:0;padding:8px 0;display:flex;overflow:hidden auto}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-thumb{background:var(--line-soft);border-radius:3px}.sidebar::-webkit-scrollbar-track{background:0 0}.sb-logo{background:radial-gradient(120% 85% at 30% 14%, #ffffff80, #fff0 55%), linear-gradient(165deg, #74e7ff 0%, var(--cyan) 40%, #1d6e90 100%);color:#042230;letter-spacing:.5px;cursor:pointer;border-radius:13px;flex:none;place-items:center;width:46px;height:46px;margin:2px 0 11px;font-size:21px;font-weight:800;transition:transform .16s,box-shadow .16s;display:grid;position:relative;box-shadow:0 0 0 1px #78ebff59,inset 0 1px 1px #ffffff8c,inset 0 -6px 12px #04222c59,0 6px 14px #0812268c,0 0 22px #57dffa47}.sb-logo:after{content:"";pointer-events:none;background:linear-gradient(#ffffff6b,#fff0);border-radius:12px 12px 9px 9px;position:absolute;inset:1px 1px 48%}.sb-logo span{z-index:1;text-shadow:0 1px #ffffff80,0 -1px 1px #031e2a59;position:relative}.sb-group{flex-direction:column;align-items:center;gap:2px;width:100%;display:flex}.sb-cap{font-family:var(--font-m);letter-spacing:.13em;color:var(--txt-2);text-transform:uppercase;padding:9px 0 4px;font-size:9px;font-weight:700}.sb-item{width:84px;min-height:58px;color:var(--txt-1);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:0;border-left:3px solid #0000;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:8px 3px;font-size:19px;transition:background .12s,color .12s;display:flex;position:relative}.sb-item .sb-ico{place-items:center;width:24px;height:24px;display:grid}.sb-item .sb-ico svg{width:22px;height:22px;display:block}.sb-item.on .sb-ico svg{stroke-width:2px}.sb-item .sb-lbl{font-family:var(--font-d);letter-spacing:0;text-align:center;white-space:normal;max-width:78px;color:inherit;font-size:11px;font-weight:600;line-height:1.15}.sb-item:hover{background:var(--bg-2);color:var(--txt-0)}.sb-item.on{background:var(--cyan-dim);color:var(--cyan);border-left-color:var(--cyan)}.sb-item .sb-badge{background:var(--red);color:#fff;min-width:16px;height:16px;font-family:var(--font-m);border-radius:7px;place-items:center;padding:0 3px;font-size:10px;display:grid;position:absolute;top:4px;right:10px}.sb-item .tip{display:none!important}.sb-item .tip-unused{background:var(--bg-3);border:1px solid var(--line);letter-spacing:.02em;color:var(--txt-0);white-space:nowrap;pointer-events:none;opacity:0;z-index:950;border-radius:4px;padding:3px 9px;font-size:12px;transition:opacity .12s;position:absolute;top:50%;left:62px;transform:translateY(-50%)}.sb-item:hover .tip{opacity:1}.sb-spacer{flex:1}.sb-foot{border-top:1px solid var(--line-soft);flex-direction:column;align-items:center;gap:2px;width:100%;padding-top:6px;display:flex}.topbar{grid-area:top;grid-template-columns:minmax(190px,220px) minmax(0,1fr) auto auto;gap:7px;padding:8px 8px 0;display:grid}.brand{background:linear-gradient(180deg, var(--bg-1), #0d1726);border:1px solid var(--line-soft);min-width:0;box-shadow:var(--shadow-sm), inset 0 1px 0 var(--hair);border-radius:8px;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding:0 15px;display:flex}.brand h1{font-family:var(--font-d);letter-spacing:.08em;white-space:nowrap;font-size:16px;font-weight:700;line-height:1.1;overflow:hidden}.brand small{font-family:var(--font-m);letter-spacing:.12em;color:var(--txt-2);text-transform:uppercase;font-size:10px;display:block}.global-status{background:linear-gradient(180deg, var(--bg-1), #0d1726);border:1px solid var(--line-soft);box-shadow:var(--shadow-sm), inset 0 1px 0 var(--hair);border-radius:8px;align-items:stretch;display:flex;overflow:hidden}.gs-item{border-right:1px solid var(--line-soft);flex:1 1 0;align-items:center;gap:7px;min-width:0;padding:0 9px;display:flex;overflow:hidden}.gs-item:last-child{border-right:0}.gs-item>div{min-width:0}.gs-site-item{flex:1.6 1 0}.gs-item:last-child{flex:.9 1 0}.gs-item .ico{background:linear-gradient(160deg, var(--cyan-dim), #4fd6ee0a);width:23px;height:23px;color:var(--cyan);border:1px solid #4fd6ee47;border-radius:6px;flex:none;place-items:center;font-size:13px;display:grid;box-shadow:inset 0 1px #ffffff14}.gs-item .lbl{font-family:var(--font-d);letter-spacing:.06em;color:var(--txt-2);text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;font-size:9px;font-weight:500;display:block;overflow:hidden}.gs-item .val{font-family:var(--font-m);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.gs-item .val.ok{color:var(--green)}.gs-item .val.warn{color:var(--amber)}.gs-item .val.bad{color:var(--red)}.gs-site{font-family:var(--font-d);letter-spacing:.01em;color:var(--cyan);background:var(--bg-0);border:1px solid var(--line-soft);text-overflow:ellipsis;cursor:pointer;border-radius:5px;flex:auto;min-width:0;max-width:100%;margin-top:1px;padding:2px 6px;font-size:13px;font-weight:700}.gs-site:focus{border-color:var(--cyan);outline:none}.gs-site option{background:var(--bg-1);color:var(--txt-0)}.gs-site-row{align-items:center;gap:4px;min-width:0;max-width:100%;margin-top:1px;display:flex}.gs-site-add{width:22px;height:22px;color:var(--green);background:var(--bg-0);border:1px solid var(--line-soft);cursor:pointer;border-radius:5px;flex:none;place-items:center;font-size:14px;font-weight:700;line-height:1;display:grid}.gs-site-add:hover{border-color:var(--green);background:#43d9a01f}.gs-item.gs-user{cursor:pointer;transition:background .14s}.gs-item.gs-user:hover,.gs-item.gs-user.open{background:#4fd6ee12}.gs-item.gs-user .gs-caret{color:var(--txt-2);vertical-align:middle;margin-left:5px;font-size:9px;transition:transform .16s,color .14s;display:inline-block}.gs-item.gs-user:hover .gs-caret{color:var(--cyan)}.gs-item.gs-user.open .gs-caret{color:var(--cyan);transform:rotate(180deg)}.user-menu-backdrop{z-index:900;position:fixed;inset:0}.user-menu{z-index:901;background:linear-gradient(180deg, var(--bg-1), #0c1626);border:1px solid var(--line);width:224px;box-shadow:0 26px 64px -14px #000000b8, inset 0 1px 0 var(--hair-strong);border-radius:11px;padding:7px;animation:.2s cubic-bezier(.34,1.3,.5,1) toastin;position:fixed}.user-menu .um-head{border-bottom:1px solid var(--line-soft);align-items:center;gap:11px;padding:9px 9px 12px;display:flex}.user-menu .um-ico{background:linear-gradient(160deg, var(--cyan-dim), #4fd6ee0a);width:38px;height:38px;color:var(--cyan);border:1px solid #4fd6ee47;border-radius:9px;flex:none;place-items:center;display:grid;box-shadow:inset 0 1px #ffffff14}.user-menu .um-meta{flex-direction:column;gap:3px;min-width:0;display:flex}.user-menu .um-id{font-family:var(--font-m);color:var(--txt-0);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.user-menu .um-role{font-family:var(--font-d);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);font-size:9.5px;font-weight:600}.user-menu .um-logout{width:100%;font-family:var(--font-d);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;color:var(--red);background:#ff4d4f12;border:1px solid #ff4d4f47;border-radius:8px;justify-content:center;align-items:center;gap:7px;margin-top:7px;padding:10px;font-size:12px;font-weight:600;transition:background .14s,border-color .14s,color .14s;display:flex}.user-menu .um-logout:hover{border-color:var(--red);color:#fff;background:#ff4d4f29}.lang-box{background:var(--bg-1);border:1px solid var(--line-soft);border-radius:6px;align-items:center;gap:4px;padding:0 8px;display:flex}.lang-btn{font-family:var(--font-m);letter-spacing:.03em;color:var(--txt-2);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:5px 9px;font-size:11px}.lang-btn.on{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim)}.lang-btn:hover{color:var(--cyan)}.ebuttons{background:linear-gradient(#2a1505,#1c0f06);border:1px solid #5a3210;border-radius:6px;flex-direction:column;gap:4px;padding:5px 8px;display:flex}.ebuttons .cap{letter-spacing:.08em;color:var(--orange);font-size:10.5px;font-weight:700}.ebuttons .row{flex:1;gap:6px;display:flex}.ebtn{border:1px solid var(--orange);color:var(--orange);font-family:var(--font-d);letter-spacing:.03em;cursor:pointer;background:#ff7a1a1f;border-radius:4px;flex:1;font-size:12px;font-weight:700}.ebtn:hover{background:#ff7a1a47}.ebtn.lock{border-color:var(--red);color:var(--red);background:#ef46511f}.ebtn.lock:hover{background:#ef465147}#view{grid-area:view;min-width:0;min-height:0;display:flex;position:relative}.vw{flex:1;min-width:0;min-height:0;display:none}.vw.show{display:flex}.vmain{flex:1;gap:10px;min-width:0;min-height:0;padding:10px;display:grid}.panel{background:linear-gradient(180deg, var(--bg-1), #0d1726);border:1px solid var(--line-soft);min-width:0;min-height:0;box-shadow:var(--shadow), inset 0 1px 0 var(--hair);border-radius:9px;flex-direction:column;display:flex}.panel-hd{border-bottom:1px solid var(--line-soft);background:linear-gradient(180deg, var(--bg-2), #141f33);font-family:var(--font-d);letter-spacing:.1em;color:var(--txt-0);text-transform:uppercase;box-shadow:inset 0 1px 0 var(--hair-strong);border-radius:9px 9px 0 0;flex:none;align-items:center;gap:9px;padding:11px 14px;font-size:12.5px;font-weight:600;display:flex;position:relative}.panel-hd:before{content:"";background:linear-gradient(var(--cyan), #2f9fb6);border-radius:2px;flex:none;width:3px;height:13px;box-shadow:0 0 8px #4fd6ee80}.panel-hd .dots{color:var(--txt-2);font-family:var(--font-m);letter-spacing:.5px;margin-left:auto;font-size:11px;font-weight:500}.btn{font-family:var(--font-d);letter-spacing:.05em;text-transform:uppercase;background:linear-gradient(180deg, #62ddf2, var(--cyan));color:#04222e;cursor:pointer;border:1px solid #0000;border-radius:6px;padding:7px 13px;font-size:12px;font-weight:600;transition:filter .14s,transform .14s,box-shadow .14s;box-shadow:inset 0 1px #ffffff52,0 2px 7px -2px #08122680}.btn:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:inset 0 1px #ffffff59,0 5px 12px -3px #08122699}.btn:active{transform:translateY(0)}.btn.ghost{border-color:var(--line);background:linear-gradient(180deg, var(--bg-2), #131f33);color:var(--txt-0);box-shadow:inset 0 1px 0 var(--hair)}.btn.ghost:hover{background:var(--bg-3);border-color:var(--line);filter:none}.btn.green{background:linear-gradient(180deg, #5ee4b0, var(--green));color:#032b1c}.btn.warn{background:linear-gradient(180deg, #ffca5c, var(--amber));color:#3a2800}.btn.danger{background:linear-gradient(180deg, #ff7886, var(--red));color:#fff}.btn:disabled{opacity:.35;cursor:not-allowed;box-shadow:none;transform:none}.btn.sm{border-radius:5px;padding:4px 9px;font-size:11px}.tabs{gap:6px;display:flex}.tab{font-family:var(--font-d);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line-soft);background:linear-gradient(180deg, var(--bg-2), #131f33);color:var(--txt-1);cursor:pointer;border-radius:5px;padding:4px 12px;font-size:11.5px;font-weight:600;transition:color .14s,border-color .14s,background .14s}.tab.on{background:var(--cyan-dim);color:var(--cyan);border-color:#4fd6ee80;box-shadow:inset 0 0 0 1px #4fd6ee1f}.tab:hover{color:var(--cyan);border-color:#4fd6ee66}.dot{border-radius:50%;flex:none;width:8px;height:8px}.dot.g{background:var(--green);box-shadow:0 0 7px #43d9a0b3}.dot.y{background:var(--amber);box-shadow:0 0 7px #f5b740a6}.dot.r{background:var(--red);box-shadow:0 0 7px #ff5d6eb3}@keyframes pulse{50%{opacity:.4}}.badge{font-family:var(--font-d);letter-spacing:.05em;text-transform:uppercase;border-radius:4px;padding:2px 6px;font-size:9.5px;font-weight:600;box-shadow:inset 0 1px #ffffff38}.badge.crit{background:linear-gradient(180deg, #ff7884, var(--red));color:#fff}.badge.warn{background:linear-gradient(180deg, #ffca5c, var(--amber));color:#3a2800}.badge.info{background:linear-gradient(180deg, #8bb6ff, var(--blue));color:#06224a}.badge.ok{background:linear-gradient(180deg, #5ee4b0, var(--green));color:#032b1c}.badge.line{border:1px solid var(--line);color:var(--txt-1);box-shadow:none;background:0 0}.field{flex-direction:column;gap:4px;display:flex}.field label{letter-spacing:.05em;color:var(--txt-2);text-transform:uppercase;font-size:10.5px;font-family:var(--font-d);font-weight:500}.field input,.field select,.field textarea{border:1px solid var(--line-soft);color:var(--txt-0);font-family:var(--font-m);background:#060b14a6;border-radius:6px;padding:7px 9px;font-size:12px;transition:border-color .14s,box-shadow .14s;box-shadow:inset 0 1px 2px #0000004d}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cyan);outline:none;box-shadow:inset 0 1px 2px #0000004d,0 0 0 3px #4fd6ee29}input[type=range]{accent-color:var(--cyan)}.switch{border:1px solid var(--line);cursor:pointer;background:#060b14b3;border-radius:9px;flex:none;width:36px;height:18px;transition:background .16s,border-color .16s;position:relative;box-shadow:inset 0 1px 2px #0006}.switch i{background:var(--txt-2);border-radius:50%;width:12px;height:12px;transition:all .18s cubic-bezier(.34,1.4,.5,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000080}.switch.on{background:var(--cyan-dim);border-color:#4fd6ee99}.switch.on i{background:var(--cyan);left:20px;box-shadow:0 0 8px #4fd6eeb3}.chk{border:1px solid var(--line);background:var(--bg-0);color:#0000;cursor:pointer;border-radius:3px;flex:none;place-items:center;width:15px;height:15px;font-size:11px;display:grid}.row-on .chk,.chk.on{background:var(--cyan-dim);border-color:var(--cyan);color:var(--cyan)}.tbl{border-collapse:collapse;width:100%;font-size:13px}.tbl th{text-align:left;font-family:var(--font-d);letter-spacing:.12em;text-transform:uppercase;color:var(--txt-2);border-bottom:1px solid var(--line);background:linear-gradient(#18253c80,#0000);padding:9px 12px;font-size:9.5px;font-weight:500}.tbl td{border-bottom:1px solid var(--line-soft);color:var(--txt-1);padding:9px 12px}.tbl td b{color:var(--txt-0);font-weight:600}.tbl tbody tr{transition:background .12s}.tbl tbody tr:hover td{background:#4fd6ee0d}.tbl .mono{font-family:var(--font-m);font-size:11px}.sec-h{letter-spacing:.06em;color:var(--txt-2);text-transform:uppercase;align-items:center;gap:6px;margin:12px 0 6px;font-size:11px;display:flex}.sec-h:after{content:"";background:var(--line-soft);flex:1;height:1px}.kv{grid-template-columns:1fr 1fr;gap:6px;display:grid}.kv .cell{background:linear-gradient(180deg, var(--bg-2), #131f33);border:1px solid var(--line-soft);box-shadow:inset 0 1px 0 var(--hair);border-radius:6px;padding:7px 9px}.kv .k{font-family:var(--font-d);letter-spacing:.1em;color:var(--txt-2);text-transform:uppercase;font-size:9.5px;font-weight:500;display:block}.kv .v{font-family:var(--font-m);margin-top:1px;font-size:13px}.kv .v.ok{color:var(--green)}.kv .v.cy{color:var(--cyan)}.kv .v.low{color:var(--amber)}.toasts{z-index:900;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;top:70px;left:50%;transform:translate(-50%)}.toast{background:linear-gradient(180deg, var(--bg-2), #111b2c);border:1px solid var(--green);color:var(--green);font-family:var(--font-m);box-shadow:var(--shadow), inset 0 1px 0 var(--hair);border-radius:7px;padding:7px 15px;font-size:12px;animation:.24s cubic-bezier(.34,1.3,.5,1) toastin}.toast.sent{border-color:var(--cyan);color:var(--cyan)}.toast.nack{border-color:var(--red);color:var(--red)}@keyframes toastin{0%{opacity:0;transform:translateY(-10px)}}::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:var(--line);background-clip:padding-box;border:2px solid #0000;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--line);filter:brightness(1.3);background-clip:padding-box}::-webkit-scrollbar-track{background:0 0}.vw-dashboard .vmain{grid-template:"kpi kpi kpi""units chart alerts"1fr/1fr 1fr 365px}.db-kpis{grid-area:kpi;grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.kpi{background:linear-gradient(180deg, var(--bg-1), #0d1726);box-shadow:var(--shadow), inset 0 1px 0 var(--hair);border:1px solid var(--line-soft);border-radius:9px;padding:13px 16px 14px;position:relative;overflow:hidden}.kpi:before{content:"";background:linear-gradient(90deg,#0000,#4fd6ee80,#0000);height:2px;position:absolute;top:0;left:0;right:0}.kpi .k{font-family:var(--font-d);letter-spacing:.13em;color:var(--txt-2);text-transform:uppercase;font-size:10px;font-weight:500}.kpi .v{font-family:var(--font-d);letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin-top:5px;font-size:28px;font-weight:700;line-height:1.05}.kpi .v.cy{color:var(--cyan);text-shadow:0 0 18px #4fd6ee59}.kpi .v.ok{color:var(--green)}.kpi .v.w{color:var(--amber)}.kpi .delta{font-family:var(--font-m);color:var(--txt-2);margin-top:3px;font-size:10.5px}.kpi .delta.up{color:var(--green)}.kpi .delta.dn{color:var(--red)}.db-units{grid-area:units}.db-chart{grid-area:chart}.db-alerts{grid-area:alerts}.db-units-scroll,.db-alerts-scroll{flex:1;padding:10px;overflow-y:auto}.unit-card{background:linear-gradient(180deg, var(--bg-2), #141f33);border:1px solid var(--line-soft);border-left:3px solid var(--txt-2);cursor:pointer;box-shadow:inset 0 1px 0 var(--hair);border-radius:7px;margin-bottom:8px;padding:10px 12px;transition:background .15s,border-color .15s,transform .15s,box-shadow .15s}.unit-card:hover{background:var(--bg-3);box-shadow:var(--shadow-sm), inset 0 1px 0 var(--hair);transform:translateY(-1px)}.unit-card.sel{border-color:var(--cyan);border-left-color:var(--cyan);background:linear-gradient(90deg, var(--cyan-dim), var(--bg-2) 72%);box-shadow:var(--glow-cyan)}.unit-card.dog{border-left-color:var(--green)}.unit-card.drone{border-left-color:var(--cyan)}.unit-card.offline{opacity:.55;border-left-color:var(--red)}.unit-top{align-items:center;gap:7px;display:flex}.unit-top .uico{font-size:16px}.unit-top .uname{font-size:14px;font-weight:700}.unit-top .ustate{font-family:var(--font-m);color:var(--txt-1);font-size:10.5px;display:block}.unit-top .dot{margin-left:auto}.unit-mini{font-family:var(--font-m);color:var(--txt-1);flex-wrap:wrap;gap:10px;margin-top:5px;font-size:11px;display:flex}.unit-mini b{color:var(--txt-0);font-weight:400}.unit-mini b.ok{color:var(--green)}.unit-mini b.low{color:var(--amber)}.battbar{background:var(--bg-0);border-radius:3px;width:100%;height:4px;margin-top:5px;overflow:hidden}.battbar i{background:linear-gradient(90deg, var(--green), #7ce8ad);height:100%;display:block}.battbar i.low{background:linear-gradient(90deg, var(--amber), #ffd36b)}.db-alert-row{background:linear-gradient(180deg, var(--bg-2), #141f33);border:1px solid var(--line-soft);border-left:3px solid var(--blue);cursor:pointer;box-shadow:inset 0 1px 0 var(--hair);border-radius:7px;grid-template-columns:auto 1fr auto;gap:3px 9px;margin-bottom:8px;padding:10px 12px;transition:background .14s,transform .14s,box-shadow .14s;display:grid}.db-alert-row:hover{background:var(--bg-3);box-shadow:var(--shadow-sm), inset 0 1px 0 var(--hair);transform:translateY(-1px)}.db-alert-row.crit{border-left-color:var(--red)}.db-alert-row.warn{border-left-color:var(--amber)}.db-alert-row .ttl{grid-column:2;font-size:13px;font-weight:700}.db-alert-row .meta{font-family:var(--font-m);color:var(--txt-2);grid-column:2;font-size:10.5px}.db-alert-row .ts{font-family:var(--font-m);color:var(--txt-2);grid-area:1/3/3;font-size:10.5px}.db-alert-row .sev{grid-row:1/3;align-self:center}.db-link{border-top:1px solid var(--line-soft);padding:8px 10px;display:flex}.db-link .btn{flex:1}.db-chart-body{flex-direction:column;flex:1;gap:8px;padding:10px 12px;display:flex;overflow-y:auto}.db-chart-body canvas{width:100%;height:140px;display:block}.net-row{font-family:var(--font-m);color:var(--txt-1);border-bottom:1px solid var(--line-soft);align-items:center;gap:8px;padding:4px 0;font-size:11px;display:flex}.net-row:last-child{border:0}.net-row .nv{margin-left:auto}.net-row .nv.ok{color:var(--green)}.net-row .nv.w{color:var(--amber)}.net-row .nv.b{color:var(--red)}.vw-livemap .vmain{grid-template-columns:265px 1fr 330px}.lm-left{grid-template-rows:auto 1fr;gap:8px;min-height:0;display:grid}.layers-body{flex-direction:column;gap:6px;padding:8px 10px 10px;display:flex}.layer-row{letter-spacing:.02em;color:var(--txt-1);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;font-size:13px;display:flex}.layer-row:hover{color:var(--txt-0)}.layer-row.on .chk{background:var(--cyan-dim);border-color:var(--cyan);color:var(--cyan)}.swatch{border-radius:2px;flex:none;width:10px;height:10px;margin-left:auto}.units-scroll{flex:1;padding:10px;overflow-y:auto}.map-panel{position:relative;overflow:hidden}#map{background:#0a0f17;flex:1;min-height:0}.leaflet-container{font-family:var(--font-d)}.leaflet-control-zoom a{background:var(--bg-1)!important;color:var(--txt-1)!important;border:1px solid var(--line-soft)!important}.leaflet-control-attribution{color:var(--txt-2)!important;background:#070b11b3!important;font-size:10.5px!important}.leaflet-attribution-flag{display:none!important}.leaflet-popup-content-wrapper{background:var(--bg-1);color:var(--txt-0);border:1px solid var(--line);border-radius:6px}.leaflet-popup-tip{background:var(--bg-1)}.umark{place-items:center;display:grid;position:relative}.umark .core{border:2.5px solid var(--cyan);color:#0d6e8c;background:#fff;border-radius:50%;place-items:center;width:26px;height:26px;font-size:14px;display:grid}.umark .core svg{display:block}.umark.dog .core{color:#127a44;border-color:#18a05c}.umark.cctv .core{border-color:var(--txt-2);width:20px;height:20px;box-shadow:none;color:#43577d;font-size:11px}.umark .tag{font-family:var(--font-m);color:#10203c;border:1px solid var(--line);white-space:nowrap;background:#ffffffeb;border-radius:3px;padding:1px 5px;font-size:10.5px;font-weight:700;position:absolute;top:-19px;left:50%;transform:translate(-50%)}.ms-wpdot{width:24px;height:24px;font-family:var(--font-m);color:var(--wc,#3fd0e8);border:2px solid var(--wc,#3fd0e8);box-shadow:0 0 0 1px #0a111e99, 0 0 10px color-mix(in srgb, var(--wc,#3fd0e8) 45%, transparent);background:#0a111ed1;border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:grid}.ms-wpdot.out{background:#ef46512e}.leaflet-tooltip.geo-label{color:var(--orange);font-family:var(--font-m);letter-spacing:.06em;box-shadow:none;background:#0a111ed9;border:1px solid #ff8f4380;padding:2px 7px;font-size:9.5px;font-weight:700}.leaflet-tooltip.geo-label:before{display:none}.hud-coord{z-index:800;-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);font-family:var(--font-m);color:var(--txt-1);box-shadow:var(--shadow-sm);background:#0a111eb8;border-radius:7px;padding:6px 10px;font-size:11px;position:absolute;bottom:12px;left:12px}.lm-right{grid-template-rows:auto auto 1fr;gap:8px;min-height:0;display:grid}.tele-body{padding:9px 11px}.tele-title{align-items:center;gap:8px;margin-bottom:8px;display:flex}.tele-title .tname{letter-spacing:.03em;font-size:18px;font-weight:700}.tele-title .tstate{font-family:var(--font-m);color:var(--green);border:1px solid var(--green);border-radius:3px;padding:1px 6px;font-size:10.5px}.cmd-body{flex-direction:column;gap:6px;padding:9px 11px;display:flex}.cmd-grid2{grid-template-columns:1fr 1fr;gap:6px;display:grid}.cmd-hint{font-family:var(--font-m);color:var(--txt-2);font-size:10.5px;line-height:1.5}.cmdlog{font-family:var(--font-m);flex-direction:column;flex:1;gap:4px;padding:7px 10px;font-size:11px;display:flex;overflow-y:auto}.log-row{color:var(--txt-1);gap:8px;display:flex}.log-row .lt{color:var(--txt-2);flex:none}.log-row .ack{color:var(--green)}.log-row .nack{color:var(--red)}.log-row .sent{color:var(--cyan)}.vw-video .vmain{grid-template-columns:260px 1fr 315px}.srctree{flex:1;padding:6px 8px;overflow-y:auto}.src-group>h3{letter-spacing:.06em;color:var(--txt-2);text-transform:uppercase;align-items:center;gap:6px;padding:8px 2px 6px;font-size:11px;display:flex}.src-group>h3:after{content:"";background:var(--line-soft);flex:1;height:1px}.src-item{background:linear-gradient(180deg, var(--bg-2), #141f33);border:1px solid var(--line-soft);cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:inset 0 1px 0 var(--hair);border-radius:6px;align-items:center;gap:9px;margin-bottom:6px;padding:9px 10px;font-size:13px;transition:background .14s,border-color .14s,transform .14s;display:flex}.src-item:hover{background:var(--bg-3);border-color:var(--line);transform:translate(2px)}.src-item .sic{text-align:center;width:16px;font-size:14px}.src-item .sname{font-weight:600}.src-item .stype{font-family:var(--font-m);color:var(--txt-2);font-size:10px;display:block}.src-item .sdot{border-radius:50%;flex:none;width:7px;height:7px;margin-left:auto}.src-item .sdot.g{background:var(--green);box-shadow:0 0 5px var(--green)}.src-item .sdot.r{background:var(--red)}.src-item.off{opacity:.5;cursor:not-allowed}.tree-hint{font-family:var(--font-m);color:var(--txt-2);border-top:1px solid var(--line-soft);flex:none;padding:8px 10px;font-size:10.5px;line-height:1.6}.tree-hint b{color:var(--cyan);font-weight:400}.lay-btn{font-family:var(--font-m);border:1px solid var(--line);color:var(--txt-1);cursor:pointer;background:0 0;border-radius:3px;padding:3px 9px;font-size:11px}.lay-btn.on{background:var(--cyan-dim);color:var(--cyan);border-color:var(--cyan)}.wall{flex:1;gap:6px;min-height:0;padding:8px;display:grid}.wall.g1{grid-template-rows:1fr;grid-template-columns:1fr}.wall.g4{grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(2,1fr)}.wall.g9{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr)}.tile{border:1px solid var(--line-soft);background:var(--bg-2);cursor:pointer;border-radius:5px;min-height:0;position:relative;overflow:hidden}.tile.sel{border-color:var(--cyan);box-shadow:0 0 0 1px var(--cyan), 0 0 14px #3fd0e840}.tile .feed{background:linear-gradient(#3fd0e80a,#0000004d),repeating-linear-gradient(0deg,#131c2b 0 2px,#0e1623 2px 4px);position:absolute;inset:0}.tile .feed.thermal{background:radial-gradient(at 60% 60%,#ff7a1a4d,#0000 55%),radial-gradient(at 30% 40%,#f5b32429,#0000 45%),linear-gradient(#1d1030,#0d0a1c)}.tile .feed.drone{background:linear-gradient(#3fd0e80f, #0006), repeating-conic-gradient(from 0deg at 50% 120%, #101a2c 0 6deg, #0c1422 6deg 12deg)}.tile .scan{display:none}.tile .scan-unused{background:linear-gradient(#0000 60%,#3fd0e80f);animation:4.5s linear infinite scan;position:absolute;inset:0}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.tile .t-top{font-family:var(--font-m);color:var(--txt-1);z-index:3;background:linear-gradient(#070b11d9,#0000);align-items:center;gap:6px;padding:5px 7px;font-size:10.5px;display:flex;position:absolute;top:0;left:0;right:0}.tile .t-name{color:var(--txt-0);letter-spacing:.03em;font-size:11px}.tile .t-badge{border:1px solid var(--cyan);color:var(--cyan);border-radius:2px;padding:0 4px;font-size:10px}.tile .t-badge.th{border-color:var(--orange);color:var(--orange)}.tile .rec{color:var(--red);align-items:center;gap:4px;margin-left:auto;display:flex}.tile .rec i{background:var(--red);border-radius:50%;width:6px;height:6px;animation:1.4s infinite pulse}.tile .t-bot{font-family:var(--font-m);color:var(--txt-2);z-index:3;background:linear-gradient(#0000,#070b11d9);gap:10px;padding:5px 7px;font-size:10.5px;display:flex;position:absolute;bottom:0;left:0;right:0}.tile .t-bot .ok{color:var(--green)}.tile .t-bot .ts{margin-left:auto}.bbox{border:1.5px solid var(--green);z-index:2;border-radius:2px;position:absolute}.bbox>span{font-family:var(--font-m);background:var(--green);color:#03240f;white-space:nowrap;padding:0 4px;font-size:10px;position:absolute;top:-14px;left:-1.5px}.bbox.veh{border-color:var(--cyan)}.bbox.veh>span{background:var(--cyan);color:#04222c}.bbox.walk{animation:9s ease-in-out infinite alternate walk}@keyframes walk{to{transform:translate(46px)}}.tile.empty .feed{background:var(--bg-0)}.tile .empty-msg{font-family:var(--font-m);color:var(--txt-2);text-align:center;z-index:2;place-items:center;font-size:11px;line-height:1.7;display:grid;position:absolute;inset:0}.tile.signal-lost .feed{filter:grayscale()brightness(.5)}.tile .lost-msg{font-family:var(--font-m);color:var(--red);letter-spacing:.08em;z-index:4;background:#070b118c;place-items:center;font-size:12px;animation:1.6s infinite pulse;display:grid;position:absolute;inset:0}.vf-right{grid-template-rows:auto auto 1fr;gap:8px;min-height:0;display:grid}.detail-body{padding:9px 11px}.d-name{letter-spacing:.02em;margin-bottom:2px;font-size:17px;font-weight:700}.d-sub{font-family:var(--font-m);color:var(--txt-2);margin-bottom:9px;font-size:10.5px}.ptz-body{grid-template-columns:auto 1fr;align-items:center;gap:14px;padding:10px 11px;display:grid}.ptz-pad{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:4px;width:108px;height:108px;display:grid}.ptz-btn{border:1px solid var(--line);background:var(--bg-2);color:var(--txt-1);cursor:pointer;border-radius:5px;font-size:14px}.ptz-btn:hover{background:var(--cyan-dim);color:var(--cyan);border-color:var(--cyan)}.ptz-side{flex-direction:column;gap:9px;min-width:0;display:flex}.zoom-row{letter-spacing:.04em;color:var(--txt-1);align-items:center;gap:8px;min-width:0;font-size:12px;display:flex}.zoom-row input{accent-color:var(--cyan);flex:1;min-width:0}.zoom-row .zv{font-family:var(--font-m);color:var(--cyan);text-align:right;width:34px;font-size:12px}.act-row{flex-wrap:wrap;gap:6px;display:flex}.act-row .btn{flex:calc(50% - 3px);min-width:0}.detlog{flex-direction:column;flex:1;gap:4px;padding:7px 10px;display:flex;overflow-y:auto}.det-row{font-family:var(--font-m);color:var(--txt-1);border-bottom:1px solid var(--line-soft);align-items:baseline;gap:8px;padding:4px 2px;font-size:11px;display:flex}.det-row:last-child{border:0}.det-row .dt{color:var(--txt-2);flex:none}.det-row .dk{border-radius:2px;flex:none;padding:0 4px;font-size:10px}.det-row .dk.p{background:var(--green);color:#03240f}.det-row .dk.v{background:var(--cyan);color:#04222c}.det-row .dk.l{background:var(--amber);color:#2a1c00}.vw-alerts .vmain{grid-template-columns:235px 1fr 360px}.filters-body{flex-direction:column;gap:12px;padding:8px 10px;display:flex;overflow-y:auto}.fgroup h4{letter-spacing:.06em;color:var(--txt-2);text-transform:uppercase;align-items:center;gap:6px;margin-bottom:6px;font-size:10.5px;display:flex}.fgroup h4:after{content:"";background:var(--line-soft);flex:1;height:1px}.frow{color:var(--txt-1);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:9px;padding:5px 0;font-size:13px;display:flex}.frow:hover{color:var(--txt-0)}.frow .cnt{font-family:var(--font-m);color:var(--txt-2);margin-left:auto;font-size:10.5px}.list-scroll{flex-direction:column;flex:1;gap:8px;padding:10px;display:flex;overflow-y:auto}.al-item{background:linear-gradient(180deg, var(--bg-2), #141f33);border:1px solid var(--line-soft);border-left:3px solid var(--blue);cursor:pointer;box-shadow:inset 0 1px 0 var(--hair);border-radius:7px;grid-template-columns:auto 1fr auto;gap:5px 12px;padding:11px 13px;transition:background .12s,transform .12s,box-shadow .12s;display:grid}.al-item:hover{background:var(--bg-3);box-shadow:var(--shadow-sm), inset 0 1px 0 var(--hair);transform:translateY(-1px)}.al-item.sel{border-color:var(--cyan);box-shadow:var(--glow-cyan)}.al-item.crit{border-left-color:var(--red)}.al-item.warn{border-left-color:var(--amber)}.al-item .ttl{grid-column:2;font-size:14px;font-weight:700}.al-item .meta{font-family:var(--font-m);color:var(--txt-2);grid-column:2;font-size:10.5px}.al-item .ts{font-family:var(--font-m);color:var(--txt-2);text-align:right;grid-area:1/3/3;font-size:10.5px}.al-item .sev{grid-row:1/3;align-self:center}.al-item .inc-tag{font-family:var(--font-m);color:var(--cyan);text-align:right;grid-area:2/3;font-size:10px}.stat-pill{font-family:var(--font-m);border:1px solid var(--txt-2);color:var(--txt-1);border-radius:8px;padding:1px 6px;font-size:10px}.stat-pill.s0{border-color:var(--red);color:var(--red)}.stat-pill.s1{border-color:var(--amber);color:var(--amber)}.stat-pill.s2{border-color:var(--cyan);color:var(--cyan)}.stat-pill.s3{border-color:var(--green);color:var(--green)}.det-scroll{flex:1;padding:10px 12px;overflow-y:auto}.det-title{margin-bottom:3px;font-size:17px;font-weight:700;line-height:1.25}.det-meta{font-family:var(--font-m);color:var(--txt-2);margin-bottom:10px;font-size:10.5px}.det-snap{border:1px solid var(--line);background:linear-gradient(#ef46510f,#0000),repeating-linear-gradient(0deg,#16202f 0 2px,#101a28 2px 4px);border-radius:5px;height:132px;margin-bottom:10px;position:relative;overflow:hidden}.stepper{align-items:center;margin:4px 0 12px;display:flex}.step{text-align:center;flex:1;position:relative}.step .bub{z-index:1;border:1.5px solid var(--line);background:var(--bg-2);width:22px;height:22px;font-family:var(--font-m);color:var(--txt-2);border-radius:50%;place-items:center;margin:0 auto 4px;font-size:11px;display:grid;position:relative}.step .slbl{letter-spacing:.03em;color:var(--txt-2);text-transform:uppercase;font-size:10.5px}.step:before{content:"";background:var(--line);width:100%;height:1.5px;position:absolute;top:11px;left:-50%}.step:first-child:before{display:none}.step.done .bub{border-color:var(--green);color:var(--green)}.step.done .slbl{color:var(--green)}.step.done:before{background:var(--green)}.step.cur .bub{border-color:var(--cyan);color:var(--cyan);box-shadow:0 0 8px #3fd0e866}.step.cur .slbl{color:var(--cyan)}.det-actions{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.note-box textarea{resize:vertical;width:100%;min-height:54px}.audit{flex-direction:column;gap:4px;display:flex}.audit .arow{font-family:var(--font-m);color:var(--txt-1);border-bottom:1px solid var(--line-soft);gap:8px;padding:4px 0;font-size:11px;display:flex}.audit .arow:last-child{border:0}.audit .at{color:var(--txt-2);flex:none}.audit .au{color:var(--cyan);flex:none}.vw-missions .vmain{grid-template-columns:240px 1fr 335px}.lib-scroll{flex:1;padding:8px;overflow-y:auto}.mcard{background:linear-gradient(180deg, var(--bg-2), #141f33);border:1px solid var(--line-soft);border-left:3px solid var(--green);cursor:pointer;box-shadow:inset 0 1px 0 var(--hair);border-radius:7px;margin-bottom:8px;padding:11px 13px;transition:background .14s,transform .14s,box-shadow .14s}.mcard:hover{background:var(--bg-3);box-shadow:var(--shadow-sm), inset 0 1px 0 var(--hair);transform:translateY(-1px)}.mcard.sel{border-color:var(--cyan);box-shadow:var(--glow-cyan)}.mcard.air{border-left-color:var(--cyan)}.mcard .mname{font-size:14px;font-weight:700}.mcard .mmeta{font-family:var(--font-m);color:var(--txt-2);margin-top:2px;font-size:10.5px}.ed-stage{cursor:crosshair;background:radial-gradient(at 50% 40%,#0e1828 0%,#080d16 75%);flex:1;min-height:0;position:relative}.ed-stage>svg{width:100%;height:100%;display:block}.ed-hint{-webkit-backdrop-filter:blur(8px);border:1px solid var(--line);font-family:var(--font-m);color:var(--txt-1);pointer-events:none;box-shadow:var(--shadow-sm);background:#0a111eb8;border-radius:7px;padding:7px 11px;font-size:10.5px;line-height:1.6;position:absolute;top:10px;left:10px}.ed-hint b{color:var(--cyan);font-weight:400}.alt-strip{border-top:1px solid var(--line-soft);flex-direction:column;flex:none;height:104px;display:none}.alt-strip.show{display:flex}.alt-strip .as-hd{letter-spacing:.05em;color:var(--txt-2);text-transform:uppercase;padding:4px 10px;font-size:10.5px}.alt-strip svg{flex:1}.sched{flex:1;padding:10px;display:none;overflow:auto}.sched.show{display:block}.cal{border:1px solid var(--line-soft);font-family:var(--font-m);border-radius:6px;grid-template-columns:64px repeat(7,1fr);font-size:11px;display:grid;overflow:hidden}.cal .ch{background:var(--bg-2);text-align:center;color:var(--txt-1);border-bottom:1px solid var(--line-soft);font-family:var(--font-d);letter-spacing:.04em;padding:6px;font-weight:700}.cal .ct{background:var(--bg-1);color:var(--txt-2);border-top:1px solid var(--line-soft);padding:6px}.cal .cc{background:var(--bg-0);border-top:1px solid var(--line-soft);border-left:1px solid var(--line-soft);min-height:34px;padding:3px}.cal .ev{cursor:pointer;border-radius:3px;margin-bottom:2px;padding:2px 5px;font-size:10px}.cal .ev.g{color:var(--green);background:#3ddc8426;border:1px solid #3ddc8466}.cal .ev.c{background:var(--cyan-dim);color:var(--cyan);border:1px solid #3fd0e866}.ms-right{grid-template-rows:1fr auto;gap:8px;min-height:0;display:grid}.wp-scroll{flex:1;padding:8px;overflow-y:auto}.wp-row{background:var(--bg-2);border:1px solid var(--line-soft);border-radius:5px;grid-template-columns:28px 1fr auto;gap:5px 9px;margin-bottom:8px;padding:10px 11px;display:grid}.wp-row .num{background:var(--cyan-dim);width:22px;height:22px;color:var(--cyan);font-family:var(--font-m);border:1px solid var(--cyan);border-radius:50%;grid-row:1/3;align-self:center;place-items:center;font-size:11px;display:grid}.wp-row .coord{font-family:var(--font-m);color:var(--txt-1);font-size:11px}.wp-row .del{color:var(--txt-2);cursor:pointer;background:0 0;border:0;grid-row:1/3;align-self:center;font-size:14px}.wp-row .del:hover{color:var(--red)}.wp-row select{background:var(--bg-0);border:1px solid var(--line-soft);color:var(--txt-0);font-family:var(--font-m);border-radius:3px;padding:3px 5px;font-size:11px}.wp-alt{background:var(--bg-0);border:1px solid var(--line-soft);width:44px;color:var(--cyan);font-family:var(--font-m);border-radius:3px;padding:1px 3px;font-size:11px}.empty-wp{color:var(--txt-2);font-family:var(--font-m);text-align:center;padding:24px 10px;font-size:11px;line-height:1.8}.valid-body{flex-direction:column;gap:6px;padding:9px 11px;display:flex}.vrow{color:var(--txt-1);align-items:center;gap:8px;font-size:13px;display:flex}.vrow .vs{font-family:var(--font-m);margin-left:auto;font-size:11px}.vrow .vs.p{color:var(--green)}.vrow .vs.f{color:var(--red)}.vrow .vs.n{color:var(--txt-2)}.valid-actions{gap:6px;margin-top:4px;display:flex}.valid-actions .btn{flex:1}.vw-droneops .vmain{grid-template-columns:285px 1fr 320px}.do-left,.do-right{grid-template-rows:auto 1fr;gap:8px;min-height:0;display:grid}.do-center{grid-template-rows:1fr 185px;gap:8px;min-height:0;display:grid}.pf-body{flex-direction:column;gap:8px;padding:10px 12px;display:flex}.gate{background:linear-gradient(180deg, var(--bg-2), #141f33);border:1px solid var(--line-soft);border-left:3px solid var(--red);box-shadow:inset 0 1px 0 var(--hair);border-radius:7px;align-items:center;gap:10px;padding:11px 12px;transition:border-color .2s;display:flex}.gate.ok{box-shadow:inset 0 1px 0 var(--hair), 0 0 14px -4px #43d9a066}.gate .glbl{letter-spacing:.02em;color:var(--txt-1);font-size:13px}.gate .gsub{font-family:var(--font-m);color:var(--txt-2);font-size:10px;display:block}.gate .gst{font-family:var(--font-m);border:1px solid var(--red);color:var(--red);border-radius:3px;margin-left:auto;padding:2px 7px;font-size:11px}.gate.ok{border-left-color:var(--green)}.gate.ok .gst{border-color:var(--green);color:var(--green)}.armrow{gap:8px;margin-top:2px;display:flex}.armbtn{font-family:var(--font-d);letter-spacing:.05em;border:1.5px solid var(--green);color:var(--green);cursor:pointer;background:#3ddc841a;border-radius:5px;flex:1;padding:12px 8px;font-size:14px;font-weight:700}.armbtn:hover{background:#3ddc8440}.armbtn:disabled{opacity:.3;cursor:not-allowed}.armbtn.armed{border-color:var(--red);color:var(--red);background:#ef46511f;animation:1.6s infinite pulse}.hb-row{font-family:var(--font-m);color:var(--txt-1);background:var(--bg-2);border:1px solid var(--line-soft);border-radius:5px;align-items:center;gap:9px;padding:7px 10px;font-size:11px;display:flex}.hb-led{background:var(--green);border-radius:50%;width:10px;height:10px;animation:.48s infinite hb}@keyframes hb{50%{opacity:.25}}.hb-row .hz{color:var(--green);margin-left:auto}.hb-row.bad .hb-led{background:var(--red)}.hb-row.bad .hz{color:var(--red)}.rule-note{font-family:var(--font-m);color:var(--txt-2);border-top:1px solid var(--line-soft);padding-top:8px;font-size:10.5px;line-height:1.7}.rule-note b{color:var(--amber);font-weight:400}.fs-body{flex-direction:column;flex:1;gap:8px;padding:9px 11px;display:flex;overflow-y:auto}.fs-active{background:var(--bg-2);border:1px solid var(--line-soft);text-align:center;border-radius:5px;padding:8px 10px}.fs-active .fa-lbl{letter-spacing:.06em;color:var(--txt-2);text-transform:uppercase;font-size:10.5px}.fs-active .fa-val{font-family:var(--font-m);color:var(--green);margin-top:2px;font-size:17px}.fs-active.crit .fa-val{color:var(--red);animation:1.2s infinite pulse}.ll-timer{font-family:var(--font-m);color:var(--txt-1);align-items:center;gap:8px;font-size:11px;display:flex}.ll-bar{background:var(--bg-0);border-radius:3px;flex:1;height:5px;overflow:hidden}.ll-bar i{background:var(--green);width:0%;height:100%;transition:width .2s linear;display:block}.ll-bar i.b{background:var(--red)}.fs-h{letter-spacing:.06em;color:var(--txt-2);text-transform:uppercase;align-items:center;gap:6px;font-size:10.5px;display:flex}.fs-h:after{content:"";background:var(--line-soft);flex:1;height:1px}.fs-hist .arow{font-family:var(--font-m);color:var(--txt-1);border-bottom:1px solid var(--line-soft);gap:8px;padding:4px 0;font-size:10.5px;display:flex}.fs-hist .arow:last-child{border:0}.fs-hist .at{color:var(--txt-2);flex:none}.icd-scroll{flex:1;padding:10px 12px;overflow-y:auto}.cat{margin-bottom:12px}.cat-h{letter-spacing:.06em;color:var(--txt-2);text-transform:uppercase;align-items:center;gap:8px;margin-bottom:6px;font-size:11px;display:flex}.cat-h .cbadge{font-family:var(--font-m);background:var(--cyan-dim);width:18px;height:18px;color:var(--cyan);border:1px solid var(--cyan);border-radius:3px;place-items:center;font-size:10.5px;display:grid}.cat-h:after{content:"";background:var(--line-soft);flex:1;height:1px}.cmd-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:6px;display:grid}.icmd{font-family:var(--font-d);letter-spacing:.04em;border:1px solid var(--line-soft);background:linear-gradient(180deg, var(--bg-2), #141f33);color:var(--txt-1);cursor:pointer;text-align:center;box-shadow:inset 0 1px 0 var(--hair);border-radius:6px;padding:11px 8px;font-size:11px;font-weight:500;transition:all .12s}.icmd:hover{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim);transform:translateY(-1px)}.icmd.danger:hover{border-color:var(--red);color:var(--red);background:#ff5d6e1f}.acklog{font-family:var(--font-m);flex-direction:column;flex:1;gap:3px;padding:7px 10px;font-size:11px;display:flex;overflow-y:auto}.lrow{color:var(--txt-1);gap:8px;display:flex}.lrow .lt{color:var(--txt-2);flex:none}.lrow .ack{color:var(--green);flex:none}.lrow .nack{color:var(--red);flex:none}.lrow .sent{color:var(--cyan);flex:none}.lrow .rsn{color:var(--amber)}.pfd-tapes{grid-template-columns:repeat(4,1fr);gap:6px;padding:10px;display:grid}.tape{background:linear-gradient(180deg, var(--bg-2), #131f33);border:1px solid var(--line-soft);text-align:center;box-shadow:inset 0 1px 0 var(--hair);border-radius:6px;padding:7px 4px}.tape .k{font-family:var(--font-d);letter-spacing:.1em;color:var(--txt-2);text-transform:uppercase;font-size:9.5px;font-weight:500;display:block}.tape .v{font-family:var(--font-m);color:var(--cyan);font-variant-numeric:tabular-nums;font-size:16px}.tape .v.ok{color:var(--green)}.tel-body{flex:1;padding:8px 11px;overflow-y:auto}.trow{font-family:var(--font-m);color:var(--txt-1);border-bottom:1px solid var(--line-soft);gap:8px;padding:7px 0;font-size:11px;display:flex}.trow:last-child{border:0}.trow .tk{color:var(--txt-2);flex:none;width:110px}.trow .tv{margin-left:auto}.trow .tv.ok{color:var(--green)}.trow .tv.cy{color:var(--cyan)}.vw-fleet .vmain{grid-template-columns:1fr 385px}.fleet-scroll{flex:1;padding:10px;overflow-y:auto}.cards{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;display:grid}.fcard{background:linear-gradient(180deg, var(--bg-2), #141f33);border:1px solid var(--line-soft);border-left:3px solid var(--txt-2);cursor:pointer;box-shadow:inset 0 1px 0 var(--hair);border-radius:8px;padding:13px 15px;transition:background .14s,transform .14s,box-shadow .14s,border-color .14s}.fcard:hover{background:var(--bg-3);box-shadow:var(--shadow-sm), inset 0 1px 0 var(--hair);transform:translateY(-2px)}.fcard.sel{border-color:var(--cyan);box-shadow:var(--glow-cyan)}.fcard.ok{border-left-color:var(--green)}.fcard.warn{border-left-color:var(--amber)}.fcard.down{border-left-color:var(--red);opacity:.75}.fc-top{align-items:center;gap:8px;margin-bottom:7px;display:flex}.fc-top .fico{font-size:18px}.fc-top .fname{font-size:15px;font-weight:700}.fc-top .fmodel{font-family:var(--font-m);color:var(--txt-2);font-size:10px;display:block}.fc-top .dot{margin-left:auto}.fc-grid{font-family:var(--font-m);color:var(--txt-1);grid-template-columns:1fr 1fr;gap:3px 10px;font-size:11px;display:grid}.fc-grid b{color:var(--txt-0);font-weight:400}.fc-grid b.ok{color:var(--green)}.fc-grid b.bad{color:var(--red)}.diag{flex-direction:column;gap:7px;display:flex}.diag-row{grid-template-columns:88px 1fr 38px;align-items:center;gap:8px;display:grid}.diag-row .dl{color:var(--txt-1);font-size:12px}.diag-row .bar{background:var(--bg-0);border-radius:3px;height:5px;overflow:hidden}.diag-row .bar i{background:var(--green);border-radius:3px;height:100%;display:block}.diag-row .bar i.b{background:var(--red)}.diag-row .dv{font-family:var(--font-m);color:var(--txt-1);text-align:right;font-size:11px}.mlog .arow{font-family:var(--font-m);color:var(--txt-1);border-bottom:1px solid var(--line-soft);gap:8px;padding:5px 0;font-size:11px;display:flex}.mlog .arow:last-child{border:0}.mlog .at{color:var(--txt-2);flex:none}.d-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.pads{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;display:grid}.pad{background:linear-gradient(180deg, var(--bg-2), #141f33);border:1px solid var(--line-soft);box-shadow:inset 0 1px 0 var(--hair);border-radius:8px;flex-direction:column;gap:8px;padding:12px;display:flex}.pad .p-top{align-items:center;gap:8px;font-weight:700;display:flex}.pad .ring{width:60px;height:60px;font-family:var(--font-m);background:conic-gradient(var(--green) calc(var(--p)*1%), var(--bg-0) 0);border-radius:50%;place-items:center;margin:0 auto;font-size:14px;display:grid;position:relative}.pad .ring:before{content:"";background:var(--bg-2);border-radius:50%;position:absolute;inset:6px}.pad .ring span{position:relative}.pad .p-meta{font-family:var(--font-m);color:var(--txt-1);text-align:center;font-size:11px}.vw-reports .vmain{grid-template-columns:1fr 325px}.rep-scroll{flex:1;padding:12px;overflow-y:auto}.rp-kpis{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px;display:grid}.charts{grid-template-columns:1fr 1fr;gap:8px;display:grid}.chart-card{background:linear-gradient(180deg, var(--bg-1), #0d1726);border:1px solid var(--line-soft);box-shadow:var(--shadow-sm), inset 0 1px 0 var(--hair);border-radius:9px;padding:11px 13px}.chart-card.wide{grid-column:1/-1}.cc-h{font-family:var(--font-d);letter-spacing:.1em;color:var(--txt-1);text-transform:uppercase;align-items:center;margin-bottom:8px;font-size:11px;font-weight:600;display:flex}.cc-h .sub{font-family:var(--font-m);color:var(--txt-2);margin-left:auto;font-size:10.5px;font-weight:400}.chart-card canvas{width:100%;height:150px;display:block}.hm{font-family:var(--font-m);color:var(--txt-2);grid-template-columns:52px repeat(24,1fr);gap:2px;font-size:10px;display:grid}.hm .hl{align-items:center;display:flex}.hm .hc{aspect-ratio:1.4;background:var(--bg-2);cursor:pointer;border-radius:2px}.hm .hc:hover{outline:1px solid var(--cyan)}.hm .hh{text-align:center}.hm-legend{font-family:var(--font-m);color:var(--txt-2);align-items:center;gap:4px;margin-top:8px;font-size:10px;display:flex}.hm-legend i{border-radius:2px;width:14px;height:8px;display:inline-block}.rb-body{flex-direction:column;gap:10px;padding:10px 12px;display:flex;overflow-y:auto}.rb-body .field select,.rb-body .field input{width:100%}.rb-row2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.rb-actions{gap:6px;display:flex}.rb-actions .btn{flex:1}.tpl-row{background:linear-gradient(180deg, var(--bg-2), #141f33);border:1px solid var(--line-soft);color:var(--txt-1);cursor:pointer;box-shadow:inset 0 1px 0 var(--hair);border-radius:6px;align-items:center;gap:8px;padding:10px 11px;font-size:13px;transition:background .14s,transform .14s,border-color .14s;display:flex}.tpl-row:hover{background:var(--bg-3);transform:translate(2px)}.tpl-row.sel{border-color:var(--cyan);box-shadow:var(--glow-cyan)}.tpl-row .badge{margin-left:auto}.sched-row{color:var(--txt-1);border-bottom:1px solid var(--line-soft);align-items:center;gap:8px;padding:6px 0;font-size:13px;display:flex}.sched-row:last-child{border:0}.sched-row .sm-meta{font-family:var(--font-m);color:var(--txt-2);font-size:10px;display:block}.sched-row .switch{margin-left:auto}.vw-settings .vmain{grid-template-columns:230px 1fr}.snav{padding:8px}.snav-item{font-family:var(--font-d);letter-spacing:.02em;color:var(--txt-1);cursor:pointer;border-left:3px solid #0000;border-radius:7px;align-items:center;gap:10px;margin-bottom:3px;padding:12px 13px;font-size:13.5px;font-weight:500;transition:background .14s,color .14s;display:flex}.snav-item:hover{background:var(--bg-2);color:var(--txt-0)}.snav-item.on{background:linear-gradient(90deg, var(--cyan-dim), transparent 80%);border-left-color:var(--cyan);color:var(--cyan);box-shadow:inset 0 1px 0 var(--hair)}.snav-item .sic{text-align:center;width:18px}.set-scroll{flex:1;padding:14px 16px;overflow-y:auto}.sec{display:none}.sec.show{display:block}.sec-title{letter-spacing:.02em;margin-bottom:2px;font-size:18px;font-weight:700}.sec-desc{font-family:var(--font-m);color:var(--txt-2);margin-bottom:14px;font-size:11px}.card{background:linear-gradient(180deg, var(--bg-1), #0d1726);border:1px solid var(--line-soft);box-shadow:var(--shadow-sm), inset 0 1px 0 var(--hair);border-radius:9px;margin-bottom:12px;padding:15px 17px}.card-h{font-family:var(--font-d);letter-spacing:.1em;color:var(--txt-1);text-transform:uppercase;align-items:center;margin-bottom:12px;font-size:11px;font-weight:600;display:flex}.card-h .btn{margin-left:auto}.thr-row{grid-template-columns:130px 1fr 48px;align-items:center;gap:12px;padding:6px 0;display:grid}.thr-row .tl{color:var(--txt-1);font-size:13px}.thr-row input{width:100%}.thr-row .tv{font-family:var(--font-m);color:var(--cyan);text-align:right;font-size:12px}.tgl-row{border-bottom:1px solid var(--line-soft);color:var(--txt-1);align-items:center;gap:10px;padding:11px 0;font-size:13px;display:flex}.tgl-row:last-child{border:0}.tgl-row .tm{font-family:var(--font-m);color:var(--txt-2);font-size:10px;display:block}.tgl-row .switch{margin-left:auto}.role{font-family:var(--font-m);border:1px solid;border-radius:3px;padding:1px 6px;font-size:10.5px}.role.admin{border-color:var(--red);color:var(--red)}.role.op{border-color:var(--cyan);color:var(--cyan)}.role.view{border-color:var(--txt-2);color:var(--txt-1)}.role.cust{border-color:var(--green);color:var(--green)}.form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-grid .field input,.form-grid .field select{width:100%}.save-row{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.mask-box{border:1px solid var(--line);background:repeating-linear-gradient(0deg,#131c2b 0 2px,#0e1623 2px 4px);border-radius:5px;height:150px;margin-bottom:8px;position:relative;overflow:hidden}.mask-zone{border:1.5px dashed var(--amber);font-family:var(--font-m);color:var(--amber);text-align:center;background:#f5b3241f;place-items:center;font-size:10.5px;display:grid;position:absolute}.modal-bg{z-index:880;background:#04070cb8;place-items:center;display:none;position:fixed;inset:0}.modal-bg.show{display:grid}.modal{background:linear-gradient(180deg, var(--bg-1), #0c1626);border:1px solid var(--line);width:460px;max-width:92vw;box-shadow:0 28px 70px -12px #000000b3, inset 0 1px 0 var(--hair-strong);border-radius:11px;animation:.26s cubic-bezier(.34,1.3,.5,1) toastin}.modal .m-hd{border-bottom:1px solid var(--line-soft);font-family:var(--font-d);letter-spacing:.08em;text-transform:uppercase;align-items:center;padding:13px 16px;font-size:14px;font-weight:600;display:flex}.modal .m-hd .x{color:var(--txt-2);cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:16px}.modal .m-hd .x:hover{color:var(--red)}.modal .m-sub{font-family:var(--font-m);color:var(--txt-2);padding:8px 16px 0;font-size:10.5px;line-height:1.6}.modal .m-body{grid-template-columns:1fr 1fr;gap:10px;padding:12px 16px;display:grid}.modal .m-body .full{grid-column:1/-1}.modal .m-ft{border-top:1px solid var(--line-soft);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.app-dialog-bg{z-index:940}.modal.app-dialog{width:400px}.modal.app-dialog .m-body{grid-template-columns:1fr}.modal.app-dialog .dlg-msg{color:var(--txt-1);font-size:13px;line-height:1.55}.modal.app-dialog .field input{width:100%;transition:border-color .12s,box-shadow .12s}.modal.app-dialog .field input:focus{border-color:var(--cyan);box-shadow:0 0 0 2px #4fd6ee26}.modal.app-dialog .dlg-choices{flex-direction:column;gap:8px;margin-top:6px;display:flex}.modal.app-dialog .dlg-choices .btn{justify-content:center;width:100%}.modal.uv-popup{border:1px solid var(--red,#ff6b7a)}.modal.uv-popup .uv-hd{color:var(--red,#ff6b7a)}.modal.uv-popup .uv-plate{letter-spacing:2px;text-align:center;color:var(--amber);padding:10px 0 6px;font-size:26px;font-weight:800}.modal.uv-popup .uv-meta{color:var(--txt-2,#8fa3c8);font-size:12px}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.val.bad{animation:1.4s infinite pulse;color:var(--red)!important}.login-bg{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:300;background:#0a1020eb;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-box{background:var(--bg-1);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:10px;width:360px;padding:28px 26px 20px;display:flex;box-shadow:0 18px 60px #0000008c}.login-box .lg-logo{background:linear-gradient(135deg,var(--cyan-dim),#57dffa0d);border:1px solid var(--cyan);width:54px;height:54px;color:var(--cyan);font-family:var(--font-d);border-radius:12px;justify-content:center;align-items:center;margin:0 auto;font-size:30px;font-weight:700;display:flex}.login-box .lg-title{text-align:center;font-family:var(--font-d);letter-spacing:.12em;color:var(--txt-0);font-size:20px;font-weight:700}.login-box .lg-title span{color:var(--cyan);letter-spacing:.22em;margin-top:2px;font-size:11px;display:block}.login-box .lg-sub{text-align:center;color:var(--txt-2);margin-bottom:6px;font-size:11px}.login-box .lg-err{min-height:14px;font-family:var(--font-m);color:var(--red);text-align:center;font-size:10px}.login-box .lg-btn{justify-content:center;width:100%;padding:10px 0;font-size:13px}.login-box .lg-hint{text-align:center;font-family:var(--font-m);color:var(--txt-2);margin-top:8px;font-size:9px;line-height:1.7}.db-kpis .kpi .v{display:inline-block}.db-kpis .kpi .delta{margin-top:0;margin-left:8px;display:inline-block}.db-kpis .kpi .k{display:block}.lm-right{grid-template-rows:auto auto auto 1fr}.tele-strip{gap:5px;display:flex}.tele-strip .cell{background:var(--bg-2);border:1px solid var(--line-soft);border-radius:4px;flex:1 1 0;min-width:0;padding:5px 6px}.tele-strip .k{letter-spacing:.04em;color:var(--txt-2);text-transform:uppercase;white-space:nowrap;font-size:9px;display:block;overflow:hidden}.tele-strip .v{font-family:var(--font-m);white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.tele-strip .v.ok{color:var(--green)}.tele-strip .v.cy{color:var(--cyan)}.tele-strip .v.low{color:var(--amber)}.lm-video{height:168px;margin:8px;position:relative}.lm-video .tile{position:absolute;inset:0}#lmHb{text-align:right;font-variant-numeric:tabular-nums;min-width:76px}.tele-strip .v,.kv .v,.pfd-tapes .tape .v,.unit-mini b,.gs-item .val,.hb-row .hz,.trow .tv,.fs-active .fa-val,.ll-timer,.acklog .lrow .lt,.cmdlog .log-row .lt{font-variant-numeric:tabular-nums}.hb-row .hz{text-align:right;min-width:52px}#alStats b,.frow .cnt,.al-item .ts,.sb-badge,.audit .at,.det-meta{font-variant-numeric:tabular-nums}.app{grid-template-rows:78px 1fr;grid-template-columns:104px 1fr}.sidebar{background:radial-gradient(100% 28% at 50% 0,#2f78ff33,#0000 78%),linear-gradient(#0a1d34fa,#061426fc);border-right-color:#6891c738;gap:3px;padding:12px 6px;position:relative;box-shadow:18px 0 60px -38px #000000e6}.sidebar:after{content:"";pointer-events:none;background:linear-gradient(145deg,#7aa7ff14,#0000 58%);height:180px;position:absolute;inset:0 0 auto}.sb-logo{width:56px;height:56px;color:inherit;background:#07182bad;border:0;border-radius:18px;margin:0 0 12px;padding:2px;box-shadow:0 16px 34px -16px #000000d9,0 0 0 1px #7aa7ff38}.sb-logo:after{display:none}.sb-logo:hover{transform:translateY(-2px)scale(1.02);box-shadow:0 18px 36px -15px #000000db,0 0 0 1px #7aa7ff6b,0 0 26px #2f78ff33}.sb-cap{font-family:var(--font-d);letter-spacing:.18em;color:#879fbd;padding:10px 0 5px;font-size:8px;font-weight:700}.sb-item{color:#91a8c4;border:1px solid #0000;border-radius:14px;gap:5px;width:90px;min-height:56px;padding:7px 4px;transition:color .2s,background .2s,border-color .2s,transform .2s}.sb-item .sb-lbl{font-size:10.5px;font-weight:650}.sb-item:hover{color:#eef5ff;background:#ffffff0b;border-color:#7ba3de1a;transform:translateY(-1px)}.sb-item.on{color:#fff;background:linear-gradient(145deg,#2f78ff47,#22b8e817);border-color:#5f8fff61;box-shadow:inset 0 1px #ffffff1a,0 12px 28px -20px #2f78ffe6}.sb-item.on:before{content:"";background:#6fa0ff;border-radius:0 4px 4px 0;width:3px;position:absolute;top:15px;bottom:15px;left:-7px;box-shadow:0 0 12px #2f78ffb3}.sb-foot{border-top-color:#6891c729;padding-top:9px}.topbar{grid-template-columns:minmax(210px,238px) minmax(0,1fr) auto auto;gap:10px;padding:12px 12px 0}.brand,.global-status,.lang-box,.ebuttons{-webkit-backdrop-filter:blur(18px);background:#0a1d34d1;border-color:#6891c738;border-radius:15px;box-shadow:0 16px 38px -28px #000000e6,inset 0 1px #ffffff0e}.brand{border-left:3px solid #2f78ff;padding:0 18px}.brand h1{letter-spacing:.055em;font-size:16px;font-weight:800}.brand h1>span:last-child{color:#dbe8f8;font-weight:600}.brand small{letter-spacing:.14em;color:#738aa6;font-size:9px}.global-status{overflow:hidden}.gs-item{border-right-color:#6891c729;padding:0 10px}.gs-item .ico{color:#7aa7ff;width:28px;height:28px;box-shadow:none;background:#2f78ff1a;border-color:#5f8fff47;border-radius:9px}.gs-item .lbl{letter-spacing:.1em;font-size:8px;font-weight:700}.gs-item .val{font-size:12.5px}.gs-site-item .ico{color:var(--green);background:#2bd19b1a;border-color:#2bd19b40}.gs-site{color:#8fb2ff;background:#040f1d9e;border-color:#6891c733;border-radius:7px;padding:3px 7px}.gs-site-add{background:#040f1d80;border-radius:7px}.lang-box{padding:0 7px}.lang-btn{border-radius:8px;padding:6px 9px;font-weight:600}.lang-btn.on{color:#fff;background:#2f78ff40;border-color:#5f8fff99}.ebuttons{background:linear-gradient(145deg,#452313c2,#1f1516d1);border-color:#ff9d5247;min-width:174px;padding:7px 9px}.ebuttons .cap{letter-spacing:.12em;font-size:9px}.ebtn{border-radius:7px}.vmain{gap:12px;padding:12px}.panel{box-shadow:var(--shadow), inset 0 1px 0 #ffffff0e;background:linear-gradient(155deg,#0c2038f7,#08182cfa);border-color:#6891c733;border-radius:16px}.panel-hd{letter-spacing:.13em;min-height:46px;box-shadow:none;background:#ffffff05;border-bottom-color:#6891c729;border-radius:16px 16px 0 0;padding:13px 16px;font-size:11px;font-weight:750}.panel-hd:before{background:#5f8fff;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #2f78ff1c}.panel-hd .dots{font-size:10px}.kpi,.unit-card,.db-alert-row,.al-item,.mcard,.src-item,.wp-row,.card{background:linear-gradient(145deg,#112b48d6,#0a1d33eb);border-color:#6891c72b;border-radius:13px;box-shadow:inset 0 1px #ffffff0a,0 12px 30px -26px #000000e6}.kpi{border-radius:18px;padding:16px 18px}.kpi:before{background:linear-gradient(90deg,#0000,#5f8fffbf,#0000);height:1px}.kpi .k{letter-spacing:.15em;font-size:9px}.kpi .v{font-size:31px}.unit-card:hover,.db-alert-row:hover,.al-item:hover,.mcard:hover,.src-item:hover{background:linear-gradient(145deg,#193a5eeb,#0c2541f5);border-color:#5f8fff47}.btn{color:#fff;background:linear-gradient(135deg,#2869df,#1555cf);border-radius:10px;padding:8px 14px;font-weight:750;box-shadow:0 10px 24px -16px #2f78fff2,inset 0 1px #ffffff38}.btn.ghost{background:#ffffff09;border-color:#6891c747}.btn.green{color:#05291f;background:linear-gradient(135deg,#61e6bc,#21bd87)}.btn.warn{background:linear-gradient(135deg,#ffc77d,#f29b36)}.btn.danger{background:linear-gradient(135deg,#c83a50,#a91f35)}.tab{background:#ffffff06;border-radius:999px}.tab.on{color:#a9c3ff;background:#2f78ff2b;border-color:#5f8fff80}.field input,.field select,.field textarea{background:#030e1b8f;border-color:#6891c738;border-radius:9px;padding:8px 10px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#5f8fff;box-shadow:0 0 0 3px #2f78ff26}button:focus-visible,[role=button]:focus-visible,a:focus-visible{outline-offset:3px;outline:2px solid #8fb2ff}.tbl th{background:#ffffff05;border-bottom-color:#6891c733}.tbl td{border-bottom-color:#6891c71f}.modal{background:linear-gradient(150deg,#0e2947,#081a30);border-color:#6891c752;border-radius:18px;box-shadow:0 34px 90px -24px #000000e6,inset 0 1px #ffffff14}.modal .m-hd,.modal .m-body{padding:16px 18px}.modal-bg{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#030b16c7}.login-bg{isolation:isolate;-webkit-backdrop-filter:none;backdrop-filter:none;background:radial-gradient(70% 90% at 12% 8%,#2f78ff61,#0000 58%),radial-gradient(55% 78% at 95% 90%,#22b8e82e,#0000 62%),linear-gradient(132deg,#04101f 0%,#08213d 54%,#0a3d78 100%);overflow:hidden}.login-bg:before{content:"";z-index:-1;aspect-ratio:1;border:1px solid #94b8ff29;border-radius:50%;width:min(78vw,980px);position:absolute;top:-42%;left:-18vw;box-shadow:0 0 0 96px #477fe709,0 0 0 192px #477fe706,0 0 0 288px #477fe705}.login-bg:after{content:"AUTONOMOUS SECURITY  /  CONNECTED OPERATIONS";z-index:-1;font-family:var(--font-d);letter-spacing:.28em;color:#dae8ff6b;font-size:10px;font-weight:700;position:absolute;bottom:34px;left:44px}.login-box{-webkit-backdrop-filter:blur(24px);background:#051426bd;border:1px solid #99b8e547;border-radius:24px;gap:12px;width:420px;padding:38px 38px 30px;box-shadow:0 38px 100px -28px #000000d9,inset 0 1px #ffffff1a}.login-box .lg-logo{background:#020e1c6b;border:0;border-radius:22px;width:76px;height:76px;margin-bottom:4px;padding:3px;box-shadow:0 18px 42px -22px #000000e6,0 0 0 1px #7aa7ff38}.login-box .lg-title{letter-spacing:.1em;font-size:24px;font-weight:800}.login-box .lg-title span{color:#7aa7ff;letter-spacing:.25em;margin-top:5px}.login-box .lg-sub{color:#8ea3bd;margin-bottom:10px;font-size:12px}.login-box .lg-btn{min-height:44px;margin-top:2px}.map-panel,.do-mapwrap{border-color:#6891c73d!important;border-radius:18px!important}.leaflet-container{background:#0b1d33}.leaflet-control-zoom{overflow:hidden;border:0!important;border-radius:12px!important;box-shadow:0 14px 32px -16px #000000bf!important}.leaflet-control-zoom a{color:#d9e7f8!important;background:#07182be6!important;border:0!important;border-bottom:1px solid #6891c733!important;width:34px!important;height:34px!important;line-height:32px!important}.leaflet-control-zoom a:hover{color:#8fb2ff!important;background:#102f52f2!important}.leaflet-control-attribution{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:8px 0 0!important}.leaflet-popup-content-wrapper{background:#07182bf0;border-color:#6891c752;border-radius:12px;box-shadow:0 18px 42px -20px #000c}.aq-map-div-icon{background:0 0!important;border:0!important}.aq-map-marker{--marker-color:#2f78ff;color:#fff;filter:drop-shadow(0 8px 7px #030c1861);width:44px;height:44px;position:relative}.aq-map-marker--drone{--marker-color:#32c8ff}.aq-map-marker--ground{--marker-color:#21c58b}.aq-map-marker--cctv{--marker-color:#879bb8}.aq-map-marker--dock{--marker-color:#26d3c2}.aq-map-marker--pad,.aq-map-marker--home{--marker-color:#6ee7b7}.aq-map-marker--current{--marker-color:#2f78ff}.aq-map-marker--takeoff{--marker-color:#ffb454}.aq-map-marker.is-alert{--marker-color:#ff6174}.aq-map-marker.is-stale{--marker-color:#ffb454}.aq-map-marker.is-offline{--marker-color:#73859d;opacity:.72}.aq-map-marker__signal{border:1.5px solid var(--marker-color);opacity:0;pointer-events:none;border-radius:50%;width:34px;height:34px;position:absolute;top:1px;left:5px}.aq-map-marker.is-live .aq-map-marker__signal{animation:2s cubic-bezier(.2,.8,.2,1) infinite aqMarkerPulse}.aq-map-marker__pin{color:#fff;background:linear-gradient(145deg, color-mix(in srgb, var(--marker-color) 86%, white), color-mix(in srgb, var(--marker-color) 74%, #061426));width:34px;height:34px;box-shadow:inset 0 1px 0 #ffffff47, 0 0 0 3px color-mix(in srgb, var(--marker-color) 20%, transparent);border:2px solid #fffffff0;border-radius:50% 50% 50% 10px;place-items:center;transition:transform .2s,box-shadow .2s;display:grid;position:absolute;top:1px;left:5px;transform:rotate(-45deg)}.aq-map-marker--cctv .aq-map-marker__pin{border-radius:12px 12px 12px 5px}.aq-map-marker__icon{--heading:0deg;width:20px;height:20px;transform:rotate(45deg) rotate(var(--heading));place-items:center;transition:transform .3s;display:grid}.aq-map-marker__icon svg{display:block}.aq-map-marker__dot{background:currentColor;border-radius:50%;width:6px;height:6px}.aq-map-marker__home-glyph{font:800 12px/1 var(--font-d)}.aq-map-marker__label{z-index:2;opacity:0;pointer-events:none;color:#eef6ff;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:190px;font:700 9px/1.2 var(--font-d);letter-spacing:.035em;white-space:nowrap;background:#051426e6;border:1px solid #92b0d852;border-radius:999px;align-items:center;gap:4px;padding:4px 8px;transition:opacity .16s,transform .16s;display:flex;position:absolute;bottom:49px;left:50%;transform:translate(-50%,3px);box-shadow:0 10px 22px -13px #000000d9}.aq-map-marker__detail{color:#8fa5bf;font-size:8px;font-weight:600}.aq-map-marker__detail:before{content:"·";color:var(--marker-color);margin-right:4px}.aq-map-marker--pad .aq-map-marker__label{top:43px;bottom:auto}.aq-map-marker.is-selected .aq-map-marker__label,.aq-map-marker--pad .aq-map-marker__label,.aq-map-marker:hover .aq-map-marker__label,.leaflet-marker-icon:hover .aq-map-marker__label,.leaflet-marker-icon:focus .aq-map-marker__label,.leaflet-marker-icon:focus-visible .aq-map-marker__label{opacity:1;transform:translate(-50%)}.aq-map-marker.is-selected .aq-map-marker__pin,.leaflet-marker-icon:hover .aq-map-marker__pin{box-shadow:inset 0 1px 0 #ffffff59, 0 0 0 5px color-mix(in srgb, var(--marker-color) 24%, transparent), 0 0 24px color-mix(in srgb, var(--marker-color) 36%, transparent);transform:rotate(-45deg)translate(1px,-1px)scale(1.08)}@keyframes aqMarkerPulse{0%{opacity:.72;transform:scale(.82)}75%,to{opacity:0;transform:scale(1.55)}}.aq-map-waypoint{--waypoint-color:#2f78ff;color:#fff;background:color-mix(in srgb, var(--waypoint-color) 82%, #061426);width:26px;height:26px;box-shadow:0 0 0 3px color-mix(in srgb, var(--waypoint-color) 18%, transparent), 0 8px 18px -9px #000000e6;font:800 10px/1 var(--font-d);border:2px solid #ffffffeb;border-radius:9px;place-items:center;display:grid;position:relative}.aq-map-waypoint.is-start{border-radius:11px;width:30px;height:30px}.aq-map-waypoint.is-outside{--waypoint-color:#ff6174!important}.aq-map-waypoint__tag{opacity:0;border:1px solid color-mix(in srgb, var(--waypoint-color) 50%, transparent);color:#eef6ff;font:700 9px/1.2 var(--font-d);white-space:nowrap;pointer-events:none;background:#051426e6;border-radius:999px;padding:4px 8px;transition:opacity .16s,transform .16s;position:absolute;top:50%;left:calc(100% + 7px);transform:translate(-3px,-50%)}.aq-map-waypoint:hover .aq-map-waypoint__tag,.leaflet-marker-icon:hover .aq-map-waypoint__tag,.leaflet-marker-icon:focus .aq-map-waypoint__tag,.leaflet-marker-icon:focus-visible .aq-map-waypoint__tag{opacity:1;transform:translateY(-50%)}.aq-geofence{vector-effect:non-scaling-stroke}.aq-geofence--halo{filter:drop-shadow(0 0 8px #2f78ff4d)}.aq-geofence--editor{animation:18s linear infinite aqGeofenceRail}@keyframes aqGeofenceRail{to{stroke-dashoffset:-190px}}.aq-geofence-vertex{color:#fff;cursor:grab;width:28px;height:28px;font:800 9px/1 var(--font-d);background:linear-gradient(145deg,#78a1ff,#2f6ee9);border:2px solid #fff;border-radius:10px;place-items:center;display:grid;box-shadow:0 0 0 4px #2f78ff33,0 8px 18px -9px #000000e6}.aq-geofence-vertex:active{cursor:grabbing;transform:scale(1.08)}.leaflet-tooltip.aq-map-tooltip{color:#eef6ff;font:650 10px/1.3 var(--font-d);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#051426eb;border:1px solid #92b0d857;border-radius:10px;padding:6px 9px;box-shadow:0 14px 30px -17px #000000d9}.leaflet-tooltip.aq-map-tooltip:before{display:none}.leaflet-tooltip.aq-map-tooltip--geofence{color:#c9d9ff;letter-spacing:.08em;border-color:#5f8fff7a;align-items:center;gap:6px;display:inline-flex}.aq-map-tooltip--geofence small{color:#7892b1;letter-spacing:.06em;font-size:8px}.aq-geofence-label__pulse{background:#5f8fff;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 3px #2f78ff2b}.hud-coord,.ed-hint,.seg,.do-trackinfo{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#051426d1!important;border-color:#6891c747!important;border-radius:11px!important}@media (prefers-reduced-motion:reduce){.aq-map-marker.is-live .aq-map-marker__signal,.aq-geofence--editor{animation:none!important}}@media (width<=600px){.login-bg{padding:16px}.login-bg:after{letter-spacing:.16em;font-size:8px;bottom:18px;left:20px}.login-box{width:min(100%,420px);padding:30px 24px 26px}}@media (height<=640px){.login-bg{align-items:flex-start;padding-block:16px;overflow-y:auto}.login-box{flex:none}}@media (width<=1319px){body{overflow:auto}.app{width:1320px}}.view-enter-active{transition:opacity .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1)}.view-leave-active{transition:opacity .16s;position:absolute;inset:0}.view-enter-from{opacity:0;transform:translateY(8px)}.view-leave-to{opacity:0}@keyframes moFlash{0%{background-color:#3fd0e838}to{background-color:#0000}}.mo-flash{animation:1.1s cubic-bezier(.22,1,.36,1) moFlash}#view{position:relative}@media (prefers-reduced-motion:reduce){.view-enter-active,.view-leave-active{transition:none!important}.view-enter-from,.view-leave-to{opacity:1!important;transform:none!important}.mo-flash{animation:none!important}}
