@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4f6667dd39116621-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07935285219a259d-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/f58031ded4338640-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/77814b00d5ca94a4-s.p.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/605ce01b664af129-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}._2r-lLq_className{font-family:Geist,Geist Fallback;font-style:normal}._2r-lLq_variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/b0c6b664fd57c2c6-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6e342921ee4dcd9d-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bb852295097cd96-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9eb5a876700c0028-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2a04751c893bf294-s.p.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/07a39a8a4660cc7c-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}._3UCl3a_className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}._3UCl3a_variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--bg:#0b0f14;--bg-2:#0f151c;--panel:#111821;--panel-2:#16202b;--line:#1f2a36;--line-2:#2a3846;--text:#e6edf3;--muted:#8b98a5;--dim:#5d6b79;--red:#ff4d4f;--red-bg:#ff4d4f1f;--orange:#ff9f1c;--green:#34d399;--amber:#f5b041;--accent:#4cc2ff;--violet:#c4a7ff;--radius:10px;--font:var(--font-geist-sans), system-ui, -apple-system, "Segoe UI", sans-serif;--mono:var(--font-geist-mono), ui-monospace, "SF Mono", Menlo, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:14px;line-height:1.4}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}.muted{color:var(--muted)}.mono{font-family:var(--mono);font-size:12px}.app{flex-direction:column;height:100dvh;min-height:0;display:flex}.topbar{background:var(--bg-2);border-bottom:1px solid var(--line);z-index:1000;flex:0 0 52px;align-items:center;gap:20px;padding:0 16px;display:flex;position:relative}.brand{letter-spacing:.02em;color:var(--accent);align-items:center;gap:8px;font-weight:650;display:flex}.brand span{color:var(--text)}.nav{gap:4px;display:flex}.nav a{color:var(--muted);border-radius:7px;padding:6px 10px}.nav a:hover,.nav a.on{color:var(--text);background:var(--panel-2)}.topbar-right{align-items:center;gap:14px;min-width:0;margin-left:auto;display:flex}.who{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;max-width:220px;font-size:13px;overflow:hidden}.demo-badge{font-family:var(--mono);letter-spacing:.12em;color:#111;background:var(--amber);border-radius:5px;padding:3px 8px;font-size:11px;font-weight:700}.live-status{color:var(--muted);white-space:nowrap;align-items:center;gap:7px;font-size:13px;display:inline-flex}.live-status i{background:var(--green);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 3px #34d39926}.live-status.bad{color:var(--amber)}.live-status.bad i{background:var(--amber);box-shadow:0 0 0 3px #f5b04133}.main{flex:1;grid-template-columns:minmax(0,1fr) 400px;min-height:0;display:grid}.map-wrap{isolation:isolate;min-width:0;min-height:0;position:relative}.map{background:#161c22;position:absolute;inset:0}.map-loading{background:#161c22}.map-alarm{z-index:800;color:#ffd7d7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;background:#1e080ae0;border:1px solid #ff4d4f99;border-radius:999px;align-items:center;gap:10px;padding:7px 14px 7px 12px;font-weight:600;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.map-alarm.stale{color:#ffe2b0;background:#1e1606e6;border-color:#f5b041b3}.map-alarm.stale .pulse-dot{background:var(--amber);animation:none}.map-alarm-sub{color:#d9c08f;font-weight:500}.pulse-dot{background:var(--red);border-radius:50%;width:9px;height:9px;animation:1.4s ease-out infinite dotpulse}@keyframes dotpulse{0%{box-shadow:0 0 #ff4d4fb3}to{box-shadow:0 0 0 10px #ff4d4f00}}.panel{background:var(--panel);border-left:1px solid var(--line);scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;min-height:0;overflow-y:auto}.sec{border-bottom:1px solid var(--line);padding:14px 14px 10px}.sec-h{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);align-items:center;gap:8px;margin:0 0 10px;font-size:11px;font-weight:650;display:flex}.count{font-family:var(--mono);letter-spacing:0;color:var(--muted);background:var(--panel-2);border:1px solid var(--line-2);border-radius:999px;padding:0 7px;font-size:11px;line-height:18px}.count.alarm{color:#fff;background:var(--red);border-color:var(--red)}.quiet{color:var(--dim);padding:4px 2px 6px}.quiet.bad{color:var(--amber)}.stale-chip{font-family:var(--mono);letter-spacing:0;text-transform:none;color:var(--amber);border:1px solid #f5b04173;border-radius:999px;padding:0 7px;font-size:11px;line-height:18px}.alarm-card.stale,.alarm-card.stale.t-fpv,.alarm-card.stale.t-audio_drone{filter:grayscale();opacity:.7}.alarm-card{text-align:left;cursor:pointer;border-radius:var(--radius);width:100%;box-shadow:inset 3px 0 0 var(--red);background:linear-gradient(#ff4d4f29,#ff4d4f12);border:1px solid #ff4d4f8c;margin:0 0 10px;padding:12px 14px 10px;display:block}.alarm-card.t-fpv,.alarm-card.t-audio_drone{box-shadow:inset 3px 0 0 var(--orange);background:linear-gradient(#ff9f1c29,#ff9f1c0f);border-color:#ff9f1c8c}.alarm-card:hover{filter:brightness(1.12)}.alarm-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.alarm-name{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:650;overflow:hidden}.alarm-dist{letter-spacing:-.01em;color:#fff;font-variant-numeric:tabular-nums;align-items:baseline;gap:10px;margin-top:2px;font-size:28px;font-weight:700;display:flex}.alarm-node{color:#f3c4c4;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.t-fpv .alarm-node,.t-audio_drone .alarm-node{color:#f6d7ad}.alarm-sub{color:#f0d0d0;font-variant-numeric:tabular-nums;font-size:13px}.alarm-meta{color:#ffe6e6bf;font-variant-numeric:tabular-nums;margin-top:6px;font-size:12px}.alarm-fix{color:#ffe2b8;margin-top:4px;font-size:12px}.tbadge{font-family:var(--mono);letter-spacing:.06em;background:var(--red);color:#fff;border-radius:4px;flex:none;padding:2px 6px;font-size:10.5px;font-weight:700}.tbadge.t-fpv,.tbadge.t-audio_drone{background:var(--orange);color:#1a1000}.spark{width:100%;height:34px;margin-top:8px;display:block}.chart{width:100%;height:auto;margin-top:10px;display:block}.chart .grid{stroke:var(--line-2);stroke-width:1px}.chart .axis{fill:var(--muted);font-size:10.5px;font-family:var(--mono)}.episodes,.nodes{margin:0;padding:0;list-style:none}.episodes li{border-radius:8px}.episodes li.sel{background:var(--panel-2);outline:1px solid var(--line-2);box-shadow:inset 3px 0 0 var(--accent)}.ep-row,.node-row{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:8px;display:flex}.ep-row:hover,.node-row:hover:not(:disabled){background:var(--panel-2)}.node-row:disabled{cursor:default}.ep-dot{background:var(--red);border-radius:50%;flex:none;width:8px;height:8px}.ep-dot.t-fpv,.ep-dot.t-audio_drone{background:var(--orange)}.ep-dot.live{animation:1.4s ease-out infinite dotpulse}.ep-main{flex-direction:column;flex:1;min-width:0;display:flex}.ep-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ep-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.ep-time{text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;flex:none;display:flex}.ep-detail{padding:2px 10px 12px}.ep-detail dl{grid-template-columns:repeat(3,1fr);gap:8px 10px;margin:4px 0 0;display:grid}.ep-detail dt{color:var(--muted);font-size:11px}.ep-detail dd{font-variant-numeric:tabular-nums;margin:0}.legend{color:var(--muted);flex-wrap:wrap;gap:12px;margin-top:6px;font-size:12px;display:flex}.legend i{vertical-align:middle;border-radius:2px;width:10px;height:3px;margin-right:6px;display:inline-block}.sdot{vertical-align:0;background:#6b7685;border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.sdot.s-online{background:var(--green);box-shadow:0 0 0 3px #34d39926}.sdot.s-degraded{background:var(--amber)}.sdot.s-disabled{background:#3a434f}.caps{flex:none;gap:4px;display:flex}.cap{font-size:11px;font-family:var(--mono);color:#a9c8ff;white-space:nowrap;border:1px solid #2b4466;border-radius:4px;padding:1px 5px}.cap-audio{color:var(--violet);border-color:#4a3d6e}.panel{container-type:inline-size}@media (min-width:1200px){.main.wide{grid-template-columns:minmax(0,1fr) min(640px,46vw)}}.sec-h-end{font-family:var(--mono);letter-spacing:0;text-transform:none;color:var(--dim);margin-left:auto}.ep-title{align-items:center;gap:8px;min-width:0;display:flex}.ep-title .ep-name{min-width:0}.ep-title .tbadge{padding:1px 5px;font-size:9.5px}.ep-nodes{color:#b9c6d3}.ep-sub.live,.c-dur.live{color:#ff9a9a;font-weight:600}.node-row .chev{color:var(--dim);flex:none}.node-row:hover .chev{color:var(--text)}.info-chip{font-family:var(--mono);letter-spacing:0;text-transform:none;color:var(--muted);border:1px solid var(--line-2);white-space:nowrap;border-radius:999px;padding:0 7px;font-size:11px;line-height:18px}.sv-back{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:4px;margin:-4px 0 10px -6px;padding:4px 8px 4px 4px;display:inline-flex}.sv-back:hover{color:var(--text);background:var(--panel-2)}.sv-head{align-items:center;gap:10px;min-width:0;display:flex}.sv-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:18px;font-weight:650;overflow:hidden}.sv-state{color:var(--muted);margin:2px 0 0 19px}.sv-ant{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 0 19px;font-size:12px;display:flex}.sv-ant .warn-chip{margin-left:0}.sv-state.s-online{color:var(--green)}.sv-state.s-degraded{color:var(--amber)}.sv-facts{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px 12px;margin:12px 0 4px;display:grid}.sv-facts dt{color:var(--muted);font-size:11px}.sv-facts dd{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:0}.sv-logh{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;margin-bottom:8px;display:flex}.sv-logh .sec-h{flex-wrap:wrap;margin:0}.seg{border:1px solid var(--line-2);border-radius:7px;display:inline-flex;overflow:hidden}.seg button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px 10px;font-size:12px}.seg button+button{border-left:1px solid var(--line-2)}.seg button:hover{color:var(--text)}.seg button[aria-pressed=true]{background:var(--panel-2);color:var(--text)}.log-head{display:none}.log-row{text-align:left;cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:8px;grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"name name name type""when when when dur""freq dist pow pow";align-items:center;gap:2px 12px;width:100%;padding:9px 8px;display:grid}.log-row:hover{background:var(--panel-2)}.log-row .num{white-space:nowrap}.c-when{color:var(--muted);grid-area:when;align-items:center;gap:8px;font-size:12px;display:flex}.c-name{overflow-wrap:anywhere;grid-area:name;min-width:0}.c-type{grid-area:type;justify-self:end}.c-freq{grid-area:freq}.c-dist{grid-area:dist}.c-pow{grid-area:pow}.c-dur{color:var(--muted);grid-area:dur;justify-self:end;font-size:12px}.c-freq,.c-dist,.c-pow{color:#b9c6d3;font-size:12px}.lbl-n{color:var(--dim)}.log-row .none{display:none}.log-row .c-freq.none{color:var(--dim);display:inline}@container (min-width:630px){.log-head,.log-row{grid-template-columns:96px minmax(120px,1fr) 44px 84px 62px 66px 78px;grid-template-areas:"when name type freq dist pow dur";gap:6px;display:grid}.log-head{border-bottom:1px solid var(--line);color:var(--muted);margin-bottom:4px;padding:0 8px 6px;font-size:11px}.log-head>span:first-child{padding-left:16px}.log-head .num,.log-row .num{text-align:right;justify-self:end}.log-row{padding:7px 8px}.c-type{justify-self:start}.c-when{color:var(--text);font-size:inherit}.c-freq,.c-dist,.c-pow,.c-dur{font-size:inherit;color:var(--text)}.lbl-n{display:none}.log-row .none{color:var(--dim);display:inline}.log .ep-detail{grid-template-columns:150px minmax(0,1fr);align-items:start;gap:0 16px;display:grid}.log .ep-detail dl{grid-template-columns:1fr;margin-top:10px}.log .ep-detail .chart{max-height:170px}}.leaflet-tooltip.node-label.sel{border-color:var(--accent);color:#fff}.leaflet-container{font-family:var(--font);background:#161c22}.tiles-dark{filter:invert()hue-rotate(180deg)brightness(.95)contrast(.88)saturate(.35)}.leaflet-bar a,.leaflet-control-layers{background:var(--panel)!important;color:var(--text)!important;border-color:var(--line-2)!important}.leaflet-bar{border:1px solid var(--line-2)!important;box-shadow:none!important}.leaflet-control-layers{border:1px solid var(--line-2)!important;box-shadow:none!important;border-radius:8px!important}.leaflet-control-layers-toggle{filter:invert();background-size:18px 18px;width:34px!important;height:34px!important}.leaflet-control-attribution{font-size:10.5px;color:var(--muted)!important;background:#0b0f14bf!important}.leaflet-control-attribution a{color:#a9c8ff!important}.leaflet-tooltip.node-label{border:1px solid var(--line-2);color:var(--text);box-shadow:none;background:#0b0f14d1;border-radius:5px;padding:2px 7px;font-size:12px}.leaflet-tooltip.node-label:before{display:none}.leaflet-tooltip.node-label{pointer-events:auto;cursor:pointer}.leaflet-tooltip.ring-label{color:#ffe0e0;box-shadow:none;white-space:nowrap;background:#280608e6;border:1px solid #ff4d4fbf;border-radius:5px;padding:2px 8px;font-size:12px}.leaflet-tooltip.ring-label:before{border-top-color:#ff4d4fbf}.leaflet-tooltip.est-label{color:#ffe8c7;box-shadow:none;background:#281400e6;border:1px solid #ff9f1ccc;border-radius:5px;padding:3px 8px;font-size:12px}.leaflet-tooltip.est-label span{color:#d9b98c;font-size:11px}.leaflet-tooltip.est-label:before{display:none}.dark-popup .leaflet-popup-content-wrapper,.dark-popup .leaflet-popup-tip{background:var(--panel);color:var(--text);border:1px solid var(--line-2);box-shadow:0 8px 24px #00000073}.dark-popup .leaflet-popup-content{margin:10px 12px;font-size:13px;line-height:1.5}.z-lt10 .leaflet-tooltip.node-label,.z-lt13 .leaflet-tooltip.ring-label,.z-lt13 .leaflet-tooltip.est-label,.z-lt13 .est-cand,.z-lt13 .est-point,.z-lt13 path.est-line{display:none}.map.stale path.ring-pulse{stroke:#8a94a3;stroke-dasharray:6 5;fill:#8a94a3;animation:none}.map.stale path.arc-pulse{stroke:#8a94a3;stroke-dasharray:6 5;animation:none}.map.stale .alarm-halo{display:none}.map.stale .leaflet-tooltip.ring-label,.map.stale .leaflet-tooltip.est-label{filter:grayscale();opacity:.75}.map.stale .est-cand,.map.stale .est-point{filter:grayscale()}path.ring-pulse{animation:1.6s ease-in-out infinite ringpulse}path.arc-pulse{animation:1.6s ease-in-out infinite arcpulse}@keyframes arcpulse{0%,to{stroke-opacity:1;stroke-width:4px}50%{stroke-opacity:.4;stroke-width:10px}}.ant-dir{pointer-events:none}.ant-dir svg{transform-origin:50%;display:block}@keyframes ringpulse{0%,to{stroke-opacity:1;stroke-width:2.5px}50%{stroke-opacity:.35;stroke-width:7px}}.alarm-halo{pointer-events:none}.alarm-halo span{border:2px solid var(--red);border-radius:50%;animation:1.8s ease-out infinite halo;position:absolute;inset:0}.alarm-halo span+span{animation-delay:.9s}@keyframes halo{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.4)}}.est-point{pointer-events:none;--est:var(--orange)}.est-point i{background:var(--est);border:2px solid #1a1000;position:absolute;inset:4px;transform:rotate(45deg);box-shadow:0 0 0 3px #ffffff2e}.est-cand{--est:var(--orange);border:2px dashed var(--est);background:#0b0f14b3;border-radius:50%;box-shadow:0 0 0 2px #ffffff59}.est-cand:after{content:"?";font:700 11px/1 var(--mono);color:var(--est);place-items:center;display:grid;position:absolute;inset:0}.est-red{--est:var(--red)}.est-orange{--est:var(--orange)}.center-page{place-items:center;min-height:100dvh;padding:16px;display:grid}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px}.login-card{width:100%;max-width:360px;padding:28px 24px 24px}.login-brand{color:var(--accent);align-items:center;gap:10px;margin-bottom:22px;font-size:20px;font-weight:650;display:flex}.state-card{text-align:center;min-width:280px;padding:28px 32px}.state-card h1{margin:0 0 6px;font-size:20px}.state-card form{margin-top:16px}.form{flex-direction:column;gap:12px;display:flex}.form label{color:var(--muted);flex-direction:column;gap:5px;font-size:12px;display:flex}input:not([type=checkbox]),select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line-2);border-radius:8px;outline:none;width:100%;padding:9px 11px}select:focus{border-color:var(--accent)}input::placeholder{color:var(--dim)}input:focus{border-color:var(--accent)}.btn-primary,.btn-ghost{cursor:pointer;white-space:nowrap;border-radius:8px;padding:9px 14px;font-weight:600}.btn-primary{background:var(--accent);color:#04121b;border:1px solid var(--accent)}.btn-primary:disabled{opacity:.45;cursor:default}.btn-ghost{border:1px solid var(--line-2);color:var(--text);background:0 0;font-weight:500}.topbar .btn-ghost{padding:5px 10px;font-size:13px}.btn-ghost:hover:not(:disabled){background:var(--panel-2)}.form-error{color:#ff9b9b;margin:0;font-size:13px}.form-ok{color:var(--green);margin:0;font-size:13px}.admin{flex:1;grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;min-height:0;padding:16px;display:grid;overflow:auto}.admin.has-editor{grid-template-columns:minmax(0,1fr) 420px}.admin>*{min-width:0}@media (max-width:1600px){.admin.has-editor .ntable .opt{display:none}}.cap-off{opacity:.55;text-decoration:line-through}.admin-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.admin-head h1{margin:0;font-size:18px}.add-form{gap:8px;display:flex}.add-form input{width:220px}.table-wrap{border:1px solid var(--line);background:var(--panel);border-radius:12px;overflow-x:auto}.ntable{border-collapse:collapse;width:100%;font-size:13px}.ntable th{text-align:left;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:600}.ntable td{border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 12px}.ntable tr:last-child td{border-bottom:0}.ntable tbody tr{cursor:pointer}.ntable tbody tr:hover{background:var(--panel-2)}.ntable tr.sel{background:var(--panel-2);box-shadow:inset 3px 0 0 var(--accent)}.ntable .num{text-align:right;font-variant-numeric:tabular-nums}.linkish{cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.warn-chip{color:var(--amber);border:1px solid #f5b04166;border-radius:4px;margin-left:8px;padding:1px 5px;font-size:11px}.editor{padding:16px;position:sticky;top:0}.editor-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.editor-head h2{margin:0;font-size:16px}.editor-head .btn-ghost{padding:4px 9px}.picker-map{border:1px solid var(--line-2);background:#161c22;border-radius:10px;height:260px;position:relative;overflow:hidden}.row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.lbl-row{align-items:center;gap:0;min-height:16px;display:flex}.lbl-row .warn-chip{line-height:1.2}.compass-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.compass-row .form-error,.compass-row .form-ok{margin:0}.checks{flex-wrap:wrap;gap:18px;display:flex}.form label.check{color:var(--text);cursor:pointer;flex-direction:row;align-items:center;gap:7px;font-size:14px}.check input{width:16px;height:16px;accent-color:var(--accent)}.editor-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.modal-back{z-index:3000;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{flex-direction:column;gap:12px;width:100%;max-width:560px;padding:20px;display:flex}.modal h2{margin:0;font-size:17px}.warn-line{color:var(--amber);margin:0;font-size:13px}.secret-box{background:var(--bg);border:1px solid var(--line-2);border-radius:8px;align-items:center;gap:10px;padding:10px 10px 10px 12px;display:flex}.secret-box code{min-width:0;font-family:var(--mono);word-break:break-all;color:#b7f5d8;flex:1;font-size:13px}.snippet-name{font-family:var(--mono);color:var(--muted);margin-bottom:-6px;font-size:12px}.snippet{background:var(--bg);border:1px solid var(--line-2);font-family:var(--mono);color:#cfd8e3;white-space:pre-wrap;word-break:break-all;border-radius:8px;margin:0;padding:12px;font-size:12px;line-height:1.6}@media (max-width:860px){.app{height:auto;min-height:100dvh}.topbar{gap:12px;padding:0 12px;position:sticky;top:0}.who{display:none}.main{flex-direction:column;display:flex}.map-wrap{flex:none;height:56dvh}.panel{border-left:0;border-top:1px solid var(--line);overflow:visible}.admin,.admin.has-editor{grid-template-columns:minmax(0,1fr);padding:12px;overflow:visible}.editor{position:static}.add-form{width:100%}.add-form input{flex:1;width:auto;min-width:0}}@media (max-width:420px){.brand span,.live-status .lbl{display:none}.topbar,.topbar-right{gap:8px}.live-status{font-size:12px}}.account{justify-content:center;padding:32px 16px;display:flex}.account-form{width:100%;max-width:380px}.account-form h1{margin:0 0 4px;font-size:18px}a.who{color:inherit;text-decoration:none}a.who:hover,a.who.on{text-decoration:underline}.nav a.nav-konto{display:none}@media (max-width:860px){.nav a.nav-konto{display:block}}:root{--teal:#2dd4bf}.tbadge.t-remote_id{background:var(--teal);color:#00201c}.leaflet-tooltip.est-label.rid-label{color:#c8fff6;background:#00201ce6;border-color:#2dd4bfb3}.leaflet-tooltip.est-label.rid-label span{color:#9fe8dc}.ep-dot.t-remote_id{background:var(--teal)}.alarm-card.t-remote_id{box-shadow:inset 3px 0 0 var(--teal);background:linear-gradient(#2dd4bf24,#2dd4bf0d);border-color:#2dd4bf80}.alarm-card.stale.t-remote_id{filter:grayscale();opacity:.7}.rid-drone i{background:var(--teal);clip-path:polygon(50% 0,100% 100%,50% 78%,0 100%);border:2px solid #00201c;position:absolute;inset:3px}.rid-op{border:2px solid var(--teal);background:#0b0f14;border-radius:3px}.z-lt10 .rid-op{display:none}.bad-chip{color:var(--red);border:1px solid #ff4d4f73;border-radius:4px;margin-left:8px;padding:1px 5px;font-size:11px}.ntable select{width:auto;padding:3px 6px;font-size:13px}.ntable td .score{font-family:var(--mono);color:var(--muted);margin-left:6px;font-size:12px}.members{max-width:900px;padding:16px}.members h1{margin:0 0 12px;font-size:18px}.plain-fieldset{gap:inherit;border:0;flex-direction:column;min-width:0;margin:0;padding:0;display:flex}.plain-fieldset:disabled .btn-ghost,.plain-fieldset:disabled .compass-row{display:none}a.link-btn{text-decoration:none;display:inline-block}a.btn-primary{color:#04121b}.btn-ghost.btn-danger{color:#ff9b9b;border-color:#ff4d4f73}.btn-ghost.btn-danger:hover:not(:disabled){background:var(--red-bg)}@media (max-width:520px){.topbar .nav{scrollbar-width:none;flex:auto;min-width:0;overflow-x:auto}.topbar .nav::-webkit-scrollbar{display:none}.topbar .nav a{white-space:nowrap;padding:6px 7px}.topbar-right{flex:none}}.btn-eeid{padding:12px 14px;font-size:15px}.btn-text{color:var(--muted);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:6px 0;font-size:13px;text-decoration:underline}.btn-text:hover{color:var(--text)}.login-email{border-top:1px solid var(--line);margin-top:4px;padding-top:14px}.account-stack{flex-direction:column;align-items:center;gap:16px}.kv{grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:10px 16px;margin:14px 0 0;display:grid}.kv dt{color:var(--muted);font-size:13px}.kv dd{overflow-wrap:anywhere;margin:0}.kv dd .btn-ghost{padding:6px 12px;font-size:13px}.account-stack>.account-form{padding:20px 22px}@media (max-width:520px){.members .opt{display:none}}.member-add{flex-wrap:wrap;gap:8px;margin:0 0 12px;display:flex}.member-add input{flex:220px;width:auto;min-width:0}.member-add select{width:auto}.members td .btn-ghost{padding:4px 10px;font-size:13px}
