/* Ninja Media Music Playlists page — isolated styles. */
.playlists-page,.playlist-detail{padding-bottom:56px}
.playlists-heading{position:relative;display:inline-block;padding-bottom:10px;margin-bottom:20px}
.playlists-heading h1{margin:0;font-size:clamp(32px,4vw,48px);line-height:1}
.playlists-heading:after{content:"";position:absolute;left:0;bottom:0;width:130%;height:3px;border-radius:99px;background:linear-gradient(90deg,#84f528,rgba(132,245,40,.08))}
.playlists-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:24px}
.playlists-toolbar button,.playlist-detail-actions button,.playlist-back{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border:1px solid #64717a;border-radius:7px;background:rgba(6,12,16,.82);color:#eef5f7;font-weight:800;cursor:pointer}
.playlists-toolbar button img,.playlist-detail-actions button img,.playlist-back img{width:18px;height:18px;filter:brightness(0) saturate(100%) invert(86%) sepia(66%) saturate(1125%) hue-rotate(37deg) brightness(105%)}
.playlists-toolbar button.primary,.playlist-detail-actions button.primary{border-color:#84f528;color:#84f528}
.playlist-detail-actions button.danger{border-color:#b74b4b;color:#ff6b6b}.playlist-detail-actions button.danger img{filter:brightness(0) saturate(100%) invert(48%) sepia(91%) saturate(1698%) hue-rotate(326deg) brightness(105%)}
.playlists-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px 20px}
.playlist-card{min-width:0;padding:0;border:0;background:none;color:#fff;text-align:left;cursor:pointer}
.playlist-card-art{position:relative;display:grid;place-items:center;aspect-ratio:1;border:1px solid #34434c;border-radius:10px;background:linear-gradient(145deg,rgba(20,39,46,.96),rgba(5,9,13,.98)) center/cover no-repeat;box-shadow:0 12px 28px #0009;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;overflow:hidden}
.playlist-card-art:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 45%,rgba(132,245,40,.1))}
.playlist-card-art img{width:54px;height:54px;opacity:.84;filter:brightness(0) saturate(100%) invert(86%) sepia(66%) saturate(1125%) hue-rotate(37deg) brightness(105%)}
.playlist-card:hover .playlist-card-art,.playlist-card:focus-visible .playlist-card-art{transform:translateY(-3px);border-color:#84f528;box-shadow:0 0 0 1px rgba(132,245,40,.25),0 16px 32px #000}
.playlist-card strong,.playlist-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-card strong{margin-top:10px;font-size:17px}.playlist-card small{margin-top:4px;color:#93a9b7;font-size:12px}
.playlists-empty{min-height:360px;border:1px solid rgba(132,245,40,.28);border-radius:10px;background:rgba(3,9,12,.54);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px}.playlists-empty.compact{min-height:240px;margin-top:24px}
.playlists-empty img{width:58px;height:58px;margin-bottom:14px;filter:brightness(0) saturate(100%) invert(86%) sepia(66%) saturate(1125%) hue-rotate(37deg) brightness(105%)}.playlists-empty h2{margin:0 0 8px}.playlists-empty p{margin:0;color:#93a9b7}
.playlist-back{margin-bottom:22px;padding:0 13px}
.playlist-detail-header{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:end;margin-bottom:28px}
.playlist-detail-cover{display:grid;place-items:center;aspect-ratio:1;border:1px solid #34434c;border-radius:10px;background:linear-gradient(145deg,#152a31,#070d11) center/cover no-repeat;box-shadow:0 14px 34px #000a;overflow:hidden}.playlist-detail-cover img{width:72px;height:72px;filter:brightness(0) saturate(100%) invert(86%) sepia(66%) saturate(1125%) hue-rotate(37deg) brightness(105%)}
.playlist-detail-copy>small{color:#84f528;font-weight:900;letter-spacing:.18em}.playlist-detail-copy h1{margin:6px 0 8px;font-size:clamp(36px,5vw,66px);line-height:.95}.playlist-detail-copy p{margin:0;color:#a8bac4}
.playlist-detail-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.playlist-track-list{border-top:1px solid rgba(132,245,40,.32)}
.playlist-track-row{display:grid;grid-template-columns:34px 34px minmax(0,1fr) 76px 34px 34px 34px;gap:8px;align-items:center;min-height:62px;border-bottom:1px solid rgba(128,151,162,.2)}
.playlist-track-number{color:#78909c;text-align:center}.playlist-track-copy{min-width:0}.playlist-track-copy strong,.playlist-track-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-track-copy small{margin-top:3px;color:#8197a4}.playlist-track-duration{color:#a9bac3;text-align:right;font-variant-numeric:tabular-nums}
.playlist-track-play,.playlist-order-button,.playlist-remove-track{width:30px;height:30px;padding:6px;border:0;background:transparent;cursor:pointer}.playlist-track-play img,.playlist-order-button img,.playlist-remove-track img{width:100%;height:100%;object-fit:contain}.playlist-track-play img,.playlist-order-button img{filter:brightness(0) saturate(100%) invert(86%) sepia(66%) saturate(1125%) hue-rotate(37deg) brightness(105%)}.playlist-remove-track img{filter:brightness(0) saturate(100%) invert(48%) sepia(91%) saturate(1698%) hue-rotate(326deg) brightness(105%)}
@media(max-width:1200px){.playlists-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:850px){.playlists-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.playlist-detail-header{grid-template-columns:160px minmax(0,1fr)}.playlist-track-row{grid-template-columns:28px 30px minmax(0,1fr) 58px 30px 30px 30px}}
@media(max-width:560px){.playlists-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}.playlist-detail-header{grid-template-columns:1fr;align-items:start}.playlist-detail-cover{width:min(220px,70vw)}.playlist-track-row{grid-template-columns:26px 28px minmax(0,1fr) 48px 28px}.playlist-order-button{display:none}}

.playlist-add-dialog-backdrop{position:fixed;inset:0;z-index:1600;display:grid;place-items:center;padding:24px;background:rgba(0,0,0,.76);backdrop-filter:blur(5px)}.playlist-add-dialog{position:relative;width:min(460px,94vw);max-height:min(680px,88vh);overflow:auto;border:1px solid rgba(132,245,40,.62);border-radius:12px;padding:30px;background:linear-gradient(145deg,rgba(7,17,20,.98),rgba(2,7,10,.98));box-shadow:0 0 0 1px rgba(132,245,40,.12),0 24px 70px #000,0 0 34px rgba(132,245,40,.14);text-align:center}.playlist-add-close{position:absolute;top:10px;right:12px;width:34px;height:34px;border:0;background:transparent;color:#9fb0b8;font-size:28px;line-height:1;cursor:pointer}.playlist-add-star{width:54px;height:54px;object-fit:contain;filter:brightness(0) saturate(100%) invert(86%) sepia(91%) saturate(1266%) hue-rotate(339deg) brightness(105%) drop-shadow(0 0 9px rgba(255,216,61,.48))}.playlist-add-dialog>p{margin:10px 0 5px;color:#ffd83d;font-size:11px;font-weight:900;letter-spacing:.22em}.playlist-add-dialog h2{margin:0 0 22px;font-size:24px;line-height:1.2}.playlist-add-choices{display:grid;gap:8px;max-height:300px;overflow:auto;text-align:left}.playlist-add-choice{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(124,147,158,.28);border-radius:8px;background:rgba(255,255,255,.025);cursor:pointer}.playlist-add-choice:hover,.playlist-add-choice:has(input:checked){border-color:#ffd83d;background:rgba(255,216,61,.07)}.playlist-add-choice input{accent-color:#ffd83d}.playlist-add-choice span,.playlist-add-choice strong,.playlist-add-choice small{display:block}.playlist-add-choice span{min-width:0}.playlist-add-choice strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-add-choice small{margin-top:3px;color:#8ea1ab}.playlist-add-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.playlist-add-actions button{min-height:42px;padding:0 16px;border:1px solid #596b74;border-radius:7px;background:#071015;color:#e9f2f5;font-weight:800;cursor:pointer}.playlist-add-actions button.primary{border-color:#ffd83d;color:#ffd83d}.playlist-add-actions button:disabled{opacity:.72;cursor:default}.playlist-add-empty{padding:22px;border:1px solid rgba(255,216,61,.25);border-radius:8px;color:#aebdc5;background:rgba(255,216,61,.04)}
