/* /home/hkiugcom/website.airplay/assets/audit/audit_layout.css */

/* utility: used for JS toggle of elements (was Tailwind .hidden) */
.hidden { display: none !important; }

/* ── Page layout ── */

.au-topbar {
  display: block;
  max-width: 80rem;
  margin-left: auto;
  margin-right: auto;
  padding: 0.75rem 1rem;
  background: var(--ap-gray-900);
  border-radius: 1rem;
  border: 1px solid var(--ap-gray-800);
  margin-bottom: 1.5rem;
}

.au-content {
  max-width: 80rem;
  margin-left: auto;
  margin-right: auto;
  padding-left: 1rem;
  padding-right: 1rem;
}

/* table loading / infinite scroll status */
#auditTableLoading {
  margin-top: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

#auditTableLoading span {
  font-size: 12px;
  color: var(--ap-text-secondary);
  user-select: none;
}

.au-infinite-wrap {
  margin-top: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}

#auditInfiniteStatus {
  font-size: 11px;
  color: var(--ap-text-secondary);
  user-select: none;
}

/* ── Select / input form controls ── */

.audit-compact-select {
  background: rgba(var(--ap-white-rgb),0.04);
  border: 1px solid rgba(var(--ap-navy-600-rgb),0.45);
  border-radius: 6px;
  color: var(--ap-text-secondary);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  -webkit-appearance: none;
  appearance: none;
  transition: border-color 0.18s ease, color 0.18s ease;
}
.audit-compact-select:hover {
  border-color: rgba(115, 135, 178, 0.60);
  color: rgba(205, 215, 238, 0.95);
}
.audit-compact-select:focus {
  outline: none;
  border-color: rgba(115, 135, 178, 0.70);
  box-shadow: 0 0 0 2px rgba(var(--ap-indigo-rgb),0.15);
}
select.audit-compact-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' viewBox='0 0 8 5'%3E%3Cpath d='M0 0l4 5 4-5z' fill='%236b7a9b' fill-opacity='0.65'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 9px center;
  color-scheme: dark;
}
#auditSearch {
  width: 8rem;
  padding: 0 12px;
  -webkit-search-cancel-button: none;
}
#auditSearch::placeholder {
  color: var(--ap-text-secondary);
  font-weight: 500;
}

/* Modal shared utilities (au-load-pill, au-modal-inner, au-curve-*, au-legend-*,
   au-chart-wrap, au-modal-loading) moved to assets/station_profile.css */

/* impact modal chart */
.au-impact-chart-wrap {
  height: 175px;
  position: relative;
}

@media (min-width: 640px) {
  .au-impact-chart-wrap { height: 320px; }
}

.au-chart-hint {
  margin-top: 0.75rem;
  font-size: 10px;
  color: var(--ap-text-secondary);
  letter-spacing: 0.04em;
  text-align: center;
}

/* ── Support modal status message (audit_support_modal.js) ── */

.au-status--neutral { color: var(--ap-text-secondary); }
.au-status--error   { color: rgba(var(--ap-red-rgb),0.9); }
.au-status--ok      { color: rgba(var(--ap-green-rgb),0.9); }
.au-status--warn    { color: rgba(var(--ap-accent-rgb),0.9); }


/* ═══════════════════════════════════════════════════════════
   BROADCAST IDENTITY BAR (shared pattern with track.php)
═══════════════════════════════════════════════════════════ */

.au-topbar {
  background: var(--ap-navy-950);
  border-color: rgba(var(--ap-white-rgb),0.07);
}

.au-broadcast-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
  padding: 0 4px;
  margin-bottom: 10px;
}
.tp-broadcast-left {
  display: flex;
  align-items: center;
  gap: 7px;
}
.tp-broadcast-right {
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
  color: var(--ap-text-secondary);
  letter-spacing: 0.04em;
  white-space: nowrap;
  /* overflow must stay visible: the gear dropdown menu hangs below this bar */
  overflow: visible;
  min-width: 19ch;
  text-align: right;
  transition: opacity 500ms ease;
}

