:root{--layout-scale: 1;--shell-width: 1536px;--shell-height: 1024px;--bg: #041222;--panel: rgba(4, 21, 40, .86);--panel-strong: rgba(4, 24, 49, .96);--line: rgba(31, 147, 255, .38);--line-soft: rgba(57, 174, 255, .18);--cyan: #2ed6ff;--blue: #087cff;--green: #18f5a1;--orange: #ff982d;--red: #ff4d3d;--text: #f2f8ff;--muted: #91b7d8;--dim: #5d83a7;--mono: "JetBrains Mono", "Cascadia Mono", "Consolas", monospace;--sans: "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Noto Sans CJK SC", Arial, sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0}body{position:relative;overflow:hidden;color:var(--text);font-family:var(--sans);background:radial-gradient(circle at 47% 46%,rgba(0,104,255,.2),transparent 28%),radial-gradient(circle at 82% 10%,rgba(0,202,255,.15),transparent 24%),linear-gradient(135deg,#030b17,#041427 52%,#020813)}button{position:relative;overflow:hidden;border:0;color:inherit;font:inherit;cursor:pointer}button:active{transform:translateY(1px) scale(.99)}.button-ripple{position:absolute;width:12px;height:12px;border-radius:50%;pointer-events:none;background:#9de1ff61;transform:translate(-50%,-50%) scale(1);animation:rippleOut .52s cubic-bezier(.16,1,.3,1) forwards}@keyframes rippleOut{to{opacity:0;transform:translate(-50%,-50%) scale(9)}}svg{display:block}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.login-shell{position:fixed;inset:0;display:grid;grid-template-columns:minmax(0,1fr);place-items:center start;min-height:100dvh;padding:clamp(26px,5.8vw,78px);overflow:hidden;color:var(--text);background:linear-gradient(90deg,#030c19f5,#030c19db 33%,#030c1975 63%,#030c1924),linear-gradient(180deg,#02081247,#020812b8),url(/assets/login-command-bg.webp) center / cover no-repeat}.login-shell:before,.login-shell:after{content:"";position:absolute;pointer-events:none}.login-shell:before{inset:0;opacity:.78;background:linear-gradient(rgba(46,214,255,.052) 1px,transparent 1px),linear-gradient(90deg,rgba(46,214,255,.045) 1px,transparent 1px),radial-gradient(circle at 25% 30%,rgba(8,124,255,.2),transparent 32%),radial-gradient(circle at 72% 38%,rgba(46,214,255,.11),transparent 28%);background-size:72px 72px,72px 72px,auto,auto;-webkit-mask-image:linear-gradient(90deg,black 0 56%,transparent 82%);mask-image:linear-gradient(90deg,black 0 56%,transparent 82%)}.login-shell:after{left:clamp(26px,5.8vw,78px);bottom:clamp(22px,4.8vw,56px);width:min(452px,calc(100vw - 52px));height:1px;background:linear-gradient(90deg,rgba(46,214,255,.72),rgba(8,124,255,.24),transparent);box-shadow:0 0 22px #2ed6ff29}.login-panel{position:relative;z-index:2;display:grid;gap:24px;width:min(452px,100%);animation:loginPanelIn .48s cubic-bezier(.16,1,.3,1) both}.login-panel:before{content:"";position:absolute;inset:-22px -18px auto;height:1px;background:linear-gradient(90deg,transparent,rgba(46,214,255,.56),transparent)}.login-brand{position:relative;z-index:2;display:flex;align-items:center;gap:14px;min-width:0}.login-logo{display:none}.login-mark{display:grid;place-items:center;width:52px;height:52px;border:1px solid rgba(63,169,255,.52);border-radius:8px;color:#a7eaff;background:linear-gradient(180deg,#0c4c8deb,#051e3ef5),radial-gradient(circle at 50% 35%,rgba(46,214,255,.3),transparent 58%);box-shadow:inset 0 1px #abe8ff42,inset 0 -16px 28px #0108134d,0 20px 42px #00122861}.login-mark svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;filter:drop-shadow(0 0 8px rgba(46,214,255,.22))}.login-brand span{display:block;color:#8fcaee;font-family:var(--mono);font-size:12px;font-weight:800}.login-brand h1{margin:6px 0 0;color:#f2f8ff;font-size:22px;line-height:1.08;font-weight:900;letter-spacing:0;text-shadow:0 0 18px rgba(67,198,255,.22)}.login-card{position:relative;z-index:2;display:grid;gap:18px;width:100%;max-width:none;padding:32px;border:1px solid rgba(31,147,255,.42);border-radius:8px;color:var(--text);background:linear-gradient(180deg,#051c38db,#031022eb),radial-gradient(circle at 10% 0,rgba(46,214,255,.13),transparent 40%);box-shadow:inset 0 1px #ace7ff24,inset 0 0 0 1px #ffffff08,0 28px 76px #000c1e6b;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.login-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;border-radius:8px 0 0 8px;background:linear-gradient(180deg,#2ed6fff2,#087cff4d)}.login-card:after{content:"";position:absolute;right:18px;top:18px;width:72px;height:1px;background:linear-gradient(90deg,transparent,rgba(46,214,255,.62))}.login-card-head span{color:#2ed6ff;font-family:var(--mono);font-size:12px;font-weight:900}.login-card-head h2{margin:10px 0 8px;color:#f2f8ff;font-size:34px;line-height:1.06;font-weight:900;letter-spacing:0}.login-card-head p{max-width:30em;margin:0;color:#91b7d8;font-size:14px;line-height:1.65}.login-card-status,.login-visual,.login-map-plate,.login-map-readout,.login-timeline,.login-status-grid{display:none}.login-field{display:grid;gap:8px}.login-field span{color:#cbeaff;font-size:14px;font-weight:900}.login-field input{width:100%;height:52px;padding:0 15px;border:1px solid rgba(57,174,255,.28);border-radius:7px;outline:none;color:#f2f8ff;font:800 15px var(--sans);background:linear-gradient(180deg,#041831b3,#020d1dd1);box-shadow:inset 0 1px #99e0ff14,inset 0 -18px 24px #00071133;transition:border-color .22s cubic-bezier(.16,1,.3,1),background .22s cubic-bezier(.16,1,.3,1),transform .22s cubic-bezier(.16,1,.3,1)}.login-field input::placeholder{color:#91b7d894}.login-field input:focus{border-color:#2ed6ffd1;background:linear-gradient(180deg,#052345d1,#021227e6);transform:translateY(-1px)}.login-field em{min-height:16px;color:#ff9b8f;font-size:12px;font-style:normal}.login-field.is-invalid input{border-color:#ff4d3dd1}.login-error{padding:10px 12px;border:1px solid rgba(255,77,61,.35);border-radius:7px;color:#ffd4ce;font-size:13px;background:#5e171452}.login-submit{display:grid;grid-template-columns:1fr 26px;align-items:center;width:100%;height:52px;margin-top:0;padding:0 15px 0 18px;border:1px solid rgba(92,194,255,.56);border-radius:7px;color:#effaff;font-size:15px;font-weight:900;background:linear-gradient(180deg,#168fff,#086eff 55%,#064eaa);box-shadow:inset 0 1px #ccf6ff52,inset 0 -12px 22px #001a4c47,0 16px 32px #00327e42;transition:filter .22s cubic-bezier(.16,1,.3,1),transform .22s cubic-bezier(.16,1,.3,1)}.login-submit:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.login-submit:disabled{cursor:wait;opacity:.72}.login-submit i{position:relative;width:22px;height:2px;border-radius:999px;background:#effaffe0}.login-submit i:after{content:"";position:absolute;right:0;top:-3px;width:8px;height:8px;border-top:2px solid rgba(239,250,255,.88);border-right:2px solid rgba(239,250,255,.88);transform:rotate(45deg)}@keyframes loginPanelIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(max-width:760px){.login-shell{place-items:end start;padding:18px;overflow:auto;overflow-x:hidden;background:linear-gradient(180deg,#030c192e,#030c19c2 38%,#030c19f5),url(/assets/login-command-bg.webp) 67% center / cover no-repeat}.login-shell:before{opacity:.48;-webkit-mask-image:linear-gradient(180deg,transparent 0,black 36%,black 100%);mask-image:linear-gradient(180deg,transparent 0,black 36%,black 100%)}.login-shell:after{left:18px;right:18px;bottom:16px;width:auto}.login-panel{width:min(354px,100%)!important;max-width:354px!important;min-width:0;gap:18px;padding-top:24vh}.login-brand{min-width:0}.login-brand h1{overflow-wrap:anywhere}.login-mark{width:42px;height:42px;border-radius:7px}.login-mark svg{width:24px;height:24px}.login-brand h1{font-size:19px}.login-card{width:min(354px,100%)!important;max-width:354px!important;min-width:0;padding:24px 22px;overflow:hidden}.login-field,.login-field input,.login-submit{max-width:100%;min-width:0}.login-card-head h2{font-size:28px}}.app-shell{position:absolute;top:0;left:0;display:grid;grid-template-rows:78px minmax(0,1fr);gap:8px;width:var(--shell-width);height:var(--shell-height);min-width:0;min-height:0;padding:6px 8px 10px;isolation:isolate;transform:scale(var(--layout-scale));transform-origin:top left}.app-shell:before,.app-shell:after{content:"";position:absolute;inset:0;pointer-events:none}.app-shell:before{opacity:.28;background-image:linear-gradient(rgba(28,139,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(28,139,255,.08) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:linear-gradient(to bottom,transparent,black 18%,black 84%,transparent);mask-image:linear-gradient(to bottom,transparent,black 18%,black 84%,transparent)}.app-shell:after{background:linear-gradient(180deg,rgba(39,174,255,.05),transparent 18%,transparent 86%,rgba(0,93,180,.06)),repeating-linear-gradient(0deg,rgba(255,255,255,.016) 0,rgba(255,255,255,.016) 1px,transparent 1px,transparent 3px);mix-blend-mode:screen;opacity:.22}.runtime-ready .topbar{animation:panelDrop .52s cubic-bezier(.16,1,.3,1) both}.runtime-ready .sidebar{animation:sidebarSweepIn .54s .04s cubic-bezier(.16,1,.3,1) both}.runtime-ready .center-stage{animation:stageFocusIn .56s .08s cubic-bezier(.16,1,.3,1) both}.runtime-ready .right-panel{animation:panelSlideIn .52s .12s cubic-bezier(.16,1,.3,1) both}.runtime-ready .command-dock{animation:dockLiftIn .48s .16s cubic-bezier(.16,1,.3,1) both}@keyframes panelDrop{0%{opacity:0;transform:translateY(-12px)}}@keyframes sidebarSweepIn{0%{opacity:0;transform:translate(-14px)}}@keyframes stageFocusIn{0%{opacity:0;transform:translateY(12px) scale(.992)}}@keyframes panelSlideIn{0%{opacity:0;transform:translate(14px)}}@keyframes dockLiftIn{0%{opacity:0;transform:translateY(18px)}}@keyframes commandBreathe{50%{box-shadow:inset 0 1px #ffffff3d,inset 0 -18px 28px #00000029,0 10px 24px #0084ff47}}@keyframes routePageIn{0%{opacity:0;transform:translateY(12px) scale(.992)}}@keyframes routeCardIn{0%{opacity:0;transform:translateY(14px)}}@keyframes metricPulse{50%{color:#fff;text-shadow:0 0 12px rgba(91,218,255,.7);transform:translateY(-1px)}}.metric-updated{animation:metricPulse .46s cubic-bezier(.16,1,.3,1)}.glass-panel{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:linear-gradient(135deg,#0b2b4ee0,#031021e6 48%,#020f1ef0),var(--panel);box-shadow:inset 0 1px #61cfff33,inset 0 0 0 1px #0b58991f,0 0 28px #0066ff29}.glass-panel:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(17,136,255,.12),transparent 18%),linear-gradient(135deg,rgba(35,191,255,.07),transparent 34%);opacity:.46}.performance-lite.app-shell:after{display:none}.performance-lite.app-shell:before{opacity:.14;-webkit-mask-image:none;mask-image:none}.performance-lite .glass-panel,.performance-lite .sub-card,.performance-lite .map-frame,.performance-lite .airport-video-frame{contain:paint}.performance-lite .glass-panel{box-shadow:inset 0 1px #61cfff29,inset 0 0 0 1px #0b58991a,0 0 12px #0066ff14}.performance-lite .glass-panel:before{opacity:.24}.performance-lite .label-card,.performance-lite .airport-video-refresh,.performance-lite .airport-video-fullscreen,.performance-lite .gimbal-outer,.performance-lite .gimbal-stick{backdrop-filter:none;-webkit-backdrop-filter:none}.performance-lite .hub-rings,.performance-lite .hub-rings:after,.performance-lite .drone-icon,.performance-lite .danger-marker:before,.performance-lite .command-btn.is-pending,.performance-lite .airport-video-frame.is-loading .airport-video-placeholder svg,.performance-lite .metric-updated{animation:none!important}.performance-lite .button-ripple{display:none}.performance-lite .school-logo,.performance-lite .nav-item svg,.performance-lite .drone-icon img,.performance-lite .airport-video-placeholder svg,.performance-lite .dock-group h2 span,.performance-lite .advanced-command-summary svg,.performance-lite .advanced-command-cue,.performance-lite .status-panel h2 span,.performance-lite .task-panel h2 span{filter:none}.performance-lite .drone-marker:before{opacity:.18;filter:none}.performance-lite .hub-core,.performance-lite .topbar:after,.performance-lite .progress span{box-shadow:none}.topbar{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1fr) clamp(172px,12vw,190px) clamp(150px,10vw,170px) clamp(104px,7vw,124px) repeat(3,clamp(116px,8.1vw,132px)) clamp(190px,13vw,226px);align-items:center;gap:8px;height:100%;padding:7px 10px 7px 14px;border:1px solid rgba(23,122,231,.36);border-radius:7px;background:linear-gradient(90deg,#030d1ef7,#071933f0 42%,#020c1bfa),radial-gradient(circle at 30% 100%,rgba(0,152,255,.22),transparent 28%);box-shadow:inset 0 -1px #00cdff6b,0 0 30px #0062ff33}.topbar:after{content:"";position:absolute;left:60px;right:58%;bottom:-1px;height:2px;background:linear-gradient(90deg,transparent,#01d9ff,transparent);box-shadow:0 0 16px #03bfff}.brand-block{display:flex;align-items:center;gap:14px;min-width:0}.school-logo{display:block;width:43px;height:43px;object-fit:contain;filter:drop-shadow(0 0 10px rgba(38,182,255,.75))}.brand-block h1{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:26px;line-height:1;font-weight:800;letter-spacing:0;text-shadow:0 0 16px rgba(97,190,255,.22)}.time-block{position:relative;padding-left:18px}.time-block:before{content:"";position:absolute;left:0;top:8px;width:1px;height:46px;background:linear-gradient(transparent,rgba(69,166,255,.55),transparent)}.date{white-space:nowrap;font-family:var(--mono);font-size:15px;color:#f4f8ff}.week,.weather-meta,.metric-card span,.top-action span{color:#b7cce1;font-size:12px}.weather-block{display:flex;align-items:center;gap:10px}.weather-icon{display:block;width:50px;height:44px;object-fit:contain;filter:drop-shadow(0 0 10px rgba(114,201,255,.62))}.temp{font-family:var(--mono);font-size:16px}.weather-meta{white-space:nowrap;font-size:11px}.dji-status-chip{display:grid;align-content:center;justify-items:start;min-width:0;height:48px;padding:6px 10px;border:1px solid rgba(72,164,255,.34);border-radius:7px;background:linear-gradient(135deg,#06264dd1,#021125e0);box-shadow:inset 0 1px #7bddff1f}.dji-status-chip b{color:#f4fbff;font-family:var(--mono);font-size:15px;line-height:1}.dji-status-chip span{max-width:100%;overflow:hidden;color:#9bb9d2;font-size:11px;line-height:1.3;white-space:nowrap;text-overflow:ellipsis}.dji-status-chip.is-ready{border-color:#2ae8b27a;box-shadow:inset 0 1px #7effdc24,0 0 16px #24d6b124}.dji-status-chip.is-ready span{color:#8cffdd}.dji-status-chip.is-warning{border-color:#ffb94c7a}.dji-status-chip.is-warning span{color:#ffd18b}.metric-card{position:relative;display:grid;grid-template-columns:40px 1fr;align-items:center;min-width:0;height:62px;padding:6px 9px;border:1px solid rgba(25,122,235,.42);border-radius:7px;background:linear-gradient(135deg,#082855d6,#031126e6);box-shadow:inset 0 1px #5ecaff2e}.metric-card:after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(circle at 16% 52%,rgba(28,180,255,.25),transparent 42%)}.metric-card svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.8}.hex-icon,.drone-mini,.alert-mini{position:relative;display:grid;place-items:center;width:34px;height:34px;color:#85e8ff}.hex-icon{clip-path:polygon(50% 0,94% 25%,94% 75%,50% 100%,6% 75%,6% 25%);background:linear-gradient(145deg,#0759ff,#053774);box-shadow:0 0 16px #00aeff99}.drone-mini{color:#8fe7ff}.alert-mini{clip-path:polygon(50% 0,92% 25%,92% 76%,50% 100%,8% 76%,8% 25%);color:#fff;font-family:var(--mono);font-weight:900;background:linear-gradient(160deg,#ffb02e,#ff5d21);box-shadow:0 0 18px #ff821cad}.metric-card strong{display:block;color:#6ff1ff;font-family:var(--mono);font-size:23px;line-height:1.05}.metric-card.orange strong{color:#ff743d}.metric-card em{margin-left:2px;color:#d9e9f9;font-family:var(--sans);font-size:11px;font-style:normal;font-weight:700}.top-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.top-action{display:grid;justify-items:center;gap:4px;padding:3px 0;border-radius:5px;background:transparent}.top-action:hover{background:#2f8cff1f}.top-action svg{width:23px;height:23px;fill:none;stroke:#a8c8e5;stroke-width:1.9}.logout-action svg{transform:rotate(180deg)}.dashboard-grid{position:relative;z-index:1;display:grid;grid-template-columns:238px minmax(0,1fr) 314px;gap:10px;min-height:0;transition:grid-template-columns .22s cubic-bezier(.16,1,.3,1)}.sidebar-collapsed .dashboard-grid{grid-template-columns:72px minmax(0,1fr) 314px}.sidebar{display:grid;grid-template-rows:minmax(0,1fr) auto;padding:14px 10px 12px;transition:padding .22s cubic-bezier(.16,1,.3,1)}.sidebar-collapsed .sidebar{padding-inline:7px}.sidebar-title,.nav-group-title{display:flex;align-items:center;gap:8px;height:31px;padding:0 10px 7px;color:#c9e8ff;font-size:14px;border-bottom:1px solid rgba(53,151,255,.17)}.nav-group-title{position:relative;min-height:42px;margin:5px 0 4px;padding:7px 10px 8px;color:#f0f8ff;font-size:16px;font-weight:900;letter-spacing:0;border-bottom-color:#3597ff21;border-radius:7px;background:linear-gradient(90deg,#0f457c47,#04183114);cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .22s cubic-bezier(.16,1,.3,1),background .22s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1)}.nav-group-title:before{content:"";width:3px;height:18px;border-radius:999px;background:#46b7ffb8;box-shadow:0 0 8px #2ba6ff5c}.nav-group-title:hover,.nav-group-title:focus-visible{color:#fff;outline:none;background:#135cb247;box-shadow:inset 0 0 0 1px #41b3ff2e}.status-icon{width:27px;height:27px;padding:4px;color:#91dbff;fill:none;stroke:currentColor;stroke-width:2.1;border-radius:5px;background:linear-gradient(180deg,#0a2a52c7,#020f20e6);filter:drop-shadow(0 0 5px rgba(74,188,255,.82)) drop-shadow(0 0 12px rgba(10,116,255,.35))}.group-arrow{margin-left:auto;color:#d8efff;font-size:17px;font-style:normal;line-height:1;transform-origin:center;transition:color .2s ease,transform .24s cubic-bezier(.16,1,.3,1)}.nav-group{display:grid;gap:5px;flex:0 0 auto;min-height:0}.nav-group-items{position:relative;display:grid;gap:5px;flex:0 0 auto;margin:0 0 2px 13px;padding-left:11px;border-left:1px solid rgba(85,169,239,.24);overflow:hidden;opacity:1;transform:scaleY(1);transform-origin:top;transition:max-height .25s cubic-bezier(.16,1,.3,1),opacity .18s ease,transform .22s cubic-bezier(.16,1,.3,1)}.nav-group.is-collapsed .nav-group-items{max-height:0!important;opacity:0;pointer-events:none;transform:scaleY(.96)}.nav-group.is-collapsed .group-arrow{transform:rotate(180deg)}.nav-list{display:flex;flex-direction:column;gap:7px;min-height:0;padding:2px 1px 8px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(118,166,212,.52) rgba(7,20,39,.6)}.nav-item{position:relative;display:grid;grid-template-columns:35px 1fr;align-items:center;height:44px;min-height:44px;flex:0 0 auto;padding:0 11px 0 8px;border-radius:6px;color:#c4ddf2;text-align:left;background:transparent;transition:color .24s cubic-bezier(.16,1,.3,1),background .24s cubic-bezier(.16,1,.3,1),box-shadow .24s cubic-bezier(.16,1,.3,1),transform .24s cubic-bezier(.16,1,.3,1)}.sidebar-collapsed .sidebar-title span,.sidebar-collapsed .nav-group-title span,.sidebar-collapsed .nav-item span,.sidebar-collapsed .menu-fold-label{display:none}.sidebar-collapsed .nav-group-title{justify-content:center;padding-inline:4px;background:transparent}.sidebar-collapsed .nav-group-title:before{display:none}.sidebar-collapsed .nav-group-items{max-height:none!important;margin:0;padding-left:0;border-left:0;opacity:1;pointer-events:auto;transform:none}.sidebar-collapsed .nav-group-title .group-arrow{display:none}.sidebar-collapsed .nav-item{grid-template-columns:1fr;justify-items:center;padding-inline:4px}.sidebar-collapsed .nav-item:before{display:none}.nav-item:before{content:"";position:absolute;left:-12px;top:50%;width:7px;height:2px;border-radius:999px;background:#5bb7ff47;transform:translateY(-50%);transition:width .22s cubic-bezier(.16,1,.3,1),background .22s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1)}.nav-item:after{content:"";position:absolute;left:8px;right:10px;bottom:-3px;height:1px;background:#3294f41f}.nav-item svg{width:29px;height:29px;padding:4px;fill:none;stroke:currentColor;stroke-width:2.15;color:#82d6ff;border:1px solid rgba(63,169,255,.26);border-radius:5px;background:linear-gradient(180deg,#08254cb3,#020e1ed1);box-shadow:inset 0 0 0 1px #76d3ff14,inset 0 -8px 16px #0062ff1f;filter:drop-shadow(0 0 4px rgba(92,198,255,.82)) drop-shadow(0 0 10px rgba(22,110,255,.35));transition:color .24s cubic-bezier(.16,1,.3,1),border-color .24s cubic-bezier(.16,1,.3,1),background .24s cubic-bezier(.16,1,.3,1),filter .24s cubic-bezier(.16,1,.3,1),transform .24s cubic-bezier(.16,1,.3,1)}.nav-item svg path,.nav-item svg circle,.nav-item svg rect{vector-effect:non-scaling-stroke}.nav-item span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:700;line-height:1;letter-spacing:0}.nav-item:hover,.nav-item.active{color:#fff;background:linear-gradient(90deg,#0757ff,#0065ff57);box-shadow:inset 0 0 0 1px #34b0ff73,0 0 16px #0470ff59;transform:translate(2px)}.nav-item:hover:before,.nav-item.active:before{width:13px;background:#7ee0ffeb;box-shadow:0 0 8px #3db7ff94}.nav-item:hover svg,.nav-item.active svg{color:#eaf9ff;border-color:#6ad7ff80;background:linear-gradient(180deg,#165ebceb,#05265cd1);filter:drop-shadow(0 0 6px rgba(135,230,255,.95)) drop-shadow(0 0 14px rgba(11,126,255,.6));transform:scale(1.04)}.menu-fold{display:flex;align-items:center;gap:11px;height:38px;padding:0 13px;color:#b5d4ee;border-top:1px solid rgba(44,142,255,.2);background:transparent;transition:color .22s ease,background .22s ease}.menu-fold:hover{color:#fff;background:#217eff1f}.sidebar-collapsed .menu-fold{justify-content:center;padding-inline:0}.hamburger,.hamburger:before,.hamburger:after{display:block;width:17px;height:2px;border-radius:2px;background:#7fc7ff}.hamburger{position:relative}.hamburger:before,.hamburger:after{content:"";position:absolute;left:0}.hamburger:before{top:-6px}.hamburger:after{top:6px}.center-stage{display:grid;grid-template-rows:minmax(0,1fr) 285px;gap:0;min-width:0;min-height:0}.map-frame{position:relative;min-height:0;border-radius:4px;background:#09223c}.map-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.16) contrast(1.14) brightness(.68)}.map-bg.real-map{filter:saturate(1.04) contrast(1.08) brightness(1)}.amap-map,.cesium-map{position:absolute;inset:0;z-index:1;width:100%;height:100%;background:#020d1cf5;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.amap-map:active,.cesium-map:active{cursor:grabbing}.amap-token-missing,.cesium-token-missing{background:#020d1c52}.amap-ready .map-fallback,.cesium-ready .map-fallback{opacity:0}.amap-status,.cesium-status{position:absolute;left:18px;bottom:14px;z-index:2;max-width:360px;padding:8px 10px;border:1px solid rgba(90,190,255,.38);border-radius:4px;color:#dff2ffdb;font-size:12px;line-height:1.55;background:#010b18b8}.amap-ready .amap-status,.cesium-ready .cesium-status{display:none}.cesium-widget,.cesium-widget canvas{width:100%;height:100%}.cesium-widget-credits{display:none!important}.map-frame:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,#000f230a,#0008141f);mix-blend-mode:screen}.campus-map{position:absolute;inset:0;width:100%;height:100%}.campus-map>rect{fill:transparent}.map-land{display:none;filter:saturate(.9)}.roads path{fill:none;stroke-linecap:round;stroke-linejoin:round}.roads,.buildings,.fields,.poi-labels,.road-shadow,.road-main{display:none}.road-shadow{stroke:#00000057;stroke-width:42}.road-main{stroke:url(#road);stroke-width:30}.road-core{stroke:#456a79;stroke-width:4;stroke-dasharray:22 18;opacity:.45}.road-main.small{stroke-width:18;opacity:.85}.road-core.small{stroke-width:3}.buildings rect{fill:url(#building);stroke:#57c2ff3d;stroke-width:1;opacity:.08;filter:drop-shadow(0 8px 9px rgba(0,0,0,.45))}.buildings rect:nth-child(2n){fill:#123955}.buildings rect:nth-child(3n){fill:#0f314c}.fields rect,.fields circle,.fields line{fill:#1360416b;stroke:#4affb142;stroke-width:2;mix-blend-mode:screen}.fields rect:nth-child(2){fill:#622f5b47;stroke:#ee4cc147;stroke-width:7}.fields rect:nth-child(3){fill:transparent;stroke-width:3}.poi-labels text{fill:#eaf8ffe6;font-size:15px;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.9)}.flight-route{fill:none;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;filter:drop-shadow(0 0 5px rgba(28,255,154,.95)) drop-shadow(0 0 14px rgba(28,255,154,.4))}.flight-route.primary{stroke:#23ff9deb}.flight-route.secondary{stroke:#23ff9ddb;opacity:.78}@keyframes routeFlow{to{stroke-dashoffset:-40}}.map-grain,.map-scanline{position:absolute;inset:0;pointer-events:none}.map-grain{background:radial-gradient(circle at 20% 30%,rgba(9,188,255,.08),transparent 18%),radial-gradient(circle at 70% 66%,rgba(0,255,171,.08),transparent 20%),linear-gradient(180deg,#00000024,#00000038);mix-blend-mode:screen}.map-scanline{background:repeating-linear-gradient(0deg,rgba(161,224,255,.035) 0,rgba(161,224,255,.035) 1px,transparent 1px,transparent 5px);opacity:.42}.map-attribution{position:absolute;right:12px;bottom:8px;z-index:2;padding:2px 6px;border-radius:4px;color:#cbe0f1b8;font-size:10px;line-height:1.2;background:#010b1880;pointer-events:none}.label-card{position:absolute;padding:9px 12px;border:1px solid rgba(94,202,255,.38);border-radius:4px;background:#03101fd1;box-shadow:0 0 18px #007eff38;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.campus-card{left:37.3%;top:34.8%}.label-card strong{display:block;font-size:18px;line-height:1.3}.label-card span{display:block;color:#cbddec;font-size:12px;line-height:1.55}.label-card span:before{content:"•";margin-right:3px;color:#fff}.hub-marker{position:absolute;left:45.6%;top:45.6%;width:70px;height:70px;transform:translate(-50%,-50%)}.hub-rings,.hub-rings:before,.hub-rings:after{position:absolute;border-radius:50%}.hub-rings{inset:-46px;background:radial-gradient(circle,rgba(24,203,255,.28) 0 22%,rgba(10,109,255,.18) 23% 36%,transparent 38%);animation:pulseRing 2.8s ease-in-out infinite}.hub-rings:before{content:"";inset:32px;border:2px solid rgba(39,197,255,.7);box-shadow:0 0 20px #00a1ffb3}.hub-rings:after{content:"";inset:14px;border:1px solid rgba(67,209,255,.32);animation:rotate 8s linear infinite;border-left-color:transparent;border-right-color:transparent}.hub-core{position:absolute;inset:9px;display:grid;place-items:center;clip-path:polygon(50% 0,94% 25%,94% 75%,50% 100%,6% 75%,6% 25%);color:#fff;font-family:var(--mono);font-size:32px;font-weight:900;background:linear-gradient(145deg,#13c9ff,#075cff 70%);box-shadow:0 0 28px #10abffcc}@keyframes pulseRing{50%{transform:scale(1.08);opacity:.8}}@keyframes rotate{to{transform:rotate(360deg)}}.drone-marker{position:absolute;display:flex;align-items:center;gap:5px;color:#f0fbff;font-size:14px;text-shadow:0 2px 5px #000}.drone-marker:before{content:"";position:absolute;left:10px;top:13px;width:52px;height:22px;border-radius:50%;background:#09fca359;filter:blur(12px)}.drone-icon{position:relative;width:70px;height:42px;color:#9bf4ff;animation:droneFloat 2.4s ease-in-out infinite}.drone-icon img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 8px rgba(52,203,255,.95)) drop-shadow(0 0 14px rgba(16,255,172,.35))}.drone-marker span{position:relative;padding:4px 8px;border:1px solid rgba(93,215,255,.27);border-radius:4px;background:#000f1fb8}.drone-01{left:50.4%;top:15.4%}.drone-02{left:38.7%;top:69.4%}@keyframes droneFloat{50%{transform:translateY(-6px)}}.danger-marker{position:absolute;left:81%;top:41.8%;display:flex;align-items:center;gap:8px;color:#fff5e6;font-size:14px;font-weight:700}.danger-marker:before{content:"";position:absolute;left:-30px;top:-23px;width:72px;height:72px;border-radius:50%;background:radial-gradient(circle,rgba(255,172,43,.43),rgba(255,105,20,.2) 44%,transparent 65%);border:1px solid rgba(255,166,48,.48);animation:pulseRing 2.2s ease-in-out infinite}.danger-pin{position:relative;display:grid;place-items:center;width:31px;height:31px;border-radius:50% 50% 50% 3px;color:#fff;font-family:var(--mono);font-weight:900;background:linear-gradient(145deg,#ffb332,#ff6425);transform:rotate(-45deg);box-shadow:0 0 18px #ff8b20cc}.danger-pin:before{content:"!";transform:rotate(45deg)}.danger-pin{font-size:0}.danger-marker span{position:relative;padding:4px 8px;border-radius:4px;background:#000f1fb8;text-shadow:0 2px 4px #000}.compass{position:absolute;right:18px;top:18px;display:grid;place-items:center;width:56px;height:56px;border:1px solid rgba(141,207,255,.68);border-radius:50%;color:#fff;font-family:var(--mono);font-size:10px;background:radial-gradient(circle at center,rgba(7,39,76,.72) 0 32%,rgba(3,16,35,.3) 34% 47%,transparent 49%),repeating-conic-gradient(from 0deg,rgba(192,232,255,.55) 0 3deg,transparent 3deg 15deg);box-shadow:inset 0 0 12px #2e9eff38,0 0 18px #208eff3d}.compass i{position:absolute;width:10px;height:33px;background:linear-gradient(#ff3b3b 0 45%,#eef8ff 46% 100%);clip-path:polygon(50% 0,100% 52%,50% 42%,0 52%);filter:drop-shadow(0 0 5px rgba(255,67,67,.9))}.compass b{position:absolute;width:36px;height:36px;border:1px dashed rgba(183,229,255,.42);border-radius:50%}.compass span{position:absolute;color:#cfeaff;font-size:7px;line-height:1}.compass .north{top:5px}.compass .east{right:6px;top:24px}.compass .south{bottom:5px}.compass .west{left:6px;top:24px}.map-controls{position:absolute;right:18px;top:90px;display:grid;width:45px;overflow:hidden;border:1px solid rgba(72,165,255,.38);border-radius:6px;background:#010d1c9e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.map-controls button{display:grid;place-items:center;height:39px;color:#dcefff;font-size:18px;background:transparent;border-bottom:1px solid rgba(72,165,255,.24)}.map-controls button.active{background:linear-gradient(180deg,#0a74ff,#044ad7)}.map-controls svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:1.8}.map-controls span{font-size:12px}.legend{position:absolute;left:26px;bottom:21px;display:grid;gap:8px;width:140px;padding:11px 12px;border:1px solid rgba(107,195,255,.42);border-radius:6px;background:#03101fd1;box-shadow:0 0 16px #005fff38}.legend div{display:flex;align-items:center;gap:8px;color:#d8ebff;font-size:12px}.legend-dot{display:grid;place-items:center;width:19px;height:19px;border-radius:4px;color:#fff;font-style:normal;font-family:var(--mono);font-size:12px}.legend-dot svg{width:14px;height:14px;fill:none;stroke:#fff;stroke-width:1.8}.legend-dot.blue{background:#136cff}.legend-dot.green{background:#03b667}.legend-dot.orange{background:#ff7427;font-weight:900}.legend-dot.gray{background:#546879}.map-frame .campus-map,.map-frame .map-grain,.map-frame .map-scanline,.map-frame .drone-marker,.map-frame .danger-marker,.map-frame .campus-card,.map-frame .hub-marker,.map-frame .compass,.map-frame .map-controls,.map-frame .map-attribution,.map-frame .legend{display:none}.command-dock{position:relative;z-index:5;display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,1.08fr) minmax(0,.84fr);gap:14px;align-items:stretch;min-height:267px;margin:-1px 0 0;padding:21px 16px 23px;border:1px solid rgba(33,145,255,.52);border-radius:0 0 14px 14px;background:linear-gradient(135deg,#072a53f2,#030f21fa 52%,#051f40f0);box-shadow:inset 0 1px #40c4ff2e,0 -12px 25px #006eff26;clip-path:polygon(20px 0,calc(100% - 20px) 0,100% 20px,100% 100%,55% 100%,53% calc(100% - 9px),47% calc(100% - 9px),45% 100%,0 100%,0 20px)}.dock-group{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);min-width:0}.dock-group+.dock-group{border-left:1px solid rgba(70,154,255,.24);padding-left:14px}.dock-group h2{position:relative;height:24px;margin:-2px 0 14px;color:#94dfff;font-size:16px;font-weight:700;text-align:center;line-height:24px;text-shadow:0 0 8px rgba(91,213,255,.5)}.dock-group h2:after{content:"";position:absolute;top:50%;width:86px;height:1px;margin-left:12px;background:linear-gradient(90deg,rgba(0,160,255,.42),transparent);transform:translateY(-50%) skew(-32deg)}.pod-control h2{text-align:left;padding-left:20px}.pod-control .control-card-head{height:30px;margin-bottom:12px;padding-right:0}.pod-control .control-card-switch,.pod-control .control-card-panel[data-control-panel=drone],.pod-control-grid>.gimbal-joystick,.pod-control-grid>.zoom-rail{display:none!important}.control-card-head{position:relative;display:block;width:100%;height:32px;margin:-2px 0 14px;padding-right:118px;min-width:0;max-width:100%}.control-card-head h2{display:block;width:100%;height:28px;margin:0;overflow:hidden;white-space:nowrap;line-height:28px}.control-card-head h2:after{width:24px}.control-card-switch{position:absolute;top:0;right:0;display:inline-grid;grid-template-columns:repeat(2,minmax(48px,1fr));width:clamp(96px,31%,112px);min-width:96px;height:32px;padding:2px;border:1px solid rgba(65,154,255,.34);border-radius:6px;background:#02122ad1;box-shadow:inset 0 1px #81d9ff1f}.control-card-switch button{min-width:0;border-radius:4px;color:#8dbdd8;font-size:12px;font-weight:800;letter-spacing:0;background:transparent}.control-card-switch button.active{color:#f3fbff;background:linear-gradient(180deg,#1a80f5fa,#0746adf5);box-shadow:inset 0 1px #c9f4ff47,0 0 14px #1d8bff47}.control-card-panel{display:none;min-width:0}.control-card-panel.active{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;justify-items:stretch;height:100%;min-height:192px}.control-card-panel[data-control-panel=drone]{align-items:center;justify-content:center;justify-items:center}.core-command{padding-inline:14px;grid-template-rows:auto minmax(0,1fr) auto}.core-command:before{content:"";position:absolute;left:16px;right:16px;top:17px;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(58,179,255,.34) 22%,transparent 42%,transparent 58%,rgba(58,179,255,.34) 78%,transparent)}.core-command>h2,.core-command>.command-row,.core-command:before{transition:opacity .16s ease}.core-command.advanced-open>h2,.core-command.advanced-open>.command-row,.core-command.advanced-open:before{opacity:0;pointer-events:none}.core-command h2{color:#b9ecff;font-size:17px;letter-spacing:0}.core-command h2:before,.core-command h2:after{content:"";position:absolute;top:50%;width:98px;height:1px;background:linear-gradient(90deg,transparent,rgba(59,190,255,.58));transform:translateY(-50%) skew(-28deg)}.core-command h2:before{right:calc(50% + 58px)}.core-command h2:after{left:calc(50% + 58px);margin-left:0;background:linear-gradient(90deg,rgba(59,190,255,.58),transparent)}.pod-control-grid{display:grid;grid-template-columns:minmax(98px,.7fr) minmax(156px,1fr);width:100%;height:min(100%,184px);gap:20px;align-self:center;align-items:stretch}.pod-mode-list{display:grid;grid-template-rows:repeat(4,1fr);height:100%;gap:5px}.pod-mode-list button,.pod-shot-tabs button{position:relative;min-width:0;padding:0;border:1px solid rgba(57,140,255,.34);color:#d9f3ff;font-weight:800;letter-spacing:0;background:linear-gradient(180deg,#15539ee6,#0a2e62f5);box-shadow:inset 0 1px #69d2ff2e}.pod-mode-list button{min-height:38px;height:auto;font-size:17px}.pod-mode-list button.active,.pod-shot-tabs button.active,.pod-mode-list button.is-fired,.pod-shot-tabs button.is-fired{border-color:#51ccffe6;color:#fff;background:linear-gradient(180deg,#1476ff,#0747bd);box-shadow:inset 0 1px #cdf4ff6b,0 0 16px #1380ff61}.pod-mode-list button:disabled,.pod-shot-tabs button:disabled,.gimbal-arrow:disabled,.pad-btn:disabled,.zoom-rail button:disabled,.lens-dial:disabled{cursor:wait;opacity:.72}.pod-camera-box{display:grid;grid-template-rows:42px minmax(0,1fr);justify-self:stretch;width:100%;height:100%;min-width:0;border:1px solid rgba(49,139,255,.58);background:radial-gradient(circle at 48% 68%,rgba(28,101,229,.28),transparent 38%),#031734e6}.pod-shot-tabs{display:grid;grid-template-columns:repeat(3,1fr)}.pod-shot-tabs button{height:42px;border-width:0 1px 1px 0;border-radius:0;font-size:16px;line-height:1;white-space:nowrap}.pod-shot-tabs button:last-child{border-right:0}.lens-dial{position:relative;place-self:center;width:min(102px,68%);aspect-ratio:1;border:1px solid rgba(49,135,255,.62);border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(63,130,238,.9) 0 26%,transparent 27%),radial-gradient(circle,#1355b4eb,#071f4beb 68%,#020d22f2);box-shadow:inset 0 0 22px #2c9bff40,0 0 18px #0061ff2e}.lens-dial span{position:absolute;inset:30%;border-radius:50%;background:#4b85e68c;box-shadow:inset 0 0 18px #072252bf}.direction-pad{position:relative;width:min(100%,clamp(108px,8vw,148px));aspect-ratio:1;border:1px solid rgba(35,137,255,.46);border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(90,173,255,.18),transparent 15%),radial-gradient(circle at 50% 40%,#195bb1e0,#041c40f2 72%);box-shadow:inset 0 0 26px #4facff2e,inset 0 -14px 22px #00000038,0 8px 18px #0000004d}.gimbal-joystick{position:relative;display:flex;align-items:center;justify-content:center;justify-self:center;width:min(100%,clamp(174px,12vw,230px));aspect-ratio:1;background:transparent;touch-action:none;user-select:none;-webkit-user-select:none}.drone-joystick{width:min(100%,clamp(142px,9.2vw,176px))}.gimbal-arrow{position:absolute;width:clamp(24px,14.8%,34px);height:clamp(24px,14.8%,34px);padding:0;border:0;opacity:.38;background:transparent;filter:blur(.2px);transition:opacity .18s ease,filter .18s ease,transform .18s ease}.gimbal-arrow:before,.gimbal-arrow:after{content:"";position:absolute;width:76%;height:21%;border-radius:10px;background:#82919694;box-shadow:inset 0 1px 2px #ffffffbf,0 2px 3px #5a646940;transition:background .18s ease,box-shadow .18s ease}.gimbal-arrow:before{left:3%;top:35%;transform:rotate(45deg)}.gimbal-arrow:after{right:3%;top:35%;transform:rotate(-45deg)}.gimbal-arrow.top{top:5.6%;left:50%;transform:translate(-50%)}.gimbal-arrow.bottom{bottom:5.6%;left:50%;transform:translate(-50%) rotate(180deg)}.gimbal-arrow.left{left:3.6%;top:50%;transform:translateY(-50%) rotate(-90deg)}.gimbal-arrow.right{right:3.6%;top:50%;transform:translateY(-50%) rotate(90deg)}.gimbal-arrow.active,.gimbal-arrow.is-fired{opacity:1;filter:drop-shadow(0 0 8px rgba(150,235,255,.95)) drop-shadow(0 0 18px rgba(80,210,255,.75))}.gimbal-arrow.active:before,.gimbal-arrow.active:after,.gimbal-arrow.is-fired:before,.gimbal-arrow.is-fired:after{background:#a5eefff2;box-shadow:inset 0 1px 2px #fffffff2,0 0 10px #73e1fff2,0 0 22px #46beffa6}.gimbal-arrow.top.active,.gimbal-arrow.top.is-fired{transform:translate(-50%) scale(1.12)}.gimbal-arrow.bottom.active,.gimbal-arrow.bottom.is-fired{transform:translate(-50%) rotate(180deg) scale(1.12)}.gimbal-arrow.left.active,.gimbal-arrow.left.is-fired{transform:translateY(-50%) rotate(-90deg) scale(1.12)}.gimbal-arrow.right.active,.gimbal-arrow.right.is-fired{transform:translateY(-50%) rotate(90deg) scale(1.12)}.direction-pad:before{content:"";position:absolute;inset:8px;border-radius:inherit;border:1px solid rgba(138,207,255,.12);pointer-events:none}.pad-center{position:absolute;left:50%;top:50%;width:27px;height:27px;border-radius:50%;background:radial-gradient(circle,#c0ecff 0 26%,#55acff 27% 46%,#18489ae0 47%);box-shadow:0 0 20px #3db9ff7a;transform:translate(-50%,-50%)}.gimbal-outer{position:relative;display:flex;align-items:center;justify-content:center;width:68%;height:68%;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:radial-gradient(circle at 32% 25%,#ffffff94,#ebf5f761,#b9c8cd4d,#91a0a557 72%,#ffffff6b);box-shadow:inset 18px 18px 36px #ffffff61,inset -18px -22px 40px #555f6457,0 20px 36px #46505538;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.gimbal-shadow-ring{position:absolute;width:79.4%;height:79.4%;border-radius:50%;background:radial-gradient(circle,#d2e1e433,#b9c8cc3d 38%,#2d373aa3 67%,#141c1ec7 82%,#e6eef06b);box-shadow:inset 0 18px 24px #0000007a,inset 0 -18px 28px #ffffff5c,0 0 20px #ffffff38}.gimbal-stick{position:relative;z-index:3;width:48.5%;height:48.5%;border:1px solid rgba(255,255,255,.65);border-radius:50%;cursor:grab;background:radial-gradient(circle at 35% 25%,#ffffffbf,#dce9ec94 32%,#b2c1c58c 68%,#87969a94);box-shadow:inset 10px 12px 22px #ffffff8c,inset -12px -16px 24px #69787d5c,0 10px 18px #1e282c61;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);transition:box-shadow .18s ease,transform .12s ease-out}.gimbal-stick:active,.gimbal-stick.active{cursor:grabbing}.gimbal-stick:before{content:"";position:absolute;inset:-6%;z-index:-1;border-radius:50%;background:linear-gradient(145deg,#ffffffb8,#d2e1e43d,#69787d40);box-shadow:inset 6px 8px 16px #ffffffa6,inset -8px -10px 16px #5f6e7340}.gimbal-stick.active{box-shadow:inset 10px 12px 22px #ffffff94,inset -12px -16px 24px #69787d5c,0 16px 26px #1e282c6b,0 0 24px #78e1ff61}.gimbal-dot{position:absolute;width:10.3%;height:10.3%;border-radius:50%;background:radial-gradient(circle at 35% 28%,#ffffffe6,#dce8ebd1 45%,#87969bad);box-shadow:inset 2px 2px 4px #ffffffbf,inset -2px -3px 4px #5a696e52,0 2px 4px #2832375c}.gimbal-dot.top{top:12.1%;left:50%;transform:translate(-50%)}.gimbal-dot.bottom{bottom:12.1%;left:50%;transform:translate(-50%)}.gimbal-dot.left{left:12.1%;top:50%;transform:translateY(-50%)}.gimbal-dot.right{right:12.1%;top:50%;transform:translateY(-50%)}.pad-btn{position:absolute;display:grid;place-items:center;width:39px;height:32px;border:1px solid rgba(102,195,255,.72);border-radius:5px;color:#e8fbff;font-size:14px;line-height:1;background:linear-gradient(180deg,#1a7fe5eb,#0846a0f5);box-shadow:inset 0 1px #cff6ff3d,0 0 10px #1889ff3d}.pad-btn:hover,.zoom-rail button:hover,.lens-dial:hover{filter:brightness(1.14)}.pad-btn.is-fired,.zoom-rail button.is-fired,.lens-dial.is-fired{border-color:#a2f2fff5;box-shadow:inset 0 1px #ffffff5c,0 0 18px #34c2ff75}.pad-btn.up{left:50%;top:28px;transform:translate(-50%)}.pad-btn.down{left:50%;bottom:28px;transform:translate(-50%)}.pad-btn.left{left:20px;top:50%;transform:translateY(-50%)}.pad-btn.right{right:20px;top:50%;transform:translateY(-50%)}.zoom-rail{display:grid;grid-template-rows:39px 1fr 39px;justify-items:center;align-items:center;justify-self:center;width:min(92%,44px);height:clamp(122px,8vw,148px);border:1px solid rgba(60,151,255,.44);border-radius:24px;background:linear-gradient(180deg,#0e4fa1e6,#051f4cf5);box-shadow:inset 0 0 18px #4db4ff33,0 7px 14px #00000047}.zoom-rail button{display:grid;place-items:center;width:min(100%,34px);height:34px;border-radius:50%;color:#bceaff;font-size:26px;line-height:1;background:transparent}.zoom-rail span{width:10px;height:10px;border-radius:50%;background:#8ddeff;box-shadow:0 0 14px #5cd2ffc7}.drone-pad-row{display:grid;grid-template-columns:repeat(2,minmax(132px,1fr));gap:clamp(18px,4.5%,30px);justify-content:center;justify-items:center;align-items:center;width:min(100%,520px);height:100%;min-height:192px}.drone-pad-unit{display:grid;grid-template-rows:24px minmax(0,1fr);justify-items:center;align-items:center;width:100%;height:100%;gap:10px}.drone-pad-unit>span{color:#a9e8ff;font-size:13px;font-weight:800;line-height:24px;text-shadow:0 0 8px rgba(57,194,255,.4)}.scene-mode h2{text-align:center}.segmented{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden;height:31px;margin-bottom:10px;border:1px solid rgba(55,138,255,.26);border-radius:5px}.segmented button{color:#bcd7ec;font-size:12px;background:#041731ad;border-right:1px solid rgba(55,138,255,.2)}.segmented button.active{color:#fff;background:linear-gradient(180deg,#0d68ff,#053cae)}.mini-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.scene-actions{align-self:center;height:min(100%,120px)}.mini-actions button{display:grid;justify-items:center;align-content:center;gap:6px;height:60px;border:1px solid rgba(48,137,255,.24);border-radius:6px;color:#c6e8ff;font-size:11px;background:linear-gradient(180deg,#092d5bdb,#031227eb)}.mini-actions svg{width:27px;height:27px;fill:none;stroke:#9ed9ff;stroke-width:1.7}.command-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));justify-content:stretch;align-items:center;align-self:center;gap:14px;height:min(100%,120px);padding-top:0}.command-btn{position:relative;display:grid;justify-items:center;grid-template-rows:minmax(52px,1fr) 20px;align-items:center;align-content:center;gap:7px;min-width:0;width:100%;height:100%;min-height:112px;padding:9px 9px 8px;border:1px solid rgba(77,176,255,.52);border-radius:8px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.11),transparent 34%),linear-gradient(160deg,#073366,#041b36);box-shadow:inset 0 1px #fff3,inset 0 -18px 28px #0000002e,0 0 12px #0075ff29;transition:transform .24s cubic-bezier(.16,1,.3,1),filter .24s cubic-bezier(.16,1,.3,1),border-color .24s cubic-bezier(.16,1,.3,1),box-shadow .24s cubic-bezier(.16,1,.3,1)}.command-btn:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 22%,rgba(255,255,255,.22),transparent 42%),linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent);opacity:.92}.command-btn:after{content:none}.command-btn:hover{filter:brightness(1.08);transform:translateY(-3px) scale(1.015)}.command-btn.is-active{transform:translateY(-4px) scale(1.025);border-color:#8be7ffeb;filter:brightness(1.12);animation:commandBreathe 1.7s ease-in-out infinite}.command-btn:disabled{cursor:wait}.command-btn.is-pending{border-color:#ffc656f2;filter:brightness(1.05) saturate(1.08)}.command-btn strong{position:relative;z-index:1;font-size:14px;font-weight:800;line-height:1;white-space:nowrap;text-shadow:0 2px 6px rgba(0,0,0,.55),0 0 8px rgba(255,255,255,.18)}.advanced-command-panel{position:relative;z-index:8;align-self:end;min-width:0;margin-top:10px}.advanced-command-summary{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr) 24px;align-items:center;height:41px;padding:0 9px 0 10px;border:1px solid rgba(48,143,255,.28);border-radius:6px;color:#f1fbff;cursor:pointer;list-style:none;background:linear-gradient(90deg,#06447ff2,#082f5bf0 58%,#052044f5);box-shadow:inset 0 1px #8be7ff2e,0 0 18px #0087ff24}.advanced-command-summary::-webkit-details-marker{display:none}.advanced-command-summary strong{min-width:0;overflow:hidden;font-size:16px;font-weight:900;line-height:1;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 0 10px rgba(61,219,255,.48)}.advanced-command-summary svg{width:20px;height:20px;fill:none;stroke:#bcecff;stroke-width:1.9;filter:drop-shadow(0 0 6px rgba(82,216,255,.42))}.advanced-command-cue{position:relative;width:19px;height:22px;filter:drop-shadow(0 0 8px rgba(18,232,255,.72))}.advanced-command-cue:before,.advanced-command-cue:after{content:"";position:absolute;top:4px;width:8px;height:14px;border-radius:2px;background:linear-gradient(180deg,#36f1ff,#167cff);transform:skew(-24deg);opacity:.78}.advanced-command-cue:before{left:2px}.advanced-command-cue:after{left:10px;opacity:.52}.advanced-command-body{position:absolute;left:50%;bottom:calc(100% + 8px);display:grid;width:min(374px,100%);gap:6px;padding:8px;border:1px solid rgba(69,164,255,.38);border-radius:8px;background:linear-gradient(180deg,#0a305bfa,#041733fa);box-shadow:inset 0 1px #9be4ff33,0 16px 34px #0008167a,0 0 22px #0084ff2e;transform:translate(-50%)}.advanced-command-panel:not([open]) .advanced-command-body{display:none}.advanced-command-switches{display:grid;grid-template-columns:1fr;gap:5px}.advanced-switch{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;min-width:0;height:24px;padding:0 4px 0 0;color:#bddef3;font-size:13px;font-weight:800;text-align:left;background:transparent}.advanced-switch span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.advanced-switch em{min-width:56px;height:22px;padding:0 7px;border-radius:999px;color:#fff;font-size:12px;font-style:normal;font-weight:900;line-height:22px;text-align:center;background:linear-gradient(180deg,#68d991,#38c875)}.advanced-switch i{position:relative;width:42px;height:23px;border-radius:999px;background:#7289a05c;box-shadow:inset 0 1px 1px #ffffff1f,inset 0 -4px 10px #00000029}.advanced-switch i:after{content:"";position:absolute;top:4px;left:4px;width:15px;height:15px;border-radius:50%;background:#f2f6fb;box-shadow:0 2px 6px #000e2352;transition:transform .18s ease}.advanced-switch.is-active i{background:linear-gradient(180deg,#6de094,#31c46c)}.advanced-switch.is-active i:after{transform:translate(19px)}.advanced-command-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.advanced-command-action,.advanced-command-primary{min-width:0;height:30px;border:1px solid rgba(126,178,235,.42);border-radius:4px;color:#f3fbff;font-size:12px;font-weight:900;background:linear-gradient(180deg,#84a9dcf5,#5984bdf0);box-shadow:inset 0 1px #ffffff38,0 6px 13px #000d1f2e}.advanced-command-action.warning{border-color:#ffd28b8f;background:linear-gradient(180deg,#facc80f5,#de9941f5)}.advanced-command-primary{width:100%;height:32px;border-color:#3f99ff9e;background:linear-gradient(180deg,#1966d6,#0b4caf)}.advanced-command-action:hover,.advanced-command-primary:hover,.advanced-switch:hover{filter:brightness(1.08)}.advanced-command-action.is-fired,.advanced-command-primary.is-fired,.advanced-switch.is-fired{box-shadow:inset 0 1px #ffffff42,0 0 0 1px #6ee8ff7a,0 0 18px #2ab4ff52}.advanced-command-action:disabled,.advanced-command-primary:disabled,.advanced-switch:disabled{cursor:wait;opacity:.78}.flight-logo{position:relative;z-index:1;display:grid;place-items:center;width:clamp(44px,3.3vw,56px);height:clamp(42px,3.1vw,52px);color:#9fb8cf;opacity:.72;filter:none}.flight-logo svg{width:100%;height:100%;overflow:visible}.flight-logo path,.flight-logo circle,.flight-logo rect,.flight-logo ellipse{vector-effect:non-scaling-stroke}.logo-drone,.logo-arrow,.logo-home,.logo-route,.logo-warning,.logo-pause-bars{fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.logo-arrow-fill{fill:#9fb8cfb8;stroke:none;stroke-width:0;stroke-linejoin:round;filter:none}.logo-arrow,.logo-home{stroke-width:4.8}.logo-route{stroke-width:3.4;stroke-dasharray:4 5}.logo-rotor,.logo-body{fill:#9fb8cf75;stroke:currentColor;stroke-width:2.8}.logo-ring{fill:none;stroke:currentColor;stroke-width:3;opacity:.42}.logo-pause-ring{fill:none;stroke:currentColor;stroke-width:4;opacity:.58}.logo-warning{fill:none;stroke-width:4;opacity:.7}.takeoff-logo,.return-logo,.pause-logo,.landing-logo{color:#9fb8cf}.takeoff{background:radial-gradient(circle at 50% 18%,rgba(178,255,223,.24),transparent 39%),linear-gradient(160deg,#0f916d,#063b3d 82%);border-color:#1ef6a69e;box-shadow:inset 0 1px #c9ffec3d,inset 0 -18px 30px #00382d6b,0 0 15px #14e19733}.return{background:radial-gradient(circle at 50% 18%,rgba(176,218,255,.24),transparent 39%),linear-gradient(160deg,#0f6dcc,#063068 84%);border-color:#3da0ffa3}.pause{background:radial-gradient(circle at 50% 20%,rgba(255,223,150,.24),transparent 40%),linear-gradient(160deg,#bd6d10,#5f2b05 84%);border-color:#ffa125a8}.landing{background:radial-gradient(circle at 50% 18%,rgba(255,205,200,.23),transparent 40%),linear-gradient(160deg,#b33d3d,#58151d 84%);border-color:#ff5b56a8}.arrow{position:relative;width:42px;height:43px;border:0;filter:drop-shadow(0 0 10px rgba(255,255,255,.75));z-index:1}.arrow:after{content:"";position:absolute;background:currentColor}.arrow.up:after{inset:0 8px 13px;clip-path:polygon(50% 0,100% 42%,70% 42%,70% 100%,30% 100%,30% 42%,0 42%);background:currentColor}.arrow:before{content:"";position:absolute;left:7px;bottom:1px;width:28px;height:8px;border:3px solid currentColor;border-top:0;opacity:.82}.arrow.up{color:#a3ffe2;margin-top:-1px}.arrow.down{color:#ffb4a5;margin-top:-1px}.arrow.down:after{inset:5px 8px 12px;clip-path:polygon(30% 0,70% 0,70% 58%,100% 58%,50% 100%,0 58%,30% 58%)}.turn-arrow{position:relative;width:38px;height:31px;margin-top:4px;border:7px solid #a8d8ff;border-right:0;border-top:0;border-radius:0 0 0 22px;filter:drop-shadow(0 0 10px rgba(126,190,255,.7));z-index:1}.turn-arrow:after{content:"";position:absolute;top:-11px;left:-6px;border-top:11px solid transparent;border-bottom:11px solid transparent;border-right:17px solid #a8d8ff}.pause-icon{position:relative;width:39px;height:39px;margin-top:3px;clip-path:polygon(50% 0,91% 25%,91% 75%,50% 100%,9% 75%,9% 25%);background:#ff9d29;box-shadow:0 0 16px #ff9925d9;z-index:1}.pause-icon:before,.pause-icon:after{content:"";position:absolute;top:11px;width:6px;height:17px;background:#fff}.pause-icon:before{left:13px}.pause-icon:after{right:13px}.scene-actions button{width:100%;height:min(100%,120px);align-self:center;min-height:112px;padding:12px 10px 10px;gap:8px}.scene-actions svg{width:clamp(34px,2.5vw,44px);height:clamp(34px,2.5vw,44px);stroke-width:1.75}.scene-actions button span{white-space:nowrap;font-size:13px;font-weight:700;line-height:1.1}.mini-actions button.active,.scene-actions button.active{border-color:#2aeaa9c2;color:#eafff8;background:radial-gradient(circle at 50% 0,rgba(34,255,184,.2),transparent 48%),linear-gradient(180deg,#094854e6,#041d2ef2)}.dimmed .map-frame,.dimmed .right-panel,.dimmed .command-dock,.dimmed .sidebar{filter:brightness(.78) saturate(.9)}.dock-notch{position:absolute;left:50%;bottom:-1px;width:70px;height:17px;transform:translate(-50%);border-top:1px solid rgba(75,179,255,.55);clip-path:polygon(0 0,30% 100%,70% 100%,100% 0);background:#0b315d}.dock-notch:after{content:"";position:absolute;left:50%;top:5px;width:12px;height:12px;border-right:2px solid #85d3ff;border-bottom:2px solid #85d3ff;transform:translate(-50%) rotate(45deg)}.right-panel{display:grid;grid-template-rows:max-content minmax(360px,1fr);align-content:stretch;gap:9px;min-height:0}.status-panel,.task-panel{padding:12px 8px 9px}.status-panel h2,.task-panel h2{position:relative;display:flex;align-items:center;gap:8px;height:22px;margin:0 0 7px;padding-left:4px;font-size:14px;font-weight:800}.status-panel h2 span,.task-panel h2 span{width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:11px solid #188bff;filter:drop-shadow(0 0 8px #0da3ff)}.sub-card{position:relative;overflow:hidden;padding:11px;margin-bottom:8px;border:1px solid rgba(38,143,255,.45);border-radius:7px;background:linear-gradient(135deg,#08274cd9,#031225e6)}.card-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:13px}.card-title small{color:#8eb3d1;font-size:11px;font-weight:500}.pill{min-width:43px;padding:4px 8px;border:1px solid rgba(20,236,145,.32);border-radius:5px;color:#21f09c;font-size:12px;line-height:1;text-align:center;background:#085f3859}.pill.fly{color:#18ffa0}.hangar-visual{display:grid;grid-template-columns:138px 1fr;gap:10px;align-items:center}.hangar-image{width:100%;height:72px;object-fit:contain;border-bottom:0;filter:saturate(1.08) contrast(1.05);background:transparent}.hangar-house{position:relative;height:72px;overflow:hidden;border-bottom:2px solid rgba(33,169,255,.6)}.hangar-house:before{content:"";position:absolute;left:8px;top:7px;width:112px;height:50px;transform:perspective(160px) rotateX(6deg);border:1px solid rgba(60,203,255,.68);background:linear-gradient(90deg,#0a487ff5,#1070addb),linear-gradient(0deg,transparent 45%,rgba(110,222,255,.32) 46% 50%,transparent 51%);box-shadow:0 0 16px #00a0ff57}.hangar-house:after{content:"DRONE DOCK";position:absolute;left:39px;top:22px;color:#e4fbff;font-size:7px;font-family:var(--mono)}.hangar-house span{position:absolute;bottom:2px;width:24px;height:30px;background:linear-gradient(#0b2f57,#061c37);border:1px solid rgba(89,205,255,.35)}.hangar-house span:nth-child(1){left:22px}.hangar-house span:nth-child(2){left:54px}.hangar-house span:nth-child(3){left:86px}.hangar-status{display:grid;gap:7px}.hangar-status span{display:grid;gap:3px;color:#84aaca;font-size:10px}.hangar-status b{padding:5px 4px;border-radius:5px;color:#eef8ff;font-size:12px;text-align:center;background:#072953cc}.airport-state{padding:10px}.airport-state .card-title{margin-bottom:7px}.airport-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 8px}.airport-status-grid div{display:grid;grid-template-columns:minmax(48px,.88fr) minmax(0,1.12fr);align-items:center;min-width:0;min-height:22px;padding:4px 6px;border:1px solid rgba(61,154,255,.2);border-radius:4px;background:#051b39a8}.airport-status-grid span{min-width:0;overflow:hidden;color:#9ab9d2;font-size:10px;line-height:1.1;white-space:nowrap;text-overflow:ellipsis}.airport-status-grid b{min-width:0;overflow:hidden;color:#f3fbff;font-family:var(--mono);font-size:11px;line-height:1.1;text-align:right;white-space:nowrap;text-overflow:ellipsis}.airport-status-grid b.green-text{color:var(--green)}.airport-info-title{display:flex;align-items:center;gap:6px;margin:7px 0 5px;color:#c8edff;font-size:11px;font-weight:800}.airport-info-title:before{content:"";width:3px;height:12px;border-radius:999px;background:linear-gradient(180deg,#31d8ff,#167cff);box-shadow:0 0 8px #31d8ff8c}.airport-status-grid.aircraft div{background:#072344b8}.green-text{color:var(--green)!important}.kv-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.kv-row.four{grid-template-columns:repeat(4,1fr)}.kv-row div{display:grid;gap:4px}.kv-row span{color:#8fb1cd;font-size:10px}.kv-row b{color:#f7fbff;font-family:var(--mono);font-size:13px}.airport-video{display:grid;grid-template-rows:39px auto;align-content:start;min-height:0;height:auto;padding:0;border-color:#2b8fff6b;border-radius:8px;background:#061d36}.status-panel>.airport-video{align-self:start;height:fit-content;max-height:fit-content}.airport-video-head{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;height:39px;padding:0 13px 0 15px;background:linear-gradient(180deg,#22365bfa,#192c4efa)}.airport-video-head strong{min-width:0;overflow:hidden;color:#f7fbff;font-size:18px;font-weight:900;line-height:1;white-space:nowrap;text-overflow:ellipsis}.airport-video-size{display:inline-grid;place-items:center;flex:0 0 auto;width:31px;height:31px;padding:0;border:0;border-radius:5px;color:#dbe9ff;background:transparent}.airport-video-size:hover{background:#ffffff14}.airport-video-size svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.9}.airport-video-size span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.airport-video-body{display:grid;align-self:start;min-height:0;height:auto}.airport-video-frame{position:relative;display:grid;place-items:center;align-self:start;width:100%;min-height:0;height:auto;aspect-ratio:16 / 9;overflow:hidden;border:0;border-radius:0 0 8px 8px;isolation:isolate;background:linear-gradient(rgba(86,185,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(86,185,255,.06) 1px,transparent 1px),radial-gradient(circle at 50% 46%,rgba(33,157,255,.18),transparent 48%),linear-gradient(135deg,#051e3ae6,#020d1df5);background-size:26px 26px,26px 26px,auto,auto;box-shadow:inset 0 1px #77d6ff24,inset 0 0 24px #0f5ba22e}.airport-video-overlay-controls{position:absolute;right:8px;bottom:8px;z-index:5;display:flex;gap:6px;opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .16s ease,transform .16s ease}.airport-video-frame:hover .airport-video-overlay-controls,.airport-video-frame:focus-within .airport-video-overlay-controls{opacity:1;pointer-events:auto;transform:translateY(0)}body.airport-video-map-swapped .center-stage>.airport-video{grid-template-rows:42px minmax(0,1fr);align-content:stretch;min-height:0;height:100%;max-height:none;aspect-ratio:auto;margin:0;padding:0;border-radius:8px;background:#020b17;box-shadow:0 0 0 1px #66d1ff57,0 18px 58px #000510b8,inset 0 1px #77d6ff24}body.airport-video-map-swapped .center-stage>.airport-video .airport-video-frame{align-self:stretch;min-height:0;height:100%;aspect-ratio:auto;border-radius:0 0 8px 8px}body.airport-video-map-swapped .center-stage>.airport-video .airport-video-body{align-self:stretch;height:100%}body.airport-video-map-swapped .center-stage>.airport-video .airport-video-frame video{object-fit:cover}body.airport-video-map-swapped .status-panel>.map-frame{min-height:0;height:auto;aspect-ratio:16 / 9;margin-bottom:8px;overflow:hidden;border:1px solid rgba(43,143,255,.42);border-radius:8px;background:#061d36}body.airport-video-map-swapped .status-panel>.map-frame .label-card,body.airport-video-map-swapped .status-panel>.map-frame .hub-marker,body.airport-video-map-swapped .status-panel>.map-frame .drone-marker,body.airport-video-map-swapped .status-panel>.map-frame .danger-marker,body.airport-video-map-swapped .status-panel>.map-frame .compass,body.airport-video-map-swapped .status-panel>.map-frame .map-controls,body.airport-video-map-swapped .status-panel>.map-frame .map-attribution,body.airport-video-map-swapped .status-panel>.map-frame .legend{display:none}.airport-video-frame:fullscreen{width:100vw;height:100vh;min-height:0;border-radius:0;background:#020b17}.airport-video-frame:fullscreen video{object-fit:contain}.airport-video-frame:before,.airport-video-frame:after{content:"";position:absolute;pointer-events:none}.airport-video-frame:before{inset:0;background:linear-gradient(90deg,transparent,rgba(57,174,255,.16),transparent),linear-gradient(180deg,rgba(255,255,255,.05),transparent 26%,transparent 74%,rgba(35,148,255,.08));opacity:.62}.airport-video-frame:after{left:12px;right:12px;top:50%;height:1px;background:linear-gradient(90deg,transparent,rgba(91,217,255,.38),transparent);box-shadow:0 0 14px #2fb6ff33}.airport-video-frame video{position:absolute;inset:0;z-index:2;width:100%;height:100%;object-fit:cover;background:#020b17}.airport-video-placeholder{position:relative;z-index:1;display:grid;justify-items:center;gap:7px;padding:12px;text-align:center}.airport-video-placeholder svg{width:34px;height:34px;color:#8ee4ff;fill:none;stroke:currentColor;stroke-width:1.8;filter:drop-shadow(0 0 9px rgba(76,199,255,.54))}.airport-video-placeholder strong{color:#f2fbff;font-size:14px;font-weight:900}.airport-video-placeholder span{color:#88afcb;font-size:11px;font-weight:700}.airport-video-frame.is-configured .airport-video-placeholder span{color:#7ae7ff}.airport-video-frame.is-loading .airport-video-placeholder svg{animation:airport-video-pulse 1.2s ease-in-out infinite}.airport-video-frame.is-loading .airport-video-placeholder span{color:#9defff}.airport-video-frame.is-error{border-color:#ff985f80;box-shadow:inset 0 1px #ffcd9829,inset 0 0 24px #bc4b192e}.airport-video-frame.is-error .airport-video-placeholder svg,.airport-video-frame.is-error .airport-video-placeholder span{color:#ffc092}.airport-video-frame.is-playing .airport-video-placeholder{display:none}@keyframes airport-video-pulse{0%,to{opacity:.62;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.airport-video-refresh,.airport-video-fullscreen{position:relative;display:inline-grid;place-items:center;width:34px;height:34px;padding:0;border:1px solid rgba(52,174,255,.45);border-radius:6px;color:#f2fbff;background:linear-gradient(180deg,#1478e8f5,#064aa8fa);box-shadow:inset 0 1px #b8ecff3d,0 8px 18px #000a1a57;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.airport-video-fullscreen{border-color:#5ee2ff5c;background:linear-gradient(180deg,#0a4d97f5,#032b5efa)}.airport-video-refresh svg,.airport-video-fullscreen svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9}.airport-video-refresh span,.airport-video-fullscreen span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.airport-video-refresh:hover:not(:disabled),.airport-video-fullscreen:hover:not(:disabled){filter:brightness(1.08)}.airport-video-refresh:disabled,.airport-video-fullscreen:disabled{cursor:wait;opacity:.72}.task-panel{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-height:0}.task-tabs{display:grid;grid-template-columns:1fr 1fr;height:28px;overflow:hidden;border-radius:6px;margin-bottom:6px;background:#03142bc7;border:1px solid rgba(36,140,255,.3)}.task-tabs button{color:#a9c6df;font-size:12px;background:transparent}.task-tabs button.active{color:#fff;background:linear-gradient(180deg,#0a61ef,#063ea6)}.task-tabs i{display:inline-grid;place-items:center;min-width:16px;height:16px;margin-left:4px;border-radius:9px;color:#fff;font-style:normal;font-size:10px;background:#ff4242}.task-list{display:grid;align-content:start;gap:4px;min-height:0;overflow:auto;padding-right:2px}.task-item{display:grid;grid-template-columns:minmax(0,1fr) 32px 56px 38px 38px;align-items:center;gap:5px;min-height:40px;padding:4px 6px;border-radius:5px;background:#0723468a}.task-main strong{display:block;margin-bottom:2px;overflow:hidden;color:#e7f5ff;font-size:12px;white-space:nowrap;text-overflow:ellipsis}.progress{height:3px;overflow:hidden;border-radius:5px;background:#26527db8}.progress span{display:block;height:100%;background:linear-gradient(90deg,#16f4a3,#19b3ff);box-shadow:0 0 7px #26ebbc99}.percent,.remain{color:#bad2e6;font-size:10px}.task-item button{height:21px;border:1px solid rgba(0,159,255,.48);border-radius:4px;color:#1ad0ff;font-size:11px;background:#042750c7}.task-item button.stop{border-color:#ff48378a;color:#ff553f}.task-item.paused{background:#3e2f0c85}.task-item.stopped{opacity:.62;background:#39121285}.task-item.completed .progress span{background:linear-gradient(90deg,#32ffaa,#d5fff3)}.task-item button:disabled{opacity:.45;cursor:default}.alert-list{display:grid;align-content:start;gap:4px;min-height:0;overflow:auto;margin-top:6px;padding-right:2px}.task-panel.show-alerts .task-list{display:none}.task-panel.show-alerts .alert-list{margin-top:0}.alert-row{display:grid;grid-template-columns:17px 34px minmax(0,1fr) 55px 16px;align-items:center;gap:5px;height:27px;padding:0 5px;border-radius:5px;background:#051c39a6}.alert-row i{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;color:#fff;font-family:var(--mono);font-size:11px;font-style:normal;font-weight:900;background:#ff3c2c}.alert-row b{display:grid;place-items:center;height:19px;border-radius:3px;color:#fff;font-size:11px}.alert-row.high b{background:#be382b}.alert-row.mid i,.alert-row.mid b{background:#ff8a22}.alert-row.low i,.alert-row.low b{background:#ffb12f}.alert-row span,.alert-row time{overflow:hidden;color:#d7e8f7;font-size:11px;white-space:nowrap;text-overflow:ellipsis}.alert-row time{color:#aac2d8;font-family:var(--mono);font-size:10px}.alert-row svg{width:16px;height:16px;fill:none;stroke:#81b9ee;stroke-width:1.8}.more-btn{height:33px;margin-top:8px;border:1px solid rgba(38,143,255,.38);border-radius:5px;color:#cbe8ff;font-size:12px;background:#03152cc2}.route-planning-page,.mark-page,.live-page,.infer-page,.algorithm-page,.event-page,.model-page,.record-page,.track-page,.media-page,.organization-page,.personnel-page,.device-page,.workspace-page,.settings-page,.operation-log-page,.audit-log-page,.alarm-config-page,.scout-page,.alarm-record-page,.flight-stats-page,.weather-ban-page{z-index:1;display:none;grid-column:2 / 4;grid-template-rows:auto auto minmax(0,1fr) auto;gap:13px;min-width:0;min-height:0;padding:16px 18px 14px}.module-route .center-stage,.module-route .right-panel,.module-mark .center-stage,.module-mark .right-panel,.module-live .center-stage,.module-live .right-panel,.module-infer .center-stage,.module-infer .right-panel,.module-algorithm .center-stage,.module-algorithm .right-panel,.module-event .center-stage,.module-event .right-panel,.module-model .center-stage,.module-model .right-panel,.module-record .center-stage,.module-record .right-panel,.module-track .center-stage,.module-track .right-panel,.module-media .center-stage,.module-media .right-panel,.module-organization .center-stage,.module-organization .right-panel,.module-personnel .center-stage,.module-personnel .right-panel,.module-device .center-stage,.module-device .right-panel,.module-workspace .center-stage,.module-workspace .right-panel,.module-settings .center-stage,.module-settings .right-panel,.module-operation-log .center-stage,.module-operation-log .right-panel,.module-audit-log .center-stage,.module-audit-log .right-panel,.module-alarm-config .center-stage,.module-alarm-config .right-panel,.module-scout .center-stage,.module-scout .right-panel,.module-alarm-record .center-stage,.module-alarm-record .right-panel,.module-flight-stats .center-stage,.module-flight-stats .right-panel,.module-weather-ban .center-stage,.module-weather-ban .right-panel{display:none}.module-route .route-planning-page,.module-mark .mark-page{display:grid;animation:routePageIn .44s cubic-bezier(.16,1,.3,1) both}.live-page{grid-template-rows:auto minmax(0,1fr)}.module-live .live-page,.module-infer .infer-page{display:grid;animation:routePageIn .44s cubic-bezier(.16,1,.3,1) both}.algorithm-page{grid-template-rows:auto minmax(170px,.82fr) minmax(0,1fr) auto}.module-algorithm .algorithm-page,.module-event .event-page{display:grid;animation:routePageIn .44s cubic-bezier(.16,1,.3,1) both}.model-page{grid-template-rows:auto minmax(0,1fr)}.module-model .model-page,.module-record .record-page{display:grid;animation:routePageIn .44s cubic-bezier(.16,1,.3,1) both}.track-page{grid-template-rows:auto minmax(0,1fr)}.module-track .track-page,.module-media .media-page,.module-organization .organization-page,.module-personnel .personnel-page,.module-device .device-page,.module-workspace .workspace-page,.module-settings .settings-page,.module-operation-log .operation-log-page,.module-audit-log .audit-log-page,.module-alarm-config .alarm-config-page,.module-scout .scout-page,.module-alarm-record .alarm-record-page,.module-flight-stats .flight-stats-page,.module-weather-ban .weather-ban-page{display:grid;animation:routePageIn .44s cubic-bezier(.16,1,.3,1) both}.route-planning-page:after,.mark-page:after,.live-page:after,.infer-page:after,.algorithm-page:after,.event-page:after,.model-page:after,.record-page:after,.track-page:after,.media-page:after,.organization-page:after,.personnel-page:after,.device-page:after,.workspace-page:after,.settings-page:after,.operation-log-page:after,.audit-log-page:after,.alarm-config-page:after,.scout-page:after,.alarm-record-page:after,.flight-stats-page:after,.weather-ban-page:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 0 32%,rgba(42,174,255,.06) 32.2% 32.35%,transparent 32.6%),repeating-linear-gradient(0deg,rgba(157,226,255,.024) 0,rgba(157,226,255,.024) 1px,transparent 1px,transparent 5px);opacity:.5}.route-page-head,.route-toolbar,.route-grid,.mark-workspace,.live-workspace,.infer-workspace,.algorithm-library,.algorithm-config-panel,.event-workspace,.model-workspace,.record-workspace,.track-workspace,.media-workspace,.organization-workspace,.personnel-workspace,.device-workspace,.workspace-workspace,.settings-workspace,.operation-workspace,.doc-workspace,.route-pagination{position:relative;z-index:1}.route-page-head{display:flex;align-items:end;justify-content:space-between;gap:18px;padding:2px 4px 0}.module-eyebrow{display:block;margin-bottom:5px;color:#77bde8;font-size:12px;letter-spacing:0}.route-page-head h2{margin:0;color:#eef9ff;font-size:24px;line-height:1.1;font-weight:900;letter-spacing:0}.route-summary{display:grid;grid-template-columns:repeat(4,auto);gap:8px}.route-summary span{min-width:94px;padding:7px 10px;border:1px solid rgba(55,161,255,.31);border-radius:6px;color:#9fc6df;font-size:12px;text-align:center;background:#041b36ad;box-shadow:inset 0 1px #9ae5ff1a}.route-summary b{color:#42e1ff;font-family:var(--mono);font-size:18px}.route-toolbar{display:grid;grid-template-columns:186px 196px minmax(300px,1fr) 76px 76px minmax(10px,1fr) 112px 112px;align-items:end;gap:9px;min-height:82px;padding:11px 12px;border:1px solid rgba(44,147,255,.33);border-radius:7px;background:linear-gradient(180deg,#072548bd,#031327d1),radial-gradient(circle at 12% 0,rgba(44,179,255,.16),transparent 35%);box-shadow:inset 0 1px #8fdeff1f}.route-field{display:grid;gap:6px;min-width:0}.route-field>span{color:#8fb6d2;font-size:12px;line-height:1}.route-field input,.route-field select,.route-pagination input{width:100%;height:35px;min-width:0;border:1px solid rgba(80,168,255,.32);border-radius:5px;outline:none;color:#e7f6ff;font-family:var(--sans);font-size:12px;background:#031225c2;box-shadow:inset 0 1px #a6e4ff14}.route-field input,.route-field select{padding:0 10px}.route-field input::placeholder{color:#6f94b2}.route-field input:focus,.route-field select:focus,.route-pagination input:focus{border-color:#2ed6ff9e;box-shadow:inset 0 1px #a6e4ff1f,0 0 0 2px #2ed6ff14}.route-date-range{display:grid;grid-template-columns:20px minmax(0,1fr) 20px minmax(0,1fr);align-items:center;gap:7px}.route-date-range svg{width:17px;height:17px;fill:none;stroke:#7ecfff;stroke-width:1.8}.route-date-range em{color:#9fc2da;font-size:12px;font-style:normal;text-align:center}.route-tool{display:flex;align-items:center;justify-content:center;gap:6px;height:35px;padding:0 12px;border:1px solid rgba(73,171,255,.38);border-radius:5px;color:#e8f8ff;font-size:12px;font-weight:800;white-space:nowrap;background:linear-gradient(180deg,#08488be6,#05254ef5);box-shadow:inset 0 1px #a6e4ff24}.route-tool svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2}.route-tool:hover{border-color:#4ed5ff9e;color:#fff;background:linear-gradient(180deg,#0a62b3f0,#043064fa)}.route-reset{color:#d4e8f6;background:linear-gradient(180deg,#263a4de6,#142232f5)}.route-import{border-color:#25e8a56e;color:#dffff6;background:linear-gradient(180deg,#057e52eb,#04453ef5)}.route-create{border-color:#46b2ff94;background:linear-gradient(180deg,#0f80fff2,#064ebcfa)}.route-danger{border-color:#ff606085;background:linear-gradient(180deg,#d8484ceb,#8b2630f5)}.route-tool:disabled{cursor:not-allowed;opacity:.46;filter:grayscale(.25)}.route-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(390px,100%),1fr));grid-auto-rows:188px;align-content:start;gap:12px;min-height:0;overflow:auto;padding:1px 2px 12px;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.route-grid.is-empty:after{content:"未匹配到航线";display:grid;grid-column:1 / -1;place-items:center;min-height:236px;border:1px dashed rgba(77,175,255,.36);border-radius:7px;color:#8fb8d6;font-size:15px;background:#0312259e}.route-card{position:relative;display:grid;grid-template-columns:minmax(160px,42%) minmax(0,1fr);height:100%;min-width:0;min-height:0;overflow:hidden;border:1px solid rgba(47,150,255,.28);border-radius:7px;background:linear-gradient(135deg,#082a52d1,#031327ed);box-shadow:inset 0 1px #8bdeff1a,0 10px 22px #0000002e;transition:transform .24s cubic-bezier(.16,1,.3,1),border-color .24s cubic-bezier(.16,1,.3,1),opacity .18s ease;animation:routeCardIn .42s cubic-bezier(.16,1,.3,1) both;animation-delay:calc(var(--route-index, 0) * 48ms);will-change:transform,opacity}.route-card:hover,.route-card.selected{transform:translateY(-4px) scale(1.006);border-color:#2fd6ff9e}.route-card.selected{background:radial-gradient(circle at 6% 10%,rgba(38,223,255,.18),transparent 38%),linear-gradient(135deg,#093660e6,#031327f5)}.route-card.is-removing{opacity:0;transform:scale(.985)}.route-thumb{position:relative;min-width:0;min-height:100%;overflow:hidden;background-color:#0a263d;background-position:center;background-size:cover;transition:filter .32s ease,transform .32s ease}.route-card:hover .route-thumb{filter:saturate(1.12) brightness(1.08);transform:scale(1.018)}.route-thumb:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#000b1814,#00091657),repeating-linear-gradient(0deg,rgba(120,229,255,.06) 0,rgba(120,229,255,.06) 1px,transparent 1px,transparent 5px)}.thumb-a,.thumb-b,.thumb-c,.thumb-d,.thumb-e,.thumb-f,.thumb-g{background-image:linear-gradient(180deg,#000b1805,#00091661),url(/assets/xzit-center-campus-map.png)}.route-thumb span{position:absolute;left:9px;top:8px;z-index:2;padding:4px 7px;border:1px solid rgba(42,224,255,.38);border-radius:4px;color:#e9fbff;font-size:11px;line-height:1;background:#021122b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.route-thumb i{position:absolute;left:50%;top:56%;z-index:3;width:11px;height:11px;border:2px solid rgba(230,255,255,.9);border-radius:50%;background:#16ebc7;box-shadow:0 0 0 7px #12e2cd2e,0 0 16px #13f5c7cc}.area-route:after{content:"";position:absolute;inset:15% 5% 13%;z-index:1;clip-path:polygon(8% 14%,83% 5%,96% 36%,88% 86%,34% 94%,4% 62%);background:repeating-linear-gradient(0deg,rgba(18,239,200,.45) 0 2px,transparent 2px 13px),linear-gradient(135deg,#0ff5cb4d,#0a81ff1a);border:1px solid rgba(36,245,207,.62);box-shadow:0 0 18px #10eecb57}.waypoint-route:after{content:"";position:absolute;left:18%;top:18%;z-index:1;width:66%;height:66%;border-left:2px solid rgba(18,239,200,.82);border-bottom:2px solid rgba(18,239,200,.82);transform:skew(-24deg) rotate(-13deg);filter:drop-shadow(0 0 8px rgba(18,239,200,.7))}.waypoint-route i:before,.waypoint-route i:after{content:"";position:absolute;width:9px;height:9px;border:2px solid rgba(232,255,255,.92);border-radius:50%;background:#14d7ff;box-shadow:0 0 12px #14d7ffcc}.waypoint-route i:before{left:-62px;top:32px}.waypoint-route i:after{right:-58px;top:-38px}.route-info{position:relative;min-width:0;padding:14px 14px 34px}.route-info h3{margin:0 0 9px;overflow:hidden;color:#f0f9ff;font-size:16px;line-height:1.2;font-weight:900;white-space:nowrap;text-overflow:ellipsis}.route-info dl{display:grid;gap:5px;margin:0}.route-info dl div{display:grid;grid-template-columns:60px minmax(0,1fr);gap:4px;min-width:0}.route-info dt,.route-info dd{min-width:0;margin:0;overflow:hidden;font-size:12px;line-height:1.28;white-space:nowrap;text-overflow:ellipsis}.route-info dt{color:#7ea6c4}.route-info dd{color:#cce4f5}.route-card-actions{position:absolute;right:9px;bottom:8px;display:flex;gap:6px}.route-card-actions button{display:grid;place-items:center;width:25px;height:25px;border:1px solid rgba(73,171,255,.34);border-radius:5px;color:#9fd8ff;background:#031831c7}.route-card-actions button:hover{border-color:#34d9ff9e;color:#fff}.route-card-actions button.delete:hover{border-color:#ff5949a8;color:#ff7868}.route-card-actions svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}.route-pagination{display:flex;align-items:center;justify-content:center;gap:8px;min-height:43px;border-top:1px solid rgba(74,154,255,.22);color:#9fbfd8;font-size:12px}.route-pagination button{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(78,166,255,.28);border-radius:5px;color:#b7d8ef;background:#041c39b8}.route-pagination button.active{border-color:#36c1ffbd;color:#fff;background:linear-gradient(180deg,#0b86ff,#0754d6)}.route-pagination button:disabled{opacity:.42;cursor:default}.route-pagination label{display:flex;align-items:center;gap:6px}.route-pagination input{width:56px;height:28px;padding:0 7px;text-align:center}.route-dialog-backdrop[hidden]{display:none}.route-dialog-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:24px;background:#0000007a;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.route-dialog{width:min(750px,calc(100vw - 48px));max-height:calc(100dvh - 48px);overflow:hidden;border-radius:12px;background:#fff;box-shadow:0 22px 70px #00000052;animation:panelDrop .24s cubic-bezier(.16,1,.3,1) both}.route-create-dialog{width:min(750px,calc(100vw - 48px))}.route-dialog-head{display:flex;align-items:center;justify-content:space-between;height:64px;padding:0 24px 0 18px;background:linear-gradient(100deg,#294ab7,#3d70ff)}.route-dialog-head h3{display:inline-flex;align-items:center;gap:4px;margin:0;color:#fff;font-size:24px;line-height:1;font-weight:900;letter-spacing:0}.route-dialog-head h3:before{content:"";width:5px;height:24px;margin-right:2px;border-radius:3px;background:#fff;transform:skew(-10deg)}.route-help-dot{display:inline-grid;place-items:center;width:17px;height:17px;margin-left:1px;border-radius:50%;color:#315ce4;font-size:12px;font-weight:900;background:#fff}.route-dialog-close{display:grid;place-items:center;width:34px;height:34px;border:0;color:#fff;font-size:34px;line-height:1;background:transparent;cursor:pointer}.route-dialog-close:hover{opacity:.82}.route-dialog-form{display:grid;gap:28px;max-height:calc(100dvh - 112px);padding:31px 50px 24px 20px;overflow:auto;color:#606672;background:#fff}.route-create-form{gap:27px;padding:30px 80px 15px 56px}.route-dialog-field{display:grid;grid-template-columns:136px minmax(0,1fr);align-items:center;gap:18px;margin:0}.route-create-form .route-dialog-field{grid-template-columns:142px minmax(0,1fr)}.route-dialog-field>span{color:#626771;font-size:20px;line-height:1.1;text-align:right;white-space:nowrap}.route-dialog-field.required>span:before{content:"*";margin-right:8px;color:#f25b5b}.route-dialog-field input,.route-dialog-field select{width:100%;height:48px;min-width:0;padding:0 16px;border:1px solid #d8dde8;border-radius:5px;outline:none;color:#495260;font-family:var(--sans);font-size:18px;background:#fff;box-shadow:inset 0 1px 2px #1f2f4e0a}.route-dialog-field select{color:#9aa2af}.route-dialog-field input::placeholder{color:#a9b0bd}.route-dialog-field input:focus,.route-dialog-field select:focus{border-color:#4d72ff;box-shadow:0 0 0 2px #4d72ff14}.route-dialog-field.is-invalid input,.route-dialog-field.is-invalid select{border-color:#f06464}.route-dialog-field.is-invalid .field-error{display:block}.route-dialog-field .field-error{grid-column:2;margin-top:-22px;color:#f06464;font-size:12px}.route-type-field{align-items:start}.route-type-field>span{padding-top:20px}.route-type-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.route-type-card{position:relative;display:grid;place-items:center;gap:14px;height:166px;border:1px solid #dfe2e8;border-radius:5px;color:#646a73;background:#fff;cursor:pointer}.route-type-card.active{border-color:#3f66ff;background:#eef3ff}.route-type-card svg{width:58px;height:58px;fill:none;stroke:#0b0b0d;stroke-width:2.5}.route-type-card strong{font-size:21px;font-weight:500}.route-type-check{position:absolute;top:13px;right:17px;display:none;place-items:center;width:20px;height:20px;border-radius:50%;color:#fff;font-size:14px;font-style:normal;font-weight:900;background:#4774ff}.route-type-card.active .route-type-check{display:grid}.route-upload-zone{position:relative;display:grid;place-items:center;gap:10px;min-height:280px;margin-left:34px;border:1px dashed #d6dbe5;border-radius:5px;color:#656b75;background:#fff;cursor:pointer}.route-upload-zone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.route-upload-zone svg{width:74px;height:74px;margin-bottom:2px;fill:none;stroke:#a6abb4;stroke-width:2}.route-upload-zone strong{color:#666d78;font-size:20px;font-weight:500}.route-import-file-name{min-height:18px;color:#3c66f1;font-size:13px}.route-upload-note{margin:-12px 0 0 34px;color:#626975;font-size:16px;line-height:1.4}.route-dialog-actions{display:flex;justify-content:flex-end;gap:18px;padding-top:18px}.route-create-form .route-dialog-actions{padding-top:83px}.route-dialog-cancel,.route-dialog-confirm{min-width:86px;height:48px;border-radius:6px;font-size:20px;font-weight:700;cursor:pointer}.route-dialog-cancel{border:1px solid #d9dde7;color:#626873;background:#fff}.route-dialog-confirm{border:1px solid #3f66ff;color:#fff;background:#4168ff}.route-dialog-confirm:disabled{cursor:not-allowed;opacity:.66}.takeoff-dialog{width:min(750px,calc(100vw - 48px));border-radius:12px}.takeoff-dialog-form{gap:28px;padding:30px 80px 15px 50px}.takeoff-field{grid-template-columns:190px minmax(0,1fr)}.takeoff-field>span{font-size:20px}.takeoff-input-unit{display:grid;grid-template-columns:minmax(0,1fr) 80px;min-width:0}.takeoff-input-unit input{border-radius:5px 0 0 5px}.takeoff-input-unit em{display:grid;place-items:center;height:48px;border:1px solid #d8dde8;border-left:0;border-radius:0 5px 5px 0;color:#8b929d;font-size:20px;font-style:normal;background:#f6f7fa}.takeoff-dialog-actions{padding-top:58px}@media(max-width:760px){.route-dialog-backdrop{padding:14px}.route-dialog,.route-create-dialog{width:calc(100vw - 28px)}.route-dialog-form,.route-create-form{gap:18px;padding:20px}.route-dialog-field,.route-create-form .route-dialog-field,.takeoff-field{grid-template-columns:1fr;gap:8px}.takeoff-dialog-form{padding:20px}.takeoff-input-unit{grid-template-columns:minmax(0,1fr) 56px}.takeoff-dialog-actions{padding-top:18px}.route-dialog-field>span{text-align:left}.route-type-options{grid-template-columns:1fr}.route-upload-zone,.route-upload-note{margin-left:0}}.mark-toolbar{grid-template-columns:210px 196px minmax(300px,1fr) 76px 76px minmax(10px,1fr) 92px}.mark-workspace{display:grid;grid-template-columns:minmax(0,1fr) 278px;gap:12px;min-height:0;overflow:hidden}.mark-table-panel,.mark-side-panel{min-width:0;min-height:0;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124de),radial-gradient(circle at 15% 0,rgba(36,182,255,.13),transparent 40%);box-shadow:inset 0 1px #90e0ff1f}.mark-table-panel{display:grid;grid-template-rows:40px minmax(0,1fr);overflow:hidden}.mark-table-head,.mark-row{display:grid;grid-template-columns:1.28fr 1fr .76fr 1fr .65fr 94px;align-items:center;gap:10px}.mark-table-head{padding:0 14px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;background:#0313278a}.mark-list{display:grid;align-content:start;gap:8px;min-height:0;padding:10px;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.mark-list.is-empty{display:none}.mark-row{min-height:58px;padding:0 12px;border:1px solid rgba(63,161,255,.23);border-radius:6px;color:#d8efff;background:linear-gradient(90deg,#08315cc2,#03142adb);animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both}.mark-row:hover,.mark-row.selected{border-color:#32d6ff94;background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.16),transparent 38%),linear-gradient(90deg,#093a67e0,#03142aeb);transform:translateY(-2px)}.mark-row span,.mark-row strong{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mark-row strong{color:#f3fbff;font-size:14px}.mark-row span{color:#a8c7de;font-size:12px}.mark-tag,.mark-status{justify-self:start;padding:4px 7px;border:1px solid rgba(74,181,255,.36);border-radius:4px;color:#dff7ff;font-size:11px;background:#041f3ec7}.mark-tag.fence{border-color:#27e8a56b;color:#dffff5}.mark-tag.restricted{border-color:#ff8f397a;color:#ffe6ce}.mark-status{border-color:#2be58f6e;color:#cffff0}.mark-row-actions{display:flex;gap:6px;justify-content:end}.mark-row-actions button{display:grid;place-items:center;width:27px;height:27px;border:1px solid rgba(73,171,255,.34);border-radius:5px;color:#a8dcff;background:#031831c7}.mark-row-actions button:hover{border-color:#34d9ff9e;color:#fff}.mark-row-actions button.delete:hover{border-color:#ff5949a8;color:#ff7868}.mark-row-actions svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}.mark-empty{display:none;place-items:center;align-content:center;gap:10px;min-height:0;padding:30px;text-align:center}.mark-workspace.is-empty .mark-empty{display:grid}.mark-empty svg{width:118px;height:104px;fill:#6697be1a;stroke:#77b4dc73;stroke-width:3;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.mark-empty strong{color:#eaf8ff;font-size:17px}.mark-empty span{max-width:420px;color:#8fb5d0;font-size:13px;line-height:1.55}.mark-empty .route-tool{margin-top:4px}.mark-side-panel{display:grid;align-content:start;gap:11px;padding:14px}.mark-side-panel h3{margin:0;color:#eaf8ff;font-size:16px;font-weight:900}.mark-type-row{display:grid;grid-template-columns:14px minmax(0,1fr);gap:9px;padding:10px;border:1px solid rgba(64,152,255,.22);border-radius:6px;background:#03152ca8}.mark-type-dot{width:10px;height:10px;margin-top:4px;border-radius:50%;box-shadow:0 0 0 5px #23c4ff1a}.mark-type-dot.cyan{background:#29d9ff}.mark-type-dot.green{background:#24e29b}.mark-type-dot.orange{background:#ff9d43}.mark-type-row b,.mark-flow-card b{display:block;color:#f2fbff;font-size:13px}.mark-type-row span{display:block;margin-top:4px;color:#88adc9;font-size:11px;line-height:1.45}.mark-flow-card{display:grid;gap:8px;margin-top:2px;padding:12px;border:1px solid rgba(43,210,255,.28);border-radius:6px;background:linear-gradient(180deg,#08345fc2,#03152cd6)}.mark-flow-card span{color:#8fb9d5;font-size:12px}.mark-flow-card i{width:1px;height:14px;margin-left:8px;background:linear-gradient(180deg,#31d8ff,transparent)}.mark-modal[hidden]{display:none}.mark-modal{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#000812ad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.mark-dialog{width:min(590px,calc(100% - 42px));overflow:hidden;border:1px solid rgba(70,183,255,.56);border-radius:8px;background:linear-gradient(180deg,#082d58fa,#031226fa);box-shadow:inset 0 1px #aae8ff29,0 22px 54px #00000073;animation:panelDrop .28s cubic-bezier(.16,1,.3,1) both}.mark-dialog-head{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 16px;background:linear-gradient(90deg,#075ccdf2,#1c7effe6)}.mark-dialog-head h3{margin:0;color:#f5fbff;font-size:17px;font-weight:900}.mark-close{width:30px;height:30px;color:#dff5ff;font-size:24px;line-height:1;background:transparent}.mark-form{display:grid;gap:12px;padding:18px 18px 16px}.mark-form-field{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;align-items:start}.mark-form-field>span{padding-top:9px;color:#b6d5ec;font-size:13px;text-align:right}.mark-form-field.required>span:before{content:"*";margin-right:4px;color:#ff7474}.mark-control{display:grid;gap:5px;min-width:0}.mark-control input,.mark-control select,.mark-control textarea{width:100%;min-width:0;border:1px solid rgba(80,168,255,.34);border-radius:5px;outline:none;color:#e7f6ff;font-family:var(--sans);font-size:13px;background:#031225d6;box-shadow:inset 0 1px #a6e4ff14}.mark-control input,.mark-control select{height:38px;padding:0 11px}.mark-control textarea{resize:none;padding:10px 11px;line-height:1.5}.mark-control input::placeholder,.mark-control textarea::placeholder{color:#6f94b2}.mark-control input:focus,.mark-control select:focus,.mark-control textarea:focus{border-color:#2ed6ff9e;box-shadow:inset 0 1px #a6e4ff1f,0 0 0 2px #2ed6ff14}.field-error{display:none;color:#ff8282;font-size:12px}.mark-form-field.is-invalid input,.mark-form-field.is-invalid select{border-color:#ff6969d1}.mark-form-field.is-invalid .field-error{display:block}.mark-dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}.mark-dialog-actions .route-tool{min-width:82px}.live-workspace{display:grid;grid-template-columns:minmax(0,1fr) 52px 356px;gap:10px;min-height:0;overflow:hidden}.live-board,.live-tool-rail,.live-device-panel{min-width:0;min-height:0;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124e3),radial-gradient(circle at 18% 0,rgba(36,182,255,.13),transparent 40%);box-shadow:inset 0 1px #90e0ff1f}.live-board{padding:10px;overflow:hidden}.live-grid{display:grid;width:100%;height:100%;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.live-grid-1{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.live-grid-6{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.live-grid-9{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.live-grid-1 .live-tile:nth-child(n+2){display:none}.live-tile{position:relative;display:grid;grid-template-rows:38px minmax(0,1fr) 32px;min-width:0;min-height:0;overflow:hidden;border:1px solid rgba(67,152,255,.28);border-radius:7px;background:radial-gradient(circle at 50% 40%,rgba(36,139,204,.15),transparent 38%),linear-gradient(135deg,#051a32f2,#010b19fa);box-shadow:inset 0 1px #94e5ff1f,inset 0 -18px 32px #00000052;transition:transform .24s cubic-bezier(.16,1,.3,1),border-color .24s cubic-bezier(.16,1,.3,1),box-shadow .24s cubic-bezier(.16,1,.3,1)}.live-tile:before{content:"";position:absolute;inset:38px 0 32px;pointer-events:none;background:linear-gradient(transparent,rgba(78,211,255,.05),transparent),repeating-linear-gradient(0deg,rgba(145,224,255,.035) 0 1px,transparent 1px 5px);opacity:.7}.live-tile:hover,.live-tile.is-selected{border-color:#31d8ffa3;box-shadow:inset 0 1px #94e5ff29,0 0 0 1px #33c1ff24,0 14px 24px #00000038;transform:translateY(-2px)}.live-tile.is-online{background:radial-gradient(circle at 50% 46%,rgba(28,202,255,.18),transparent 34%),linear-gradient(135deg,#051e3afa,#010b19fa)}.live-tile-head,.live-tile-foot{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 11px;background:#0c3056d1}.live-tile-head{border-bottom:1px solid rgba(68,156,255,.22)}.live-tile-foot{border-top:1px solid rgba(68,156,255,.18);background:#031123d1}.live-tile-head span,.live-tile-foot span{color:#97bdd8;font-size:12px}.live-tile-head b{padding:3px 7px;border:1px solid rgba(119,153,183,.34);border-radius:4px;color:#b7c8d8;font-size:11px;font-weight:800;background:#021021a3}.live-tile.is-online .live-tile-head b{border-color:#28e58f70;color:#cffff0}.live-stream-placeholder,.live-stream-display{position:relative;z-index:1;display:grid;place-items:center;align-content:center;gap:8px;padding:16px;text-align:center}.live-stream-placeholder svg{width:42px;height:42px;fill:none;stroke:#6fabd29e;stroke-width:1.8}.live-stream-placeholder strong,.live-stream-display strong{color:#e9f8ff;font-size:15px}.live-stream-placeholder span,.live-stream-display span{color:#85abc8;font-size:12px}.live-stream-display{background:radial-gradient(circle at 50% 46%,rgba(31,220,255,.18),transparent 35%),linear-gradient(145deg,rgba(15,75,118,.26),transparent 52%)}.live-stream-display:before,.live-stream-display:after{content:"";position:absolute;pointer-events:none}.live-stream-display:before{width:96px;height:96px;border:1px solid rgba(68,210,255,.32);border-radius:50%;box-shadow:0 0 0 18px #1da4ff0d,inset 0 0 22px #2cceff2e;animation:pulseRing 2.8s ease-in-out infinite}.live-stream-display:after{inset:18px 18px auto auto;width:9px;height:9px;border-radius:50%;background:#25e893;box-shadow:0 0 12px #25e893b8}.live-stream-device{display:grid;place-items:center;width:54px;height:54px;border:1px solid rgba(77,201,255,.42);border-radius:50%;color:#bfeeff;background:#05274cc7;box-shadow:inset 0 0 18px #26b7ff2e,0 0 22px #1897ff2e}.live-stream-device svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.8}.live-tool-rail{display:grid;align-content:start;justify-items:center;gap:10px;padding:12px 8px}.live-tool{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(73,171,255,.28);border-radius:6px;color:#9fd8ff;background:#031831b8}.live-tool:hover,.live-tool.active{border-color:#34d9ff9e;color:#fff;background:linear-gradient(180deg,#0859a5eb,#042b5bf5)}.live-tool svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9}.live-device-panel{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;overflow:hidden}.live-device-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 14px 10px;border-bottom:1px solid rgba(74,154,255,.22)}.live-device-head span{display:block;color:#7fb7dc;font-size:12px}.live-device-head strong{display:block;margin-top:4px;color:#f0fbff;font-size:17px;font-weight:900}.live-refresh{display:grid;place-items:center;width:32px;height:32px;border:1px solid rgba(73,171,255,.32);border-radius:6px;color:#9fd8ff;background:#031831c2}.live-refresh svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9}.live-device-filter{display:grid;grid-template-columns:54px 58px minmax(0,1fr);gap:7px;padding:10px 14px}.live-device-filter button{height:33px;border:1px solid rgba(74,171,255,.32);border-radius:5px;color:#bbd7eb;font-size:12px;background:#031831b8}.live-device-filter button.active{border-color:#3cc8ffb3;color:#fff;background:linear-gradient(180deg,#0b82ff,#074ebf)}.live-device-filter label{position:relative;min-width:0}.live-device-filter input{width:100%;height:33px;padding:0 30px 0 9px;border:1px solid rgba(80,168,255,.32);border-radius:5px;outline:none;color:#e7f6ff;font-family:var(--sans);font-size:12px;background:#031225c2}.live-device-filter input::placeholder{color:#6f94b2}.live-device-filter label svg{position:absolute;right:9px;top:50%;width:15px;height:15px;fill:none;stroke:#84c7ef;stroke-width:1.9;transform:translateY(-50%)}.live-device-tree{min-height:0;overflow:auto;padding:2px 14px 10px;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.tree-root,.tree-children{display:grid;gap:6px}.tree-children{padding-left:18px}.tree-branch,.tree-device{display:grid;align-items:center;width:100%;min-width:0;border-radius:5px;color:#d5ecff;background:transparent}.tree-branch{grid-template-columns:13px 18px minmax(0,1fr) auto;min-height:30px;padding:0 7px;font-size:13px;font-weight:800}.tree-branch>i{width:0;height:0;border-left:5px solid #86b9da;border-top:4px solid transparent;border-bottom:4px solid transparent;transform:rotate(90deg)}.tree-branch svg,.tree-device svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}.tree-branch b{padding:2px 5px;border:1px solid rgba(42,224,149,.36);border-radius:4px;color:#cffff0;font-size:10px}.tree-device{grid-template-columns:20px minmax(0,1fr) 10px 22px;gap:8px;min-height:35px;padding:0 7px;color:#c6def2;font-size:12px}.tree-device span,.tree-branch span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tree-device:hover,.tree-device.active{color:#fff;background:#105cab75}.tree-device[hidden]{display:none}.device-status{width:8px;height:8px;border-radius:50%}.device-status.online{background:#25e893;box-shadow:0 0 10px #25e893b3}.device-status.idle{background:#f1b24a;box-shadow:0 0 10px #f1b24a8c}.tree-device em{color:#98bfdc;font-size:16px;font-style:normal;line-height:1}.tree-device.is-favorite em{color:#42d8ff}.live-device-foot{display:flex;justify-content:space-between;gap:8px;padding:10px 14px 12px;border-top:1px solid rgba(74,154,255,.22);color:#8fb6d2;font-size:12px}.live-device-foot b{color:#35e2ff;font-family:var(--mono)}.infer-toolbar{grid-template-columns:minmax(210px,1fr) 220px 250px 76px 76px;justify-content:end;margin-left:auto;width:min(920px,100%)}.infer-workspace{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:12px;min-height:0;overflow:hidden}.infer-table-panel,.infer-side-panel{min-width:0;min-height:0}.infer-table-panel,.infer-side-card{border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124de),radial-gradient(circle at 15% 0,rgba(36,182,255,.13),transparent 40%);box-shadow:inset 0 1px #90e0ff1f}.infer-table-panel{display:grid;grid-template-rows:40px minmax(0,1fr);overflow:hidden}.infer-table-head,.infer-row{display:grid;grid-template-columns:1.18fr .78fr 1.08fr 1fr 1fr 86px;align-items:center;gap:10px}.infer-table-head{padding:0 14px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;background:#0313278a}.infer-list{display:grid;align-content:start;gap:8px;min-height:0;padding:10px;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.infer-list.is-empty{display:none}.infer-row{min-height:58px;padding:0 12px;border:1px solid rgba(63,161,255,.23);border-radius:6px;color:#d8efff;background:linear-gradient(90deg,#08315cc2,#03142adb);animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both}.infer-row:hover,.infer-row.selected{border-color:#32d6ff94;background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.16),transparent 38%),linear-gradient(90deg,#093a67e0,#03142aeb);transform:translateY(-2px)}.infer-row span,.infer-row strong{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.infer-row strong{color:#f3fbff;font-size:14px}.infer-row span{color:#a8c7de;font-size:12px}.infer-row-actions{display:flex;justify-content:end;gap:6px}.infer-row-actions button{display:grid;place-items:center;width:27px;height:27px;border:1px solid rgba(73,171,255,.34);border-radius:5px;color:#a8dcff;background:#031831c7}.infer-row-actions button:hover{border-color:#34d9ff9e;color:#fff}.infer-row-actions svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}.infer-empty{display:none;place-items:center;align-content:center;gap:10px;min-height:0;padding:30px;text-align:center}.infer-workspace.is-empty .infer-empty{display:grid}.infer-empty svg{width:118px;height:104px;fill:#6697be1a;stroke:#77b4dc73;stroke-width:3;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.infer-empty strong{color:#eaf8ff;font-size:17px}.infer-empty span{max-width:430px;color:#8fb5d0;font-size:13px;line-height:1.55}.infer-side-panel{display:grid;align-content:start;gap:12px}.infer-side-card{display:grid;gap:11px;padding:14px}.infer-side-card h3{margin:0;color:#eaf8ff;font-size:16px;font-weight:900}.infer-status-grid{display:flex;flex-wrap:wrap;gap:7px}.status-chip{padding:5px 8px;border:1px solid rgba(74,181,255,.28);border-radius:5px;color:#dff7ff;font-size:12px;background:#041f3ec7}.status-chip.running{border-color:#28e58f6b;color:#cffff0}.status-chip.starting{border-color:#37c7ff75;color:#d9f7ff}.status-chip.abnormal,.status-chip.failed,.status-chip.auth{border-color:#ff784f80;color:#ffe1d6}.status-chip.done{color:#b8c8d8}.infer-algorithm-list{display:grid;gap:7px;max-height:255px;overflow:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.infer-algorithm-list span{padding:8px 9px;border:1px solid rgba(64,152,255,.22);border-radius:5px;color:#c6def2;font-size:12px;background:#03152ca8}.algorithm-library,.algorithm-config-panel{min-width:0;min-height:0;overflow:hidden;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124e0),radial-gradient(circle at 14% 0,rgba(36,182,255,.14),transparent 42%);box-shadow:inset 0 1px #90e0ff1f}.algorithm-library{display:grid;grid-template-rows:54px minmax(0,1fr)}.algorithm-section-head,.algorithm-config-head{display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0;padding:0 14px;border-bottom:1px solid rgba(72,157,255,.22);background:#0313278a}.algorithm-section-head span,.algorithm-config-head span{display:block;color:#77bde8;font-family:var(--mono);font-size:10px;letter-spacing:0;text-transform:uppercase}.algorithm-section-head strong,.algorithm-config-head strong{display:block;margin-top:3px;color:#f0fbff;font-size:17px;font-weight:900}.algorithm-health{display:inline-flex;align-items:center;gap:7px;color:#bdefff;font-size:12px}.algorithm-health i{width:9px;height:9px;border-radius:50%;background:#28e59a;box-shadow:0 0 12px #28e59ab3}.algorithm-card-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));align-content:start;gap:10px;min-height:0;padding:11px;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.algorithm-card{display:grid;grid-template-rows:auto minmax(34px,auto) auto 32px;gap:9px;min-width:0;min-height:190px;overflow:hidden;padding:12px;border:1px solid rgba(63,161,255,.23);border-radius:7px;color:#d8efff;background:linear-gradient(135deg,#08315cc7,#03142ae6),repeating-linear-gradient(0deg,rgba(145,224,255,.025) 0 1px,transparent 1px 5px);box-shadow:inset 0 1px #8ee0ff1a;animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both;cursor:pointer;transition:transform .24s cubic-bezier(.16,1,.3,1),border-color .24s cubic-bezier(.16,1,.3,1),box-shadow .24s cubic-bezier(.16,1,.3,1)}.algorithm-card:hover,.algorithm-card.active{border-color:#32d6ff9e;box-shadow:inset 0 1px #8ee0ff29,0 0 0 1px #32d6ff14;transform:translateY(-2px)}.algorithm-card-top{display:flex;align-items:start;justify-content:space-between;gap:10px;min-width:0}.algorithm-card-top span{display:block;color:#74b4df;font-family:var(--mono);font-size:10px}.algorithm-card-top strong{display:block;margin-top:3px;color:#f4fbff;font-size:15px;font-weight:900}.algorithm-card p{margin:0;color:#90b5cf;font-size:12px;line-height:1.45}.algorithm-card-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.algorithm-card-metrics span{display:grid;gap:2px;padding:7px 8px;border:1px solid rgba(64,152,255,.2);border-radius:5px;color:#83aecd;font-size:10px;background:#03152c9e}.algorithm-card-metrics b{color:#36defd;font-family:var(--mono);font-size:13px}.algorithm-card-action{height:32px;border:1px solid rgba(64,184,255,.38);border-radius:5px;color:#dff7ff;font-size:12px;font-weight:800;background:linear-gradient(180deg,#0a64c5eb,#05367ef5)}.algorithm-card-action:hover{border-color:#40e0ffb8;color:#fff}.algorithm-config-panel{display:grid;grid-template-rows:60px 42px minmax(0,1fr)}.algorithm-config-tools{display:grid;grid-template-columns:minmax(180px,260px) 76px 76px;align-items:center;gap:9px}.algorithm-search input{width:100%;height:38px;padding:0 11px;border:1px solid rgba(80,168,255,.34);border-radius:5px;outline:none;color:#e7f6ff;font-family:var(--sans);font-size:13px;background:#031225d6;box-shadow:inset 0 1px #a6e4ff14}.algorithm-search input::placeholder{color:#6f94b2}.algorithm-search input:focus{border-color:#2ed6ff9e;box-shadow:inset 0 1px #a6e4ff1f,0 0 0 2px #2ed6ff14}.algorithm-table-head,.algorithm-config-row{display:grid;grid-template-columns:1.1fr .95fr 1fr .74fr 1fr 104px;align-items:center;gap:10px}.algorithm-table-head{padding:0 14px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;background:#0313276b}.algorithm-config-list{display:grid;grid-row:3;align-content:start;gap:8px;min-height:0;padding:10px;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.algorithm-config-list.is-empty{display:none}.algorithm-config-row{min-height:58px;padding:0 12px;border:1px solid rgba(63,161,255,.23);border-radius:6px;color:#d8efff;background:linear-gradient(90deg,#08315cc2,#03142adb);animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both;cursor:pointer}.algorithm-config-row:hover,.algorithm-config-row.selected{border-color:#32d6ff94;background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.16),transparent 38%),linear-gradient(90deg,#093a67e0,#03142aeb);transform:translateY(-2px)}.algorithm-config-row span,.algorithm-config-row strong{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.algorithm-config-row strong{color:#f3fbff;font-size:14px}.algorithm-config-row span{color:#a8c7de;font-size:12px}.algorithm-row-actions{display:flex;justify-content:flex-end;gap:6px}.algorithm-row-actions button{display:grid;place-items:center;width:27px;height:27px;border:1px solid rgba(73,171,255,.34);border-radius:5px;color:#a8dcff;background:#031831c7}.algorithm-row-actions button:hover{border-color:#34d9ff9e;color:#fff}.algorithm-row-actions svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}.algorithm-empty{display:none;grid-row:3;place-items:center;align-content:center;gap:10px;min-height:0;padding:30px;text-align:center}.algorithm-config-panel.is-empty .algorithm-empty{display:grid}.algorithm-empty svg{width:118px;height:104px;fill:#6697be1a;stroke:#77b4dc73;stroke-width:3;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.algorithm-empty strong{color:#eaf8ff;font-size:17px}.algorithm-empty span{max-width:460px;color:#8fb5d0;font-size:13px;line-height:1.55}.event-toolbar{grid-template-columns:220px 230px minmax(320px,1fr) 76px 76px 76px;justify-content:end;margin-left:auto;width:min(1070px,100%)}.event-workspace{display:grid;min-height:0;overflow:hidden}.event-table-panel{display:grid;grid-template-rows:42px minmax(0,1fr);height:100%;min-width:0;min-height:0;overflow:hidden;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124de),radial-gradient(circle at 15% 0,rgba(36,182,255,.13),transparent 40%);box-shadow:inset 0 1px #90e0ff1f}.event-table-head,.event-row{display:grid;grid-template-columns:34px 140px 1fr 1fr .68fr 1fr 1fr 62px;align-items:center;gap:10px}.event-table-head{padding:0 14px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;background:#0313278a}.event-check{display:grid;place-items:center}.event-check input{width:14px;height:14px;accent-color:#0b86ff}.event-list{display:grid;align-content:start;gap:8px;min-height:0;padding:10px;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.event-list.is-empty{display:none}.event-row{min-height:66px;padding:0 12px;border:1px solid rgba(63,161,255,.23);border-radius:6px;color:#d8efff;background:linear-gradient(90deg,#08315cc2,#03142adb);animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both}.event-row:hover,.event-row.selected{border-color:#32d6ff94;background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.16),transparent 38%),linear-gradient(90deg,#093a67e0,#03142aeb);transform:translateY(-2px)}.event-row span,.event-row strong{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.event-row strong{color:#f3fbff;font-size:14px}.event-row span{color:#a8c7de;font-size:12px}.event-actions{display:flex;justify-content:flex-end}.event-actions button{display:grid;width:34px;height:34px;place-items:center;border:1px solid rgba(255,96,96,.36);border-radius:6px;color:#ffb4b4;background:#761e2a57;cursor:pointer}.event-actions button:hover{border-color:#ff8484b3;color:#fff;background:#b8323e94;box-shadow:0 0 18px #ff525e38}.event-actions svg{width:16px;height:16px}.event-photo{width:118px;height:46px;border:1px solid rgba(68,169,255,.28);border-radius:5px;background:linear-gradient(135deg,#063258e0,#010d1cf5),repeating-linear-gradient(0deg,rgba(145,224,255,.035) 0 1px,transparent 1px 5px)}.event-empty{display:none;place-items:center;align-content:center;gap:10px;min-height:0;padding:30px;text-align:center}.event-workspace.is-empty .event-empty{display:grid}.event-empty svg{width:118px;height:104px;fill:#6697be1a;stroke:#77b4dc73;stroke-width:3;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.event-empty strong{color:#eaf8ff;font-size:17px}.event-empty span{max-width:460px;color:#8fb5d0;font-size:13px;line-height:1.55}.model-workspace{display:grid;grid-template-columns:230px minmax(0,1fr);gap:12px;min-height:0;overflow:hidden}.model-side-nav,.model-main-panel,.model-table-panel,.model-format-block,.model-upload-list-panel{min-width:0;min-height:0;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124de),radial-gradient(circle at 15% 0,rgba(36,182,255,.13),transparent 40%);box-shadow:inset 0 1px #90e0ff1f}.model-side-nav{display:grid;align-content:start;gap:7px;padding:14px 10px}.model-side-title{display:grid;gap:3px;padding:3px 10px 12px;border-bottom:1px solid rgba(71,154,255,.22)}.model-side-title strong{color:#f0f9ff;font-size:21px;font-weight:900}.model-side-title span{color:#6faedb;font-family:var(--mono);font-size:10px;letter-spacing:0;text-transform:uppercase}.model-kind{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;min-height:42px;padding:0 10px;border:1px solid transparent;border-radius:6px;color:#cce5f6;font-size:14px;font-weight:800;text-align:left;background:transparent;transition:transform .22s cubic-bezier(.16,1,.3,1),border-color .22s cubic-bezier(.16,1,.3,1),background .22s cubic-bezier(.16,1,.3,1)}.model-kind svg{width:21px;height:21px;fill:none;stroke:#7bcfff;stroke-width:1.9}.model-kind:hover,.model-kind.active{border-color:#30b5ff5c;color:#f5fbff;background:linear-gradient(90deg,#0d5bb094,#041b3642);transform:translate(2px)}.model-kind.active svg{stroke:#32e2ff;filter:drop-shadow(0 0 8px rgba(50,226,255,.46))}.model-main-panel{display:grid;min-height:0;overflow:hidden;padding:12px}.model-list-view,.model-import-view{display:grid;gap:12px;min-height:0}.model-list-view{grid-template-rows:auto minmax(0,1fr) auto}.model-import-view{grid-template-rows:auto auto minmax(0,1fr)}.model-list-view[hidden],.model-import-view[hidden]{display:none}.model-toolbar{grid-template-columns:minmax(210px,300px) minmax(190px,260px) 76px 76px minmax(0,1fr) 112px;min-height:64px}.model-toolbar-spacer{min-width:0}.model-table-panel{display:grid;grid-template-rows:42px minmax(0,1fr);overflow:hidden}.model-table-head,.model-row{display:grid;grid-template-columns:1.1fr .86fr .96fr .78fr 1fr .72fr 82px;align-items:center;gap:10px}.model-table-head{padding:0 14px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;background:#0313278a}.model-list{display:grid;align-content:start;gap:8px;min-height:0;padding:10px;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.model-list.is-empty{display:none}.model-row{min-height:58px;padding:0 12px;border:1px solid rgba(63,161,255,.23);border-radius:6px;color:#d8efff;background:linear-gradient(90deg,#08315cc2,#03142adb);animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both}.model-row:hover,.model-row.selected{border-color:#32d6ff94;background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.16),transparent 38%),linear-gradient(90deg,#093a67e0,#03142aeb);transform:translateY(-2px)}.model-row span,.model-row strong{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.model-row strong{color:#f3fbff;font-size:14px}.model-row span{color:#a8c7de;font-size:12px}.model-empty{display:none;place-items:center;align-content:center;gap:10px;min-height:0;padding:30px;text-align:center}.model-table-panel.is-empty .model-empty{display:grid}.model-empty svg{width:118px;height:104px;fill:#6697be1a;stroke:#77b4dc73;stroke-width:3;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.model-empty strong{color:#eaf8ff;font-size:17px}.model-empty span{max-width:460px;color:#8fb5d0;font-size:13px;line-height:1.55}.model-empty .route-tool{margin-top:4px}.model-import-head{display:flex;align-items:end;justify-content:space-between;gap:14px;padding:1px 2px 0}.model-import-head h3{margin:0;color:#eef9ff;font-size:22px;font-weight:900}.model-format-block{display:grid;gap:11px;padding:16px}.model-format-block p{margin:0;color:#d7edf9;font-size:13px}.model-format-table{width:min(840px,100%);border-collapse:collapse;overflow:hidden;border:1px solid rgba(73,165,255,.28);border-radius:6px;color:#d5ecf9;font-size:13px}.model-format-table th,.model-format-table td{min-height:44px;padding:11px 14px;border:1px solid rgba(73,165,255,.22);text-align:center;vertical-align:middle;background:#0313275c}.model-format-table th{color:#9ec7df;font-weight:900;background:#062649a3}.model-format-table i{display:inline-grid;place-items:center;width:14px;height:14px;margin-left:3px;border-radius:50%;color:#031427;font-size:10px;font-style:normal;font-weight:900;background:#42d8ff}.model-import-notes{display:grid;gap:5px;color:#91b8d4;font-size:12px;line-height:1.5}.model-import-notes b{color:#40d7ff;font-weight:800}.model-import-file{justify-self:start;min-width:118px}.model-upload-list-panel{display:grid;grid-template-rows:42px minmax(0,1fr);overflow:hidden}.model-upload-head{display:flex;align-items:center;padding:0 14px;border-bottom:1px solid rgba(72,157,255,.22);color:#eaf8ff;font-size:14px;font-weight:900;background:#0313278a}.model-upload-list{display:grid;align-content:start;gap:8px;min-height:0;padding:10px;overflow:auto}.model-upload-item{display:grid;grid-template-columns:minmax(0,1fr) 120px 88px;align-items:center;gap:12px;min-height:54px;padding:0 12px;border:1px solid rgba(63,161,255,.23);border-radius:6px;background:#03152cbd;animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both}.model-upload-item strong,.model-upload-item span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.model-upload-item strong{color:#f2fbff;font-size:13px}.model-upload-item span{color:#94bad6;font-size:12px}.model-upload-progress{height:7px;overflow:hidden;border-radius:99px;background:#1a486fc7}.model-upload-progress i{display:block;width:74%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#13e6bd,#32d7ff);animation:uploadBar 1.8s ease-in-out infinite}.model-upload-item.done .model-upload-progress i{width:100%;animation:none}.model-upload-empty{display:grid;place-items:center;align-content:center;gap:9px;min-height:0;padding:30px;color:#8fb5d0;font-size:13px;text-align:center}.model-upload-empty[hidden]{display:none}.model-upload-empty svg{width:42px;height:42px;fill:none;stroke:#77b4dc8a;stroke-width:2}@keyframes uploadBar{50%{filter:brightness(1.25);transform:translate(5px)}}.record-toolbar{grid-template-columns:minmax(400px,1.25fr) 210px 210px 210px 76px 76px;grid-template-areas:"tabs org task airport query reset" "plan plan actual actual query reset";align-items:end;min-height:116px}.record-toolbar.is-actual-only{grid-template-areas:"tabs org task airport query reset" "actual actual actual actual query reset"}.record-toolbar.is-actual-only .record-plan-field{display:none}.record-task-tabs{grid-area:tabs;display:flex;align-items:center;min-width:0;overflow:hidden;border:1px solid rgba(79,169,255,.26);border-radius:999px;background:#031225ad}.record-task-tabs button{flex:1 1 0;min-width:0;height:36px;padding:0 12px;color:#9fc2da;font-size:12px;white-space:nowrap;background:transparent}.record-task-tabs button:hover,.record-task-tabs button.active{color:#f2fbff;background:linear-gradient(180deg,#1083fff5,#084dcdf5);box-shadow:inset 0 1px #aae8ff2e}.record-org-field{grid-area:org}.record-no-field{grid-area:task}.record-airport-field{grid-area:airport}.record-query{grid-area:query}.record-reset{grid-area:reset}.record-plan-field{grid-area:plan}.record-actual-field{grid-area:actual}.record-workspace{display:grid;min-height:0;overflow:hidden}.record-table-panel{display:grid;grid-template-rows:42px minmax(0,1fr);min-width:0;min-height:0;overflow:hidden;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124de),radial-gradient(circle at 15% 0,rgba(36,182,255,.13),transparent 40%);box-shadow:inset 0 1px #90e0ff1f}.record-table-head,.record-row{display:grid;grid-template-columns:76px 1fr 1.28fr .9fr .9fr .88fr 1.5fr .92fr .98fr 74px;align-items:center;gap:9px}.record-table-panel.is-simple .record-table-head,.record-table-panel.is-simple .record-row{grid-template-columns:1fr 1.28fr .9fr .9fr .88fr 1.5fr .92fr .98fr 74px}.record-table-panel.is-simple .record-table-head>span:first-child,.record-table-panel.is-simple .record-row>span:first-child{display:none}.record-table-head{padding:0 13px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;background:#0313278a}.record-list{display:grid;align-content:start;gap:0;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.record-list.is-empty{display:none}.record-row{min-height:72px;padding:0 13px;border-bottom:1px solid rgba(64,145,225,.16);color:#d8efff;background:linear-gradient(90deg,#08264999,#031327b8);animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both}.record-row:nth-child(2n){background:linear-gradient(90deg,#0a2e568c,#031327ad)}.record-row:hover,.record-row.selected{background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.15),transparent 38%),linear-gradient(90deg,#093a67db,#03142ae6);box-shadow:inset 3px 0 #2dd5ffbd}.record-row>span,.record-row strong,.record-time,.record-media-state{min-width:0;overflow:hidden;color:#c8e0f2;font-size:12px;line-height:1.42;text-overflow:ellipsis}.record-row strong{color:#f2fbff;font-size:13px;font-weight:900}.record-thumb{position:relative;width:44px;height:44px;overflow:hidden;border:1px solid rgba(72,180,255,.34);border-radius:5px;background-color:#083152;background-image:linear-gradient(180deg,#000b1805,#00091661),url(/assets/xzit-center-campus-map.png);background-position:center;background-size:cover}.record-thumb:before{content:"";position:absolute;inset:5px;border:1px solid rgba(20,238,204,.52);background:repeating-linear-gradient(0deg,rgba(18,239,200,.42) 0 1px,transparent 1px 7px),linear-gradient(135deg,#0ff5cb2e,#0a81ff14);transform:skew(-12deg);box-shadow:0 0 12px #10eecb3d}.record-time{display:grid;grid-template-columns:10px minmax(0,1fr);gap:6px;color:#b9d5e8}.record-time i{width:8px;height:40px;margin-top:3px;border-left:1px solid rgba(190,224,248,.78);border-top:1px solid rgba(190,224,248,.78);border-bottom:1px solid rgba(190,224,248,.78)}.record-result,.record-media-state{display:flex;align-items:center;gap:7px}.record-result-dot,.record-media-dot{flex:0 0 auto;width:10px;height:10px;border-radius:50%}.record-result-dot.success,.record-media-dot{background:#20c877;box-shadow:0 0 11px #20c87794}.record-result-dot.warn{background:#ff9e1a;box-shadow:0 0 11px #ff9e1a94}.record-media-state.missing{color:#c8d4dd}.record-media-dot.missing{background:#f90;box-shadow:0 0 11px #ff990094}.record-actions{display:flex;justify-content:end;gap:6px}.record-action{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(73,171,255,.34);border-radius:5px;color:#a8dcff;background:#031831c7}.record-action.play{border-color:#46b2ff94;background:linear-gradient(180deg,#0f80fff2,#064ebcfa)}.record-action:hover{border-color:#34d9ff9e;color:#fff}.record-action svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}.record-empty{display:none;place-items:center;align-content:center;gap:10px;min-height:0;padding:30px;text-align:center}.record-workspace.is-empty .record-empty{display:grid}.record-empty svg{width:118px;height:104px;fill:#6697be1a;stroke:#77b4dc73;stroke-width:3;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.record-empty strong{color:#eaf8ff;font-size:17px}.record-empty span{max-width:460px;color:#8fb5d0;font-size:13px;line-height:1.55}.track-workspace{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(430px,.84fr);gap:12px;min-height:0;overflow:hidden}.track-map-panel,.track-data-panel,.track-table-panel{min-width:0;min-height:0;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124de),radial-gradient(circle at 15% 0,rgba(36,182,255,.13),transparent 40%);box-shadow:inset 0 1px #90e0ff1f}.track-map-panel{padding:10px;overflow:hidden}.track-map-surface{position:relative;height:100%;min-height:0;overflow:hidden;border:1px solid rgba(66,163,255,.28);border-radius:7px;background:#082744}.track-amap-map{z-index:1}.track-map-surface:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(11,34,48,.2) 0 1px,transparent 1px 25%),linear-gradient(0deg,rgba(11,34,48,.2) 0 1px,transparent 1px 25%),radial-gradient(circle at 50% 45%,transparent 0 38%,rgba(0,9,20,.26) 75%);background-size:25% 25%,25% 25%,cover}.track-route-layer{position:absolute;inset:0;z-index:3;width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 0 5px rgba(0,0,0,.82))}.track-line{fill:none;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}.track-blue{stroke:#16c8ff}.track-amber{stroke:#ffb12a}.track-scan{stroke:#f5ffffc7;stroke-width:2;stroke-dasharray:7 18;animation:trackDash 3.8s linear infinite}.track-node{position:absolute;z-index:4;width:18px;height:18px;border:2px solid rgba(255,245,238,.96);border-radius:50%;background:#ff493f;box-shadow:0 0 0 4px #ff493f38,0 0 12px #ff493fc2;transform:translate(-50%,-50%);transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s cubic-bezier(.16,1,.3,1)}.track-node:hover,.track-node.active{transform:translate(-50%,-50%) scale(1.16);box-shadow:0 0 0 7px #ff493f38,0 0 18px #ff493fe6}.node-a{left:44%;top:15%}.node-b{left:53%;top:31%}.node-c{left:62%;top:46%}.node-d{left:45%;top:70%}.node-e{left:82%;top:72%}.track-map-label{position:absolute;z-index:4;max-width:180px;padding:4px 7px;border:1px solid rgba(138,216,255,.28);border-radius:5px;color:#e9f7ffdb;font-size:11px;line-height:1.35;background:#03122594;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.label-a{left:8%;top:12%}.label-b{left:43%;top:33%}.label-c{left:37%;top:58%}.track-map-tools{position:absolute;right:12px;top:12px;z-index:3;display:grid;gap:6px}.track-map-tools button{min-width:38px;height:31px;border:1px solid rgba(78,166,255,.34);border-radius:5px;color:#d9f4ff;font-size:13px;background:#03142ac2}.track-map-tools button.active,.track-map-tools button:hover{border-color:#35d0ff9e;background:#0857aad1}.track-map-legend{position:absolute;left:12px;bottom:12px;z-index:3;display:flex;gap:8px;padding:8px 10px;border:1px solid rgba(71,154,255,.28);border-radius:6px;background:#031225ad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.track-map-legend span{display:inline-flex;align-items:center;gap:5px;color:#c6def2;font-size:11px;white-space:nowrap}.track-map-legend i{width:16px;height:3px;border-radius:99px}.track-map-legend .blue{background:#16c8ff}.track-map-legend .amber{background:#ffb12a}.track-map-legend .red{width:8px;height:8px;background:#ff493f}.track-data-panel{display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;padding:12px;overflow:hidden}.track-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 76px 76px;align-items:end;gap:9px}.track-date-field .route-date-range{grid-template-columns:20px minmax(0,1fr) 20px minmax(0,1fr)}.track-date-field input{font-family:var(--mono)}.track-table-panel{display:grid;grid-template-rows:42px minmax(0,1fr);overflow:hidden}.track-table-head,.track-row{display:grid;grid-template-columns:74px 1.2fr 1fr 1fr;align-items:center;gap:10px}.track-table-head{padding:0 13px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;background:#0313278a}.track-list{display:grid;align-content:start;gap:8px;min-height:0;padding:10px;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.track-list.is-empty{display:none}.track-row{min-height:60px;padding:0 12px;border:1px solid rgba(63,161,255,.23);border-radius:6px;color:#d8efff;background:linear-gradient(90deg,#08315cc2,#03142adb);animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both}.track-row:hover,.track-row.selected{border-color:#32d6ff94;background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.16),transparent 38%),linear-gradient(90deg,#093a67e0,#03142aeb);transform:translateY(-2px)}.track-row span,.track-row strong{min-width:0;overflow:hidden;color:#a8c7de;font-size:12px;white-space:nowrap;text-overflow:ellipsis}.track-row strong{color:#f3fbff;font-size:13px}.track-snapshot{width:48px;height:36px;border:1px solid rgba(72,180,255,.34);border-radius:5px;background:linear-gradient(180deg,#000b1805,#00091661),url(/assets/xzit-center-campus-map.png);background-position:center;background-size:cover}.track-empty{display:none;place-items:center;align-content:center;gap:10px;min-height:0;padding:30px;text-align:center}.track-data-panel.is-empty .track-empty{display:grid}.track-empty svg{width:118px;height:104px;fill:none;stroke:#77b4dc73;stroke-width:4;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.track-empty strong{color:#eaf8ff;font-size:17px}.track-empty span{max-width:420px;color:#8fb5d0;font-size:13px;line-height:1.55}.media-toolbar{grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) 150px minmax(240px,1.2fr) 112px 112px 70px;grid-template-areas:"name airport org date query reset delete" "name airport org date create zip delete";align-items:end;min-height:116px}.media-name-field{grid-area:name}.media-airport-field{grid-area:airport}.media-org-field{grid-area:org}.media-date-field{grid-area:date}.media-query{grid-area:query}.media-reset{grid-area:reset}.media-create-folder{grid-area:create}.media-zip-download{grid-area:zip}.media-delete-selected{grid-area:delete}.media-date-field .route-date-range{grid-template-columns:20px minmax(0,1fr) 20px minmax(0,1fr)}.media-delete-selected{border-color:#ff57578f;color:#ffe2e2;background:linear-gradient(180deg,#d52323f0,#800c14f5)}.media-delete-selected:hover{border-color:#ff7d7dcc;color:#fff}.media-workspace{display:grid;min-height:0;overflow:hidden}.media-table-panel{display:grid;grid-template-rows:44px 42px minmax(0,1fr);min-width:0;min-height:0;overflow:hidden;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124de),radial-gradient(circle at 15% 0,rgba(36,182,255,.13),transparent 40%);box-shadow:inset 0 1px #90e0ff1f}.media-breadcrumb{display:flex;align-items:center;gap:8px;min-width:0;padding:0 13px;border-bottom:1px solid rgba(72,157,255,.18);color:#c8e8ff;font-size:13px;background:#03132761}.media-breadcrumb b{min-width:0;overflow:hidden;color:#77bde8;font-size:12px;white-space:nowrap;text-overflow:ellipsis}.media-table-head,.media-row{display:grid;grid-template-columns:34px 1.55fr 1fr .95fr .8fr .6fr 1fr 78px;align-items:center;gap:10px}.media-table-head{padding:0 13px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;background:#0313278a}.media-check{display:grid;place-items:center}.media-check input{width:14px;height:14px;accent-color:#0b86ff}.media-list{display:grid;align-content:start;gap:0;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.media-list.is-empty{display:none}.media-row{min-height:62px;padding:0 13px;border-bottom:1px solid rgba(73,158,255,.13);color:#d8efff;background:linear-gradient(90deg,#08315c5c,#03142a80);animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both;cursor:pointer}.media-row:hover,.media-row.selected{background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.13),transparent 38%),linear-gradient(90deg,#093a67b8,#03142ac7)}.media-row span,.media-row strong{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.media-row strong{display:inline-flex;align-items:center;gap:8px;color:#f3fbff;font-size:13px}.media-row span{color:#a8c7de;font-size:12px}.media-folder-icon{position:relative;flex:0 0 auto;width:22px;height:15px;border-radius:3px 3px 2px 2px;background:linear-gradient(180deg,#ffd46a,#f3a715);box-shadow:0 0 12px #ffbd2f2e}.media-folder-icon:before{content:"";position:absolute;left:1px;top:-5px;width:10px;height:6px;border-radius:3px 3px 0 0;background:#ffbd35}.media-actions{display:flex;justify-content:flex-end;gap:7px}.media-actions button{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(73,171,255,.3);border-radius:5px;color:#a8dcff;background:#031831c7}.media-actions button:hover{border-color:#34d9ff9e;color:#fff}.media-actions button.delete{border-color:#ff53535c;color:#ff9e9e}.media-actions button.delete:hover{border-color:#ff7474b8;color:#fff0f0}.media-actions svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}.media-empty{display:none;grid-row:3;place-items:center;align-content:center;gap:10px;min-height:0;padding:30px;text-align:center}.media-workspace.is-empty .media-empty{display:grid}.media-empty svg{width:118px;height:104px;fill:#6697be1a;stroke:#77b4dc73;stroke-width:3;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.media-empty strong{color:#eaf8ff;font-size:17px}.media-empty span{max-width:460px;color:#8fb5d0;font-size:13px;line-height:1.55}.organization-toolbar{grid-template-columns:minmax(220px,300px) 76px 76px minmax(0,1fr) 88px;align-items:end;min-height:78px}.organization-toolbar-spacer{min-width:0}.organization-workspace{display:grid;min-height:0;overflow:hidden}.organization-table-panel{display:grid;grid-template-rows:42px minmax(0,1fr);min-width:0;min-height:0;overflow:hidden;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124de),radial-gradient(circle at 15% 0,rgba(36,182,255,.13),transparent 40%);box-shadow:inset 0 1px #90e0ff1f}.organization-table-head,.organization-row{display:grid;grid-template-columns:1fr 1.15fr .86fr .78fr 1fr 1.06fr 82px;align-items:center;gap:10px}.organization-table-head{padding:0 14px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;background:#0313278a}.organization-list{display:grid;align-content:start;gap:8px;min-height:0;padding:10px;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.organization-list.is-empty{display:none}.organization-row{min-height:58px;padding:0 12px;border:1px solid rgba(63,161,255,.23);border-radius:6px;color:#d8efff;background:linear-gradient(90deg,#08315cc2,#03142adb);animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both;cursor:pointer}.organization-row:hover,.organization-row.selected{border-color:#32d6ff94;background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.16),transparent 38%),linear-gradient(90deg,#093a67e0,#03142aeb);transform:translateY(-2px)}.organization-row span,.organization-row strong{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.organization-row strong{color:#f3fbff;font-size:14px}.organization-row span{color:#a8c7de;font-size:12px}.organization-actions{display:flex;justify-content:flex-end;gap:7px}.organization-actions button{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(73,171,255,.3);border-radius:5px;color:#a8dcff;background:#031831c7}.organization-actions button:hover{border-color:#34d9ff9e;color:#fff}.organization-actions button.delete{border-color:#ff53535c;color:#ff9e9e}.organization-actions svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}.organization-empty{display:none;place-items:center;align-content:center;gap:10px;min-height:0;padding:30px;text-align:center}.organization-workspace.is-empty .organization-empty{display:grid}.organization-empty svg{width:118px;height:104px;fill:none;stroke:#77b4dc73;stroke-width:4;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.organization-empty strong{color:#eaf8ff;font-size:17px}.organization-empty span{max-width:460px;color:#8fb5d0;font-size:13px;line-height:1.55}.organization-modal[hidden]{display:none}.organization-modal{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#000812ad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.organization-dialog{width:min(640px,calc(100% - 42px));overflow:hidden;border:1px solid rgba(70,183,255,.56);border-radius:8px;background:linear-gradient(180deg,#082d58fa,#031226fa);box-shadow:inset 0 1px #aae8ff29,0 22px 54px #00000073;animation:panelDrop .28s cubic-bezier(.16,1,.3,1) both}.organization-dialog-head{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 16px;background:linear-gradient(90deg,#075ccdf2,#1c7effe6)}.organization-dialog-head h3{margin:0;color:#f5fbff;font-size:17px;font-weight:900}.organization-close{width:30px;height:30px;color:#dff5ff;font-size:24px;line-height:1;background:transparent}.organization-form{display:grid;gap:12px;padding:18px 18px 16px}.organization-form-field{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;align-items:start}.organization-form-field>span{padding-top:9px;color:#b6d5ec;font-size:13px;text-align:right}.organization-form-field.required>span:before{content:"*";margin-right:4px;color:#ff7474}.organization-control{display:grid;gap:5px;min-width:0}.organization-control input,.organization-control select{width:100%;height:38px;min-width:0;padding:0 11px;border:1px solid rgba(80,168,255,.34);border-radius:5px;outline:none;color:#e7f6ff;font-family:var(--sans);font-size:13px;background:#031225d6;box-shadow:inset 0 1px #a6e4ff14}.organization-control input::placeholder{color:#6f94b2}.organization-control input:focus,.organization-control select:focus{border-color:#2ed6ff9e;box-shadow:inset 0 1px #a6e4ff1f,0 0 0 2px #2ed6ff14}.organization-form-field.is-invalid input,.organization-form-field.is-invalid select{border-color:#ff6969d1}.organization-form-field.is-invalid .field-error{display:block}.organization-dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}.organization-dialog-actions .route-tool{min-width:82px}.personnel-toolbar{grid-template-columns:auto minmax(0,1fr) 108px;align-items:center;min-height:78px}.personnel-tabs{display:inline-flex;align-items:center;gap:2px;width:max-content;padding:3px;border:1px solid rgba(78,170,255,.22);border-radius:999px;background:#0313279e}.personnel-tabs button{height:31px;padding:0 15px;border-radius:999px;color:#91b9d4;font-size:12px;font-weight:800;background:transparent}.personnel-tabs button.active{color:#f5fbff;background:linear-gradient(180deg,#2c78fff2,#144eccf5);box-shadow:inset 0 1px #bbe9ff33}.personnel-toolbar-spacer{min-width:0}.personnel-workspace{display:grid;grid-template-columns:258px minmax(0,1fr);gap:12px;min-height:0;overflow:hidden}.personnel-org-panel,.personnel-main-panel{min-width:0;min-height:0;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124de),radial-gradient(circle at 12% 0,rgba(36,182,255,.13),transparent 40%);box-shadow:inset 0 1px #90e0ff1f}.personnel-org-panel{display:grid;grid-template-rows:auto minmax(0,1fr);padding:14px 12px;overflow:hidden}.personnel-panel-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 3px 12px}.personnel-panel-title strong{color:#f2fbff;font-size:16px;font-weight:900}.personnel-panel-title span{color:#7faeca;font-family:var(--mono);font-size:11px}.personnel-org-tree{display:grid;align-content:start;gap:8px;min-height:0;overflow:auto}.personnel-org-node{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:8px;min-height:36px;padding:0 11px;border:1px solid transparent;border-radius:5px;color:#bedcf0;font-size:13px;text-align:left;background:transparent}.personnel-org-node.child{margin-left:23px;color:#91b5cf}.personnel-org-node svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}.personnel-org-node i{width:9px;height:9px;border-left:1px solid rgba(120,184,224,.42);border-bottom:1px solid rgba(120,184,224,.42)}.personnel-org-node span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.personnel-org-node:hover,.personnel-org-node.active{border-color:#36bcff5c;color:#f4fbff;background:linear-gradient(90deg,#237be854,#041e3c9e)}.personnel-main-panel{display:grid;overflow:hidden}.personnel-table-panel{display:grid;grid-template-rows:42px minmax(0,1fr);min-width:0;min-height:0;overflow:hidden}.personnel-table-panel[hidden]{display:none}.personnel-table-head,.personnel-row{display:grid;align-items:center;gap:12px}.personnel-role-head,.personnel-role-row{grid-template-columns:minmax(180px,1.2fr) minmax(160px,1fr) minmax(100px,.7fr) 88px}.personnel-user-head,.personnel-user-row{grid-template-columns:minmax(130px,1fr) minmax(150px,1fr) minmax(150px,1fr) 92px minmax(150px,1fr) 88px}.personnel-table-head{padding:0 14px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;background:#0313278a}.personnel-role-list,.personnel-user-list{display:grid;align-content:start;gap:8px;min-height:0;padding:10px;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.personnel-role-list.is-empty,.personnel-user-list.is-empty{display:none}.personnel-row{min-height:58px;padding:0 12px;border:1px solid rgba(63,161,255,.23);border-radius:6px;color:#d8efff;background:linear-gradient(90deg,#08315cc2,#03142adb);animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both;cursor:pointer}.personnel-row:hover,.personnel-row.selected{border-color:#32d6ff94;background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.16),transparent 38%),linear-gradient(90deg,#093a67e0,#03142aeb);transform:translateY(-2px)}.personnel-row span,.personnel-row strong{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.personnel-row strong{color:#f3fbff;font-size:14px}.personnel-row span{color:#a8c7de;font-size:12px}.personnel-switch{position:relative;display:inline-flex;align-items:center;justify-content:space-between;width:70px;height:30px;padding:0 8px 0 30px;border:1px solid rgba(120,152,178,.36);border-radius:999px;color:#9fb9ca;font-size:11px;font-weight:800;background:#12283de0}.personnel-switch i{position:absolute;left:5px;width:20px;height:20px;border-radius:50%;background:#90a4b6;box-shadow:inset 0 1px #ffffff3d;transition:transform .24s cubic-bezier(.16,1,.3,1),background .24s ease}.personnel-switch.active{padding:0 30px 0 9px;border-color:#36d3ff8f;color:#dffcff;background:linear-gradient(90deg,#1a82ffe6,#15b7a7cc)}.personnel-switch.active i{transform:translate(38px);background:#e9fbff}.personnel-actions{display:flex;justify-content:flex-end;gap:7px}.personnel-actions button{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(73,171,255,.3);border-radius:5px;color:#a8dcff;background:#031831c7}.personnel-actions button:hover{border-color:#34d9ff9e;color:#fff}.personnel-actions button.delete{border-color:#ff53535c;color:#ff9e9e}.personnel-actions svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9}.personnel-empty{display:none;grid-row:2;place-items:center;align-content:center;gap:10px;min-height:0;padding:30px;text-align:center}.personnel-workspace.roles-empty .personnel-role-empty,.personnel-workspace.users-empty .personnel-user-empty{display:grid}.personnel-empty svg{width:118px;height:104px;fill:none;stroke:#77b4dc73;stroke-width:4;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.personnel-empty strong{color:#eaf8ff;font-size:17px}.personnel-empty span{max-width:460px;color:#8fb5d0;font-size:13px;line-height:1.55}.personnel-role-modal[hidden]{display:none}.personnel-role-modal{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#000812ad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.personnel-dialog{width:min(640px,calc(100% - 42px));max-height:calc(100dvh - 70px);overflow:hidden;border:1px solid rgba(70,183,255,.56);border-radius:8px;background:linear-gradient(180deg,#082d58fa,#031226fa);box-shadow:inset 0 1px #aae8ff29,0 22px 54px #00000073;animation:panelDrop .28s cubic-bezier(.16,1,.3,1) both}.personnel-dialog-head{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 16px;background:linear-gradient(90deg,#075ccdf2,#1c7effe6)}.personnel-dialog-head h3{margin:0;color:#f5fbff;font-size:17px;font-weight:900}.personnel-close{width:30px;height:30px;color:#dff5ff;font-size:24px;line-height:1;background:transparent}.personnel-role-form{display:grid;gap:12px;max-height:calc(100dvh - 122px);padding:18px 18px 16px;overflow:auto}.personnel-form-field{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;align-items:start}.personnel-form-field>span{padding-top:9px;color:#b6d5ec;font-size:13px;text-align:right}.personnel-form-field.required>span:before{content:"*";margin-right:4px;color:#ff7474}.personnel-control{display:grid;gap:5px;min-width:0}.personnel-control input[type=text],.personnel-control select{width:100%;height:38px;min-width:0;padding:0 11px;border:1px solid rgba(80,168,255,.34);border-radius:5px;outline:none;color:#e7f6ff;font-family:var(--sans);font-size:13px;background:#031225d6;box-shadow:inset 0 1px #a6e4ff14}.personnel-control input::placeholder{color:#6f94b2}.personnel-control input:focus,.personnel-control select:focus{border-color:#2ed6ff9e;box-shadow:inset 0 1px #a6e4ff1f,0 0 0 2px #2ed6ff14}.personnel-form-field.is-invalid input,.personnel-form-field.is-invalid select{border-color:#ff6969d1}.personnel-form-field.is-invalid .field-error{display:block}.personnel-radio-group{display:flex;align-items:center;min-height:38px;gap:28px}.personnel-radio-group label,.personnel-permission-tree label,.personnel-permission-tree summary{color:#c2d8e9;font-size:13px}.personnel-radio-group input,.personnel-permission-tree input{accent-color:#39c8ff}.personnel-permissions-field{align-items:stretch}.personnel-permission-tree{display:grid;gap:8px;max-height:240px;padding:10px 12px;overflow:auto;border:1px solid rgba(80,168,255,.28);border-radius:5px;background:#0312259e;box-shadow:inset 0 1px #a6e4ff14}.personnel-permission-tree details{padding:2px 0 3px}.personnel-permission-tree summary{display:flex;align-items:center;gap:8px;min-height:28px;cursor:pointer}.personnel-permission-tree label{display:flex;align-items:center;gap:8px;min-height:28px;margin-left:28px;color:#93b8d2}.personnel-dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}.personnel-dialog-actions .route-tool{min-width:82px}@media(max-width:1180px){.personnel-workspace{grid-template-columns:220px minmax(0,1fr)}.personnel-user-head,.personnel-user-row{grid-template-columns:minmax(120px,1fr) minmax(120px,1fr) minmax(130px,1fr) 80px minmax(130px,1fr) 78px}}.device-toolbar{grid-template-columns:auto minmax(0,1fr) 220px 76px 76px 118px;align-items:center;min-height:78px}.device-tabs{display:inline-flex;align-items:center;gap:2px;width:max-content;padding:3px;border:1px solid rgba(78,170,255,.22);border-radius:999px;background:#0313279e}.device-tabs button{height:31px;padding:0 14px;border-radius:999px;color:#91b9d4;font-size:12px;font-weight:800;background:transparent}.device-tabs button.active{color:#f5fbff;background:linear-gradient(180deg,#2c78fff2,#144eccf5);box-shadow:inset 0 1px #bbe9ff33}.device-toolbar-spacer{min-width:0}.device-add.is-hidden{visibility:hidden;pointer-events:none}.device-workspace{display:grid;grid-template-columns:258px minmax(0,1fr);gap:12px;min-height:0;overflow:hidden}.device-org-panel,.device-main-panel{min-width:0;min-height:0;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124de),radial-gradient(circle at 12% 0,rgba(36,182,255,.13),transparent 40%);box-shadow:inset 0 1px #90e0ff1f}.device-org-panel{display:grid;grid-template-rows:auto minmax(0,1fr);padding:14px 12px;overflow:hidden}.device-panel-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 3px 12px}.device-panel-title strong{color:#f2fbff;font-size:16px;font-weight:900}.device-panel-title span{color:#7faeca;font-family:var(--mono);font-size:11px}.device-org-tree{display:grid;align-content:start;gap:8px;min-height:0;overflow:auto}.device-org-node{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:8px;min-height:36px;padding:0 11px;border:1px solid transparent;border-radius:5px;color:#bedcf0;font-size:13px;text-align:left;background:transparent}.device-org-node.child{margin-left:23px;color:#91b5cf}.device-org-node svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}.device-org-node i{width:9px;height:9px;border-left:1px solid rgba(120,184,224,.42);border-bottom:1px solid rgba(120,184,224,.42)}.device-org-node span{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.device-org-node:hover,.device-org-node.active{border-color:#36bcff5c;color:#f4fbff;background:linear-gradient(90deg,#237be854,#041e3c9e)}.device-main-panel{display:grid;overflow:hidden}.device-table-panel{display:grid;grid-template-rows:42px minmax(0,1fr);min-width:0;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.device-table-panel[hidden]{display:none}.device-table-head,.device-row{display:grid;align-items:center;gap:10px}.device-drone-head,.device-drone-row{grid-template-columns:110px 168px 156px 106px 190px 76px 132px 132px 118px;min-width:1220px}.device-airport-head,.device-airport-row{grid-template-columns:86px 146px 130px 180px 86px 92px 72px 124px 132px 154px;min-width:1210px}.device-counter-head,.device-counter-row{grid-template-columns:150px 140px 150px 82px 128px 120px minmax(180px,1fr) 90px;min-width:980px}.device-table-head{position:sticky;top:0;z-index:1;padding:0 14px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;background:#031327eb}.device-drone-list,.device-airport-list,.device-remote-list,.device-counter-list{display:grid;align-content:start;gap:8px;min-height:0;padding:10px}.device-drone-list.is-empty,.device-airport-list.is-empty,.device-remote-list.is-empty,.device-counter-list.is-empty{display:none}.device-row{min-height:58px;padding:0 12px;border:1px solid rgba(63,161,255,.23);border-radius:6px;color:#d8efff;background:linear-gradient(90deg,#08315cc2,#03142adb);animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both;cursor:pointer}.device-row:hover,.device-row.selected{border-color:#32d6ff94;background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.16),transparent 38%),linear-gradient(90deg,#093a67e0,#03142aeb);transform:translateY(-2px)}.device-row span,.device-row strong{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.device-row strong{color:#f3fbff;font-size:13px}.device-row span{color:#a8c7de;font-size:12px}.device-status{display:inline-flex;align-items:center;gap:6px;color:#b8cadd;font-size:12px;font-weight:800}.device-status i{width:9px;height:9px;border-radius:50%;background:#ff3f3f;box-shadow:0 0 10px #ff4c4c66}.device-status.online{color:#98f6d2}.device-status.online i{background:#18d882;box-shadow:0 0 10px #18d8826b}.device-actions{display:flex;justify-content:flex-end;gap:6px}.device-actions button{display:grid;place-items:center;width:27px;height:27px;border:1px solid rgba(73,171,255,.3);border-radius:5px;color:#a8dcff;background:#031831c7}.device-actions button:hover{border-color:#34d9ff9e;color:#fff}.device-actions button.delete{border-color:#ff53535c;color:#ff9e9e}.device-actions svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9}.device-empty{display:none;grid-row:2;place-items:center;align-content:center;gap:10px;min-width:100%;min-height:0;padding:30px;text-align:center}.device-workspace.drone-empty .device-drone-empty,.device-workspace.airport-empty .device-airport-empty,.device-workspace.remote-empty .device-remote-empty,.device-workspace.counter-empty .device-counter-empty{display:grid}.device-empty svg{width:118px;height:104px;fill:none;stroke:#77b4dc73;stroke-width:4;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.device-empty strong{color:#eaf8ff;font-size:17px}.device-empty span{max-width:460px;color:#8fb5d0;font-size:13px;line-height:1.55}.device-register-modal[hidden],.device-form-modal[hidden]{display:none}.device-register-modal,.device-form-modal{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#000812ad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.device-dialog{width:min(640px,calc(100% - 42px));max-height:calc(100dvh - 70px);overflow:hidden;border:1px solid rgba(70,183,255,.56);border-radius:8px;background:linear-gradient(180deg,#082d58fa,#031226fa);box-shadow:inset 0 1px #aae8ff29,0 22px 54px #00000073;animation:panelDrop .28s cubic-bezier(.16,1,.3,1) both}.device-dialog-head{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 16px;background:linear-gradient(90deg,#075ccdf2,#1c7effe6)}.device-dialog-head h3{margin:0;color:#f5fbff;font-size:17px;font-weight:900}.device-register-close,.device-form-close{width:30px;height:30px;color:#dff5ff;font-size:24px;line-height:1;background:transparent}.device-register-info{display:grid;gap:18px;padding:24px 28px 18px}.device-register-info dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:15px 18px;margin:0}.device-register-info dt{color:#edf9ff;font-size:14px;font-weight:900}.device-register-info dd{min-width:0;margin:0;overflow:hidden;color:#a9c9df;font-family:var(--mono);font-size:13px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.device-register-info p{margin:0;color:#8fb5d0;font-size:12px;line-height:1.6}.device-form{display:grid;gap:12px;max-height:calc(100dvh - 122px);padding:18px 18px 16px;overflow:auto}.device-form-field{display:grid;grid-template-columns:132px minmax(0,1fr);gap:12px;align-items:start}.device-form-field>span{padding-top:9px;color:#b6d5ec;font-size:13px;text-align:right}.device-form-field.required>span:before{content:"*";margin-right:4px;color:#ff7474}.device-control{display:grid;gap:5px;min-width:0}.device-control input,.device-control select{width:100%;height:38px;min-width:0;padding:0 11px;border:1px solid rgba(80,168,255,.34);border-radius:5px;outline:none;color:#e7f6ff;font-family:var(--sans);font-size:13px;background:#031225d6;box-shadow:inset 0 1px #a6e4ff14}.device-control input::placeholder{color:#6f94b2}.device-control input:focus,.device-control select:focus{border-color:#2ed6ff9e;box-shadow:inset 0 1px #a6e4ff1f,0 0 0 2px #2ed6ff14}.device-form-field.is-invalid input,.device-form-field.is-invalid select{border-color:#ff6969d1}.device-form-field.is-invalid .field-error{display:block}.device-dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}.device-dialog-actions .route-tool{min-width:82px}.workspace-toolbar{grid-template-columns:repeat(5,minmax(132px,1fr));align-items:stretch;min-height:78px}.workspace-kpi{display:grid;align-content:center;gap:6px;min-width:0;padding:0 14px;border:1px solid rgba(57,165,255,.24);border-radius:6px;background:linear-gradient(180deg,#082c52ad,#031327b8);box-shadow:inset 0 1px #97e5ff1a}.workspace-kpi span{overflow:hidden;color:#85aec8;font-size:12px;white-space:nowrap;text-overflow:ellipsis}.workspace-kpi strong{overflow:hidden;color:#effaff;font-size:15px;font-weight:900;white-space:nowrap;text-overflow:ellipsis}.workspace-kpi.warning strong{color:#ffbd65}.workspace-workspace{display:grid;min-width:0;min-height:0;overflow:hidden}.workspace-table{display:grid;grid-template-rows:46px minmax(0,1fr);min-width:0;min-height:0;overflow:auto;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124e0),radial-gradient(circle at 16% 0,rgba(36,182,255,.12),transparent 42%);box-shadow:inset 0 1px #90e0ff1f;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.workspace-table-head,.workspace-row{display:grid;grid-template-columns:minmax(140px,1.1fr) minmax(140px,1.1fr) minmax(160px,1.15fr) minmax(110px,.8fr) minmax(120px,.82fr) minmax(134px,.9fr);align-items:center;gap:14px;min-width:920px}.workspace-table-head{position:sticky;top:0;z-index:1;padding:0 16px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;font-weight:900;background:#031327eb}.workspace-list{display:grid;align-content:start;gap:8px;min-height:0;padding:10px}.workspace-list:empty{display:none}.workspace-row{width:100%;min-height:58px;padding:0 14px;border:1px solid rgba(63,161,255,.23);border-radius:6px;color:#d8efff;text-align:left;background:linear-gradient(90deg,#08315cc2,#03142adb);animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both}.workspace-row:hover,.workspace-row.selected{border-color:#32d6ff94;background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.16),transparent 38%),linear-gradient(90deg,#093a67e0,#03142aeb);transform:translateY(-2px)}.workspace-row span,.workspace-row strong{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.workspace-row strong{color:#f3fbff;font-size:13px}.workspace-row span{color:#abc9dd;font-size:12px}.workspace-row .mono{color:#cbe7fb;font-family:var(--mono)}.workspace-weather{display:inline-flex;align-items:center;gap:8px}.workspace-weather b{color:#ffbd65;font-size:12px}.workspace-weather.enabled b{color:#49e0a2}.workspace-weather i{display:grid;place-items:center;flex:0 0 auto;width:27px;height:27px;border:1px solid rgba(73,171,255,.3);border-radius:5px;color:#a8dcff;background:#031831c7}.workspace-weather i:hover{border-color:#34d9ff9e;color:#fff}.workspace-weather svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9}.workspace-empty{display:none;grid-row:2;place-items:center;align-content:center;gap:10px;min-width:100%;min-height:0;padding:30px;text-align:center}.workspace-workspace.is-empty .workspace-empty{display:grid}.workspace-empty svg{width:118px;height:104px;fill:none;stroke:#77b4dc73;stroke-width:4;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.workspace-empty strong{color:#eaf8ff;font-size:17px}.workspace-empty span{max-width:460px;color:#8fb5d0;font-size:13px;line-height:1.55}.workspace-detail-modal[hidden]{display:none}.workspace-detail-modal{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#000812ad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.workspace-dialog{width:min(620px,calc(100% - 42px));max-height:calc(100dvh - 70px);overflow:hidden;border:1px solid rgba(70,183,255,.56);border-radius:8px;background:linear-gradient(180deg,#082d58fa,#031226fa);box-shadow:inset 0 1px #aae8ff29,0 22px 54px #00000073;animation:panelDrop .28s cubic-bezier(.16,1,.3,1) both}.workspace-dialog-head{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 16px;background:linear-gradient(90deg,#075ccdf2,#1c7effe6)}.workspace-dialog-head h3{margin:0;color:#f5fbff;font-size:17px;font-weight:900}.workspace-detail-close{width:30px;height:30px;color:#dff5ff;font-size:24px;line-height:1;background:transparent}.workspace-detail-body{display:grid;gap:18px;padding:24px 28px 18px}.workspace-detail-body dl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:15px 18px;margin:0}.workspace-detail-body dt{color:#edf9ff;font-size:14px;font-weight:900}.workspace-detail-body dd{min-width:0;margin:0;overflow:hidden;color:#a9c9df;font-family:var(--mono);font-size:13px;text-align:right;text-overflow:ellipsis;white-space:nowrap}.workspace-detail-body p{margin:0;color:#8fb5d0;font-size:12px;line-height:1.6}.workspace-dialog-actions{display:flex;justify-content:flex-end;gap:9px}.workspace-dialog-actions .route-tool{min-width:82px}.settings-page{grid-template-rows:auto auto minmax(0,1fr)}.settings-toolbar{grid-template-columns:auto minmax(0,1fr);align-items:center;min-height:76px}.settings-tabs{display:inline-flex;align-items:center;gap:2px;width:max-content;padding:3px;border:1px solid rgba(78,170,255,.22);border-radius:999px;background:#0313279e}.settings-tabs button{height:31px;padding:0 16px;border-radius:999px;color:#91b9d4;font-size:12px;font-weight:900;background:transparent}.settings-tabs button.active{color:#f5fbff;background:linear-gradient(180deg,#2c78fff2,#144eccf5);box-shadow:inset 0 1px #bbe9ff33}.settings-workspace{display:grid;grid-template-columns:minmax(285px,.95fr) minmax(330px,1.08fr) minmax(310px,1fr);gap:13px;min-width:0;min-height:0;overflow:hidden}.settings-panel{min-width:0;min-height:0;overflow:auto;padding:16px 18px;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124e0),radial-gradient(circle at 16% 0,rgba(36,182,255,.12),transparent 42%);box-shadow:inset 0 1px #90e0ff1f;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.settings-section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:17px}.settings-section-title strong{color:#f2fbff;font-size:16px;font-weight:900}.settings-section-title span{color:#7faeca;font-family:var(--mono);font-size:11px}.settings-avatar-block{display:grid;justify-items:start;gap:8px;margin-bottom:18px}.settings-avatar-block>span{color:#9fc4dd;font-size:12px}.settings-avatar{display:grid;place-items:center;width:64px;height:64px;border:1px solid rgba(83,171,255,.32);border-radius:50%;color:#cae7fa;background:radial-gradient(circle at 38% 28%,rgba(126,212,255,.22),transparent 34%),linear-gradient(180deg,#0e3e6fdb,#041832eb);box-shadow:inset 0 1px #9fe7ff24}.settings-avatar svg{width:32px;height:32px;fill:none;stroke:currentColor;stroke-width:1.8}.settings-avatar.has-image{background-position:center;background-size:cover}.settings-avatar.has-image svg{display:none}.settings-form-grid,.settings-password-form{display:grid;gap:14px}.settings-field{display:grid;gap:7px;min-width:0}.settings-field>span,.settings-password-row>span{color:#9fc4dd;font-size:12px}.settings-field.required>span:after{content:"*";margin-left:4px;color:#ff7474}.settings-field input,.settings-meter-input{width:100%;height:39px;min-width:0;border:1px solid rgba(80,168,255,.34);border-radius:5px;outline:none;color:#e7f6ff;font-family:var(--sans);font-size:13px;background:#031225d6;box-shadow:inset 0 1px #a6e4ff14}.settings-field input{padding:0 11px}.settings-field input:disabled{color:#7f9bb0;background:#071b31b8;cursor:not-allowed}.settings-field input::placeholder{color:#6f94b2}.settings-field input:focus,.settings-meter-input:focus-within{border-color:#2ed6ff9e;box-shadow:inset 0 1px #a6e4ff1f,0 0 0 2px #2ed6ff14}.settings-field.is-invalid input{border-color:#ff6969d1}.settings-field.is-invalid .field-error{display:block}.settings-password-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px}.settings-password-row .route-tool{min-width:96px}.settings-cert-list{display:grid;align-content:start;gap:8px}.settings-cert-row{display:grid;grid-template-columns:minmax(0,1fr) 78px 20px;align-items:center;gap:12px;min-height:52px;padding:0 12px;border:1px solid rgba(63,161,255,.22);border-radius:6px;color:#d8efff;text-align:left;background:linear-gradient(90deg,#08315cc2,#03142adb);animation:routeCardIn .34s cubic-bezier(.16,1,.3,1) both}.settings-cert-row:hover{border-color:#32d6ff94;transform:translateY(-2px)}.settings-cert-row strong{min-width:0;overflow:hidden;color:#eaf8ff;font-size:13px;white-space:nowrap;text-overflow:ellipsis}.settings-cert-row span{color:#ffbd65;font-size:12px;font-weight:900}.settings-cert-row.uploaded span{color:#49e0a2}.settings-cert-row i{color:#83bce2;font-size:22px;font-style:normal;text-align:right}.settings-logo-row{display:flex;align-items:center;gap:12px;margin-bottom:18px}.settings-logo-preview{display:grid;place-items:center;width:62px;height:62px;border:1px solid rgba(83,171,255,.34);border-radius:8px;background:linear-gradient(180deg,#0a3360d1,#041831e6)}.settings-logo-preview img{width:46px;height:46px;object-fit:contain;transition:opacity .25s ease,filter .25s ease}.settings-logo-preview.is-deleted img{opacity:.2;filter:grayscale(1)}.settings-map-card{display:grid;gap:8px;margin-top:16px}.settings-map-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.settings-map-head span{color:#9fc4dd;font-size:12px}.settings-map-head b{color:#9ccfec;font-family:var(--mono);font-size:12px}.settings-map-preview{position:relative;min-height:174px;overflow:hidden;border:1px solid rgba(63,161,255,.28);border-radius:7px;background:#031225d6}.settings-map-preview img{width:100%;height:100%;min-height:174px;object-fit:cover;opacity:.86;filter:saturate(.95) brightness(.9)}.settings-map-preview:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 52% 52%,rgba(17,188,255,.24),transparent 25%),linear-gradient(180deg,#020b1a14,#020b1a5c)}.settings-map-search{position:absolute;top:10px;right:10px;z-index:1;display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(78,181,255,.42);border-radius:5px;color:#dff5ff;background:#03142ae0}.settings-map-search svg,.settings-map-marker svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2}.settings-map-marker{position:absolute;left:50%;top:50%;z-index:1;display:grid;place-items:center;width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(68,211,255,.6);border-radius:50%;color:#eaf9ff;background:radial-gradient(circle,#18c2ffe6,#115dd7e6);box-shadow:0 0 24px #18c2ff6b}.settings-range-field{margin-top:16px}.settings-coordinate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.settings-meter-input{display:grid;grid-template-columns:minmax(0,1fr) 72px;overflow:hidden}.settings-meter-input input{height:100%;border:0;background:transparent;box-shadow:none}.settings-meter-input b{display:grid;place-items:center;border-left:1px solid rgba(80,168,255,.24);color:#8fb9d5;font-size:12px}.settings-update{justify-self:end;min-width:108px;margin-top:12px}.settings-password-modal[hidden]{display:none}.settings-password-modal{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:#000812ad;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.settings-dialog{width:min(540px,calc(100% - 42px));overflow:hidden;border:1px solid rgba(70,183,255,.56);border-radius:8px;background:linear-gradient(180deg,#082d58fa,#031226fa);box-shadow:inset 0 1px #aae8ff29,0 22px 54px #00000073;animation:panelDrop .28s cubic-bezier(.16,1,.3,1) both}.settings-dialog-head{display:flex;align-items:center;justify-content:space-between;height:52px;padding:0 16px;background:linear-gradient(90deg,#075ccdf2,#1c7effe6)}.settings-dialog-head h3{margin:0;color:#f5fbff;font-size:17px;font-weight:900}.settings-password-close{width:30px;height:30px;color:#dff5ff;font-size:24px;line-height:1;background:transparent}.settings-password-form{padding:18px}.settings-dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}.settings-dialog-actions .route-tool{min-width:82px}.operation-log-page{grid-template-rows:auto auto minmax(0,1fr) auto}.operation-toolbar{grid-template-columns:minmax(0,1fr) 210px 210px minmax(360px,1.25fr) 76px 76px;align-items:end;min-height:78px}.operation-toolbar-spacer,.operation-date-field{min-width:0}.operation-workspace{display:grid;min-width:0;min-height:0;overflow:hidden}.operation-table{display:grid;grid-template-rows:46px minmax(0,1fr);min-width:0;min-height:0;overflow:auto;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124e0),radial-gradient(circle at 16% 0,rgba(36,182,255,.12),transparent 42%);box-shadow:inset 0 1px #90e0ff1f;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.operation-table-head,.operation-row{display:grid;grid-template-columns:minmax(120px,.86fr) minmax(95px,.62fr) minmax(150px,1fr) minmax(90px,.68fr) minmax(260px,1.45fr) minmax(170px,.94fr);align-items:center;gap:14px;min-width:980px}.operation-table-head{position:sticky;top:0;z-index:1;padding:0 16px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;font-weight:900;background:#031327eb}.operation-list{display:grid;align-content:start;gap:7px;min-height:0;padding:10px}.operation-list:empty{display:none}.operation-row{width:100%;min-height:45px;padding:0 14px;border:1px solid rgba(63,161,255,.18);border-radius:6px;color:#d8efff;text-align:left;background:linear-gradient(90deg,#082b52b3,#03142ad1);animation:routeCardIn .28s cubic-bezier(.16,1,.3,1) both}.operation-row:hover{border-color:#32d6ff85;background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.12),transparent 38%),linear-gradient(90deg,#093763db,#03142ae6);transform:translateY(-1px)}.operation-row span{min-width:0;overflow:hidden;color:#abc9dd;font-size:12px;white-space:nowrap;text-overflow:ellipsis}.operation-result{display:inline-flex;align-items:center;gap:7px;font-weight:900}.operation-result i{width:9px;height:9px;border-radius:50%;background:#ff5656;box-shadow:0 0 10px #ff565661}.operation-result.success{color:#a8f2d6}.operation-result.success i{background:#1fd883;box-shadow:0 0 10px #1fd8836b}.operation-result.fail{color:#ffb1b1}.operation-summary{color:#8fb5d0}.operation-time{color:#cbe7fb;font-family:var(--mono)}.operation-empty{display:none;grid-row:2;place-items:center;align-content:center;gap:10px;min-width:100%;min-height:0;padding:30px;text-align:center}.operation-workspace.is-empty .operation-empty{display:grid}.operation-empty svg{width:118px;height:104px;fill:none;stroke:#77b4dc73;stroke-width:4;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.operation-empty strong{color:#eaf8ff;font-size:17px}.operation-empty span{max-width:460px;color:#8fb5d0;font-size:13px;line-height:1.55}.operation-pagination{grid-template-columns:minmax(120px,auto) auto auto}.operation-page-buttons{display:inline-flex;align-items:center;gap:6px}.operation-page-buttons button{width:29px;height:29px;border:1px solid rgba(63,161,255,.3);border-radius:5px;color:#b7d7ed;font-family:var(--mono);font-size:12px;background:#041b36ad}.operation-page-buttons button.active{color:#fff;background:linear-gradient(180deg,#2d91ff,#125dd1)}.operation-page-buttons button:disabled{opacity:.48;cursor:not-allowed}.operation-page-ellipsis{display:grid;place-items:center;width:29px;height:29px;color:#8fb5d0;font-family:var(--mono);font-size:12px}.audit-log-page{grid-template-rows:auto auto minmax(0,1fr) auto}.audit-toolbar{grid-template-columns:minmax(0,1fr) 210px 210px minmax(360px,1.25fr) 76px 76px;align-items:end;min-height:78px}.audit-toolbar-spacer,.audit-date-field{min-width:0}.audit-workspace{display:grid;min-width:0;min-height:0;overflow:hidden}.audit-table{display:grid;grid-template-rows:46px minmax(0,1fr);min-width:0;min-height:0;overflow:auto;border:1px solid rgba(45,151,255,.32);border-radius:7px;background:linear-gradient(180deg,#062243bd,#021124e0),radial-gradient(circle at 74% 0,rgba(41,207,179,.1),transparent 38%);box-shadow:inset 0 1px #90e0ff1f;scrollbar-width:thin;scrollbar-color:rgba(57,174,255,.4) rgba(3,19,38,.52)}.audit-table-head,.audit-row{display:grid;grid-template-columns:minmax(120px,.78fr) minmax(90px,.55fr) minmax(160px,.9fr) minmax(128px,.72fr) minmax(150px,.95fr) minmax(92px,.58fr) minmax(170px,.88fr);align-items:center;gap:14px;min-width:1080px}.audit-table-head{position:sticky;top:0;z-index:1;padding:0 16px;border-bottom:1px solid rgba(72,157,255,.22);color:#8fb9d5;font-size:12px;font-weight:900;background:#031327eb}.audit-list{display:grid;align-content:start;gap:7px;min-height:0;padding:10px}.audit-list:empty{display:none}.audit-row{width:100%;min-height:45px;padding:0 14px;border:1px solid rgba(63,161,255,.18);border-radius:6px;color:#d8efff;text-align:left;background:linear-gradient(90deg,#082b52b3,#03142ad1);animation:routeCardIn .28s cubic-bezier(.16,1,.3,1) both}.audit-row:hover{border-color:#32d6ff85;background:radial-gradient(circle at 4% 20%,rgba(44,222,255,.12),transparent 38%),linear-gradient(90deg,#093763db,#03142ae6);transform:translateY(-1px)}.audit-row span{min-width:0;overflow:hidden;color:#abc9dd;font-size:12px;white-space:nowrap;text-overflow:ellipsis}.audit-result{display:inline-flex;align-items:center;gap:7px;font-weight:900}.audit-result i{width:9px;height:9px;border-radius:50%;background:#ff5656;box-shadow:0 0 10px #ff565661}.audit-result.success{color:#a8f2d6}.audit-result.success i{background:#1fd883;box-shadow:0 0 10px #1fd8836b}.audit-result.fail{color:#ffb1b1}.audit-ip,.audit-time{color:#cbe7fb;font-family:var(--mono)}.audit-empty{display:none;grid-row:2;place-items:center;align-content:center;gap:10px;min-width:100%;min-height:0;padding:30px;text-align:center}.audit-workspace.is-empty .audit-empty{display:grid}.audit-empty svg{width:118px;height:104px;fill:none;stroke:#77b4dc73;stroke-width:4;filter:drop-shadow(0 0 18px rgba(42,174,255,.18))}.audit-empty strong{color:#eaf8ff;font-size:17px}.audit-empty span{max-width:460px;color:#8fb5d0;font-size:13px;line-height:1.55}.audit-pagination{grid-template-columns:minmax(120px,auto) auto auto}.audit-page-buttons{display:inline-flex;align-items:center;gap:6px}.audit-page-buttons button{width:29px;height:29px;border:1px solid rgba(63,161,255,.3);border-radius:5px;color:#b7d7ed;font-family:var(--mono);font-size:12px;background:#041b36ad}.audit-page-buttons button.active{color:#fff;background:linear-gradient(180deg,#2d91ff,#125dd1)}.audit-page-buttons button:disabled{opacity:.48;cursor:not-allowed}.audit-page-ellipsis{display:grid;place-items:center;width:29px;height:29px;color:#8fb5d0;font-family:var(--mono);font-size:12px}@media(max-width:1180px){.device-toolbar{grid-template-columns:auto minmax(0,1fr) 210px 72px 72px 104px}.device-workspace{grid-template-columns:220px minmax(0,1fr)}.workspace-toolbar{grid-template-columns:repeat(3,minmax(132px,1fr))}.settings-workspace{grid-template-columns:minmax(250px,.9fr) minmax(300px,1fr) minmax(280px,.95fr)}.operation-toolbar,.audit-toolbar{grid-template-columns:minmax(0,1fr) 190px 190px minmax(320px,1fr) 72px 72px}}@keyframes trackDash{to{stroke-dashoffset:-120}}.toast-stack{position:fixed;right:26px;top:92px;z-index:20;display:grid;gap:8px;width:260px;pointer-events:none}.toast-item{padding:10px 12px;border:1px solid rgba(76,193,255,.42);border-radius:6px;color:#e9f8ff;font-size:13px;line-height:1.45;background:linear-gradient(180deg,#09345bf0,#021123f0);box-shadow:inset 0 1px #a0e8ff2e,0 10px 24px #00000047;animation:toastIn .22s cubic-bezier(.16,1,.3,1) both}.toast-item.warn{border-color:#ff99319e}.toast-item.leaving{animation:toastOut .36s ease both}.doc-feature-page{grid-template-rows:auto auto minmax(0,1fr)}.doc-workspace{display:grid;gap:14px;min-width:0;min-height:0}.alarm-config-workspace,.scout-workspace,.weather-ban-workspace{grid-template-columns:minmax(0,1.28fr) minmax(330px,.72fr)}.alarm-record-workspace,.flight-stats-workspace{grid-template-columns:minmax(260px,.34fr) minmax(0,1fr)}.doc-panel,.doc-map-panel{position:relative;min-width:0;min-height:0;border:1px solid rgba(48,156,232,.27);border-radius:8px;background:linear-gradient(180deg,#062545d1,#031225c7);box-shadow:inset 0 1px #9fe6ff1f,0 14px 34px #0000002e;overflow:hidden}.doc-panel{padding:16px}.doc-panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.doc-panel-title strong{color:#effaff;font-size:17px;font-weight:900}.doc-panel-title span{color:#51b8ff;font-size:11px;letter-spacing:.08em}.doc-form-grid,.weather-rule-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.doc-form-grid .route-field,.weather-rule-grid .route-field{position:relative;grid-template-columns:minmax(0,1fr);height:auto;padding:10px 11px}.doc-form-grid .route-field input,.weather-rule-grid .route-field input,.weather-rule-grid .route-field select{width:100%;color:#eef9ff}.doc-form-grid .route-field em,.weather-rule-grid .route-field em{position:absolute;right:12px;bottom:10px;color:#74b7dc;font-style:normal;font-size:12px}.doc-switch-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;padding:10px 11px;border:1px solid rgba(51,154,228,.24);border-radius:6px;color:#cfeeff;background:#03162bad}.doc-switch{position:relative;width:48px;height:26px;border:1px solid rgba(88,184,255,.36);border-radius:999px;background:#0f2d45eb;cursor:pointer}.doc-switch i{position:absolute;left:4px;top:4px;width:16px;height:16px;border-radius:50%;background:#8fb8d3;transition:transform .22s cubic-bezier(.16,1,.3,1),background .22s ease}.doc-switch.is-on{border-color:#2beea99e;background:#12805b61}.doc-switch.is-on i{background:#2beea9;transform:translate(21px)}.alarm-action-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:14px}.alarm-action-picker button,.doc-filter-pills button,.scout-split button{border:1px solid rgba(71,170,240,.27);border-radius:6px;color:#d9f3ff;background:#051f3bb8;cursor:pointer;transition:transform .22s cubic-bezier(.16,1,.3,1),border-color .22s ease,background .22s ease}.alarm-action-picker button{display:grid;place-items:center;gap:6px;min-height:70px;font-size:12px}.alarm-action-picker svg,.scout-map-tools svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9}.alarm-action-picker button:hover,.doc-filter-pills button:hover,.scout-split button:hover,.scout-case-card:hover{transform:translateY(-1px);border-color:#2ec9ff9e;background:#083f70d1}.alarm-action-list{display:grid;gap:8px;max-height:272px;overflow:auto;padding-right:4px}.alarm-action-row{display:grid;grid-template-columns:34px minmax(110px,.9fr) minmax(110px,1fr) 58px 28px;align-items:center;gap:10px;padding:9px 10px;border:1px solid rgba(54,151,224,.22);border-radius:6px;color:#d8f3ff;background:#041a33b8}.alarm-action-row b{color:#43c8ff;font-family:var(--mono-font)}.alarm-action-row em{color:#8fc6e3;font-style:normal;font-size:12px}.alarm-action-row button{border:0;color:#ff9c8f;background:transparent;cursor:pointer}.doc-map-raster{position:relative;overflow:hidden}.doc-map-raster{min-height:100%;background:#071d31}.doc-map-raster img{width:100%;height:100%;object-fit:cover;filter:saturate(.9) brightness(.66) contrast(1.08)}.scout-map-panel{display:grid;grid-template-rows:minmax(0,1fr) auto}.scout-map-tools{display:flex;align-items:center;gap:10px;padding:12px;border-top:1px solid rgba(76,172,241,.21);background:#020f20db}.scout-route-line{position:absolute;height:3px;border-radius:999px;background:linear-gradient(90deg,#24e8ab00,#24e8abe6,#4db0ff00);box-shadow:0 0 18px #24e8ab5c;transform-origin:left center}.scout-route-line.route-a{left:39%;top:47%;width:190px;transform:rotate(-31deg)}.scout-route-line.route-b{left:53%;top:43%;width:150px;transform:rotate(35deg)}.scout-map-pin,.scout-drone-dot{position:absolute;border:1px solid rgba(117,214,255,.55);color:#eefdff;background:#052646db;box-shadow:0 0 0 8px #0c89ff21;cursor:pointer}.scout-map-pin{display:flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px}.scout-map-pin svg,.scout-drone-dot svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}.scout-map-pin.is-active{border-color:#ff9931cc;background:#7f4315db;box-shadow:0 0 0 10px #ff841f26,0 0 24px #ff841f38}.scout-drone-dot{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;color:#2beea9}.scout-side-panel{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);gap:12px}.scout-case-list{display:grid;gap:9px}.scout-case-card{display:grid;gap:4px;width:100%;padding:11px 12px;border:1px solid rgba(58,151,220,.24);border-radius:7px;color:#dff5ff;text-align:left;background:#041c36b8;cursor:pointer}.scout-case-card.is-active{border-color:#2ec9ff9e;background:#083f70d1}.scout-case-card.failed b{color:#ffbd74}.scout-case-card span,.scout-case-card em{color:#86b9d8;font-style:normal;font-size:12px}.scout-split,.doc-filter-pills{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.scout-split button,.doc-filter-pills button{height:32px;padding:0 13px}.scout-split button.active,.doc-filter-pills button.active{color:#03182a;border-color:#39d6ffbf;background:#48c8ff}.scout-live-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-content:start}.scout-live-grid[data-split="1"],.scout-live-grid[data-split="2"]{grid-template-columns:1fr}.scout-live-grid.is-muted{opacity:.42;filter:grayscale(.72)}.scout-live-grid span{display:grid;place-items:center;min-height:96px;border:1px solid rgba(80,169,232,.22);border-radius:6px;color:#90c7e7;background:linear-gradient(135deg,#082c4ca8,#041327db)}.doc-toolbar{display:flex;align-items:center;justify-content:space-between;min-height:56px}.alarm-record-charts,.flight-stat-summary{display:grid;gap:14px}.alarm-ring-chart{display:grid;place-items:center;min-height:200px}.alarm-ring-chart span{display:grid;place-items:center;width:142px;height:142px;border-radius:50%;color:#eafaff;background:radial-gradient(circle at center,rgba(4,20,40,.96) 0 57%,transparent 58%),conic-gradient(#2beea9 0 72%,#448fc438 72% 100%);box-shadow:inset 0 0 0 8px #21649357}.alarm-ring-chart b{font-size:30px}.alarm-ring-chart em{color:#85b8d6;font-style:normal;font-size:12px}.alarm-trend{display:grid;grid-template-columns:repeat(7,1fr);align-items:end;gap:7px;min-height:160px;padding-top:30px}.alarm-trend b{grid-column:1 / -1;color:#e8f9ff}.alarm-trend span{min-height:18px;height:var(--h);border-radius:5px 5px 0 0;background:linear-gradient(180deg,#43c8ff,#2beea99e)}.doc-table-head,.doc-table-row{display:grid;align-items:center;gap:12px}.doc-table-head{min-height:44px;padding:0 12px;border-bottom:1px solid rgba(83,164,221,.18);color:#92bfd9;font-weight:800}.alarm-record-table .doc-table-head,.alarm-record-row{grid-template-columns:1.35fr .75fr 1fr 1fr 1fr 1fr}.doc-table-row{min-height:58px;padding:0 12px;border-bottom:1px solid rgba(83,164,221,.12);color:#d7edf8}.doc-table-row span,.doc-table-row button,.flight-stat-row span{min-width:0}.doc-table-row progress{width:86px;height:5px;accent-color:#2beea9}.doc-table-row button{height:26px;margin-right:5px;padding:0 9px;border:1px solid rgba(74,171,238,.35);border-radius:5px;color:#cdeeff;background:#052646c7}.dot{display:inline-block;width:9px;height:9px;margin-right:6px;border-radius:50%}.dot.green{background:#2beea9}.dot.orange{background:#ffad36}.dot.red{background:#ff5a4f}.flight-stat-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.flight-stat-summary span{display:grid;place-items:center;min-height:112px;border:1px solid rgba(66,161,232,.2);border-radius:7px;background:#041b34b8}.flight-stat-summary b{color:#eafaff;font-size:28px;font-family:var(--mono-font)}.flight-stat-summary em{color:#88bad8;font-style:normal}.flight-stat-table .doc-table-head,.flight-stat-row{grid-template-columns:1.2fr .8fr .8fr .8fr 1.5fr}.flight-stat-row{display:grid;align-items:center;gap:12px;min-height:58px;padding:0 12px;border-bottom:1px solid rgba(83,164,221,.12);color:#d7edf8}.flight-stat-bar{height:7px;border-radius:999px;background:#4795cb33;overflow:hidden}.flight-stat-bar i{display:block;width:var(--w);height:100%;border-radius:inherit;background:linear-gradient(90deg,#31bfff,#2beea9)}.weather-ban-risk b{color:#eafaff}.weather-ban-risk span,.weather-ban-risk em{color:#8fc2df}.weather-ban-overview{display:grid;gap:14px;align-content:start}.weather-ban-risk{display:grid;gap:10px;padding:14px;border:1px solid rgba(67,162,232,.23);border-radius:7px;background:#041a32b8}.weather-ban-risk em{width:fit-content;padding:5px 9px;border:1px solid rgba(43,238,169,.36);border-radius:999px;color:#2beea9;font-style:normal;background:#2beea91a}.weather-rule-preview{margin:0 0 14px;color:#9fcce5;line-height:1.65}@keyframes toastIn{0%{opacity:0;transform:translate(16px)}}@keyframes toastOut{to{opacity:0;transform:translate(18px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
