/* WebFTR GridLocator Plugin v25.48
   Lokale SVG-/CSS-Vektorkarte ohne externe Tiles, Fonts, CDNs oder Netzwerkladezyklen. */
.webftr-gridlocator-host{margin-top:10px;width:100%}
.webftr-gridlocator-widget{border:1px solid rgba(66,214,138,.34);background:linear-gradient(180deg,rgba(3,19,16,.96),rgba(0,5,9,.98));box-shadow:0 0 20px rgba(66,214,138,.08),inset 0 0 24px rgba(0,232,255,.035);padding:10px;overflow:hidden;position:relative;outline:none}
.webftr-gridlocator-widget:before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,rgba(66,214,138,.78),rgba(0,232,255,.45),rgba(255,179,62,.28));opacity:.85}
.gridlocator-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:8px;position:relative;z-index:1}
.gridlocator-title{display:flex;align-items:center;gap:7px;color:#caffdd;font-size:12px;letter-spacing:.11em;text-transform:uppercase;font-weight:400;text-shadow:0 0 8px rgba(66,255,138,.25)}
.gridlocator-title:before{content:"";width:9px;height:9px;border:1px solid rgba(66,255,138,.82);background:radial-gradient(circle,rgba(66,255,138,.95),rgba(66,255,138,.15));box-shadow:0 0 12px rgba(66,255,138,.42)}
.gridlocator-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.gridlocator-badge{border:1px solid rgba(0,232,255,.32);background:linear-gradient(180deg,rgba(0,232,255,.10),rgba(0,13,22,.70));color:#dffbff;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:4px 6px;font-weight:400;box-shadow:0 0 10px rgba(0,232,255,.06)}
.gridlocator-badge.good{border-color:rgba(66,214,138,.48);color:#caffdd;background:linear-gradient(180deg,rgba(66,214,138,.13),rgba(0,16,9,.76))}
.gridlocator-badge.warn{border-color:rgba(255,179,62,.48);color:#ffd9a3;background:linear-gradient(180deg,rgba(255,179,62,.13),rgba(26,12,0,.76))}
.gridlocator-badge.limit{border-color:rgba(255,179,62,.40);color:#ffe1ad;background:linear-gradient(180deg,rgba(255,179,62,.10),rgba(18,9,0,.70))}
.gridlocator-toolbar{position:absolute;right:17px;top:47px;z-index:4;display:flex;align-items:center;gap:5px;border:1px solid rgba(0,232,255,.26);background:linear-gradient(180deg,rgba(0,25,30,.92),rgba(0,6,10,.96));padding:4px;box-shadow:0 0 14px rgba(0,232,255,.12)}
.gridlocator-toolbar button{min-width:28px;height:24px;border:1px solid rgba(66,214,138,.42);background:linear-gradient(180deg,rgba(0,58,32,.86),rgba(0,14,10,.98));color:#dfffe9;font-size:11px;font-weight:400;letter-spacing:.05em;cursor:pointer;box-shadow:0 0 8px rgba(66,214,138,.10)}
.gridlocator-toolbar button:hover{border-color:rgba(255,179,62,.62);color:#fff1c9;box-shadow:0 0 14px rgba(255,179,62,.18)}
.gridlocator-zoom-readout{min-width:44px;text-align:center;color:#9edcff;font-size:10px;letter-spacing:.07em;font-weight:400}
.gridlocator-map-wrap{position:relative;border:1px solid rgba(0,232,255,.24);background:radial-gradient(circle at 35% 28%,rgba(0,232,255,.12),transparent 32%),radial-gradient(circle at 70% 64%,rgba(66,214,138,.08),transparent 30%),linear-gradient(180deg,rgba(0,10,18,.98),rgba(0,2,6,.98));min-height:300px;box-shadow:inset 0 0 35px rgba(0,0,0,.55);overflow:hidden;touch-action:none}
.gridlocator-svg{display:block;width:100%;height:360px;min-height:300px;max-height:460px;cursor:grab;user-select:none;background:#00070b;shape-rendering:geometricPrecision}
.gridlocator-svg:active{cursor:grabbing}
.gridlocator-empty{border:1px dashed rgba(66,214,138,.30);background:rgba(0,0,0,.18);color:#a9c9b5;font-size:12px;letter-spacing:.05em;padding:16px;text-align:center;min-height:130px;display:grid;place-items:center;line-height:1.4}
.gridlocator-loading{border:1px dashed rgba(0,232,255,.26);background:rgba(0,0,0,.18);color:#99dbe6;font-size:12px;letter-spacing:.05em;padding:12px;text-align:center}
.gridlocator-footer{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:7px;color:#7fa0a7;font-size:10px;letter-spacing:.05em;text-transform:uppercase}
.gridlocator-footer span{opacity:.88}
.gridlocator-ocean{fill:rgba(0,5,10,.96)}
.gridlocator-radar-rings circle{fill:none;stroke:rgba(0,232,255,.055);stroke-width:1;vector-effect:non-scaling-stroke}
.gridlocator-world-country{fill:rgba(66,214,138,.030);stroke:rgba(172,255,214,.42);stroke-width:.72;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 2px rgba(66,214,138,.10))}
.gridlocator-zoom-country .gridlocator-world-country{stroke:rgba(195,255,226,.62);stroke-width:.86;fill:rgba(66,214,138,.040)}
.gridlocator-zoom-admin .gridlocator-world-country{stroke:rgba(218,255,236,.74);stroke-width:.92;fill:rgba(66,214,138,.032)}
.gridlocator-zoom-local .gridlocator-world-country{stroke:rgba(230,255,242,.86);stroke-width:.98;fill:rgba(66,214,138,.026)}
.gridlocator-coast{fill:rgba(66,214,138,.040);stroke:rgba(150,255,205,.36);stroke-width:.92;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 2px rgba(66,214,138,.12))}
.gridlocator-country{fill:rgba(0,232,255,.016);stroke:rgba(0,232,255,.26);stroke-width:.62;vector-effect:non-scaling-stroke;opacity:.94;stroke-linejoin:round;stroke-linecap:round}
.gridlocator-adminline{fill:none;stroke:rgba(255,179,62,.26);stroke-width:.50;vector-effect:non-scaling-stroke;opacity:0;transition:opacity .18s ease;stroke-linejoin:round;stroke-linecap:round}
.gridlocator-adminline.gridlocator-admin-highlight{stroke:rgba(255,179,62,.72);stroke-width:.82;fill:rgba(255,179,62,.028)}
.gridlocator-zoom-admin .gridlocator-adminline{opacity:.92}
.gridlocator-zoom-local .gridlocator-adminline{opacity:1}
.gridlocator-graticule{fill:none;vector-effect:non-scaling-stroke}
.gridlocator-graticule.minor{stroke:rgba(0,232,255,.065);stroke-width:.62}
.gridlocator-graticule.major{stroke:rgba(66,214,138,.14);stroke-width:.95}
.gridlocator-map-label{font-family:Arial,Helvetica,sans-serif;font-size:8.2px;font-weight:400;letter-spacing:.08em;text-transform:uppercase;text-anchor:middle;paint-order:stroke;stroke:#001014;stroke-width:2.2px;stroke-linejoin:round;fill:rgba(202,255,221,.72);opacity:0;pointer-events:none}
.gridlocator-map-label-country{opacity:.52}
.gridlocator-map-label-admin{fill:#ffd9a3;font-size:6.8px;opacity:0}
.gridlocator-zoom-country .gridlocator-map-label-country{opacity:.92}
.gridlocator-zoom-admin .gridlocator-map-label-admin{opacity:.92}
.gridlocator-zoom-local .gridlocator-map-label-admin{opacity:1}
.gridlocator-link{fill:none;vector-effect:non-scaling-stroke}
.gridlocator-link.home-link{stroke:rgba(66,255,138,.22);stroke-width:1;stroke-dasharray:4 5}
.gridlocator-link.trail-link{stroke:rgba(0,232,255,.18);stroke-width:1}
.gridlocator-station-label{font-family:Arial,Helvetica,sans-serif;font-size:11px;font-weight:400;letter-spacing:.04em;paint-order:stroke;stroke:#001014;stroke-width:3px;stroke-linejoin:round;fill:#dfffe9;pointer-events:none}
.gridlocator-marker-pulse{animation:gridlocatorPulse 2.6s ease-in-out infinite;transform-origin:center;fill:rgba(0,232,255,.12);stroke:rgba(0,232,255,.38);stroke-width:1;vector-effect:non-scaling-stroke}
.gridlocator-marker-dot{fill:#42ff8a;stroke:#001a0b;stroke-width:1.4;vector-effect:non-scaling-stroke}
.gridlocator-marker-cq .gridlocator-marker-pulse{fill:rgba(66,255,138,.14);stroke:rgba(66,255,138,.50)}
.gridlocator-marker-cq .gridlocator-marker-dot{fill:#42ff8a;stroke:#001a0b}
.gridlocator-marker-cq .gridlocator-station-label{fill:#dfffe9}
.gridlocator-marker-confirmed .gridlocator-marker-pulse{fill:rgba(255,179,62,.16);stroke:rgba(255,179,62,.62)}
.gridlocator-marker-confirmed .gridlocator-marker-dot{fill:#ffb33e;stroke:#261000}
.gridlocator-marker-confirmed .gridlocator-station-label{fill:#ffd9a3}
.gridlocator-marker-dx .gridlocator-marker-pulse{fill:rgba(0,232,255,.12);stroke:rgba(0,232,255,.38)}
.gridlocator-marker-dx .gridlocator-marker-dot{fill:#42ff8a;stroke:#001a0b}
.gridlocator-marker-home .gridlocator-station-label{fill:#9edcff}
.gridlocator-home-dot{fill:#2aa8ff;stroke:#001426;stroke-width:1.7;vector-effect:non-scaling-stroke}
.gridlocator-home-ring{fill:none;stroke:rgba(42,168,255,.54);stroke-width:1.3;vector-effect:non-scaling-stroke}
.gridlocator-toggle-row{display:flex;justify-content:flex-end;gap:8px;margin-top:7px}
.webftr-gridlocator-host.gridlocator-hidden{display:none!important}
@keyframes gridlocatorPulse{0%,100%{opacity:.58}50%{opacity:1}}
@media(max-width:760px){.gridlocator-toolbar{position:relative;right:auto;top:auto;justify-content:flex-end;margin:0 0 6px auto;width:max-content}.gridlocator-svg{height:260px;min-height:230px}.gridlocator-title{font-size:11px}.gridlocator-badge{font-size:9px;padding:3px 5px}.gridlocator-footer{font-size:9px}.gridlocator-map-label{font-size:7px}.gridlocator-station-label{font-size:10px}}
.gridlocator-map-empty-note{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);border:1px solid rgba(255,179,62,.35);background:rgba(15,8,0,.78);color:#ffd9a3;font-size:10px;letter-spacing:.06em;text-transform:uppercase;padding:5px 8px;box-shadow:0 0 12px rgba(255,179,62,.10);pointer-events:none;white-space:nowrap}


/* v25.46: lighter GridLocator default, constant label size while zooming and fewer expensive effects. */
.webftr-gridlocator-widget{contain:layout paint;}
.gridlocator-svg{height:320px!important;max-height:380px!important;shape-rendering:auto!important;}
.gridlocator-map-label{font-size:calc(8.2px * var(--gridlocator-label-scale,1))!important;stroke-width:calc(2.0px * var(--gridlocator-label-scale,1))!important;}
.gridlocator-map-label-admin{font-size:calc(6.8px * var(--gridlocator-label-scale,1))!important;}
.gridlocator-station-label{font-size:calc(11px * var(--gridlocator-label-scale,1))!important;stroke-width:calc(2.5px * var(--gridlocator-label-scale,1))!important;}
.gridlocator-world-country,.gridlocator-coast{filter:none!important;}
.gridlocator-marker-pulse{animation:none!important;opacity:.62!important;}
.gridlocator-footer{justify-content:flex-end!important;}
@media(max-width:760px){.gridlocator-svg{height:250px!important;min-height:220px!important}.gridlocator-map-label{font-size:calc(7px * var(--gridlocator-label-scale,1))!important}.gridlocator-station-label{font-size:calc(9.5px * var(--gridlocator-label-scale,1))!important}}


/* v25.47: marker points and labels remain visually compact while zooming. */
.gridlocator-marker-pulse{r:7!important;}
.gridlocator-marker-dot{r:3.1!important;}
.gridlocator-home-dot{r:5.2!important;}
.gridlocator-home-ring{r:10!important;}
.gridlocator-station-label{font-size:calc(8.5px * var(--gridlocator-label-scale,1))!important;stroke-width:calc(2.0px * var(--gridlocator-label-scale,1))!important;}
.gridlocator-marker{transform-box:fill-box;transform-origin:center;}

/* v25.48: station/decode points scale inversely with zoom so they do not cover the map. */
.gridlocator-marker,
.gridlocator-marker-home{transform:scale(var(--gridlocator-marker-scale,1))!important;transform-box:fill-box!important;transform-origin:center center!important;}
.gridlocator-marker-pulse{opacity:.50!important;}
.gridlocator-marker-dot{stroke-width:calc(1.1px * var(--gridlocator-marker-scale,1))!important;}
.gridlocator-home-dot{stroke-width:calc(1.4px * var(--gridlocator-marker-scale,1))!important;}
.gridlocator-home-ring{stroke-width:calc(1.0px * var(--gridlocator-marker-scale,1))!important;}

/* v25.64: centered lightweight default map view. */
.webftr-gridlocator-widget{content-visibility:auto;contain-intrinsic-size:360px 520px;}
.gridlocator-radar-rings{display:none!important;}
.gridlocator-graticule.minor{opacity:.52!important;}
.gridlocator-world-country{stroke-width:.58!important;fill:rgba(66,214,138,.024)!important;}
.gridlocator-coast{stroke-width:.72!important;fill:rgba(66,214,138,.026)!important;}
.gridlocator-svg{height:300px!important;max-height:340px!important;}
@media(max-width:760px){.gridlocator-svg{height:230px!important;min-height:210px!important}}

/* v25.95: QSO-Verbindungslinien aus bestaetigten RRR/RR73/R73/RR-Decode-Zeilen.
   Standard-Sichtbarkeit: 180 Sekunden, spaeter im Admin-Bereich konfigurierbar. */
.gridlocator-link.qso-link{
  stroke:rgba(255,55,78,.88)!important;
  stroke-width:1.45!important;
  stroke-dasharray:7 6!important;
  stroke-linecap:round!important;
  filter:drop-shadow(0 0 4px rgba(255,55,78,.34));
  pointer-events:auto;
}
.gridlocator-link.qso-link:hover{
  stroke:rgba(255,114,128,.96)!important;
  stroke-width:1.8!important;
}


/* v26.05: GridLocator Pan + Admin Cleanup.
   Smoother panning and calmer map: no state/province/admin overlays. */
.gridlocator-svg{
  touch-action:none!important;
  cursor:grab!important;
  will-change:transform!important;
}
.gridlocator-svg.gridlocator-dragging,
.gridlocator-svg:active{
  cursor:grabbing!important;
}
.gridlocator-adminline,
.gridlocator-admin-us,
.gridlocator-admin-de,
.gridlocator-admin-highlight{
  display:none!important;
}
.gridlocator-map-label-admin{
  display:none!important;
}
.webftr-gridlocator-widget{
  contain:layout paint style!important;
}
.gridlocator-world-country{
  stroke-width:.66!important;
  filter:none!important;
}
.gridlocator-zoom-country .gridlocator-world-country,
.gridlocator-zoom-admin .gridlocator-world-country,
.gridlocator-zoom-local .gridlocator-world-country{
  stroke-width:.78!important;
}


/* v26.07: Detail Balance. Restore readable country/continent outlines while keeping pan light. */
.webftr-gridlocator-widget{contain:layout paint style!important;}
.gridlocator-map-wrap{will-change:auto!important;}
.gridlocator-svg.gridlocator-dragging{cursor:grabbing!important;}
.gridlocator-world-country{fill:rgba(66,214,138,.055)!important;stroke:rgba(184,255,220,.55)!important;stroke-width:.68!important;filter:none!important;}
.gridlocator-continent-europe,.gridlocator-continent-north-america,.gridlocator-continent-south-america{fill:rgba(66,214,138,.075)!important;stroke:rgba(210,255,232,.66)!important;}
.gridlocator-continent-africa,.gridlocator-continent-asia,.gridlocator-continent-oceania{fill:rgba(0,232,255,.040)!important;stroke:rgba(162,236,255,.52)!important;}
.gridlocator-adminline,.gridlocator-map-label-admin{display:none!important;}
.gridlocator-map-label-country{opacity:.76!important;fill:#d7fff0!important;text-shadow:none!important;}
@media(prefers-reduced-motion:reduce){.gridlocator-marker-pulse{animation:none!important;}}


/* v26.11: Global station detail popup for FT8/FT4/JS8Call and future decode-list modes.
   Lightweight local SVG zoom, no external tiles or admin/state overlays. */
.gridlocator-marker[data-gridlocator-station-marker="1"]{cursor:pointer;outline:none}
.gridlocator-marker[data-gridlocator-station-marker="1"]:focus .gridlocator-marker-dot,
.gridlocator-marker[data-gridlocator-station-marker="1"]:hover .gridlocator-marker-dot{stroke:#fff;stroke-width:1.6;filter:drop-shadow(0 0 4px rgba(0,232,255,.45))}
.gridlocator-station-modal{
  position:absolute;inset:0;z-index:10;display:grid;place-items:center;
  background:rgba(0,3,8,.62);backdrop-filter:blur(2px);
}
.gridlocator-station-dialog{
  position:relative;width:min(760px,calc(100% - 20px));max-height:calc(100% - 20px);overflow:auto;
  border:1px solid rgba(0,232,255,.42);
  background:linear-gradient(180deg,rgba(4,20,30,.98),rgba(0,5,10,.99));
  box-shadow:0 0 26px rgba(0,232,255,.18),inset 0 0 18px rgba(0,232,255,.045);
  padding:12px;
}
.gridlocator-station-close{
  position:absolute;right:8px;top:8px;width:30px;height:28px;border:1px solid rgba(255,88,76,.65);
  background:linear-gradient(180deg,rgba(92,12,10,.96),rgba(28,2,2,.98));color:#ffd7d2;
  cursor:pointer;font-size:18px;line-height:1;font-weight:900;
}
.gridlocator-station-title{display:flex;align-items:center;gap:8px;margin:0 38px 10px 0;color:#eaffff;letter-spacing:.08em;text-transform:uppercase}
.gridlocator-station-title span{font-size:16px;color:#ffffff;text-shadow:0 0 10px rgba(0,232,255,.28)}
.gridlocator-station-title b{font-size:12px;color:#ffd18f;border:1px solid rgba(255,179,62,.44);padding:4px 7px;background:rgba(66,28,0,.45)}
.gridlocator-station-body{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(190px,.65fr);gap:10px;align-items:stretch}
.gridlocator-station-mapbox{border:1px solid rgba(0,232,255,.22);background:#00070b;min-height:210px;overflow:hidden}
.gridlocator-popup-map{display:block;width:100%;height:220px;background:#00070b}
.gridlocator-popup-link{stroke:rgba(255,179,62,.62);stroke-width:1.2;vector-effect:non-scaling-stroke;stroke-dasharray:5 4}
.gridlocator-popup-home{fill:#ffb33e;stroke:#fff;stroke-width:1;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 3px rgba(255,179,62,.55))}
.gridlocator-popup-station{fill:#39ff3c;stroke:#fff;stroke-width:1.2;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px rgba(57,255,60,.55))}
.gridlocator-station-info{display:grid;gap:6px;align-content:start}
.gridlocator-station-info div{display:grid;grid-template-columns:1fr auto;gap:7px;border:1px solid rgba(0,232,255,.18);background:rgba(0,16,24,.72);padding:7px 8px}
.gridlocator-station-info span{color:#9fdde8;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.gridlocator-station-info b{color:#f2fdff;font-size:11px;text-align:right;font-family:Consolas,monospace}
.gridlocator-station-history{margin-top:10px;border:1px solid rgba(255,179,62,.24);background:rgba(30,13,0,.22);padding:8px}
.gridlocator-station-history h4{margin:0 0 7px;color:#ffd18f;font-size:11px;text-transform:uppercase;letter-spacing:.08em}
.gridlocator-station-history ul{list-style:none;margin:0;padding:0;display:grid;gap:5px;max-height:130px;overflow:auto}
.gridlocator-station-history li{display:grid;grid-template-columns:minmax(120px,.45fr) minmax(0,1fr);gap:8px;border-bottom:1px solid rgba(255,179,62,.12);padding:4px 0}
.gridlocator-station-history li span{color:#9fdde8;font-size:10px;font-family:Consolas,monospace}
.gridlocator-station-history li b{color:#eafff1;font-size:10.5px;font-family:Consolas,monospace;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:760px){
  .gridlocator-station-dialog{width:calc(100% - 10px);padding:10px}
  .gridlocator-station-body{grid-template-columns:1fr}
  .gridlocator-popup-map{height:190px}
  .gridlocator-station-history li{grid-template-columns:1fr}
}


/* v26.12: Global decode-list locator popup portal.
   The same station detail modal used by map markers can now be opened from
   FT8/FT4/JS8 decode-list locator clicks. */
.webftr-gridlocator-popup-portal{
  position:fixed;
  inset:0;
  z-index:9998;
  pointer-events:none;
}
.webftr-gridlocator-popup-portal .gridlocator-station-modal{
  position:fixed!important;
  inset:0!important;
  pointer-events:auto;
}
.gridlocator-marker[data-gridlocator-station-marker="1"]{
  cursor:pointer;
}


/* v26.15: Station popup zoom + decode-list-style heard history polish. */
.gridlocator-station-mapbox{
  position:relative;
}
.gridlocator-popup-zoom{
  position:absolute;
  right:8px;
  top:8px;
  z-index:3;
  display:flex;
  gap:4px;
  padding:4px;
  border:1px solid rgba(0,232,255,.28);
  background:linear-gradient(180deg,rgba(0,22,34,.92),rgba(0,5,10,.96));
  box-shadow:0 0 12px rgba(0,232,255,.13);
}
.gridlocator-popup-zoom button{
  min-width:28px;
  height:24px;
  border:1px solid rgba(255,179,62,.52);
  background:linear-gradient(180deg,rgba(78,42,0,.94),rgba(22,10,0,.98));
  color:#ffe4b0;
  font-size:10px;
  font-weight:900;
  letter-spacing:.05em;
  cursor:pointer;
}
.gridlocator-popup-zoom button:hover{
  filter:brightness(1.15);
  box-shadow:0 0 10px rgba(255,179,62,.22);
}
.gridlocator-station-history{
  padding:0!important;
  overflow:hidden;
}
.gridlocator-station-history h4{
  padding:8px 10px;
  margin:0!important;
  border-bottom:1px solid rgba(255,179,62,.20);
  background:linear-gradient(90deg,rgba(255,179,62,.16),rgba(0,232,255,.06));
}
.gridlocator-station-history ul{
  max-height:180px!important;
  padding:6px!important;
  background:rgba(0,5,10,.32);
}
.gridlocator-history-row{
  display:grid!important;
  grid-template-columns:42px minmax(150px,.52fr) minmax(0,1fr)!important;
  gap:8px!important;
  align-items:center;
  border:1px solid rgba(0,232,255,.14)!important;
  border-left:3px solid rgba(255,179,62,.62)!important;
  background:linear-gradient(90deg,rgba(0,232,255,.055),rgba(0,0,0,.14))!important;
  padding:6px 7px!important;
  margin:0 0 5px!important;
}
.gridlocator-history-row.empty{
  border-left-color:rgba(160,176,186,.45)!important;
  opacity:.82;
}
.gridlocator-history-num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:22px;
  border:1px solid rgba(255,179,62,.52);
  background:linear-gradient(180deg,rgba(89,42,0,.78),rgba(24,12,0,.92));
  color:#ffe0a8!important;
  font-family:Consolas,monospace;
  font-size:10px!important;
  font-weight:900;
}
.gridlocator-history-meta{
  color:#aeeeff!important;
  font-family:Consolas,monospace;
  font-size:10px!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.gridlocator-history-msg{
  color:#f1fff6!important;
  font-family:Consolas,monospace;
  font-size:11px!important;
  font-weight:700!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
@media(max-width:760px){
  .gridlocator-history-row{
    grid-template-columns:36px minmax(0,1fr)!important;
  }
  .gridlocator-history-msg{
    grid-column:1 / -1;
  }
}


/* v26.21: GridLocator map markers open the same central station popup as FT8/FT4/JS8 decode-list locator links. */
.gridlocator-marker[data-gridlocator-station-marker="1"],
.gridlocator-marker[data-gridlocator-station-marker="1"] .gridlocator-marker-pulse,
.gridlocator-marker[data-gridlocator-station-marker="1"] .gridlocator-marker-dot,
.gridlocator-marker[data-gridlocator-station-marker="1"] .gridlocator-station-label{
  pointer-events:auto!important;
  cursor:pointer!important;
}
.gridlocator-marker[data-gridlocator-station-marker="1"]:hover .gridlocator-station-label,
.gridlocator-marker[data-gridlocator-station-marker="1"]:focus .gridlocator-station-label{
  fill:#ffffff!important;
  text-shadow:0 0 8px rgba(0,232,255,.45);
}


/* v26.22: Marker size + popup map scale polish.
   Main map station points are intentionally doubled for easier touch/click targeting.
   The station popup map starts less zoomed-in, can zoom farther out, and its symbols/labels stay compact.
   Popup history uses FT8/FT4-style table geometry across FT8, FT4 and JS8 because the shared plugin renders it. */
.gridlocator-marker-hit{
  fill:rgba(0,232,255,.001)!important;
  stroke:transparent!important;
  pointer-events:auto!important;
}
.gridlocator-marker-pulse{r:14!important;opacity:.46!important;}
.gridlocator-marker-dot{r:6.2!important;stroke-width:calc(1.25px * var(--gridlocator-marker-scale,1))!important;}
.gridlocator-marker[data-gridlocator-station-marker="1"]:hover .gridlocator-marker-pulse,
.gridlocator-marker[data-gridlocator-station-marker="1"]:focus .gridlocator-marker-pulse{opacity:.70!important;filter:drop-shadow(0 0 7px rgba(0,232,255,.42));}
.gridlocator-marker[data-gridlocator-station-marker="1"]:hover .gridlocator-marker-dot,
.gridlocator-marker[data-gridlocator-station-marker="1"]:focus .gridlocator-marker-dot{stroke:#fff!important;stroke-width:calc(1.8px * var(--gridlocator-marker-scale,1))!important;}
.gridlocator-popup-map .gridlocator-map-label,
.gridlocator-popup-map .gridlocator-map-label-country,
.gridlocator-popup-map .gridlocator-map-label-continent{
  font-size:4.8px!important;
  opacity:.62!important;
  text-shadow:none!important;
  stroke-width:0!important;
}
.gridlocator-popup-map .gridlocator-world-country,
.gridlocator-popup-map .gridlocator-coast{stroke-width:.48!important;filter:none!important;}
.gridlocator-popup-home{r:2.4!important;stroke-width:.75!important;filter:drop-shadow(0 0 2px rgba(255,179,62,.42))!important;}
.gridlocator-popup-station{r:3.0!important;stroke-width:.85!important;filter:drop-shadow(0 0 2px rgba(57,255,60,.42))!important;}
.gridlocator-station-history.ft8-table-wrap{
  margin-top:10px!important;
  border:1px solid rgba(0,232,255,.18)!important;
  background:rgba(0,0,0,.18)!important;
  max-height:220px!important;
  overflow:auto!important;
  padding:0!important;
}
.gridlocator-station-history h4{
  position:sticky;
  top:0;
  z-index:3;
  padding:7px 10px!important;
  margin:0!important;
  border-bottom:1px solid rgba(0,232,255,.14)!important;
  background:#020c12!important;
  color:#ffd18f!important;
}
.gridlocator-history-table{
  width:100%!important;
  border-collapse:collapse!important;
  font-family:Consolas,monospace!important;
  font-size:12px!important;
}
.gridlocator-history-table th,
.gridlocator-history-table td{
  border-bottom:1px solid rgba(0,232,255,.12)!important;
  padding:5px 6px!important;
  text-align:left!important;
  white-space:nowrap!important;
  vertical-align:top!important;
}
.gridlocator-history-table th{
  color:var(--muted,#9fdde8)!important;
  font-size:11px!important;
  position:sticky!important;
  top:31px!important;
  background:#020c12!important;
  z-index:2!important;
}
.gridlocator-history-table .gridlocator-history-row{
  display:table-row!important;
  background:linear-gradient(90deg,rgba(0,232,255,.10),rgba(255,179,62,.05) 70%,rgba(1,9,14,.55))!important;
  box-shadow:inset 3px 0 0 rgba(0,232,255,.75)!important;
}
.gridlocator-history-table .gridlocator-history-row:hover{background:linear-gradient(90deg,rgba(0,232,255,.20),rgba(255,179,62,.10) 70%,rgba(1,9,14,.70))!important;}
.gridlocator-history-table .gridlocator-history-row.empty{box-shadow:inset 3px 0 0 rgba(160,176,186,.45)!important;opacity:.82;}
.gridlocator-history-table .gridlocator-history-num{
  color:#ffe0a8!important;
  font-weight:850!important;
  text-align:center!important;
  width:42px!important;
}
.gridlocator-history-table .gridlocator-history-meta{color:#aeeeff!important;max-width:240px;overflow:hidden;text-overflow:ellipsis;}
.gridlocator-history-table .gridlocator-history-msg{color:#eafff1!important;font-weight:650!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;max-width:420px;}
@media(max-width:760px){
  .gridlocator-marker-pulse{r:15!important;}
  .gridlocator-marker-dot{r:6.8!important;}
  .gridlocator-history-table{font-size:11px!important;}
  .gridlocator-history-table th:nth-child(2),
  .gridlocator-history-table td:nth-child(2){max-width:150px!important;}
}


/* v26.23: GridLocator station popup history now mirrors the FT8/FT4 decode-list column model.
   The shared popup is used by FT8, FT4 and JS8 marker/locator clicks. */
.gridlocator-history-decode-table{
  min-width:1120px!important;
  table-layout:auto!important;
}
.gridlocator-history-decode-table th,
.gridlocator-history-decode-table td{
  font-family:Consolas,monospace!important;
  line-height:1.25!important;
}
.gridlocator-history-decode-table th:first-child,
.gridlocator-history-decode-table td:first-child{padding-left:14px!important;}
.gridlocator-history-decode-table tbody tr.dx-row{
  background:linear-gradient(90deg,rgba(0,232,255,.10),rgba(255,179,62,.045) 70%,rgba(1,9,14,.55))!important;
  box-shadow:inset 3px 0 0 rgba(0,232,255,.72)!important;
}
.gridlocator-history-decode-table tbody tr.cq-row{
  background:linear-gradient(90deg,rgba(57,255,20,.20),rgba(57,255,20,.07) 55%,rgba(1,9,14,.55))!important;
  box-shadow:inset 3px 0 0 rgba(57,255,20,.85)!important;
}
.gridlocator-history-decode-table tbody tr.confirmed-row{
  background:linear-gradient(90deg,rgba(255,179,62,.20),rgba(255,216,77,.08) 55%,rgba(1,9,14,.55))!important;
  box-shadow:inset 3px 0 0 rgba(255,179,62,.95)!important;
}
.gridlocator-history-decode-table tbody tr:hover{
  background:linear-gradient(90deg,rgba(0,232,255,.20),rgba(255,179,62,.10) 70%,rgba(1,9,14,.72))!important;
}
.gridlocator-history-decode-table tbody tr.cq-row:hover{
  background:linear-gradient(90deg,rgba(57,255,20,.25),rgba(57,255,20,.10) 55%,rgba(1,9,14,.72))!important;
}
.gridlocator-history-decode-table tbody tr.confirmed-row:hover{
  background:linear-gradient(90deg,rgba(255,179,62,.25),rgba(255,216,77,.11) 55%,rgba(1,9,14,.72))!important;
}
.gridlocator-history-decode-table .decode-repeat-cell{
  color:#ffe0a8!important;
  font-weight:850!important;
  text-align:center!important;
  min-width:42px!important;
}
.gridlocator-history-decode-table .gridlocator-history-signal{text-align:center!important;color:#caffdd!important;min-width:56px!important;}
.gridlocator-signal-icon{display:inline-flex;align-items:flex-end;justify-content:center;min-width:38px;color:#9eefff;font-size:12px;letter-spacing:-.08em;text-shadow:0 0 8px rgba(0,232,255,.20);}
.gridlocator-signal-icon.strong{color:#d9ffe1;text-shadow:0 0 8px rgba(57,255,20,.24);}
.gridlocator-signal-icon.mid{color:#ffe4b0;text-shadow:0 0 8px rgba(255,179,62,.20);}
.gridlocator-signal-icon.weak{color:#9fdde8;opacity:.86;}
.gridlocator-history-decode-table .snr-value{color:#f5fdff!important;font-weight:700;}
.gridlocator-history-decode-table .dt-cell,
.gridlocator-history-decode-table .hz-cell,
.gridlocator-history-decode-table .rx-freq-cell,
.gridlocator-history-decode-table .km-cell{color:#bdeeff!important;}
.gridlocator-history-decode-table .country-cell{color:#fff1d6!important;max-width:140px;overflow:hidden;text-overflow:ellipsis;}
.gridlocator-history-decode-table .gridlocator-history-call{color:#e9fdff!important;font-weight:850!important;}
.gridlocator-history-decode-table .gridlocator-history-locator{color:#ffd18f!important;font-weight:850!important;}
.gridlocator-history-decode-table .gridlocator-history-msg{white-space:normal!important;min-width:260px;max-width:none!important;color:#eafff1!important;}
.gridlocator-status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:32px;border:1px solid rgba(0,232,255,.32);background:linear-gradient(180deg,rgba(0,232,255,.12),rgba(0,13,22,.78));color:#dffbff;font-size:10px;font-weight:850;letter-spacing:.04em;padding:2px 5px;text-transform:uppercase;}
.gridlocator-status-badge.cq{border-color:rgba(57,255,20,.55);background:linear-gradient(180deg,rgba(57,255,20,.18),rgba(0,22,8,.82));color:#d9ffe1;}
.gridlocator-status-badge.best-tigt,
.gridlocator-status-badge.bestätigt{border-color:rgba(255,179,62,.62);background:linear-gradient(180deg,rgba(255,179,62,.20),rgba(28,12,0,.86));color:#fff0c4;}
@media(max-width:760px){
  .gridlocator-station-history.ft8-table-wrap{max-height:260px!important;}
  .gridlocator-history-decode-table{min-width:1050px!important;font-size:11px!important;}
  .gridlocator-history-decode-table .gridlocator-history-msg{min-width:220px!important;}
}
.gridlocator-status-badge.bestaetigt,
.gridlocator-status-badge.bestatigt,
.gridlocator-status-badge.confirmed,
.gridlocator-status-badge.rr73,
.gridlocator-status-badge.r73,
.gridlocator-status-badge.rrr{
  border-color:rgba(255,179,62,.62);
  background:linear-gradient(180deg,rgba(255,179,62,.20),rgba(28,12,0,.86));
  color:#fff0c4;
}

/* v26.53: compact station popup decode history + integrated country flag corner. */
.gridlocator-station-dialog{position:relative!important;overflow:hidden!important;}
.gridlocator-flag-corner{
  position:absolute;right:0;top:0;z-index:4;min-width:92px;height:68px;
  display:grid;grid-template-columns:1fr;place-items:center end;padding:6px 10px 0 22px;
  background:linear-gradient(135deg,transparent 0 33%,rgba(255,179,62,.24) 34%,rgba(30,13,0,.94) 100%);
  border-left:1px solid rgba(255,179,62,.32);border-bottom:1px solid rgba(255,179,62,.24);
  box-shadow:-8px 8px 18px rgba(255,179,62,.08);pointer-events:none;
}
.gridlocator-flag-corner span{font-size:34px;line-height:1;filter:drop-shadow(0 0 7px rgba(0,0,0,.45));}
.gridlocator-flag-corner b{font-family:Consolas,monospace;font-size:10px;letter-spacing:.12em;color:#ffd18f;text-shadow:0 0 8px rgba(255,179,62,.34);}
.gridlocator-flag-corner.is-empty span{font-size:18px;color:#ffd18f;font-family:Consolas,monospace;font-weight:1000;}
.gridlocator-station-title{padding-right:98px!important;}
.gridlocator-station-history-compact-v2653.ft8-table-wrap{max-height:210px!important;overflow:auto!important;}
.gridlocator-history-compact-table-v2653{min-width:0!important;width:100%!important;table-layout:fixed!important;}
.gridlocator-history-compact-table-v2653 th,
.gridlocator-history-compact-table-v2653 td{font-size:11px!important;padding:6px 8px!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;}
.gridlocator-history-compact-table-v2653 th:nth-child(1),.gridlocator-history-compact-table-v2653 td:nth-child(1){width:25%;}
.gridlocator-history-compact-table-v2653 th:nth-child(2),.gridlocator-history-compact-table-v2653 td:nth-child(2){width:29%;}
.gridlocator-history-compact-table-v2653 th:nth-child(3),.gridlocator-history-compact-table-v2653 td:nth-child(3){width:24%;}
.gridlocator-history-compact-table-v2653 th:nth-child(4),.gridlocator-history-compact-table-v2653 td:nth-child(4){width:22%;}
@media(max-width:760px){.gridlocator-flag-corner{min-width:74px;height:54px}.gridlocator-flag-corner span{font-size:26px}.gridlocator-station-title{padding-right:78px!important;}}
