/* Radar watchlist: three weekly stories and a compact sortable table. */

.airplay-radar-stories {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  margin: 0 0 16px;
  padding: 0;
  list-style: none;
}

.airplay-radar-stories li {
  display: grid;
  gap: 3px;
  padding: 12px 14px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--color-panel-2);
}

.airplay-radar-stories span {
  color: var(--color-muted);
  font-size: 12px;
  font-weight: 800;
}

.airplay-radar-stories a {
  color: var(--color-text);
  text-decoration: none;
}

.airplay-radar-stories a:hover strong {
  color: var(--color-mint);
}

.airplay-radar-stories em {
  color: var(--color-mint);
  font-style: normal;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

.airplay-radar-glossary {
  display: grid;
  gap: 8px;
  margin: 10px 0;
}

.airplay-radar-glossary dt {
  font-weight: 800;
}

.airplay-radar-glossary dd {
  margin: 2px 0 0;
  color: var(--color-muted);
}

.airplay-table--radar {
  min-width: 760px;
}

.airplay-table--radar .airplay-table__track {
  min-width: 240px;
}

/* Title and artist are separate links, so neither may cover the whole cell. */
.airplay-table--radar .airplay-table__track a {
  display: inline;
  min-height: 0;
}

.airplay-table--radar .airplay-table__track a::after {
  display: none;
}

.airplay-table--radar .airplay-track-cell > span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.airplay-table--radar .airplay-track-cell strong a {
  color: var(--color-text);
}

.airplay-radar-details {
  margin-top: 6px;
}

.airplay-radar-details summary {
  color: var(--color-muted);
  font-size: 12px;
  cursor: pointer;
}

.airplay-radar-details p {
  margin: 6px 0;
  font-size: 13px;
}

.airplay-radar-details dl {
  display: grid;
  gap: 4px;
  margin: 0;
  font-size: 13px;
}

.airplay-radar-details dl div {
  display: flex;
  flex-wrap: wrap;
  gap: 0 6px;
}

.airplay-radar-details dt {
  color: var(--color-muted);
}

.airplay-radar-details dd {
  margin: 0;
}

.airplay-radar__score {
  white-space: nowrap;
}

.airplay-radar-score {
  display: inline-block;
  width: 64px;
  height: 6px;
  margin-right: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(127, 156, 144, 0.25);
  vertical-align: middle;
}

.airplay-radar-score span {
  display: block;
  width: var(--radar-score, 0%);
  height: 100%;
  background: var(--color-mint);
}

.airplay-radar-delta {
  color: var(--color-mint);
  font-weight: 800;
}

.airplay-table--radar td.airplay-table__metric {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.airplay-radar-sort {
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  cursor: pointer;
}

.airplay-radar-sort:hover,
.airplay-radar-sort:focus-visible {
  color: var(--color-text);
}

th[aria-sort="ascending"] .airplay-radar-sort::after {
  content: " ↑";
}

th[aria-sort="descending"] .airplay-radar-sort::after {
  content: " ↓";
}

@media (max-width: 900px) {
  .airplay-radar-stories {
    gap: 6px;
  }

  .airplay-radar-stories li {
    padding: 8px 10px;
  }

  .airplay-table--radar {
    min-width: 0;
  }

  /* Two lines per track: "rank · track · score" and "plays · brands · stations". */
  .airplay-table--radar tr {
    grid-template-columns: 32px repeat(3, minmax(0, 1fr));
  }

  .airplay-table--radar td {
    padding: 6px 8px;
  }

  .airplay-table--radar .airplay-table__rank {
    grid-column: 1;
    grid-row: 1 / 3;
    align-self: start;
    padding-inline: 4px;
    text-align: center;
  }

  .airplay-table--radar .airplay-table__track {
    grid-column: 2 / 4;
    grid-row: 1;
    min-width: 0;
  }

  .airplay-table--radar .airplay-table__metric {
    display: grid;
    gap: 1px;
    align-content: start;
    font-size: 13px;
    white-space: normal;
  }

  .airplay-table--radar .airplay-radar__score { grid-column: 4; grid-row: 1; text-align: right; }
  .airplay-table--radar .airplay-radar__plays { grid-column: 2; grid-row: 2; }
  .airplay-table--radar .airplay-radar__groups { grid-column: 3; grid-row: 2; }
  .airplay-table--radar .airplay-radar__stations { grid-column: 4; grid-row: 2; }

  .airplay-table--radar .airplay-radar-score {
    width: 100%;
    margin: 0 0 2px;
  }

  .airplay-table--radar .airplay-table__metric::before {
    color: var(--color-muted);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  .airplay-table--radar .airplay-radar__plays::before { content: var(--radar-label-plays); }
  .airplay-table--radar .airplay-radar__groups::before { content: var(--radar-label-groups); }
  .airplay-table--radar .airplay-radar__stations::before { content: var(--radar-label-stations); }
}
