[hidden]{display:none!important}
:root{--bg:#07100f;--panel:#0b1715;--line:rgba(124,170,155,.18);--text:#e6f1ed;--muted:#769087;--green:#72f0bd;--orange:#ff8d6b;--blue:#62b8ff;--purple:#d9a7ff}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;color:var(--text);background:radial-gradient(circle at 50% -20%,#16332c 0,var(--bg) 38%);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}button,input{font:inherit}.shell{min-height:100vh;padding:0 26px 18px}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:22px}.auth-card{width:min(430px,100%);border:1px solid var(--line);background:linear-gradient(145deg,#0e1d1a,#081210);padding:28px;box-shadow:0 30px 90px rgba(0,0,0,.35)}.brand{display:flex;align-items:center;gap:14px}.brand p,.brand h1{margin:0}.brand p,.eyebrow{color:var(--green);font-size:9px;letter-spacing:.2em;font-weight:800}.brand h1{font:22px Georgia,serif;font-weight:400}.brand-mark{position:relative;width:37px;height:37px;border:1px solid var(--green);border-radius:50%;display:grid;place-items:center}.brand-mark:before,.brand-mark:after{content:"";position:absolute;border:1px solid rgba(114,240,189,.3);border-radius:50%;inset:6px}.brand-mark:after{inset:13px;background:var(--green);border:0;box-shadow:0 0 15px var(--green)}.brand-mark i{position:absolute;width:1px;height:45px;background:rgba(114,240,189,.18)}.brand-mark i:nth-child(2){transform:rotate(60deg)}.brand-mark i:nth-child(3){transform:rotate(120deg)}.auth-card>div:not(.brand){margin-top:42px}.auth-card h2{font:34px Georgia,serif;font-weight:400;margin:8px 0 12px}.auth-card p{color:#8ba299;font-size:12px;line-height:1.7}.auth-card form{margin-top:24px;display:grid;gap:15px}.auth-card label{font-size:9px;letter-spacing:.1em;color:#8aa198}.auth-card input{display:block;width:100%;margin-top:7px;border:1px solid var(--line);background:#07110f;color:var(--text);padding:13px;outline:0}.auth-card input:focus{border-color:var(--green)}.auth-card button{border:1px solid rgba(114,240,189,.4);background:rgba(114,240,189,.08);color:var(--green);padding:13px;letter-spacing:.12em;font-size:9px;cursor:pointer}.form-error{min-height:20px;color:#ff9d82!important;margin:13px 0 0!important}.topbar{height:78px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.top-status{display:flex;align-items:center;gap:16px;color:#8ea69e;font:10px ui-monospace,monospace}.real-tag{padding:6px 8px;border:1px solid rgba(114,240,189,.3);color:var(--green)}.live{color:var(--green)}.live i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);animation:pulse 2s infinite}.user{padding-left:14px;border-left:1px solid var(--line)}.user b{color:var(--text)}#logout{border:0;background:transparent;color:#789087;cursor:pointer;font-size:9px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}.metrics article{padding:16px 20px;border-right:1px solid var(--line);display:grid;grid-template-columns:1fr auto;align-items:end}.metrics article:first-child{padding-left:0}.metrics article:last-child{border:0}.metrics span{grid-column:1/-1;color:var(--muted);font-size:8px;letter-spacing:.15em}.metrics strong{font:27px Georgia,serif;font-weight:400}.metrics small{font-size:8px;color:var(--muted);padding-bottom:4px}.workspace{display:grid;grid-template-columns:210px minmax(480px,1fr) 260px;gap:12px;padding-top:12px;min-height:calc(100vh - 205px)}.panel{border:1px solid var(--line);background:linear-gradient(145deg,rgba(14,29,26,.97),rgba(8,18,16,.98))}.panel-heading{height:45px;padding:0 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.14em;font-weight:800}.panel-heading small{font-size:7px;color:var(--muted)}.layers{display:flex;flex-direction:column}.layers>label{display:grid;grid-template-columns:18px 9px 1fr;gap:8px;align-items:center;padding:15px 13px;border-bottom:1px solid var(--line);font-size:11px;cursor:pointer}.layers input{accent-color:var(--green)}.layers label small{display:block;font-size:8px;color:var(--muted);margin-top:3px}.dot{width:7px;height:7px;border-radius:50%;display:block}.dot.air{background:var(--blue);box-shadow:0 0 8px var(--blue)}.dot.aprs{background:var(--green);box-shadow:0 0 8px var(--green)}.dot.sat{background:var(--purple);box-shadow:0 0 8px var(--purple)}.focus{margin:auto 12px 12px;padding:13px;border:1px solid var(--line);background:#091411}.focus>span{font-size:7px;letter-spacing:.15em;color:var(--muted)}.focus strong{display:block;font:20px Georgia,serif;margin:8px 0}.focus p{font-size:9px;line-height:1.55;color:#86a097;margin:0}.focus>small{display:block;color:var(--green);font:7px ui-monospace,monospace;margin-top:10px}.scope{display:flex;flex-direction:column;min-width:0}.scope-head{height:46px;padding:0 14px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;font-size:8px;color:var(--muted)}.scope-head span{display:block;color:var(--text);font-size:9px;letter-spacing:.14em;font-weight:800}.scope-head strong{color:var(--text)}.radar{flex:1;min-height:440px;position:relative;overflow:hidden;background:radial-gradient(circle,rgba(49,110,90,.1),transparent 58%),linear-gradient(rgba(114,240,189,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(114,240,189,.035) 1px,transparent 1px);background-size:auto,34px 34px,34px 34px}.ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid rgba(114,240,189,.13);border-radius:50%;aspect-ratio:1}.r1{width:24%}.r2{width:52%}.r3{width:82%}.cross{position:absolute;background:rgba(114,240,189,.1)}.cross.h{height:1px;left:5%;right:5%;top:50%}.cross.v{width:1px;top:5%;bottom:5%;left:50%}.radar>.n,.radar>.e,.radar>.s,.radar>.w{position:absolute;color:#567269;font:8px ui-monospace,monospace}.n{top:10px;left:50%}.s{bottom:10px;left:50%}.e{right:10px;top:50%}.w{left:10px;top:50%}.home{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3}.home i{display:block;width:9px;height:9px;border:2px solid white;border-radius:50%;box-shadow:0 0 0 5px rgba(255,255,255,.08),0 0 14px white}.home small{position:absolute;white-space:nowrap;transform:translate(-42%,9px);font:7px ui-monospace,monospace;color:#a9bbb5}.scan{position:absolute;left:50%;top:50%;width:41%;height:1px;background:linear-gradient(90deg,rgba(114,240,189,.55),transparent);transform-origin:left;animation:scan 9s linear infinite}.point{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;color:var(--point);display:flex;align-items:center;gap:6px;z-index:4;cursor:pointer;text-align:left}.point i{width:8px;height:8px;border:2px solid currentColor;border-radius:50%;box-shadow:0 0 8px currentColor}.point.aircraft i{border-radius:0;border-width:0 0 2px 2px;transform:rotate(135deg)}.point.satellites i{width:11px;height:11px;border-radius:2px;transform:rotate(45deg)}.point span{font:8px ui-monospace,monospace;color:#bdd0ca;white-space:nowrap}.point:hover i,.point.selected i{background:currentColor;box-shadow:0 0 0 5px color-mix(in srgb,currentColor 14%,transparent),0 0 13px currentColor}.scope-foot{height:29px;border-top:1px solid var(--line);padding:0 12px;display:flex;align-items:center;justify-content:space-between;color:#607a71;font:7px ui-monospace,monospace}.events{overflow:auto}.event{display:grid;grid-template-columns:7px 1fr;gap:9px;padding:13px;border-bottom:1px solid var(--line)}.event>i{width:6px;height:6px;border-radius:50%;background:var(--event);box-shadow:0 0 7px var(--event);margin-top:3px}.event strong{font-size:10px}.event p{font-size:8px;color:var(--muted);line-height:1.45;margin:4px 0 0}.empty{padding:25px 14px;color:var(--muted);font-size:9px}.sources{min-height:35px;border:1px solid var(--line);border-top:0;display:flex;align-items:center;gap:18px;padding:8px 11px;color:#708a81;font:8px ui-monospace,monospace}.source i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#566b64;margin-right:5px}.source.online i{background:var(--green);box-shadow:0 0 7px var(--green)}.source b{color:#a4b8b1;font-weight:500}.source.error b{color:#ff9d82}@keyframes scan{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.35}}@media(max-width:1000px){.workspace{grid-template-columns:200px 1fr}.activity{grid-column:1/-1}.metrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.shell{padding:0 11px 12px}.topbar{height:auto;padding:14px 0;align-items:flex-start}.top-status{flex-wrap:wrap;justify-content:flex-end;gap:8px}.real-tag{display:none}.top-status time{width:100%;text-align:right}.metrics article{padding:12px 9px}.workspace{grid-template-columns:1fr}.layers{display:grid;grid-template-columns:repeat(3,1fr)}.layers .panel-heading,.layers .focus{grid-column:1/-1}.layers>label{grid-template-columns:16px 8px 1fr;padding:11px 7px}.focus{margin:10px}.radar{min-height:470px}.sources{flex-wrap:wrap}.brand h1{font-size:18px}.user{display:none}}

#settings-open{border:0;background:transparent;color:var(--green);cursor:pointer;font-size:9px}
.settings-dialog{width:min(480px,calc(100% - 24px));border:1px solid var(--line);background:linear-gradient(145deg,#0e1d1a,#081210);color:var(--text);padding:0;box-shadow:0 30px 90px rgba(0,0,0,.65)}
.settings-dialog::backdrop{background:rgba(1,7,6,.78);backdrop-filter:blur(3px)}
.settings-dialog form{padding:24px}.settings-heading{display:flex;align-items:flex-start;justify-content:space-between}.settings-heading h2{font:30px Georgia,serif;font-weight:400;margin:7px 0 10px}.settings-heading button{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:20px}.settings-dialog p{color:#8ba299;font-size:11px;line-height:1.6}.settings-dialog label{display:block;margin-top:20px;color:#8aa198;font-size:9px;letter-spacing:.12em}.settings-dialog input{display:block;width:100%;margin-top:8px;border:1px solid var(--line);background:#07110f;color:var(--text);padding:13px;outline:0}.settings-dialog input:focus{border-color:var(--green)}
.range-presets{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:10px}.range-presets button,.settings-save{border:1px solid rgba(114,240,189,.3);background:rgba(114,240,189,.07);color:var(--green);padding:10px 4px;cursor:pointer;font-size:9px}.settings-save{width:100%;margin-top:8px;padding:13px;letter-spacing:.12em}.settings-message{min-height:18px;color:var(--green)!important;margin:10px 0 0!important}@media(max-width:520px){.range-presets{grid-template-columns:repeat(3,1fr)}}

/* Responsive v3 */
.workspace{
  grid-template-areas:"layers scope activity";
  min-width:0
}
.layers{grid-area:layers;min-width:0}
.scope{grid-area:scope;min-width:0}
.activity{grid-area:activity;min-width:0}
.point span{
  max-width:130px;
  overflow:hidden;
  text-overflow:ellipsis;
  padding:3px 5px;
  background:rgba(7,16,15,.78);
  border-radius:2px;
  pointer-events:none
}
.metrics article,.panel,.point{transition:border-color .2s,background .2s,transform .2s}
.metrics article:hover{background:rgba(114,240,189,.025)}
#settings-open,#logout{min-height:38px;padding:0 8px}

@media(max-width:1100px){
  .workspace{
    grid-template-columns:minmax(0,1fr) 260px;
    grid-template-areas:
      "scope activity"
      "layers activity"
  }
  .layers{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .layers .panel-heading,.layers .focus{grid-column:1/-1}
  .layers>label{min-width:0}
  .activity{max-height:760px}
}

@media(max-width:780px){
  .shell{padding:0 14px 16px}
  .topbar{
    height:auto;
    min-height:110px;
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    padding:16px 0
  }
  .top-status{
    width:100%;
    display:grid;
    grid-template-columns:1fr auto auto;
    gap:8px;
    justify-content:stretch
  }
  .top-status .real-tag{display:none}
  .top-status time{
    grid-column:1/-1;
    grid-row:1;
    width:auto;
    text-align:left
  }
  .top-status .live{grid-column:1}
  .top-status .user{display:block;grid-column:1;padding:0;border:0}
  #settings-open,#logout{
    border:1px solid var(--line);
    min-height:42px;
    padding:0 12px
  }
  .metrics{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .metrics article{
    min-height:84px;
    padding:14px 12px;
    border-bottom:1px solid var(--line)
  }
  .metrics article:nth-child(2){border-right:0}
  .metrics span{font-size:9px}
  .metrics small{font-size:9px}
  .workspace{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:
      "scope"
      "layers"
      "activity";
    gap:10px;
    min-height:0
  }
  .scope-head{
    height:auto;
    min-height:58px;
    gap:12px;
    padding:10px 12px
  }
  .scope-head>div:last-child{
    flex:0 0 auto;
    white-space:nowrap
  }
  .radar{
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:1/1
  }
  .layers{
    grid-template-columns:repeat(3,minmax(0,1fr))
  }
  .layers>label{
    min-height:64px;
    padding:11px 8px
  }
  .focus{margin:10px}
  .activity{max-height:none}
  .events{max-height:420px}
  .sources{
    flex-wrap:wrap;
    gap:10px 16px;
    padding:12px
  }
}

@media(max-width:480px){
  .shell{padding:0 9px 12px}
  .brand h1{font-size:17px}
  .top-status{grid-template-columns:1fr auto auto}
  .metrics strong{font-size:24px}
  .metrics article{padding:12px 9px}
  .scope-head small{display:none}
  .layers>label{
    grid-template-columns:17px 8px 1fr;
    font-size:10px
  }
  .point span{display:none}
  .point.selected span{
    display:block;
    position:absolute;
    left:12px;
    max-width:115px
  }
  .point i{width:10px;height:10px}
  .scope-foot{font-size:6px}
  .range-presets{grid-template-columns:repeat(3,1fr)}
}

/* Location settings v5 */
.location-settings{margin:0 24px 24px;padding-top:22px;border-top:1px solid var(--line)}
.location-settings h3{font:24px Georgia,serif;font-weight:400;margin:6px 0 8px}.location-auto{width:100%;border:1px solid rgba(114,240,189,.3);background:rgba(114,240,189,.07);color:var(--green);padding:12px;cursor:pointer;font-size:9px;letter-spacing:.08em}
.coordinate-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.coordinate-grid label{margin-top:14px}.location-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.location-actions button{min-height:42px}.location-actions #location-reset{border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;font-size:9px}.location-settings .settings-save{margin:0}
@media(max-width:520px){.coordinate-grid,.location-actions{grid-template-columns:1fr}.settings-dialog{max-height:calc(100vh - 20px);overflow:auto}.location-settings{margin:0 18px 20px}}
