
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#02080d;color:#eef9ff;font-family:"Arial Narrow","Roboto Condensed","Helvetica Neue",Arial,sans-serif}body{background:linear-gradient(#02080d,#03111a)}
:root{--cyan:#12c9ff;--cyan-d:#08678e;--green:#14ef83;--red:#ff3048;--gold:#f2b72c;--panel:#031725;--panel2:#062239;--muted:#7eb9d4}
button,input{font:inherit}.mast{height:205px;width:100%;margin:0;position:relative;display:grid;grid-template-columns:310px 1fr 470px;align-items:center;gap:12px;padding:8px 28px;overflow:hidden;border-bottom:1px solid #0b6e96;background:radial-gradient(circle at 70% 52%,#ff9a3d55 0,transparent 13%),linear-gradient(160deg,#0c2c3d 0 42%,#0a1d29 43% 54%,#020a10 55%)}
.mast:before{content:"";position:absolute;inset:0;background:linear-gradient(168deg,transparent 0 49%,#04121b 50% 58%,transparent 59%),linear-gradient(194deg,transparent 0 54%,#02090e 55% 70%,transparent 71%);opacity:.95}.mast:after{content:"";position:absolute;right:26%;bottom:-5px;width:2px;height:130px;background:#01080c;box-shadow:6px 0 #01080c,-6px 0 #01080c;transform:skew(-5deg)}
.logo{z-index:2;width:285px;height:188px;object-fit:contain;filter:drop-shadow(0 4px 8px #000)}.masttitle{z-index:2;text-align:center;text-shadow:0 3px 4px #000}.masttitle h1{margin:0;font-family:Impact,"Arial Narrow",sans-serif;font-size:64px;line-height:.95;letter-spacing:2px;font-weight:500}.masttitle h1 em{font-style:normal;background:linear-gradient(#fff,#e8d1aa 65%,#9b6e35);-webkit-background-clip:text;background-clip:text;color:transparent}.masttitle>div{margin-top:5px;font-size:23px;letter-spacing:8px;color:#c4e0ed}.masttitle strong{display:block;margin-top:6px;font-size:24px;letter-spacing:8px;color:var(--gold)}.masttitle small{display:block;margin-top:3px;font:italic 20px "Brush Script MT","Segoe Script",cursive;color:#fff}.mastside{z-index:2;align-self:stretch;text-align:right;padding-top:8px}.mastside>div{display:inline-block;padding:7px 10px;border:1px solid #0b4d6b;border-radius:6px;background:#03131edb}.livepill{margin-right:10px;color:#21ef8b;font-weight:900}.livepill i{display:inline-block;width:9px;height:9px;border-radius:50%;background:#20ed86;box-shadow:0 0 10px #20ed86}.mastside nav{display:flex;justify-content:flex-end;gap:5px;margin-top:76px}.mastside button{padding:10px 15px;color:#eaf8ff;background:linear-gradient(#0a4164,#05273e);border:1px solid #137aa8;border-radius:4px;box-shadow:inset 0 1px #ffffff20}
main{width:100%;margin:0;padding:8px 16px 38px}.kpis{display:grid;grid-template-columns:repeat(4,1fr) 1.1fr;gap:10px;margin-bottom:8px}.kpi{height:82px;display:flex;align-items:center;justify-content:center;gap:13px;background:linear-gradient(#06243a,#03131f);border:1px solid #0b638a;border-radius:6px;box-shadow:inset 0 1px #49d4ff17,0 3px 9px #0005}.kpi i{font-style:normal;font-size:38px;color:#16c7ff;text-shadow:0 0 12px #14bfff}.kpi.good i{color:#2af399}.kpi.bad i{color:#ff4056}.kpi b{font-size:31px}.kpi span{font-size:12px;color:#86d0ef}.kpi.service div{display:flex;flex-direction:column}.kpi.service span{color:#22ef8b;font-weight:900}
.nodes{display:grid;gap:6px}.nodepanel{display:grid;grid-template-columns:minmax(0,2.55fr) 500px;gap:10px}.primary,.sidecard{background:linear-gradient(#041b2a,#02111a);border:1px solid #0b678e;border-radius:6px;overflow:hidden;box-shadow:0 6px 18px #0007,inset 0 1px #42d3ff12}.nodehead{height:66px;display:flex;align-items:center;gap:11px;padding:6px 12px;background:linear-gradient(90deg,#07263c,#041725);border-bottom:1px solid #145b78}.biglamp{width:39px;height:39px;border-radius:50%;background:#2cf296;box-shadow:0 0 17px #20ef8a}.nodehead h2{margin:0;font-size:36px;white-space:nowrap}.nodeidentity{flex:1;min-width:0}.nodeidentity .desc{font-size:19px;font-weight:900}.where{margin-top:1px;font-size:12px;color:#78c4e5}.online{padding:10px 14px;border:1px solid #0aa35d;border-radius:4px;background:#063d28;color:#27f091;font-weight:900}.uptimebox{text-align:right;font-size:8px;color:#7eb5cd}.uptimebox b{display:block;margin-top:2px;font-size:11px;color:#fff}
.radiostats{display:grid;grid-template-columns:1fr 1fr 1.05fr;background:#03131e}.radiostat{padding:6px 14px;border-right:1px solid #0c3448}.radiostat b,.radiostat span{display:block}.radiostat b{font-size:11px}.radiostat span{font-size:10px;color:#22ef89;font-weight:900}.rxhot{color:#ff4258!important}.txhot{color:#28f095!important}
.activity{display:none;min-height:54px;margin:6px 8px 0;padding:6px 12px;align-items:center;grid-template-columns:44px 1fr 150px;gap:7px;border-radius:6px}.activity.on,.activity.network{display:grid}.activity.on{background:linear-gradient(90deg,#820918,#550812 65%,#22050a);border:2px solid #ff3047;box-shadow:0 0 15px #ff304750}.activity.network{background:linear-gradient(90deg,#06422b,#075b37 65%,#03271a);border:2px solid #1be983;box-shadow:0 0 15px #1be9833d}.activity .mic{font-size:31px;color:#ff5365;text-shadow:0 0 10px #ff3047}.activity.network .mic{color:#2df398}.activity strong{display:block;font-size:17px}.activity small{font-size:10px;color:#ffc0c6}.bars{height:32px;display:flex;align-items:end;gap:3px}.bars i{width:10px;background:#ff3047}.activity.network .bars i{background:#20ec88}.bars i:nth-child(1),.bars i:nth-child(8){height:25%}.bars i:nth-child(2),.bars i:nth-child(7){height:45%}.bars i:nth-child(3),.bars i:nth-child(6){height:70%}.bars i:nth-child(4),.bars i:nth-child(5){height:95%}
.links{padding:5px 8px 0;overflow:auto}.linkhead,.linkrow{display:grid;grid-template-columns:95px minmax(340px,1fr) 105px 105px 90px 145px 110px 125px;align-items:center;min-width:1120px}.linkhead{height:34px;padding:0 7px;color:#82d2f3;font-size:11px;border-bottom:1px solid #15536e}.linkrow{min-height:39px;padding:3px 7px;font-size:13px;border-bottom:1px solid #0b3549}.linkrow b{font-size:14px}.linkrow:hover{background:#073047}.linked{color:#1ff08a;font-weight:900}.connecting{color:#f5ba35}.linkrow.keyed{background:linear-gradient(90deg,#064027,#087b46 58%,#04331f);box-shadow:inset 3px 0 #31f595}.ipcell{font:10px ui-monospace,Consolas,monospace;color:#86cde9}.placeholder{padding:14px;color:#78adc4}
.connectbar{display:flex;align-items:center;gap:8px;padding:8px 10px 10px}.connectbar span{font-size:10px}.connectbar input{width:225px;height:46px;padding:0 9px;color:#fff;background:#031521;border:1px solid #125c7d;border-radius:4px}.connectbar button{height:48px;min-width:165px;color:#fff;font-size:14px;font-weight:900;border-radius:4px;box-shadow:inset 0 1px #ffffff22}.tx{background:linear-gradient(#079650,#045c32);border:1px solid #0ce778}.monitor{background:linear-gradient(#0870ad,#06436f);border:1px solid #1598e1}.disconnect{background:linear-gradient(#af172c,#73101e);border:1px solid #e33b4e}
.rightcol{display:grid;gap:9px;align-content:start}.sidecard h3{margin:0;padding:7px 9px;color:#22d5ff;background:#05233a;border-bottom:1px solid #146386;font-size:14px}.sidebody{padding:7px}.healthgrid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.healthitem{min-height:90px;padding:7px;background:#041825;border:1px solid #104d69;border-radius:4px;font-size:12px}.healthitem span{display:block;margin-top:4px;color:#25ed8b;font-weight:900}.quick{display:grid;grid-template-columns:1fr 1fr;gap:5px}.quick button{min-height:48px;color:#fff;background:linear-gradient(#0a456a,#062a43);border:1px solid #1379a7;border-radius:4px;font-size:12px;font-weight:800}.quick .danger{color:#ffe7a5;background:linear-gradient(#a97808,#654703);border-color:#d79c13}.info{display:grid;grid-template-columns:125px 1fr;gap:4px;font-size:12px}.info span{color:#b8dced}.wvmap{height:90px;margin:0 8px 6px;border-top:1px solid #0c4058;color:#2c6d8a;font-size:27px;font-weight:900;display:flex;align-items:center;justify-content:center;position:relative}.wvmap i{position:absolute;width:7px;height:7px;border-radius:50%;background:#ff3047;box-shadow:0 0 10px #ff3047}
footer{width:100%;height:42px;margin:0;padding:0 16px;display:flex;align-items:center;justify-content:space-between;color:#68afcf;background:#020a10;border-top:1px solid #123b50;font-size:11px}footer b{color:#eeb32b;letter-spacing:3px}
dialog{color:#eef8ff;background:#061824;border:1px solid #137aa8;border-radius:7px;max-width:92vw}dialog::backdrop{background:#000b}.wide{width:850px}.x{float:right}.tabs,.actions{display:flex;gap:7px;flex-wrap:wrap}.tabpane{display:none}.tabpane.active{display:block}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}label{display:grid;gap:4px}dialog input{padding:7px;color:#fff;background:#03131f;border:1px solid #145b7b}.cfgrow,.health{display:flex;justify-content:space-between;align-items:center;padding:7px;border-bottom:1px solid #17445a}.muted{color:#84b6cb}.lamp{display:inline-block;width:11px;height:11px;border-radius:50%;background:#20ee87}.neutral{background:#8297a1}.am3-wire-status{position:fixed;right:10px;bottom:7px;z-index:1000;padding:4px 7px;color:#f0b73b;background:#03111be8;border:1px solid #805a17;border-radius:4px;font-size:8px;letter-spacing:1px}.am3-wire-status.ok{color:#28f194;border-color:#168e58}
@media(max-width:1050px){.mast{grid-template-columns:150px 1fr;height:auto}.mastside{grid-column:1/-1;padding:0}.mastside nav{margin-top:8px}.nodepanel{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.mast{display:block;text-align:center}.logo{height:110px}.masttitle h1{font-size:31px}.masttitle>div{font-size:11px;letter-spacing:3px}.mastside{text-align:center}.mastside nav{justify-content:center;flex-wrap:wrap}.kpis{grid-template-columns:1fr 1fr}.connectbar{flex-wrap:wrap}.formgrid{grid-template-columns:1fr}}

@media(min-width:1500px){
  .masttitle h1{font-size:68px}
  .nodepanel{grid-template-columns:minmax(0,1fr) 520px}
  .primary{min-height:535px}
  .sidecard h3{font-size:14px}
  .mastside>div{font-size:15px}
}

/* v2.4 RX/TX housekeeping — presentation only */
.radiostat.rx,.radiostat.tx{
  background:linear-gradient(180deg,#07954f,#045d32)!important;
  border:1px solid #12e67b!important;
  transition:background .12s,border-color .12s,box-shadow .12s;
}
.radiostat.rx b,.radiostat.rx span,
.radiostat.tx b,.radiostat.tx span{color:#effff7!important}
.radiostat.rx.active,.radiostat.tx.active{
  background:linear-gradient(180deg,#b5162c,#710d1d)!important;
  border-color:#ff3b52!important;
  box-shadow:inset 0 0 0 1px #ff526355,0 0 10px #ff263733;
}
.radiostat.rx.active span,.radiostat.tx.active span{
  font-size:17px!important;font-weight:900!important;color:#fff!important;
}

/* v2.5 source-aware receive status */
.radiostat.rx.local-rx,.radiostat.rx.network-rx,
.radiostat.tx.active{
  background:linear-gradient(180deg,#b5162c,#710d1d)!important;
  border-color:#ff3b52!important;
}
.radiostat.rx.local-rx span,.radiostat.rx.network-rx span,
.radiostat.tx.active span{
  color:#fff!important;font-weight:900!important;
}

/* v2.6 — masthead title readability */
.masttitle h1{
  color:#f4f7f9!important;
  background:none!important;
  -webkit-background-clip:initial!important;
  background-clip:initial!important;
  text-shadow:
    0 2px 0 #5f6a72,
    0 4px 0 #222a30,
    0 6px 10px #000,
    0 0 3px #000!important;
  letter-spacing:2px!important;
  font-weight:900!important;
}

/* v2.7 MOBILE ONLY. Desktop >= 769px is intentionally unchanged. */
@media (max-width:768px){
  html,body{min-width:0!important;width:100%!important;overflow-x:hidden}
  body{font-size:14px}
  .mast{
    height:auto!important;min-height:210px!important;
    display:grid!important;grid-template-columns:92px 1fr!important;
    grid-template-rows:auto auto!important;gap:6px 10px!important;
    padding:10px 12px!important;background-position:center top!important;
  }
  .mast:after{display:none!important}
  .logo{width:88px!important;height:88px!important;align-self:start!important}
  .masttitle{text-align:left!important;align-self:center!important}
  .masttitle h1{font-size:30px!important;line-height:1!important;letter-spacing:1px!important}
  .masttitle>div{font-size:10px!important;letter-spacing:2px!important;margin-top:4px!important}
  .masttitle strong{font-size:11px!important;letter-spacing:2px!important;margin-top:3px!important}
  .masttitle small{font-size:13px!important;margin-top:3px!important}
  .mastside{
    grid-column:1/-1!important;position:static!important;height:auto!important;
    padding:0!important;text-align:left!important
  }
  .mastside>div{
    height:38px!important;padding:0 9px!important;gap:8px!important;
    justify-content:space-between!important;font-size:11px!important
  }
  .mastside nav{
    position:static!important;display:grid!important;grid-template-columns:repeat(4,1fr)!important;
    gap:5px!important;margin-top:6px!important
  }
  .mastside nav button{height:36px!important;padding:0 4px!important;font-size:10px!important}

  main{width:100%!important;padding:7px!important}
  .kpis{
    height:auto!important;display:grid!important;grid-template-columns:1fr 1fr!important;
    gap:6px!important;margin-bottom:7px!important
  }
  .kpi{height:68px!important;min-width:0!important;padding:6px 8px!important;gap:8px!important}
  .kpi i{font-size:25px!important}.kpi b{font-size:22px!important}.kpi span{font-size:9px!important}
  .kpi.service{grid-column:1/-1!important;height:62px!important}

  .nodepanel{display:block!important}
  .primary{width:100%!important;border-radius:6px!important}
  .nodehead{
    height:auto!important;min-height:72px!important;display:grid!important;
    grid-template-columns:32px 1fr auto!important;gap:4px 8px!important;padding:8px!important
  }
  .biglamp{width:28px!important;height:28px!important}
  .nodehead h2{font-size:25px!important}
  .nodeidentity{grid-column:2/4!important;min-width:0!important}
  .nodeidentity .desc{font-size:14px!important}.where{font-size:9px!important}
  .online{grid-column:1/3!important;padding:6px 8px!important;font-size:11px!important}
  .uptimebox{grid-column:3!important;font-size:9px!important;text-align:right!important}
  .radiostats{height:auto!important;grid-template-columns:1fr 1fr!important}
  .radiostat{min-height:64px!important;padding:8px!important}
  .radiostat b{font-size:16px!important}.radiostat span{font-size:11px!important}

  .activity,.activity.on,.activity.network{
    height:auto!important;min-height:68px!important;margin:6px!important;
    grid-template-columns:42px 1fr!important;padding:7px!important
  }
  .activity .mic{font-size:30px!important}.activity strong{font-size:16px!important}
  .activity small{font-size:10px!important}.bars{display:none!important}

  /* Connections become stacked cards instead of an unreadable desktop table. */
  .links{margin:0!important;padding:6px!important;overflow:visible!important}
  .linkhead{display:none!important}
  .linkbody{display:grid!important;gap:6px!important}
  .linkrow{
    min-width:0!important;min-height:0!important;display:grid!important;
    grid-template-columns:88px 1fr!important;gap:3px 8px!important;
    padding:8px!important;border:1px solid #0b536f!important;border-radius:5px!important;
    background:#031722!important;font-size:11px!important
  }
  .linkrow>*{min-width:0!important;overflow-wrap:anywhere!important}
  .linkrow b:first-child{font-size:16px!important;color:#fff!important}
  .linkrow .desc{font-size:12px!important;color:#d8f3ff!important}
  .ipcell{font-size:10px!important}
  .placeholder{padding:15px!important}

  .connectbar{
    height:auto!important;display:grid!important;grid-template-columns:1fr 1fr!important;
    gap:6px!important;padding:8px!important
  }
  .connectbar span,.connectbar input{grid-column:1/-1!important}
  .connectbar input{width:100%!important;height:42px!important}
  .connectbar button{min-width:0!important;width:100%!important;height:44px!important;font-size:12px!important}
  .connectbar .disconnect{grid-column:1/-1!important}

  .rightcol{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;margin-top:7px!important}
  .sidecard{width:100%!important}.sidecard h3{height:34px!important;font-size:12px!important}
  .healthgrid{grid-template-columns:1fr 1fr!important}.healthitem{min-height:55px!important;height:auto!important}
  .quick{grid-template-columns:1fr 1fr!important}.quick button{height:44px!important;font-size:11px!important}
  .info{grid-template-columns:105px 1fr!important;font-size:11px!important}
  .wvmap{height:70px!important}

  footer{
    width:100%!important;height:auto!important;min-height:60px!important;display:grid!important;
    gap:5px!important;padding:9px!important;text-align:center!important;font-size:9px!important
  }
  .am3-wire-status{font-size:7px!important;right:4px!important;bottom:4px!important}
  dialog{width:94vw!important;max-width:94vw!important}
  .formgrid{grid-template-columns:1fr!important}
}

/* v2.13 user management */
#usersTab select{width:100%;height:38px;background:#031722;color:#eaf8ff;border:1px solid #17617d;border-radius:2px;padding:0 8px}
#userList .cfgrow span{text-transform:uppercase;color:#75dca9;font-weight:800;font-size:11px}
