:root{--bg:#02070d;--panel:rgba(5,18,29,.86);--line:rgba(78,244,255,.22);--cyan:#4ef4ff;--violet:#b86cff;--gold:#ffd166;--red:#ff5577;--text:#ecfbff;--muted:#89aab5}*{box-sizing:border-box}html{background:var(--bg);color-scheme:dark}body{margin:0;min-height:100vh;color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at 15% 10%,rgba(35,186,255,.12),transparent 28%),radial-gradient(circle at 85% 20%,rgba(173,69,255,.11),transparent 30%),linear-gradient(rgba(2,7,13,.86),rgba(2,7,13,.95)),url('frequency.png') center/cover fixed}.noise{position:fixed;inset:0;pointer-events:none;opacity:.16;background-image:linear-gradient(rgba(78,244,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(78,244,255,.03) 1px,transparent 1px);background-size:28px 28px}.topbar{position:sticky;top:0;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:13px clamp(12px,3vw,34px);background:rgba(1,7,12,.9);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--cyan);border-radius:12px;color:var(--cyan);font-size:24px;font-weight:900;box-shadow:0 0 24px rgba(78,244,255,.28),inset 0 0 18px rgba(78,244,255,.08)}.brand strong{display:block;font-size:clamp(12px,2vw,18px);letter-spacing:.1em}.brand small{color:var(--muted)}.status-strip{display:flex;align-items:center;gap:9px}.layout{width:min(1480px,100%);margin:auto;padding:18px}.tabs{display:flex;gap:8px;overflow:auto;padding-bottom:12px}.tab,button,input,select{font:inherit}.tab,button{border:1px solid var(--line);background:rgba(5,20,31,.76);color:var(--text);border-radius:10px;padding:10px 14px;cursor:pointer;transition:.2s}.tab{white-space:nowrap}.tab:hover,button:hover{border-color:var(--cyan);box-shadow:0 0 16px rgba(78,244,255,.14)}.tab.active,.primary{background:linear-gradient(135deg,rgba(78,244,255,.22),rgba(184,108,255,.18));border-color:var(--cyan)}.danger{border-color:rgba(255,85,119,.5);color:#ff9aac}.badge{padding:6px 9px;border:1px solid rgba(78,244,255,.35);border-radius:999px;color:var(--cyan);font-size:11px;letter-spacing:.06em}.badge.muted{color:var(--muted);border-color:rgba(130,165,177,.25)}.panel-page{display:none}.panel-page.active{display:block;animation:fade .25s ease}@keyframes fade{from{opacity:0;transform:translateY(5px)}}.hero-grid,.two-col{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:16px}.card{position:relative;background:linear-gradient(145deg,rgba(8,26,40,.92),rgba(3,12,20,.9));border:1px solid var(--line);border-radius:18px;padding:18px;overflow:hidden;box-shadow:0 18px 60px rgba(0,0,0,.25)}.card:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 15%,rgba(78,244,255,.035),transparent 55%)}.card-head{position:relative;display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.eyebrow{color:var(--cyan);font-size:11px;letter-spacing:.18em}.card h2{margin:4px 0 0;font-size:clamp(17px,2vw,24px)}.card h3{color:var(--cyan);font-size:14px;margin:16px 0 10px}canvas{display:block;width:100%;border-radius:12px;background:rgba(0,5,9,.6)}#radar{height:min(55vh,520px)}#spectrum{height:300px}#scope{height:130px;margin-top:10px}.mini-3d{position:relative;margin-top:12px}.mini-3d canvas{height:220px}.scene-label{position:absolute;bottom:10px;left:12px;color:var(--muted);font-size:10px;letter-spacing:.16em}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.metric-grid.small{margin-top:14px}.metric{padding:14px;border:1px solid rgba(78,244,255,.12);border-radius:12px;background:rgba(0,0,0,.18)}.metric span,.metric small{display:block;color:var(--muted);font-size:12px}.metric strong{display:block;color:var(--cyan);font-size:22px;margin:8px 0}.quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}.quick{text-align:left;padding:16px;min-height:100px}.quick span,.quick b,.quick small{display:block}.quick span{font-size:24px}.quick b,.quick small{margin-top:6px}.quick small{color:var(--muted)}.radar-legend,.readouts{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;color:var(--muted);font-size:12px;margin-top:12px}.radar-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.cyan{background:var(--cyan)}.violet{background:var(--violet)}.gold{background:var(--gold)}.red{background:var(--red)}.dot-label{color:var(--muted);font-size:12px}.dot-label i{display:inline-block;width:8px;height:8px;background:var(--cyan);border-radius:50%;box-shadow:0 0 12px var(--cyan);margin-right:6px}.frequency-display{display:flex;align-items:baseline;justify-content:center;margin:28px 0 18px}.frequency-display input{width:70%;background:transparent;border:0;border-bottom:1px solid var(--line);outline:0;color:var(--cyan);font-size:clamp(44px,8vw,80px);text-align:center;font-weight:800}.frequency-display span{font-size:26px;color:var(--muted)}input[type=range]{width:100%;accent-color:var(--cyan)}select,input[type=number]{width:100%;padding:10px;border:1px solid var(--line);border-radius:8px;background:#06131e;color:var(--text)}.control-grid,.triple{display:grid;gap:12px;margin:14px 0}.control-grid{grid-template-columns:1fr 1fr}.triple{grid-template-columns:repeat(3,1fr)}label{color:var(--muted);font-size:12px}label input,label select{display:block;margin-top:6px}.actions{display:flex;gap:8px;flex-wrap:wrap}.presets{display:flex;gap:7px;flex-wrap:wrap;margin-top:15px}.presets button{padding:7px 10px;font-size:12px}.warning,.info{color:var(--muted);font-size:12px;line-height:1.6}.meter{position:relative;height:58px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#02070d;margin:22px 0}.meter>div{height:100%;width:0;background:linear-gradient(90deg,var(--cyan),var(--gold),var(--red));transition:width .08s}.meter span{position:absolute;inset:0;display:grid;place-items:center;font-size:22px;font-weight:800;text-shadow:0 2px 5px #000}.range-label{display:block}.limit-box{margin-top:16px;border-left:3px solid var(--gold);padding:12px 14px;background:rgba(255,209,102,.06)}.limit-box.alert{border-left-color:var(--red);background:rgba(255,85,119,.09)}.limit-box p{color:var(--muted);margin:6px 0 0;line-height:1.55}.device-list,.history-list{display:grid;gap:9px}.device,.history-row{display:flex;justify-content:space-between;gap:10px;padding:12px;border:1px solid rgba(78,244,255,.12);border-radius:10px;background:rgba(0,0,0,.18)}.device small,.history-row small{color:var(--muted)}.empty{padding:25px;text-align:center;color:var(--muted)}.data-table{display:grid;gap:8px}.data-row{display:flex;justify-content:space-between;border-bottom:1px solid rgba(78,244,255,.1);padding:10px 0}.data-row span{color:var(--muted)}.map-card{margin-top:16px}.map-card canvas{height:360px}.sensor-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.compass{display:grid;place-items:center}.compass-ring{position:relative;width:min(280px,70vw);aspect-ratio:1;border:1px solid var(--line);border-radius:50%;background:repeating-radial-gradient(circle,transparent 0 19%,rgba(78,244,255,.08) 20%),radial-gradient(circle,rgba(78,244,255,.06),transparent 60%)}.compass-ring span{position:absolute;color:var(--muted);font-weight:800}.compass-ring .n{top:7px}.compass-ring .s{bottom:7px}.compass-ring .e{right:9px;top:48%}.compass-ring .w{left:9px;top:48%}.needle{position:absolute;left:50%;top:16%;width:4px;height:40%;transform-origin:50% 85%;background:linear-gradient(var(--red) 0 55%,var(--cyan) 55%);clip-path:polygon(50% 0,100% 100%,50% 84%,0 100%);filter:drop-shadow(0 0 8px var(--cyan))}.compass>strong{font-size:30px;color:var(--cyan);margin-top:12px}.gps-data{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gps-data div{padding:12px;border:1px solid rgba(78,244,255,.12);border-radius:10px}.gps-data span,.gps-data b{display:block}.gps-data span{color:var(--muted);font-size:12px}.gps-data b{margin-top:7px;color:var(--cyan)}.motion-card canvas{height:260px}.cap-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.cap{padding:12px;border:1px solid rgba(78,244,255,.12);border-radius:10px}.cap b{display:block}.cap small{color:var(--muted)}.cap.ok b{color:var(--cyan)}.cap.no b{color:var(--red)}hr{border:0;border-top:1px solid rgba(78,244,255,.12);margin:20px 0}footer{text-align:center;color:var(--muted);font-size:11px;padding:24px}#toast{position:fixed;right:18px;bottom:18px;z-index:50;max-width:360px;padding:12px 16px;border:1px solid var(--cyan);border-radius:10px;background:#06131e;box-shadow:0 0 25px rgba(78,244,255,.2);transform:translateY(120px);opacity:0;transition:.25s}#toast.show{transform:none;opacity:1}@media(max-width:900px){.hero-grid,.two-col,.sensor-grid{grid-template-columns:1fr}.quick-grid{grid-template-columns:1fr 1fr}.brand small{display:none}.status-strip #clock,#recordBadge{display:none}}@media(max-width:560px){.layout{padding:10px}.card{padding:14px}.quick-grid{grid-template-columns:1fr}.card-head{align-items:flex-start;flex-direction:column}.control-grid,.triple{grid-template-columns:1fr}.actions button{flex:1}.status-strip .badge{display:none}.cap-grid{grid-template-columns:1fr}}
#radar{cursor:crosshair;touch-action:none}.radar-controls{display:grid;gap:12px;margin-top:14px;padding:14px;border:1px solid rgba(78,244,255,.18);border-radius:16px;background:rgba(1,10,18,.72)}.radar-controls label{display:grid;gap:7px;color:#b9d5df;font-size:.85rem}.radar-controls input[type=range]{width:100%}.selected-signal{display:grid;gap:3px}.selected-signal span{font-size:.75rem;color:#7ca6b5;text-transform:uppercase;letter-spacing:.12em}.selected-signal strong{font-size:1.45rem;color:#4ef4ff}.selected-signal small{color:#9db7c1}#realMap{height:430px;min-height:320px;border-radius:16px;overflow:hidden;border:1px solid rgba(78,244,255,.22);background:#061018}.leaflet-container{font-family:inherit}.leaflet-control-attribution{font-size:10px}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#07131d;color:#dffcff}.signal-list{display:grid;gap:8px}.signal-chip{border:1px solid rgba(184,108,255,.35);background:rgba(184,108,255,.08);border-radius:10px;padding:8px 10px}
