:root{color-scheme:dark;font-family:Circular,Helvetica Neue,Helvetica,Arial,sans-serif;--bg: #121212;--bg-elevated: #1a1a1a;--bg-card: #181818;--bg-card-hover: #242424;--bg-highlight: #282828;--bg-selected: #333333;--bg-tinted: rgba(255, 255, 255, .07);--surface-light: #fff;--text: #ffffff;--text-subdued: #a7a7a7;--text-bright: #ffffff;--text-on-light: #000;--text-muted-on-light: #6a6a6a;--accent: #1db954;--accent-hover: #1ed760;--accent-dim: rgba(29, 185, 84, .15);--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .18);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .5);--shadow-md: 0 8px 24px rgba(0, 0, 0, .5);--shadow-lg: 0 16px 56px rgba(0, 0, 0, .7);--sidebar-w: 240px;--player-h: 90px;--tab-bar-h: 64px;--topbar-h: 64px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 500px;--bg-sidebar: #000;--on-accent: #000;--danger: #e53935;--text-danger: #f15e6c;--danger-dim: rgba(229, 57, 53, .15);--danger-border: rgba(229, 57, 53, .4);--bg-hover: rgba(255, 255, 255, .08);--visual-purple-deep: #5b21b6;--visual-purple: #7c3aed;--visual-purple-bright: #7c4dff;--visual-blue: #758cff;--visual-mint: #9be7cf;--visual-mint-soft: #c4efd9;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--sp-xs: 4px;--sp-sm: 8px;--sp-md: 16px;--sp-lg: 24px;--sp-xl: 32px;--sp-2xl: 48px;--fs-hero: clamp(2rem, 5vw, 5rem);--fs-section: 1.25rem;--fs-track: .9375rem;--fs-body: .875rem;--fs-subdued: .8125rem;--fs-label: .75rem;--fw-regular: 400;--fw-bold: 700;--fw-black: 900;--dur-fast: 80ms;--dur-base: .15s;--dur-slow: .28s;--ease-out: cubic-bezier(.2, .8, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--z-content: 1;--z-sticky: 10;--z-topbar: 50;--z-tabbar: 60;--z-player: 70;--z-overlay: 140;--z-modal: 200;--z-toast: 300}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;background:var(--bg);color:var(--text);min-height:100%;height:100%}body{min-height:100vh;overflow:hidden;scrollbar-gutter:auto}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea,select{font:inherit}button,input,textarea,select,a{outline:none}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{box-shadow:0 0 0 2px var(--accent);border-radius:2px}p{margin:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text) 20%,transparent);border-radius:6px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--text) 35%,transparent);border:3px solid transparent;background-clip:padding-box}body{background:var(--bg-sidebar)}@media(max-width:768px){*::-webkit-scrollbar{width:0;height:0;display:none}}input[type=range]{height:5px}input[type=range]::-webkit-slider-thumb{width:14px;height:14px}input[type=range]::-moz-range-thumb{width:14px;height:14px}.app-shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);grid-template-rows:1fr;height:100vh;padding-bottom:calc(var(--player-h) + var(--safe-bottom))}.sidebar{grid-row:1;position:relative;display:flex;flex-direction:column;gap:0;height:calc(100vh - var(--player-h));background:var(--bg-sidebar);overflow-y:auto;overflow-x:hidden}.sidebar-top{padding:24px 12px 8px;display:flex;flex-direction:column;gap:2px}.brand{display:flex;align-items:center;gap:10px;padding:8px 12px;margin-bottom:8px;text-decoration:none;color:var(--text)}.brand-logo{width:32px;height:32px;flex-shrink:0}.brand-logo svg{width:32px;height:32px;fill:var(--accent)}.brand-name{font-size:1.1rem;font-weight:700;letter-spacing:-.01em;white-space:nowrap}.nav-item{display:flex;align-items:center;gap:16px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--text-subdued);font-size:.875rem;font-weight:700;transition:color 80ms ease;cursor:pointer;text-decoration:none;white-space:nowrap}.nav-item:hover,.nav-item.active{color:var(--text)}.nav-item svg{flex-shrink:0;width:24px;height:24px}.sidebar-library{flex:1;display:flex;flex-direction:column;background:var(--bg-card);border-radius:var(--radius-lg);margin:8px;overflow:hidden;min-height:0}.sidebar-library-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 8px;flex-shrink:0}.sidebar-library-title{display:flex;align-items:center;gap:12px;color:var(--text-subdued);font-size:.875rem;font-weight:700;transition:color 80ms;cursor:pointer}.sidebar-library-title:hover{color:var(--text)}.sidebar-library-title svg{width:24px;height:24px}.library-actions{display:flex;align-items:center;gap:4px}.icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:50%;color:var(--text-subdued);cursor:pointer;transition:color 80ms,background 80ms}.icon-btn:hover{color:var(--text);background:var(--bg-tinted)}.icon-btn svg{width:18px;height:18px}.settings-home-btn,.mobile-home-settings-btn{line-height:0;padding:0}.settings-home-btn svg,.mobile-home-settings-btn svg{display:block;width:18px;height:18px}.library-list{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 8px 8px}.library-item{display:flex;align-items:center;gap:12px;padding:8px;border-radius:var(--radius-sm);color:var(--text-subdued);font-size:.875rem;font-weight:400;transition:background 80ms,color 80ms;text-decoration:none;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.library-item:hover{background:var(--bg-tinted);color:var(--text)}.library-item.active{color:var(--text)}.library-item-art{width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--bg-highlight);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--text-subdued)}.library-item-art img{width:100%;height:100%;object-fit:cover}.library-item-meta{min-width:0}.library-item-name{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.875rem;font-weight:400;color:var(--text)}.library-item-sub{display:block;font-size:.75rem;color:var(--text-subdued)}.sidebar-create-form{padding:0 8px 8px}.sidebar-create-form input{width:100%;background:var(--bg-highlight);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:8px 12px;font-size:.875rem;margin-bottom:8px}.sidebar-create-form input::placeholder{color:var(--text-subdued)}.playlist-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:220;background:color-mix(in srgb,var(--bg-sidebar) 68%,transparent);display:flex;align-items:center;justify-content:center;padding:24px}.playlist-modal-panel{width:min(540px,100%);max-height:min(80vh,720px);border-radius:16px;border:1px solid var(--border);background:linear-gradient(180deg,var(--bg-card-hover) 0%,color-mix(in srgb,var(--bg) 70%,var(--bg-card)) 100%);box-shadow:0 24px 48px color-mix(in srgb,var(--bg-sidebar) 50%,transparent);display:flex;flex-direction:column;overflow:hidden}.playlist-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border)}.playlist-modal-header h2{margin:0;font-size:1.0625rem;font-weight:700}.playlist-modal-body{display:flex;flex-direction:column;gap:12px;padding:16px 18px;min-height:0;overflow-y:auto}.playlist-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px 16px;border-top:1px solid var(--border)}.playlist-modal-field{display:flex;flex-direction:column;gap:8px;font-size:.8125rem;color:var(--text-subdued)}.playlist-modal-field input,.playlist-modal-search{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--border);background:color-mix(in srgb,var(--text) 4%,transparent);color:var(--text);font-size:.875rem}.playlist-modal-field input::placeholder,.playlist-modal-search::placeholder{color:var(--text-subdued)}.playlist-modal-context{margin:0;color:var(--text-subdued);font-size:.8125rem;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.playlist-modal-context .title-with-explicit{vertical-align:bottom;max-width:70%}.playlist-modal-list{display:flex;flex-direction:column;gap:8px}.playlist-modal-option{border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--text) 3%,transparent);color:var(--text);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;cursor:pointer;text-align:left}.playlist-modal-option:hover{border-color:var(--border-strong);background:color-mix(in srgb,var(--text) 6%,transparent)}.playlist-modal-option-meta{display:flex;flex-direction:column;min-width:0;gap:3px}.playlist-modal-option-meta strong,.playlist-modal-option-meta small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.playlist-modal-option-meta strong{font-size:.875rem;font-weight:600}.playlist-modal-option-meta small{color:var(--text-subdued);font-size:.75rem}.playlist-modal-create-inline{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;border:1px solid var(--border);background:color-mix(in srgb,var(--text) 2%,transparent)}.playlist-modal-inline-actions{display:flex;justify-content:flex-end;gap:10px}.playlist-modal-create-btn{width:fit-content;display:inline-flex;align-items:center;gap:8px}.playlist-modal-muted{margin:0;color:var(--text-subdued);font-size:.8125rem}.playlist-modal-error{margin:0;color:color-mix(in srgb,var(--danger) 45%,var(--text));font-size:.8125rem}.ai-playlist-panel{width:min(640px,100%);max-height:min(86vh,820px)}.ai-playlist-title{display:flex;align-items:center;gap:8px}.ai-playlist-title svg{color:var(--accent);flex-shrink:0}.ai-playlist-prompt{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--border);background:color-mix(in srgb,var(--text) 4%,transparent);color:var(--text);font-size:.875rem;font-family:inherit;resize:vertical;min-height:90px}.ai-playlist-prompt::placeholder{color:var(--text-subdued)}.ai-playlist-prompt:focus{outline:none;border-color:var(--accent)}.ai-playlist-examples{display:flex;flex-direction:column;gap:6px}.ai-playlist-examples-label{font-size:.75rem;display:block;margin-bottom:2px}.ai-playlist-example-chip{background:color-mix(in srgb,var(--text) 5%,transparent);border:1px solid var(--border);border-radius:8px;color:var(--text-subdued);font-size:.75rem;padding:7px 10px;text-align:left;cursor:pointer;transition:background .15s,color .15s;line-height:1.4}.ai-playlist-example-chip:hover{background:color-mix(in srgb,var(--text) 9%,transparent);color:var(--text)}.ai-playlist-status{display:flex;align-items:center;gap:8px;margin:0;color:var(--accent);font-size:.875rem;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.ai-playlist-preview-header{display:flex;flex-direction:column;gap:8px}.ai-playlist-description{margin:0;font-size:.8125rem;color:var(--text-subdued);line-height:1.5}.ai-playlist-track-count{font-size:.75rem;margin:0}.ai-playlist-track-list{display:flex;flex-direction:column;gap:2px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.ai-playlist-track-row{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:8px 12px;background:color-mix(in srgb,var(--text) 2%,transparent);border-bottom:1px solid color-mix(in srgb,var(--text) 4%,transparent);min-width:0}.ai-playlist-track-row:last-child{border-bottom:none}.ai-playlist-track-index{color:var(--text-subdued);font-size:.75rem;text-align:right;flex-shrink:0}.ai-playlist-track-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.ai-playlist-track-title{font-size:.875rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-playlist-track-artist{font-size:.75rem;color:var(--text-subdued);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-playlist-track-reason{font-size:.6875rem;color:var(--text-subdued);opacity:.7;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.ai-playlist-generate-btn,.ai-playlist-save-btn{display:flex;align-items:center;gap:6px}.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border);flex-shrink:0}.logout-btn{display:flex;align-items:center;gap:12px;width:100%;background:transparent;border:none;color:var(--text-subdued);font-size:.875rem;font-weight:700;cursor:pointer;padding:8px 0;transition:color 80ms}.logout-btn:hover{color:var(--text)}.main-column{grid-row:1;display:flex;flex-direction:column;height:calc(100vh - var(--player-h));overflow:hidden;background:var(--bg-elevated);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;background:transparent;flex-shrink:0;pointer-events:none}.topbar>*{pointer-events:all}.topbar-left,.topbar-right{display:flex;align-items:center;gap:8px}.cast-launcher{--connected-color: var(--accent);--disconnected-color: var(--text-subdued);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--text-subdued);cursor:pointer;transition:color 80ms,background 80ms}.cast-launcher:hover,.cast-launcher:focus-visible{color:var(--text);background:var(--bg-tinted);outline:none}.cast-launcher-compact{width:28px;height:28px}.output-chip,.ghost-chip{display:inline-flex;align-items:center;justify-content:center;min-height:32px;border-radius:999px;padding:0 12px;font-size:.75rem;font-weight:700;white-space:nowrap}.output-chip{background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text-subdued)}.output-chip.active{background:color-mix(in srgb,var(--accent) 18%,transparent);color:color-mix(in srgb,var(--text) 85%,var(--accent))}.ghost-chip{border:1px solid color-mix(in srgb,var(--text) 16%,transparent);background:transparent;color:var(--text);cursor:pointer;gap:6px}.ghost-chip.active{border-color:color-mix(in srgb,var(--accent) 38%,transparent);background:color-mix(in srgb,var(--accent) 16%,transparent);color:color-mix(in srgb,var(--text) 85%,var(--accent))}.nav-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:color-mix(in srgb,var(--bg-sidebar) 70%,transparent);border:none;border-radius:50%;color:var(--text);cursor:pointer;transition:background 80ms}.nav-btn:hover{background:color-mix(in srgb,var(--bg-sidebar) 90%,transparent)}.nav-btn svg{width:16px;height:16px}.content{flex:1;overflow-y:auto;overflow-x:hidden;padding:0}.content-inner{padding:0 24px 32px}.app-shell{gap:8px;grid-template-columns:clamp(250px,22vw,312px) minmax(0,1fr);padding:8px 8px calc(var(--player-h) + 8px);background:var(--bg-sidebar)}.sidebar{gap:8px;height:calc(100vh - var(--player-h) - 16px);background:transparent}.sidebar-top,.sidebar-library{background:var(--bg);border:1px solid color-mix(in srgb,var(--text) 4%,transparent)}.sidebar-top{border-radius:16px;padding:20px 12px 12px}.sidebar-library{border-radius:16px;margin:0}.main-column{position:relative;height:calc(100vh - var(--player-h) - 16px);border-radius:16px;background:linear-gradient(180deg,color-mix(in srgb,var(--text) 5%,transparent),color-mix(in srgb,var(--bg) 0%,transparent) 180px),var(--bg)}.app-shell.player-chrome-hidden{padding-bottom:8px}.app-shell.player-chrome-hidden .sidebar,.app-shell.player-chrome-hidden .main-column{height:calc(100vh - 16px)}.main-column:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 1px color-mix(in srgb,var(--text) 5%,transparent)}.topbar{padding:16px 24px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 92%,transparent) 0%,color-mix(in srgb,var(--bg) 48%,transparent) 72%,transparent 100%);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.profile-chip{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:50%;background:color-mix(in srgb,var(--text) 12%,transparent);color:var(--text);font-size:.8125rem;font-weight:800;cursor:pointer}@media(max-width:768px){.app-shell{grid-template-columns:1fr;gap:0;padding:0 0 136px}.main-column{height:calc(100vh - 136px);border-radius:0}.topbar{display:none}.topbar.search-route{display:flex;padding:14px 16px 8px;background:var(--bg)}.topbar.search-route .topbar-left,.topbar.search-route .topbar-right{display:none}.app-shell.player-chrome-hidden{padding-bottom:calc(var(--tab-bar-h) + var(--safe-bottom))}.app-shell.player-chrome-hidden .main-column{height:calc(100vh - var(--tab-bar-h) - var(--safe-bottom))}}.brand{gap:12px;padding:10px 14px;border-radius:12px;transition:background .18s ease,transform .18s ease}.brand:hover{background:color-mix(in srgb,var(--text) 6%,transparent);transform:translateY(-1px)}.brand-logo{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 18%,transparent)}.brand-logo svg{width:100%;height:100%;fill:none}.brand-name{font-size:1rem;letter-spacing:-.03em}.sidebar-top,.sidebar-library{background:linear-gradient(180deg,color-mix(in srgb,var(--text) 3%,transparent),color-mix(in srgb,var(--text) 1.5%,transparent)),var(--bg);box-shadow:inset 0 1px color-mix(in srgb,var(--text) 4%,transparent),0 20px 40px color-mix(in srgb,var(--bg-sidebar) 18%,transparent)}.sidebar-top{padding:20px 14px 14px}.sidebar-library-header{padding:20px 20px 12px}.library-list{padding:0 12px 12px}.nav-item,.library-item{min-height:48px;border-radius:12px;transition:background .18s ease,color .18s ease,transform .18s ease}.nav-item:hover,.library-item:hover{background:color-mix(in srgb,var(--text) 7%,transparent);transform:translate(2px)}.nav-item.active,.library-item.active{background:color-mix(in srgb,var(--text) 9%,transparent);box-shadow:inset 0 1px color-mix(in srgb,var(--text) 4%,transparent)}.library-item-art{border-radius:10px;box-shadow:0 10px 24px color-mix(in srgb,var(--bg-sidebar) 16%,transparent)}.liked-library-art{color:var(--text);background:radial-gradient(circle at top left,color-mix(in srgb,var(--text) 34%,transparent),transparent 34%),linear-gradient(135deg,var(--visual-purple-deep) 0%,var(--visual-blue) 48%,var(--visual-mint-soft) 100%)}.topbar{padding:20px 24px 18px}.topbar-right{gap:12px}.profile-chip{width:36px;height:36px;background:radial-gradient(circle at top left,color-mix(in srgb,var(--text) 18%,transparent),transparent 45%),color-mix(in srgb,var(--text) 12%,transparent);box-shadow:inset 0 1px color-mix(in srgb,var(--text) 8%,transparent)}@media(max-width:768px){.topbar-utility-group,.topbar-action-group{padding:0;border:none;background:transparent}}.hero-subtitle-note{margin-top:var(--sp-md)}.hero-bio{max-width:760px;margin-top:var(--sp-md)}.artist-tag-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-xs);margin-top:var(--sp-md)}.artist-tag{display:inline-flex;align-items:center;min-height:28px;padding:4px 10px;border:1px solid color-mix(in srgb,var(--text) 14%,transparent);border-radius:999px;background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text-primary);font-size:.82rem;line-height:1.2}.editorial-mosaic{display:grid;grid-template-columns:1fr 1fr;width:100%;height:100%;gap:0}.editorial-mosaic img{width:100%;height:100%;object-fit:cover;display:block}.cover-card-link{text-decoration:none;color:inherit}.shelf-action-row{display:flex;align-items:center;gap:var(--sp-sm);margin-top:var(--sp-md)}.shelf-action-row .primary-button{width:fit-content;margin-top:0}.shelf-status-message{margin-top:var(--sp-sm)}.library-header-actions{display:flex;gap:var(--sp-xs)}.unhide-pill{font-size:var(--fs-label);width:auto;padding:0 var(--sp-sm);border-radius:var(--radius-pill);border:1px solid var(--border-strong)}.update-prompt{position:fixed;right:calc(var(--sp-lg) + var(--safe-right));bottom:calc(var(--player-h) + var(--safe-bottom) + var(--sp-md));z-index:var(--z-toast);display:flex;align-items:center;gap:var(--sp-md);max-width:360px;padding:var(--sp-md) var(--sp-lg);border-radius:var(--radius-lg);border:1px solid var(--border-strong);background:var(--bg-highlight);box-shadow:var(--shadow-md);color:var(--text);animation:update-prompt-in var(--dur-base) var(--ease-out)}.update-prompt-text{display:flex;flex-direction:column;gap:2px;min-width:0}.update-prompt-text strong{font-size:var(--fs-body);font-weight:var(--fw-bold)}.update-prompt-text span{font-size:var(--fs-subdued);color:var(--text-subdued)}.update-prompt-action{flex-shrink:0;padding:var(--sp-sm) var(--sp-md);border-radius:var(--radius-pill);border:none;background:var(--accent);color:var(--on-accent);font-size:var(--fs-subdued);font-weight:var(--fw-bold);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.update-prompt-action:hover:not(:disabled){background:var(--accent-hover);transform:scale(1.04)}.update-prompt-action:disabled{opacity:.6;cursor:default}@keyframes update-prompt-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.update-prompt{left:calc(var(--sp-sm) + var(--safe-left));right:calc(var(--sp-sm) + var(--safe-right));bottom:calc(var(--tab-bar-h) + var(--safe-bottom) + 80px);max-width:none}}@media(prefers-reduced-motion:reduce){.update-prompt{animation:none}.update-prompt-action{transition:none}.update-prompt-action:hover:not(:disabled){transform:none}}.player-bar{position:fixed;left:0;right:0;bottom:0;height:calc(var(--player-h) + var(--safe-bottom));padding:0 calc(16px + var(--safe-right)) var(--safe-bottom) calc(16px + var(--safe-left));display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);align-items:center;gap:8px;background:var(--bg-card);border-top:1px solid var(--border);z-index:100}.player-now{display:flex;align-items:center;gap:12px;min-width:0}.now-artwork{width:56px;height:56px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--bg-highlight);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--text-subdued)}.now-artwork img{width:100%;height:100%;object-fit:cover}.now-meta{min-width:0;display:flex;flex-direction:column;gap:2px}.now-title-line,.mini-player-title-line{display:inline-flex;align-items:center;gap:var(--sp-xs);max-width:100%;min-width:0}.now-title-line .now-title,.mini-player-title-line .mini-player-title{min-width:0}.now-title{font-size:.875rem;font-weight:400;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.now-title.marquee,.mini-player-title.marquee,.player-overlay-title.marquee{text-overflow:clip}.now-title.marquee>span,.mini-player-title.marquee>span,.player-overlay-title.marquee>span{display:inline-block;min-width:max-content;white-space:nowrap;padding-right:2.2rem;animation:playerTitleMarquee 12s linear infinite;will-change:transform}.mini-player-title.marquee>span{animation-duration:11s}.player-overlay-title.marquee>span{animation-duration:14s}.now-artist{font-size:.75rem;color:var(--text-subdued);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;text-decoration:none}.now-output{display:block;margin-top:3px;font-size:.6875rem;color:color-mix(in srgb,var(--text) 70%,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-heart{flex-shrink:0;margin-left:8px}.player-center{display:flex;flex-direction:column;align-items:center;gap:6px}.transport-row{display:flex;align-items:center;gap:8px}.transport-btn{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-subdued);cursor:pointer;border-radius:50%;width:40px;height:40px;transition:color 80ms,transform 80ms}.transport-btn:hover{color:var(--text);transform:scale(1.06)}.transport-btn.active{color:var(--accent)}.transport-btn svg{width:18px;height:18px}.play-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--text);border:none;border-radius:50%;color:var(--bg-sidebar);cursor:pointer;transition:background 80ms,transform 80ms}.play-btn:hover{background:var(--text);transform:scale(1.06)}.play-btn svg{width:20px;height:20px}.progress-row{display:flex;align-items:center;gap:8px;width:100%;max-width:480px}.progress-time{font-size:.688rem;color:var(--text-subdued);font-variant-numeric:tabular-nums;width:2.5rem;text-align:center;flex-shrink:0}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;background:var(--bg-selected);border-radius:var(--radius-pill);cursor:pointer;padding:0;border:none;flex:1}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent);border:2px solid var(--text);margin-top:-4px;cursor:pointer;opacity:1;box-shadow:0 0 0 1px color-mix(in srgb,var(--bg-sidebar) 22%,transparent)}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:var(--radius-pill);background:transparent}input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--text);opacity:1;box-shadow:0 0 0 1px color-mix(in srgb,var(--bg-sidebar) 22%,transparent)}input[type=range]::-moz-range-track{height:4px;border-radius:var(--radius-pill);background:transparent}.seek-slider{flex:1;accent-color:var(--accent)}.player-right{display:flex;align-items:center;gap:8px;justify-content:flex-end}.player-status-banner{position:fixed;left:50%;bottom:calc(var(--player-h) + 18px);transform:translate(-50%);max-width:min(520px,calc(100vw - 32px));padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--danger) 92%,transparent);color:var(--text);font-size:.8125rem;font-weight:600;z-index:125;box-shadow:var(--shadow-md)}.player-status-banner-info{display:inline-flex;align-items:center;gap:10px;background:color-mix(in srgb,color-mix(in srgb,var(--bg) 72%,var(--text-subdued)) 94%,transparent);border:1px solid color-mix(in srgb,var(--text) 12%,transparent);color:color-mix(in srgb,var(--text) 90%,var(--bg-highlight))}.artist-status-banner{bottom:auto;top:24px}.android-update-banner{position:fixed;left:50%;bottom:calc(var(--player-h) + 18px);z-index:130;display:flex;align-items:center;gap:16px;width:min(560px,calc(100vw - 32px));padding:12px 14px 12px 16px;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--bg-elevated);box-shadow:var(--shadow-lg);color:var(--text);transform:translate(-50%)}.android-update-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}.android-update-copy strong,.android-update-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.android-update-copy strong{font-size:.875rem;font-weight:800}.android-update-copy span{color:var(--text-subdued);font-size:.8125rem}.android-update-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.android-update-dismiss{width:36px;height:36px;flex-shrink:0}.ghost-chip:disabled,.android-update-dismiss:disabled{cursor:default;opacity:.4;transform:none}@media(max-width:640px){.android-update-banner{align-items:stretch;flex-direction:column;gap:10px;bottom:calc(var(--tab-bar-h) + 92px)}.android-update-actions{justify-content:space-between}.android-update-actions .ghost-chip{flex:1}}.queue-panel{position:fixed;inset:8px 8px calc(var(--player-h) + 8px) auto;width:min(300px,calc(100vw - 16px));transform:translate(calc(100% + 16px));transition:transform .2s cubic-bezier(.3,0,0,1);display:flex;flex-direction:column;gap:0;background:var(--bg-highlight);border-radius:var(--radius-lg);overflow:hidden;z-index:50;box-shadow:var(--shadow-lg)}.queue-panel.open{transform:translate(0)}.queue-panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 8px;flex-shrink:0}.queue-panel-header h2{font-size:1rem;font-weight:700;margin:0;color:var(--text)}.queue-items{flex:1;overflow-y:auto;padding:0 8px 8px;display:flex;flex-direction:column;gap:4px;max-height:calc(80vh - 60px)}.queue-item{display:flex;align-items:center;gap:10px;padding:8px;border-radius:var(--radius-sm);background:transparent;transition:background 80ms}.queue-item:hover,.queue-item.current{background:var(--bg-tinted)}.queue-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;background:transparent;border:none;padding:0;cursor:pointer;text-align:left;color:inherit}.queue-item-main strong{font-size:.875rem;font-weight:400;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.queue-item-main span{font-size:.75rem;color:var(--text-subdued);display:block}.queue-item.current .queue-item-main strong{color:var(--accent)}.queue-item-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.player-bar{left:8px;right:8px;bottom:8px;border:1px solid color-mix(in srgb,var(--text) 6%,transparent);border-radius:16px;background:color-mix(in srgb,var(--bg-card) 98%,transparent)}.player-bar.has-track{box-shadow:0 20px 42px color-mix(in srgb,var(--bg-sidebar) 35%,transparent)}.player-bar.dj-announcement-active{border-color:color-mix(in srgb,var(--accent) 22%,transparent);background:radial-gradient(circle at top left,color-mix(in srgb,var(--accent) 18%,transparent),transparent 36%),linear-gradient(135deg,color-mix(in srgb,var(--bg) 98%,transparent),color-mix(in srgb,color-mix(in srgb,var(--bg) 83%,var(--accent)) 98%,transparent))}.player-now-trigger{display:block;min-width:0;padding:0;border:none;background:transparent;color:inherit;text-align:left}.player-now-trigger.is-expandable{cursor:pointer}.player-now-trigger:disabled{cursor:default}.player-bar.dj-announcement-active .now-artwork svg{animation:djPulse 1.6s ease-in-out infinite}.queue-panel{top:16px;right:16px;bottom:calc(var(--player-h) + 16px);width:min(340px,calc(100vw - 32px));border:1px solid color-mix(in srgb,var(--text) 8%,transparent);background:color-mix(in srgb,var(--bg) 97%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}@media(max-width:768px){.player-status-banner{bottom:148px}.queue-panel{top:auto;right:0;left:0;bottom:0;width:100%;transform:translateY(100%);border-radius:18px 18px 0 0}.queue-panel.open{transform:translateY(0)}}.topbar-utility-group,.topbar-action-group,.player-right-group{display:inline-flex;align-items:center;gap:8px;padding:4px;border-radius:999px;border:1px solid color-mix(in srgb,var(--text) 8%,transparent);background:color-mix(in srgb,var(--bg-sidebar) 24%,transparent)}.queue-toggle-btn.active,.queue-toggle-btn.active:hover{color:var(--accent);background:var(--accent-dim)}.player-bar{gap:16px;padding:0 20px;border-radius:18px;border-color:color-mix(in srgb,var(--text) 8%,transparent);background:radial-gradient(circle at top left,color-mix(in srgb,var(--text) 5%,transparent),transparent 24%),linear-gradient(180deg,color-mix(in srgb,color-mix(in srgb,var(--bg-card) 50%,var(--bg-highlight)) 98%,transparent),color-mix(in srgb,var(--bg) 98%,transparent))}.player-bar.has-track{box-shadow:0 24px 48px color-mix(in srgb,var(--bg-sidebar) 38%,transparent)}.player-now-trigger{border-radius:16px;transition:background .18s ease,transform .18s ease}.player-now-trigger.is-expandable:hover{background:color-mix(in srgb,var(--text) 5%,transparent);transform:translateY(-1px)}.player-now{gap:14px}.now-artwork{width:60px;height:60px;border-radius:12px;box-shadow:0 14px 28px color-mix(in srgb,var(--bg-sidebar) 28%,transparent)}.now-meta{gap:4px}.now-title{font-weight:600;letter-spacing:-.01em}.now-artist{font-size:.8125rem}.now-output{margin-top:0;color:color-mix(in srgb,var(--text) 58%,transparent);letter-spacing:.08em;text-transform:uppercase}.player-center{gap:10px}.transport-row{gap:10px;padding:4px 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--text) 8%,transparent);background:color-mix(in srgb,var(--text) 3%,transparent)}.transport-btn{transition:color .18s ease,background .18s ease,transform .18s ease}.transport-btn:hover{background:color-mix(in srgb,var(--text) 8%,transparent);transform:translateY(-1px)}.play-btn{width:52px;height:52px;box-shadow:0 16px 28px color-mix(in srgb,var(--bg-sidebar) 24%,transparent);transition:background .18s ease,transform .18s ease,box-shadow .18s ease}.play-btn:hover{box-shadow:0 20px 32px color-mix(in srgb,var(--bg-sidebar) 28%,transparent);transform:scale(1.03)}.progress-row{gap:10px;max-width:540px}.progress-time{color:color-mix(in srgb,var(--text) 56%,transparent);font-size:.71875rem}.player-right{gap:10px;flex-wrap:wrap}.output-chip,.ghost-chip{min-height:36px;padding:0 14px}.ghost-chip{transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}.ghost-chip:hover{background:color-mix(in srgb,var(--text) 8%,transparent);transform:translateY(-1px)}.ghost-chip.active{box-shadow:inset 0 1px color-mix(in srgb,var(--text) 10%,transparent)}.player-action-chip{background:color-mix(in srgb,var(--text) 3%,transparent)}.player-utility-btn{border:1px solid color-mix(in srgb,var(--text) 8%,transparent);background:color-mix(in srgb,var(--text) 3%,transparent)}.player-utility-btn.active{color:var(--accent);background:var(--accent-dim);border-color:color-mix(in srgb,var(--accent) 26%,transparent)}.queue-panel{width:min(360px,calc(100vw - 32px));border-radius:24px;background:linear-gradient(180deg,color-mix(in srgb,var(--text) 4%,transparent),color-mix(in srgb,var(--text) 2%,transparent)),color-mix(in srgb,var(--bg) 98%,transparent);box-shadow:0 28px 60px color-mix(in srgb,var(--bg-sidebar) 42%,transparent)}.queue-panel-header{padding:20px 20px 12px;border-bottom:1px solid color-mix(in srgb,var(--text) 6%,transparent)}.queue-items{padding:12px;gap:8px}.queue-item{padding:12px;border:1px solid transparent;border-radius:16px;transition:background .18s ease,border-color .18s ease,transform .18s ease}.queue-item:hover{background:color-mix(in srgb,var(--text) 6%,transparent);border-color:color-mix(in srgb,var(--text) 8%,transparent);transform:translateY(-1px)}.queue-item.current{background:color-mix(in srgb,var(--accent) 10%,transparent);border-color:color-mix(in srgb,var(--accent) 22%,transparent)}.queue-item-main strong{font-weight:600}.queue-empty-state{padding:24px 16px;align-items:flex-start}@media(max-width:768px){.queue-panel{border-radius:24px 24px 0 0}.transport-btn{width:44px;height:44px}.mini-player.tappable{cursor:pointer}.mini-player.tappable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}}.page-hero{background:linear-gradient(to bottom,color-mix(in srgb,var(--bg-highlight) 50%,var(--text-subdued)) 0%,var(--bg-elevated) 100%);padding:80px 24px 24px;display:flex;align-items:flex-end;gap:24px}.page-hero.artist-hero{background:linear-gradient(to bottom,color-mix(in srgb,var(--bg-highlight) 32%,var(--text-subdued)) 0%,var(--bg-elevated) 100%);flex-direction:column;align-items:flex-start}.hero-art{width:232px;height:232px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--bg-highlight);overflow:hidden;box-shadow:0 4px 60px color-mix(in srgb,var(--bg-sidebar) 50%,transparent);display:flex;align-items:center;justify-content:center;color:var(--text-subdued)}.artist-hero .hero-art{border-radius:50%;width:192px;height:192px}.hero-art img{width:100%;height:100%;object-fit:cover}.hero-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.hero-type{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text)}.hero-title{font-size:clamp(2rem,5vw,5rem);font-weight:900;line-height:1;letter-spacing:-.04em;color:var(--text);margin:0;word-break:break-word}.hero-subtitle{font-size:.875rem;color:var(--text-subdued);display:flex;align-items:center;flex-wrap:wrap;gap:4px}.hero-subtitle strong{color:var(--text)}.hero-actions{display:flex;align-items:center;gap:16px;padding:20px 24px;flex-shrink:0;flex-wrap:wrap}.play-hero-btn{display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--accent);border:none;border-radius:50%;color:var(--on-accent);cursor:pointer;transition:background 80ms,transform 80ms;flex-shrink:0}.play-hero-btn:hover{background:var(--accent-hover);transform:scale(1.04)}.play-hero-btn svg{width:24px;height:24px;margin-left:2px}.save-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;color:var(--text-subdued);cursor:pointer;border-radius:50%;transition:color 80ms,transform 80ms}.save-btn:hover{color:var(--text);transform:scale(1.06)}.save-btn.saved{color:var(--text)}.save-btn:disabled{opacity:.6;cursor:default;transform:none}.save-btn svg{width:24px;height:24px}.ghost-action{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--text);padding:8px 16px;font-size:.875rem;font-weight:700;cursor:pointer;transition:border-color 80ms,color 80ms}.ghost-action:hover{border-color:var(--text)}.track-table-header{display:grid;grid-template-columns:[num] 40px [art] 40px [info] minmax(0,1fr) [dur] 64px [actions] 40px;gap:8px;align-items:center;padding:4px 16px 8px;border-bottom:1px solid var(--border);color:var(--text-subdued);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.track-table-header.with-album{grid-template-columns:[num] 40px [art] 40px [info] minmax(0,1fr) [album] minmax(0,1fr) [dur] 64px [actions] 40px}.track-table-header-title{grid-column:info}.track-table-header-album{grid-column:album}.track-table{display:flex;flex-direction:column}.track-row{display:grid;grid-template-columns:[num] 40px [art] 40px [info] minmax(0,1fr) [dur] 64px [actions] 40px;gap:8px;align-items:center;padding:4px 16px;border-radius:var(--radius-sm);height:56px;cursor:default;transition:background 80ms}.track-row.with-album{grid-template-columns:[num] 40px [art] 40px [info] minmax(0,1fr) [album] minmax(0,1fr) [dur] 64px [actions] 40px}.track-row:hover{background:var(--bg-tinted)}.track-num{font-size:.875rem;color:var(--text-subdued);font-variant-numeric:tabular-nums;text-align:right;display:flex;align-items:center;justify-content:flex-end}.track-row.playing .track-num{color:var(--accent)}.track-row-art{width:40px;height:40px;border-radius:var(--radius-sm);background:var(--bg-highlight);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-subdued)}.track-row-art img{width:100%;height:100%;object-fit:cover}.track-row-info{min-width:0;display:flex;flex-direction:column;gap:2px}.track-row-title{font-size:.9375rem;font-weight:400;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:transparent;border:none;padding:0;cursor:pointer;text-align:left;display:inline-flex;align-items:center;gap:var(--sp-xs);max-width:100%;min-width:0}.track-row.playing .track-row-title{color:var(--accent)}.track-row-title:hover{text-decoration:none}.track-row-title:hover .title-with-explicit-text{text-decoration:underline}.title-with-explicit{display:inline-flex;align-items:center;gap:var(--sp-xs);max-width:100%;min-width:0}.title-with-explicit-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.explicit-badge{width:16px;height:16px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--text-subdued);color:var(--bg);font-size:.625rem;font-weight:700;line-height:1;letter-spacing:0;text-decoration:none}.track-row-artist{font-size:.8125rem;color:var(--text-subdued);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.track-row-album{display:none;font-size:.8125rem;color:var(--text-subdued);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-row.with-album .track-row-album{display:block}.track-row-duration{font-size:.8125rem;color:var(--text-subdued);font-variant-numeric:tabular-nums;text-align:right}.track-row-actions{display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity 80ms}.playlist-track-actions-mobile{display:none}.playlist-track-actions-desktop{opacity:1;gap:4px}.danger-action{color:var(--danger);border-color:var(--danger-border)}.danger-action:hover{border-color:var(--danger)}.track-row:hover .track-row-actions,.track-row-actions .icon-btn[style*=accent]{opacity:1}.track-row-more-wrap{position:relative}.track-row-more-btn{opacity:1}.track-row-more-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:15;min-width:176px;display:flex;flex-direction:column;border-radius:10px;border:1px solid var(--border);background:var(--bg-highlight);box-shadow:0 12px 28px color-mix(in srgb,var(--bg-sidebar) 45%,transparent);overflow:hidden}.track-row-more-menu.align-left{right:auto;left:0}.track-row-more-menu button{width:100%;border:none;background:transparent;color:var(--text);text-align:left;padding:10px 12px;font-size:.8125rem;cursor:pointer}.track-row-more-menu button:hover{background:var(--bg-hover)}.track-table-feedback{margin-top:10px;color:var(--text-subdued);font-size:.8125rem}.cover-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px}.cover-card{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--radius-md);background:var(--bg-card);cursor:pointer;transition:background 80ms ease;text-decoration:none;color:inherit;position:relative}.cover-card:hover{background:var(--bg-card-hover)}.cover-art-wrap{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-highlight);box-shadow:var(--shadow-md)}.cover-art-wrap img{width:100%;height:100%;object-fit:cover;display:block}.cover-art-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-subdued)}.cover-art-fallback svg{width:48px;height:48px}.card-play-overlay{position:absolute;bottom:8px;right:8px;width:48px;height:48px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--on-accent);box-shadow:0 14px 28px color-mix(in srgb,var(--bg-sidebar) 28%,transparent);opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s;border:none;cursor:pointer}.card-play-overlay svg{width:20px;height:20px;margin-left:2px}.cover-card:hover .card-play-overlay{opacity:1;transform:translateY(0)}.cover-card:focus-within .card-play-overlay{opacity:1;transform:translateY(0)}.cover-card-title{display:block;text-align:left;font-size:.875rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cover-card-title.title-with-explicit{display:inline-flex}.cover-card-sub{display:block;text-align:left;font-size:.8125rem;color:var(--text-subdued);-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.unstyled-link{color:inherit;text-decoration:none}.hero-art-circle{border-radius:50%}.playlist-rule-loading{font-size:.875rem}.list-grid{display:flex;flex-direction:column;gap:4px}.simple-list-item{display:flex;align-items:center;gap:16px;padding:8px;border-radius:var(--radius-sm);transition:background 80ms;text-decoration:none;color:inherit;cursor:pointer}.simple-list-item:hover{background:var(--bg-tinted)}.simple-list-item-art{width:48px;height:48px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--bg-highlight);overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--text-subdued)}.simple-list-item-art.circle{border-radius:50%}.simple-list-item-art img{width:100%;height:100%;object-fit:cover}.simple-list-item-meta{flex:1;min-width:0}.simple-list-item-name{font-size:.9375rem;font-weight:400;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.simple-list-item-name.title-with-explicit{display:inline-flex;max-width:100%}.simple-list-item-sub{font-size:.8125rem;color:var(--text-subdued);display:block}.library-playlist-list{gap:6px}.library-playlist-item{border:1px solid transparent;border-radius:var(--radius-sm);padding:10px}.library-playlist-art{width:56px;height:56px}.library-playlist-button{width:100%;border:none;background:transparent;text-align:left}.library-playlist-button.active{border-color:color-mix(in srgb,var(--accent) 34%,transparent);background:radial-gradient(circle at top left,color-mix(in srgb,var(--accent) 16%,transparent),transparent 42%),color-mix(in srgb,var(--text) 2%,transparent)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-header-right{display:flex;align-items:center;gap:12px}.section-title{font-size:1.375rem;font-weight:700;color:var(--text);margin:0}.section-link{font-size:.875rem;font-weight:700;color:var(--text-subdued);text-decoration:none;transition:color 80ms}.section-link:hover{color:var(--text);text-decoration:underline}.page-sections{padding:0 24px 32px;display:flex;flex-direction:column;gap:32px}.page-section{display:flex;flex-direction:column;gap:0}.panel{background:var(--bg-highlight);border-radius:var(--radius-md);padding:16px}.empty-state{display:flex;flex-direction:column;gap:var(--sp-sm);padding:var(--sp-2xl) var(--sp-lg);text-align:center;color:var(--text-subdued);align-items:center;max-width:420px;margin:0 auto}.empty-state-icon{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;margin-bottom:var(--sp-sm);border-radius:var(--radius-pill);background:var(--bg-tinted);color:var(--text-subdued)}.empty-state strong{font-size:var(--fs-section);font-weight:var(--fw-bold);color:var(--text)}.empty-state p{font-size:var(--fs-body);max-width:24rem;line-height:1.5}.empty-state-action{margin-top:var(--sp-md)}.error-state{color:var(--text-danger)}.loading-inline{display:inline-flex;align-items:center;gap:var(--sp-sm);padding:var(--sp-sm) 0;color:var(--text-subdued);font-size:var(--fs-subdued)}.loading-inline-dot{width:8px;height:8px;border-radius:var(--radius-pill);background:var(--text-subdued);opacity:.5;animation:loading-inline-pulse 1.2s ease-in-out infinite}@keyframes loading-inline-pulse{0%,to{opacity:.3;transform:scale(.85)}50%{opacity:.9;transform:scale(1)}}.loading-page{display:flex;flex-direction:column;gap:var(--sp-xl);padding:var(--sp-xl)}.loading-page-hero{display:flex;align-items:flex-end;gap:var(--sp-lg)}.loading-page-hero-text{display:flex;flex-direction:column;gap:var(--sp-sm);flex:1;min-width:0}.skeleton-hero-art{width:192px;height:192px;border-radius:var(--radius-md);flex-shrink:0}.skeleton-hero-eyebrow{height:12px;width:64px}.skeleton-hero-title{height:36px;width:60%}.skeleton-hero-sub{height:14px;width:40%}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-lg)}.skeleton-card{display:flex;flex-direction:column;gap:var(--sp-sm)}.skeleton-card-art{width:100%;aspect-ratio:1 / 1;border-radius:var(--radius-md)}.skeleton-card-title{height:14px;width:80%}.skeleton-card-sub{height:12px;width:55%}.skeleton-row{display:flex;align-items:center;gap:var(--sp-md);padding:var(--sp-sm) 0}.skeleton-row-art{width:40px;height:40px;border-radius:var(--radius-sm);flex-shrink:0}.skeleton-row-meta{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.skeleton-row-title{height:12px;width:60%}.skeleton-row-sub{height:10px;width:40%}.skeleton-text-stack{display:flex;flex-direction:column;gap:6px}.skeleton{display:block;background:linear-gradient(90deg,var(--bg-tinted) 0%,color-mix(in srgb,var(--text) 12%,transparent) 50%,var(--bg-tinted) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s linear infinite;border-radius:var(--radius-sm)}.skeleton-text{height:12px;border-radius:var(--radius-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}.loading-inline-dot{animation:none;opacity:.6}}@media(max-width:768px){.loading-page{padding:var(--sp-md);gap:var(--sp-lg)}.loading-page-hero{flex-direction:column;align-items:flex-start}.skeleton-hero-art{width:160px;height:160px}.skeleton-hero-title{width:80%}}.stack-form{display:flex;flex-direction:column;gap:12px}.stack-form label{display:flex;flex-direction:column;gap:6px;font-size:.875rem;color:var(--text-subdued)}input,textarea,select{width:100%;background:var(--bg-highlight);border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text);padding:10px 14px;font-size:.875rem;transition:border-color 80ms,background 80ms}input:hover,textarea:hover,select:hover{background:var(--bg-selected)}input:focus,textarea:focus,select:focus{border-color:var(--text);background:var(--bg-selected);outline:none}input::placeholder,textarea::placeholder{color:var(--text-subdued)}textarea{resize:vertical;min-height:80px}.toggle-row{display:flex;align-items:center;gap:12px;font-size:.875rem;color:var(--text)}.toggle-row input[type=checkbox]{width:auto;accent-color:var(--accent)}.inline-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);border:none;border-radius:var(--radius-pill);color:var(--on-accent);font-size:.875rem;font-weight:700;padding:12px 32px;cursor:pointer;transition:background 80ms,transform 80ms;white-space:nowrap}.primary-button:hover{background:var(--accent-hover);transform:scale(1.02)}.ghost-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:1px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--text);font-size:.875rem;font-weight:700;padding:8px 16px;cursor:pointer;transition:border-color 80ms}.ghost-button:hover{border-color:var(--text)}.ghost-button.active{color:var(--accent);border-color:var(--accent)}.text-button{background:transparent;border:none;color:var(--text-subdued);font-size:.875rem;font-weight:700;cursor:pointer;padding:4px 0;transition:color 80ms}.text-button:hover{color:var(--text)}.playlist-edit-section{padding:16px;background:var(--bg-highlight);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:12px}.playlist-edit-section h3{font-size:1rem;font-weight:700;margin:0}.playlist-add-section{display:flex;flex-direction:column;gap:12px}.playlist-members-list{display:flex;flex-direction:column;gap:10px}.playlist-member-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid color-mix(in srgb,var(--text) 8%,transparent)}.playlist-member-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.playlist-member-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.eyebrow{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-subdued)}.section-copy{margin:4px 0 0}.settings-sections{gap:16px}.settings-card{display:flex;flex-direction:column;gap:12px;padding:20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-card)}.settings-copy{font-size:.875rem}.settings-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.settings-public-import{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--border)}.settings-public-import label{display:flex;flex-direction:column;gap:6px;color:var(--text-subdued);font-size:.875rem;font-weight:600}.settings-status{margin:0;color:var(--text-subdued);font-size:.8125rem}.settings-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 16px}.settings-device-list{display:flex;flex-direction:column;gap:12px;padding-top:8px;border-top:1px solid var(--border)}.settings-device-list-items{display:flex;flex-direction:column;gap:10px}.settings-device-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--bg-card) 86%,var(--bg-elevated) 14%)}.settings-device-copy{display:flex;flex:1 1 260px;flex-direction:column;gap:4px}.settings-device-copy strong{font-size:.95rem}.settings-device-actions{display:flex;flex-wrap:wrap;gap:8px}.taste-settings-card{gap:14px}.taste-settings-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 14px}.taste-settings-group{display:flex;flex-direction:column;gap:8px}.taste-settings-label{margin:0;font-size:.8125rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-subdued)}.taste-chip-row{display:flex;flex-wrap:wrap;gap:8px}.taste-chip{min-height:34px;padding:0 12px;border-radius:var(--radius-pill);border:1px solid color-mix(in srgb,var(--text) 14%,transparent);background:color-mix(in srgb,var(--text) 4%,transparent);color:var(--text);font-size:.8125rem;font-weight:600;cursor:pointer;transition:border-color .12s ease,background .12s ease,color .12s ease}.taste-chip:hover{border-color:color-mix(in srgb,var(--text) 28%,transparent);background:color-mix(in srgb,var(--text) 9%,transparent)}.taste-chip.active{border-color:color-mix(in srgb,var(--accent-hover) 80%,transparent);background:color-mix(in srgb,var(--accent-hover) 22%,transparent);color:color-mix(in srgb,var(--text) 92%,var(--accent))}.taste-chip:focus-visible{outline:2px solid color-mix(in srgb,var(--text) 88%,transparent);outline-offset:2px}.taste-signal-grid{display:flex;flex-wrap:wrap;gap:8px}.taste-signal-pill{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--text) 6%,transparent);border:1px solid color-mix(in srgb,var(--text) 10%,transparent);color:var(--text-subdued);font-size:.75rem;font-weight:600}.audio-settings-card{gap:14px}.audio-settings-row{display:flex;flex-wrap:wrap;gap:12px}.audio-toggle{display:inline-flex;align-items:center;gap:8px;min-height:34px;color:var(--text);font-size:.875rem}.audio-toggle input{accent-color:var(--accent)}.audio-settings-group{display:flex;flex-direction:column;gap:8px}.audio-eq-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.audio-band-control{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);color:var(--text);font-size:.8125rem}.audio-band-control strong{color:var(--text-subdued);font-size:.75rem;font-weight:600}.audio-band-control input{width:100%}.track-card{border:none;color:inherit;cursor:pointer}.track-card-caption{display:block;text-align:left;margin-top:4px;color:var(--text-subdued);font-size:.75rem}.shelf-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.cast-launcher-overlay{width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,var(--text) 10%,transparent)}@media(max-width:768px){*{scrollbar-width:none}}.liked-page-hero{background:radial-gradient(circle at top left,color-mix(in srgb,var(--visual-purple) 34%,transparent),transparent 44%),linear-gradient(180deg,color-mix(in srgb,var(--visual-purple-deep) 56%,transparent),color-mix(in srgb,var(--bg) 98%,transparent))}.liked-page-hero-art{border-radius:var(--radius-sm);background:radial-gradient(circle at top left,color-mix(in srgb,var(--text) 28%,transparent),transparent 38%),linear-gradient(145deg,var(--visual-purple-deep) 0%,var(--visual-purple) 50%,var(--visual-mint) 122%)}.radio-page{min-height:100%}.radio-hero{display:flex;align-items:flex-end;gap:var(--sp-lg);padding:80px var(--sp-lg) var(--sp-lg);background:var(--bg-elevated)}.radio-live-mark{width:112px;height:112px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);background:var(--bg-highlight);color:var(--accent);box-shadow:var(--shadow-md)}.radio-hero-copy{flex:1;min-width:0}.radio-title{margin:0;color:var(--text);font-size:4rem;font-weight:var(--fw-black);line-height:1;letter-spacing:0;overflow-wrap:anywhere}.radio-subtitle{margin:var(--sp-sm) 0 0;color:var(--text-subdued);font-size:var(--fs-body)}.radio-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-sm)}.radio-status-pill{display:inline-flex;align-items:center;min-height:32px;padding:0 var(--sp-md);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-subdued);font-size:var(--fs-subdued);font-weight:var(--fw-bold)}.radio-status-pill.active{border-color:var(--accent);color:var(--accent)}.radio-sections{padding-top:var(--sp-lg)}.radio-now-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-md)}.radio-now-grid div{min-width:0;display:flex;flex-direction:column;gap:var(--sp-xs)}.radio-now-grid strong{overflow:hidden;color:var(--text);font-size:var(--fs-body);text-overflow:ellipsis;white-space:nowrap}.radio-health-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-md);margin:var(--sp-md) 0 0;padding-top:var(--sp-md);border-top:1px solid var(--border)}.radio-health-list div{min-width:0}.radio-health-list dt{margin:0 0 var(--sp-xs);color:var(--text-subdued);font-size:var(--fs-label);font-weight:var(--fw-bold);letter-spacing:.08em;text-transform:uppercase}.radio-health-list dd{margin:0;overflow:hidden;color:var(--text);font-size:var(--fs-body);font-weight:var(--fw-bold);text-overflow:ellipsis;white-space:nowrap}.radio-listen-surface{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-md);margin-top:var(--sp-md);padding-top:var(--sp-md);border-top:1px solid var(--border)}.radio-live-audio{display:none}.radio-listen-status{min-width:0;color:var(--text-subdued);font-size:var(--fs-subdued)}.radio-listen-status.playing{color:var(--accent)}.radio-listen-status.error{color:var(--text-danger)}.radio-section-copy{margin:var(--sp-sm) 0 0}.radio-news-card{gap:var(--sp-md)}.radio-news-toggle{align-items:center;flex-direction:row;min-height:44px}.radio-clock-card,.radio-renderer-card,.radio-presenter-card{flex-direction:row;align-items:center}.radio-clock-card svg,.radio-renderer-card svg{flex:0 0 auto;color:var(--text-subdued)}.radio-presenter-card svg{flex:0 0 auto;color:var(--accent)}.radio-clock-card div,.radio-renderer-card div,.radio-presenter-card div{min-width:0}.radio-page .primary-button:focus-visible,.radio-page .ghost-button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent)}.radio-page .primary-button:disabled,.radio-page .ghost-button:disabled{opacity:.4;pointer-events:none}@media(max-width:768px){.radio-hero{flex-direction:column;align-items:flex-start;padding:var(--sp-xl) var(--sp-md) var(--sp-lg)}.radio-live-mark{width:88px;height:88px}.radio-title{font-size:2.5rem}.radio-hero-actions,.radio-hero-actions .primary-button,.radio-hero-actions .ghost-button{width:100%}.radio-clock-card,.radio-renderer-card,.radio-presenter-card{align-items:flex-start}}.library-page-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.library-create-btn{width:40px;height:40px;border:1px solid var(--border);background:color-mix(in srgb,var(--text) 4%,transparent);color:var(--text)}.library-create-btn:hover{border-color:var(--border-strong);background:color-mix(in srgb,var(--text) 8%,transparent)}.home-greeting{padding:88px 24px 24px;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-elevated) 80%,transparent),color-mix(in srgb,var(--bg) 100%,transparent))}.home-greeting-rich{padding-bottom:24px}.home-greeting-search{background:linear-gradient(180deg,color-mix(in srgb,var(--bg-card-hover) 90%,transparent),color-mix(in srgb,var(--bg) 8%,transparent))}.home-subtitle{margin:6px 0 0;color:var(--text-subdued);font-size:.95rem}.greeting-title{margin:0 0 16px;font-size:clamp(2rem,5vw,3rem);font-weight:900;letter-spacing:-.04em;color:var(--text)}.home-section-filters{position:sticky;top:0;z-index:1;padding:8px 0 16px;margin-bottom:8px;background:linear-gradient(180deg,var(--bg) 60%,transparent 100%)}.home-filter-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.home-filter-chip{min-height:36px;padding:0 16px;border:none;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text);font-size:.875rem;font-weight:600;cursor:pointer;transition:background 80ms ease,color 80ms ease}.home-filter-chip:hover{background:color-mix(in srgb,var(--text) 14%,transparent)}.home-filter-chip.active{background:var(--text);color:var(--bg)}.home-filter-chip:focus-visible,.home-quick-card:focus-visible,.home-collection-card:focus-visible,.home-collection-action:focus-visible,.home-card-secondary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.home-hero-stats{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.home-hero-stat{min-width:110px;padding:12px 14px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--text) 6%,transparent);display:flex;flex-direction:column;gap:2px}.home-hero-stat strong{font-size:1.15rem;font-weight:800;color:var(--text)}.home-hero-stat span{font-size:.75rem;color:var(--text-subdued);text-transform:uppercase;letter-spacing:.08em}.quick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px;margin-top:0}.home-quick-grid{margin-top:0}.quick-card{display:flex;align-items:center;gap:16px;height:64px;background:color-mix(in srgb,var(--text) 8%,transparent);border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;text-decoration:none;color:inherit;transition:background 80ms ease}.quick-card:hover{background:color-mix(in srgb,var(--text) 16%,transparent)}.quick-card-button{border:none;width:100%;padding:0;color:inherit;text-align:left;font:inherit}.quick-card-art{width:64px;height:64px;flex-shrink:0;background:var(--bg-highlight);overflow:hidden}.quick-card-art img{width:100%;height:100%;object-fit:cover}.quick-card-meta{min-width:0;flex:1;padding:0 16px 0 0}.quick-card-name{display:block;font-size:.875rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.quick-card-sub{display:block;margin-top:2px;color:var(--text-subdued);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-quick-card{align-items:stretch;padding-right:0}.home-quick-card .quick-card-meta{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:0 16px 0 0}.home-quick-card .quick-card-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-quick-card .quick-card-sub{margin-top:0}.dj-quick-card-art{position:relative;display:flex;align-items:center;justify-content:center;color:var(--text);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 32%,var(--bg-card)),color-mix(in srgb,var(--accent) 12%,var(--bg-card)))}.dj-quick-card.active .dj-quick-card-art:after{content:"";position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--bg-card)}.liked-songs-art{color:var(--text);background:linear-gradient(135deg,var(--visual-purple-deep) 0%,var(--visual-purple-bright) 50%,var(--visual-mint-soft) 100%)}.dj-home-art{color:var(--text);background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 35%,var(--bg-card)) 0%,var(--bg-card) 100%)}.stats-row{display:flex;gap:24px;flex-wrap:wrap}.stat-chip{display:flex;flex-direction:column;gap:2px}.stat-chip strong{font-size:1.5rem;font-weight:900;color:var(--text)}.stat-chip span{font-size:.8125rem;color:var(--text-subdued)}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.metric-card{background:var(--bg-highlight);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:4px}.metric-card strong{font-size:2rem;font-weight:900;color:var(--text)}.metric-card span{font-size:.8125rem;color:var(--text-subdued)}.recommendation-grid{display:flex;flex-direction:column;gap:12px}.recommendation-item{display:flex;flex-direction:column;gap:4px}.recommendation-item h3{margin:0;font-size:1rem;font-weight:700}.scan-section{display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--bg-highlight);border-radius:var(--radius-md)}.artwork-mosaic{display:grid;width:100%;height:100%;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:2px;background:color-mix(in srgb,var(--text) 8%,transparent)}.artwork-mosaic img{width:100%;height:100%;object-fit:cover;display:block}.home-shelf-row{display:flex;gap:20px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x proximity;scrollbar-width:none}.home-shelf-row::-webkit-scrollbar{display:none}.home-shelf-row>*{flex:0 0 clamp(160px,21vw,212px);scroll-snap-align:start}.home-collection-card{min-height:100%}.home-collection-card .cover-card-title,.home-collection-card .cover-card-sub,.home-card-description,.home-card-kicker{display:block}.home-collection-card .cover-card-title,.home-collection-card .cover-card-sub{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home-card-kicker{margin-top:2px;font-size:.7rem;font-weight:700;color:var(--text-subdued);letter-spacing:.08em;text-transform:uppercase}.home-card-description{margin-top:2px;color:var(--text-subdued);font-size:.76rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home-recommendation-card{gap:10px}.home-collection-action{display:flex;flex-direction:column;gap:8px;padding:0;border:none;background:transparent;color:inherit;text-align:left;cursor:pointer;position:relative}.home-collection-action:hover .card-play-overlay,.home-collection-action:focus-visible .card-play-overlay{opacity:1;transform:translateY(0)}.home-card-secondary{min-height:36px;padding:0 16px;border:1px solid color-mix(in srgb,var(--text) 14%,transparent);border-radius:var(--radius-pill);background:transparent;color:var(--text);font-size:.8125rem;font-weight:700;cursor:pointer;transition:background 80ms ease,border-color 80ms ease}.home-card-secondary:hover{background:color-mix(in srgb,var(--text) 8%,transparent);border-color:color-mix(in srgb,var(--text) 24%,transparent)}.home-manage-card{gap:16px;padding:20px 22px;border-radius:var(--radius-lg);background:var(--bg-card)}.home-manage-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.home-manage-status{margin:0;font-size:.875rem}.browse-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px}.browse-card{position:relative;overflow:hidden;min-height:180px;padding:18px;border-radius:var(--radius-md);color:var(--text)}.browse-card-title{position:relative;z-index:1;font-size:1.5rem;font-weight:800;letter-spacing:-.03em}.browse-card-art{position:absolute;right:14px;bottom:14px;width:92px;height:92px;border-radius:var(--radius-md);background:linear-gradient(180deg,color-mix(in srgb,var(--text) 22%,transparent),color-mix(in srgb,var(--bg-sidebar) 22%,transparent));transform:rotate(22deg);box-shadow:0 10px 24px color-mix(in srgb,var(--bg-sidebar) 34%,transparent)}@media(max-width:768px){.home-greeting{padding:72px 16px 24px}.home-greeting-search{padding:24px 16px 18px}.home-greeting-rich{padding-top:28px}.greeting-title{margin-bottom:20px;font-size:clamp(1.75rem,8vw,2.5rem)}.home-filter-row{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.home-filter-row::-webkit-scrollbar{display:none}.home-filter-chip{flex:0 0 auto}.home-section-filters{position:static;background:none;padding:8px 0 12px;margin-bottom:4px}.home-hero-stats{gap:10px}.home-hero-stat{min-width:92px;padding:10px 12px}.quick-grid{grid-template-columns:1fr 1fr}.home-shelf-row{gap:14px}.home-shelf-row>*{flex-basis:154px}.home-card-secondary{width:100%}.home-manage-card{padding:18px 16px}.browse-grid{grid-template-columns:1fr 1fr;gap:12px}.browse-card{min-height:132px}}@media(max-width:480px){.home-filter-row{gap:8px}.home-filter-chip{min-height:32px;padding:0 14px}.browse-grid{grid-template-columns:1fr}}.search-form{width:min(100%,320px)}.search-input-wrap{position:relative;display:flex;align-items:center}.search-input-wrap svg{position:absolute;left:12px;color:var(--text-subdued);pointer-events:none;width:16px;height:16px}.search-input{width:100%;background:var(--surface-light);border:none;border-radius:var(--radius-pill);color:var(--text-on-light);padding:8px 12px 8px 40px;font-size:.875rem;font-weight:400;transition:background 80ms}.search-input::placeholder{color:var(--text-muted-on-light)}.search-input:focus{background:var(--surface-light);outline:none}.search-top-result-button{border:none;width:100%;text-align:left}.search-top-result-name.title-with-explicit{display:inline-flex}.search-song-title.title-with-explicit{display:inline-flex}.search-form{width:min(100%,364px)}.search-input{min-height:48px;padding-left:44px;font-size:.92rem;font-weight:500;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bg-sidebar) 55%,transparent)}@media(max-width:768px){.topbar.search-route .search-form{width:100%}}.search-input{min-height:48px;font-size:.92rem;font-weight:500;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--bg-sidebar) 45%,transparent),0 12px 24px color-mix(in srgb,var(--bg-sidebar) 18%,transparent)}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:32px;background:var(--bg)}.login-panel{width:min(100%,440px);padding:40px;background:var(--bg-elevated);border-radius:var(--radius-lg)}.login-logo{width:48px;height:48px;margin:0 auto 32px}.login-logo svg{width:48px;height:48px;fill:var(--accent)}.login-panel h1{font-size:1.75rem;font-weight:900;margin:0 0 8px;text-align:center}.login-panel p{font-size:.875rem;color:var(--text-subdued);text-align:center;margin-bottom:32px}.error-text{color:var(--text-danger);font-size:.875rem;text-align:center}.success-text{color:var(--accent);font-size:.875rem}.muted-text{color:var(--text-subdued)}.tab-bar{display:none;position:fixed;left:0;right:0;bottom:0;height:calc(var(--tab-bar-h) + var(--safe-bottom));padding-bottom:var(--safe-bottom);background:var(--bg-card);border-top:1px solid var(--border);z-index:145;align-items:stretch}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:transparent;border:none;color:var(--text-subdued);font-size:.625rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;text-decoration:none;transition:color 80ms}.tab-item:hover,.tab-item.active{color:var(--text)}.tab-item svg{width:24px;height:24px}.mini-player{display:none;position:fixed;left:calc(8px + var(--safe-left));right:calc(8px + var(--safe-right));bottom:calc(var(--tab-bar-h) + var(--safe-bottom) + 8px);height:64px;background:var(--bg-highlight);border-radius:var(--radius-md);align-items:center;gap:12px;padding:0 12px;z-index:105;box-shadow:var(--shadow-md);overflow:hidden}.mini-player-art{width:48px;height:48px;flex-shrink:0;border-radius:var(--radius-sm);background:var(--bg-highlight);overflow:hidden}.mini-player-art img{width:100%;height:100%;object-fit:cover}.mini-player-meta{flex:1;min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:1px;padding-right:2px}.mini-player-title{font-size:.875rem;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;color:var(--text)}.mini-player-artist{font-size:.75rem;color:var(--text-subdued);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-player-status-row{display:flex;align-items:center;gap:8px;min-width:0}.mini-player-output{display:block;font-size:.6875rem;color:color-mix(in srgb,var(--text) 72%,transparent);min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-player-controls{display:flex;align-items:center;gap:8px;flex-shrink:0}.mini-player-track-actions .track-row-more-menu,.queue-track-actions .track-row-more-menu,.player-track-actions .track-row-more-menu{top:auto;bottom:calc(100% + 8px)}.mini-player-track-actions .track-row-more-btn,.queue-track-actions .track-row-more-btn,.player-track-actions .track-row-more-btn,.player-overlay-track-actions .track-row-more-btn{opacity:1}.mini-player.dj-announcement-active .mini-player-artist{display:none}.mini-dj-badge{flex-shrink:0;min-height:18px;margin-top:0;padding:0 8px;font-size:.58rem;letter-spacing:.09em}.mini-output-chip{min-height:28px;padding:0 10px}.search-top-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px;align-items:start}.search-mid-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}.search-top-result{background:var(--bg-highlight);border-radius:var(--radius-lg);padding:20px;display:flex;flex-direction:column;gap:16px;cursor:pointer;transition:background 80ms;text-decoration:none;color:inherit}.search-top-result:hover{background:var(--bg-selected)}.search-top-result-art{width:92px;height:92px;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-card);display:flex;align-items:center;justify-content:center;color:var(--text-subdued);flex-shrink:0;box-shadow:var(--shadow-md)}.search-top-result-art.circle{border-radius:50%}.search-top-result-art img{width:100%;height:100%;object-fit:cover}.search-top-result-meta{display:flex;flex-direction:column;gap:4px}.search-top-result-name{font-size:1.375rem;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}.search-top-result-type{font-size:.8125rem;color:var(--text-subdued);text-transform:capitalize;font-weight:500;background:var(--bg-card);border-radius:var(--radius-pill);padding:3px 10px;display:inline-block}.search-songs-list{display:flex;flex-direction:column}.search-song-item{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:6px 8px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;color:inherit;text-align:left;transition:background 80ms;-webkit-user-select:none;user-select:none}.search-song-item:hover{background:var(--bg-tinted)}.search-song-item:disabled{cursor:default}.search-song-item:disabled:hover{background:transparent}.search-song-art{width:40px;height:40px;border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-highlight);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-subdued)}.search-song-art img{width:100%;height:100%;object-fit:cover}.search-song-title{font-size:.9375rem;font-weight:400;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.search-song-title.title-with-explicit,.search-top-result-name.title-with-explicit{display:inline-flex}.search-song-artist{font-size:.8125rem;color:var(--text-subdued);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.search-song-meta{min-width:0}.search-song-item-status{margin-left:auto;flex-shrink:0;display:inline-flex;align-items:center;gap:8px;color:var(--text-subdued);font-size:.75rem;font-weight:600}.search-song-item-status-error{color:var(--text-danger)}@keyframes spin{to{transform:rotate(360deg)}}.search-song-spinner{width:14px;height:14px;border:2px solid var(--text-subdued);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.search-show-more{margin-top:8px;padding:6px 0;background:none;border:none;color:var(--text-subdued);font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:color 80ms}.search-show-more:hover{color:var(--text-primary)}.search-artists-list{display:flex;flex-direction:column;gap:4px}.search-artist-card{display:flex;align-items:center;gap:14px;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:background 80ms;text-decoration:none;color:inherit}.search-artist-card:hover{background:var(--bg-tinted)}.search-artist-art{width:48px;height:48px;border-radius:50%;overflow:hidden;background:var(--bg-highlight);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-subdued)}.search-artist-art img{width:100%;height:100%;object-fit:cover}@media(max-width:768px){.search-top-row,.search-mid-row{grid-template-columns:1fr}.search-top-result-art{width:72px;height:72px}.search-top-result-name{font-size:1.125rem}}@media(max-width:768px){.app-shell{grid-template-columns:1fr;padding-bottom:calc(136px + var(--safe-bottom))}.sidebar{display:none}.main-column{height:calc(100vh - 136px - var(--safe-bottom));border-radius:0}.player-bar{display:none}.tab-bar,.mini-player{display:flex}.playlist-modal-backdrop{align-items:flex-end;padding:0}.playlist-modal-panel{width:100%;max-height:min(88vh,760px);padding-bottom:var(--safe-bottom);border-radius:18px 18px 0 0;border-left:none;border-right:none;border-bottom:none}.page-hero{flex-direction:column;align-items:flex-start;padding:40px 16px 16px}.hero-art{width:160px;height:160px}.hero-title{font-size:clamp(1.75rem,8vw,3rem)}.hero-actions{padding:16px}.track-table-header{display:none}.track-row{grid-template-columns:[num] 32px [info] minmax(0,1fr) [dur] 48px [actions] 32px;padding:4px 8px}.track-row-art,.track-row-album{display:none}.cover-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:16px}.quick-grid{grid-template-columns:1fr 1fr}.content-inner,.page-sections{padding:0 16px 32px}.topbar{padding:12px 16px}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.inline-form-grid{grid-template-columns:1fr}.library-playlist-item{padding:8px}.library-playlist-art{width:52px;height:52px}.liked-mobile-table .track-row{grid-template-columns:[art] 44px [info] minmax(0,1fr) [actions] 36px;gap:10px;padding:6px 8px;min-height:64px}.liked-mobile-table .track-num{display:none}.liked-mobile-table .track-row-art{display:flex;width:44px;height:44px}.liked-mobile-table .track-row-duration{display:none}.liked-mobile-table .track-row-actions{opacity:1;justify-content:flex-end}.liked-mobile-table .track-row-info{min-width:0;padding-right:2px}.liked-mobile-table .track-row-title,.liked-mobile-table .track-row-artist{max-width:100%}.playlist-track-section .track-row{grid-template-columns:[art] 44px [info] minmax(0,1fr) [actions] 36px;gap:10px;padding:6px 8px;min-height:64px}.playlist-track-section .track-num{display:none}.playlist-track-section .track-row-art{display:flex;width:44px;height:44px}.playlist-track-section .track-row-duration{display:none}.playlist-track-section .track-row-actions{opacity:1;justify-content:flex-end}.playlist-track-section .track-row-info{padding-right:2px;min-width:0}.playlist-track-section .track-row-title,.playlist-track-section .track-row-artist{max-width:100%}.playlist-track-section .playlist-track-actions-desktop{display:none!important}.playlist-track-section .playlist-track-actions-mobile{display:flex;opacity:1;justify-content:flex-end}.playlist-track-section .track-row-more-menu{right:0}}@media(max-width:480px){.cover-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.quick-grid{grid-template-columns:1fr 1fr}.metric-grid{grid-template-columns:1fr}.home-hero-stat{min-width:calc(50% - 6px)}.home-shelf-row>*{flex-basis:148px}}.mini-player{left:8px;right:8px;min-height:64px;background:color-mix(in srgb,var(--bg-highlight) 96%,transparent);border:1px solid color-mix(in srgb,var(--text) 6%,transparent)}.mini-player-art-fallback{display:flex;width:100%;height:100%;align-items:center;justify-content:center;color:var(--text-subdued)}.tab-item{font-size:.7rem;letter-spacing:0;text-transform:none}.mobile-home-settings-btn{display:none}@media(max-width:768px){.mobile-home-settings-btn{position:fixed;top:calc(var(--safe-top) + 10px);right:14px;width:36px;height:36px;border-radius:999px;border:1px solid color-mix(in srgb,var(--text) 14%,transparent);background:color-mix(in srgb,color-mix(in srgb,var(--bg) 55%,var(--bg-card)) 92%,transparent);color:var(--text);display:inline-flex;align-items:center;justify-content:center;z-index:21;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.mobile-home-settings-btn svg{width:19px;height:19px}.mini-player{display:none}.mini-player.visible{display:flex}}.player-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:140;pointer-events:none;opacity:0;transition:opacity var(--dur-slow) var(--ease-out)}.player-overlay.open{opacity:1;pointer-events:all}.player-overlay-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:color-mix(in srgb,var(--bg-sidebar) 56%,transparent);cursor:pointer}.player-overlay-panel{position:absolute;inset:20px 20px calc(var(--player-h) + 20px) 20px;overflow:hidden;border:1px solid color-mix(in srgb,var(--text) 8%,transparent);border-radius:24px;background:var(--bg);box-shadow:0 36px 80px color-mix(in srgb,var(--bg-sidebar) 46%,transparent)}.player-overlay-bg{position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px;background-size:cover;background-position:center;filter:blur(28px) saturate(1.4);opacity:.55;pointer-events:none}.player-overlay-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(var(--overlay-cr, 18),var(--overlay-cg, 18),var(--overlay-cb, 18),.52),rgba(var(--overlay-cr, 18),var(--overlay-cg, 18),var(--overlay-cb, 18),.18) 28%,color-mix(in srgb,var(--bg-sidebar) 76%,transparent) 60%,color-mix(in srgb,color-mix(in srgb,var(--bg-sidebar) 55%,var(--bg)) 97%,transparent));pointer-events:none}.player-overlay-content{position:relative;display:flex;flex-direction:column;gap:20px;max-width:420px;height:100%;margin:0 auto;padding:28px 24px 24px;overflow-y:auto}.player-overlay-header,.player-overlay-heading{display:flex;align-items:center}.player-overlay-header{justify-content:space-between;gap:16px}.overlay-header-actions{display:flex;align-items:center;gap:10px}.player-overlay-heading{flex-direction:column;min-width:0;gap:4px;text-align:center}.player-overlay-heading strong,.player-overlay-label,.player-overlay-title,.player-overlay-subtitle,.player-overlay-times span,.player-overlay-up-next-copy strong,.player-overlay-up-next-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-overlay-label{color:color-mix(in srgb,var(--text) 72%,transparent);font-size:var(--fs-label);font-weight:700;letter-spacing:.08em;text-transform:uppercase}.player-overlay-art{aspect-ratio:1;overflow:hidden;border-radius:20px;background:color-mix(in srgb,var(--text) 8%,transparent);box-shadow:0 26px 44px color-mix(in srgb,var(--bg-sidebar) 28%,transparent)}.player-overlay-art img,.player-overlay-up-next-art img{width:100%;height:100%;object-fit:cover}.player-overlay-art-fallback,.player-overlay-up-next-art{display:flex;align-items:center;justify-content:center;color:color-mix(in srgb,var(--text) 72%,transparent)}.player-overlay-art-fallback{width:100%;height:100%}.player-overlay-art-fallback.dj-stage{position:relative;flex-direction:column;overflow:hidden;background:transparent}.dj-stage-ambient-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(155deg,color-mix(in srgb,color-mix(in srgb,var(--bg-sidebar) 85%,var(--bg-highlight)) 98%,transparent),color-mix(in srgb,color-mix(in srgb,var(--bg) 82%,var(--accent)) 98%,transparent));backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);z-index:0}.dj-fluid-canvas{width:min(85%,400px);aspect-ratio:1;position:relative;z-index:1;margin-top:5%}.dj-stage-meta{margin-top:16px;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:1;opacity:0;animation:djFadeIn .8s ease forwards .2s}@keyframes djFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.dj-stage-caption{font-size:var(--fs-label);letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb,var(--text) 72%,transparent)}.dj-card-label,.now-dj-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:color-mix(in srgb,var(--accent) 18%,transparent);color:color-mix(in srgb,var(--text) 85%,var(--accent));font-size:var(--fs-label);font-weight:800;letter-spacing:.08em;text-transform:uppercase}.dj-card-label{min-height:34px;padding:0 14px}.now-dj-badge{width:fit-content;min-height:22px;padding:0 8px;margin-top:8px}@keyframes djPulse{0%,to{transform:scale(1);opacity:.84}50%{transform:scale(1.06);opacity:1}}@keyframes djStageCorePulse{0%,to{transform:scale(.96);filter:saturate(.92)}50%{transform:scale(1.06);filter:saturate(1.18)}}@keyframes djStageGlowPulse{0%,to{transform:scale(.94);opacity:.48}50%{transform:scale(1.08);opacity:.92}}@keyframes djStageRingPulse{0%,to{transform:translate(-50%) scale(.98);opacity:.14}50%{transform:translate(-50%) scale(1.06);opacity:.34}}@keyframes djStageWave{0%,to{height:7px;opacity:.58}50%{height:32px;opacity:1}}@keyframes playerTitleMarquee{0%,12%{transform:translate(0)}88%,to{transform:translate(calc(-100% + 10rem))}}.player-overlay-meta{display:flex;align-items:center;justify-content:space-between;gap:16px}.player-overlay-meta-text{min-width:0;flex:1}.player-overlay-title-line{display:inline-flex;align-items:center;gap:var(--sp-xs);max-width:100%;min-width:0}.player-overlay-title-line .player-overlay-title{min-width:0}.player-overlay-title{display:block;font-size:clamp(1.4rem,4vw,1.8rem);font-weight:800;letter-spacing:-.03em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-overlay-subtitle{display:block;margin-top:5px;color:color-mix(in srgb,var(--text) 72%,transparent);font-size:var(--fs-track);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-overlay-meta-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.overlay-like-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid color-mix(in srgb,var(--text) 14%,transparent);border-radius:50%;background:color-mix(in srgb,var(--text) 4%,transparent);color:color-mix(in srgb,var(--text) 60%,transparent);cursor:pointer;transition:color var(--dur-fast) var(--ease-out),background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.overlay-like-btn:hover{color:var(--text)}.overlay-like-btn.liked{color:color-mix(in srgb,var(--bg) 84%,var(--accent));background:var(--accent);border-color:color-mix(in srgb,var(--accent) 90%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.overlay-like-btn:active{transform:scale(.9)}.player-overlay-progress{display:flex;flex-direction:column;gap:8px}.player-overlay-seek{height:5px}.player-overlay-times{display:flex;justify-content:space-between;color:color-mix(in srgb,var(--text) 75%,transparent);font-size:var(--fs-label)}.player-overlay-controls{display:grid;grid-template-columns:44px 48px 76px 48px 44px;justify-content:center;align-items:center;gap:8px}.overlay-accent-btn,.overlay-skip-btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:transparent;color:color-mix(in srgb,var(--text) 78%,transparent);cursor:pointer;transition:color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.overlay-accent-btn{width:44px;height:44px}.overlay-skip-btn{width:48px;height:48px}.overlay-accent-btn:hover,.overlay-skip-btn:hover{color:var(--text);transform:scale(1.06)}.overlay-accent-btn:active,.overlay-skip-btn:active{transform:scale(.92)}.overlay-accent-btn.active{color:var(--accent)}.overlay-play-btn{width:76px;height:76px;transition:transform var(--dur-fast) var(--ease-spring),background var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.overlay-play-btn:active{transform:scale(.93)}.overlay-play-btn svg{width:32px;height:32px}.player-overlay-secondary{display:flex;align-items:center;justify-content:space-between;gap:12px}.overlay-feedback-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border:none;border-radius:50%;background:color-mix(in srgb,var(--text) 10%,transparent);color:color-mix(in srgb,var(--text) 84%,transparent);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.overlay-feedback-btn:hover{background:color-mix(in srgb,var(--text) 18%,transparent);color:var(--text);transform:translateY(-1px)}.overlay-feedback-btn.disliked{background:color-mix(in srgb,var(--text) 28%,transparent);color:var(--text);box-shadow:0 0 0 2px color-mix(in srgb,var(--text) 20%,transparent)}.overlay-feedback-placeholder{opacity:0;pointer-events:none}.overlay-secondary-center{min-height:44px;flex:1;display:flex;align-items:center;justify-content:center;gap:12px}.overlay-cast-picker{position:relative;min-height:44px;display:inline-flex;align-items:center;gap:10px;border:none;border-radius:14px;padding:8px 12px;background:color-mix(in srgb,var(--text) 10%,transparent);color:var(--text);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.overlay-cast-picker:hover,.overlay-cast-picker:focus-within{background:color-mix(in srgb,var(--text) 18%,transparent);transform:translateY(-1px)}.overlay-cast-picker:focus-within{box-shadow:0 0 0 2px var(--accent)}.overlay-cast-picker.disabled{opacity:.5;cursor:default;transform:none}.overlay-cast-picker.active{background:color-mix(in srgb,var(--accent) 20%,transparent)}.overlay-cast-launcher-hitbox{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:inherit;opacity:0}.overlay-cast-launcher-hitbox:hover,.overlay-cast-launcher-hitbox:focus-visible{background:transparent}.overlay-cast-picker-icon{width:28px;height:28px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg-sidebar) 22%,transparent)}.overlay-cast-picker-copy{display:flex;flex-direction:column;min-width:0;text-align:left}.overlay-cast-picker-copy strong,.overlay-cast-picker-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overlay-cast-picker-copy strong{font-size:.8rem;letter-spacing:-.01em}.overlay-cast-picker-copy span{font-size:var(--fs-label);color:color-mix(in srgb,var(--text) 72%,transparent)}.overlay-text-btn.overlay-dj-stop{min-height:36px;padding:0 12px;border-radius:999px;background:color-mix(in srgb,var(--text) 10%,transparent);color:var(--text)}.overlay-text-btn.overlay-dj-stop:hover{background:color-mix(in srgb,var(--text) 18%,transparent)}.overlay-text-btn{display:inline-flex;align-items:center;border:none;background:transparent;color:color-mix(in srgb,var(--text) 72%,transparent);font-size:.8125rem;font-weight:600;cursor:pointer;transition:color var(--dur-fast) var(--ease-out)}.overlay-text-btn:hover{color:var(--text)}.overlay-text-btn:disabled{opacity:.4;cursor:default}.overlay-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:50%;background:color-mix(in srgb,var(--bg-sidebar) 28%,transparent);color:var(--text);cursor:pointer}.player-overlay-status{padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--danger) 22%,transparent);color:color-mix(in srgb,var(--text) 82%,var(--danger));font-size:.8125rem;font-weight:600}.player-overlay-status-info{background:color-mix(in srgb,var(--text) 7%,transparent);color:var(--text-muted)}.player-overlay-header .overlay-icon-btn:first-child svg{transform:rotate(90deg)}.player-overlay-up-next{display:flex;flex-direction:column;gap:12px}.player-overlay-up-next-header{display:flex;align-items:center;justify-content:space-between;color:color-mix(in srgb,var(--text) 80%,transparent);font-size:var(--fs-body);font-weight:700}.player-overlay-up-next-list{display:flex;flex-direction:column;gap:8px}.player-overlay-up-next-item{display:flex;align-items:center;gap:12px;padding:8px;border:none;border-radius:12px;background:color-mix(in srgb,var(--text) 8%,transparent);color:inherit;cursor:pointer;text-align:left}.player-overlay-up-next-art{width:48px;height:48px;overflow:hidden;border-radius:8px;background:color-mix(in srgb,var(--text) 8%,transparent);flex-shrink:0}.player-overlay-up-next-copy{min-width:0}.player-overlay-up-next-copy strong{display:block;font-size:.9rem}.player-overlay-up-next-copy span{display:block;margin-top:4px;color:color-mix(in srgb,var(--text) 72%,transparent);font-size:var(--fs-subdued)}@media(max-width:768px){.player-overlay-panel{top:0;right:0;bottom:0;left:0;border:none;border-radius:0}.player-overlay-content{max-width:none;padding:calc(var(--safe-top) + 12px) 20px calc(var(--safe-bottom) + var(--tab-bar-h) + 24px)}.player-overlay-controls{grid-template-columns:40px 44px 68px 44px 40px;gap:8px}.overlay-play-btn{width:68px;height:68px}}.player-overlay-backdrop{background:color-mix(in srgb,var(--bg-sidebar) 72%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.player-overlay-panel{inset:16px 16px calc(var(--player-h) + 16px) 16px;border-radius:28px;background:linear-gradient(180deg,color-mix(in srgb,var(--text) 3%,transparent),color-mix(in srgb,var(--text) 0%,transparent)),var(--bg);box-shadow:0 44px 96px color-mix(in srgb,var(--bg-sidebar) 52%,transparent)}.player-overlay-content{max-width:448px;gap:24px;padding:32px 28px 28px}.overlay-icon-btn{width:44px;height:44px;border:1px solid color-mix(in srgb,var(--text) 10%,transparent);background:color-mix(in srgb,var(--bg-sidebar) 34%,transparent);transition:background var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}.overlay-icon-btn:hover{background:color-mix(in srgb,var(--text) 8%,transparent);border-color:color-mix(in srgb,var(--text) 16%,transparent);transform:translateY(-1px)}.player-overlay-heading strong{font-size:1rem;letter-spacing:-.02em}.player-overlay-art{border-radius:28px;box-shadow:0 40px 80px color-mix(in srgb,var(--bg-sidebar) 56%,transparent),0 12px 28px color-mix(in srgb,var(--bg-sidebar) 36%,transparent)}.player-overlay-meta{align-items:flex-start}.player-overlay-title{font-size:clamp(1.8rem,5.5vw,2.4rem);letter-spacing:-.04em}.player-overlay-subtitle{margin-top:8px}.player-overlay-progress{gap:10px}.player-overlay-seek{height:6px}.player-overlay-controls{gap:12px;grid-template-columns:48px 56px 84px 56px 48px}.overlay-accent-btn,.overlay-skip-btn,.overlay-feedback-btn,.overlay-cast-picker{border:1px solid color-mix(in srgb,var(--text) 10%,transparent);background:color-mix(in srgb,var(--text) 6%,transparent)}.overlay-accent-btn.active{border-color:color-mix(in srgb,var(--accent) 26%,transparent);background:var(--accent-dim)}.overlay-play-btn{width:84px;height:84px;box-shadow:0 20px 36px color-mix(in srgb,var(--bg-sidebar) 30%,transparent)}.overlay-text-btn.overlay-dj-stop{border:1px solid color-mix(in srgb,var(--text) 10%,transparent)}.player-overlay-status{border:1px solid color-mix(in srgb,var(--danger) 26%,transparent)}@media(max-width:768px){.player-overlay-panel{top:0;right:0;bottom:0;left:0;border:none;border-radius:0;background:var(--bg);box-shadow:none}.player-overlay-content{max-width:none;gap:16px;padding:calc(var(--safe-top) + 16px) 24px calc(var(--safe-bottom) + var(--tab-bar-h) + 24px)}.overlay-accent-btn,.overlay-skip-btn,.overlay-accent-btn.active{border:none;background:transparent}.player-overlay-controls{grid-template-columns:44px 48px 76px 48px 44px;gap:4px}.overlay-play-btn{width:76px;height:76px}.player-overlay-art{border-radius:16px}.overlay-icon-btn{border:none;background:transparent}.overlay-icon-btn:hover{background:color-mix(in srgb,var(--text) 6%,transparent);border-color:transparent;transform:none}.player-overlay-label{font-size:var(--fs-label);letter-spacing:.1em}.player-overlay-heading strong{font-size:.875rem}}@media(max-width:768px)and (max-height:750px){.player-overlay-art{max-width:calc(100vh - 480px);align-self:center}}@media(orientation:landscape)and (max-height:520px){.player-overlay-panel{top:0;right:0;bottom:0;left:0;border:none;border-radius:0;background:var(--bg);box-shadow:none}.player-overlay-content{display:grid;grid-template-columns:calc(100vh - 32px) 1fr;grid-template-rows:auto 1fr auto auto auto;column-gap:20px;row-gap:4px;height:100%;max-width:none;padding:8px calc(var(--safe-right) + 20px) 8px calc(var(--safe-left) + 20px);overflow:hidden;align-items:start}.player-overlay-header{grid-column:1 / -1;grid-row:1}.player-overlay-art{grid-column:1;grid-row:2 / 6;width:100%;height:auto;max-height:none;max-width:none;border-radius:10px;align-self:center;box-shadow:0 16px 36px color-mix(in srgb,var(--bg-sidebar) 48%,transparent)}.player-overlay-meta{grid-column:2;grid-row:2;align-self:end;align-items:flex-start}.player-overlay-progress{grid-column:2;grid-row:3;align-self:center}.player-overlay-controls{grid-column:2;grid-row:4;justify-content:flex-start;grid-template-columns:36px 40px 60px 40px 36px;gap:4px;align-self:center}.overlay-play-btn{width:60px;height:60px}.player-overlay-secondary{grid-column:2;grid-row:5;align-self:start}.player-overlay-status{display:none}}
