:root{--dx-blue:#0d6efd;--dx-navy:#071a33;--dx-cyan:#16d9ff;--dx-orange:#ff7518;--dx-bg:#f4f7fb;--dx-border:#dfe7f1}.dx-page{background:var(--dx-bg);min-height:100vh}.dx-hero{background:radial-gradient(circle at 85% 20%,rgba(22,217,255,.3),transparent 28%),linear-gradient(135deg,#06152b,#0c3970 62%,#075d83);color:#fff;overflow:hidden;position:relative}.dx-hero:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:32px 32px;pointer-events:none}.dx-hero .container{position:relative;z-index:1}.dx-hero h1{font-weight:800;font-size:clamp(2.25rem,5vw,4.4rem);letter-spacing:-.045em;margin:.6rem 0}.dx-hero p{font-size:1.15rem;max-width:760px;color:#d9eaff}.dx-live-pill{display:inline-flex;align-items:center;gap:.55rem;font-size:.78rem;font-weight:800;letter-spacing:.12em;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);padding:.55rem .8rem;border-radius:999px}.dx-live-pill span{width:9px;height:9px;border-radius:50%;background:#38ef7d;box-shadow:0 0 0 6px rgba(56,239,125,.16);animation:dxPulse 1.4s infinite}.dx-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}.dx-radar-card{background:rgba(3,17,38,.55);border:1px solid rgba(255,255,255,.17);backdrop-filter:blur(12px);border-radius:24px;padding:1.5rem;text-align:center}.dx-radar{width:130px;height:130px;border:1px solid rgba(89,221,255,.35);border-radius:50%;margin:0 auto 1rem;position:relative;background:repeating-radial-gradient(circle,transparent 0 21px,rgba(89,221,255,.13) 22px 23px),linear-gradient(90deg,transparent 49.5%,rgba(89,221,255,.18) 50%,transparent 50.5%),linear-gradient(transparent 49.5%,rgba(89,221,255,.18) 50%,transparent 50.5%)}.dx-radar span{position:absolute;width:50%;height:50%;left:50%;top:0;transform-origin:0 100%;background:linear-gradient(135deg,rgba(22,217,255,.55),transparent 70%);animation:radar 2.5s linear infinite}.dx-radar i{position:absolute;width:9px;height:9px;background:#ff7518;border-radius:50%;left:70%;top:30%;box-shadow:0 0 10px #ff7518}.dx-radar-card strong{font-size:2.4rem;display:block}.dx-radar-card small{color:#bcd2e8}.dx-status{margin-top:.8rem;display:flex;justify-content:center;align-items:center;gap:.45rem;font-size:.85rem}.dx-status b{width:8px;height:8px;border-radius:50%;background:#ffc107}.dx-status b.online{background:#38ef7d}.dx-shell{padding-top:0;padding-bottom:3rem;position:relative;margin-top:-22px;z-index:3}.dx-stats{display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-radius:18px;box-shadow:0 12px 35px rgba(17,40,75,.12);overflow:hidden;margin-bottom:1.5rem}.dx-stats>div{padding:1.1rem 1.25rem;display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:0 .8rem;border-right:1px solid var(--dx-border)}.dx-stats>div:last-child{border:0}.dx-stats i{grid-row:1/3;font-size:1.5rem;color:var(--dx-orange);align-self:center}.dx-stats strong{font-size:1.35rem;color:var(--dx-navy)}.dx-stats span{font-size:.78rem;color:#6b7a90;text-transform:uppercase;font-weight:700;letter-spacing:.06em}.dx-card{background:#fff;border:1px solid var(--dx-border);border-radius:18px;box-shadow:0 8px 28px rgba(20,42,73,.07);overflow:hidden}.dx-filter-card{padding:1.25rem}.dx-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.25rem .85rem}.dx-filter-card .dx-card-head{padding:0 0 1rem}.dx-card-head h2{font-size:1.15rem;font-weight:800;color:var(--dx-navy);margin:0}.dx-card-head h2 i{color:var(--dx-orange);margin-right:.4rem}.dx-card-head p{font-size:.85rem;color:#75849a;margin:.25rem 0 0}.dx-filter-card label{font-size:.78rem;font-weight:800;color:#53647a;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem}.dx-quick-bands{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1rem}.dx-chip{border:1px solid #cfd9e7;background:#f8fafc;color:#44556c;border-radius:999px;padding:.4rem .8rem;font-size:.8rem;font-weight:700}.dx-chip.active,.dx-chip:hover{background:var(--dx-blue);border-color:var(--dx-blue);color:#fff}.dx-updated,.dx-result-count{font-size:.78rem;color:#667890;background:#f4f7fb;border-radius:999px;padding:.45rem .7rem;white-space:nowrap}.dx-map-card,.dx-band-card{width:100%;min-width:0}.dx-map-frame{margin:0 1.25rem 1.25rem;border-radius:14px;overflow:hidden;background:#dcecf3;box-shadow:inset 0 0 0 1px #d9e3ee}#dxMap{display:block;width:100%;height:435px;min-height:435px;position:relative;background:#dcecf3}.leaflet-container{width:100%!important;max-width:100%;font-family:inherit;background:#dcecf3;outline:0}.leaflet-pane,.leaflet-map-pane,.leaflet-tile-pane{backface-visibility:hidden;transform-style:preserve-3d}.leaflet-tile-container{will-change:transform}.leaflet-tile{max-width:none!important;max-height:none!important;border:0!important;outline:0!important;box-shadow:none!important}.dx-marker{background:transparent;border:0}.dx-marker span{display:block;width:14px;height:14px;background:#ff7518;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 5px rgba(255,117,24,.22),0 4px 12px rgba(0,0,0,.3)}.dx-band-activity{padding:.25rem 1.25rem 1.25rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem;row-gap:.15rem;overflow:visible}.dx-band-row{display:grid;grid-template-columns:58px minmax(0,1fr) 48px;gap:.8rem;align-items:center;margin:.7rem 0}.dx-band-row b{font-size:.82rem}.dx-band-track{height:10px;background:#edf2f8;border-radius:999px;overflow:hidden}.dx-band-fill{height:100%;background:linear-gradient(90deg,var(--dx-blue),var(--dx-cyan));border-radius:999px;transition:width .5s}.dx-band-row span{text-align:right;font-weight:700;color:#617188;font-size:.8rem}.dx-table{margin:0;font-size:.9rem}.dx-table thead th{background:#f6f9fc;color:#53647a;text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;border-color:var(--dx-border);white-space:nowrap}.dx-table tbody td{border-color:#edf1f6}.dx-table tbody tr{transition:.2s}.dx-table tbody tr:hover{background:#f7fbff}.dx-new-row{animation:newRow 1.3s ease}.dx-call{font-size:1rem;font-weight:900;color:#075ead;text-decoration:none}.dx-call:hover{color:var(--dx-orange)}.dx-freq{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:800;color:#102b4f}.dx-badge{display:inline-flex;border-radius:999px;padding:.24rem .48rem;font-size:.69rem;font-weight:800;margin:.1rem}.dx-band{background:#e8f2ff;color:#075ead}.dx-mode{background:#fff0e6;color:#bd4b00}.dx-country{font-weight:700;color:#203b5f}.dx-sub{font-size:.75rem;color:#7c8ba0}.dx-comment{max-width:280px;white-space:normal}.dx-actions-cell{white-space:nowrap}.dx-actions-cell .btn{margin:.1rem}.dx-loading{text-align:center;padding:4rem!important;color:#718096}.dx-loading p{margin:.75rem 0}.dx-source-note{display:flex;gap:.7rem;margin-top:1rem;color:#6c7a8d;font-size:.82rem;align-items:flex-start}.dx-source-note i{color:var(--dx-blue);margin-top:.1rem}.leaflet-popup-content-wrapper{border-radius:14px}.dx-popup-call{font-size:1rem;font-weight:900;color:#075ead}.dx-popup-freq{font-family:monospace;font-weight:800}.dx-empty{text-align:center;padding:3.5rem!important;color:#76869c}.dx-empty i{font-size:2rem;color:#b8c5d6;display:block;margin-bottom:.8rem}@keyframes radar{to{transform:rotate(360deg)}}@keyframes dxPulse{50%{box-shadow:0 0 0 10px rgba(56,239,125,0)}}@keyframes newRow{0%{background:#fff4d6}100%{background:transparent}}@media(max-width:991px){.dx-stats{grid-template-columns:1fr 1fr}.dx-stats>div:nth-child(2){border-right:0}.dx-stats>div:nth-child(-n+2){border-bottom:1px solid var(--dx-border)}}@media(max-width:575px){.dx-shell{margin-top:-12px}.dx-stats{grid-template-columns:1fr 1fr}.dx-stats>div{padding:.85rem}.dx-stats strong{font-size:1.05rem}.dx-stats i{font-size:1.1rem}.dx-hero{text-align:center}.dx-actions{justify-content:center}.dx-card-head{align-items:flex-start}.dx-table{font-size:.82rem}#dxMap{height:350px;min-height:350px}}

.dx-freq-button{appearance:none;border:0;background:transparent;padding:0;color:inherit;font:inherit;font-weight:800;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}
.dx-freq-button:hover,.dx-freq-button:focus{color:#ff8a00;outline:none}
.dx-tune-status{margin:0 1rem 1rem;padding:.85rem 1rem;border-radius:10px;font-weight:700;display:flex;align-items:center;gap:.55rem}
.dx-tune-status[hidden]{display:none}
.dx-tune-status.working{background:#e8f1ff;color:#0b4da2;border:1px solid #b7d0f5}
.dx-tune-status.success{background:#e8f8ef;color:#146c43;border:1px solid #a9dfbf}
.dx-tune-status.error{background:#fff0f0;color:#a61b1b;border:1px solid #efb2b2}

@media(max-width:767px){.dx-map-frame{margin:0 .75rem .75rem}.dx-band-activity{grid-template-columns:1fr;padding:.25rem .9rem 1rem}.dx-band-row{grid-template-columns:52px minmax(0,1fr) 38px}}

/* Leaflet hard reset scoped only to the DX map.
   This protects Leaflet from sitewide img/div responsive rules without
   changing any other HamRadioList images or containers. */
#dxMap.leaflet-container {
  position: relative !important;
  overflow: hidden !important;
  width: 100% !important;
  height: 435px !important;
  min-height: 435px !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  background: #dcecf3 !important;
}
#dxMap .leaflet-pane,
#dxMap .leaflet-map-pane,
#dxMap .leaflet-tile-pane,
#dxMap .leaflet-overlay-pane,
#dxMap .leaflet-shadow-pane,
#dxMap .leaflet-marker-pane,
#dxMap .leaflet-tooltip-pane,
#dxMap .leaflet-popup-pane {
  position: absolute !important;
  inset: 0 auto auto 0 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  max-width: none !important;
}
#dxMap .leaflet-tile-container {
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  width: auto !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  max-width: none !important;
  overflow: visible !important;
}
#dxMap img.leaflet-tile {
  position: absolute !important;
  width: 256px !important;
  height: 256px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  object-fit: fill !important;
  display: block !important;
  box-sizing: content-box !important;
  transform-origin: 0 0 !important;
}
#dxMap .leaflet-marker-icon,
#dxMap .leaflet-marker-shadow {
  position: absolute !important;
  max-width: none !important;
  max-height: none !important;
}
#dxMap .leaflet-control-container,
#dxMap .leaflet-control {
  position: relative;
  z-index: 800;
}
@media(max-width:575px){
  #dxMap.leaflet-container{height:350px !important;min-height:350px !important}
}