.tp-broadcast-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--ap-red-brand);
  flex-shrink: 0;
  box-shadow: 0 0 0 0 rgba(var(--ap-red-brand-rgb),0.4);
  animation: tp-broadcast-pulse 2.4s ease-in-out infinite;
}
@keyframes tp-broadcast-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(var(--ap-red-brand-rgb),0.55); }
  65%  { box-shadow: 0 0 0 6px rgba(var(--ap-red-brand-rgb),0); }
  100% { box-shadow: 0 0 0 0 rgba(var(--ap-red-brand-rgb),0); }
}
@media (prefers-reduced-motion: reduce) {
  .tp-broadcast-dot { animation: none; }
}
.tp-broadcast-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(var(--ap-red-brand-rgb),0.82);
}
.tp-broadcast-sep {
  font-size: 11px;
  color: rgba(var(--ap-white-rgb),0.14);
}
.tp-broadcast-station {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--ap-text-secondary);
}
@media (max-width: 639px) {
  .tp-broadcast-station .tp-bc-city { display: none; }
}
.tp-broadcast-return {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  cursor: pointer;
  font-family: inherit;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  line-height: 1;
  color: var(--ap-text-secondary);
  transition: color 0.15s ease;
}
.tp-broadcast-return:hover {
  color: rgba(var(--ap-red-brand-rgb),0.80);
}

#auditOptsResetBtn:not(.is-muted),
#auditOptsApplyBtn:not(.is-muted),
#auditColsApply:not(.is-muted),
#auditColsReset:not(.is-muted) {
  color: var(--ap-white);
}

/* Theme: compact selects follow the active theme's form-control rendering */
html.light select.audit-compact-select {
  color-scheme: light;
}

/* Library Scan low-catalog notice: shown under the table when the station has
   few (0-9) tracks meeting the selected play minimum. JS-driven visibility
   (assets/audit/audit_table_core.js). Hidden by the [hidden] attribute in all
   other views and once the scan holds 10+ scorable tracks. */
.au-libscan-notice {
  margin: 28px auto 40px;
  max-width: 520px;
  padding: 22px 24px;
  text-align: center;
  border: 1px solid rgba(var(--ap-white-rgb), .08);
  border-radius: 8px;
  background: rgba(var(--ap-white-rgb), .03);
}
.au-libscan-notice[hidden] { display: none; }
.au-libscan-notice-title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ap-text-primary);
  margin-bottom: 8px;
}
.au-libscan-notice-body {
  font-size: 12px;
  line-height: 1.6;
  color: var(--ap-text-secondary);
}

/* Library Scan CLEAR confirmation (built in assets/audit/audit_lib_exclude.js).
   Centered card over a dimmed backdrop; shown only for larger clears (>= 10
   marks). Sits above the audit modal layer (z 9997). */
.au-confirm-overlay {
  position: fixed;
  inset: 0;
  z-index: 9998;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.au-confirm-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(var(--ap-black-rgb), .55);
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
}
.au-confirm-card {
  position: relative;
  width: min(400px, calc(100vw - 40px));
  border: 1px solid rgba(var(--ap-white-rgb), .10);
  border-radius: 14px;
  background: rgba(var(--ap-navy-950-rgb), .98);
  box-shadow: 0 24px 60px rgba(var(--ap-black-rgb), .7), 0 0 0 1px rgba(var(--ap-white-rgb), .03);
  padding: 22px 22px 18px;
  text-align: center;
}
.au-confirm-title {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ap-text-primary);
  margin-bottom: 10px;
}
.au-confirm-body {
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--ap-text-secondary);
  margin-bottom: 20px;
}
.au-confirm-body strong { color: var(--ap-text-primary); font-weight: 700; }
.au-confirm-actions {
  display: flex;
  justify-content: center;
  gap: 10px;
}
