.playlist-bubbles{position:fixed;z-index:61;width:min(320px,calc(100vw - 24px));max-height:min(390px,60vh);padding:16px;overflow:auto;border:1px solid rgba(255,255,255,.9);border-radius:32px 32px 12px 32px;background:rgba(255,255,255,.92);box-shadow:0 20px 54px rgba(23,59,59,.2);backdrop-filter:blur(18px);opacity:0;pointer-events:none;transform:translateY(16px) scale(.82);transform-origin:bottom right;transition:transform 500ms var(--ease),opacity 300ms var(--ease)}
.playlist-bubbles:after{content:"";position:sticky;display:block;width:18px;height:18px;margin:6px 2px -8px auto;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:20px 16px 0 -5px rgba(255,255,255,.85)}
.playlist-bubbles.is-open{opacity:1;pointer-events:auto;transform:none}
.bubble-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.bubble-head strong{font-size:16px}.bubble-head button{min-width:52px;min-height:36px;border:0;border-radius:999px;background:var(--bg);color:var(--ink);cursor:pointer}
.playlist-list{display:grid;gap:8px}.playlist-list button{width:100%;min-height:52px;display:grid;grid-template-columns:36px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:8px;border:0;border-radius:16px;background:transparent;color:var(--ink);text-align:left;cursor:pointer;transition:background-color 300ms var(--ease),transform 300ms var(--ease)}
.playlist-list button:hover{background:var(--bg);transform:translateX(2px)}.playlist-list button.is-active{background:var(--ink);color:#fff}.playlist-list button img{grid-row:1/3;width:36px;height:36px;border-radius:50%;object-fit:cover}.playlist-list button strong,.playlist-list button small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playlist-list button strong{font-size:13px}.playlist-list button small{font-size:11px;color:var(--muted)}.playlist-list button.is-active small{color:#c9ddda}
.music-panel{display:none}.music-orb.is-playing img{animation:none!important;transform:scale(calc(1 + var(--beat,0) * .1)) rotate(calc(var(--beat,0) * -6deg));transition:transform 80ms linear}
.music-orb .track-avatar{position:absolute;z-index:2;top:2px;right:4px;width:30px;height:30px;border:3px solid #fff;border-radius:50%;object-fit:cover;box-shadow:0 5px 14px rgba(23,59,59,.24)}.music-orb.is-playing .track-avatar{transform:none!important}.music-orb .equalizer{right:4px;bottom:0}
@media(prefers-reduced-motion:reduce){.playlist-bubbles{transition:opacity 300ms var(--ease)}.music-orb.is-playing img{transform:none}}
