.aprs-view-switch {
  .btn {
    border-color: rgba(173, 205, 255, 0.45);
    color: var(--app-text);
  }

  .btn.btn-primary {
    background: rgba(90, 146, 255, 0.5);
    border-color: rgba(173, 205, 255, 0.75);
  }

  .btn:hover,
  .btn:focus {
    color: #ffffff;
    border-color: rgba(225, 237, 255, 0.8);
  }
}

.aprs-table-card,
.aprs-detail-card {
  background: rgba(8, 24, 56, 0.5);
  border: 1px solid rgba(173, 205, 255, 0.2);
  color: var(--app-text);
}

.aprs-table-header {
  background: rgba(27, 56, 108, 0.45);
  border-bottom: 1px solid rgba(173, 205, 255, 0.2);
  color: var(--app-text);
  font-weight: 600;
}

.aprs-table-body {
  height: 100%;
  min-height: 0;
}

.aprs-table-scroll {
  height: 100%;
  max-height: 100%;
  overflow-y: auto;
}

.aprs-table {
  color: var(--app-text);

  thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: rgba(13, 36, 82, 0.95);
    border-color: rgba(173, 205, 255, 0.18);
    color: var(--app-text);
  }

  td {
    border-color: rgba(173, 205, 255, 0.12);
    vertical-align: middle;
    cursor: pointer;
  }

  tr.is-selected td {
    background: rgba(102, 157, 255, 0.16);
  }

  tr:hover td {
    background: rgba(102, 157, 255, 0.08);
  }
}

.aprs-detail-stack {
  overflow-y: auto;
  padding-right: 0.25rem;
}

.aprs-fact-row {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 8px;
  padding: 4px 0;
}

.aprs-fact-label {
  color: var(--app-text-muted);
}

.aprs-fact-value {
  color: var(--app-text);
  word-break: break-all;
}

.aprs-raw-code {
  display: block;
  padding: 0.5rem;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 0.25rem;
  white-space: pre-wrap;
  word-break: break-all;
  color: #b8d1ff;
  font-size: 0.85rem;
}

.aprs-map {
  .leaflet-container {
    background: rgba(13, 36, 82, 0.95);
  }

  .leaflet-tile-pane {
    filter: invert(1) hue-rotate(180deg) saturate(0.8) brightness(0.95);
  }
}

// APRS symbol markers on the map
.aprs-marker-icon {
  border: none;
  background: transparent;

  .aprs-map-marker {
    // Use 32px source scaled to 16px for crisp rendering
    width: 16px;
    height: 16px;
    background-size: 256px auto; // 16 * 16px = 256px
    display: block;
  }
}

// Cluster markers
.cluster-marker-icon {
  border: none;
  background: transparent;
  cursor: pointer;

  &:hover .cluster-marker {
    background: rgba(0, 102, 204, 0.95) !important;
    transform: scale(1.1);
    transition: all 0.2s ease;
  }
}
