/* ============================================================
   ADMIN · RADIO
   Split from css/app.css — screen-specific styles.
   ============================================================ */

.radio-art{width:96px;height:96px;border-radius:14px;object-fit:cover;border:1px solid var(--border-2);background:var(--bg-2);flex:none;box-shadow:0 8px 22px rgba(0,0,0,.35)}
[data-theme="light"] .radio-art{box-shadow:0 8px 22px rgba(16,32,64,.18)}
.radio-meta{flex:1;min-width:0}
.radio-meta b{font-size:17px;font-weight:800;letter-spacing:-.4px;display:block}
.radio-meta .ra-sub{font-size:12.5px;color:var(--muted);margin-top:3px}
.radio-meta .ra-text{font-size:11.5px;color:var(--dim);margin-top:6px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.radio-bar{height:7px;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;overflow:hidden;margin-top:11px}
.radio-bar i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--gold),#de911d);transition:width .9s linear}
.radio-times{display:flex;justify-content:space-between;font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--dim);margin-top:5px}
.radio-next{display:flex;gap:13px;align-items:center;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:13px}
.radio-next img{width:58px;height:58px;border-radius:11px;object-fit:cover;flex:none;border:1px solid var(--border-2);background:var(--panel)}
.hist-art{width:34px;height:34px;border-radius:8px;object-fit:cover;display:grid;place-items:center;background:var(--bg-2);border:1px solid var(--border);color:var(--muted);font-size:13px;font-weight:700}
#radioAudio{display:none}

/* ---- album art (placeholder + fade-in img) ---- */
.radio-art-wrap{position:relative;width:96px;height:96px;flex:none;border-radius:14px;box-shadow:0 8px 22px rgba(0,0,0,.35)}
[data-theme="light"] .radio-art-wrap{box-shadow:0 8px 22px rgba(16,32,64,.18)}
.radio-art-wrap.sm{width:58px;height:58px;box-shadow:none}
.radio-art-wrap .radio-art{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .35s}
.art-ph{position:absolute;inset:0;display:grid;place-items:center;border-radius:14px;background:linear-gradient(135deg,rgba(240,180,41,.28),rgba(139,92,246,.20));border:1px solid var(--border-2);font-size:32px;font-weight:800;color:var(--gold)}
.radio-art-wrap.sm .art-ph{border-radius:11px;font-size:20px}
.hist-art{position:relative;overflow:hidden}
.hist-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hist-art>span{position:absolute;inset:0;display:grid;place-items:center}

/* ---- signal board (kanban) ---- */
.sig-board{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;align-items:start}
.rp-list{display:flex;flex-direction:column;gap:8px}
.rp-row{
  display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1.3fr) auto;gap:13px;align-items:center;
  padding:9px 11px;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;transition:.14s;
}
.rp-row:hover{border-color:var(--border-2)}
.rp-logo{position:relative;width:44px;height:44px;border-radius:10px;overflow:hidden;background:#fff;border:1px solid var(--border);display:grid;place-items:center}
.rp-logo span{font-size:12px;font-weight:800;color:#64748b}
.rp-logo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:6px}
.rp-meta{min-width:0;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.rp-meta b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.rp-url{font-size:11.5px;color:#60a5fa;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.rp-url:hover{text-decoration:underline}
.rp-acts{display:flex;gap:7px;justify-content:flex-end}
@media(max-width:1100px){
  .rp-add{grid-template-columns:1fr 1fr}
  .rp-row{grid-template-columns:44px minmax(0,1fr) auto}
  .rp-url{display:none}
}
@media(max-width:640px){ .rp-add{grid-template-columns:1fr} }