.plu{font-family:inherit;color:inherit;--plu-primary:#301934;--plu-accent:#FFD973}
.plu *{box-sizing:border-box}
.plu img{max-width:100%;height:auto}

/* Shared */
.plu .plu-btn{appearance:none;border:1px solid rgba(0,0,0,.14);background:#fff;color:inherit;border-radius:12px;padding:8px 10px;font-weight:800;font-size:12px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}
.plu .plu-btn:hover{transform:translateY(-1px);box-shadow:0 10px 18px rgba(0,0,0,.10);border-color:rgba(0,0,0,.22)}

.plu .plu-logo{width:34px;height:34px;border-radius:10px;object-fit:cover;border:1px solid rgba(0,0,0,.10);background:#fff}

/* On-air card */
.plu[data-plu="onair"]{border:1px solid rgba(0,0,0,.10);border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.07)}
.plu .plu-top{padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:radial-gradient(900px 200px at 15% 0%, color-mix(in srgb, var(--plu-primary) 18%, transparent), transparent 60%),linear-gradient(180deg, rgba(0,0,0,.04), transparent);border-bottom:1px solid rgba(0,0,0,.08)}
.plu .plu-brand{display:flex;align-items:center;gap:10px;min-width:0}
.plu .plu-btxt{min-width:0}
.plu .plu-title{font-weight:950;font-size:14px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plu .plu-sub{font-size:12px;opacity:.78;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plu .plu-meta{text-align:right;flex:0 0 auto}
.plu .plu-time{font-weight:900;font-size:13px;white-space:nowrap}
.plu .plu-day{font-size:12px;opacity:.75;margin-top:2px;white-space:nowrap}

.plu .plu-pulse{width:12px;height:12px;border-radius:999px;background:var(--plu-primary);box-shadow:0 0 0 0 color-mix(in srgb, var(--plu-primary) 55%, transparent);animation:pluPulse 1.35s infinite;flex:0 0 auto}
@keyframes pluPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--plu-primary) 55%, transparent);transform:scale(1)}65%{box-shadow:0 0 0 12px color-mix(in srgb, var(--plu-primary) 0%, transparent);transform:scale(1.06)}100%{box-shadow:0 0 0 0 transparent;transform:scale(1)}}

