:root{color-scheme:light dark;--font-family: "Inter", "Noto Sans", "Noto Sans SC", "Noto Sans TC", "Noto Sans HK", "Noto Sans JP", "Noto Sans KR", "Noto Sans Hebrew", "Noto Sans Arabic", "Noto Sans Devanagari", "Noto Sans Bengali", "Noto Sans Thai", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Gujarati", "Noto Sans Kannada", "Noto Sans Malayalam", "Noto Sans Sinhala", "Noto Sans Khmer", "Noto Sans Lao", "Noto Sans Myanmar", "Noto Sans Georgian", "Noto Sans Armenian", "Noto Sans Ethiopic", system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, sans-serif;--font-family-ja: "Inter", "Noto Sans", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", meiryo, "Noto Sans JP", "Noto Sans KR", "Noto Sans SC", "Noto Sans TC", "Noto Sans HK", "Noto Sans Hebrew", "Noto Sans Arabic", "Noto Sans Devanagari", "Noto Sans Bengali", "Noto Sans Thai", "Noto Sans Tamil", "Noto Sans Telugu", "Noto Sans Gujarati", "Noto Sans Kannada", "Noto Sans Malayalam", "Noto Sans Sinhala", "Noto Sans Khmer", "Noto Sans Lao", "Noto Sans Myanmar", "Noto Sans Georgian", "Noto Sans Armenian", "Noto Sans Ethiopic", system-ui, -apple-system, blinkmacsystemfont, "Segoe UI", roboto, sans-serif;--font-size-scale: 100%;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-md: 1.125rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 1.875rem;--text-3xl: 2.25rem;--text-4xl: 3rem;--text-5xl: 3.75rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--spacing-xs: var(--space-1);--spacing-sm: var(--space-2);--spacing-md: var(--space-4);--spacing-lg: var(--space-6);--spacing-xl: var(--space-8);--spacing-2xl: var(--space-12);--spacing-3xl: var(--space-16);--radius-none: 0;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--radius: var(--radius-md);--player-bar-height-desktop: 90px;--player-bar-height-mobile: 130px;--sidebar-width: 240px;--sidebar-collapsed-width: 70px;--duration-instant: 0ms;--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .5s;--ease-linear: linear;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--ease-elastic: cubic-bezier(.68, -.55, .265, 1.55);--ease-spring: cubic-bezier(.175, .885, .32, 1.275);--transition-fast: var(--duration-fast) var(--ease-in-out);--transition-normal: var(--duration-normal) var(--ease-in-out);--transition-slow: var(--duration-slow) var(--ease-in-out);--transition: var(--transition-normal);--shadow-none: none;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25);--shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / .05);--shadow-glow: 0 0 20px rgb(var(--highlight-rgb) / .5);--z-hide: -1;--z-base: 0;--z-docked: 10;--z-dropdown: 1000;--z-sticky: 1100;--z-banner: 1200;--z-overlay: 1300;--z-modal: 1400;--z-popover: 1500;--z-tooltip: 1600;--z-toast: 1700;--z-sheet: 9000;--btn-height-sm: 32px;--btn-height-md: 40px;--btn-height-lg: 48px;--btn-padding-sm: var(--space-2) var(--space-3);--btn-padding-md: var(--space-3) var(--space-4);--btn-padding-lg: var(--space-4) var(--space-6);--input-height: 40px;--input-padding: var(--space-3) var(--space-4);--card-padding: var(--space-4);--card-gap: var(--space-4);--card-radius: var(--radius-lg);--modal-padding: var(--space-6);--modal-radius: var(--radius-xl);--modal-max-width-sm: 400px;--modal-max-width-md: 500px;--modal-max-width-lg: 600px;--modal-max-width-xl: 800px;--cover-filter: blur(50px) brightness(.4);--cover-radius: var(--radius-md);--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-success: #10b981;--color-success-hover: #059669;--color-warning: #f59e0b;--color-warning-hover: #d97706;--color-info: #3b82f6;--color-info-hover: #2563eb}:lang(ja){--font-family: var(--font-family-ja)}:root[data-theme=monochrome],.theme-swatch[data-theme=monochrome]{color-scheme:dark;--background: #0a0a0a;--foreground: #f5f5f5;--card: #141414;--card-foreground: #f5f5f5;--primary: #f5f5f5;--primary-foreground: #0a0a0a;--secondary: #1f1f1f;--secondary-foreground: #e0e0e0;--muted: #1f1f1f;--muted-foreground: #a0a0a0;--border: #2a2a2a;--input: #1f1f1f;--ring: #f5f5f5;--highlight: #f5f5f5;--highlight-rgb: 245, 245, 245;--active-highlight: var(--highlight);--explicit-badge: #f5f5f5}:root[data-theme=dark],.theme-swatch[data-theme=dark]{color-scheme:dark;--background: #0a0a0a;--foreground: #ededed;--card: #1a1a1a;--card-foreground: #ededed;--primary: #3b82f6;--primary-foreground: #fff;--secondary: #2a2a2a;--secondary-foreground: #ededed;--muted: #2a2a2a;--muted-foreground: #a0a0a0;--border: #2a2a2a;--input: #2a2a2a;--ring: #3b82f6;--highlight: #3b82f6;--highlight-rgb: 59, 130, 246;--active-highlight: #3b82f6;--explicit-badge: #750a0a}:root[data-theme=ocean],.theme-swatch[data-theme=ocean]{color-scheme:dark;--background: #0c1821;--foreground: #e0f4ff;--card: #1b2838;--card-foreground: #e0f4ff;--primary: #06b6d4;--primary-foreground: #0c1821;--secondary: #1e3a52;--secondary-foreground: #e0f4ff;--muted: #1e3a52;--muted-foreground: #94c5e0;--border: #1e3a52;--input: #1e3a52;--ring: #06b6d4;--highlight: #06b6d4;--highlight-rgb: 6, 182, 212;--active-highlight: #06b6d4;--explicit-badge: #f43f5e}:root[data-theme=purple],.theme-swatch[data-theme=purple]{color-scheme:dark;--background: #0f0514;--foreground: #f3e8ff;--card: #1e0a2e;--card-foreground: #f3e8ff;--primary: #a855f7;--primary-foreground: #fff;--secondary: #2d1545;--secondary-foreground: #f3e8ff;--muted: #2d1545;--muted-foreground: #c4b5fd;--border: #2d1545;--input: #2d1545;--ring: #a855f7;--highlight: #a855f7;--highlight-rgb: 168, 85, 247;--active-highlight: #a855f7;--explicit-badge: #ec4899}:root[data-theme=forest],.theme-swatch[data-theme=forest]{color-scheme:dark;--background: #0a1409;--foreground: #e8f5e9;--card: #1a2e1a;--card-foreground: #e8f5e9;--primary: #22c55e;--primary-foreground: #0a1409;--secondary: #2d4a2d;--secondary-foreground: #e8f5e9;--muted: #2d4a2d;--muted-foreground: #86efac;--border: #2d4a2d;--input: #2d4a2d;--ring: #22c55e;--highlight: #22c55e;--highlight-rgb: 34, 197, 94;--active-highlight: #22c55e;--explicit-badge: #f59e0b}:root[data-theme=mocha],.theme-swatch[data-theme=mocha]{color-scheme:dark;--background: #1e1e2e;--foreground: #cdd6f4;--card: #313244;--card-foreground: #9399b2;--primary: #89b4fa;--primary-foreground: #313244;--secondary: #45475a;--secondary-foreground: #9399b2;--muted: #313244;--muted-foreground: #a6adc8;--border: #313244;--input: #45475a;--ring: #89b4fa;--highlight: #89b4fa;--highlight-rgb: 180, 190, 254;--active-highlight: #b4befe;--explicit-badge: #f9e2af}:root[data-theme=machiatto],.theme-swatch[data-theme=machiatto]{color-scheme:dark;--background: #24273a;--foreground: #cad3f5;--card: #363a4f;--card-foreground: #939ab7;--primary: #8aadf4;--primary-foreground: #363a4f;--secondary: #494d64;--secondary-foreground: #6e738d;--muted: #363a4f;--muted-foreground: #a5adcb;--border: #363a4f;--input: #494d64;--ring: #8aadf4;--highlight: #8aadf4;--highlight-rgb: 183, 189, 248;--active-highlight: #b7bdf8;--explicit-badge: #eed49f}:root[data-theme=frappe],.theme-swatch[data-theme=frappe]{color-scheme:dark;--background: #303446;--foreground: #c6d0f5;--card: #414559;--card-foreground: #949cbb;--primary: #8caaee;--primary-foreground: #313244;--secondary: #51576d;--secondary-foreground: #a5adce;--muted: #414559;--muted-foreground: #a5adce;--border: #414559;--input: #45475a;--ring: #8caaee;--highlight: #8caaee;--highlight-rgb: 186, 187, 241;--active-highlight: #babbf1;--explicit-badge: #e5c890}:root[data-theme=latte],.theme-swatch[data-theme=latte]{color-scheme:light;--background: #eff1f5;--foreground: #4c4f69;--card: #ccd0da;--card-foreground: #7c7f93;--primary: #1e66f5;--primary-foreground: #ccd0da;--secondary: #bcc0cc;--secondary-foreground: #9ca0b0;--muted: #ccd0da;--muted-foreground: #6c6f85;--border: #ccd0da;--input: #bcc0cc;--ring: #fdfdfd;--highlight: #1e66f5;--highlight-rgb: 114, 135, 253;--active-highlight: #7287fd;--explicit-badge: #df8e1d}:root[data-theme=white],.theme-swatch[data-theme=white]{color-scheme:light;--background: #f5f5f5;--foreground: #1a1a1a;--card: #e8e8e8;--card-foreground: #1a1a1a;--primary: #1a1a1a;--primary-foreground: #f5f5f5;--secondary: #ddd;--secondary-foreground: #2a2a2a;--muted: #e0e0e0;--muted-foreground: #555;--border: #ccc;--input: #e0e0e0;--ring: #1a1a1a;--highlight: #1a1a1a;--highlight-rgb: 26, 26, 26;--active-highlight: var(--highlight);--explicit-badge: #1a1a1a;--cover-filter: blur(50px) brightness(1.6) opacity(.35)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;font-family:var(--font-family, "Inter", sans-serif)!important}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%;overflow:hidden;font-size:var(--font-size-scale, 100%);overscroll-behavior-y:none}body{background-color:var(--background);color:var(--foreground);font-family:var(--font-family, "Inter", sans-serif)!important;overflow:hidden;transition:background-color .3s ease,color .3s ease;height:100%;position:fixed;width:100%;overscroll-behavior-y:none}.text-link{color:var(--primary);text-decoration:underline;cursor:pointer}.text-link:hover{color:var(--highlight)}kbd{background-color:var(--secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);font-size:var(--text-sm);font-family:inherit;box-shadow:var(--shadow-sm)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-md{font-size:var(--text-md)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-4xl{font-size:var(--text-4xl)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.leading-none{line-height:var(--leading-none)}.leading-tight{line-height:var(--leading-tight)}.leading-snug{line-height:var(--leading-snug)}.leading-normal{line-height:var(--leading-normal)}.leading-relaxed{line-height:var(--leading-relaxed)}.m-0{margin:var(--space-0)}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}svg{display:block;vertical-align:middle}img{max-width:100%;display:block;background-color:var(--muted);border:none}button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;transition:all var(--transition-fast)}button:disabled{cursor:not-allowed;opacity:.5}input,select,textarea{font-family:inherit;font-size:inherit;color:inherit;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);outline:none;transition:all var(--transition-fast)}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 2px rgb(var(--highlight-rgb) / .2)}span{display:inline-block}li{list-style:none}ul{padding:0;margin:0}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.m-6{margin:var(--space-6)}.m-8{margin:var(--space-8)}.mt-0{margin-top:var(--space-0)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-0{margin-bottom:var(--space-0)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.ml-0{margin-left:var(--space-0)}.ml-2{margin-left:var(--space-2)}.ml-4{margin-left:var(--space-4)}.mr-0{margin-right:var(--space-0)}.mr-2{margin-right:var(--space-2)}.mr-4{margin-right:var(--space-4)}.mx-0{margin-left:var(--space-0);margin-right:var(--space-0)}.mx-2{margin-left:var(--space-2);margin-right:var(--space-2)}.mx-4{margin-left:var(--space-4);margin-right:var(--space-4)}.my-0{margin-top:var(--space-0);margin-bottom:var(--space-0)}.my-2{margin-top:var(--space-2);margin-bottom:var(--space-2)}.my-4{margin-top:var(--space-4);margin-bottom:var(--space-4)}.p-0{padding:var(--space-0)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.px-0{padding-left:var(--space-0);padding-right:var(--space-0)}.px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.py-0{padding-top:var(--space-0);padding-bottom:var(--space-0)}.py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.gap-0{gap:var(--space-0)}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.rounded-none{border-radius:var(--radius-none)}.rounded-xs{border-radius:var(--radius-xs)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-none{box-shadow:var(--shadow-none)}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.text-muted{color:var(--muted-foreground)}.text-highlight{color:var(--highlight)}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.transition-fast{transition:all var(--duration-fast) var(--ease-in-out)}.transition-normal{transition:all var(--duration-normal) var(--ease-in-out)}.transition-slow{transition:all var(--duration-slow) var(--ease-in-out)}.app-container{display:grid;height:100vh;height:100dvh;min-height:0;grid-template:"banner banner" auto "sidebar main" 1fr "player player" auto / 210px 1fr}.top-banner-slot{grid-area:banner;display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s var(--ease-in-out)}.top-banner-slot.open{grid-template-rows:1fr}.top-banner-inner{min-height:0;overflow:hidden}.sidebar{grid-area:sidebar;min-height:0;background-color:var(--background);border-right:1px solid var(--border);padding:1.25rem;display:flex;flex-direction:column;gap:2rem;transition:transform .3s cubic-bezier(.4,0,.2,1)}.sidebar-content{display:flex;flex-direction:column;height:100%}.sidebar-nav.main{flex:1;flex-shrink:0}.sidebar-bottom-container{margin-top:auto;display:flex;flex-direction:column;flex:1;min-height:0}.sidebar-nav-bottom{margin-top:auto;padding-top:1rem;flex:0 0 auto;border-top:1px solid var(--border);background:var(--background);position:relative}.sidebar-nav-bottom:before{content:"";display:block;height:.5rem;margin-top:-.5rem}.main-content{grid-area:main;min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;padding:var(--spacing-xl);scroll-behavior:smooth;position:relative;padding-bottom:160px!important}.server-disruption-sidebar{display:flex;align-items:flex-start;gap:.375rem;padding:.4rem .6rem;margin-bottom:1rem;background:#f59e0b1f;border:1px solid rgb(245,158,11,.25);border-radius:var(--radius-md);color:#f59e0b;font-size:.7rem;line-height:1.3}.server-disruption-sidebar .disruption-icon{font-size:.8rem;flex-shrink:0;margin-top:1px}.server-disruption-sidebar .disruption-dismiss{margin-left:auto;background:none;border:none;color:#f59e0b;font-size:1rem;cursor:pointer;padding:0 .125rem;line-height:1;opacity:.7;transition:opacity .15s;flex-shrink:0}.server-disruption-sidebar .disruption-dismiss:hover{opacity:1}#page-background{position:absolute;top:0;left:0;width:100%;height:60vh;min-height:400px;z-index:0;background-size:cover;background-position:center 20%;background-repeat:no-repeat;opacity:0;transition:opacity .5s ease-in-out;mask-image:linear-gradient(to bottom,#000,#000c 40%,#0000);filter:var(--cover-filter);pointer-events:none}#page-background.active{opacity:1}:root[data-theme=white] #page-background{mask-image:linear-gradient(to bottom,#000,#0000)}.now-playing-bar{grid-area:player;padding:var(--spacing-sm) var(--spacing-md);display:grid;grid-template-columns:1fr .9fr 1fr;align-items:center;gap:var(--spacing-sm);z-index:2100;width:calc(96% - 190px)!important;left:calc(190px + 2%);bottom:max(15px,env(safe-area-inset-bottom))!important;border-radius:var(--radius);position:fixed!important;background-color:var(--card);background-color:color-mix(in srgb,var(--card) 85%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border);box-shadow:var(--shadow-2xl);transition:all var(--transition-normal) var(--ease-out-back);height:var(--player-bar-height-desktop);animation:slide-up var(--transition-slow) var(--ease-out-back)}:root[data-theme=white] .now-playing-bar{background-color:var(--card);background-color:color-mix(in srgb,var(--card) 80%,transparent);border-color:#0000001a}.sidebar-logo{display:flex;align-items:center;gap:6px;font-size:1.1rem;font-weight:600;margin-bottom:1rem}.sidebar-logo-link{display:flex;align-items:center;gap:6px;color:inherit;text-decoration:none}.sidebar-logo .app-logo{width:15px;height:15px;flex-shrink:0}.sidebar-logo span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}#sidebar-toggle{padding:0;flex-shrink:0}.sidebar-nav ul{list-style:none}.sidebar-nav .nav-item a{display:flex;align-items:center;gap:.75rem;padding:.75rem;border-radius:var(--radius);color:var(--muted-foreground);font-weight:500;transition:background-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);cursor:pointer}.search-bar .search-icon svg{width:20px;height:20px}@media(hover:hover){.sidebar-nav .nav-item a:hover{background-color:var(--secondary);color:var(--foreground);transform:translate(4px)}}.sidebar-nav .nav-item a.active{background-color:var(--primary);color:var(--primary-foreground)}.sidebar-nav .nav-item a svg{width:20px;height:20px;flex-shrink:0}.sidebar-nav.bottom{margin:0;padding:0}.sidebar-nav.bottom .nav-item a{padding:.5rem .75rem;gap:.5rem;font-size:.8125rem;font-weight:500}.sidebar-nav.bottom .nav-item a svg{width:17px;height:17px}.pinned-items-header{font-size:.75rem;text-transform:uppercase;color:var(--muted-foreground);padding:0 .75rem;margin-bottom:.5rem;font-weight:600;letter-spacing:.05em}#pinned-items-nav{margin-top:auto;min-height:0;flex:1 1 auto;margin-bottom:0;padding-bottom:0;overflow:visible}#pinned-items-list .nav-item a{gap:.75rem;padding:.5rem .75rem;font-size:.9rem}#pinned-items-list .nav-item a .pinned-item-cover{width:24px;height:24px;border-radius:var(--radius-sm);flex-shrink:0;object-fit:cover}#pinned-items-list .nav-item a .pinned-item-cover.artist{border-radius:var(--radius-full)}#pinned-items-list .nav-item a .pinned-item-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.pinned-item-collage{width:24px;height:24px;border-radius:var(--radius-sm);flex-shrink:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;overflow:hidden}.pinned-item-collage img{width:100%;height:100%;object-fit:cover;background-color:var(--muted)}#sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:2150;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.main-header{display:flex;justify-content:flex-start;align-items:center;margin-bottom:var(--spacing-xl);gap:var(--spacing-md);position:relative;z-index:1000;width:100%}.header-account-control{position:relative;flex-shrink:0;margin-left:auto}#header-account-dropdown{left:auto;right:0}#header-account-btn{display:flex;align-items:center;justify-content:center}.header-account-icon-wrap{display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%}.navigation-controls{display:flex;gap:.5rem;align-items:center}.nav-btn{width:32px;height:32px;border-radius:var(--radius-full);background-color:var(--card);border:1px solid var(--border);color:var(--foreground);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow-sm)}@media(hover:hover){.nav-btn:hover{background-color:var(--secondary);transform:scale(1.1);box-shadow:var(--shadow-md)}}.nav-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.hamburger-menu{display:none;background:transparent;border:none;color:var(--foreground);cursor:pointer;padding:.5rem;border-radius:var(--radius);transition:background-color var(--transition)}.hamburger-menu:hover{background-color:var(--secondary)}.search-bar{width:auto;max-width:100%;min-width:0;flex:1}.search-bar input{font-size:1rem;transition:box-shadow var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast)}.search-bar,.track-list-search-container{position:relative;display:flex;align-items:center}.search-bar .search-icon,.track-list-search-container .search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--muted-foreground);pointer-events:none;display:flex;align-items:center;justify-content:center}.search-bar input,.track-list-search-input{width:100%;padding:.75rem 2.5rem;background-color:var(--input);border:1px solid var(--border);border-radius:var(--radius);color:var(--foreground);transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.search-bar input:focus,.track-list-search-input:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 3px rgb(var(--highlight-rgb) / .2)}.search-clear-btn{position:absolute;right:.25rem;top:50%;transform:translateY(-50%);font-size:1.5rem;line-height:1;z-index:1}body.has-page-background .search-bar input{background-color:var(--background)}@media(hover:hover){body.has-page-background .track-item:hover{background-color:var(--track-hover-bg, var(--secondary));transform:scale(1.005)}}.search-history{position:absolute;top:100%;left:0;right:0;background:var(--card);border:1px solid var(--border);border-top:none;border-radius:0 0 var(--radius) var(--radius);max-height:300px;overflow-y:auto;z-index:9999;box-shadow:var(--shadow-xl);margin-top:-1px;animation:slide-up var(--transition-fast) var(--ease-out-back);transform-origin:top}.search-history-item{padding:.75rem 1rem;display:flex;align-items:center;gap:.75rem;cursor:pointer;transition:background var(--transition)}.search-history-item:hover{background:var(--secondary)}.search-history-item .history-icon{color:var(--muted-foreground);opacity:.5;flex-shrink:0}.search-history-item .query-text{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-history-item .delete-history-btn{padding:4px;color:var(--muted-foreground);opacity:.5;transition:opacity var(--transition);display:flex;align-items:center;justify-content:center;flex-shrink:0}.search-history-item .delete-history-btn:hover{opacity:1;color:#ef4444}.search-history-clear-all{padding:.75rem 1rem;text-align:center;font-size:.85rem;color:var(--primary);cursor:pointer;border-top:1px solid var(--border);transition:background var(--transition)}.search-history-clear-all:hover{background:var(--secondary)}.suggest-list{display:flex;flex-direction:column}.suggest-row{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;border-radius:var(--radius);cursor:pointer;transition:background var(--transition-fast);min-width:0}.suggest-row:hover{background:var(--secondary)}.suggest-thumb{width:48px;height:48px;object-fit:cover;border-radius:var(--radius-xs);flex-shrink:0;background:var(--secondary)}.suggest-thumb.round{border-radius:50%}.suggest-row-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.suggest-row-title{display:flex;align-items:center;gap:.35rem;min-width:0;font-size:var(--text-base);font-weight:var(--font-medium)}.suggest-row-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.suggest-row .explicit-badge{flex-shrink:0}.suggest-row-subtitle{font-size:var(--text-sm);color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.suggest-row-menu{flex-shrink:0;background:transparent;border:none;color:var(--muted-foreground);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-fast)}@media(hover:hover){.suggest-row:hover .suggest-row-menu{opacity:1}}.suggest-row-menu:hover{background:var(--border);color:var(--foreground)}input[type=search]::-webkit-search-cancel-button{appearance:none;display:none}.page{display:none;position:relative;z-index:1}.page.active{display:block;animation:fade-in-slide-up var(--transition-normal) var(--ease-out-back)}#page-shares,#page-changelog{max-width:800px;margin-inline:auto}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in-slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pop-in{0%{opacity:0;transform:scale(.9)}70%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(20px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes heart-beat{0%{transform:scale(1)}25%{transform:scale(1.2)}50%{transform:scale(.95)}to{transform:scale(1)}}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}.animate-spin{animation:spin 1s linear infinite}.content-section{margin-bottom:var(--spacing-2xl)}.section-title{font-size:1.75rem;font-weight:700;margin-bottom:var(--spacing-lg)}.section-header-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md)}.section-header-row .section-title{margin-bottom:0}.search-tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--border);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tab-rail{display:flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg)}.tab-rail .search-tabs{flex:1 1 auto;min-width:0;margin-bottom:0}.tab-rail-btn{flex:0 0 auto;padding:.25rem}.tab-rail-btn:disabled{opacity:.3;cursor:default;background:transparent}.tab-rail.no-overflow .tab-rail-btn{display:none}@media(hover:none)and (pointer:coarse){.tab-rail-btn{display:none}}.search-tabs::-webkit-scrollbar{display:none}.search-tab{background:transparent;border:none;color:var(--muted-foreground);padding:var(--spacing-sm) var(--spacing-lg);cursor:pointer;font-size:1rem;font-weight:500;border-bottom:2px solid transparent;white-space:nowrap;flex-shrink:0;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color var(--transition-fast),background-color var(--transition-fast),transform var(--transition-fast);position:relative}.search-tab:hover{color:var(--foreground);background-color:rgb(var(--highlight-rgb),.05)}.search-tab:active{transform:translateY(1px)}.search-tab.active{color:var(--foreground);border-bottom-color:var(--highlight)}.search-tab-content{display:none}.search-tab-content.active{display:block;animation:fade-in-slide-up .4s var(--ease-out-back)}.settings-tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--border);flex-wrap:wrap}.settings-tab{background:transparent;border:none;color:var(--muted-foreground);padding:var(--spacing-sm) var(--spacing-lg);cursor:pointer;font-size:1rem;font-weight:500;border-bottom:2px solid transparent;border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:color var(--transition-fast),background-color var(--transition-fast),transform var(--transition-fast);position:relative}.settings-tab:hover{color:var(--foreground);background-color:rgb(var(--highlight-rgb),.05)}.settings-tab:active{transform:translateY(1px)}.settings-tab.active{color:var(--foreground);border-bottom-color:var(--highlight)}.settings-tab-content{display:none;max-width:100%;min-width:0;overflow-x:auto;overflow-y:visible}.settings-tab-content.active{display:block;animation:fade-in-slide-up .4s var(--ease-out-back)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-lg)}.card{display:block;background-color:var(--card);padding:var(--spacing-md);border-radius:var(--radius);transition:transform var(--transition-normal),box-shadow var(--transition-normal),background-color var(--transition-normal);position:relative;border:1px solid transparent}@media(hover:hover){.card:hover{background-color:var(--secondary);transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--border)}}.card-image-wrapper{position:relative;margin-bottom:var(--spacing-md);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md);transition:box-shadow var(--transition-normal);aspect-ratio:1}.card:hover .card-image-wrapper{box-shadow:var(--shadow-xl)}.card-image{width:100%;height:100%;object-fit:cover;border-radius:var(--radius);transition:transform var(--transition-slow)}@media(hover:hover){.card:hover .card-image{transform:scale(1.05)}}.card-like-btn{position:absolute;right:2%;top:2%}.card-menu-btn{position:absolute;left:2%;top:2%}.card-like-btn,.card-menu-btn,.edit-playlist-btn,.delete-playlist-btn{background:#0006!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:50%!important;width:32px!important;height:32px!important;padding:0!important;display:flex!important;align-items:center;justify-content:center;opacity:0;transform:scale(.8);transition:transform var(--transition-fast),opacity var(--transition-fast),background-color var(--transition-fast)!important;z-index:10;color:#fff!important;border:1px solid rgb(255,255,255,.1)!important;cursor:pointer}@media(hover:hover){.card-like-btn:hover,.card-menu-btn:hover,.edit-playlist-btn:hover,.delete-playlist-btn:hover{background:#000000b3!important;transform:scale(1.1) rotate(5deg)!important;border-color:#ffffff4d!important}}.card-like-btn.active{opacity:1;transform:scale(1);transition-delay:.05s}@media(hover:hover){.card:hover .card-like-btn,.card:hover .card-menu-btn,.card:hover .edit-playlist-btn,.card:hover .delete-playlist-btn{opacity:1;transform:scale(1);transition-delay:.05s}}.card-like-btn.active{color:#ef4444!important}.edit-playlist-btn{position:absolute;top:2%;right:2%}.delete-playlist-btn{position:absolute;top:2%;left:2%}.delete-playlist-btn:hover{color:#ef4444!important}.card-collage{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;overflow:hidden;padding:0}.card-collage img{width:100%;height:100%;object-fit:cover;border-radius:0;margin:0}.card-collage.items-3 img:first-child{grid-row:span 2;height:100%}.card-collage.items-2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.card.artist .card-image{border-radius:var(--radius-full)}.card-image-wrapper .explicit-badge{position:absolute;top:.5rem;right:.5rem}.card-title{font-weight:600;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-subtitle{font-size:.9rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-title>span{display:inline}.card-subtitle span{display:inline}.section-title.has-layout-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.card-layout-toggle{display:inline-flex;gap:2px;padding:2px;background:var(--secondary);border-radius:var(--radius);flex:0 0 auto}.card-layout-toggle button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;background:transparent;color:var(--muted-foreground);border-radius:calc(var(--radius) - 3px);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.card-layout-toggle button:hover{color:var(--foreground)}.card-layout-toggle button.active{background:var(--card);color:var(--foreground)}body.cards-list .card-grid{display:flex;flex-direction:column;gap:var(--spacing-xs)}body.cards-list .card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm)}body.cards-list .card:hover{transform:none;box-shadow:none}body.cards-list .card-image-wrapper{width:56px;height:56px;flex:0 0 auto;margin:0}body.cards-list .card:hover .card-image{transform:none}body.cards-list .card-info{flex:1 1 auto;min-width:0}body.cards-list .card-title{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:1rem}body.cards-list .card-play-btn,body.cards-list .card-like-btn{display:none!important}body.cards-list .card-menu-btn{position:static;opacity:1;transform:none;margin-left:auto;flex:0 0 auto}body.cards-list :is(#page-playlists,#page-library) .library-create-dashed-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm)}body.cards-list :is(#page-playlists,#page-library) .library-create-dashed-art{width:56px;height:56px;aspect-ratio:auto;flex:0 0 auto;margin-bottom:0}.heart-icon{transition:transform .2s ease,color .2s ease}.like-btn:hover .heart-icon{color:#ef4444}.heart-icon.filled{color:#ef4444;fill:#ef4444;stroke:#ef4444;animation:heart-beat .4s var(--ease-elastic)}@media(hover:hover){.track-item:hover .like-btn{opacity:1}}.like-btn.active .heart-icon{color:#ef4444;fill:#ef4444}.low-quality-chip{background-color:var(--secondary);color:var(--muted-foreground);font-size:.6rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;height:1rem;padding:0 .3rem;border-radius:var(--radius-xs);margin-left:.5rem;vertical-align:middle;line-height:1;flex-shrink:0}.explicit-badge{background-color:var(--secondary);color:var(--muted-foreground);font-size:.6rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;padding-top:.39em;border-radius:var(--radius-xs);margin-left:.5rem;vertical-align:middle;line-height:1}.track-list{display:flex;flex-direction:column;gap:2px}#home-recommended-songs,#artist-detail-tracks,#playlist-detail-recommended{display:grid;grid-template-columns:repeat(auto-fill,minmax(480px,1fr));gap:2px var(--spacing-xl)}#artist-detail-in-library{display:grid;grid-template-columns:repeat(auto-fill,minmax(580px,1fr));gap:2px var(--spacing-xl)}#artist-detail-in-library[hidden]{display:none}.library-source{color:var(--muted-foreground);font-size:inherit;display:flex;align-items:center;min-width:0;flex-shrink:1;overflow:hidden;cursor:pointer}.library-artist-flex{display:flex;align-items:center;gap:.35em;min-width:0}.library-artist-name,.library-year,.library-source-label{flex-shrink:0;white-space:nowrap}.library-source-link{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;transition:color var(--transition)}.library-source:hover .library-source-link{color:var(--highlight);text-decoration:underline}@media(max-width:1100px){#home-recommended-songs,#artist-detail-tracks,#artist-detail-in-library,#playlist-detail-recommended{grid-template-columns:1fr}}.album-content-layout{display:block}.album-content-layout:after{content:"";display:table;clear:both}@media(min-width:1200px){#album-detail-tracklist{float:left;width:55%;margin-right:var(--spacing-2xl);margin-bottom:var(--spacing-2xl)}.album-content-layout .content-section{margin-top:0!important;margin-bottom:var(--spacing-2xl)}.album-content-layout .content-section .card-grid{display:block;gap:0}.album-content-layout .content-section .card-grid .card{display:inline-block;vertical-align:top;width:155px;margin:0 var(--spacing-md) var(--spacing-md) 0;white-space:normal}.album-content-layout .content-section .card-grid .card.compact{display:inline-flex;vertical-align:top;width:220px;margin-right:var(--spacing-sm)}.album-content-layout .section-title{font-size:1.4rem;margin-bottom:var(--spacing-md);clear:none}.album-content-layout.more-below #album-detail-tracklist{float:none;width:auto;margin-right:0}}.track-list-header{display:grid;grid-template-columns:40px 1fr 80px 48px;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm);color:var(--muted-foreground);font-size:.9rem;border-bottom:1px solid var(--border);margin-bottom:var(--spacing-xs)}.track-list-header .duration-header{justify-self:flex-end}.is-editable .track-list-header .duration-header{padding-right:1.5rem}.track-item{display:grid;grid-template-columns:40px 1fr 60px auto;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);align-items:center;transition:background-color var(--transition-fast),transform var(--transition-fast);cursor:pointer;border:1px solid transparent;position:relative}.track-item.no-duration{grid-template-columns:40px 1fr auto}.track-item.no-duration .track-item-duration{display:none}.track-item.no-duration.track-item--inline-like{grid-template-columns:40px 1fr auto auto}@media(hover:hover){.track-item:hover{background-color:var(--secondary);transform:scale(1.005)}}.track-item:active{transform:scale(.99)}.track-item.playing{background-color:rgb(var(--highlight-rgb),.15);border-left:3px solid var(--highlight);padding-left:calc(var(--spacing-sm) - 3px)}.track-item.playing .track-item-details .title{color:var(--highlight)}.track-item.video-track-item{gap:var(--spacing-xl)}.track-item.unavailable{opacity:.5;cursor:not-allowed;filter:grayscale(1)}.track-item.unavailable .title,.track-item.unavailable .artist,.track-item.unavailable .track-item-duration{color:var(--muted-foreground)}.track-item.dragging{opacity:.5;z-index:2000;pointer-events:auto}.track-checkbox{display:none;width:18px;height:18px;cursor:pointer;color:var(--muted-foreground);flex-shrink:0;transition:color var(--transition-fast);position:absolute;left:8px;z-index:1}.multi-select-mode .track-checkbox,body.multi-select-mode .track-checkbox{display:flex!important;align-items:center;justify-content:center}.track-checkbox:hover{color:var(--foreground)}.track-checkbox.checked{color:var(--primary)}.track-item.selected{background-color:rgb(var(--highlight-rgb),.1)}body.multi-select-mode .track-item{cursor:default;padding-left:36px}body.multi-select-mode .track-item:hover{transform:none}.selection-bar{display:none;position:fixed;bottom:100px;left:50%;transform:translate(-50%);background:var(--primary);color:var(--primary-foreground);padding:12px 20px;border-radius:24px;font-size:.9rem;font-weight:500;z-index:1000;box-shadow:0 4px 20px #0000004d;gap:12px;align-items:center}.selection-bar.visible{display:flex}.selection-bar .selection-count{color:var(--primary-foreground)}.selection-bar .selection-actions{display:flex;gap:8px}.selection-bar button{background:transparent;border:1px solid var(--primary-foreground);color:var(--primary-foreground);padding:6px 12px;border-radius:16px;cursor:pointer;font-size:.85rem;transition:background var(--transition-fast)}.selection-bar button:hover{background:#fff3}.track-number{color:var(--muted-foreground);text-align:center;font-size:.9rem;display:flex;align-items:center;justify-content:center}.track-item-info{display:flex;align-items:center;gap:var(--spacing-md);min-width:0}.track-item-cover{width:40px;height:40px;background-color:var(--muted);border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.track-item-details{min-width:0}.track-item-details .title{font-weight:500;display:flex;align-items:center;min-width:0}.track-item-details .title-text,.track-info .details .title-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-item-details .title .explicit-badge,.track-info .details .title .explicit-badge{flex-shrink:0}.track-item-details .artist{font-size:.9rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-item--inline-like{grid-template-columns:40px 1fr auto 3.25rem auto}.track-item-inline-like{display:flex;align-items:center;justify-content:center}.track-item.track-item--columns{grid-template-columns:40px minmax(0,1fr) 4rem 2.5rem 2.75rem 2.75rem}.track-item-popularity{display:flex;justify-content:flex-end}.track-item-popularity .track-popularity{margin-left:0;transform:translateY(-3px)}.track-item-plays{justify-self:end;display:flex;align-items:baseline;gap:4px;color:var(--muted-foreground);font-size:.875rem;font-variant-numeric:tabular-nums;white-space:nowrap}.track-item-plays.top{color:var(--foreground);font-weight:600}.track-item-plays-icon{display:flex}.track-item-plays-icon svg{width:.85em;height:.85em;transform:translateY(.07em)}.track-popularity{display:flex;flex-shrink:0;margin-left:auto;align-items:stretch;gap:2px;height:10px}.track-popularity-bar{display:block;width:3px;border-radius:1px;background:var(--muted-foreground);opacity:.3}.track-popularity-bar.on{background:var(--foreground);opacity:.85}.track-row-like-btn{display:flex;align-items:center;justify-content:center;padding:.25rem;background:transparent;border:none;color:var(--muted-foreground);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--transition-fast),transform var(--transition-fast)}@media(hover:hover){.track-row-like-btn:hover{color:var(--foreground);transform:scale(1.08)}}.track-row-like-btn.active{color:#ef4444}.track-item-duration{color:var(--muted-foreground);justify-self:flex-end;font-variant-numeric:tabular-nums}.track-item-actions{justify-self:flex-end;display:flex;align-items:center;min-width:40px;justify-content:flex-end}.track-menu-btn{background:transparent;border:none;color:var(--muted-foreground);cursor:pointer;padding:.5rem;border-radius:var(--radius);transition:all var(--transition);display:flex;align-items:center;justify-content:center;opacity:.6;z-index:10}@media(hover:hover){.track-item:hover .track-menu-btn{opacity:1;padding:.5rem;margin:0}}.track-menu-btn:hover{background-color:rgb(var(--highlight-rgb),.2);color:var(--foreground)}.track-action-btn.active{opacity:1}.track-action-btn{background:transparent;border:none;color:var(--muted-foreground);cursor:pointer;padding:.5rem;border-radius:var(--radius);transition:all var(--transition);display:flex;align-items:center;justify-content:center;flex-shrink:0}.track-action-btn:hover{background-color:rgb(var(--highlight-rgb),.2);color:var(--foreground)}.detail-header{display:flex;align-items:flex-start;gap:var(--spacing-xl);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-md)}.detail-header-image{width:200px;height:200px;flex-shrink:0;background-color:var(--muted);border-radius:var(--radius);object-fit:cover;box-shadow:var(--shadow-lg);transition:opacity .3s ease-in-out}.detail-header-cover-container{position:relative;flex-shrink:0}.low-quality-badge{position:absolute;bottom:var(--spacing-sm);left:var(--spacing-sm);background-color:#000000b3;color:#f5f5f5;font-size:var(--text-xs);font-weight:var(--font-semibold);padding:.2rem .6rem;border-radius:var(--radius-full);line-height:1.2;z-index:var(--z-docked)}.detail-header-collage{width:200px;height:200px;flex-shrink:0;background-color:var(--muted);border-radius:var(--radius);box-shadow:var(--shadow-lg);overflow:hidden;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.detail-header-collage img{width:100%;height:100%;object-fit:cover;border-radius:0;margin:0;background-color:var(--muted)}.detail-header-image.loading{opacity:.3}.detail-header-image.artist{border-radius:var(--radius-full)}.detail-header-banner{position:absolute;top:0;left:0;width:100%;height:100%;z-index:0;overflow:hidden;opacity:0;transition:opacity 1s ease-in-out}.detail-header-banner video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;filter:brightness(.6);display:block}@property --artist-tint-a{syntax: "<color>"; inherits: true; initial-value: #141414;}@property --artist-tint-b{syntax: "<color>"; inherits: true; initial-value: #1c1c1c;}@property --artist-tint-c{syntax: "<color>"; inherits: true; initial-value: #262626;}#page-artist .detail-header{position:relative;isolation:isolate;padding:9rem 3rem 3.5rem;border-radius:0;overflow:hidden;margin-top:-8rem;margin-left:calc(var(--spacing-xl) * -1);margin-right:calc(var(--spacing-xl) * -1);margin-bottom:var(--spacing-lg);min-height:480px;display:flex;align-items:center;color:#fff;transition:--artist-tint-a .6s ease,--artist-tint-b .6s ease,--artist-tint-c .6s ease}#page-artist .detail-header:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,var(--artist-tint-a) 0%,var(--artist-tint-b) 45%,var(--artist-tint-c) 100%);-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 7rem),transparent calc(100% - 1rem));mask-image:linear-gradient(to bottom,#000 calc(100% - 7rem),transparent calc(100% - 1rem))}#page-artist .detail-header-image{position:absolute;top:0;right:0;bottom:0;width:58%;height:100%;margin:0;border:0;border-radius:0;box-shadow:none;background:none;object-fit:cover;object-position:center 20%;-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 45%),linear-gradient(to bottom,#000 calc(100% - 7rem),transparent calc(100% - 1rem));-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0%,#000 45%),linear-gradient(to bottom,#000 calc(100% - 7rem),transparent calc(100% - 1rem));mask-composite:intersect;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;z-index:0}#page-artist .detail-header-info{position:relative;z-index:2;width:52%;min-width:0;text-shadow:0 1px 12px rgb(0 0 0 / .35)}#page-artist .detail-header-info .type{font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.12em;text-transform:uppercase;color:#ffffffb3;margin-bottom:.5rem}#page-artist .detail-header-info .title{font-size:clamp(2rem,5.5vw,4.75rem);letter-spacing:-.04em;line-height:1}#page-artist .detail-header-info .meta{color:#ffffffbf;margin-top:.75rem}#page-artist .artist-canonical-hint{margin-top:.5rem;font-size:.9rem}#page-artist .artist-canonical-hint a{color:#fff;text-decoration:underline;text-underline-offset:.2em}#page-artist .artist-canonical-hint a:hover{color:var(--highlight)}@media(pointer:coarse){#page-artist .artist-canonical-hint a{padding-block:12px}}#page-artist .detail-header-actions{margin-top:1.5rem;gap:.625rem}#page-artist .detail-header-actions .btn-primary,#page-artist .detail-header-actions .btn-secondary{width:44px;height:44px;border:0;background:#ffffff1a;color:#fff;box-shadow:none;text-shadow:none}#page-artist .detail-header-actions .btn-primary:hover,#page-artist .detail-header-actions .btn-secondary:hover{background:#ffffff2e;filter:none}#page-artist .detail-header-actions #artist-menu-btn{width:44px!important;height:44px!important;background:#ffffff1a!important;border:0!important;-webkit-backdrop-filter:none;backdrop-filter:none}@media(hover:hover){#page-artist .detail-header-actions #artist-menu-btn:hover{background:#ffffff2e!important;transform:none!important}}#page-artist #play-artist-btn,#page-artist #shuffle-artist-btn{width:auto;padding:0 1.25rem 0 1rem;gap:.5rem;font-size:.9rem;font-weight:var(--font-semibold)}#page-artist #play-artist-btn span,#page-artist #shuffle-artist-btn span{display:inline}#page-artist #play-artist-btn,#page-artist #play-artist-btn:hover{background:#fff;color:#000}@media(hover:hover){#page-artist #play-artist-btn:hover{transform:scale(1.03)}}@media(max-width:1024px){#page-artist .detail-header{margin-top:-7rem;margin-left:calc(var(--spacing-lg) * -1);margin-right:calc(var(--spacing-lg) * -1);padding:8rem 2rem 3rem;min-height:420px}}@media(max-width:768px){#page-artist .detail-header{margin-top:-6rem;margin-left:calc(var(--spacing-md) * -1);margin-right:calc(var(--spacing-md) * -1);padding:15rem 1rem 2rem;min-height:0;align-items:flex-end}#page-artist .detail-header-image{width:100%;height:22rem;bottom:auto;-webkit-mask-image:linear-gradient(to bottom,#000 40%,transparent 100%);mask-image:linear-gradient(to bottom,#000 40%,transparent 100%)}#page-artist .detail-header-info{width:100%}}@media(max-width:480px){#page-artist .detail-header{margin-top:-5rem;margin-left:-1rem;margin-right:-1rem;padding-top:12rem}#page-artist .detail-header-image{height:18rem}#page-artist .detail-header-info .meta{font-size:.85rem}#page-artist .detail-header-actions{gap:.5rem}#page-artist .detail-header-actions .btn-primary,#page-artist .detail-header-actions .btn-secondary,#page-artist .detail-header-actions #artist-menu-btn{width:40px!important;height:40px!important}#page-artist #play-artist-btn{width:auto!important}#page-artist #shuffle-artist-btn{padding:0}#page-artist #shuffle-artist-btn span{display:none}}@property --cover-tint{syntax: "<color>"; inherits: true; initial-value: #262626;}@property --cover-tint-light{syntax: "<color>"; inherits: true; initial-value: #dcdcdc;}#page-album .detail-header,#page-playlist .detail-header,#page-playlist-local .detail-header{--cover-band: var(--cover-tint);position:relative;isolation:isolate;transition:--cover-tint .6s ease,--cover-tint-light .6s ease}:root[data-theme=latte] #page-album .detail-header,:root[data-theme=latte] #page-playlist .detail-header,:root[data-theme=latte] #page-playlist-local .detail-header,:root[data-theme=white] #page-album .detail-header,:root[data-theme=white] #page-playlist .detail-header,:root[data-theme=white] #page-playlist-local .detail-header{--cover-band: var(--cover-tint-light)}#page-album .detail-header:before,#page-playlist .detail-header:before,#page-playlist-local .detail-header:before{content:"";position:absolute;z-index:-1;top:-8rem;bottom:0;left:calc(var(--spacing-xl) * -1);right:calc(var(--spacing-xl) * -1);background:linear-gradient(to bottom,var(--cover-band) 30%,transparent);pointer-events:none}@media(max-width:1024px){#page-album .detail-header:before,#page-playlist .detail-header:before,#page-playlist-local .detail-header:before{top:-7rem;left:calc(var(--spacing-lg) * -1);right:calc(var(--spacing-lg) * -1)}}@media(max-width:768px){#page-album .detail-header:before,#page-playlist .detail-header:before,#page-playlist-local .detail-header:before{top:-6rem;left:calc(var(--spacing-md) * -1);right:calc(var(--spacing-md) * -1)}}@media(max-width:480px){#page-album .detail-header:before,#page-playlist .detail-header:before,#page-playlist-local .detail-header:before{top:-5rem;left:-1rem;right:-1rem}}.detail-header-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgb(0,0,0,.4) 0%,rgb(0,0,0,0) 40%,rgb(0,0,0,.2) 70%,var(--background) 100%);z-index:1}@media(min-width:769px){#page-album .detail-header,#page-playlist .detail-header,#page-playlist-local .detail-header{--album-cover-size: 232px}#page-album .detail-header-image,#page-playlist .detail-header-image,#page-playlist-local .detail-header-image,#page-playlist-local .detail-header-collage{width:var(--album-cover-size);height:var(--album-cover-size)}#page-album .detail-header-info,#page-playlist .detail-header-info,#page-playlist-local .detail-header-info{flex:1;min-width:0;height:var(--album-cover-size);display:flex;flex-direction:column}#page-album .detail-header-info .title{flex-wrap:nowrap}#page-album .detail-header-info .title .title-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}#page-playlist .detail-header-info .title,#page-playlist-local .detail-header-info .title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}#page-album .detail-header-info .title .explicit-badge{flex-shrink:0}#page-album .detail-header-info .meta,#page-playlist .detail-header-info .meta,#page-playlist-local .detail-header-info .meta{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#page-album .detail-header-actions,#page-playlist .detail-header-actions,#page-playlist-local .detail-header-actions{margin-top:auto}}.detail-header-info .type{font-weight:600;margin-bottom:.5rem}.detail-header-info .title{font-size:4rem;font-weight:800;line-height:1.1;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;overflow-wrap:anywhere;word-break:normal;min-width:0}.detail-header-info .title.long-title{font-size:2.5rem}.detail-header-info .title.very-long-title{font-size:1.75rem}.artist-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-left:1rem}.artist-tag{background-color:var(--secondary);color:var(--muted-foreground);padding:.15rem .6rem;border-radius:var(--radius-full);font-size:.75rem;font-weight:500;text-transform:capitalize}.detail-header-info .meta{color:var(--muted-foreground);margin-top:1rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.detail-header-info .meta a{color:var(--foreground);text-decoration:none;transition:color var(--transition)}.detail-header-info .meta a:hover{color:var(--highlight)}.detail-header-actions{display:flex;gap:.5rem;margin-top:1.5rem;flex-wrap:wrap;align-items:center}.detail-header-actions .btn-primary,.detail-header-actions .btn-secondary{width:40px;height:40px;padding:0;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0}#page-party-detail .detail-header-actions .btn-primary,#page-party-detail .detail-header-actions .btn-secondary{width:auto;height:auto;padding:.6rem 1.2rem;border-radius:var(--radius-full)}#page-party-detail .detail-header-actions .btn-primary span,#page-party-detail .detail-header-actions .btn-secondary span{display:inline}.detail-header-actions .card-menu-btn,.detail-header-actions #album-menu-btn{position:static!important;opacity:1!important;transform:none!important}.detail-header-actions .btn-primary span,.detail-header-actions .btn-secondary span{display:none}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;background-color:var(--primary);color:var(--primary-foreground);border:none;border-radius:var(--radius-full);font-weight:600;font-size:.95rem;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),filter var(--transition-fast);box-shadow:var(--shadow-sm);-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}@media(hover:hover){.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-glow);filter:brightness(1.1)}}.btn-primary:active{transform:scale(.96) translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary svg{flex-shrink:0;transition:transform var(--transition-fast)}@media(hover:hover){.btn-primary:hover svg{transform:scale(1.1)}}.btn-secondary{padding:.5rem 1rem;background-color:var(--secondary);color:var(--foreground);border:none;border-radius:var(--radius);cursor:pointer;font-weight:500;font-size:.8333rem;transition:all var(--transition)}.btn-secondary:hover{background-color:var(--muted);filter:brightness(1.1)}.btn-secondary:active{transform:scale(.98)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary.danger{background:#ef4444;color:#fff}.btn-secondary.danger:hover{background:#dc2626}.modal-actions .btn-secondary{padding:.875rem 1.75rem;border-radius:var(--radius-full);font-weight:600;font-size:.95rem}.settings-list{max-width:800px;width:100%;min-width:0;box-sizing:border-box}.settings-group{border-bottom:1px solid var(--border);padding:var(--spacing-lg) 0;display:flex;flex-direction:column;gap:var(--spacing-md)}.settings-group .setting-item{border-bottom:none;padding:0}.sidebar-settings-section{display:flex;flex-direction:column;gap:0}.sidebar-settings-section-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-foreground);margin-bottom:0}.sidebar-settings-section .sidebar-settings-section-label+.setting-item{margin-top:var(--spacing-sm)}.sidebar-settings-section .setting-item+.setting-item{margin-top:var(--spacing-md)}.setting-item{display:flex;justify-content:space-between;padding:var(--spacing-lg) 0;border-bottom:1px solid var(--border);gap:var(--spacing-lg);min-width:0}.setting-item.sidebar-setting-item{align-items:center;gap:var(--spacing-md);cursor:grab}.setting-item.sidebar-setting-item:before{content:"";width:14px;height:16px;border-radius:var(--radius-sm);flex-shrink:0;display:inline-block;background-image:radial-gradient(currentcolor 1.2px,transparent 1.3px);background-size:6px 6px;background-position:center;background-repeat:repeat;color:var(--muted-foreground)}.setting-item.sidebar-setting-item .info{flex:1;min-width:0}.setting-item.sidebar-setting-item .toggle-switch{flex-shrink:0}.setting-item.sidebar-setting-item.dragging{opacity:.6;cursor:grabbing}.setting-item .info{display:flex;flex-direction:column;min-width:0}.setting-item .label{font-weight:500}.setting-item .description{font-size:.9rem;color:var(--muted-foreground)}.setting-item .info.setting-details{width:100%;display:block}.setting-item .info.setting-details .description{font-size:.8rem}.setting-item select,.setting-item input[type=number]{background-color:var(--input);color:var(--foreground);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;appearance:auto}.setting-item input[type=number]{width:100px}.setting-item input[type=range]{width:120px;accent-color:var(--accent);appearance:none;height:6px;background:var(--border);border-radius:var(--radius-full);outline:none}.setting-item input[type=range]::-webkit-slider-thumb{appearance:none;width:18px;height:18px;background:var(--primary);border-radius:var(--radius-full);cursor:pointer;transition:background-color var(--transition-fast)}.setting-item input[type=range]::-webkit-slider-thumb:hover{background:var(--highlight)}.playback-speed-control{display:flex;align-items:center;gap:var(--spacing-md)}.playback-speed-slider{appearance:none;width:150px;height:6px;background:var(--border);border-radius:var(--radius-full);cursor:pointer;outline:none}.playback-speed-slider::-webkit-slider-thumb{appearance:none;width:16px;height:16px;background:var(--primary);border-radius:50%;cursor:pointer;transition:transform .1s ease}.playback-speed-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.playback-speed-number-input{width:80px;padding:.25rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--input);color:var(--foreground);text-align:center;font-size:.9rem}.playback-speed-unit{font-size:.9rem;color:var(--muted-foreground);min-width:1rem}.playback-speed-number-input:focus{outline:none;border-color:var(--primary)}.playback-speed-number-input::-webkit-outer-spin-button,.playback-speed-number-input::-webkit-inner-spin-button{appearance:none;margin:0}.template-input{width:100%;max-width:400px;padding:.5rem;background-color:var(--input);border:1px solid var(--border);border-radius:var(--radius);color:var(--foreground);font-size:.9rem}.template-input:focus{outline:none;border-color:var(--ring)}.font-settings-container{flex-direction:column;align-items:flex-start;gap:1rem}.font-settings-container .info{width:100%}.font-input-group{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:500px}.font-type-select{width:100%;padding:.5rem;background-color:var(--input);color:var(--foreground);border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem}.font-section{display:flex;flex-direction:column;gap:.5rem}.font-section select,.font-input{width:100%;padding:.5rem;background-color:var(--input);color:var(--foreground);border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem}.font-name-input{margin-top:.25rem}.font-file-input{padding:.5rem;background-color:var(--input);color:var(--foreground);border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem;cursor:pointer}.font-file-input::file-selector-button{background-color:var(--secondary);color:var(--secondary-foreground);border:none;border-radius:var(--radius-sm);padding:.4rem .8rem;margin-right:.75rem;cursor:pointer;font-size:.85rem;transition:background-color var(--transition-fast)}.font-file-input::file-selector-button:hover{background-color:var(--secondary-hover)}.uploaded-fonts-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.uploaded-font-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius);font-size:.9rem}.uploaded-font-item .font-name{flex:1;color:var(--foreground)}.uploaded-font-item .font-actions{display:flex;gap:.5rem}.font-size-control{display:flex;align-items:center;gap:var(--spacing-md)}.font-size-slider{appearance:none;width:150px;height:6px;background:var(--border);border-radius:var(--radius-full);outline:none}.font-size-slider::-webkit-slider-thumb{appearance:none;width:18px;height:18px;background:var(--primary);border-radius:var(--radius-full);cursor:pointer;transition:background-color var(--transition-fast)}.font-size-slider::-webkit-slider-thumb:hover{background:var(--highlight)}.font-size-slider::-moz-range-thumb{width:18px;height:18px;background:var(--primary);border-radius:var(--radius-full);cursor:pointer;border:none;transition:background-color var(--transition-fast)}.font-size-slider::-moz-range-thumb:hover{background:var(--highlight)}.font-size-number-input{width:60px;padding:.4rem .5rem;background:var(--input);border:1px solid var(--border);border-radius:var(--radius);color:var(--foreground);font-size:.9rem;text-align:center;transition:border-color var(--transition-fast)}.font-size-number-input:hover{border-color:var(--primary)}.font-size-number-input:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 3px rgb(var(--highlight-rgb),.2)}.font-size-number-input::-webkit-outer-spin-button,.font-size-number-input::-webkit-inner-spin-button{appearance:none;margin:0}.font-size-number-input[type=number]{appearance:textfield}.font-size-unit{font-size:.9rem;color:var(--muted-foreground);margin-left:-.25rem}#font-size-reset{padding:.4rem .75rem;font-size:.85rem}.uploaded-font-item .btn-icon{padding:.25rem .5rem;background-color:var(--secondary);color:var(--secondary-foreground);border:none;border-radius:var(--radius-sm);font-size:.75rem;cursor:pointer;transition:background-color var(--transition-fast)}.uploaded-font-item .btn-icon:hover{background-color:var(--secondary-hover)}.uploaded-font-item .btn-delete{background-color:var(--destructive);color:var(--destructive-foreground)}.uploaded-font-item .btn-delete:hover{background-color:var(--destructive-hover)}.toggle-switch{position:relative;display:inline-block;width:40px;height:24px}.toggle-switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:var(--secondary);transition:background-color var(--transition-normal);border-radius:var(--radius-2xl);box-shadow:inset 0 2px 4px #0000001a}.slider:before{position:absolute;content:"";height:16px;width:16px;left:4px;bottom:4px;background-color:var(--foreground);transition:transform var(--transition-spring, .4s cubic-bezier(.175, .885, .32, 1.275));border-radius:var(--radius-full);box-shadow:0 2px 4px #0003}input:checked+.slider{background-color:var(--primary)}input:checked+.slider:before{transform:translate(16px);background-color:var(--primary-foreground);box-shadow:-2px 2px 4px #0000001a}@media(hover:hover){.toggle-switch:hover .slider:before{transform:scale(1.1)}}@media(hover:hover){.toggle-switch:hover input:checked+.slider:before{transform:translate(16px) scale(1.1)}}.toggle-switch input:disabled+.slider{opacity:.5;cursor:not-allowed}.toggle-switch input:disabled+.slider:before{box-shadow:none;transform:translate(0)}.toggle-switch input:disabled:checked+.slider:before{transform:translate(16px)}@media(hover:hover){.toggle-switch:hover input:disabled+.slider:before{transform:translate(0)}}@media(hover:hover){.toggle-switch:hover input:disabled:checked+.slider:before{transform:translate(16px)}}.track-info{display:flex;align-items:center;gap:1rem;min-width:0}.track-info .cover{width:56px;height:56px;border-radius:var(--radius-sm);background-color:var(--muted);object-fit:cover;flex-shrink:0}.track-info .details{min-width:0}.track-info .details .title{font-weight:500;display:flex;align-items:center;min-width:0;cursor:pointer;transition:color var(--transition)}.track-info .details .title:hover{color:var(--highlight)}.track-info .details .album{font-size:.8rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color var(--transition)}.track-info .details .album:hover{color:var(--highlight)}.track-info .details .artist{font-size:.8rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:color var(--transition-fast),transform var(--transition-fast);display:block;max-width:100%}@media(hover:hover){.track-info .details .artist:hover{color:var(--highlight);transform:translate(2px)}}#radio-btn.active{color:var(--primary)}#radio-btn.active svg{filter:drop-shadow(0 0 4px var(--primary))}#radio-loading-indicator{display:none;position:absolute;top:-35px;left:50%;transform:translate(-50%);background:var(--background-secondary);padding:6px 14px;border-radius:20px;font-size:.85rem;border:1px solid var(--border);box-shadow:var(--shadow-lg);align-items:center;gap:10px;z-index:100;white-space:nowrap;animation:radio-slide-up .3s cubic-bezier(.34,1.56,.64,1)}#radio-loading-indicator .animate-spin{width:14px;height:14px;border:2px solid var(--primary);border-top-color:transparent;border-radius:50%}#radio-loading-indicator span{font-weight:500}@keyframes radio-slide-up{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.player-controls{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.player-controls.waveform-loaded{gap:.1rem;margin-bottom:.3rem}.player-controls .buttons{display:flex;align-items:center;gap:var(--spacing-md)}.player-controls .buttons button{background:transparent;border:none;color:var(--muted-foreground);cursor:pointer;transition:transform var(--transition-fast),color var(--transition-fast),background-color var(--transition-fast);display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-full);position:relative;-webkit-tap-highlight-color:transparent}@media(hover:hover){.player-controls .buttons button:hover{transform:scale(1.1)}}.player-controls .buttons button:active{transform:scale(.9);color:var(--foreground);background-color:var(--secondary)}@media(hover:hover){.player-controls .buttons button:hover{color:var(--foreground);background-color:var(--secondary)}}.player-controls .buttons button.active{color:var(--active-highlight)}.player-controls .buttons button#repeat-btn.repeat-one:after{content:"1";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:block;line-height:1;text-box:trim-both cap alphabetic;font-size:.5rem;font-weight:700}.player-controls .buttons .play-pause-btn{background-color:var(--primary);color:var(--primary-foreground);width:36px;height:36px}@media(hover:hover){.player-controls .buttons .play-pause-btn:hover{transform:scale(1.05);background-color:var(--primary);color:var(--primary-foreground)}}.player-controls .buttons .play-pause-btn:active{transform:scale(.95);background-color:var(--primary);color:var(--primary-foreground)}.player-controls .progress-container{width:100%;max-width:500px;display:flex;align-items:center;gap:.75rem;font-size:.8rem;color:var(--muted-foreground);order:-1}.player-controls .progress-container span{min-width:40px;font-variant-numeric:tabular-nums;flex-shrink:0}#current-time{text-align:right}.progress-bar,.volume-bar{position:relative;cursor:pointer;user-select:none;touch-action:none}.progress-bar{flex-grow:1;height:6px;background-color:var(--secondary);border-radius:var(--radius-xs)}.progress-bar:hover{height:8px}.progress-bar .progress-fill{width:0;height:100%;background-color:var(--muted-foreground);border-radius:var(--radius-xs);transition:background-color .2s ease;position:relative;pointer-events:none}.progress-bar:hover .progress-fill{background-color:var(--highlight)}.progress-bar:hover .progress-fill:after,.progress-bar:active .progress-fill:after{content:"";position:absolute;right:-6px;top:50%;transform:translateY(-50%);width:12px;height:12px;background-color:var(--highlight);border-radius:var(--radius-full);box-shadow:0 2px 4px #0000004d}.progress-bar.has-waveform.waveform-loaded{height:28px}.progress-bar.has-waveform.waveform-loaded .progress-fill{background-color:var(--primary)}.progress-bar.has-waveform.waveform-loaded .progress-fill:after{display:none}#waveform-canvas{display:none}.volume-controls{display:flex;justify-content:center!important;align-items:flex-end!important;gap:.5rem!important;flex-direction:column!important;overflow:hidden}.volume-controls button{background:transparent;border:none;color:var(--muted-foreground);cursor:pointer;transition:all var(--transition);padding:.25rem;width:28px;height:28px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center}@media(hover:hover){.volume-controls button:hover{color:var(--foreground);background-color:var(--secondary)}}.volume-controls button:active{color:var(--foreground);background-color:var(--secondary)}.volume-controls .volume-bar{width:100px;height:4px;background-color:var(--secondary);border-radius:var(--radius-xs)}.volume-controls .volume-bar:hover{height:6px}.volume-controls .volume-bar .volume-fill{width:var(--volume-level, 70%);height:100%;background-color:var(--muted-foreground);border-radius:var(--radius-xs);transition:background-color .2s ease;position:relative;pointer-events:none}.volume-controls .volume-bar:hover .volume-fill{background-color:var(--highlight)}.volume-controls .volume-bar:hover .volume-fill:after,.volume-controls .volume-bar:active .volume-fill:after{content:"";position:absolute;right:-6px;top:50%;transform:translateY(-50%);width:12px;height:12px;background-color:var(--highlight);border-radius:var(--radius-full);box-shadow:0 2px 4px #0000004d}#sleep-timer-btn{position:relative;font-size:.8rem;font-weight:700;transition:all var(--transition)}#sleep-timer-btn:hover{color:var(--highlight)}#sleep-timer-btn.active{color:var(--primary);text-shadow:0 0 8px rgb(var(--highlight-rgb),.5)}#sleep-timer-btn svg{width:20px;height:20px}#sleep-timer-btn span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}#context-menu,#sort-menu,#export-playlist-menu,#eq-node-context-menu,#eq-empty-context-menu{display:none;position:fixed;background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;box-shadow:var(--shadow-lg);z-index:3000;min-width:160px;transform-origin:top left;animation:scale-in var(--transition-fast) var(--ease-out-back)}#context-menu ul,#sort-menu ul,#export-playlist-menu ul,#eq-node-context-menu ul,#eq-empty-context-menu ul{list-style:none}#context-menu li,#sort-menu li,#export-playlist-menu li,#eq-node-context-menu li,#eq-empty-context-menu li{padding:.5rem .75rem;margin-right:8px;cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast),transform var(--transition-fast);font-size:.9rem;display:flex;align-items:center}#sort-menu li.sort-active{font-weight:700}#context-menu li:hover,#sort-menu li:hover,#export-playlist-menu li:hover,#eq-node-context-menu li:hover,#eq-empty-context-menu li:hover{background-color:var(--secondary);transform:translate(4px);color:var(--foreground)}#context-menu li.separator,#eq-node-context-menu li.separator{height:1px;background-color:var(--border);margin:.5rem 0;padding:0;cursor:default;pointer-events:none}#context-menu li.separator:hover,#eq-node-context-menu li.separator:hover{background-color:var(--border);transform:none}#eq-node-context-menu li.eq-ctx-active{color:var(--primary);font-weight:600}.blocked-items-list{list-style:none;max-height:300px;overflow-y:auto}.blocked-items-list li{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background:var(--accent);border-radius:var(--radius-sm);margin-bottom:.25rem}.blocked-items-list li:hover{background:var(--secondary)}.blocked-items-list .item-info{flex:1;min-width:0}.blocked-items-list .item-name{font-weight:500;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.blocked-items-list .item-meta{font-size:.75rem;color:var(--muted-foreground)}.blocked-items-list .unblock-btn{background:transparent;border:none;color:var(--primary);cursor:pointer;padding:.25rem .5rem;font-size:.8rem;border-radius:var(--radius-sm)}.blocked-items-list .unblock-btn:hover{background:var(--secondary)}.track-item.blocked{opacity:.4;filter:grayscale(100%)}.track-item.blocked .track-item-info{text-decoration:line-through}.card.blocked{opacity:.4;filter:grayscale(100%)}.card.blocked .card-title,.card.blocked .card-subtitle{text-decoration:line-through}.queue-track-item.blocked{opacity:.4;filter:grayscale(100%)}.queue-track-item.blocked .track-item-details{text-decoration:line-through}#queue-modal-overlay{display:none;position:fixed;inset:0;background-color:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:3000;justify-content:center;align-items:center;animation:fade-in .2s cubic-bezier(.4,0,.2,1)}#queue-modal{background-color:var(--card);width:90%;max-width:500px;max-height:80vh;border-radius:var(--radius);display:flex;flex-direction:column;box-shadow:var(--shadow-xl);animation:scale-in .2s cubic-bezier(.4,0,.2,1)}#queue-modal-header{padding:1rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border)}#queue-modal-header h3{margin:0}#queue-modal-header #close-queue-btn{background:transparent;border:none;color:var(--muted-foreground);font-size:1.5rem;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);transition:all var(--transition)}#queue-modal-header #clear-queue-btn{background-color:transparent}#queue-modal-header #clear-queue-btn:hover,#queue-modal-header #close-queue-btn:hover{background-color:var(--secondary);color:var(--foreground)}#queue-list{overflow-y:auto;padding:.5rem}.queue-track-item{display:grid;grid-template-columns:32px 1fr auto auto auto;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm);border-radius:var(--radius);cursor:grab;transition:all var(--transition);margin-bottom:2px}.queue-track-item .queue-like-btn{background:transparent;border:none;color:var(--muted-foreground);cursor:pointer;padding:.5rem;border-radius:var(--radius);transition:all var(--transition);display:flex;align-items:center;justify-content:center;opacity:.2}@media(hover:hover){.queue-track-item:hover .queue-like-btn{opacity:1}}.queue-track-item .queue-like-btn:hover{background-color:rgb(var(--highlight-rgb),.2);color:var(--foreground)}.queue-track-item .queue-like-btn.active{color:#ef4444}.queue-track-item .queue-like-btn.active svg{fill:#ef4444;color:#ef4444}.queue-track-item:active{cursor:grabbing}.queue-track-item:hover{background-color:var(--secondary)}.queue-track-item.playing{background-color:rgb(var(--highlight-rgb),.15);border-left:3px solid var(--highlight);padding-left:calc(var(--spacing-sm) - 3px)}.queue-track-item .drag-handle{color:var(--muted-foreground);display:flex;align-items:center;justify-content:center;cursor:grab}.queue-track-item .queue-remove-btn{background:transparent;border:none;cursor:pointer;padding:.5rem;border-radius:var(--radius);transition:all var(--transition);display:flex;align-items:center;color:var(--foreground);justify-content:center;flex-shrink:0;opacity:.2}@media(hover:hover){.queue-track-item:hover .queue-remove-btn{opacity:1}}.queue-track-item .queue-remove-btn:hover{background-color:var(--background);color:var(--foreground)}.queue-track-item .queue-remove-btn svg{width:20px;height:20px}.placeholder-text{padding:2rem 1rem;color:var(--muted-foreground)}.placeholder-text.loading{animation:pulse 1.5s infinite ease-in-out}.skeleton{background:linear-gradient(90deg,var(--secondary) 0%,var(--muted) 50%,var(--secondary) 100%);background-size:200% 100%;animation:skeleton-loading 2s infinite ease-in-out;border-radius:var(--radius)}.skeleton-track{display:grid;grid-template-columns:40px 1fr 60px 40px;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md)}.skeleton-track.no-duration{grid-template-columns:40px 1fr 40px}.skeleton-track.no-duration .skeleton-track-duration{display:none}.skeleton-track-number{width:24px;height:20px;margin:0 auto}.skeleton-track-info{display:flex;align-items:center;gap:var(--spacing-md);min-width:0}.skeleton-track-cover{width:40px;height:40px;flex-shrink:0;border-radius:var(--radius-sm)}.skeleton-track-details{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--spacing-xs)}.skeleton-track-title{height:16px;width:60%;max-width:200px}.skeleton-track-artist{height:14px;width:40%;max-width:150px}.skeleton-track-duration{width:40px;height:14px}.skeleton-track-actions{width:24px;height:24px;justify-self:flex-end}.skeleton-card{background-color:var(--card);border-radius:var(--radius);padding:var(--spacing-md)}.skeleton-card-image{width:100%;aspect-ratio:1/1;margin-bottom:var(--spacing-md);border-radius:calc(var(--radius) - 4px)}.skeleton-card.artist .skeleton-card-image{border-radius:var(--radius-full)}.skeleton-card-title{height:18px;width:80%;margin-bottom:var(--spacing-xs)}.skeleton-card-subtitle{height:14px;width:60%}.skeleton-container{width:100%}#home-recommended-albums .skeleton-container,#home-recommended-artists .skeleton-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-lg)}#home-recommended-songs .skeleton-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(480px,1fr));gap:2px var(--spacing-xl)}@media(max-width:1100px){#home-recommended-songs .skeleton-container{grid-template-columns:1fr}}#api-instance-list{list-style:none;margin-bottom:1rem}#api-instance-list li{display:flex;align-items:center;gap:.75rem;padding:.75rem;background-color:var(--secondary);border-radius:var(--radius);margin-bottom:.5rem}#api-instance-list li .instance-url{flex-grow:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}#api-instance-list li .controls{display:flex;gap:.5rem}#api-instance-list li button{background:transparent;border:none;color:var(--muted-foreground);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:transform var(--transition-fast),color var(--transition-fast),background-color var(--transition-fast)}#api-instance-list li button:hover{color:var(--foreground);background-color:var(--muted);transform:scale(1.15)}#api-instance-list li button:disabled{opacity:.3;cursor:not-allowed}.theme-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1rem;margin-top:1rem}.theme-option{padding:1rem;border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all var(--transition);text-align:center;font-weight:500}.theme-option:hover{border-color:var(--highlight);background-color:var(--secondary)}.theme-option.active{border-color:var(--primary);background-color:var(--primary);color:var(--primary-foreground)}.custom-theme-editor{margin-top:1rem;padding:1rem;background-color:var(--secondary);border-radius:var(--radius);display:none}.custom-theme-editor.show{display:block}.theme-color-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:1rem}.theme-color-input{display:flex;flex-direction:column;gap:.5rem}.theme-color-input label{font-size:.9rem;color:var(--muted-foreground)}.theme-color-input input[type=color]{width:100%;height:40px;border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}.theme-actions{display:flex;gap:1rem;margin-top:1rem}.about-content{padding:2rem 0;max-width:800px;margin:0 auto}.about-donate{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:2rem;margin:2rem 0;text-align:center}.about-donate .section-title{margin-bottom:1rem}.donate-description{color:var(--muted-foreground);line-height:1.6}.about-donate .btn-secondary{padding:.75rem 1.5rem;font-size:.95rem}.about-description{color:var(--foreground);line-height:1.8;margin-bottom:1.5rem;font-size:1.05rem}.about-features,.about-tech{margin-bottom:2rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}.about-features h4,.about-tech h4{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--foreground);padding-bottom:.5rem;border-bottom:1px solid var(--border)}.about-features ul{list-style:none;padding:0}.about-features li{padding:.5rem 0 .5rem 1.5rem;position:relative;color:var(--foreground);line-height:1.5}.about-features li:before{content:"✓";position:absolute;left:0;color:var(--highlight);font-weight:700;transition:transform var(--transition-spring)}.about-features li:hover:before{transform:scale(1.3) rotate(15deg)}.about-features li:hover{color:var(--highlight);transform:translate(4px);transition:transform var(--transition-fast),color var(--transition-fast)}.about-tech p{color:var(--muted-foreground);font-size:.9rem}.about-links{display:flex;gap:1rem;margin:1.5rem 0;flex-wrap:wrap;justify-content:center}.github-link{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius);color:var(--foreground);font-weight:500;transition:all var(--transition)}.github-link:hover{background-color:var(--secondary);border-color:var(--highlight);transform:translateY(-2px)}.github-link svg{flex-shrink:0}.about-footer{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--border);text-align:center}.about-footer p{margin:.5rem 0;font-size:.9rem}.about-footer .version{color:var(--foreground);font-weight:600}.about-footer .license{color:var(--muted-foreground)}.about-footer .disclaimer{color:var(--muted-foreground);font-size:.8rem;font-style:italic;margin-top:1rem;padding:.75rem;background-color:var(--secondary);border-radius:var(--radius);border-left:3px solid var(--muted-foreground)}#download-notifications{position:fixed;bottom:calc(max(env(safe-area-inset-bottom),0px) + 12px);right:20px;z-index:20000;max-width:350px;display:flex;flex-direction:column;gap:.5rem}.download-task{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow-lg);animation:slide-in .3s ease;min-width:300px}.download-cancel:hover{background:var(--secondary)!important;color:var(--foreground)!important}#lastfm-controls{display:flex;align-items:center;gap:.5rem}.desktop-only{display:flex}#cast-btn{position:relative}#cast-btn.available{color:var(--highlight)}#cast-btn.available:before{content:"";position:absolute;top:6px;right:6px;width:6px;height:6px;background-color:var(--highlight);border-radius:var(--radius-full);animation:pulse 2s infinite}#cast-btn.connected{color:#10b981}#cast-btn.connected:after{content:"";position:absolute;top:6px;right:6px;width:8px;height:8px;background-color:#10b981;border-radius:var(--radius-full)}#download-current-btn:disabled{opacity:.5;cursor:not-allowed}.template-guide{width:100%;border-collapse:collapse;margin-top:1rem;font-size:.9rem}.template-guide th,.template-guide td{padding:.75rem;text-align:left;border-bottom:1px solid var(--border)}.template-guide th{font-weight:600;background-color:var(--secondary)}.template-guide code{background-color:var(--secondary);padding:.2rem .4rem;border-radius:var(--radius-sm);font-size:.85em}.offline-notification,.update-notification{position:fixed;bottom:130px;right:20px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow-lg);z-index:10000;display:flex;align-items:center;gap:1rem;max-width:350px;animation:slide-in .3s ease}.offline-notification svg{flex-shrink:0;color:#f59e0b}.update-notification{flex-direction:column;align-items:stretch}.update-notification-actions{display:flex;align-items:center;gap:.5rem;margin-top:.75rem}.update-notification-actions .btn-icon{background:transparent;border:1px solid var(--border);color:var(--muted-foreground);width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);cursor:pointer;transition:all var(--transition);flex-shrink:0}.update-notification-actions .btn-icon:hover{background:var(--secondary);color:var(--foreground);border-color:var(--foreground)}.close-shortcuts{background:transparent;border:none;color:var(--muted-foreground);font-size:1.5rem;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);transition:all var(--transition)}.close-shortcuts:hover{background:var(--secondary);color:var(--foreground)}.shortcuts-content{padding:1rem}.shortcut-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--border)}.shortcut-item:last-child{border-bottom:none}.customize-shortcuts-content{padding:1rem}.shortcut-hint{color:var(--muted-foreground);font-size:.85rem;margin-bottom:1rem}.customize-shortcut-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--border)}.customize-shortcut-item:last-child{border-bottom:none}.customize-shortcut-item .shortcut-description{flex:1}.customize-shortcut-item .shortcut-key{display:flex;gap:.25rem;align-items:center}.customize-shortcut-item kbd{background:var(--secondary);border:1px solid var(--border);border-radius:var(--radius);padding:.25rem .5rem;font-size:.8rem;font-family:inherit;min-width:28px;text-align:center}.customize-shortcut-item kbd.recording{background:var(--primary);color:var(--primary-foreground);border-color:var(--primary);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.customize-shortcut-item .shortcut-btn{background:transparent;border:none;color:var(--muted-foreground);cursor:pointer;padding:.25rem;margin-left:.5rem;opacity:0;transition:opacity var(--transition)}.customize-shortcut-item:hover .shortcut-btn{opacity:1}.customize-shortcut-item .shortcut-btn:hover{color:var(--foreground)}.customize-shortcuts-actions{display:flex;justify-content:space-between;padding:1rem;border-top:1px solid var(--border)}.close-customize-shortcuts{background:transparent;border:none;color:var(--muted-foreground);font-size:1.5rem;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);transition:all var(--transition)}.close-customize-shortcuts:hover{background:var(--secondary);color:var(--foreground)}#playlist-detail-description,#page-playlist-local .detail-description,#mix-detail-description{color:var(--foreground);font-size:.9rem}#playlist-detail-tracklist{display:flex;flex-direction:column;gap:2px}#playlist-detail-tracklist .track-list-header,#mix-detail-tracklist .track-list-header{display:grid;grid-template-columns:40px 1fr 3.25rem 80px auto;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm);color:var(--muted-foreground);font-size:.9rem;border-bottom:1px solid var(--border);margin-bottom:var(--spacing-xs)}#playlist-detail-tracklist .track-list-header .duration-header,#mix-detail-tracklist .track-list-header .duration-header{justify-self:flex-end}@supports (padding-top: env(safe-area-inset-top)){.now-playing-bar{padding-bottom:max(var(--spacing-sm),env(safe-area-inset-bottom))}.main-content,.sidebar{padding-top:max(var(--spacing-md),env(safe-area-inset-top))}.sidebar{padding-bottom:env(safe-area-inset-bottom)}.side-panel{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}}.side-panel{position:fixed;right:0;top:0;bottom:0;width:var(--side-panel-width, 600px);max-width:90vw;background:var(--card);border-left:1px solid var(--border);z-index:2050;display:flex;flex-direction:column;transform:translate(100%);transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s ease;box-shadow:none;container-type:inline-size;container-name:sidepanel}@container sidepanel (min-width: 500px){.panel-content am-lyrics{--lyplus-font-size-base: 36px}}@container sidepanel (min-width: 700px){.panel-content am-lyrics{--lyplus-font-size-base: 42px}}@container sidepanel (min-width: 900px){.panel-content am-lyrics{--lyplus-font-size-base: 52px;--lyplus-padding-line: 16px}}@container sidepanel (min-width: 1100px){.panel-content am-lyrics{--lyplus-font-size-base: 64px;--lyplus-padding-line: 24px}}.side-panel-resizer{position:absolute;left:-3px;top:0;bottom:0;width:6px;cursor:ew-resize;z-index:10;background:transparent;transition:background-color .2s ease}.side-panel-resizer:hover,.side-panel-resizer:active{background-color:var(--brand)}.side-panel.active{transform:translate(0);box-shadow:var(--shadow-xl)}.side-panel[data-view=lyrics],.side-panel[data-view=queue]{background:var(--card);background:color-mix(in srgb,var(--card) 60%,transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-left:1px solid rgb(255,255,255,.1)}.panel-header{padding:1rem;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.panel-header h3{margin:0;font-size:1.25rem;font-weight:600;padding-left:.5rem}.panel-controls{display:flex;gap:.5rem}.lyrics-timing-controls{display:flex;align-items:center;gap:.25rem;margin-right:auto;padding-right:.5rem;border-right:1px solid var(--border)}.lyrics-timing-display{font-size:.875rem;font-weight:600;color:var(--foreground);min-width:3.5rem;text-align:center;user-select:none;cursor:default}.lyrics-timing-controls .btn-icon{padding:.4rem;width:28px;height:28px}.lyrics-timing-controls .btn-icon:hover{background:var(--secondary);color:var(--primary)}.panel-content{flex:1;overflow-y:auto;padding:1rem;padding-bottom:calc(var(--player-bar-height-desktop) + 2rem);scroll-behavior:smooth}.btn-icon{background:transparent;border:none;color:var(--muted-foreground);cursor:pointer;padding:.5rem;border-radius:var(--radius);transition:all var(--transition);display:flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--secondary);color:var(--foreground)}.btn-icon:disabled:hover{background:transparent;color:var(--muted-foreground)}.synced-line{padding:.5rem 0;font-size:1.125rem;line-height:1.8;color:var(--muted-foreground);opacity:.5;transform:scale(.95);filter:blur(1.5px);transition:all .6s cubic-bezier(.4,0,.2,1)}.synced-line.active{color:var(--highlight);font-weight:600;font-size:1.25rem;opacity:1;transform:scale(1);filter:blur(0);text-shadow:0 0 20px rgb(var(--highlight-rgb),.3)}.synced-line.upcoming{opacity:.7;transform:scale(.98);filter:blur(.8px)}.synced-line.past{opacity:.3;transform:scale(.93);filter:blur(2px)}.lyrics-loading,.lyrics-error{text-align:center;padding:2rem;color:var(--muted-foreground)}.card.compact{display:flex;flex-direction:row;align-items:center;gap:.75rem;padding:.5rem;min-height:60px}.card.compact .card-image-wrapper{width:48px;height:48px;margin-bottom:0;flex-shrink:0}.card.artist.compact .card-image-wrapper{width:40px;height:40px}.card.compact .card-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}.card.compact .card-title{margin:0;font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card.compact .card-subtitle{margin:0;font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted-foreground)}.card.compact .card-play-btn{right:.5rem;top:25%;width:36px!important;height:36px!important;background-color:var(--primary)!important;color:var(--primary-foreground)!important;box-shadow:var(--shadow-md);transition:opacity .2s ease}.card.compact .card-like-btn{width:24px!important;height:24px!important;top:0;right:0}@media(hover:hover){.card.compact:hover .card-like-btn{opacity:1}}.card.compact.user-playlist .edit-playlist-btn,.card.compact.user-playlist .delete-playlist-btn{display:none!important}.now-playing-bar .cover{cursor:zoom-in;transition:all var(--transition);position:relative}@media(hover:hover){.now-playing-bar .cover:hover{transform:scale(1.05)}}.now-playing-bar .cover:after{content:"🎵";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#000000b3;opacity:0;transition:opacity var(--transition);font-size:1.5rem}@media(hover:hover){.now-playing-bar .cover:hover:after{opacity:1}}.now-playing-bar .artist .artist-link{cursor:pointer;transition:color var(--transition)}.now-playing-bar .artist .artist-link:hover{color:var(--highlight);text-decoration:underline}.now-playing-bar .album .album-link{cursor:pointer;transition:color var(--transition)}.now-playing-bar .album .album-link:hover{color:var(--highlight);text-decoration:underline}.track-item .artist .artist-link{cursor:pointer;transition:color var(--transition)}.track-item .artist .artist-link:hover{color:var(--highlight);text-decoration:underline}.player-actions-row,.volume-slider-row{display:flex;align-items:center;gap:.75rem}.player-actions-row button,.volume-slider-row button{display:flex;align-items:center;justify-content:center}img:not([src]),img[src=""]{content:url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);background-color:var(--muted)}.card-play-btn{position:absolute;bottom:2%;right:2%;background:var(--highlight)!important;border-radius:50%!important;width:42px!important;height:42px!important;padding:0!important;display:flex!important;align-items:center;justify-content:center;opacity:0;transform:translateY(10px);transition:all .2s cubic-bezier(.4,0,.2,1)!important;z-index:20;color:var(--background)!important;border:none!important;box-shadow:var(--shadow-md)}@media(hover:hover){.card:hover .card-play-btn{opacity:1;transform:translateY(0)}}@media(hover:hover){.card-play-btn:hover{transform:scale(1.1) translateY(0)!important;box-shadow:var(--shadow-lg);filter:brightness(1.1)}}.appwrite-settings-wrapper{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:400px}.custom-appwrite-endpoint,.custom-appwrite-project{display:none;flex-direction:column;gap:.5rem;margin-top:.5rem;width:100%}.custom-appwrite-endpoint.visible,.custom-appwrite-project.visible{display:flex}.config-help-text{font-size:.8rem;opacity:.7;margin-bottom:.25rem}.appwrite-controls-container{display:flex;gap:.5rem;width:100%}#toggle-auth-config-btn{width:fit-content}.account-content{padding:1rem 0}.modal{position:fixed;inset:0;z-index:10000;display:none;align-items:center;justify-content:center}.modal.active{display:flex;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;transition:opacity var(--transition-normal)}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:-1}.modal-content{background:var(--card);padding:2rem;border:1px solid var(--border);border-radius:var(--radius);max-width:400px;width:90%;box-shadow:var(--shadow-xl);animation:scale-in .2s ease;max-height:90vh;overflow-y:auto}.modal-content.wide{max-width:600px}.modal-content.extra-wide{max-width:1000px}.modal-content.medium{max-width:500px}.email-auth-modal-content{padding:1.5rem}.email-auth-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.email-auth-modal-header h3{margin:0;font-size:1.1rem;font-weight:600}.email-auth-modal-close{flex-shrink:0}.email-auth-input{width:100%;margin-bottom:.65rem}.email-auth-password-block{margin-bottom:.65rem}.email-auth-password-block .email-auth-input{margin-bottom:0}.email-auth-actions{display:flex;flex-direction:column;gap:.5rem;margin-top:1.25rem}.email-auth-actions .email-auth-submit{width:100%;min-height:2.75rem;padding:.75rem 1.5rem;border-radius:var(--radius-md);font-size:.95rem;font-weight:600;box-sizing:border-box}.email-auth-actions .btn-primary.email-auth-submit{border:1px solid var(--primary)}.email-auth-actions .btn-secondary.email-auth-submit{border:1px solid var(--border);background-color:var(--secondary);color:var(--foreground)}.email-auth-forgot-link{display:block;width:fit-content;max-width:100%;margin-top:.35rem;margin-left:0;padding:0;background:none;border:none;color:var(--muted-foreground);font-size:.8125rem;text-align:left;text-decoration:underline;cursor:pointer}.email-auth-forgot-link:hover{color:var(--foreground)}#page-library .library-header{margin-bottom:var(--spacing-xl)}#page-library .library-header h2{margin:0}#page-library #my-playlists-container{margin-bottom:var(--spacing-lg)}#page-library #my-playlists-container .library-create-dashed-card{order:1}#page-library .library-create-dashed-card{display:block;width:100%;min-width:0;padding:var(--spacing-md);margin:0;text-align:left;font:inherit;color:inherit;cursor:pointer;border:1px solid transparent;background-color:var(--card);-webkit-tap-highlight-color:transparent}#page-library .library-create-dashed-art{position:relative;margin-bottom:var(--spacing-md);border-radius:var(--radius);overflow:hidden;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:2px dashed var(--border);background:var(--secondary);box-shadow:var(--shadow-md);transition:border-color var(--transition-fast),box-shadow var(--transition-normal)}#page-library .library-create-dashed-card:hover .library-create-dashed-art{border-color:var(--highlight);box-shadow:var(--shadow-xl)}#page-library .library-create-dashed-card .card-info{padding:0}#page-library .library-create-dashed-card .card-title{margin-bottom:0}.library-liked-tracks-toolbar{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.library-liked-search.track-list-search-container{width:100%}.library-liked-tracks-toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.library-liked-tracks-toolbar-actions .btn-secondary{display:flex}.library-liked-view-btn.active{color:var(--highlight);background:rgb(var(--highlight-rgb) / .12)}@media(min-width:720px){.library-liked-tracks-toolbar{flex-direction:row;align-items:center}.library-liked-search.track-list-search-container{flex:1;min-width:200px;max-width:420px}}.modal-list{margin:1rem 0;max-height:200px;overflow-y:auto}.modal-option{padding:.75rem;cursor:pointer;border-bottom:1px solid var(--border);transition:background .2s ease;display:flex;justify-content:space-between;align-items:center}.modal-option:hover{background:var(--secondary)}.modal-option.already-contains{opacity:.6;cursor:default}.modal-option.already-contains:hover{background:transparent}.modal-option .checkmark{color:var(--highlight);flex-shrink:0}.modal-option:last-child{border-bottom:none}.modal-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:1.5rem}.timer-options{display:flex;flex-direction:column;gap:.5rem}.timer-option{text-align:center}#playlist-modal{animation:fade-in .1s ease-in}.csv-import-progress{position:fixed;bottom:120px;right:3%;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;box-shadow:var(--shadow-xl);z-index:10001;max-width:400px;min-width:350px;animation:slide-in .3s ease}.csv-import-progress .progress-header{margin-bottom:1rem}.csv-import-progress .progress-header h4{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:var(--foreground)}.csv-import-progress .progress-warning{font-size:.85rem;color:var(--muted-foreground);line-height:1.4}.csv-import-progress .progress-content{display:flex;flex-direction:column;gap:.75rem}.csv-import-progress .current-track{font-size:.9rem;color:var(--foreground);font-weight:500;min-height:1.2rem}.csv-import-progress .progress-bar{width:100%;height:8px;background:var(--secondary);border-radius:var(--radius-sm);overflow:hidden;position:relative}.csv-import-progress .progress-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--highlight));border-radius:var(--radius-sm);width:0%;transition:width .3s ease;position:relative}.csv-import-progress .progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgb(255,255,255,.3) 50%,transparent 100%);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.csv-import-progress .progress-text{font-size:.85rem;color:var(--muted-foreground);text-align:center}.csv-import-progress .progress-text span{font-weight:600;color:var(--foreground)}.missing-tracks-header{display:flex;justify-content:space-between;align-items:center;padding:2rem 2rem 1.5rem;border-bottom:1px solid var(--border)}.missing-tracks-header h3{margin:0;font-size:1.5rem;font-weight:700;color:var(--foreground);letter-spacing:-.025em}.close-missing-tracks{background:transparent;border:none;color:var(--muted-foreground);font-size:1.5rem;cursor:pointer;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius);transition:all var(--transition)}.close-missing-tracks:hover{background:var(--secondary);color:var(--foreground)}.missing-tracks-content{padding:2rem}.missing-tracks-content p{margin-bottom:2rem;line-height:1.7;color:var(--foreground);font-size:1rem;font-weight:400}.missing-tracks-list h4{margin-bottom:1rem;font-size:1.1rem;font-weight:600;color:var(--foreground);letter-spacing:-.01em}.missing-tracks-list ul{list-style:none;padding:0;max-height:400px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--secondary)}.missing-tracks-list li{padding:.75rem 1.25rem;border-bottom:1px solid var(--border);color:var(--foreground);font-size:.95rem;font-weight:400;line-height:1.4}.missing-tracks-list li:last-child{border-bottom:none}.missing-tracks-list li:nth-child(2n){background:#ffffff05}.missing-tracks-actions{padding:1.5rem 2rem 2rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.75rem;flex-wrap:wrap}.missing-tracks-actions .btn-secondary{min-width:100px;padding:.75rem 1.5rem;font-size:.95rem;font-weight:500}.mobile-only{display:none!important}:where(html.shell) #cast-btn{position:absolute!important;bottom:10px!important;right:10px!important;z-index:10!important;background:transparent!important;border:none!important;border-radius:0!important;width:24px!important;height:24px!important;display:flex!important;align-items:center!important;justify-content:center!important;box-shadow:none!important;padding:0!important}:where(html.shell) #cast-btn:hover{background:transparent!important;transform:none!important}:where(html.shell) #cast-btn svg{width:20px!important;height:20px!important}@media(min-width:1440px){.card-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media(min-width:1920px){.card-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}@media(min-width:769px)and (max-width:1024px){:where(html:not(.shell)) .now-playing-bar{grid-template-columns:minmax(150px,1fr) 1fr auto;gap:var(--spacing-md);padding:var(--spacing-md)}:where(html:not(.shell)) .volume-controls{display:flex}:where(html:not(.shell)) .desktop-only{display:flex}}@media(max-width:1024px){:where(html:not(.shell)) .app-container{grid-template-columns:160px 1fr}.card-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--spacing-md)}.detail-header-info .title{font-size:3rem}.detail-header-info .title.long-title{font-size:2rem}.detail-header-info .title.very-long-title{font-size:1.35rem}:where(html:not(.shell)) .main-content{padding:var(--spacing-lg)}:where(html:not(.shell)) .now-playing-bar{width:calc(96% - 160px)!important;left:calc(160px + 2%)}}html:where(.shell),html:where(.shell) body{height:auto;min-height:100%}html:where(.shell){overflow-x:hidden;overflow-y:auto}html:where(.shell) body{position:static;overflow:visible;overflow-x:clip;overscroll-behavior-y:auto}:where(html.shell) .player-controls .progress-container{order:-1;max-width:none;font-size:.75rem;gap:.5rem}:where(html.shell) .app-container{grid-template:"banner" auto "header" auto "main" 1fr "player" auto / 1fr;height:auto;min-height:100vh;min-height:100dvh}:where(html.shell) .main-content{padding:var(--spacing-md);grid-area:main;overflow-y:visible;overflow-x:clip;min-width:0}:where(html.shell) .main-header{grid-area:header;margin-bottom:var(--spacing-md);padding-top:env(safe-area-inset-top)}:where(html.shell) .sidebar{position:fixed;top:0;left:0;height:100%;transform:translate(-100%);z-index:2200;transition:transform .3s cubic-bezier(.4,0,.2,1),box-shadow .3s ease}:where(html.shell) .sidebar.is-open{transform:translate(0);box-shadow:0 0 20px #00000080}:where(html.shell) .hamburger-menu{display:block}:where(html.shell) #sidebar-overlay.is-visible{display:block}:where(html.shell) .search-bar{max-width:none;width:auto}:where(html.shell) .content-section{margin-bottom:var(--spacing-xl);max-width:100%;overflow-x:hidden}:where(html.shell) .section-title{font-size:1.5rem;margin-bottom:var(--spacing-md)}:where(html.shell) .card-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--spacing-md)}:where(html.shell) :is(#page-library,#page-playlists) .search-tabs{flex-wrap:wrap}:where(html.shell) #page-library .library-header{flex-wrap:wrap}:where(html.shell) #page-library .library-create-dashed-card{margin:0!important}:where(html.shell) .detail-header{flex-direction:row;gap:var(--spacing-md);padding-bottom:var(--spacing-sm);margin-bottom:var(--spacing-lg)}:where(html.shell) .detail-header-image{width:120px;height:120px}:where(html.shell) .detail-header-collage{width:120px;height:120px}:where(html.shell) .detail-header-info{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}:where(html.shell) .detail-header-info .title{font-size:1.5rem;line-height:1.2}:where(html.shell) .detail-header-info .title.long-title{font-size:1.35rem}:where(html.shell) .detail-header-info .title.very-long-title{font-size:1.25rem}:where(html.shell) .detail-header-info .meta{font-size:.85rem;gap:.35rem;margin-top:.25em}:where(html.shell) .detail-header-actions{margin-top:.5em}:where(html.shell) .now-playing-bar{grid-template:"track controls" auto "progress progress" auto / 1fr auto;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);height:auto;min-height:var(--player-bar-height-mobile)}:where(html.shell) .now-playing-bar .track-info{grid-area:track;min-width:0}:where(html.shell) .track-info{gap:var(--spacing-sm)}:where(html.shell) .track-info .cover{width:48px;height:48px}:where(html.shell) .track-info .details{min-width:0;flex:1}:where(html.shell) .track-info .details .title{font-size:.9rem}:where(html.shell) .track-info .details .artist{font-size:.75rem}:where(html.shell) .now-playing-bar .volume-controls{grid-area:controls;display:flex;gap:.25rem;justify-content:flex-end}:where(html.shell) .now-playing-bar .player-controls{grid-area:progress;width:100%}:where(html.shell) .player-controls .buttons{justify-content:center;gap:var(--spacing-lg);padding:0 15%}:where(html.shell) .player-controls .buttons button{width:28px;height:28px}:where(html.shell) .player-controls .buttons .play-pause-btn{width:32px;height:32px}:where(html.shell) .desktop-only{display:none!important}:where(html.shell) .volume-controls button:not(.desktop-only){display:flex}:where(html.shell) #download-notifications{bottom:calc(max(env(safe-area-inset-bottom),0px) + 10px);right:10px;left:10px;max-width:none}:where(html.shell) .track-menu-btn{opacity:1}:where(html.shell) .about-links{flex-direction:column}:where(html.shell) .github-link{width:100%;justify-content:center}:where(html.shell) .setting-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}:where(html.shell) .setting-item:has(.toggle-switch){flex-direction:row;align-items:center;width:100%}:where(html.shell) .setting-item:has(.toggle-switch) .info{width:auto;flex:1;min-width:0}:where(html.shell) .setting-item:has(.toggle-switch) .label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:where(html.shell) .setting-item:has(.toggle-switch) .description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}:where(html.shell) .setting-item:has(.toggle-switch) .toggle-switch{margin-left:auto}:where(html.shell) .setting-item .info{width:100%}:where(html.shell) .template-input{max-width:none;font-size:.85rem}:where(html.shell) .track-item{grid-template-columns:36px 1fr auto auto;gap:var(--spacing-sm);padding:var(--spacing-sm)}:where(html.shell) .track-item.track-item--inline-like{grid-template-columns:36px minmax(0,1fr) auto minmax(2.5rem,auto) auto}:where(html.shell) .track-item-info{gap:var(--spacing-sm);min-width:0;overflow:hidden}:where(html.shell) .track-item-cover{width:36px;height:36px}:where(html.shell) .track-item-details{min-width:0;overflow:hidden}:where(html.shell) .track-item-duration{text-align:right;white-space:nowrap}:where(html.shell) .track-menu-btn svg{width:18px;height:18px}:where(html.shell) .track-action-btn{padding:.25rem}:where(html.shell) .queue-track-item{grid-template-columns:24px 1fr 40px 32px 32px;gap:var(--spacing-sm);padding:var(--spacing-sm)}:where(html.shell) .queue-track-item .drag-handle{width:24px}:where(html.shell) .queue-track-item .drag-handle svg{width:14px;height:14px}:where(html.shell) .queue-track-item .track-item-cover{width:36px;height:36px}:where(html.shell) .queue-track-item .queue-like-btn,:where(html.shell) .queue-track-item .queue-remove-btn{padding:.5rem;width:32px;height:32px}:where(html.shell) .sidebar-nav .nav-item a{padding:1rem .75rem}:where(html.shell) .offline-notification,:where(html.shell) .update-notification{left:10px;right:10px;max-width:none;bottom:10px}:where(html.shell) .side-panel{width:100vw;max-width:100vw;bottom:0}:where(html.shell) .side-panel-resizer{display:none}:where(html.shell) .synced-line{font-size:1rem}:where(html.shell) .synced-line.active{font-size:1.125rem}:where(html.shell) .karaoke-title{font-size:1.5rem}:where(html.shell) .karaoke-artist{font-size:1rem}:where(html.shell) .karaoke-line{font-size:1.25rem}:where(html.shell) .karaoke-line.active{font-size:1.75rem}:where(html.shell) .csv-import-progress{bottom:145px;right:10px;left:10px;max-width:none;min-width:0}:where(html.shell) .missing-tracks-modal{width:95%;max-height:90vh;margin:1rem}:where(html.shell) .missing-tracks-header,:where(html.shell) .missing-tracks-content,:where(html.shell) .missing-tracks-actions{padding-left:1.5rem;padding-right:1.5rem}:where(html.shell) .missing-tracks-header{padding-top:1.5rem;padding-bottom:1rem}:where(html.shell) .missing-tracks-content{padding-top:1.5rem;padding-bottom:1.5rem}:where(html.shell) .missing-tracks-actions{padding-top:1rem;padding-bottom:1.5rem}:where(html.shell) .missing-tracks-list ul{max-height:250px}:where(html.shell) .missing-tracks-header h3{font-size:1.25rem}:where(html.shell) .missing-tracks-content p{font-size:.95rem}:where(html.shell) .missing-tracks-list li{padding:.625rem 1rem;font-size:.9rem}:where(html.shell) .mobile-only{display:flex!important}@media(max-width:480px){.card-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--spacing-sm)}.section-title{font-size:1.25rem}:is(#page-library,#page-playlists) .search-tabs{flex-wrap:wrap;gap:var(--spacing-xs)}:is(#page-library,#page-playlists) .search-tab{padding:var(--spacing-xs) var(--spacing-sm);font-size:.85rem;flex:1;min-width:auto;white-space:nowrap}#page-library .library-header{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center}#page-library .library-header h2{width:100%;margin-bottom:var(--spacing-sm)}#page-library .library-create-dashed-card{margin:0!important}.detail-header-info .title{font-size:1.25rem}.detail-header-info .title.long-title{font-size:1.1rem}.detail-header-info .title.very-long-title{font-size:.9rem}#page-album .detail-header,#page-playlist .detail-header,#page-playlist-local .detail-header{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}#page-album .detail-header-image,#page-playlist .detail-header-image,#page-playlist-local .detail-header-image,#page-album .detail-header-collage,#page-playlist .detail-header-collage,#page-playlist-local .detail-header-collage{width:150px;height:150px}.search-tab{flex:1 1 0;min-width:0;padding:var(--spacing-sm) var(--spacing-xs);font-size:.85rem;white-space:nowrap;text-align:center}#home-genre-tabs .search-tab{flex:0 0 auto;min-width:auto}.player-controls .buttons{gap:.25rem}.player-controls .buttons button{width:24px;height:24px}.player-controls .buttons button svg{width:16px;height:16px}.player-controls .buttons .play-pause-btn{width:28px;height:28px}.player-controls .buttons .play-pause-btn svg{width:18px;height:18px}.volume-controls button{padding:.25rem;min-width:28px;min-height:28px}.volume-controls button svg{width:16px;height:16px}.track-item{grid-template-columns:32px 1fr 40px auto;gap:.375rem;padding:var(--spacing-xs)}.track-item.track-item--inline-like{grid-template-columns:32px minmax(0,1fr) auto minmax(2.25rem,auto) auto}.track-number{width:32px}.track-item-cover{width:32px;height:32px}.track-item-details .title{font-size:.85rem}.track-item-details .artist,.track-item-duration{font-size:.75rem}.track-menu-btn{padding:.25rem}.track-menu-btn svg{width:16px;height:16px}.queue-track-item{grid-template-columns:20px 1fr 36px 32px 32px;gap:.375rem;padding:.5rem}.queue-track-item .drag-handle{width:20px}.queue-track-item .track-item-cover,.queue-track-item .queue-like-btn,.queue-track-item .queue-remove-btn{width:32px;height:32px}[data-track-actions-mode=inline] .track-actions-inline .track-action-btn:not([data-action=play-next]){display:none}.player-actions-row{gap:.25rem}}@media(max-width:360px){.player-controls .buttons{justify-content:space-between;width:100%}#shuffle-btn,#repeat-btn{display:none}}@media(display-mode:window-controls-overlay){.app-container{margin-top:env(titlebar-area-height,0)}.main-header{-webkit-app-region:drag}.main-header *{-webkit-app-region:no-drag}.sidebar{padding-top:max(1.5rem,env(titlebar-area-height,0))}}@media(hover:hover){.card.compact .card-play-btn{opacity:0}.card.compact:hover .card-play-btn{opacity:1}}@media(hover:none){.track-menu-btn,.track-actions-inline,.queue-track-item .queue-remove-btn,.track-row-action-btn,.queue-track-item .queue-like-btn{opacity:1}.track-row-action-btn:disabled{opacity:.25}.card-menu-btn,.suggest-row-menu,.edit-playlist-btn,.delete-playlist-btn{opacity:1;transform:none}.card.compact .card-like-btn{display:none!important}}@media(hover:none)and (pointer:coarse){.card-image-wrapper{overflow:visible}.card:not(.artist) .card-image-wrapper .card-image,.card:not(.artist) .card-image-wrapper .card-collage{clip-path:inset(0 round var(--radius))}.main-content{padding:var(--spacing-sm);grid-area:main;overflow-x:clip;min-width:0}.progress-bar:not(.waveform-loaded),.volume-bar{height:8px}.progress-bar .progress-fill:after,.volume-bar .volume-fill:after{content:"";position:absolute;right:-8px;top:50%;transform:translateY(-50%);width:16px;height:16px;background-color:var(--highlight);border-radius:var(--radius-full);box-shadow:0 2px 6px #0000004d}button{min-height:36px;min-width:36px}.track-item{grid-template-columns:32px 1fr 32px auto}.track-item.track-item--inline-like{grid-template-columns:32px minmax(0,1fr) auto minmax(2.25rem,auto) auto}.player-controls .buttons button{min-height:36px;min-width:36px}.card:hover{transform:none!important}.card-like-btn{opacity:1!important;top:-.25em!important;right:-.25em!important;transform:none!important}.card-play-btn{opacity:1!important;bottom:-.25em!important;right:-.25em!important;transform:none!important}}#custom-tooltip{position:fixed;background:var(--card);color:var(--card-foreground);padding:.5rem .75rem;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-size:.85rem;pointer-events:none;z-index:10000;opacity:0;transition:opacity .1s ease;white-space:nowrap;max-width:400px;overflow:hidden;text-overflow:ellipsis;will-change:transform,opacity}.genius-annotation-modal{position:fixed;inset:0;z-index:10002;display:flex;align-items:center;justify-content:center;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in .2s ease}.genius-annotation-modal .genius-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #ffff64}.genius-annotation-modal .genius-line{font-style:italic;color:#ffff64;font-weight:600;margin-right:1rem}.genius-annotation-modal .close-genius{background:none;border:none;color:var(--foreground);font-size:1.5rem;cursor:pointer;line-height:1}.genius-modal-content{background:var(--card);padding:1.5rem;border-radius:var(--radius);max-width:500px;width:90%;max-height:80vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);border:1px solid var(--border)}.genius-annotation-modal .genius-body{overflow-y:auto}.annotation-item{margin-bottom:1.5rem}.annotation-fragment{font-size:.8rem;color:var(--muted-foreground);margin-bottom:.5rem}.annotation-text{line-height:1.6}.active-genius svg path:first-child{fill:#ffff64}.genius-annotated{background-color:#ffff641a;cursor:pointer;border-radius:var(--radius-sm);transition:background-color .2s}.genius-annotated:hover{background-color:#ffff6433}.genius-multi-start{border-bottom-left-radius:0;border-bottom-right-radius:0}.genius-multi-mid{border-radius:0}.genius-multi-end{border-top-left-radius:0;border-top-right-radius:0}:where(html:not(.shell)) body.sidebar-collapsed .app-container{grid-template-columns:80px 1fr}:where(html:not(.shell)) body.sidebar-collapsed .sidebar-nav .nav-item a>span:not([data-icon]){display:none}:where(html:not(.shell)) body.sidebar-collapsed .sidebar-logo{justify-content:center}:where(html:not(.shell)) body.sidebar-collapsed .sidebar-logo-link{display:none}:where(html:not(.shell)) body.sidebar-collapsed .sidebar-nav .nav-item a{justify-content:center;padding:.75rem 0}:where(html:not(.shell)) body.sidebar-collapsed .sidebar-nav .nav-item a:hover{transform:none}:where(html:not(.shell)) body.sidebar-collapsed .pinned-items-header{display:none}:where(html:not(.shell)) body.sidebar-collapsed #pinned-items-list .nav-item a .pinned-item-name{display:none}:where(html:not(.shell)) body.sidebar-collapsed #pinned-items-list .nav-item a{justify-content:center}:where(html:not(.shell)) body.sidebar-collapsed .now-playing-bar{width:calc(96% - 80px)!important;left:calc(80px + 2%)}:where(html:not(.shell)) body.sidebar-collapsed #sidebar-toggle{margin-left:0!important}:where(html:not(.shell)) body.sidebar-collapsed #sidebar-toggle [data-icon]{transform:rotate(180deg)}#page-track .detail-header{flex-direction:column;align-items:center;text-align:center;padding:4rem 2rem;gap:2rem}#page-track .detail-header-image{width:350px;height:350px;box-shadow:0 30px 60px #00000080}#page-track .detail-header-info{align-items:center;width:100%}#page-track .detail-header-info .title{justify-content:center;text-align:center;font-size:3.5rem;margin-bottom:.5rem}#page-track .detail-header-info .meta{justify-content:center;font-size:1.1rem;opacity:.8}#page-track .detail-header-actions{justify-content:center;margin-top:2rem}#page-track .section-title{text-align:center}@media(max-width:768px){#page-track .detail-header{padding:2rem 1rem}#page-track .detail-header-image{width:200px;height:200px}#page-track .detail-header-info .title{font-size:1.75rem}}.tracker-modal .track-item.loading{opacity:.7;pointer-events:none}.tracker-modal .track-item.loading .track-number{color:var(--highlight)}@media(max-width:768px){.tracker-modal .modal-content{height:90vh!important;max-height:90vh!important;padding:1rem!important}.tracker-modal .detail-header{flex-direction:column;align-items:center;text-align:center;gap:.5rem;margin-bottom:.5rem!important}.tracker-modal .detail-header-image{width:80px!important;height:80px!important}.tracker-modal .detail-header-info .title{font-size:1.25rem!important;margin-bottom:.25rem}.tracker-modal .detail-header-info .meta{max-height:60px;overflow-y:auto;display:block;font-size:.85rem}.tracker-modal .detail-header-actions .btn-secondary{width:auto!important;height:auto!important;padding:.5rem 1.5rem!important;border-radius:2rem!important}#tracker-filters{padding:0 0 .5rem!important;justify-content:center}}@media(max-width:768px){.tracker-modal .detail-header{flex-direction:column;align-items:center;text-align:center;gap:.75rem}.tracker-modal .detail-header-image{width:100px!important;height:100px!important}.tracker-modal .detail-header-info .title{font-size:1.5rem!important}.tracker-modal .detail-header-info .meta{max-height:80px;overflow-y:auto;display:block}}@media(max-width:480px){.player-controls .buttons{gap:1.25rem}}@media(max-width:480px){.player-controls .buttons button svg{width:25px;height:25px}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-full);border:2px solid var(--background)}::-webkit-scrollbar-thumb:hover{background:var(--input)}::selection{background:var(--primary);color:var(--primary-foreground)}.modal.active .modal-content{animation:pop-in var(--transition-normal) var(--ease-out-back);box-shadow:var(--shadow-2xl);border:1px solid var(--border)}.nav-item a{position:relative;overflow:hidden}.nav-item a:active{transform:scale(.97)}.track-list-search-container{margin:1rem 0}.track-list-search-input{font-size:.95rem}#custom-tooltip.visible{opacity:1}.profile-header-container{position:relative;margin-bottom:4rem;display:flex;flex-direction:column;align-items:center}.profile-banner{width:100%;height:400px;background-color:var(--secondary);background-size:cover;background-position:center;border-radius:0 0 var(--radius-xl) var(--radius-xl);position:absolute;top:0;left:0;z-index:0;mask-image:linear-gradient(to bottom,#000 50%,#0000)}.profile-info-section{padding:0 2rem;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;z-index:1;margin-top:250px;width:100%;max-width:800px}.profile-avatar{width:180px;height:180px;border-radius:50%;border:4px solid var(--background);background-color:var(--card);object-fit:cover;flex-shrink:0;box-shadow:var(--shadow-2xl);margin-bottom:1.5rem}.profile-details{width:100%;display:flex;flex-direction:column;align-items:center}#profile-display-name{font-size:3rem;font-weight:800;margin:0 0 .5rem;line-height:1.1;text-shadow:0 4px 12px rgb(0,0,0,.5)}.profile-username{color:var(--muted-foreground);font-size:1.2rem;margin-bottom:1rem;background:#0000004d;padding:.25rem .75rem;border-radius:var(--radius-full);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.profile-status{display:inline-flex;align-items:center;gap:.5rem;background:var(--secondary);padding:.5rem 1rem;border-radius:var(--radius-full);font-size:.95rem;margin-bottom:1.5rem;color:var(--foreground);border:1px solid var(--border);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-about{margin-top:.5rem;max-width:600px;line-height:1.6;font-size:1.05rem;color:var(--foreground)}.profile-links{display:flex;gap:1.5rem;margin-top:1.5rem;justify-content:center}.profile-link{color:var(--primary);text-decoration:none;font-size:.9rem;font-weight:500}.profile-link:hover{text-decoration:underline}@media(max-width:768px){.profile-info-section{flex-direction:column;align-items:center;text-align:center;padding:0 1rem;gap:1rem}.profile-banner{height:150px;margin-bottom:-50px}.profile-avatar{width:100px;height:100px}#profile-display-name{font-size:2rem}.profile-actions{width:100%;display:flex;justify-content:center}}.status-picker-container{position:relative}.search-results-dropdown{position:absolute;top:100%;left:0;right:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);max-height:200px;overflow-y:auto;z-index:100;display:none;box-shadow:var(--shadow-lg)}.search-result-item{padding:.5rem;display:flex;align-items:center;gap:.5rem;cursor:pointer;border-bottom:1px solid var(--border)}.search-result-item:last-child{border-bottom:none}.search-result-item:hover{background:var(--secondary)}.search-result-item img{width:32px;height:32px;border-radius:var(--radius-sm);object-fit:cover}.search-result-info{flex:1;min-width:0}.search-result-title{font-size:.9rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-subtitle{font-size:.8rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dropdown-menu{display:none;position:absolute;top:100%;left:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem;z-index:2000;min-width:200px;margin-top:.5rem;box-shadow:var(--shadow-lg);flex-direction:column;gap:.25rem}.dropdown-menu.active{display:flex;animation:scale-in .1s ease-out}.dropdown-menu button{width:100%;text-align:left;justify-content:flex-start}.theme-card-preview{width:100%;height:100%;display:flex;flex-direction:column;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}.theme-card-preview-header{height:30%;border-bottom:1px solid var(--border)}.theme-card-preview-body{flex:1;padding:.5rem;display:flex;flex-direction:column;gap:.25rem}.theme-card-preview-line{height:4px;border-radius:2px;width:100%;opacity:.5}.theme-editor-toolbar{display:flex;justify-content:space-between;align-items:center;background:var(--secondary);padding:.5rem;border:1px solid var(--border);border-bottom:none;border-radius:var(--radius) var(--radius) 0 0;flex-wrap:wrap;gap:.5rem}.theme-editor-toolbar .color-picker-group,.theme-editor-toolbar .style-picker-group{display:flex;gap:.25rem}.theme-editor-toolbar select{height:24px;padding:0 4px;font-size:.75rem;background-color:var(--input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--foreground);cursor:pointer}.theme-editor-toolbar input[type=color]{width:24px;height:24px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;background:none}#theme-upload-css{border-top-left-radius:0;border-top-right-radius:0;max-width:100%}#theme-preview-window{position:fixed;bottom:20px;right:20px;width:300px;height:400px;background:var(--background);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xl);z-index:10000;overflow:hidden;resize:both;display:flex;flex-direction:column}.home-header-tabs{display:flex;gap:1.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none}.home-header-tabs::-webkit-scrollbar{display:none}.home-tab{white-space:nowrap}.home-tab{background:transparent;border:none;color:var(--muted-foreground);padding:.75rem .5rem;cursor:pointer;font-size:1.1rem;font-weight:600;border-bottom:2px solid transparent;transition:all var(--transition)}.home-tab:hover{color:var(--foreground)}.home-tab.active{color:var(--foreground);border-bottom-color:var(--highlight)}.home-view{animation:fade-in .3s ease}#command-palette-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;display:flex;justify-content:center;align-items:flex-start;padding-top:min(10vh,120px);animation:cmdk-overlay-in .15s ease-out}@keyframes cmdk-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes cmdk-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.command-palette{width:100%;max-width:640px;margin:0 1rem;background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:0 16px 70px #0000007f,0 0 0 1px #ffffff0d inset;display:flex;flex-direction:column;overflow:hidden;max-height:min(60vh,480px);animation:cmdk-scale-in .15s ease-out}.command-palette-header{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.command-palette-search-icon{flex-shrink:0;color:var(--muted-foreground)}#command-palette-input{flex:1;min-width:0;background:transparent;border:none;font-size:1rem;font-weight:400;color:var(--foreground);outline:none}#command-palette-input::placeholder{color:var(--muted-foreground)}.command-palette-kbd{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;font-size:11px;font-family:inherit;font-weight:500;color:var(--muted-foreground);background:var(--secondary);border:1px solid var(--border);border-radius:6px;line-height:1.4}.command-palette-results{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:6px 8px}.cmdk-group+.cmdk-group{margin-top:4px}.cmdk-group-heading{padding:6px 10px 4px;font-size:11px;font-weight:600;color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.04em;user-select:none}.cmdk-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius, 8px);cursor:pointer;font-size:.875rem;color:var(--foreground);transition:background 80ms ease;user-select:none;position:relative}.cmdk-item:hover,.cmdk-item[data-selected=true]{background:var(--secondary)}.cmdk-item-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;min-width:20px;min-height:20px;color:var(--muted-foreground)}.cmdk-item-icon img{width:28px;height:28px;border-radius:4px;object-fit:cover;aspect-ratio:1 / 1}.cmdk-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.cmdk-item-label{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmdk-item-description{font-size:.75rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmdk-item-shortcut{flex-shrink:0;display:flex;align-items:center;gap:4px;margin-left:auto}.cmdk-item-shortcut kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;font-size:10px;font-family:inherit;font-weight:500;color:var(--muted-foreground);background:var(--secondary);border:1px solid var(--border);border-radius:4px;line-height:1}.cmdk-empty{display:flex;align-items:center;justify-content:center;height:64px;color:var(--muted-foreground);font-size:.875rem}.cmdk-loading{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;color:var(--muted-foreground);font-size:.8rem}.cmdk-loading-spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--foreground);border-radius:50%;animation:cmdk-spin .6s linear infinite}@keyframes cmdk-spin{to{transform:rotate(360deg)}}.cmdk-separator{height:1px;background:var(--border);margin:4px 8px}.command-palette-footer{display:flex;align-items:center;gap:16px;padding:8px 16px;border-top:1px solid var(--border);font-size:.7rem;color:var(--muted-foreground)}.command-palette-hint{display:flex;align-items:center;gap:4px}.command-palette-hint kbd{display:inline-flex;align-items:center;justify-content:center;padding:1px 4px;font-size:10px;font-family:inherit;font-weight:500;color:var(--muted-foreground);background:var(--secondary);border:1px solid var(--border);border-radius:4px}@media(width<=640px){#command-palette-overlay{padding-top:0;align-items:flex-start}.command-palette{max-width:100%;max-height:100dvh;margin:0;border-radius:0;border:none}.command-palette-footer{display:none}}.video-card .card-image-container{aspect-ratio:16 / 9!important;margin-bottom:var(--spacing-sm)}.video-card .card-image{aspect-ratio:16 / 9!important;object-fit:cover!important}.video-duration-badge{position:absolute;bottom:8px;right:8px;background:#000000b3;color:#fff;padding:2px 6px;border-radius:4px;font-size:12px;font-weight:500;pointer-events:none;z-index:5}.search-tab[data-tab=videos]{display:flex;align-items:center;gap:.5rem}.party-container{padding:2rem;max-width:1200px;margin:0 auto}#party-chat-messages>:first-child{margin-top:auto}.party-content-layout{display:grid;grid-template-columns:1fr 350px;gap:2rem}@media(max-width:1024px){.party-content-layout{grid-template-columns:1fr}}.party-now-playing{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.5rem;padding:2rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.party-now-playing-cover{width:100%;max-width:250px;height:auto;aspect-ratio:1 / 1;border-radius:var(--radius);object-fit:cover;box-shadow:0 10px 30px #0000004d}.party-now-playing-info{max-width:100%;min-width:0}.party-now-playing-title{font-size:clamp(1.25rem,4vw,1.8rem);font-weight:var(--font-bold);line-height:var(--leading-tight);margin-bottom:.35rem;overflow-wrap:anywhere}.party-now-playing-artist{font-size:clamp(.95rem,3vw,1.2rem);color:var(--muted-foreground);line-height:var(--leading-snug);overflow-wrap:anywhere}.party-now-playing-paused{display:flex;align-items:center;gap:.5rem;color:var(--primary);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:1px;font-size:.9rem}.party-now-playing-empty{padding:4rem 2rem;text-align:center;background:var(--card);border-radius:var(--radius);border:1px dashed var(--border);color:var(--muted-foreground);font-size:1.2rem}@media(max-width:768px){.party-container{padding:1rem}.party-now-playing{padding:1.25rem;gap:1rem}.party-now-playing-empty{padding:2.5rem 1rem;font-size:1rem}}.chat-msg{margin-bottom:.5rem;animation:fade-in .2s ease-out}.party-typing-indicator{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-md);color:var(--muted-foreground);font-size:var(--text-xs);line-height:1;min-height:22px;animation:fade-in .15s ease-out}.party-typing-indicator[hidden]{display:none}.party-typing-text{font-style:italic}.party-typing-dots{display:inline-flex;align-items:flex-end;gap:3px;height:10px}.party-typing-dots span{display:block;width:4px;height:4px;border-radius:var(--radius-full);background:var(--muted-foreground);animation:party-typing-bounce 1.2s var(--ease-in-out) infinite}.party-typing-dots span:nth-child(2){animation-delay:.15s}.party-typing-dots span:nth-child(3){animation-delay:.3s}@keyframes party-typing-bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}@media(prefers-reduced-motion:reduce){.party-typing-dots span{animation:none;opacity:.7}}@keyframes fade-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.party-status-badge{padding:.25rem .5rem;background:var(--primary);color:var(--primary-foreground);border-radius:var(--radius-sm);font-size:.75rem;font-weight:700;text-transform:uppercase}.member-item{transition:transform .2s ease}.member-item:hover{transform:scale(1.02)}.about-contributors{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.about-contributors div{width:calc(20% - 10px);min-width:150px;border:1px solid var(--border);border-radius:14px;padding:20px;text-align:center;overflow:hidden;background:var(--card);transition:transform .2s ease,border-color .2s ease}.about-contributors div:hover{border-color:var(--primary);transform:translateY(-2px)}.about-contributors a{display:flex;flex-direction:column;align-items:center;gap:8px;text-decoration:none;color:inherit}.about-contributors img{display:block;border-radius:50%;object-fit:cover;flex-shrink:0}.about-contributors span{color:var(--foreground);font-weight:500;font-size:14px;line-height:1.2;display:block;word-break:break-word}.about-contributors .contrib{color:var(--muted-foreground);font-size:12px;font-weight:400}@media(max-width:768px){.about-contributors div{width:calc(33.33% - 12px);padding:15px}}@media(max-width:480px){.about-contributors{gap:8px}.about-contributors div{width:calc(50% - 8px);min-width:0;padding:12px}.about-contributors span{font-size:13px}.about-contributors .contrib{font-size:11px}}.binaural-dsp-container{padding:var(--spacing-md) 0;border-bottom:1px solid var(--border)}.binaural-status{padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);background:var(--secondary);border-radius:var(--radius-md);font-size:.85rem;color:var(--muted-foreground)}.binaural-mode-label{font-weight:500}.binaural-sub-setting{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;gap:var(--spacing-md);min-width:0}.binaural-sub-setting select{background:var(--secondary);color:var(--foreground);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--spacing-xs) var(--spacing-sm);font-size:.85rem;cursor:pointer}.binaural-sub-setting .info{display:flex;flex-direction:column;min-width:0;flex:1}.binaural-sub-setting .label{font-weight:500;font-size:.9rem}.binaural-sub-setting .description{font-size:.8rem;color:var(--muted-foreground)}.binaural-slider{width:140px;accent-color:var(--primary);cursor:pointer}.binaural-width-value{font-size:.85rem;font-weight:500;color:var(--primary);min-width:2.5em;text-align:right}.binaural-badge{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;opacity:.8;vertical-align:middle}.donate-page-wrapper{text-align:center;padding:2rem;max-width:500px;margin:0 auto}.donate-page-title{margin-bottom:1.5rem}.donate-page-desc{margin-bottom:1.5rem;line-height:1.6;color:var(--muted-foreground)}.donate-goal-card{background:#ffffff05;border:1px solid var(--border);border-radius:1rem;padding:1.5rem;margin:2rem 0;text-align:left;box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.donate-goal-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.donate-goal-card-label{font-weight:600;font-size:1rem;color:var(--foreground)}.donate-goal-card-percent{font-weight:700;color:var(--primary);font-size:1.1rem}.donate-goal-track{width:100%;height:8px;background:var(--muted);border-radius:999px;overflow:hidden;margin-bottom:.75rem}.donate-goal-fill{width:0%;height:100%;background:var(--primary);border-radius:999px}.donate-goal-card-footer{display:flex;justify-content:space-between;font-size:.85rem;color:var(--muted-foreground)}.donate-actions{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem}.donate-actions[hidden]{display:none}.donate-kofi-btn{text-decoration:none}.donate-crypto-btn{background-color:var(--secondary);color:var(--foreground)}.donate-crypto-section{margin-bottom:2rem}.donate-crypto-title{font-size:1rem;font-weight:600;color:var(--foreground);margin-bottom:.25rem;text-align:center}.donate-crypto-subtitle{font-size:.85rem;color:var(--muted-foreground);margin-bottom:1.25rem;text-align:center}.donate-crypto-list{display:flex;flex-direction:column;gap:.5rem}.crypto-wallet{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;padding:.625rem .875rem;background:#ffffff05;border:1px solid var(--border);border-radius:.75rem;cursor:pointer;text-align:left;color:var(--foreground);font:inherit;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.crypto-wallet:hover{background:var(--secondary);border-color:var(--primary)}.crypto-wallet-meta{display:flex;flex-direction:column;gap:.15rem;min-width:0;flex:1}.crypto-wallet-name{font-size:.8rem;font-weight:600;color:var(--foreground)}.crypto-wallet-addr{font-family:var(--font-mono, monospace);font-size:.75rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.crypto-wallet-copy-icon{flex-shrink:0;color:var(--muted-foreground);pointer-events:none}.crypto-wallet:hover .crypto-wallet-copy-icon{color:var(--primary)}.donate-alt-section{padding-top:1.5rem;border-top:1px solid var(--border)}.donate-alt-text{font-size:.9rem;color:var(--muted-foreground);margin-bottom:1rem}.donate-github-btn{text-decoration:none}#sidebar-nav-donate{border-radius:var(--radius);transition:background-color var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);cursor:pointer;color:var(--muted-foreground);padding-bottom:.4rem}#sidebar-nav-donate:hover{background-color:var(--secondary);color:var(--foreground);transform:translate(4px)}#sidebar-nav-donate:has(a.active){background-color:var(--primary);color:var(--primary-foreground)}#sidebar-nav-donate a{background-color:transparent!important;transform:none!important;color:inherit;border-radius:0}#sidebar-nav-donate a:hover{background-color:transparent!important;color:inherit;transform:none!important}#sidebar-nav-donate a.active{background-color:transparent!important;color:inherit}.sidebar-donate-goal{font-size:.65rem;color:inherit;opacity:.75;display:flex;align-items:center;gap:.4rem;pointer-events:none;padding:0 .75rem;margin-left:2rem}.sidebar-donate-goal-track{width:45px;height:3px;background:#8080804d;border-radius:99px;overflow:hidden}.sidebar-donate-goal-fill{width:0%;height:100%;background:currentcolor;border-radius:99px}body.sidebar-collapsed .sidebar-donate-goal{display:none}body.sidebar-collapsed #sidebar-nav-donate{padding-bottom:0}.deezer-hires-warning{display:inline-flex;align-items:center;justify-content:center;margin-left:.35rem;vertical-align:middle;color:#f59e0b;cursor:help}.deezer-hires-warning svg{height:.85rem;width:auto}.deezer-hires-warning:focus-visible{outline:2px solid #f59e0b;outline-offset:2px;border-radius:var(--radius-xs)}#hires-fallback-tooltip{position:fixed;top:0;left:0;width:max-content;max-width:280px;background:var(--card);color:var(--card-foreground);padding:.7rem .8rem;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-lg);z-index:10000;opacity:0;visibility:hidden;transform:translateY(5px) scale(.96);transform-origin:bottom center;transition:opacity .14s ease,transform .18s cubic-bezier(.34,1.56,.64,1);pointer-events:none;will-change:transform,opacity}#hires-fallback-tooltip.visible{opacity:1;visibility:visible;transform:translateY(0) scale(1)}#hires-fallback-tooltip .hires-fallback-title{display:flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:700;color:#f59e0b;margin-bottom:.3rem}#hires-fallback-tooltip .hires-fallback-title svg{height:.9rem;width:auto}#hires-fallback-tooltip .hires-fallback-body{font-size:.76rem;line-height:1.45;color:var(--muted-foreground)}.track-action-menu .menu-item-icon{display:inline-flex;align-items:center;margin-right:.6rem;opacity:.85}.track-action-menu .menu-item-icon svg{width:18px;height:18px}.track-action-menu li.disabled{opacity:.4;cursor:default;pointer-events:none}.track-action-menu li.menu-section{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground);padding:.6rem .75rem .2rem;cursor:default;pointer-events:none}.track-action-menu li.menu-section:first-child{padding-top:.2rem}.track-action-menu li.menu-section:hover{background:none;transform:none}.track-action-menu .menu-item-text{display:flex;flex-direction:column;min-width:0}.track-action-menu .menu-item-detail{font-size:.75rem;color:var(--muted-foreground);margin-top:1px}.track-item.track-linked{background-color:color-mix(in srgb,var(--primary) 18%,transparent);border-radius:var(--radius-sm)}.now-playing-bar .now-playing-menu-btn{opacity:1}#page-playlists .library-header,#page-playlist-local .library-header{margin-bottom:var(--spacing-xl)}#page-playlists .library-header h2,#page-playlist-local .library-header h2{margin:0}#page-playlists .library-create-dashed-card{display:block;width:100%;min-width:0;padding:var(--spacing-md);margin:0;text-align:left;font:inherit;color:inherit;cursor:pointer;border:1px solid transparent;background-color:var(--card);-webkit-tap-highlight-color:transparent}#page-playlists .library-create-dashed-art{position:relative;margin-bottom:var(--spacing-md);border-radius:var(--radius);overflow:hidden;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:2px dashed var(--border);background:var(--secondary);box-shadow:var(--shadow-md);transition:border-color var(--transition-fast),box-shadow var(--transition-normal)}#page-playlists .library-create-dashed-card:hover .library-create-dashed-art{border-color:var(--highlight);box-shadow:var(--shadow-xl)}#page-playlists .library-create-dashed-card .card-info{padding:0}#page-playlists .library-create-dashed-card .card-title{margin-bottom:0}.remote-picker{position:relative;flex-shrink:0;margin-left:auto}.remote-picker-btn{width:36px;height:36px;border-radius:var(--radius-full);background-color:var(--card);border:1px solid var(--border);color:var(--foreground);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-fast);box-shadow:var(--shadow-sm)}@media(hover:hover){.remote-picker-btn:hover{background-color:var(--secondary);transform:scale(1.06);box-shadow:var(--shadow-md)}}.remote-picker-btn.active{background-color:var(--highlight);color:var(--background);border-color:var(--highlight)}.remote-menu{position:absolute;top:calc(100% + var(--space-2));right:0;left:auto;min-width:260px;max-width:320px;background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-2);z-index:var(--z-dropdown)}.remote-menu[hidden]{display:none}.remote-device-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.remote-device-empty{padding:var(--space-3);font-size:var(--text-sm);color:var(--muted-foreground);text-align:center}.remote-device-btn{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--space-2) var(--space-3);background:transparent;border:none;border-radius:var(--radius-md);color:var(--foreground);cursor:pointer;text-align:left;transition:background-color var(--transition-fast)}.remote-device-btn:hover{background-color:var(--secondary)}.remote-self{margin-bottom:var(--space-1);border-bottom:1px solid var(--border);padding-bottom:var(--space-1)}.remote-self .remote-device-btn{flex-direction:row;align-items:center;justify-content:space-between}.remote-device.controlling>.remote-device-btn{background-color:rgb(var(--highlight-rgb) / .12);color:var(--highlight)}.remote-device-name{font-size:var(--text-sm);font-weight:var(--font-medium);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remote-device-sub{font-size:var(--text-xs);color:var(--muted-foreground);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remote-device-os{font-size:var(--text-xs);font-weight:var(--font-normal);color:var(--muted-foreground);margin-left:.5rem}.remote-device-info{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}.remote-device-check{display:inline-flex;color:var(--highlight);flex-shrink:0}.remote-device{display:flex;align-items:center}.remote-device-btn{min-width:0;flex:1 1 auto}.remote-device.offline .remote-device-btn{opacity:.55}.remote-grab{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;margin-right:var(--space-1);flex-shrink:0;background:transparent;border:none;border-radius:var(--radius-full);color:var(--muted-foreground);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.remote-grab:hover{background-color:var(--secondary);color:var(--highlight)}.remote-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background-color:var(--card);border-bottom:1px solid var(--highlight);color:var(--foreground);font-size:var(--text-sm);font-weight:var(--font-medium);min-width:0}.remote-banner[hidden]{display:none}.remote-banner-dot{width:8px;height:8px;border-radius:var(--radius-full);background-color:var(--highlight);flex-shrink:0}.remote-banner.reconnecting{border-bottom-color:var(--color-warning)}.remote-banner.reconnecting .remote-banner-dot{background-color:var(--color-warning);animation:remote-pulse 1.2s var(--ease-in-out) infinite}@keyframes remote-pulse{0%,to{opacity:1}50%{opacity:.3}}.remote-banner-label{white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}.remote-banner-dot,.remote-banner-exit{flex-shrink:0}.remote-banner-exit{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:var(--radius-full);color:var(--muted-foreground);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.remote-banner-exit:hover{background-color:var(--secondary);color:var(--foreground)}.update-banner .update-reload-btn{padding:0;background:transparent;border:none;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;white-space:nowrap}.update-banner .update-reload-btn:hover{color:var(--highlight)}@media(pointer:coarse){.remote-banner-exit{width:44px;height:44px;margin-block:-10px;margin-inline-end:calc(var(--space-2) * -1)}.update-banner .update-reload-btn{min-height:0;min-width:0;padding-block:10px;margin-block:-10px}}.session-banner .remote-banner-label{white-space:normal;text-align:center}.session-banner.primary-dead{border-bottom-color:var(--color-danger)}.session-banner.primary-dead .remote-banner-dot{background-color:var(--color-danger)}.session-banner.fallback-dead{border-bottom-color:var(--color-warning)}.session-banner.fallback-dead .remote-banner-dot{background-color:var(--color-warning)}.remote-group{margin-top:var(--space-1);border-top:1px solid var(--border);padding-top:var(--space-1)}.remote-group[hidden],.remote-group-list[hidden],.remote-group-active[hidden],.remote-group-expansion[hidden]{display:none}.remote-group-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.remote-group-item .remote-device-btn,.remote-group-active-row .remote-device-btn,.remote-group-create-toggle{flex-direction:row;align-items:center;gap:var(--space-2)}.remote-group-active-row .remote-device-btn{justify-content:space-between}.remote-group-glyph{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--muted-foreground)}.remote-group-active-row .remote-group-glyph{color:var(--highlight)}.remote-group-create-toggle{color:var(--muted-foreground)}.remote-group-create-toggle .remote-group-create-label{display:inline;font-size:var(--text-sm);font-weight:var(--font-medium)}.remote-group-create-form{display:flex;gap:var(--space-2);padding:var(--space-1) var(--space-2)}.remote-group-name{flex:1 1 auto;min-width:0;padding:var(--space-2);font-size:var(--text-sm);color:var(--foreground);background-color:var(--background);border:1px solid var(--border);border-radius:var(--radius-md)}.remote-group-name:focus{outline:none;border-color:var(--highlight)}.remote-group-create-btn{flex-shrink:0;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--background);background-color:var(--highlight);border:none;border-radius:var(--radius-md);cursor:pointer;transition:opacity var(--transition-fast)}.remote-group-create-btn:hover{opacity:.9}.remote-group-expansion{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-1) var(--space-3) var(--space-2)}.remote-group-members{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.remote-group-member{font-size:var(--text-xs);color:var(--muted-foreground)}.remote-group-toggles{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--border)}.remote-group-leave-btn{margin-top:var(--space-1);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--foreground);background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast)}.remote-group-leave-btn:hover{background-color:var(--secondary)}.remote-group-toggle-row{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--foreground);cursor:pointer}.remote-group-toggle{accent-color:var(--highlight);cursor:pointer}.remote-group-toggle-row--disabled{opacity:.5;cursor:not-allowed}.remote-group-toggle-row--disabled .remote-group-toggle{cursor:not-allowed}.remote-group-toggle-hint{margin-left:auto;font-size:var(--text-xs);font-style:italic;color:var(--muted-foreground)}.profile-gate{position:fixed;inset:0;z-index:2200;background-color:var(--background);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:var(--space-8);padding:var(--space-6);text-align:center;overflow-y:auto;overscroll-behavior:contain;--profile-gate-avatar: 96px}.profile-gate>:first-child{margin-top:auto}.profile-gate>:last-child,.profile-gate>:has(+[hidden]:last-child){margin-bottom:auto}.profile-gate:focus{outline:none}body.profile-gate-open{overflow:hidden}html:has(body.profile-gate-open){overflow:hidden}.profile-gate-title{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--foreground);margin:0}.profile-gate-grid{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:center;gap:var(--space-6);max-width:720px}@media(max-width:480px){.profile-gate{--profile-gate-avatar: 72px}.profile-gate-grid{gap:var(--space-4)}}.profile-tile{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);background:none;border:none;cursor:pointer;padding:var(--space-2);border-radius:var(--radius-lg);transition:transform var(--transition-fast)}@media(hover:hover){.profile-tile:hover{transform:scale(1.05)}}.profile-tile:hover .profile-avatar{box-shadow:0 0 0 3px var(--highlight)}.profile-tile-name{font-size:var(--text-md);color:var(--muted-foreground);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-tile:hover .profile-tile-name{color:var(--foreground)}.profile-avatar{border-radius:var(--radius-full);object-fit:cover;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;user-select:none;margin:0}.profile-avatar-initials{color:#fff;font-weight:var(--font-semibold);letter-spacing:.02em}.profile-avatar-plus{width:var(--profile-gate-avatar, 96px);height:var(--profile-gate-avatar, 96px);color:var(--muted-foreground);background-color:var(--card);border:2px dashed var(--border)}.profile-avatar-plus svg{display:block}.profile-tile-add:hover .profile-avatar-plus{color:var(--foreground)}.profile-create-form{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.profile-create-input{font-size:var(--text-lg);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--border);background-color:var(--card);color:var(--foreground);text-align:center;width:min(320px,80vw)}.profile-create-input:focus{outline:2px solid var(--highlight);border-color:transparent}.profile-create-actions{display:flex;gap:var(--space-3)}.profile-create-submit,.profile-create-cancel,.profile-gate-retry{padding:var(--space-2) var(--space-5);border-radius:var(--radius-full);border:1px solid var(--border);cursor:pointer;font-size:var(--text-md);background-color:var(--card);color:var(--foreground);transition:background-color var(--transition-fast)}.profile-create-submit{background-color:var(--highlight);color:var(--background);border-color:var(--highlight)}.profile-create-submit:disabled{opacity:.6;cursor:default}.profile-create-cancel:hover,.profile-gate-retry:hover{background-color:var(--secondary)}.profile-gate-error{color:var(--color-danger, #ef4444);font-size:var(--text-sm);margin:0}.user-menu-wrap{position:relative;flex-shrink:0;margin-left:var(--space-3)}.user-avatar-btn{width:36px;height:36px;border-radius:var(--radius-full);border:1px solid var(--border);background-color:var(--card);padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}@media(hover:hover){.user-avatar-btn:hover{transform:scale(1.06);box-shadow:var(--shadow-md)}}.user-avatar-btn:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.settings-page{max-width:640px;margin-inline:auto;display:flex;flex-direction:column;gap:var(--spacing-xl);padding-bottom:var(--spacing-xl)}.settings-page>.section-title{margin-bottom:0}.settings-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.settings-section-label{margin:0;padding:0 var(--spacing-xs);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.06em;color:var(--muted-foreground)}.settings-card{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.settings-profile{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-bottom:1px solid var(--border)}.settings-profile .profile-avatar{flex-shrink:0}.settings-profile-name{display:block;min-width:0;font-size:1.25rem;font-weight:700;color:var(--foreground);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-row{display:flex;align-items:center;gap:var(--spacing-md);width:100%;min-height:52px;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;border-radius:0;color:var(--foreground);font:inherit;text-align:left;cursor:pointer;transition:background-color var(--transition-fast)}.settings-row+.settings-row{border-top:1px solid var(--border)}.settings-row:hover{background-color:var(--secondary)}.settings-row:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}.settings-row-icon{display:flex;flex-shrink:0;color:var(--muted-foreground)}.settings-row-text{display:flex;flex-direction:column;flex:1;min-width:0}.settings-row-label{display:block;font-size:var(--text-sm)}.settings-row-hint{display:block;margin-top:2px;font-size:var(--text-xs);color:var(--muted-foreground)}.settings-choice.active .settings-row-label{font-weight:var(--font-semibold)}.settings-choice.active .settings-row-icon,.settings-row-accent,.settings-row-accent .settings-row-icon{color:var(--primary)}.settings-row-muted .settings-row-label{color:var(--muted-foreground)}.settings-row-danger,.settings-row-danger .settings-row-icon{color:var(--color-danger, #ef4444)}.settings-note{margin:0;padding:0 var(--spacing-xs);font-size:var(--text-xs);color:var(--muted-foreground)}.settings-themes{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:var(--spacing-md)}.settings-theme{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:0;background:none;border:none;color:var(--muted-foreground);font:inherit;font-size:var(--text-xs);cursor:pointer;--page-background: var(--background);--page-highlight: var(--highlight);--page-ring: var(--ring)}.settings-theme.active{color:var(--foreground);font-weight:var(--font-semibold)}.theme-swatch{display:flex;align-items:flex-end;gap:4px;width:64px;height:64px;padding:10px;border-radius:var(--radius-lg);background-color:var(--background);border:1px solid var(--border);transition:transform var(--transition-fast)}@media(hover:hover){.settings-theme:hover .theme-swatch{transform:scale(1.05)}}.settings-theme.active .theme-swatch{box-shadow:0 0 0 2px var(--page-background),0 0 0 4px var(--page-highlight)}.settings-theme:focus-visible{outline:none}.settings-theme:focus-visible .theme-swatch{outline:2px solid var(--page-ring);outline-offset:3px}.theme-swatch-dot{display:block;width:16px;height:16px;border-radius:var(--radius-full);border:1px solid var(--border)}.theme-swatch-primary{background-color:var(--primary)}.theme-swatch-card{background-color:var(--card)}.settings-theme-name{display:block;text-transform:capitalize}.app-modal-title{margin:0 0 1rem;font-size:1.1rem;font-weight:600}.app-modal-input{width:100%;padding:.75rem 1rem;background-color:var(--input);border:1px solid var(--border);border-radius:var(--radius);color:var(--foreground);font-size:.95rem;box-sizing:border-box;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.app-modal-input:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 3px rgb(var(--highlight-rgb) / .2)}.app-modal-message{margin:0;color:var(--muted-foreground);font-size:.9rem;line-height:1.5}.app-modal-choice-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.app-modal-choice-list button{width:100%;justify-content:center}#sleep-timer-btn{position:relative}#sleep-timer-btn.active{color:var(--active-highlight)}#sleep-timer-btn.active[data-remaining]:not([data-remaining=track]):after,[data-sleep-timer].active[data-remaining]:not([data-remaining=track]):after{content:attr(data-remaining);position:absolute;bottom:0;left:50%;transform:translate(-50%);font-size:.5rem;font-weight:700;line-height:1;padding:1px 3px;border-radius:4px;background-color:var(--secondary);color:var(--active-highlight);white-space:nowrap;pointer-events:none}.track-row-action-btn{background:transparent;border:none;color:var(--muted-foreground);cursor:pointer;padding:.4rem;border-radius:var(--radius);transition:all var(--transition);display:flex;align-items:center;justify-content:center;opacity:0}@media(hover:hover){.track-item:hover .track-row-action-btn{opacity:1}}.track-row-action-btn:hover:not(:disabled){background-color:rgb(var(--highlight-rgb),.2);color:var(--foreground)}.track-row-action-btn:disabled{opacity:0;cursor:default}@media(hover:hover){.track-item:hover .track-row-action-btn:disabled{opacity:.25}}.playlist-picker li{gap:.6rem}.playlist-picker-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}.playlist-picker-count{color:var(--muted-foreground);font-size:.8rem;flex-shrink:0}.playlist-picker-create{color:var(--muted-foreground)}.playlist-cover-fallback{display:flex;align-items:center;justify-content:center;background:var(--secondary);color:var(--muted-foreground)}.stats-filters{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--spacing-sm) var(--spacing-lg);margin-bottom:var(--spacing-lg);border-bottom:1px solid var(--border)}.stats-filters .stats-category-tabs{margin-bottom:0;border-bottom:none}.stats-range{display:inline-flex;gap:2px;padding:2px;margin-bottom:var(--spacing-sm);background-color:var(--secondary);border-radius:var(--radius)}.stats-range-btn{background:transparent;border:none;border-radius:calc(var(--radius) - 2px);color:var(--muted-foreground);font:inherit;font-size:var(--text-sm);padding:var(--spacing-xs) var(--spacing-md);cursor:pointer;white-space:nowrap}.stats-range-btn:hover{color:var(--foreground)}.stats-range-btn.active{background-color:var(--card);color:var(--foreground);font-weight:var(--font-semibold)}.stats-share{margin-bottom:var(--spacing-lg)}.stats-share-bar{display:flex;gap:2px;height:8px;border-radius:4px;overflow:hidden}.stats-share-seg{flex-basis:0;min-width:2px}.stats-share-seg--music,.stats-share-key--music:before{background-color:var(--primary)}.stats-share-seg--audiobook,.stats-share-key--audiobook:before{background-color:color-mix(in srgb,var(--primary) 40%,transparent)}.stats-share-legend{display:flex;flex-wrap:wrap;gap:var(--spacing-xs) var(--spacing-lg);margin-top:var(--spacing-sm);color:var(--muted-foreground);font-size:var(--text-sm)}.stats-share-key:before{content:"";display:inline-block;width:8px;height:8px;margin-right:var(--spacing-xs);border-radius:50%}.stats-headline{display:flex;flex-wrap:wrap;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.stats-tile{flex:1;min-width:160px;background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-lg)}.stats-tile-value{font-size:var(--text-xl);font-weight:var(--font-bold)}.stats-tile-label{color:var(--muted-foreground);font-size:var(--text-sm);margin-top:var(--spacing-xs)}.stats-play-count{color:var(--muted-foreground);font-size:var(--text-sm);white-space:nowrap}.stats-chart{position:relative}.stats-bars{display:flex;align-items:flex-end;gap:2px;height:120px;border-bottom:1px solid var(--border)}.stats-bars--few{gap:var(--spacing-sm)}.stats-bar{flex:1;min-height:2px;background-color:var(--primary);border-radius:var(--radius-xs) var(--radius-xs) 0 0}.stats-chart-yref{position:absolute;top:0;left:0;right:0;border-top:1px solid var(--border);pointer-events:none}.stats-chart-yref-label{position:absolute;top:0;left:0;transform:translateY(-100%);font-size:var(--text-xs);color:var(--muted-foreground);white-space:nowrap}.stats-axis-x{position:relative;height:1.5em;margin-top:var(--spacing-xs)}.stats-axis-x-label{position:absolute;top:0;transform:translate(-50%);font-size:var(--text-xs);color:var(--muted-foreground);white-space:nowrap}.stats-profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.stats-profile-card{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);text-align:center;background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-lg);color:inherit;font-family:inherit}.stats-profile-name{font-weight:var(--font-semibold)}.stats-profile-plays,.stats-profile-last-seen,.stats-profile-clients{color:var(--muted-foreground);font-size:var(--text-sm)}.stats-version{display:flex;flex-direction:column;gap:var(--spacing-xs);background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-lg);max-width:320px}.stats-version-row{display:flex;justify-content:space-between;gap:var(--spacing-lg)}.stats-version-label{color:var(--muted-foreground);font-size:var(--text-sm)}.stats-version-value{font-variant-numeric:tabular-nums;font-weight:var(--font-semibold)}.changelog-filter{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg)}.changelog-chip{padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--border);border-radius:999px;background-color:transparent;color:var(--muted-foreground);font-family:inherit;font-size:var(--text-sm);cursor:pointer}.changelog-chip.active{background-color:var(--primary);border-color:var(--primary);color:var(--primary-foreground)}.changelog-day{margin-bottom:var(--spacing-lg)}.changelog-date{font-size:var(--text-sm);color:var(--muted-foreground);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--spacing-sm)}.changelog-entry{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-lg);margin-bottom:var(--spacing-md);overflow-wrap:anywhere}.changelog-entry-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.changelog-entry-title{font-size:var(--text-lg);font-weight:var(--font-semibold);margin:0}.changelog-entry-version{font-size:var(--text-xs);color:var(--muted-foreground);font-variant-numeric:tabular-nums}.changelog-badge{display:inline-block;padding:2px var(--spacing-sm);border-radius:var(--radius-xs);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.03em;background-color:var(--muted);color:var(--muted-foreground)}.changelog-badge-app{background-color:color-mix(in srgb,var(--primary) 18%,transparent);color:var(--primary)}.changelog-badge-web{background-color:color-mix(in srgb,#3b82f6 18%,transparent);color:#3b82f6}.changelog-badge-backend{background-color:color-mix(in srgb,#10b981 18%,transparent);color:#10b981}.changelog-badge-general{background-color:color-mix(in srgb,#a855f7 18%,transparent);color:#a855f7}.changelog-body{color:var(--foreground)}.changelog-body-para{margin:0 0 var(--spacing-sm)}.changelog-body-list{margin:0 0 var(--spacing-sm);padding-left:1.2em}.cover-zoomable{cursor:zoom-in}.cover-zoom-backdrop{position:fixed;inset:0;z-index:2300;background:#00000059;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);cursor:zoom-out;opacity:0;transition:opacity var(--duration-normal) var(--ease-out)}.cover-zoom-backdrop.open{opacity:1}.cover-zoom-image{position:fixed;z-index:2301;margin:0;object-fit:cover;border-radius:12px;box-shadow:0 30px 90px #0009;transform-origin:0 0;will-change:transform;pointer-events:none}@media(prefers-reduced-motion:reduce){.cover-zoom-backdrop{transition:none}}.cover-img{background-color:var(--muted)}.cover-img.img-loading{object-position:-100000px 0;background-image:linear-gradient(100deg,transparent 30%,color-mix(in srgb,var(--foreground) 7%,transparent) 50%,transparent 70%);background-size:200% 100%;animation:skeleton-loading 1.6s infinite ease-in-out}.cover-img.img-fade-in{animation:cover-fade-in .24s var(--ease-out, ease-out)}@keyframes cover-fade-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.cover-img.img-loading,.cover-img.img-fade-in{animation:none}}@media(max-width:768px){#album-detail-tracklist,#playlist-detail-tracklist{margin-inline:-12px}.track-item.track-item--columns{grid-template-columns:minmax(0,1fr) 2.6rem 2rem 2rem 2rem;column-gap:6px;padding:var(--spacing-sm)}.track-item--columns .track-menu-btn{width:2rem;height:2.75rem}#album-detail-tracklist .track-item--columns .track-number{display:none}.track-item-popularity{justify-content:center}#playlist-detail-tracklist .track-item.track-item--columns{grid-template-columns:40px minmax(0,1fr) 2.4rem 2.25rem 2rem}#playlist-detail-tracklist .track-item--columns .track-item-popularity{display:none}.track-item-plays{font-size:.8rem;gap:3px}}#page-shares .shares-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.share-row{background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--spacing-md);display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-md)}.share-row-inactive{opacity:.55}.share-main{display:flex;align-items:center;gap:var(--spacing-md);flex:1 1 280px;min-width:0;cursor:pointer}.share-cover{width:56px;height:56px;flex:none;border-radius:var(--radius-xs);object-fit:cover;background-color:var(--muted)}.share-info{min-width:0;display:flex;flex-direction:column;gap:2px}.share-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--spacing-xs) var(--spacing-sm)}.share-title{font-weight:var(--font-semibold);overflow-wrap:anywhere}.share-from,.share-artist,.share-meta{color:var(--muted-foreground);font-size:var(--text-sm)}.share-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-xs) var(--spacing-md)}.share-creator{display:inline-flex;align-items:center;gap:var(--spacing-xs)}.share-avatar{width:18px;height:18px;border-radius:50%;object-fit:cover}.share-avatar-initials{display:inline-flex;align-items:center;justify-content:center;background-color:var(--muted);font-size:10px;line-height:1}.share-failed{color:var(--color-danger)}.share-actions{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.share-action{padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--border);border-radius:999px;background-color:transparent;color:var(--foreground);font-family:inherit;font-size:var(--text-sm);text-decoration:none;cursor:pointer}.share-action:hover{background-color:var(--muted)}.share-action-danger{color:var(--color-danger)}.share-tracks{flex:1 0 100%;margin:0;padding:var(--spacing-sm) 0 0 var(--spacing-lg);border-top:1px solid var(--border);font-size:var(--text-sm)}.share-track{display:flex;justify-content:space-between;gap:var(--spacing-md);padding:2px 0}.share-track-title{min-width:0;overflow-wrap:anywhere}.share-track-plays{color:var(--muted-foreground);font-variant-numeric:tabular-nums}.share-track-failed .share-track-title{color:var(--color-danger)}#page-playlists .spotify-import-card .library-create-dashed-art{border-color:#1db954;background:#1db9541f;color:#1db954}#page-playlists .spotify-import-card:hover .library-create-dashed-art{border-color:#1ed760}#page-playlists .spotify-import-card .card-subtitle{margin:.15rem 0 0;color:var(--muted-foreground);font-size:.8rem}.spotify-badge{display:inline-block;padding:.3rem .5rem;border-radius:999px;background:#1db95426;color:#1db954;font-size:.7rem;font-weight:600;line-height:1;vertical-align:middle;text-box:trim-both cap alphabetic}.modal-content.spotify-modal{--spotify-green: #1db954;max-width:440px;padding:var(--spacing-lg);border-radius:var(--radius-xl)}.spotify-modal:focus{outline:none}.spotify-head{display:flex;gap:14px;align-items:center;margin-bottom:18px}.spotify-head-text{min-width:0}.spotify-head .app-modal-title{margin:0;font-size:var(--text-lg);font-weight:var(--font-bold);line-height:var(--leading-tight);overflow-wrap:anywhere}.spotify-art{display:grid;flex:none;place-items:center;width:52px;height:52px;overflow:hidden;border-radius:var(--radius-md);background:var(--secondary)}.spotify-art-logo{background:linear-gradient(135deg,var(--spotify-green),#0f5f2c);color:#fff}.spotify-art-img{width:100%;height:100%;object-fit:cover}.spotify-eyebrow{display:flex;align-items:center;gap:6px;margin-bottom:2px;color:var(--muted-foreground);font-size:var(--text-xs)}.spotify-dot{width:6px;height:6px;border-radius:50%;background:var(--spotify-green)}.spotify-field{display:flex;align-items:center;gap:10px;height:46px;margin:16px 0 6px;padding:0 12px;border:1px solid var(--border);border-radius:10px;background:var(--input);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.spotify-field:focus-within{border-color:var(--ring);box-shadow:0 0 0 3px rgb(var(--highlight-rgb) / .2)}.spotify-field.error,.spotify-field.error:focus-within{border-color:var(--color-danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-danger) 20%,transparent)}.spotify-field-icon{display:flex;flex:none;color:var(--muted-foreground)}.spotify-field-input,.spotify-field-input:focus{flex:1;min-width:0;height:100%;padding:0;border:0;background:transparent;box-shadow:none;color:var(--foreground);font:inherit;font-size:var(--text-sm);outline:none}.spotify-field-error{color:var(--color-danger);font-size:.8rem}.spotify-progress-bar{height:6px;margin:4px 0 8px;border-radius:3px;background:var(--secondary);overflow:hidden}.spotify-progress-bar>i{display:block;width:0;height:100%;border-radius:3px;background:var(--spotify-green);transition:width var(--transition-fast)}.spotify-progress-count{color:var(--muted-foreground);font-size:.8rem;font-variant-numeric:tabular-nums}.spotify-progress-log{display:flex;flex-direction:column;gap:2px;margin-top:16px}.spotify-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;padding:6px 8px;border-radius:var(--radius-md)}.spotify-row.faded{opacity:.45}.spotify-row-cover{display:grid;place-items:center;width:40px;height:40px;overflow:hidden;border-radius:6px;background:var(--secondary);color:var(--muted-foreground)}.spotify-row.missing .spotify-row-cover{border:1px dashed var(--border);background:transparent}.spotify-row-img{width:100%;height:100%;object-fit:cover}.spotify-row-title,.spotify-row-artist{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.spotify-row-title{color:var(--foreground);font-size:var(--text-sm);font-weight:var(--font-medium)}.spotify-row.missing .spotify-row-title{color:var(--secondary-foreground)}.spotify-row-artist{margin-top:2px;color:var(--muted-foreground);font-size:.8rem}.spotify-row-trail{display:flex;align-items:center;color:var(--muted-foreground);font-size:.8rem;font-variant-numeric:tabular-nums}.spotify-row-trail.ok,.spotify-section-icon.ok{color:var(--spotify-green)}.spotify-row-more{padding:2px 8px 2px 60px;color:var(--muted-foreground);font-size:.8rem}button.spotify-row-more{display:block;width:100%;margin:0;border:0;background:none;font-family:inherit;line-height:inherit;text-align:left;cursor:pointer}.spotify-list,.spotify-section-rows{overscroll-behavior:contain}.spotify-stats{display:grid;grid-template-columns:repeat(var(--n, 2),1fr);gap:10px;margin:4px 0 18px}.spotify-stat{padding:12px 14px;border-radius:var(--radius-lg);background:var(--secondary)}.spotify-stat-n{font-size:var(--text-xl);font-weight:var(--font-bold);font-variant-numeric:tabular-nums;line-height:1.1}.spotify-stat.ok .spotify-stat-n{color:var(--spotify-green)}.spotify-stat-n small{color:var(--muted-foreground);font-size:.95rem;font-weight:var(--font-semibold)}.spotify-stat-label{margin-top:2px;color:var(--muted-foreground);font-size:.8rem}.spotify-split{display:flex;gap:2px;height:6px;margin:-6px 0 18px;border-radius:3px;overflow:hidden}.spotify-split>i{display:block;height:100%;background:var(--border)}.spotify-split>i.ok{background:var(--spotify-green)}.spotify-section-head{display:flex;justify-content:space-between;align-items:baseline;margin:2px 0 6px}.spotify-section-head h4{margin:0;font-size:var(--text-sm);font-weight:var(--font-semibold)}.spotify-section-head small{color:var(--muted-foreground);font-size:.8rem}.spotify-list{max-height:196px;padding:4px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-lg)}.spotify-note{display:flex;gap:10px;margin-top:14px;padding:12px 14px;border-radius:var(--radius-lg);background:color-mix(in srgb,var(--spotify-green) 10%,transparent);color:var(--secondary-foreground);font-size:.8rem;line-height:1.45}.spotify-note.warn{background:color-mix(in srgb,var(--color-warning) 12%,transparent)}.spotify-note-icon{display:flex;flex:none;margin-top:1px;color:var(--spotify-green)}.spotify-note.warn .spotify-note-icon{color:var(--color-warning)}.spotify-diff{display:flex;flex-wrap:wrap;gap:6px 18px;margin:2px 0 16px;color:var(--muted-foreground);font-size:var(--text-sm)}.spotify-diff b{color:var(--foreground);font-variant-numeric:tabular-nums}.spotify-choice-list{display:flex;flex-direction:column;gap:10px}.spotify-choice{display:grid;grid-template-columns:20px 1fr;gap:12px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-lg);background:transparent;color:var(--foreground);font:inherit;text-align:left;cursor:pointer}.spotify-choice.selected{border-color:var(--spotify-green);background:color-mix(in srgb,var(--spotify-green) 8%,transparent)}.spotify-radio{width:18px;height:18px;margin-top:2px;border:2px solid var(--muted-foreground);border-radius:50%;box-sizing:border-box}.spotify-choice.selected .spotify-radio{border-color:var(--spotify-green);background:var(--spotify-green);box-shadow:inset 0 0 0 3px var(--card)}.spotify-choice-title{font-size:var(--text-sm);font-weight:var(--font-semibold)}.spotify-choice-desc{margin-top:3px;color:var(--muted-foreground);font-size:.8rem;line-height:1.45}.spotify-section{border-top:1px solid var(--border)}.spotify-section:last-child{border-bottom:1px solid var(--border)}.spotify-section>summary{display:flex;align-items:center;gap:10px;padding:12px 2px;font-size:var(--text-sm);font-weight:var(--font-medium);list-style:none;cursor:pointer}.spotify-section>summary::-webkit-details-marker{display:none}.spotify-section-icon{display:flex;color:var(--muted-foreground)}.spotify-section-count{display:flex;align-items:center;gap:6px;margin-left:auto;color:var(--muted-foreground);font-size:.8rem}.spotify-chevron{display:flex;transition:transform var(--transition-fast)}.spotify-section[open] .spotify-chevron{transform:rotate(90deg)}.spotify-section-rows{padding:0 0 8px}.modal-content.spotify-modal.spotify-compact{max-width:380px;text-align:center}.spotify-compact .app-modal-title{margin:0 0 6px;font-size:var(--text-lg);font-weight:var(--font-bold)}.spotify-compact .modal-actions{justify-content:center}.spotify-badge-icon{display:grid;place-items:center;width:48px;height:48px;margin:6px auto 14px;border-radius:50%;background:var(--secondary)}.spotify-badge-icon.ok{color:var(--spotify-green)}.spotify-badge-icon.error{color:var(--color-danger)}.spotify-warn{margin:.5rem 0 0;color:var(--muted-foreground);font-size:.85rem}.spotify-missing{margin-top:var(--spacing-lg, 1.5rem)}.spotify-missing-heading{margin:0 0 .5rem;padding:0 var(--spacing-md);font-size:.95rem;font-weight:600;color:var(--muted-foreground)}.spotify-missing-row{opacity:.6}.spotify-missing-row:hover,.spotify-missing-row[aria-expanded=true]{opacity:1}.spotify-missing-row[aria-expanded=true]{background-color:var(--secondary)}.spotify-missing-row:focus-visible{outline:2px solid var(--highlight);outline-offset:-2px}.spotify-suggestions{margin:0 0 .5rem 1.5rem;padding-left:.5rem;border-left:2px solid #1db954}.spotify-suggest-line{margin:0;padding:var(--spacing-sm) var(--spacing-md);color:var(--muted-foreground);font-size:.85rem}.spotify-suggest-retry{margin-left:.5rem;padding:.2rem .75rem;font-size:.8rem}.spotify-suggestions .spotify-pick-btn{opacity:1;color:#1db954}@media(hover:hover){.track-item:hover .spotify-pick-btn{opacity:1;color:#1db954}}.track-item.unavailable.spotify-suggestion{cursor:default}.detail-header-actions .spotify-action-btn{text-decoration:none}.spotify-action-icon{position:relative;display:grid;place-items:center;color:#1db954;font-style:normal}.spotify-action-glyph{position:absolute;right:-5px;bottom:-4px;display:grid;place-items:center;width:14px;height:14px;border-radius:50%;background:var(--foreground);color:var(--background);box-shadow:0 0 0 2px var(--secondary)}.spotify-action-glyph svg{stroke-width:3}#local-playlist-tracklist .track-item.track-item--columns{grid-template-columns:40px minmax(0,1fr) 4rem 2.75rem auto}#local-playlist-tracklist .track-item--columns .track-item-popularity{display:none}@media(max-width:768px){#local-playlist-tracklist .track-item.track-item--columns{grid-template-columns:40px minmax(0,1fr) 2.4rem 2.25rem auto}}#download-album-btn{position:relative}.download-ring{position:absolute;inset:-3px;width:calc(100% + 6px);height:calc(100% + 6px);transform:rotate(-90deg);pointer-events:none}.download-ring circle,.download-pill-ring circle{fill:none;stroke-width:2.5}.download-ring-track{stroke:var(--border)}.download-ring-bar{stroke:var(--foreground);stroke-linecap:round;transition:stroke-dashoffset .25s linear}.dl-prep .download-ring-bar{stroke:var(--muted-foreground)}.download-ring--spin{animation:download-ring-spin 1s linear infinite}@keyframes download-ring-spin{0%{transform:rotate(-90deg)}to{transform:rotate(270deg)}}#download-album-btn .dl-cancel{display:none}@media(hover:hover){#download-album-btn.dl-busy:hover .dl-glyph{display:none}#download-album-btn.dl-busy:hover .dl-cancel{display:block}}@media(hover:none){#download-album-btn.dl-busy .dl-glyph{display:none}#download-album-btn.dl-busy .dl-cancel{display:block}}#download-album-btn.dl-done{color:var(--color-success)}#download-album-btn.dl-error{color:var(--color-danger)}#page-album .detail-header-actions{position:relative}.download-status-host{position:absolute;top:calc(100% + .6rem);left:0;right:0}.download-status-host[hidden]{display:none}.download-status{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;font-variant-numeric:tabular-nums}.download-status>span:last-child{overflow:hidden;text-overflow:ellipsis}.download-status-label{color:var(--foreground);font-weight:500}.download-status--ok .download-status-label{color:var(--color-success)}.download-status--error .download-status-label{color:var(--color-danger)}.download-status-sep{opacity:.5}.download-status-link{background:none;border:none;padding:0;font:inherit;color:var(--foreground);text-decoration:underline;text-underline-offset:2px;cursor:pointer}.download-status-missing{position:absolute;top:calc(100% + 6px);left:0;z-index:10;max-width:360px;padding:.5rem .75rem;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);font-size:.8rem;color:var(--muted-foreground);line-height:1.5}@media(max-width:768px){.download-status-host{position:relative;top:auto;flex-basis:100%}}.volume-controls #download-pill{width:auto;max-width:220px;height:28px;gap:.4rem;padding:0 .6rem 0 .25rem;border-radius:var(--radius-full);background-color:var(--secondary);color:var(--foreground);font-size:.75rem;font-variant-numeric:tabular-nums}#download-pill[hidden]{display:none}#download-pill svg{flex-shrink:0;width:20px;height:20px}.download-pill-ring{transform:rotate(-90deg)}.download-pill-ring circle{stroke-width:5}.download-pill-ring.download-ring--spin{animation:download-ring-spin 1s linear infinite}.download-pill-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#download-pill.download-pill--done{color:var(--color-success)}#download-pill.download-pill--error{color:var(--color-danger)}@media(max-width:768px){.volume-controls #download-pill{width:28px;padding:0;justify-content:center}.download-pill-text{display:none}}@media(pointer:coarse){input:not([type=checkbox],[type=radio],[type=range],[type=color],[type=file]),textarea,select{font-size:max(16px,1em)}}:root{--tabbar-h: 0px;--mini-player-h: 0px;--shell-bottom: 0px}html.shell{--shell-bottom: calc(var(--tabbar-h) + var(--mini-player-h) + env(safe-area-inset-bottom, 0px))}html:root.shell.shell-input-focus{--tabbar-h: 0px;--mini-player-h: 0px}:where(html.shell) .now-playing-bar{left:0;width:100%!important;bottom:0!important;border-radius:0;border-width:1px 0 0;background-color:var(--card)!important;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;padding-bottom:calc(var(--spacing-sm) + env(safe-area-inset-bottom,0px))}:where(html.shell) .main-content{padding-bottom:calc(var(--shell-bottom) + var(--spacing-lg))!important}:where(html.shell) .panel-content{padding-bottom:calc(var(--shell-bottom) + 2rem)}html:where(.shell.overlay-open){overflow:hidden}:where(html.shell) .side-panel .panel-content,:where(html.shell) .modal-content,:where(html.shell) .profile-gate{overscroll-behavior:contain}.shell-only{display:none!important}html.shell .shell-only{display:flex!important}.shell-tabbar{display:none}html.shell{--tabbar-h: 56px;--mini-player-h: 0px}html.shell .shell-tabbar{position:fixed;left:0;right:0;bottom:0;z-index:2100;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--card);border-top:1px solid var(--border)}html.shell .shell-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:44px;color:var(--muted-foreground);text-decoration:none;-webkit-tap-highlight-color:transparent}html.shell .shell-tab-icon,html.shell .shell-tab-avatar{display:flex;align-items:center;justify-content:center;height:26px}html.shell .shell-tab-label{font-size:11px;line-height:1.2;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}html.shell .shell-tab.active{color:var(--foreground)}html.shell .shell-tab.active .shell-tab-label{font-weight:700}html.shell .shell-tab.active .shell-tab-icon svg{fill:currentColor;stroke-width:2.5}html.shell .shell-tab[data-tab=search].active .shell-tab-icon svg,html.shell .shell-tab[data-tab=playlists].active .shell-tab-icon svg{fill:none;stroke-width:2.75}html.shell .shell-tab-avatar{width:26px;height:26px;border-radius:50%;overflow:hidden}html.shell .shell-tab.active .shell-tab-avatar{box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--ring)}@media(max-height:540px){html.shell{--tabbar-h: 44px}html.shell .shell-tab-label{display:none}}html.shell .tab-rail-btn{display:none}html.shell .sidebar,html.shell #sidebar-overlay,html.shell .hamburger-menu{display:none!important}html.shell.has-mini-player{--mini-player-h: 64px}html.shell .now-playing-bar{position:fixed!important;left:0!important;right:0;width:100%!important;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))!important;height:var(--mini-player-h);min-height:0;display:flex;align-items:center;gap:8px;padding:0 4px 0 8px;border-radius:0;border-width:1px 0 0;box-shadow:none;animation:none;background:var(--card)!important;-webkit-backdrop-filter:none;backdrop-filter:none;touch-action:none;z-index:2100;cursor:pointer}html.shell:not(.has-mini-player) .now-playing-bar{display:none!important}html.shell .now-playing-bar .track-info{flex:1;min-width:0;gap:10px}html.shell .now-playing-bar .track-info:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:6px}html.shell .now-playing-bar .cover{width:48px;height:48px;border-radius:6px}html.shell .now-playing-bar .cover:hover{transform:none}html.shell .now-playing-bar .cover:after{display:none}html.shell .now-playing-bar .details .title,html.shell .now-playing-bar .details .artist{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html.shell .now-playing-bar .details .title{display:block;font-size:14px;font-weight:600}html.shell .now-playing-bar .details .artist{font-size:12px}html.shell .now-playing-bar .details .album,html.shell .now-playing-bar .now-playing-menu-btn,html.shell .now-playing-bar .volume-controls,html.shell .now-playing-bar #shuffle-btn,html.shell .now-playing-bar #prev-btn,html.shell .now-playing-bar #repeat-btn,html.shell .now-playing-bar #current-time,html.shell .now-playing-bar #total-duration{display:none!important}html.shell .now-playing-bar .details a{pointer-events:none;color:inherit}html.shell .now-playing-bar .player-controls{flex:0 0 auto;width:auto}html.shell .now-playing-bar .player-controls .buttons{padding:0;gap:0}html.shell .now-playing-bar .player-controls .buttons button{width:44px;height:44px;min-width:44px;min-height:44px;background:transparent;color:var(--foreground)}html.shell .now-playing-bar .progress-container{position:absolute;left:0;right:0;bottom:0;height:2px;max-width:none;margin:0;padding:0;pointer-events:none}html.shell .now-playing-bar .progress-bar{height:2px!important;border-radius:0;background-color:var(--secondary)}html.shell .now-playing-bar .progress-fill{background:var(--foreground);border-radius:0}html.shell .now-playing-bar .progress-fill:after{display:none}.search-clear-btn[hidden]{display:none!important}html.shell .search-bar.shell-search{width:100%;max-width:none;margin:0 0 var(--spacing-md)}html.shell .search-bar.shell-search input{font-size:16px;min-height:48px;padding-right:3rem}html.shell .search-bar.shell-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}html.shell .search-clear-btn{width:44px;height:44px;right:2px}html.shell.shell-input-focus .shell-tabbar,html.shell.shell-input-focus .now-playing-bar{display:none!important}html.shell .main-header{display:none}html.shell .main-content{padding-top:calc(max(var(--spacing-md),env(safe-area-inset-top)) + var(--top-banner-h, 0px))}html.shell .remote-picker{display:contents}html.shell .remote-picker>.remote-picker-btn{display:none}html.shell .mini-cast-btn.active{color:var(--highlight)}.shell-back{display:none}html.shell .shell-back:not([hidden]){display:flex;align-items:center;justify-content:center;position:fixed;z-index:2110;top:calc(env(safe-area-inset-top) + var(--top-banner-h, 0px) + 8px);left:12px;width:40px;height:40px;padding:0;border-radius:50%;border:0;color:#fff;background:#00000073;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);-webkit-tap-highlight-color:transparent;cursor:pointer}html.shell .shell-back:before{content:"";position:absolute;inset:-2px}html.shell .top-banner-slot{position:fixed;top:0;left:0;right:0;z-index:2120;background:var(--background)}html.shell .top-banner-slot.open{padding-top:env(safe-area-inset-top)}html.shell #download-notifications{left:16px;right:16px;max-width:none;bottom:calc(var(--shell-bottom) + 8px)}html.shell .download-task{min-width:0}html.shell.np-open #download-notifications{bottom:auto;top:calc(env(safe-area-inset-top) + var(--top-banner-h, 0px) + 56px)}html.shell :is(.shell-tab,.shell-back,.mini-cast-btn,.player-controls .buttons button,.search-tab,.btn-primary,.btn-secondary,.remote-device-btn,.search-clear-btn,.settings-row){min-height:44px}html.shell :is(.shell-back,.mini-cast-btn,.player-controls .buttons button,.search-clear-btn,.search-tab,.btn-primary,.btn-secondary){min-width:44px}html.shell #home-genre-tabs .search-tab{min-width:44px}html.shell :is(.track-menu-btn,.track-row-like-btn,.track-row-action-btn,.suggest-row-menu,.queue-remove-btn,.queue-like-btn,.card-layout-toggle button,.remote-grab){position:relative}html.shell :is(.track-menu-btn,.track-row-like-btn,.track-row-action-btn,.suggest-row-menu,.queue-remove-btn,.queue-like-btn,.card-layout-toggle button,.remote-grab,.card-menu-btn,.card-like-btn,.card-play-btn,.edit-playlist-btn,.delete-playlist-btn):before{content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%)}.np-sheet{display:none}html.shell .np-sheet:not([hidden]){position:fixed;inset:0;z-index:2150;display:flex;flex-direction:column;padding:calc(env(safe-area-inset-top) + 8px) 24px calc(env(safe-area-inset-bottom) + 12px);background:var(--background);color:var(--foreground);transform:translateY(100%);transition:transform .28s cubic-bezier(.2,0,0,1);overscroll-behavior:contain}html.shell .np-sheet.open{transform:translateY(var(--np-drag, 0px))}html.shell .np-sheet.dragging{transition:none}html.shell.np-open .np-sheet:not([hidden]){padding-top:calc(env(safe-area-inset-top) + 8px + var(--top-banner-h, 0px))}html.shell .np-header{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:44px;flex:none;touch-action:none}html.shell .np-close{justify-self:start;display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-left:-10px;padding:0;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer}html.shell .np-grip{width:36px;height:4px;border-radius:2px;background:currentColor;opacity:.25}html.shell .np-header-end{justify-self:end;display:flex;align-items:center;margin-right:-10px}html.shell .np-download-pill:not([hidden]){display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:none;color:var(--foreground)}html.shell .np-download-pill svg{width:22px;height:22px}html.shell .np-download-pill .download-pill-text{display:none}html.shell .np-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;align-items:center;gap:12px}html.shell .np-art{display:flex;justify-content:center;flex:none;margin-top:auto;touch-action:none}html.shell .np-cover{width:clamp(120px,min(100%,calc(100dvh - 380px - env(safe-area-inset-top) - env(safe-area-inset-bottom))),100%);aspect-ratio:1;height:auto;border-radius:12px;object-fit:cover;box-shadow:var(--shadow-2xl);background:var(--muted)}html.shell .np-controls{align-self:stretch;display:flex;flex-direction:column;gap:12px;flex:none;margin:auto 0}html.shell .np-meta{text-align:center;display:grid;gap:2px;min-width:0}html.shell .np-title{font-size:22px;font-weight:700;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}html.shell .np-title .low-quality-chip{vertical-align:middle;margin-left:6px}html.shell .np-artist{font-size:16px;color:var(--muted-foreground)}html.shell .np-album{font-size:14px;color:var(--muted-foreground)}html.shell .np-device{font-size:13px;color:var(--highlight)}html.shell .np-device[hidden]{display:none}html.shell :is(.np-artist,.np-album,.np-device){white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html.shell .np-meta a{color:inherit;text-decoration:none;display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;vertical-align:top;padding:4px 0}html.shell .np-seek{display:grid;gap:6px}html.shell .np-progress{height:4px;background:var(--border)}html.shell .np-progress:hover{height:4px}html.shell .np-progress .progress-fill{background:var(--primary)}html.shell .np-sheet .progress-bar:before{content:"";position:absolute;left:0;right:0;top:-6px;height:44px}html.shell .np-progress:not(.scrubbing) .progress-fill:after{display:none}html.shell .np-progress.scrubbing .progress-fill:after{content:"";position:absolute;right:-7px;top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:50%;background-color:var(--primary)}html.shell .np-times{display:flex;justify-content:space-between;font-size:12px;color:var(--muted-foreground);font-variant-numeric:tabular-nums}html.shell .np-transport{display:flex;align-items:center;justify-content:space-between;padding:0 4px}html.shell :is(.np-transport,.np-actions) button{width:48px;height:48px;padding:0;background:none;border:0;color:var(--foreground);display:flex;align-items:center;justify-content:center;border-radius:50%;position:relative;cursor:pointer;-webkit-tap-highlight-color:transparent}html.shell .np-transport :is([data-np=shuffle],[data-np=repeat]){color:var(--muted-foreground)}html.shell .np-transport button.active{color:var(--primary)}html.shell .np-transport [data-np=repeat].repeat-one:after{content:"1";position:absolute;top:8px;right:8px;font-size:10px;font-weight:700}html.shell .np-transport .np-play{width:64px;height:64px;background:var(--primary);color:var(--primary-foreground)}html.shell .np-actions{display:flex;justify-content:space-around}html.shell .np-actions button:disabled{opacity:.4;cursor:default}html.shell .np-actions [data-sleep-timer].active,html.shell .np-cast.active{color:var(--highlight)}html.shell .np-actions [data-sleep-timer].active[data-remaining]:not([data-remaining=track]):after{font-size:10px;bottom:2px}@media(max-height:600px){html.shell .np-album{display:none}html.shell :is(.np-body,.np-controls){gap:8px}html.shell .np-title{font-size:20px}}@media(max-height:500px){html.shell .np-sheet:not([hidden]){padding-left:calc(env(safe-area-inset-left) + 16px);padding-right:calc(env(safe-area-inset-right) + 16px)}html.shell .np-body{flex-direction:row;justify-content:center;gap:24px}html.shell .np-art{margin:auto 0}html.shell .np-cover{width:min(calc(100dvh - 76px - env(safe-area-inset-top) - env(safe-area-inset-bottom)),42vw)}html.shell .np-controls{flex:1;max-width:420px;gap:8px}html.shell .np-title{-webkit-line-clamp:1;font-size:18px}html.shell .np-transport .np-play{width:56px;height:56px}html.shell :is(.np-transport,.np-actions) button{width:44px;height:44px}}html.shell .audio-unlock-banner{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--highlight);color:var(--background)}html.shell .audio-unlock-banner[hidden]{display:none}html.shell .audio-unlock-label{flex:1;min-width:0;font-size:14px}html.shell .audio-unlock-btn{min-height:44px;padding:0 16px;border-radius:999px;border:0;background:var(--background);color:var(--foreground);font-weight:700;cursor:pointer}html.shell.np-open .top-banner-slot{z-index:2160}@media(prefers-reduced-motion:reduce){html.shell .np-sheet:not([hidden]){transition:none}}html.shell .sheet-root{position:fixed;inset:0;z-index:var(--z-sheet)}html.shell .sheet-root.closing{pointer-events:none}html.shell .sheet-backdrop{position:absolute;inset:0;background:#00000080;opacity:0;transition:opacity .28s ease-out;touch-action:none}html.shell .sheet-root.open .sheet-backdrop{opacity:1}html.shell .sheet{position:absolute;left:0;right:0;bottom:var(--sheet-kb, 0px);display:flex;flex-direction:column;background:var(--card);color:var(--foreground);border:1px solid var(--border);border-bottom:0;border-radius:16px 16px 0 0;transform:translateY(100%);transition:transform .28s cubic-bezier(.2,.8,.2,1);max-width:640px;margin-inline:auto;outline:none}html.shell .sheet-root.open .sheet{transform:none}html.shell .sheet--auto{max-height:min(75dvh,calc(100dvh - var(--sheet-kb, 0px) - env(safe-area-inset-top,0px) - 24px))}html.shell .sheet--tall{height:calc(100dvh - var(--sheet-kb, 0px) - env(safe-area-inset-top,0px) - var(--sheet-tall-gap, 88px))}html.shell .sheet-grab{touch-action:none;flex:none;padding-top:8px}html.shell .sheet-handle{width:36px;height:4px;border-radius:2px;margin:0 auto 4px;background:var(--muted-foreground);opacity:.5}html.shell .sheet-header{display:flex;align-items:center;gap:12px;padding:8px 16px 12px;border-bottom:1px solid var(--border)}html.shell .sheet-header-cover{width:44px;height:44px;border-radius:6px;flex:none;object-fit:cover}html.shell .sheet-header-cover.round{border-radius:50%}html.shell .sheet-header-text{min-width:0;flex:1}html.shell .sheet-title{margin:0;font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html.shell .sheet-subtitle{margin:2px 0 0;font-size:13px;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}html.shell .sheet-header-actions{display:flex;gap:4px;flex:none}html.shell .sheet-header-actions>button{min-width:44px;min-height:44px}html.shell .sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;padding-bottom:calc(env(safe-area-inset-bottom,0px) + 16px)}@media(prefers-reduced-motion:reduce){html.shell .sheet,html.shell .sheet-backdrop{transition:none}}html.reorder-pressing body{user-select:none;-webkit-user-select:none}html.shell .reorder-host{position:relative}html.shell .reorder-lifted{position:absolute;left:0;right:0;z-index:5;pointer-events:none;background:var(--card);box-shadow:var(--shadow-xl);border-radius:var(--radius);transform:scale(1.02);transition:none}html.shell .reorder-placeholder{border:1px dashed var(--border);border-radius:var(--radius);background:rgb(var(--highlight-rgb),.06)}html.shell .queue-sheet .sheet-body{padding-inline:8px}html.shell .queue-sheet #side-panel-content{flex:none;overflow:visible;max-height:none;padding:0}html.shell .queue-sheet .queue-list{position:relative}html.shell .queue-track-item{grid-template-columns:44px 1fr auto 44px;gap:8px;padding:4px 4px 4px 0;cursor:default;min-height:56px}html.shell .queue-track-item:hover{background:none}html.shell .queue-track-item.playing:hover{background-color:rgb(var(--highlight-rgb),.15)}html.shell .queue-track-item .drag-handle{width:44px;height:44px;touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none;color:var(--muted-foreground);cursor:grab}html.shell .queue-track-item .drag-handle svg{width:18px;height:18px}html.shell .queue-track-item .track-item-cover{width:44px;height:44px}html.shell .queue-track-item .queue-remove-btn{width:44px;height:44px;opacity:1}#local-playlist-tracklist .drag-handle{display:none}html.shell #local-playlist-tracklist{position:relative}html.shell #local-playlist-tracklist .drag-handle{display:flex;align-items:center;justify-content:center;height:44px;touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none;color:var(--muted-foreground)}html.shell #local-playlist-tracklist [data-action=move-up],html.shell #local-playlist-tracklist [data-action=move-down]{position:absolute;width:1px;height:1px;min-width:0;min-height:0;margin:0;padding:0;border:0;overflow:hidden;clip-path:inset(50%)}.remote-device-action,.remote-grab-label,.remote-banner-exit-text{display:none}.remote-group-toggle-text{display:flex;flex:1;min-width:0;gap:var(--space-2);align-items:center}#lyrics-panel .panel-header{align-items:flex-start;gap:12px}.panel-title-wrap{display:flex;flex-direction:column;min-width:0;flex:1;padding-left:.5rem}.panel-title-wrap h3{padding-left:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-subtitle{font-size:.85rem;color:var(--muted-foreground);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-modal-choice .modal-actions{margin-top:.75rem}.top-banner-inner{display:flex;flex-direction:column}.top-banner-inner>[data-lane=session]{order:1}html.shell .sheet-body>#context-menu.in-sheet{position:static;display:block;min-width:0;border:0;border-radius:0;box-shadow:none;background:transparent;padding:0 0 8px;animation:none;transform:none;z-index:auto}html.shell #context-menu.in-sheet ul{padding:0;margin:0}html.shell #context-menu.in-sheet li[role=menuitem],html.shell #context-menu.in-sheet.playlist-picker li{min-height:48px;padding:12px 24px;margin:0;gap:16px;font-size:16px;border-radius:0}html.shell #context-menu.in-sheet li:hover{transform:none;background:none}html.shell #context-menu.in-sheet li:active,html.shell #context-menu.in-sheet .menu-tile:active{background:var(--secondary)}html.shell #context-menu.in-sheet .menu-item-icon svg{width:22px;height:22px}html.shell #context-menu.in-sheet .menu-item-detail{font-size:12.5px}html.shell #context-menu.in-sheet li.menu-section{min-height:0;padding:16px 24px 4px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-foreground)}html.shell #context-menu.in-sheet .menu-tiles{display:flex;gap:8px;padding:12px 16px 4px}html.shell #context-menu.in-sheet .menu-tile{flex:1 1 0;min-width:0;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 2px;border:0;border-radius:12px;background:var(--muted);color:var(--foreground);font:inherit;font-size:11.5px;cursor:pointer}html.shell #context-menu.in-sheet .menu-tile .menu-item-icon{display:inline-flex}html.shell #context-menu.in-sheet .menu-tile.disabled{opacity:.4;pointer-events:none}html.shell #context-menu.in-sheet .menu-tile-label{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-align:center;line-height:1.25}html.shell #context-menu.playlist-picker.in-sheet li{justify-content:space-between}html.shell #context-menu.playlist-picker.in-sheet li.playlist-picker-create{justify-content:flex-start;color:var(--foreground)}html.shell #context-menu.in-sheet .playlist-picker-name{max-width:none}html.shell #context-menu.in-sheet .playlist-picker-count{color:var(--muted-foreground);font-size:14px}html.shell .choice-sheet{display:flex;flex-direction:column;padding-top:4px}html.shell .choice-row{display:block;width:100%;min-height:48px;padding:12px 24px;text-align:left;font:inherit;font-size:16px;background:none;border:0;color:var(--foreground);cursor:pointer}html.shell .choice-row:active{background:var(--secondary)}html.shell .choice-row.danger{color:var(--color-danger)}html.shell .choice-cancel{text-align:center;color:var(--muted-foreground);margin-top:4px;border-top:1px solid var(--border)}html.shell .devices-sheet .sheet-body>.remote-menu{position:static;inset:auto;min-width:0;max-width:none;max-height:none;overflow:visible;z-index:auto;border:0;border-radius:0;box-shadow:none;background:transparent;padding:0 8px 8px}html.shell .remote-device-btn{min-height:52px;padding:8px 12px}html.shell .remote-device-name{font-size:16px}html.shell .remote-device-sub{font-size:13px}html.shell .remote-device-btn:has(>.remote-device-action){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:center}html.shell .remote-device-btn:has(>.remote-device-action)>:not(.remote-device-action){grid-column:1}html.shell .remote-device-action{display:inline-block;grid-column:2;grid-row:1 / span 2;font-size:13px;color:var(--highlight);font-weight:600}html.shell .remote-grab{width:auto;height:auto;min-height:44px;padding:0 12px;gap:6px;border:1px solid var(--border);border-radius:999px;color:var(--foreground)}html.shell .remote-grab-label{display:inline;font-size:13px}html.shell .remote-device.offline .remote-grab{display:none}html.shell .remote-device-connecting{color:var(--muted-foreground)}html.shell .remote-group-toggle-row{min-height:44px;padding:6px 12px;gap:12px;font-size:15px}html.shell .remote-group-toggle-text{flex-direction:column;align-items:flex-start;gap:2px}html.shell .remote-group-toggle-hint{margin-left:0;font-size:12.5px;font-style:normal;color:var(--muted-foreground)}html.shell .remote-group-toggle-row--disabled{opacity:1}html.shell .remote-group-toggle-row--disabled .remote-group-toggle{opacity:.4}html.shell .remote-group-toggle{order:2;appearance:none;-webkit-appearance:none;flex:none;width:44px;height:26px;border-radius:13px;background:var(--muted);position:relative;transition:background-color .15s;margin:0}html.shell .remote-group-toggle:after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--foreground);transition:transform .15s}html.shell .remote-group-toggle:checked{background:var(--highlight)}html.shell .remote-group-toggle:checked:after{transform:translate(18px);background:var(--background)}html.shell .remote-group-toggle:focus-visible{outline:2px solid var(--highlight);outline-offset:2px}html.shell .remote-group-name{font-size:16px;min-height:44px}html.shell .remote-group-create-btn{min-height:44px}html.shell .lyrics-sheet #lyrics-panel-content{flex:none;overflow:visible;max-height:none;padding:0 16px}html.shell .app-modal.app-modal--top{align-items:flex-start;padding-top:calc(env(safe-area-inset-top,0px) + 8dvh)}html.shell .app-modal--top .modal-content{width:calc(100% - 32px);max-width:480px;max-height:calc(92dvh - env(safe-area-inset-top,0px) - 16px)}html.shell .app-modal-input,html.shell .spotify-field-input{font-size:16px;min-height:44px}html.shell .group-banner .remote-banner-exit{position:relative;width:auto;height:32px;min-height:0;margin-block:0;padding:0 12px;border:1px solid var(--border);border-radius:999px;color:var(--foreground)}html.shell .group-banner .remote-banner-exit:before{content:"";position:absolute;inset:-6px 0;border:0;background:none;box-shadow:none}html.shell .group-banner .remote-banner-exit svg{display:none}html.shell .group-banner .remote-banner-exit-text{display:inline;font-size:13px}html.shell .remote-group-active-row .remote-device-info{flex:1;min-width:0;align-items:flex-start;text-align:left}html.shell :is(button,a,input,select,textarea,label,summary,[role=button],[role=tab],.card,.track-item,.search-tab){touch-action:manipulation}html.shell .main-content{padding-left:16px;padding-right:16px}html.shell.shell-pushed .page.active:not(#page-artist){padding-top:calc(64px + env(safe-area-inset-top) - max(var(--spacing-md),env(safe-area-inset-top)))}html.shell .side-panel:not(.active){visibility:hidden}html.shell :is(.search-tabs,.stats-range,#page-library .search-tabs,#page-playlists .search-tabs,#home-genre-tabs){display:flex;flex-wrap:nowrap;gap:8px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;border-bottom:0;border-radius:0;background:none;padding:0 16px;margin:0 -16px var(--spacing-md);scroll-padding-inline:16px;--fade-l: 0px;--fade-r: 0px;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 var(--fade-l),#000 calc(100% - var(--fade-r)),transparent 100%)}html.shell :is(.search-tabs,.stats-range,#page-library .search-tabs,#page-playlists .search-tabs,#home-genre-tabs).can-scroll-start{--fade-l: 24px}html.shell :is(.search-tabs,.stats-range,#page-library .search-tabs,#page-playlists .search-tabs,#home-genre-tabs).can-scroll-end{--fade-r: 32px}html.shell :is(.search-tab,.stats-range-btn,#page-library .search-tab,#page-playlists .search-tab,#home-genre-tabs .search-tab){flex:0 0 auto;min-width:0;min-height:44px;margin:0;padding:0 14px;border:0;border-radius:9999px;background:none;color:var(--foreground);font-size:.875rem;font-weight:600;line-height:1;white-space:nowrap;position:relative;isolation:isolate;text-box:trim-both cap alphabetic}html.shell :is(.search-tab,.stats-range-btn,#page-library .search-tab,#page-playlists .search-tab,#home-genre-tabs .search-tab):active{transform:none}html.shell :is(.search-tab,.stats-range-btn,#page-library .search-tab,#page-playlists .search-tab,#home-genre-tabs .search-tab):before{content:"";position:absolute;inset:4px 0;z-index:-1;border-radius:9999px;background:var(--muted)}html.shell :is(.search-tab,.stats-range-btn,#page-library .search-tab,#page-playlists .search-tab,#home-genre-tabs .search-tab).active{color:var(--primary-foreground);background:none}html.shell :is(.search-tab,.stats-range-btn,#page-library .search-tab,#page-playlists .search-tab,#home-genre-tabs .search-tab).active:before{background:var(--primary)}html.shell :is(.search-tab,#home-genre-tabs .search-tab):after{content:none}html.shell .tab-rail{margin-bottom:0}html.shell .changelog-chip{min-height:44px;padding:0 14px}.shell-titlebar{display:none}html.shell .shell-titlebar{display:flex;align-items:center;justify-content:center;position:fixed;top:0;left:0;right:0;z-index:2105;height:calc(56px + env(safe-area-inset-top) + var(--top-banner-h, 0px));padding:calc(env(safe-area-inset-top) + var(--top-banner-h, 0px)) 64px 0;background:var(--background);background:rgb(from var(--background) r g b / .97);border-bottom:1px solid var(--border);pointer-events:none;transition:opacity .1s linear}html.shell .shell-titlebar-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700}html.shell.np-open .shell-titlebar{visibility:hidden}html.shell #page-search #search-results-title,html.shell #page-search .card-layout-toggle{display:none}html.shell .card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}html.shell .card{background:none;border:0;padding:0;box-shadow:none}html.shell .card-image-wrapper{margin-bottom:8px;border-radius:8px;box-shadow:none}html.shell .card:not(.artist) :is(.card-image,.card-collage){border-radius:8px}html.shell .card:not(.artist) .card-image-wrapper :is(.card-image,.card-collage){clip-path:inset(0 round 8px)}html.shell .card-title{font-size:.875rem;margin-bottom:2px}html.shell .card-subtitle{font-size:.75rem}html.shell :is(#page-playlists,#page-library) .library-create-dashed-card{border:2px dashed var(--border)}html.shell :is(.card-like-btn,.card-menu-btn,.card-play-btn,.edit-playlist-btn,.delete-playlist-btn){opacity:1;transform:none}html.shell .card.compact .card-like-btn{display:flex!important}html.shell .card-play-btn{width:36px!important;height:36px!important;right:6px;bottom:6px}html.shell .card-image-wrapper{overflow:visible}html.shell .card:hover{transform:none;box-shadow:none;background:none;border-color:transparent}html.shell .card:hover .card-image{transform:none}html.shell body.cards-list .card{display:flex;align-items:center;gap:8px;padding:4px 0}html.shell body.cards-list .card-image-wrapper{display:contents}html.shell body.cards-list .card-image-wrapper>:is(.card-image,.card-collage){flex:0 0 56px;width:56px;height:56px;order:0}html.shell body.cards-list .card-info{order:1;flex:1 1 auto;margin-left:4px}html.shell body.cards-list :is(.card-play-btn,.card-like-btn){display:flex!important;position:static!important;opacity:1!important;transform:none!important;flex:0 0 44px;width:44px!important;height:44px!important;background:none!important;border:0!important;box-shadow:none!important;-webkit-backdrop-filter:none;backdrop-filter:none;color:var(--foreground)!important}html.shell body.cards-list .card-like-btn{order:2;color:var(--muted-foreground)!important}html.shell body.cards-list .card-play-btn{order:3}html.shell body.cards-list .card-menu-btn{order:4;margin-left:0}html.shell :is(.like-btn.active .heart-icon,.card-like-btn.active,.track-row-like-btn.active,.detail-header-actions .like-btn.active){color:var(--primary)!important;fill:var(--primary)}html.shell body.cards-list .card-like-btn.active{color:var(--primary)!important}html.shell :is(.track-item .artist a,.detail-header-info .meta a,.card-subtitle a,.np-meta a){display:inline-block;padding-block:14px;margin-block:-14px}html.shell .np-meta a{padding-block:9px;margin-block:-9px;min-height:44px;line-height:26px}html.shell #page-artist .detail-header{--hero-h: min(100vw, 420px, 62vh);--hero-h: min(100vw, 420px, 62dvh);margin:calc(-1 * (max(var(--spacing-md),env(safe-area-inset-top)) + var(--top-banner-h, 0px))) -16px var(--spacing-lg);padding:calc(var(--hero-h) - 7rem + env(safe-area-inset-top) + var(--top-banner-h, 0px)) 16px 1rem;min-height:0;border-radius:0}html.shell #page-artist .detail-header-image{top:0;left:0;width:100%;height:var(--hero-h);-webkit-mask-image:linear-gradient(to bottom,#000 55%,transparent 100%);mask-image:linear-gradient(to bottom,#000 55%,transparent 100%)}html.shell #page-artist .detail-header-info .title{font-size:clamp(2rem,9vw,2.75rem)}html.shell #page-artist :is(.card-sub-artist,.card-sub-sep){display:none}html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) .detail-header{display:flex;flex-direction:column;align-items:stretch;gap:16px;padding:0;min-height:0}html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) .detail-header-cover-container,html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) .detail-header>.detail-header-image,html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) .detail-header>.detail-header-collage{align-self:center;width:min(60vw,280px,38vh);width:min(60vw,280px,38dvh);max-width:100%;margin:0}html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) :is(.detail-header-image,.detail-header-collage){width:100%;height:auto;aspect-ratio:1}html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) .detail-header>:is(.detail-header-image,.detail-header-collage){width:min(60vw,280px,38vh);width:min(60vw,280px,38dvh)}html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) .detail-header-info{text-align:left;height:auto;min-width:0;display:flex;flex-direction:column;align-items:stretch}html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) .detail-header-info .type{display:none}html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) .detail-header-info .title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;white-space:normal;font-size:1.5rem;line-height:1.25;margin:0}html.shell #page-album .detail-header-info .title .title-text{display:inline;white-space:normal;overflow:visible}html.shell #page-album .detail-header-info .title .explicit-badge{vertical-align:middle;margin-left:6px}html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) .detail-header-info .meta{white-space:normal;overflow:visible}html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) .detail-header-actions{margin-top:12px;gap:8px;flex-wrap:nowrap;align-items:center}html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) .detail-header-actions :is(.btn-primary,.btn-secondary){width:44px!important;height:44px!important;flex:0 0 auto}html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) .detail-header-actions :is(#play-album-btn,#play-playlist-btn,#play-show-btn,[data-action=play-local-playlist-header]){width:56px!important;height:56px!important}html.shell :is(#like-album-btn,#like-playlist-btn,#like-show-btn,#page-playlist-local .detail-actions-end){margin-left:auto}html.shell #page-album :is(#add-album-btn,#download-album-btn){display:none}html.shell #page-album .detail-header-actions{flex-wrap:wrap;position:static}html.shell #page-album .download-status-host{position:static;flex:1 0 100%}html.shell :is(#shuffle-album-btn,#shuffle-playlist-btn,[data-action=shuffle-local-playlist]){background:transparent;color:var(--foreground);border:1px solid var(--border)}html.shell :is(#page-album,#page-playlist,#page-playlist-local,#page-show) .detail-header-actions .btn-secondary{background:transparent;color:var(--foreground);border:1px solid var(--border)}html.shell .detail-header-actions .like-btn.active{color:var(--primary)}html.shell #page-album .detail-header-actions #album-menu-btn{border:0!important;background:transparent!important}html.shell #page-playlist-local .detail-header-actions .btn-secondary[data-action=delete-local-playlist]{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 50%,transparent);margin-left:16px}html.shell :is(#album-detail-tracklist,#playlist-detail-tracklist){margin-inline:-8px}html.shell #local-playlist-tracklist .track-item.track-item--columns{grid-template-columns:36px 40px minmax(0,1fr) 2.25rem auto;column-gap:6px;padding-inline:4px}html.shell #local-playlist-tracklist .drag-handle{width:36px}html.shell #local-playlist-tracklist .track-item-plays{display:none}html.shell #local-playlist-tracklist .track-item-actions{gap:0}html.shell #local-playlist-tracklist .track-item-actions :is([data-action=remove],.track-menu-btn){width:32px;min-width:32px;height:44px;padding:0}@media(min-width:441px){html.shell #local-playlist-tracklist .track-item-plays{display:flex}html.shell #local-playlist-tracklist .track-item.track-item--columns{grid-template-columns:36px 40px minmax(0,1fr) 2.4rem 2.25rem auto}}@media(max-width:380px){html.shell #local-playlist-tracklist .track-item.track-item--columns{grid-template-columns:32px 36px minmax(0,1fr) 2.25rem auto;column-gap:4px}html.shell #local-playlist-tracklist .drag-handle{width:32px}html.shell #local-playlist-tracklist .track-number{width:36px}}html.shell :is(.track-row-action-btn,.track-menu-btn,.track-actions-inline,.suggest-row-menu,.queue-track-item .queue-remove-btn,.queue-track-item .queue-like-btn){opacity:1}html.shell .track-row-action-btn:disabled{opacity:.25}html.shell :is(#page-library,#page-playlists) .library-header{margin-bottom:8px}html.shell :is(#page-library,#page-playlists) .library-header h2{font-size:1.5rem;margin:0 0 4px;width:auto}html.shell .stats-filters{flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0;border-bottom:0}html.shell .stats-filters .stats-category-tabs{margin-bottom:4px}html.shell .stats-headline{flex-direction:column;gap:8px}html.shell .stats-tile{min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 16px}html.shell .stats-tile-label{order:-1;margin:0}html.shell .stats-axis-x-label.is-start{transform:none}html.shell .stats-axis-x-label.is-end{transform:translate(-100%)}.stats-chart-caption,.stats-chart-empty{display:none}html.shell .stats-chart-caption{display:block;min-height:1.25rem;margin-top:4px;font-size:.8125rem;color:var(--muted-foreground)}html.shell .stats-bar.is-selected{background:var(--foreground)}html.shell .stats-chart--empty .stats-chart-empty{display:flex;position:absolute;inset:0;align-items:center;justify-content:center;font-size:.875rem;color:var(--muted-foreground);pointer-events:none}html.shell .stats-chart--empty .stats-chart-yref-label{visibility:hidden}html.shell #page-stats p.placeholder-text:has(~.content-section .stats-chart--empty){display:none}html.shell .stats-filters{margin-bottom:var(--spacing-md)}html.shell .stats-filters .stats-range{margin-bottom:0}.show-desc-more{display:none}html.shell #page-show .detail-header-actions{order:5}html.shell #page-show .detail-header-info #show-detail-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;white-space:normal;order:10;margin-top:12px}html.shell #page-show .detail-header-info #show-detail-description[style*=none]{display:none}html.shell #page-show .detail-header-info #show-detail-description.is-expanded{-webkit-line-clamp:unset;display:block}html.shell #page-show .show-desc-more:not([hidden]){display:inline-flex;align-items:center;align-self:flex-start;order:11;min-height:44px;min-width:44px;padding:0;border:0;background:none;color:var(--foreground);font:inherit;font-weight:600;cursor:pointer}html.shell #show-detail-episodes .track-item{grid-template-columns:40px minmax(0,1fr) auto auto}.share-chevron{display:none}html.shell .share-chevron{display:flex;margin-left:auto;flex:none;color:var(--muted-foreground);transition:transform .15s}html.shell .share-row.expanded .share-chevron{transform:rotate(90deg)}html.shell .share-action{min-height:44px;display:inline-flex;align-items:center;padding:0 16px}html.shell .share-actions{width:100%}html.shell .share-row-inactive{opacity:1}html.shell .share-row-inactive .share-cover{opacity:.45;filter:grayscale(1)}html.shell .share-avatar{width:22px;height:22px}html.shell .share-avatar-initials{font-size:11px}html.shell .spotify-stats[data-n="3"]{grid-template-columns:1fr 1fr}html.shell .spotify-stats[data-n="3"]>:last-child{grid-column:1 / -1}html.shell button.spotify-row-more{min-height:44px;color:var(--foreground)}html.shell :is(.explicit-badge,.low-quality-chip){font-size:.6875rem;height:1.125rem}html.shell .explicit-badge{width:1.125rem}html.shell #sleep-timer-btn.active[data-remaining]:not([data-remaining=track]):after,html.shell [data-sleep-timer].active[data-remaining]:not([data-remaining=track]):after{font-size:.625rem}@media(hover:none){.card-like-btn,.card-play-btn{opacity:1;transform:none}.card.compact .card-like-btn{display:flex!important}}html.shell #download-pill{position:fixed;right:16px;bottom:calc(var(--shell-bottom) + 8px);z-index:2200;display:flex;align-items:center;gap:6px;width:auto;height:36px;min-width:44px;min-height:0;padding:0 12px 0 6px;border:0;border-radius:9999px;background:var(--secondary);color:var(--foreground);box-shadow:var(--shadow-lg);font-size:.8125rem;font-variant-numeric:tabular-nums}html.shell #download-pill:not(:has(.download-pill-short:not(:empty))){justify-content:center;padding:0}html.shell #download-pill:before{content:"";position:absolute;inset:-4px 0}html.shell #download-pill[hidden],html.shell.np-open #download-pill{display:none}html.shell #download-pill.download-pill--done{color:var(--color-success)}html.shell #download-pill.download-pill--error{color:var(--color-danger)}html.shell #download-pill .download-pill-text,.download-pill-short{display:none}html.shell #download-pill .download-pill-short:not(:empty){display:inline}html.shell .download-status{white-space:normal;flex-wrap:wrap}html.shell .download-status>span:last-child{overflow:visible}html.shell .download-status-missing{position:static;max-width:none;box-shadow:none;margin-top:6px}html.standalone:is([data-theme=white],[data-theme=latte]):before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:#0a0a0a;z-index:2147483647;pointer-events:none}@property --np-tint{syntax: "<color>"; inherits: true; initial-value: transparent;}@property --np-tint-light{syntax: "<color>"; inherits: true; initial-value: transparent;}html:not(.shell){--player-bar-height-desktop: 78px}html:not(.shell) .now-playing-bar{--np-wash: var(--np-tint);--np-inner: calc(var(--player-bar-height-desktop) - 2 * var(--spacing-sm) - 2px);--np-cover: 88px;--np-seek: var(--np-fill);grid-template-columns:minmax(0,1fr) auto minmax(max-content,1fr);gap:var(--spacing-lg);padding:var(--spacing-sm) var(--spacing-md);background-image:linear-gradient(90deg,color-mix(in srgb,var(--np-wash) 75%,transparent) 0,color-mix(in srgb,var(--np-wash) 30%,transparent) 24%,transparent 55%);border-color:color-mix(in srgb,var(--np-wash) 35%,var(--border));transition:all var(--transition-normal) var(--ease-out-back),--np-tint .6s ease,--np-tint-light .6s ease}:root[data-theme=latte]:not(.shell) .now-playing-bar,:root[data-theme=white]:not(.shell) .now-playing-bar{--np-wash: var(--np-tint-light);--np-seek: var(--np-fill-light)}html:not(.shell) .now-playing-bar .cover{width:var(--np-cover);height:var(--np-cover);margin-top:calc(var(--np-inner) - var(--np-cover));border-radius:var(--radius);box-shadow:0 12px 28px #00000080}html:not(.shell) .now-playing-bar .details{display:flex;flex-direction:column;gap:1px;line-height:var(--leading-tight)}html:not(.shell) .now-playing-bar .details .title{font-size:1.05rem;font-weight:600}html:not(.shell) .now-playing-bar .details .artist{order:1;font-size:.85rem}html:not(.shell) .now-playing-bar .details .album{order:2;font-size:.85rem;opacity:.7}html:not(.shell) .now-playing-bar .progress-bar{position:absolute;left:calc(var(--spacing-md) + var(--np-cover) + var(--spacing-sm));right:var(--radius);bottom:calc(100% - 2px);height:4px}html:not(.shell) .now-playing-bar .progress-bar:is(:hover,.scrubbing){height:6px}html:not(.shell) .now-playing-bar .progress-bar .progress-fill{background-color:var(--np-seek, var(--muted-foreground))}html:not(.shell) .now-playing-bar .progress-bar:is(:hover,.scrubbing) .progress-fill,html:not(.shell) .now-playing-bar .progress-bar:is(:hover,:active) .progress-fill:after{background-color:var(--np-seek, var(--highlight))}html:not(.shell) .now-playing-bar .progress-container{display:contents}html:not(.shell) .now-playing-bar .progress-bar:before{content:"";position:absolute;inset:-8px 0}html:not(.shell) .now-playing-bar .time-readout{display:flex;gap:.35em;font-size:.8rem;font-variant-numeric:tabular-nums;color:var(--muted-foreground);white-space:nowrap}html:not(.shell) .now-playing-bar .time-readout span{line-height:1;text-box:trim-both cap alphabetic}html:not(.shell) .now-playing-bar #current-time{color:var(--foreground)}html:not(.shell) .now-playing-bar .player-controls .buttons .play-pause-btn{width:40px;height:40px}html:not(.shell) .now-playing-bar .volume-controls{flex-direction:row-reverse!important;align-items:center!important;justify-content:flex-start!important;gap:var(--spacing-md)!important;overflow:visible}html:not(.shell) .now-playing-bar .volume-slider-row{gap:.5rem}html:not(.shell) .now-playing-bar .player-actions-row{gap:.25rem;padding:3px 8px;border:1px solid var(--border);border-radius:var(--radius-full);background-color:color-mix(in srgb,var(--background) 55%,transparent)}@media(max-width:1100px){html:not(.shell) .now-playing-bar{--np-cover: var(--np-inner);padding-left:var(--spacing-sm)}html:not(.shell) .now-playing-bar .cover{border-radius:var(--radius-sm);box-shadow:none}html:not(.shell) .now-playing-bar .progress-bar{left:var(--radius)}html:not(.shell) .now-playing-bar .volume-slider-row{position:relative}html:not(.shell) .now-playing-bar .volume-bar{display:none;position:absolute;bottom:calc(100% + 18px);left:50%;transform:translate(-50%);box-sizing:border-box;width:36px;height:136px;padding:16px 0;background-color:var(--card);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-2xl)}html:not(.shell) .now-playing-bar .volume-open .volume-bar{display:block}html:not(.shell) .now-playing-bar .volume-bar:before{content:"";position:absolute;top:16px;bottom:16px;left:calc(50% - 2px);width:4px;border-radius:var(--radius-xs);background-color:var(--secondary)}html:not(.shell) .now-playing-bar .volume-bar .volume-fill{position:absolute;bottom:16px;left:calc(50% - 2px);width:4px!important;height:calc((100% - 32px) * var(--volume, 0));background-color:var(--foreground)}html:not(.shell) .now-playing-bar .volume-bar .volume-fill:after{content:"";position:absolute;top:0;right:auto;left:50%;transform:translate(-50%,-50%);width:12px;height:12px;background-color:var(--foreground);border-radius:var(--radius-full);box-shadow:0 2px 4px #0000004d}}
