/* ============================================================
   CUSTOMER CONSOLE · FM Radio page (Signal Xpress FM)
   ============================================================ */

/* ---- hero: album art + now playing + controls ---- */
.fm-hero{
  display:grid;grid-template-columns:236px minmax(0,1fr);gap:24px;padding:24px;
  border-radius:20px;border:1px solid var(--border);margin-bottom:16px;position:relative;overflow:hidden;
  background:linear-gradient(150deg,rgba(240,180,41,.13),transparent 48%),var(--panel);
}
.fm-art{
  position:relative;aspect-ratio:1/1;border-radius:16px;overflow:hidden;
  background:linear-gradient(140deg,#27354f,#101827);
  box-shadow:0 24px 60px rgba(0,0,0,.45);display:grid;place-items:center;
}
.fm-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .45s;z-index:1}
.fm-art img.on{opacity:1}
.fm-art .fm-ph{color:rgba(240,180,41,.45);display:grid;place-items:center}
.fm-art .fm-ph svg{width:64px;height:64px}
.fm-onair{
  position:absolute;top:11px;left:11px;z-index:3;display:inline-flex;align-items:center;gap:6px;
  font-size:9.5px;font-weight:800;letter-spacing:.13em;color:#fff;
  background:rgba(225,29,72,.9);backdrop-filter:blur(6px);padding:5px 10px;border-radius:20px;
}
.fm-onair i{width:6px;height:6px;border-radius:50%;background:#fff;animation:plBlink 1.6s infinite}
.fm-eq{
  position:absolute;left:0;right:0;bottom:0;height:46px;z-index:2;
  display:flex;align-items:flex-end;justify-content:center;gap:4px;padding-bottom:12px;
  background:linear-gradient(transparent,rgba(2,6,12,.62));opacity:0;transition:opacity .3s;
}
.fm-hero.playing .fm-eq{opacity:1}
.fm-eq i{
  width:4px;height:14px;border-radius:3px;background:var(--gold);transform-origin:bottom;
  animation:eq .9s ease-in-out infinite;animation-play-state:paused;
}
.fm-hero.playing .fm-eq i{animation-play-state:running}
.fm-eq i:nth-child(2){animation-delay:.14s;height:21px}
.fm-eq i:nth-child(3){animation-delay:.28s;height:11px}
.fm-eq i:nth-child(4){animation-delay:.42s;height:25px}
.fm-eq i:nth-child(5){animation-delay:.56s;height:15px}
@keyframes eq{0%,100%{transform:scaleY(.3)}50%{transform:scaleY(1)}}

.fm-info{min-width:0;display:flex;flex-direction:column;gap:7px}
.fm-st{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:11.5px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.fm-st span{font-weight:600;letter-spacing:0;text-transform:none;color:var(--dim);font-size:12px}
.fm-track{font-size:25px;font-weight:800;letter-spacing:-.6px;line-height:1.18;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fm-artist{font-size:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fm-pills{display:flex;gap:7px;flex-wrap:wrap}
.fm-pill{font-size:10.5px;font-weight:700;padding:3.5px 10px;border-radius:14px;background:var(--bg-2);border:1px solid var(--border);color:var(--muted)}
.fm-pill.gold{background:rgba(240,180,41,.12);border-color:rgba(240,180,41,.4);color:var(--gold)}
.fm-prog{margin-top:8px;max-width:560px}
.fm-prog .bar{height:7px;border-radius:7px;background:var(--bg-2);border:1px solid var(--border);overflow:hidden}
.fm-prog .bar i{display:block;height:100%;border-radius:7px;background:linear-gradient(90deg,var(--gold),#de911d);transition:width .9s linear}
.fm-prog .tm{display:flex;justify-content:space-between;font-size:11px;color:var(--dim);margin-top:5px;font-variant-numeric:tabular-nums}
.fm-acts{display:flex;align-items:center;gap:11px;flex-wrap:wrap;margin-top:auto;padding-top:12px}
.fm-acts .btn svg,.fm-acts .icon-btn svg{width:15px;height:15px;flex:none}
.fm-acts .fi{display:inline-flex}
.fm-hero .pl-vol input[type=range]{width:120px}

/* ---- KPI strip ---- */
.fm-kpis .cu-kpi .k-val{font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ---- recently played ---- */
.fm-hist{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:5px 8px}
.fm-hrow{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:13px;align-items:center;padding:10px 11px;border-radius:12px;transition:.14s}
.fm-hrow:hover{background:var(--hover)}
.fm-hrow+.fm-hrow{border-top:1px solid var(--border)}
.fm-hart{position:relative;width:44px;height:44px;border-radius:11px;overflow:hidden;background:linear-gradient(140deg,#27354f,#101827);display:grid;place-items:center}
.fm-hart .ph{color:var(--gold);opacity:.5;display:grid;place-items:center}
.fm-hart .ph svg{width:17px;height:17px}
.fm-hart img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.fm-hmeta{min-width:0}
.fm-hmeta b{display:block;font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fm-hmeta span{display:block;font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.fm-hright{display:flex;flex-direction:column;gap:4px;align-items:flex-end;text-align:right}
.fm-hright b{font-size:11.5px;font-weight:700;color:var(--dim);white-space:nowrap}
.fm-hright em{
  font-style:normal;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--gold);
  background:rgba(240,180,41,.12);border:1px solid rgba(240,180,41,.35);padding:1.5px 7px;border-radius:10px;
}

/* ---- listen-on platforms (admin-managed links) ---- */
.fm-plats{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:11px;margin-bottom:16px}
.fm-plat{
  display:flex;align-items:center;gap:12px;padding:12px 13px;text-decoration:none;color:inherit;
  background:var(--panel);border:1px solid var(--border);border-radius:14px;transition:.15s;min-width:0;
}
.fm-plat:hover{transform:translateY(-2px);border-color:rgba(240,180,41,.5);box-shadow:0 10px 26px rgba(0,0,0,.16)}
.fp-logo{position:relative;width:40px;height:40px;flex:none;border-radius:10px;overflow:hidden;background:#fff;border:1px solid var(--border);display:grid;place-items:center}
.fp-logo span{font-size:12.5px;font-weight:800;color:#64748b}
.fp-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:5px}
.fp-meta{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}
.fp-meta b{font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fp-meta span{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fp-go{width:16px;height:16px;flex:none;color:var(--dim);transition:.15s}
.fm-plat:hover .fp-go{color:var(--gold);transform:translate(2px,-2px)}

/* ---- responsive ---- */
@media(max-width:900px){
  .fm-hero{grid-template-columns:1fr;gap:17px;padding:17px}
  .fm-art{width:100%;max-width:300px;margin:0 auto}
  .fm-track{font-size:21px}
}
@media(max-width:560px){
  .fm-track{font-size:18.5px}
  .fm-acts{gap:8px}
  .fm-acts .btn{padding:8px 13px}
  .fm-hrow{grid-template-columns:40px minmax(0,1fr);row-gap:2px}
  .fm-hart{width:40px;height:40px}
  .fm-hright{grid-column:2;flex-direction:row;gap:9px;align-items:center;justify-content:flex-start}
}

/* ---- light theme ---- */
html[data-theme="light"] .fm-art{background:linear-gradient(140deg,#dde6f4,#c8d3e5);box-shadow:0 16px 38px rgba(15,23,42,.18)}
html[data-theme="light"] .fm-art .fm-ph{color:rgba(183,121,31,.7)}
html[data-theme="light"] .fm-art img{z-index:2}
html[data-theme="light"] .fm-eq{background:linear-gradient(transparent,rgba(15,23,42,.4))}
html[data-theme="light"] .fm-hart{background:linear-gradient(140deg,#dde6f4,#c8d3e5)}
html[data-theme="light"] .fm-hart .ph{color:#b7791f}
html[data-theme="light"] .fm-pill{background:#f3f5f9;border-color:#e4e8ef;color:#6b7280}
html[data-theme="light"] .fm-pill.gold{background:rgba(240,180,41,.14);border-color:rgba(183,121,31,.4);color:#b7791f}