.plu .plu-now{padding:14px 16px 14px}
.plu .plu-chiprow{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.plu .plu-chip{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:color-mix(in srgb, var(--plu-primary) 12%, transparent);color:color-mix(in srgb, var(--plu-primary) 85%, #000);font-weight:950;font-size:12px;letter-spacing:.35px;text-transform:uppercase}
.plu .plu-dot{width:8px;height:8px;border-radius:999px;background:var(--plu-primary)}

.plu .plu-h{margin:0 0 4px;font-weight:950;font-size:16px;line-height:1.25}
.plu .plu-range{font-weight:900;font-size:12px;opacity:.78;margin-bottom:8px}
.plu .plu-desc{margin:0;font-size:13px;line-height:1.5;opacity:.9;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.plu .plu-progress{margin-top:10px;height:10px;border-radius:999px;background:rgba(0,0,0,.08);overflow:hidden}
.plu .plu-progress i{display:block;height:100%;width:0%;background:linear-gradient(90deg,var(--plu-primary),var(--plu-accent));border-radius:999px;transition:width .6s ease}

.plu .plu-next{margin-top:10px;padding:10px 12px;border-radius:14px;background:rgba(0,0,0,.035);border:1px solid rgba(0,0,0,.06)}
.plu .plu-next b{display:block;font-size:12px;opacity:.75;letter-spacing:.3px;text-transform:uppercase;margin-bottom:4px}
.plu .plu-next .nx{font-weight:950;font-size:13px;line-height:1.35}

/* Lineup */
.plu .plu-shell{border:1px solid rgba(0,0,0,.10);border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 12px 30px rgba(0,0,0,.07)}
.plu .plu-lineup-head{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:radial-gradient(900px 200px at 15% 0%, color-mix(in srgb, var(--plu-primary) 16%, transparent), transparent 60%),linear-gradient(180deg, rgba(0,0,0,.03), transparent);border-bottom:1px solid rgba(0,0,0,.08)}
.plu .plu-headleft{display:flex;align-items:center;gap:10px;min-width:0}
.plu .plu-lineup-title{font-weight:950;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plu .plu-small{font-size:12px;opacity:.78;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.plu .plu-scroll{overflow:auto;padding:0 8px 10px 8px;scroll-behavior:smooth}
.plu .plu-daygroup{margin:10px 8px 0;border:1px solid rgba(0,0,0,.08);border-radius:14px;overflow:hidden;background:#fff}
.plu .plu-daylabel{padding:10px 12px;font-weight:950;font-size:12px;letter-spacing:.3px;text-transform:uppercase;background:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.08)}
.plu .plu-list{list-style:none;padding:0;margin:0}
.plu .plu-item{display:flex;gap:10px;padding:11px 12px;border-top:1px solid rgba(0,0,0,.06);cursor:pointer;transition:background .12s ease;position:relative}
.plu .plu-item:first-child{border-top:0}
.plu .plu-item:hover{background:rgba(0,0,0,.025)}
.plu .plu-item .t{font-weight:950;font-size:12px;white-space:nowrap;opacity:.86;min-width:96px}
.plu .plu-item .m{min-width:0;flex:1 1 auto}
.plu .plu-item .n{font-weight:950;font-size:13px;line-height:1.2;margin:0 0 4px}
.plu .plu-item .d{font-size:12px;opacity:.78;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.plu .plu-item .b{flex:0 0 auto;align-self:center;font-size:11px;font-weight:950;padding:6px 9px;border-radius:999px;border:1px solid rgba(0,0,0,.12);background:#fff;opacity:.88}

.plu .plu-item.is-now{background:color-mix(in srgb, var(--plu-primary) 10%, transparent);border-top-color:color-mix(in srgb, var(--plu-primary) 16%, transparent)}
.plu .plu-item.is-now::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--plu-primary)}
.plu .plu-item.is-now .b{border-color:color-mix(in srgb, var(--plu-primary) 35%, transparent);background:color-mix(in srgb, var(--plu-primary) 10%, transparent);color:color-mix(in srgb, var(--plu-primary) 85%, #000)}

/* Modal */
.plu .plu-modal{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:999999;padding:18px}
.plu .plu-modal[aria-hidden="false"]{display:flex}
.plu .plu-modal-card{width:min(760px,100%);background:#fff;color:#111;border-radius:18px;box-shadow:0 28px 80px rgba(0,0,0,.35);overflow:hidden;border:1px solid rgba(255,255,255,.18)}
.plu .plu-modal-head{padding:14px 16px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;background:radial-gradient(900px 200px at 15% 0%, color-mix(in srgb, var(--plu-primary) 18%, transparent), transparent 60%);border-bottom:1px solid rgba(0,0,0,.08)}
.plu .plu-modal-head h3{margin:0;font-size:16px;font-weight:950;line-height:1.25}
.plu .plu-modal-head p{margin:6px 0 0;font-size:12px;opacity:.8;font-weight:900}
.plu .plu-close{border:1px solid rgba(0,0,0,.14);background:#fff;border-radius:12px;padding:8px 10px;cursor:pointer;font-weight:950;font-size:12px}
.plu .plu-modal-body{padding:14px 16px 16px;font-size:13px;line-height:1.55;opacity:.92;max-height:60vh;overflow:auto}
.plu .plu-modal-img{width:100%;max-height:320px;object-fit:cover;border-radius:14px;border:1px solid rgba(0,0,0,.10);margin-bottom:12px;display:none}

@media (max-width:520px){
  .plu .plu-item{align-items:flex-start}
  .plu .plu-item .t{min-width:88px}
}