/* Click-to-tune controls */
.dx-call-tune{appearance:none;-webkit-appearance:none;border:0;background:transparent;padding:0;font:inherit;text-align:left;cursor:pointer}.dx-call-tune:focus-visible{outline:3px solid rgba(13,110,253,.3);outline-offset:3px;border-radius:4px}.dx-marker,.dx-marker span{cursor:pointer}.leaflet-tooltip{border:0!important;border-radius:10px!important;box-shadow:0 8px 24px rgba(0,0,0,.2)!important;color:#102b4f!important}.leaflet-tooltip strong{color:#075ead}

/* Mobile-first Live Spot Stream cards */
.dx-mobile-action span{display:none}
@media (max-width: 767.98px){
  .dx-page .container{padding-left:12px;padding-right:12px}
  .dx-card-head{padding:1rem;gap:.65rem;align-items:center}
  .dx-card-head h2{font-size:1.05rem}
  .dx-card-head p{font-size:.8rem;line-height:1.35}
  .dx-result-count{font-size:.72rem;padding:.38rem .58rem}
  .dx-card .table-responsive{overflow:visible;padding:0 .75rem .85rem}
  .dx-table{display:block;width:100%;margin:0;border:0}
  .dx-table thead{display:none}
  .dx-table tbody{display:grid;grid-template-columns:1fr;gap:.85rem;width:100%}
  .dx-table tr.dx-spot-row{display:grid;grid-template-columns:1fr 1fr;width:100%;border:1px solid #dbe5f0;border-radius:15px;background:#fff;box-shadow:0 5px 16px rgba(20,42,73,.08);overflow:hidden;padding:.15rem .85rem .85rem;margin:0}
  .dx-table tr.dx-new-row{border-left:4px solid var(--dx-orange)}
  .dx-table tr.dx-spot-row td{display:block;width:auto!important;min-width:0;border:0!important;padding:.68rem .15rem .45rem;text-align:left;vertical-align:top;white-space:normal!important;overflow-wrap:anywhere}
  .dx-table tr.dx-spot-row td::before{content:attr(data-label);display:block;margin-bottom:.28rem;color:#73839a;font-size:.66rem;line-height:1;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
  .dx-table .dx-cell-station,.dx-table .dx-cell-frequency{padding-top:.85rem}
  .dx-table .dx-cell-station{grid-column:1/2}
  .dx-table .dx-cell-frequency{grid-column:2/3;text-align:right}
  .dx-table .dx-cell-frequency::before{text-align:right}
  .dx-table .dx-cell-age{grid-column:1/2;border-top:1px solid #edf1f5!important}
  .dx-table .dx-cell-bandmode{grid-column:2/3;border-top:1px solid #edf1f5!important;text-align:right}
  .dx-table .dx-cell-bandmode::before{text-align:right}
  .dx-table .dx-cell-location{grid-column:1/-1;border-top:1px solid #edf1f5!important}
  .dx-table .dx-cell-comment{grid-column:1/-1;padding-bottom:.65rem}
  .dx-table .dx-actions-cell{grid-column:1/-1;display:grid!important;grid-template-columns:1fr 1fr;gap:.55rem;padding:.7rem 0 0!important;border-top:1px solid #edf1f5!important}
  .dx-table .dx-actions-cell::before{display:none}
  .dx-mobile-action{display:flex!important;align-items:center;justify-content:center;gap:.42rem;width:100%;min-height:46px;border-radius:10px;font-size:.9rem;font-weight:800}
  .dx-mobile-action span{display:inline}
  .dx-call{font-size:1.35rem!important;line-height:1.2}
  .dx-freq{font-size:1.25rem!important;line-height:1.2}
  .dx-sub{font-size:.75rem;line-height:1.35}
  .dx-comment{display:block;max-width:none;white-space:normal;line-height:1.45;color:#5f6f84}
  .dx-country{font-size:.95rem;font-weight:800}
  .dx-badge{display:inline-flex;margin:.1rem 0 .1rem .28rem;font-size:.75rem;padding:.36rem .55rem}
  .dx-cell-bandmode .dx-badge:first-child{margin-left:0}
  .dx-empty-row{display:block!important}
  .dx-empty-row td{display:block!important;width:100%!important;padding:2rem 1rem!important}
  .dx-tune-status{margin:0 .75rem .8rem;font-size:.86rem;line-height:1.4}
}
@media (max-width: 390px){
  .dx-table tr.dx-spot-row{grid-template-columns:1fr;padding-left:.7rem;padding-right:.7rem}
  .dx-table .dx-cell-station,.dx-table .dx-cell-frequency,.dx-table .dx-cell-age,.dx-table .dx-cell-bandmode{grid-column:1/-1;text-align:left}
  .dx-table .dx-cell-frequency::before,.dx-table .dx-cell-bandmode::before{text-align:left}
  .dx-table .dx-cell-frequency,.dx-table .dx-cell-bandmode{border-top:1px solid #edf1f5!important}
  .dx-table .dx-actions-cell{grid-template-columns:1fr}
}
/* Callsign watch alerts */
.dx-alert-info{display:flex;gap:16px;align-items:flex-start;background:linear-gradient(135deg,#fff8e8,#fff);border:1px solid #f8d58b;border-radius:16px;padding:18px}.dx-alert-info>i{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#f59e0b;color:#172033;font-size:21px;flex:0 0 48px}.dx-alert-info h3{font-size:1.05rem;margin:0 0 5px;color:#172033}.dx-alert-info p{margin:0;color:#64748b;line-height:1.55}.dx-watch-form{display:grid;grid-template-columns:minmax(180px,1fr) auto;gap:10px;margin-top:16px}.dx-watch-form .form-control{text-transform:uppercase;min-height:48px}.dx-watch-form .btn{min-height:48px;padding-inline:20px}.dx-watch-list{display:grid;gap:9px;margin-top:16px}.dx-watch-item{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #dbe3ee;border-radius:12px;padding:12px 14px;background:#fff}.dx-watch-item>div{display:flex;align-items:center;gap:9px}.dx-watch-item i{color:#f59e0b}.dx-watch-item strong{font-size:1rem}.dx-watch-item span{font-size:.78rem;color:#64748b;background:#eef4fb;border-radius:999px;padding:4px 8px}.dx-watch-empty{text-align:center;padding:22px;color:#64748b;border:1px dashed #cbd5e1;border-radius:12px}.dx-watch-empty i{display:block;font-size:24px;color:#f59e0b;margin-bottom:8px}.dx-watch-message{min-height:22px;margin-top:9px;font-size:.88rem;font-weight:700}.dx-watch-message.success{color:#15803d}.dx-watch-message.error{color:#b91c1c}.dx-watch-message.working{color:#0f4c81}@media(max-width:575px){.dx-watch-form{grid-template-columns:1fr}.dx-watch-item{align-items:flex-start;flex-direction:column}.dx-watch-item>div:last-child{width:100%}.dx-watch-item>div:last-child .btn:first-child{flex:1}.dx-alert-info{padding:15px}}

/* HamRadioList map branding control */
.dx-map-brand{
  display:flex!important;
  align-items:center;
  justify-content:center;
  width:132px;
  min-height:42px;
  padding:6px 9px;
  margin:0 10px 10px 0!important;
  background:rgba(255,255,255,.96);
  border:1px solid rgba(15,76,129,.18);
  border-radius:10px;
  box-shadow:0 4px 14px rgba(15,23,42,.18);
  text-decoration:none!important;
}
.dx-map-brand img{
  display:block!important;
  width:auto!important;
  max-width:112px!important;
  height:auto!important;
  max-height:30px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
  object-fit:contain!important;
}
.leaflet-control-attribution{display:none!important;}
@media(max-width:575.98px){
  .dx-map-brand{width:104px;min-height:36px;padding:5px 7px;margin:0 7px 7px 0!important;}
  .dx-map-brand img{max-width:90px!important;max-height:25px!important;}
}


/* DX Cluster social sharing */
.dx-share-card{overflow:hidden}.dx-share-actions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.dx-share-btn{min-height:48px;border:0;border-radius:10px;display:flex;align-items:center;justify-content:center;gap:9px;color:#fff!important;text-decoration:none;font-weight:700;padding:12px 10px;cursor:pointer;transition:transform .15s ease,filter .15s ease}.dx-share-btn:hover{transform:translateY(-2px);filter:brightness(1.08)}.dx-share-btn.facebook{background:#1877f2}.dx-share-btn.x{background:#111827}.dx-share-btn.whatsapp{background:#16a34a}.dx-share-btn.reddit{background:#f04420}.dx-share-btn.telegram{background:#168bd2}.dx-share-btn.copy{background:#475569}.dx-share-status{min-height:22px;margin-top:10px;font-size:.9rem;color:#15803d;font-weight:700}
@media(max-width:900px){.dx-share-actions{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.dx-share-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.dx-share-btn{min-height:52px;font-size:.9rem}}
