:root{
  --bg:#0b1220; --panel:#111827; --panel2:#0f172a; --border:#23314d; --muted:#9fb0cc;
  --text:#eaf2ff; --accent:#59c3ff; --accent2:#7ee787; --warn:#ffb86c;
  --pill:#162235; --pillActive:#1f6feb; --shadow:0 18px 40px rgba(0,0,0,.28); --radius:18px;
}
:root[data-theme="light"]{
  --bg:#eef4fb; --panel:#ffffff; --panel2:#f7fbff; --border:#c9d8ea; --muted:#51647d;
  --text:#132033; --accent:#1976d2; --accent2:#178a43; --warn:#a85f00;
  --pill:#edf4fc; --pillActive:#1976d2; --shadow:0 14px 34px rgba(31,58,87,.14);
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:linear-gradient(180deg,rgba(7,13,24,.72),rgba(11,18,32,.96) 52%,var(--bg)),url('/assets/images/earth-horizon.webp') center top / cover fixed no-repeat,var(--bg);color:var(--text)}
.wrap{max-width:1220px;margin:0 auto;padding:18px 18px 24px}
h1{margin:0 0 4px;font-size:28px;letter-spacing:.2px}
.sub{color:var(--muted);margin-bottom:14px;font-size:14px}
.titleLine{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.titleLine h1{margin:0}.titleLine .sub{margin:0;line-height:1.35}
.grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:14px;align-items:start}
.stack{display:grid;gap:14px;min-width:0}
.card{background:linear-gradient(180deg,rgba(17,24,39,.98),rgba(15,23,42,.98));border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;min-width:0}
.card h2{margin:0 0 6px;font-size:16px}.hint{margin:0 0 12px;color:var(--muted);font-size:13px}
.fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.fields.small{grid-template-columns:repeat(4,minmax(0,1fr))}
.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;letter-spacing:.2px}
.field input,.field select{width:100%;border-radius:12px;border:1px solid #30415f;background:#1e2a40;color:var(--text);padding:10px 12px;font-size:14px;outline:none}
.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(89,195,255,.14)}
.btn{border:none;border-radius:12px;padding:11px 14px;font-weight:700;cursor:pointer}
.btn.primary{background:linear-gradient(180deg,#59c3ff,#2b95ff);color:#051321}
.btn.secondary{background:#13203a;color:var(--text);border:1px solid var(--border)}
.btn .ico{margin-right:6px}.iconOnlyBtn .ico{margin-right:0}
.actionRow{margin:12px 0 14px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.observerActionRow{justify-content:space-between;align-items:center}
.observerHeaderRow{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.observerHeaderActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.observerAosState{display:none;color:var(--muted);font-size:12px;background:rgba(89,195,255,.09);border:1px solid rgba(89,195,255,.18);padding:7px 10px;border-radius:999px}
.observerAosState.show{display:inline-flex}
.advancedSettings{margin-top:0;border:1px solid rgba(159,176,204,.20);border-radius:14px;background:rgba(11,18,32,.22);padding:0;overflow:hidden;min-width:190px}
.advancedSettings summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;cursor:pointer;color:var(--text);font-size:13px;font-weight:850;list-style:none}
.advancedSettings summary::-webkit-details-marker{display:none}
.advancedSettings summary::after{content:'▾';color:var(--muted);font-size:12px;transition:transform .16s ease}
.advancedSettings[open] summary::after{transform:rotate(180deg)}
.advancedSettingsBody{padding:0 12px 12px}
.gridSquareReadout{margin-top:12px;min-height:42px;border:1px solid #273857;background:#1e2a40;color:var(--text);border-radius:12px;padding:10px 12px;font-size:13px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.gridSquareReadout span{color:var(--muted)}.gridSquareReadout strong{font-size:15px;letter-spacing:.8px;color:#b7f5c2}
.errorBox{margin-top:10px;padding:10px 12px;border-radius:12px;background:#2a1010;border:1px solid #6b2e2e;color:#ffd6d6;display:none}
.satelliteSearchRow{display:grid;grid-template-columns:.8fr 1.2fr;gap:12px}
.categoryChips{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}
.categoryChip{white-space:nowrap;border:1px solid var(--border);background:var(--pill);color:var(--text);border-radius:999px;padding:8px 11px;cursor:pointer;font-weight:750;font-size:12px}
.categoryChip.active{background:linear-gradient(180deg,#2588ff,var(--pillActive));border-color:#4ea1ff}
.tleSummaryGrid,.metaGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
.mini{background:#1e2a40;color:var(--text);border:1px solid #273857;border-radius:14px;padding:12px;min-width:0}
.mini .k{color:var(--muted);font-size:12px;margin-bottom:4px}.mini .v{font-size:14px;font-weight:700;word-break:break-word}
.upcomingPassesHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:10px}
.upcomingPassesHeader h3{margin:0;font-size:15px}
.upcomingRangeBadge{font-size:12px;color:#b7f5c2;border:1px solid rgba(126,231,135,.28);background:rgba(126,231,135,.08);border-radius:999px;padding:6px 10px;white-space:nowrap}
.upcomingTableWrap{display:block;width:100%;overflow-x:auto;border:1px solid #273857;border-radius:14px;background:#1e2a40;-webkit-overflow-scrolling:touch}
.upcomingTable{width:980px;min-width:980px;border-collapse:collapse;font-size:13px;table-layout:fixed}
.upcomingTable th,.upcomingTable td{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(159,176,204,.18);white-space:nowrap;vertical-align:middle}
.upcomingTable th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.45px;background:rgba(11,18,32,.35)}
.upcomingTable tr:last-child td{border-bottom:none}.upcomingEmpty{text-align:center!important;color:var(--muted);padding:18px!important}
.passRow{cursor:pointer}.passRow:hover{background:rgba(89,195,255,.07)}.passRow.selected{background:rgba(126,231,135,.09)}
#map{width:100%;height:520px;border-radius:16px;overflow:hidden;border:1px solid #2c3d59;background:#0b1528}
.mapHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.mapHeader h2{margin:0}.mapInlineHint{font-weight:500}.status{font-size:13px;color:var(--muted)}
.mapLayerToggle,.iconBtn{border:none;border-radius:10px;padding:9px 11px;background:#13203a;color:var(--text);border:1px solid var(--border);cursor:pointer}
.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--muted);align-items:center}
.legend span{display:inline-flex;align-items:center;line-height:1.2}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px;transform:translateY(1px)}
.passSimulator{margin-top:14px;border-top:1px solid var(--border);padding-top:14px}
.passSimulatorHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}
.passSimulatorTitle{font-weight:850}.passSimulatorSub{font-size:12px;color:var(--muted);margin-top:3px}
.footer{margin-top:18px;color:var(--muted);font-size:13px;display:flex;gap:8px;flex-wrap:wrap}
.footer a,a{color:#9fd3ff!important;text-decoration:none}.footer a:hover,a:hover{text-decoration:underline}
.breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--muted);font-size:1.15rem;line-height:1.2}
.breadcrumb a.sol-brand-link{display:inline-flex;align-items:center;gap:0;color:inherit!important;font-weight:850;text-decoration:none!important}
.sol-site-mark{display:inline-flex;width:1.6em;height:1.6em;margin-right:.42em;vertical-align:-.22em;flex:0 0 auto;filter:drop-shadow(0 0 8px rgba(126,231,135,.25))}
.sol-site-mark svg{display:block;width:100%;height:100%;overflow:visible}
.sol-brand-space,.sol-brand-lab{color:#7ee787;font-weight:900}.sol-brand-ops{color:#9ad7ff;font-weight:850}
.sol-orbit-radiation{opacity:0;stroke:#7ee787;stroke-width:3.2;stroke-linecap:round;fill:none;transform-origin:76px 43px;filter:drop-shadow(0 0 8px rgba(126,231,135,.45))}
.sol-orbit-radiation-1{animation:solOrbitRadiationPulse 5.5s ease-out .8s infinite}.sol-orbit-radiation-2{animation:solOrbitRadiationPulse 5.5s ease-out 1.25s infinite}
@keyframes solOrbitRadiationPulse{0%{opacity:0;transform:scale(.72)}10%{opacity:.95;transform:scale(1.02)}22%{opacity:0;transform:scale(1.35)}100%{opacity:0;transform:scale(1.35)}}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.theme-toggle{display:inline-flex;align-items:center;padding:6px;border:1px solid var(--border);border-radius:999px;background:rgba(11,20,40,.80);cursor:pointer;flex:0 0 auto;box-shadow:var(--shadow)}
.toggle-track{position:relative;display:inline-flex;align-items:center;justify-content:space-between;width:58px;height:30px;padding:0 7px;border-radius:999px;background:rgba(5,10,22,.65)}
.toggle-icon{position:relative;z-index:1;font-size:.83rem;line-height:1}.toggle-thumb{position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:linear-gradient(180deg,#fff,#d9e8ff);box-shadow:0 4px 12px rgba(0,0,0,.26);transition:transform 180ms ease}
:root[data-theme="light"] .toggle-thumb{transform:translateX(28px);background:linear-gradient(180deg,#fff6c7,#ffd166)}
.helpTip{display:inline-grid;place-items:center;width:16px;height:16px;margin-left:6px;border-radius:50%;border:1px solid rgba(159,211,255,.65);background:rgba(89,195,255,.10);color:#9fd3ff;font-size:11px;font-weight:800;line-height:1;cursor:help;position:relative;vertical-align:middle;text-transform:none;letter-spacing:0;z-index:20}
.helpTip::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);width:280px;max-width:calc(100vw - 32px);padding:10px 12px;border-radius:12px;border:1px solid #30415f;background:#0b1220;color:var(--text);box-shadow:0 14px 34px rgba(0,0,0,.42);font-size:12px;font-weight:500;line-height:1.4;text-align:left;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .14s ease;z-index:9999}
.helpTip:hover::after,.helpTip:focus::after{opacity:1;visibility:visible}
:root[data-theme="light"] body{background:linear-gradient(180deg,rgba(7,13,24,.62),rgba(11,18,32,.88) 52%,rgba(238,244,251,.96)),url('/assets/images/earth-horizon.webp') center top / cover fixed no-repeat,var(--bg)}
:root[data-theme="light"] .card{background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(247,251,255,.98))}
:root[data-theme="light"] .field input,:root[data-theme="light"] .field select,:root[data-theme="light"] .mini,:root[data-theme="light"] .upcomingTableWrap,:root[data-theme="light"] .gridSquareReadout{background:#fff;color:var(--text);border-color:var(--border)}
:root[data-theme="light"] .btn.secondary,:root[data-theme="light"] .iconBtn,:root[data-theme="light"] .mapLayerToggle{background:#edf4fc;color:var(--text);border-color:var(--border)}
:root[data-theme="light"] .btn.primary{background:linear-gradient(180deg,#3aa0ff,#1976d2);color:#fff}
@media (max-width:980px){.grid{grid-template-columns:1fr}#map{height:360px}.fields,.fields.small,.tleSummaryGrid{grid-template-columns:1fr 1fr}.satelliteSearchRow{grid-template-columns:1fr}}
@media (max-width:620px){.fields,.fields.small,.tleSummaryGrid{grid-template-columns:1fr}.wrap{padding:14px}h1{font-size:24px}.titleLine{display:block}.titleLine .sub{margin-top:4px}.topbar{align-items:flex-start}.observerHeaderRow{display:block}.observerHeaderActions{justify-content:flex-start;margin-top:10px}.observerActionRow{display:grid;grid-template-columns:1fr}.advancedSettings{width:100%}}

.satelliteDetailPanel{
  display:grid;
  grid-template-columns:112px minmax(0,1fr);
  gap:14px;
  align-items:start;
  margin-top:12px;
  border:1px solid rgba(159,176,204,.20);
  border-radius:16px;
  background:rgba(11,18,32,.18);
  padding:12px;
}
.satelliteThumbButton{
  width:112px;
  height:92px;
  padding:0;
  border:1px solid rgba(159,176,204,.25);
  border-radius:14px;
  overflow:hidden;
  background:#0b1528;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(0,0,0,.18);
}
.satelliteThumbButton img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.satelliteNameLine{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.satelliteNameLine strong{
  font-size:17px;
}
.categoryBadge{
  display:inline-flex;
  align-items:center;
  border:1px solid rgba(126,231,135,.28);
  background:rgba(126,231,135,.08);
  color:#b7f5c2;
  padding:4px 8px;
  border-radius:999px;
  font-size:11px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.35px;
}
.satelliteSummary{
  margin:6px 0 8px;
  color:var(--muted);
  font-size:13px;
  line-height:1.4;
}
.tagRow{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  min-height:26px;
}
.metaTag{
  display:inline-flex;
  align-items:center;
  border:1px solid rgba(89,195,255,.22);
  background:rgba(89,195,255,.08);
  color:#c9e7ff;
  border-radius:999px;
  padding:4px 8px;
  font-size:11px;
  font-weight:750;
}
.radioPanel{
  margin-top:10px;
  border-top:1px solid rgba(159,176,204,.16);
  padding-top:10px;
}
.radioHeader{
  color:var(--text);
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.4px;
  margin-bottom:8px;
}
.radioGrid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.radioGrid div{
  border:1px solid rgba(159,176,204,.18);
  background:rgba(30,42,64,.72);
  border-radius:12px;
  padding:8px;
  min-width:0;
}
.radioGrid span{
  display:block;
  color:var(--muted);
  font-size:11px;
  margin-bottom:4px;
}
.radioGrid strong{
  display:block;
  font-size:12px;
  word-break:break-word;
}
.radioNote{
  margin:8px 0 0;
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
}
.satelliteImageModal{
  position:fixed;
  inset:0;
  z-index:50000;
  display:none;
}
.satelliteImageModal.open{
  display:block;
}
.satelliteImageBackdrop{
  position:absolute;
  inset:0;
  background:rgba(2,6,14,.78);
  backdrop-filter:blur(5px);
}
.satelliteImagePanel{
  position:relative;
  z-index:1;
  width:min(760px,calc(100vw - 28px));
  max-height:calc(100vh - 32px);
  margin:16px auto;
  border:1px solid var(--border);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(17,24,39,.98),rgba(15,23,42,.98));
  box-shadow:0 22px 70px rgba(0,0,0,.45);
  overflow:hidden;
}
.satelliteImageHeader{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 14px;
  border-bottom:1px solid var(--border);
}
.satelliteImageClose{
  border:none;
  background:#13203a;
  color:var(--text);
  border:1px solid var(--border);
  border-radius:10px;
  padding:6px 10px;
  cursor:pointer;
  font-size:18px;
}
#satelliteImageLarge{
  display:block;
  width:100%;
  max-height:70vh;
  object-fit:contain;
  background:#050b16;
}
.satelliteImageCredit{
  padding:10px 14px;
  color:var(--muted);
  font-size:12px;
}
:root[data-theme="light"] .satelliteDetailPanel{
  background:#edf4fc;
  border-color:#dce7f3;
}
:root[data-theme="light"] .radioGrid div{
  background:#fff;
  border-color:var(--border);
}
:root[data-theme="light"] .satelliteImagePanel{
  background:#fff;
}
@media (max-width:720px){
  .satelliteDetailPanel{
    grid-template-columns:1fr;
  }
  .satelliteThumbButton{
    width:100%;
    height:150px;
  }
  .radioGrid{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:460px){
  .radioGrid{
    grid-template-columns:1fr;
  }
}

.simButtonRow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}.simIconOnly{min-width:42px;font-weight:900}.simulationTimeline{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;margin-top:12px;color:var(--muted);font-size:12px}#simTimeline{width:100%;accent-color:var(--accent2)}.simReadoutGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.dopplerPanel{margin-top:14px;border:1px solid rgba(159,176,204,.18);background:rgba(11,18,32,.18);border-radius:16px;padding:12px}.dopplerHeader{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:10px}.dopplerHeader strong{font-size:14px}.dopplerHeader span{color:var(--muted);font-size:12px}.dopplerControls{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.dopplerGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px}.dopplerGrid div{border:1px solid rgba(159,176,204,.18);background:rgba(30,42,64,.72);border-radius:12px;padding:8px;min-width:0}.dopplerGrid span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.dopplerGrid strong{display:block;font-size:13px;word-break:break-word}:root[data-theme="light"] .dopplerPanel{background:#edf4fc;border-color:#dce7f3}:root[data-theme="light"] .dopplerGrid div{background:#fff;border-color:var(--border)}@media (max-width:720px){.simReadoutGrid,.dopplerGrid{grid-template-columns:1fr 1fr}.dopplerControls{grid-template-columns:1fr}}@media (max-width:460px){.simReadoutGrid,.dopplerGrid{grid-template-columns:1fr}}

/* sim2: satellite-first operations layout */
.listenActionBar{
  display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:10px 0 12px;
  border:1px solid rgba(159,176,204,.18);background:rgba(11,18,32,.16);border-radius:14px;padding:10px;
}
.listenHint{font-size:12px;color:var(--muted)}
.listenResults{display:grid;gap:8px;margin-bottom:12px}
.listenResult{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid rgba(159,176,204,.18);background:rgba(30,42,64,.62);border-radius:12px;padding:9px 10px;cursor:pointer}
.listenResult:hover{background:rgba(89,195,255,.08)}
.listenResult strong{display:block;font-size:13px}.listenResult span{display:block;color:var(--muted);font-size:12px;margin-top:2px}.listenResult b{font-size:12px;color:#b7f5c2}
.passSpeedSelect{border:none;border-radius:10px;padding:9px 10px;background:#13203a;color:var(--text);border:1px solid var(--border);cursor:pointer;font-weight:750}
.mapCard .passSimulator{border-top:1px solid var(--border)}
:root[data-theme="light"] .listenActionBar,:root[data-theme="light"] .listenResult{background:#edf4fc;border-color:#dce7f3}
:root[data-theme="light"] .passSpeedSelect{background:#edf4fc;color:var(--text);border-color:var(--border)}
@media (max-width:620px){.listenResult{grid-template-columns:1fr}.passSpeedSelect{width:100%}}

/* sim3 refinements */
.listenActionBar{align-items:center;background:linear-gradient(180deg,rgba(89,195,255,.10),rgba(126,231,135,.06));border-color:rgba(89,195,255,.30)}
.listenPrimaryBtn{font-size:14px;padding:12px 16px;box-shadow:0 0 0 1px rgba(159,211,255,.22),0 0 18px rgba(89,195,255,.20)}
.listenResultsTableWrap{display:block;box-sizing:border-box;width:100%;max-width:100%;min-width:0;overflow-x:auto;border:1px solid #273857;border-radius:14px;background:#1e2a40;color:#ffffff;-webkit-overflow-scrolling:touch;margin:0 0 12px}
.listenResultsTable{width:760px;min-width:760px;border-collapse:collapse;font-size:13px;table-layout:fixed}
.listenResultsTable th,.listenResultsTable td{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(159,176,204,.18);white-space:nowrap;vertical-align:middle}
.listenResultsTable th{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.45px;background:rgba(11,18,32,.35)}
.listenResultsTable th:nth-child(1),.listenResultsTable td:nth-child(1){width:320px}.listenResultsTable th:nth-child(2),.listenResultsTable td:nth-child(2){width:160px}.listenResultsTable th:nth-child(3),.listenResultsTable td:nth-child(3){width:86px}.listenResultsTable th:nth-child(4),.listenResultsTable td:nth-child(4){width:120px}.listenResultsTable th:nth-child(5),.listenResultsTable td:nth-child(5){width:80px}
.listenResultRow{cursor:pointer}.listenResultRow:hover{background:rgba(89,195,255,.07)}.listenResultEmpty{color:var(--muted);text-align:center!important;padding:18px!important}
.upcomingTable{width:900px!important;min-width:900px!important;max-width:900px!important}.upcomingTable th:nth-child(1),.upcomingTable td:nth-child(1){width:42px!important;text-align:center}.upcomingTable th:nth-child(2),.upcomingTable td:nth-child(2){width:156px}.upcomingTable th:nth-child(3),.upcomingTable td:nth-child(3){width:156px}.upcomingTable th:nth-child(4),.upcomingTable td:nth-child(4){width:90px}.upcomingTable th:nth-child(5),.upcomingTable td:nth-child(5){width:90px}.upcomingTable th:nth-child(6),.upcomingTable td:nth-child(6){width:90px}.upcomingTable th:nth-child(7),.upcomingTable td:nth-child(7){width:120px}
.passSimulator{margin-top:12px;border:1px solid #273857;border-radius:14px;background:#1e2a40;color:#ffffff;padding:10px;display:grid;gap:8px}
.passSimulatorHeader{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.passSimulatorTitle{font-size:13px;font-weight:850;letter-spacing:.25px;text-transform:uppercase;color:var(--muted)}.passSimulatorControls{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.passSimulatorControls .iconBtn{padding:7px 9px;font-size:12px;font-weight:800}.simIconOnly{width:36px;min-width:36px;padding:7px 0!important;text-align:center;font-weight:900}.passSpeedSelect{border-radius:10px;border:1px solid var(--border);background:#13203a;color:var(--text);padding:7px 9px;font-size:12px;font-weight:800;outline:none;cursor:pointer}.passSpeedSelect:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(89,195,255,.14)}.passSimTimeInline{display:inline-flex;align-items:center;gap:5px;border:1px solid rgba(159,176,204,.22);background:rgba(11,18,32,.30);border-radius:999px;padding:6px 9px;font-size:12px;white-space:nowrap;max-width:100%}.passSimTimeInline .k{color:var(--muted);font-weight:800}.passSimTimeInline .v{font-weight:900;color:var(--text);letter-spacing:-.08px}.simTimeRadioGroup{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;max-width:100%}.passProgress{width:100%;accent-color:#59c3ff;cursor:pointer}.passProgress:disabled{cursor:not-allowed;opacity:.55}.passSimReadouts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.passSimMini{border:1px solid rgba(159,176,204,.18);border-radius:12px;background:rgba(11,18,32,.28);padding:7px 8px;min-width:0}.passSimMini .k{color:var(--muted);font-size:11px;margin-bottom:3px}.passSimMini .v{font-weight:850;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.passRadioBlock{border-top:1px solid rgba(159,176,204,.16);padding-top:8px}.radioDopplerHeader{width:100%;border:1px solid rgba(159,176,204,.22);background:rgba(11,18,32,.28);color:var(--text);border-radius:12px;padding:9px 10px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:850}.radioDopplerHeaderText{flex:1;text-align:left}.radioDopplerPanel{display:none;margin-top:8px;border:1px solid rgba(159,176,204,.18);background:rgba(11,18,32,.18);border-radius:14px;padding:10px}.radioDopplerPanel.show{display:block}.radioDopplerControls{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:10px}.radioDopplerControls label{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.radioDopplerControls select,.radioDopplerControls input{width:100%;border-radius:10px;border:1px solid #30415f;background:#13203a;color:var(--text);padding:8px 9px}.radioDopplerReadouts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:8px}.radioDopplerMini{border:1px solid rgba(159,176,204,.18);background:rgba(30,42,64,.62);border-radius:12px;padding:7px 8px}.radioDopplerMini .k{color:var(--muted);font-size:11px;margin-bottom:3px}.radioDopplerMini .v{font-weight:850;font-size:13px}.radioDopplerNote{margin-top:8px;color:var(--muted);font-size:11.5px;line-height:1.35}
.radioGrid strong.isPlaceholder{color:var(--muted);font-weight:700;font-style:italic}
:root[data-theme="light"] .listenResultsTableWrap,:root[data-theme="light"] .passSimulator{background:#fff;color:var(--text);border-color:var(--border)}:root[data-theme="light"] .passSimMini,:root[data-theme="light"] .passSimTimeInline,:root[data-theme="light"] .radioDopplerPanel,:root[data-theme="light"] .radioDopplerHeader,:root[data-theme="light"] .radioDopplerMini{background:#edf4fc;border-color:#dce7f3}:root[data-theme="light"] .radioDopplerControls select,:root[data-theme="light"] .radioDopplerControls input,:root[data-theme="light"] .passSpeedSelect{background:#fff;color:var(--text);border-color:var(--border)}
@media(max-width:720px){.radioDopplerControls{grid-template-columns:1fr}.passSimReadouts,.radioDopplerReadouts{grid-template-columns:1fr 1fr}}@media(max-width:460px){.passSimReadouts,.radioDopplerReadouts{grid-template-columns:1fr}.passSimulatorControls{justify-content:flex-start}.passSpeedSelect{width:auto}}

.filterPassActionRow{margin:12px 0 2px;display:flex;justify-content:flex-end}
.filterPassBtn{font-size:14px;box-shadow:0 0 0 1px rgba(159,211,255,.28),0 0 20px rgba(89,195,255,.22)}
.upcomingTable th:first-child,.upcomingTable td:first-child{width:42px!important;max-width:42px!important;text-align:center}

.categorySourceNote{margin:8px 0 6px;color:var(--muted);font-size:12px;line-height:1.35}.categorySourceNote strong{color:var(--text)}

/* Satellite page fix5 */
.satelliteActionBar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:12px 0;}
.satelliteActionBar .selectedCalcBtn{box-shadow:0 0 0 1px rgba(159,211,255,.35),0 0 22px rgba(89,195,255,.28);}
.satelliteActionBar .listenHint{flex:1 1 180px;}
.filterPassActionRow{display:none!important;}
.upcomingTable th:first-child,.upcomingTable td:first-child,.listenResultsTable th:first-child,.listenResultsTable td:first-child{width:auto;}
.upcomingTable th:nth-child(1),.upcomingTable td:nth-child(1){width:42px!important;max-width:42px!important;text-align:center;}

/* fix6: tighten pass table columns and unify selected/filter mode */
.upcomingTable th:nth-child(1), .upcomingTable td:nth-child(1){width:42px!important;max-width:42px!important;text-align:center!important}
.upcomingTable th.satCol, .upcomingTable td.satCol,
.upcomingTable th[data-col="satellite"], .upcomingTable td[data-col="satellite"]{width:220px!important;max-width:220px!important}
.upcomingTable td.satCol{overflow:hidden;text-overflow:ellipsis}
.filterPassActionRow{margin:12px 0 2px;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.filterPassBtn{font-size:14px;box-shadow:0 0 0 1px rgba(159,211,255,.28),0 0 20px rgba(89,195,255,.22)}
.passSpeedSelect{border-radius:10px;border:1px solid var(--border);background:#13203a;color:var(--text);padding:8px 10px}
:root[data-theme="light"] .passSpeedSelect{background:#edf4fc;color:var(--text)}

/* fix7: one calculate button, unified passes table, local/UTC toggle */
.timeModeToggle{border:1px solid rgba(159,211,255,.28);background:rgba(89,195,255,.10);color:#c9e7ff;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}
.upcomingTable{width:900px!important;min-width:900px!important;max-width:900px!important}
.upcomingTable th:nth-child(1),.upcomingTable td:nth-child(1){width:42px!important;max-width:42px!important;text-align:center!important}
.upcomingTable th.satCol,.upcomingTable td.satCol,.upcomingTable th[data-col="satellite"],.upcomingTable td[data-col="satellite"]{width:150px!important;max-width:150px!important}
.upcomingTable td.satCol{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.filterPassActionRow,#findFilterPassesBtn{display:none!important}
:root[data-theme="light"] .timeModeToggle{background:#edf4fc;color:#132033;border-color:var(--border)}

/* fix8 */
.globalTimeMode{display:inline-flex;align-items:center;gap:8px;margin-left:auto;color:var(--muted);font-size:12px;border:1px solid rgba(159,176,204,.18);background:rgba(11,18,32,.28);border-radius:999px;padding:5px 6px 5px 10px}
.timeModeToggle{border:1px solid rgba(159,211,255,.28);background:rgba(89,195,255,.10);color:#c9e7ff;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:850;cursor:pointer;white-space:nowrap}
.upcomingTable{width:820px!important;min-width:820px!important;max-width:820px!important}
.upcomingTable th:nth-child(1),.upcomingTable td:nth-child(1){width:40px!important;max-width:40px!important;text-align:center!important}
.upcomingTable th.satCol,.upcomingTable td.satCol,.upcomingTable th[data-col="satellite"],.upcomingTable td[data-col="satellite"]{width:105px!important;max-width:105px!important}
.upcomingTable td.satCol{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}
.filterPassActionRow,#findFilterPassesBtn{display:none!important}
:root[data-theme="light"] .globalTimeMode{background:rgba(255,255,255,.72);border-color:rgba(19,32,51,.12)}
:root[data-theme="light"] .timeModeToggle{background:#edf4fc;color:#132033;border-color:var(--border)}
@media (max-width:620px){.globalTimeMode{margin-left:0;margin-top:8px}.topbar{flex-wrap:wrap}}

/* fix9: one calculate button, removed next-passes card */
.upcomingPasses,.filterPassActionRow,#findFilterPassesBtn{display:none!important}
.singleCalculateRow{display:flex;justify-content:flex-end;margin:12px 0 4px}
#calcBtn .calcBtnText{font-weight:850}


/* fix10: tighten SAT column in upcoming passes table */
.upcomingTable{
  width:780px!important;
  min-width:780px!important;
  max-width:780px!important;
}
.upcomingTable th.satCol,
.upcomingTable td.satCol,
.upcomingTable th[data-col="satellite"],
.upcomingTable td[data-col="satellite"]{
  width:72px!important;
  max-width:72px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

/* fix12: fine tune visible results table column widths */
.listenResultsTable{
  width:520px!important;
  min-width:520px!important;
  max-width:520px!important;
}
.listenResultsTable th:nth-child(1),
.listenResultsTable td:nth-child(1),
.listenResultsTable th.satCol,
.listenResultsTable td.satCol{
  width:116px!important;
  max-width:116px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.listenResultsTable th:nth-child(2),
.listenResultsTable td:nth-child(2){width:170px!important;max-width:170px!important}
.listenResultsTable th:nth-child(3),
.listenResultsTable td:nth-child(3){width:90px!important;max-width:90px!important}
.listenResultsTable th:nth-child(4),
.listenResultsTable td:nth-child(4){width:120px!important;max-width:120px!important}


/* fix13: final explicit widths for the filtered pass results table */
.listenResultsTable{
  width:520px!important;
  min-width:520px!important;
  max-width:520px!important;
  table-layout:fixed!important;
}
.listenResultsTable col.listenSatCol{width:136px!important;}
.listenResultsTable col.listenAosCol{width:150px!important;}
.listenResultsTable col.listenMaxElCol{width:90px!important;}
.listenResultsTable col.listenDurationCol{width:120px!important;}
.listenResultsTable th:nth-child(1),
.listenResultsTable td:nth-child(1),
.listenResultsTable th.satCol,
.listenResultsTable td.satCol{
  width:136px!important;
  max-width:136px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.listenResultsTable th:nth-child(2),
.listenResultsTable td:nth-child(2){
  width:150px!important;
  max-width:150px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.listenResultsTable th:nth-child(3),
.listenResultsTable td:nth-child(3){width:90px!important;max-width:90px!important;}
.listenResultsTable th:nth-child(4),
.listenResultsTable td:nth-child(4){width:120px!important;max-width:120px!important;}


/* fix14: force filtered pass results column widths. Sat slightly wider, Next AOS smaller. */
.listenResultsTable{
  width:500px!important;
  min-width:500px!important;
  max-width:500px!important;
  table-layout:fixed!important;
}
.listenResultsTable col.listenSatCol{width:180px!important;}
.listenResultsTable col.listenAosCol{width:110px!important;}
.listenResultsTable col.listenMaxElCol{width:90px!important;}
.listenResultsTable col.listenDurationCol{width:120px!important;}
.listenResultsTable th:nth-child(1),
.listenResultsTable td:nth-child(1){
  width:180px!important;
  max-width:180px!important;
  min-width:180px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.listenResultsTable th:nth-child(2),
.listenResultsTable td:nth-child(2){
  width:110px!important;
  max-width:110px!important;
  min-width:110px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}
.listenResultsTable th:nth-child(3),
.listenResultsTable td:nth-child(3){width:90px!important;max-width:90px!important;min-width:90px!important;}
.listenResultsTable th:nth-child(4),
.listenResultsTable td:nth-child(4){width:120px!important;max-width:120px!important;min-width:120px!important;}


/* fix15: keep observer action controls as icon-only buttons with hover titles */
.visuallyHidden{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.observerTimeFields{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) 46px 46px 46px;
  align-items:end;
}
.nowButtonField,.observerIconField{
  min-width:46px;
}
.nowButtonField label,.observerIconField label{
  margin-bottom:6px;
}
.nowIconBtn,.locateBtn,.observerAdvancedSettings > summary{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  padding:0!important;
  display:inline-grid!important;
  place-items:center!important;
}
.nowIconBtn .ico,.locateBtn .ico{
  margin-right:0!important;
}
.observerAdvancedSettings{
  align-self:end;
  min-width:42px;
  width:42px;
  border:0;
  background:transparent;
  overflow:visible;
}
.observerAdvancedSettings > summary{
  justify-content:center!important;
  border:1px solid var(--border);
  border-radius:12px;
  background:#13203a;
}
.observerAdvancedSettings > summary::after{
  content:none!important;
}
.observerAdvancedSettings[open]{
  grid-column:1 / -1;
  width:100%;
  min-width:0;
  border:1px solid rgba(159,176,204,.20);
  border-radius:14px;
  background:rgba(11,18,32,.22);
  overflow:hidden;
}
.observerAdvancedSettings[open] > summary{
  margin-left:auto;
  border-color:rgba(159,176,204,.20);
  border-radius:12px;
}
:root[data-theme="light"] .observerAdvancedSettings > summary{
  background:#edf4fc;
  color:var(--text);
  border-color:var(--border);
}
@media (max-width:620px){
  .observerTimeFields{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 46px 46px 46px;}
  .observerAdvancedSettings[open]{grid-column:1 / -1;}
}


/* fix16: force observer action controls back to icon-only */
.observerTimeFields{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) 46px 46px 46px!important;
  align-items:end!important;
}
.observerTimeFields .nowButtonField,
.observerTimeFields .observerIconField{
  min-width:46px!important;
  width:46px!important;
}
.observerTimeFields .nowButtonField label,
.observerTimeFields .observerIconField label{
  display:none!important;
}
#speedSpeedSelect{}
#getMyLocationBtn.locateBtn,
#setNowBtn.nowIconBtn,
.observerAdvancedSettings:not([open]),
.observerAdvancedSettings:not([open]) > summary{
  width:42px!important;
  min-width:42px!important;
  max-width:42px!important;
  height:42px!important;
}
#getMyLocationBtn.locateBtn,
#setNowBtn.nowIconBtn,
.observerAdvancedSettings > summary{
  padding:0!important;
  display:inline-grid!important;
  place-items:center!important;
  text-indent:0!important;
  overflow:hidden!important;
  white-space:nowrap!important;
}
#getMyLocationBtn.locateBtn .ico,
#setNowBtn.nowIconBtn .ico,
.observerAdvancedSettings .settingsIcon{
  margin:0!important;
  font-size:18px!important;
  line-height:1!important;
}
#getMyLocationBtn.locateBtn .locateText,
.observerAdvancedSettings .settingsText{
  display:none!important;
}
.observerAdvancedSettings:not([open]){
  border:0!important;
  background:transparent!important;
  padding:0!important;
  overflow:visible!important;
}
.observerAdvancedSettings > summary::after{
  display:none!important;
  content:none!important;
}


/* fix17: observer icon controls + expanded settings layout */
.observerTimeFields{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px 42px 42px!important;
  gap:12px!important;
  align-items:end!important;
}
.observerTimeFields .nowButtonField,
.observerTimeFields .observerIconField{
  width:42px!important;
  min-width:42px!important;
}
.observerTimeFields .nowButtonField label,
.observerTimeFields .observerIconField label{
  display:none!important;
}
#setNowBtn.nowIconBtn,
#getMyLocationBtn.locateBtn,
.observerAdvancedSettings > summary{
  width:42px!important;
  min-width:42px!important;
  max-width:42px!important;
  height:42px!important;
  min-height:42px!important;
  padding:0!important;
  display:grid!important;
  place-items:center!important;
  border-radius:12px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
}
#setNowBtn.nowIconBtn .ico,
#getMyLocationBtn.locateBtn .ico,
.observerAdvancedSettings > summary .settingsIcon{
  margin:0!important;
  font-size:18px!important;
  line-height:1!important;
}
.observerAdvancedSettings{
  align-self:end!important;
  min-width:42px!important;
  width:42px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  overflow:visible!important;
}
.observerAdvancedSettings > summary{
  border:1px solid var(--border)!important;
  background:#13203a!important;
  color:var(--text)!important;
  list-style:none!important;
}
.observerAdvancedSettings > summary::-webkit-details-marker{display:none!important;}
.observerAdvancedSettings > summary::after{content:none!important;display:none!important;}
.observerAdvancedSettings[open]{
  grid-column:1 / -1!important;
  width:100%!important;
  min-width:0!important;
  border:1px solid rgba(159,176,204,.20)!important;
  border-radius:14px!important;
  background:rgba(11,18,32,.22)!important;
  overflow:visible!important;
  padding:10px!important;
}
.observerAdvancedSettings[open] > summary{
  margin-left:auto!important;
  margin-bottom:10px!important;
  background:#13203a!important;
}
.observerAdvancedSettings[open] .advancedSettingsBody{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  padding:0!important;
  overflow:visible!important;
}
.observerAdvancedSettings[open] .advancedFieldsMain{
  display:grid!important;
  grid-template-columns:minmax(180px,1fr)!important;
  width:100%!important;
}
.observerAdvancedSettings[open] .advancedFieldsCompact{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(120px,1fr))!important;
  width:100%!important;
}
:root[data-theme="light"] .observerAdvancedSettings > summary,
:root[data-theme="light"] .observerAdvancedSettings[open] > summary{
  background:#edf4fc!important;
  color:var(--text)!important;
  border-color:var(--border)!important;
}
@media (max-width:720px){
  .observerTimeFields{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px 42px 42px!important;}
  .observerAdvancedSettings[open] .advancedFieldsCompact{grid-template-columns:repeat(2,minmax(120px,1fr))!important;}
}
@media (max-width:520px){
  .observerTimeFields{grid-template-columns:1fr 1fr 42px 42px 42px!important;}
  .observerAdvancedSettings[open] .advancedFieldsCompact{grid-template-columns:1fr!important;}
}


/* fix19: satellite type + radio band filter deck */
.filterDeck{
  display:grid;
  gap:10px;
  margin:12px 0;
  padding:10px;
  border:1px solid rgba(159,176,204,.16);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(89,195,255,.075),rgba(126,231,135,.04));
}
.filterRow{
  display:grid;
  grid-template-columns:72px minmax(0,1fr);
  gap:10px;
  align-items:start;
}
.filterLabel{
  color:var(--muted);
  font-size:11px;
  font-weight:900;
  letter-spacing:.55px;
  text-transform:uppercase;
  line-height:28px;
  white-space:nowrap;
}
.filterDeck .categoryChips,
.bandChips{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin:0!important;
  min-width:0;
}
.bandChip{
  white-space:nowrap;
  border:1px solid rgba(126,231,135,.24);
  background:rgba(126,231,135,.06);
  color:var(--text);
  border-radius:999px;
  padding:7px 10px;
  cursor:pointer;
  font-weight:800;
  font-size:12px;
  line-height:1;
  transition:transform .12s ease, border-color .12s ease, background .12s ease, box-shadow .12s ease;
}
.categoryChip:hover,.bandChip:hover{
  transform:translateY(-1px);
  text-decoration:none;
}
.bandChip.active{
  background:linear-gradient(180deg,rgba(126,231,135,.28),rgba(89,195,255,.16));
  border-color:rgba(126,231,135,.62);
  box-shadow:0 0 0 1px rgba(126,231,135,.12),0 0 16px rgba(126,231,135,.12);
  color:#dfffe7;
}
:root[data-theme="light"] .filterDeck{
  background:linear-gradient(180deg,rgba(25,118,210,.06),rgba(23,138,67,.045));
  border-color:#dce7f3;
}
:root[data-theme="light"] .bandChip{
  background:#f1fbf5;
  border-color:#c8e8d2;
  color:var(--text);
}
:root[data-theme="light"] .bandChip.active{
  background:linear-gradient(180deg,#dff8e8,#edf6ff);
  border-color:#178a43;
  color:#0d5026;
}
@media (max-width:620px){
  .filterRow{grid-template-columns:1fr;gap:6px;}
  .filterLabel{line-height:1.2;}
  .bandChip,.categoryChip{font-size:11px;padding:7px 9px;}
}




/* fix23: compact map legend and centred help icons */
.legend{
  align-items:center;
}
.legend > span{
  gap:4px;
}
.legendHelpTip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:15px;
  height:15px;
  min-width:15px;
  margin-left:2px;
  padding:0;
  line-height:15px;
  font-size:10px;
  transform:none;
  vertical-align:middle;
  position:relative;
  z-index:80;
}
.legendHelpTip::after{
  bottom:calc(100% + 9px);
  left:50%;
  transform:translateX(-50%);
  width:min(250px, calc(100vw - 36px));
}
.legendHelpTip:hover::after,
.legendHelpTip:focus::after{
  opacity:1;
  visibility:visible;
}


/* fix24: compact filter actions and reliable legend info bubbles */
.listenPrimaryActions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.clearFiltersBtn{
  padding:10px 12px;
  font-size:12px;
  white-space:nowrap;
}
.categoryChips{
  row-gap:7px;
}
.legend{
  overflow:visible;
}
.legend > span{
  position:relative;
  overflow:visible;
}
.legendInfo{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:15px;
  height:15px;
  min-width:15px;
  margin-left:3px;
  padding:0;
  border-radius:50%;
  border:1px solid rgba(159,211,255,.65);
  background:rgba(89,195,255,.10);
  color:#9fd3ff;
  font-size:10px;
  font-weight:900;
  line-height:1;
  cursor:help;
  position:relative;
  z-index:120;
}
.legendInfo::after{
  content:attr(data-tip);
  position:absolute;
  left:50%;
  bottom:calc(100% + 9px);
  transform:translateX(-50%);
  width:min(260px, calc(100vw - 36px));
  padding:9px 10px;
  border-radius:11px;
  border:1px solid #30415f;
  background:#0b1220;
  color:var(--text);
  box-shadow:0 14px 34px rgba(0,0,0,.42);
  font-size:11.5px;
  font-weight:500;
  line-height:1.35;
  text-align:left;
  white-space:normal;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  z-index:99999;
}
.legendInfo:hover::after,
.legendInfo:focus::after{
  opacity:1;
  visibility:visible;
}
:root[data-theme="light"] .legendInfo::after{
  background:#ffffff;
  color:var(--text);
  border-color:var(--border);
}
@media (max-width:620px){
  .listenPrimaryActions{
    width:100%;
  }
  .listenPrimaryActions .listenPrimaryBtn{
    flex:1 1 auto;
  }
}


/* fix25: clearer action states, legend tooltip layering, and sample image label */
.listenPrimaryBtn,
.clearFiltersBtn{
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, filter .16s ease;
}
.listenPrimaryBtn:hover,
.listenPrimaryBtn:focus-visible{
  transform:translateY(-1px);
  filter:saturate(1.08);
  box-shadow:0 0 0 1px rgba(159,211,255,.36),0 0 22px rgba(89,195,255,.34),0 10px 24px rgba(0,0,0,.22);
}
.clearFiltersBtn:hover,
.clearFiltersBtn:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(126,231,135,.45);
  box-shadow:0 0 0 1px rgba(126,231,135,.18),0 0 18px rgba(126,231,135,.18);
}
.mapCard,
.legend,
.legend > span{
  overflow:visible;
}
.legend{
  position:relative;
  z-index:5000;
}
.legendInfo{
  z-index:7000;
}
.legendInfo::after{
  z-index:900000;
  bottom:auto;
  top:calc(100% + 9px);
}
.satelliteThumbWrap{
  position:relative;
  width:112px;
}
.sampleImageLabel{
  position:absolute;
  left:7px;
  bottom:7px;
  display:inline-flex;
  align-items:center;
  padding:3px 7px;
  border-radius:999px;
  background:rgba(5,11,22,.78);
  border:1px solid rgba(159,211,255,.24);
  color:#d6e9ff;
  font-size:10px;
  font-weight:850;
  letter-spacing:.18px;
  pointer-events:none;
  backdrop-filter:blur(4px);
}
:root[data-theme="light"] .sampleImageLabel{
  background:rgba(255,255,255,.84);
  color:#1d344f;
}
@media (max-width:720px){
  .satelliteThumbWrap{
    width:100%;
  }
}


/* fix27: pass table paging */
.listenResultsPager{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:9px;
  margin:-2px 0 12px;
  color:var(--muted);
  font-size:12px;
}
.listenPagerBtn{
  padding:7px 10px;
  font-size:12px;
}
.listenPagerBtn:disabled{
  opacity:.45;
  cursor:not-allowed;
}
#listenPageInfo{
  min-width:82px;
  text-align:center;
  font-weight:750;
}
@media (max-width:620px){
  .listenResultsPager{
    justify-content:space-between;
  }
}


/* fix29: useful satellite info chips instead of noisy raw tags */
.metaTag.isUseful{
  border-color:rgba(126,231,135,.28);
  background:rgba(126,231,135,.08);
  color:#d9ffe0;
}
.metaTag.isMuted{
  color:var(--muted);
  background:rgba(159,176,204,.06);
  border-color:rgba(159,176,204,.16);
}


/* fix30: compact high-level filter chip row */
.categoryChips{
  gap:7px;
  row-gap:7px;
}
.categoryChip{
  padding:7px 10px;
  font-size:11px;
}


/* fix34: clearer Weather / Earth obs chip can wrap if needed */
.categoryChip[data-category="weather"]{
  max-width:160px;
}


/* fix35: shorter weather filter label */
.categoryChip[data-category="weather"]{
  max-width:none;
}


/* fix36: no visual change; API source fix only */

/* fix39: safe UI-only restore from fix36 */
.categoryChip{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.categoryChip .chipIcon{
  font-size:13px;
  line-height:1;
}
.categoryChip .chipCount{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:18px;
  padding:0 6px;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  color:var(--muted);
  font-size:10px;
  font-weight:900;
}
.categoryChip.active .chipCount{
  color:#eaf2ff;
  background:rgba(255,255,255,.18);
}
:root[data-theme="light"] .categoryChip.active .chipCount{
  color:#fff;
}
/* Hide noisy raw metadata tags under the selected satellite. Keep the main category badge. */
.tagRow{
  display:none!important;
}

/* fix40: Type chip counts now use Worker counts, not pass-window results. */

/* fix41: category count badges applied directly from Worker counts after catalogue load. */
