.metadata-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}.metadata-modal{background:var(--bg-secondary);border-radius:12px;width:90%;max-width:420px;max-height:90vh;overflow:hidden;box-shadow:0 20px 60px #00000080;animation:slideUp .2s ease}.metadata-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px;background:var(--bg-hover);border-bottom:1px solid var(--border)}.metadata-header-info{display:flex;align-items:center;gap:16px;flex:1}.metadata-cover{width:80px;height:80px;border-radius:8px;overflow:hidden;flex-shrink:0;background:var(--bg)}.metadata-cover img{width:100%;height:100%;object-fit:cover}.metadata-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.metadata-cover-placeholder svg{width:32px;height:32px}.metadata-title-info{flex:1}.metadata-title{font-size:1.1rem;font-weight:600;color:var(--text);margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metadata-artist{font-size:.85rem;color:var(--text-muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metadata-close-btn{background:none;border:none;padding:8px;cursor:pointer;color:var(--text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .15s ease;flex-shrink:0}.metadata-close-btn:hover{background:var(--bg);color:var(--text)}.metadata-close-btn svg{width:20px;height:20px}.metadata-modal-body{padding:20px;overflow-y:auto;max-height:calc(90vh - 140px);background:var(--bg)}.metadata-grid{display:flex;flex-direction:column;gap:12px}.metadata-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:8px 0;border-bottom:1px solid var(--border)}.metadata-row:last-child{border-bottom:none}.metadata-label{font-size:13px;color:var(--text-muted);flex-shrink:0;min-width:80px}.metadata-value{font-size:.85rem;color:var(--text);text-align:right;word-break:break-word}.metadata-value.filename{font-family:monospace;font-size:12px;color:var(--text-secondary)}@media (max-width: 480px){.metadata-modal{width:95%;max-height:85vh}.metadata-modal-header{padding:16px}.metadata-cover{width:64px;height:64px}.metadata-title{font-size:16px}.metadata-modal-body{padding:16px}.metadata-row{flex-direction:column;gap:4px}.metadata-value{text-align:left}}.settings-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}.settings-modal{background:var(--bg-secondary);border-radius:12px;width:90%;max-width:440px;max-height:90vh;overflow:hidden;box-shadow:0 20px 60px #00000080;animation:slideUp .2s ease}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px;background:var(--bg-hover);border-bottom:1px solid var(--border)}.settings-modal-header h2{font-size:1.1rem;font-weight:600;color:var(--text);margin:0;display:flex;align-items:center;gap:10px}.settings-modal-header h2 svg{width:24px;height:24px;opacity:.7}.settings-close-btn{background:none;border:none;padding:8px;cursor:pointer;color:var(--text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .15s ease;flex-shrink:0}.settings-close-btn:hover{background:var(--bg);color:var(--text)}.settings-close-btn svg{width:20px;height:20px}.settings-modal-body{padding:20px;overflow-y:auto;max-height:calc(90vh - 80px);background:var(--bg)}.settings-section{margin-bottom:24px}.settings-section:last-child{margin-bottom:0}.settings-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:12px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--border)}.settings-row:last-child{border-bottom:none}.settings-row-label{display:flex;align-items:center;gap:12px}.settings-row-label svg{width:20px;height:20px;color:var(--text-muted)}.settings-row-text{display:flex;flex-direction:column;gap:2px}.settings-row-title{font-size:14px;font-weight:500;color:var(--text)}.settings-row-description{font-size:12px;color:var(--text-muted)}.toggle-switch{position:relative;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:var(--bg-hover);transition:.2s;border-radius:24px;border:1px solid var(--border)}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:2px;background-color:var(--text-muted);transition:.2s;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background-color:var(--color-primary);border-color:var(--color-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px);background-color:#fff}.cache-slider-container{padding:12px 0}.cache-slider-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cache-slider-label{display:flex;align-items:center;gap:12px}.cache-slider-label svg{width:20px;height:20px;color:var(--text-muted)}.cache-slider-title{font-size:14px;font-weight:500;color:var(--text)}.cache-slider-value{font-size:14px;font-weight:600;color:var(--color-primary)}.cache-slider{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-hover);border-radius:3px;outline:none;cursor:pointer}.cache-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;background:var(--color-primary);border-radius:50%;cursor:pointer;transition:transform .1s}.cache-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.cache-slider::-moz-range-thumb{width:18px;height:18px;background:var(--color-primary);border-radius:50%;cursor:pointer;border:none}.cache-slider-marks{display:block;position:relative;width:100%;height:20px;margin-top:8px}.cache-slider-mark{position:absolute;font-size:10px;color:var(--text-muted);white-space:nowrap}.cache-slider-mark:nth-child(1){left:0%}.cache-slider-mark:nth-child(2){left:30%;transform:translate(-50%)}.cache-slider-mark:nth-child(3){left:60%;transform:translate(-50%)}.cache-slider-mark:nth-child(4){left:90%;transform:translate(-50%)}.cache-slider-mark:nth-child(5){right:0}.cache-slider-note{font-size:11px;color:var(--text-muted);margin-top:8px;font-style:italic}@media (max-width: 480px){.settings-modal{width:95%;max-height:85vh}.settings-modal-header,.settings-modal-body{padding:16px}}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased}:root{--bg: #ffffff;--bg-subtle: #f5f5f7;--bg-hover: #f9f9f9;--border: #e5e5e5;--accent: #666;--text: #1d1d1f;--text-muted: #666;--text-subtle: #999;--text-on-dark: #ffffff;--text-secondary: rgba(0, 0, 0, .5);--color-primary: #007aff;--color-primary-hover: #0051d5;--color-primary-light: #62abfc;--color-primary-lighter: #c4dcf9;--color-primary-alpha: rgba(0, 122, 255, .16);--color-primary-shadow: rgba(0, 122, 255, .1);--color-success: #34c759;--color-success-shadow: rgba(52, 199, 89, .3);--color-error: #ff3b30;--color-error-dark: #d32f2f;--color-error-shadow: rgba(255, 59, 48, .3);--color-warning: #ffcc00;--color-warning-shadow: rgba(255, 204, 0, .3);--color-highlight: #fff59d;--color-highlight-hover: #fff176;--color-trim: #FFD700;--color-trim-hover: #FFC700;--color-trim-active: #FFB700;--color-button: #666;--color-button-hover: #555;--color-button-light: #e5e5e7;--color-button-light-hover: #d1d1d6;--color-button-dark: #333;--color-button-dark-bg: #515154;--color-button-dark-hover: #3a3a3c;--color-button-red: hsl(0 80% 60%);--color-button-red-hover: hsl(0 80% 50%);--overlay: rgba(0, 0, 0, .5);--overlay-light: rgba(0, 0, 0, .3);--overlay-very-light: rgba(0, 0, 0, .05);--shadow-sm: rgba(0, 0, 0, .1);--shadow-md: rgba(0, 0, 0, .2);--shadow-lg: rgba(0, 0, 0, .3)}html{height:100vh;background-color:var(--bg)}body{height:100vh;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}[hidden]{display:none!important}#root{height:100%}button[disabled]{opacity:.3;pointer-events:none}@media (prefers-color-scheme: dark){:root{--bg: #1d1d1f;--bg-subtle: #2a2a2e;--bg-hover: #3a3a3f;--border: #424245;--color-primary-lighter: rgba(0, 122, 255, .16);--color-button-light: var(--color-button-dark-bg);--color-button-light-hover: var(--color-button-dark-hover);--text: #f5f5f7;--text-muted: #a1a1a6;--text-subtle: #666;--text-on-dark: #ffffff;--text-secondary: rgba(255, 255, 255, .5);--overlay: rgba(0, 0, 0, .7);--overlay-light: rgba(0, 0, 0, .5);--overlay-very-light: rgba(0, 0, 0, .2);--shadow-sm: rgba(0, 0, 0, .3);--shadow-md: rgba(0, 0, 0, .5);--shadow-lg: rgba(0, 0, 0, .7);--color-highlight: #fff59d;--color-highlight-hover: #fff176;--color-trim: #FFD700;--color-trim-hover: #FFC700;--color-trim-active: #FFB700}html,body{background-color:var(--bg-subtle)}}.update-notification{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:1rem;padding:.875rem 1rem;background:var(--color-primary);color:var(--text-on-dark);font-size:.875rem;font-weight:500;transform:translateY(100%);opacity:0;transition:transform .3s ease-out,opacity .3s ease-out;z-index:10001}.update-notification-visible{transform:translateY(0);opacity:1}.update-notification-text{flex:0 1 auto}.update-notification-button{flex:0 0 auto;padding:.375rem .75rem;border:none;border-radius:.25rem;background:var(--text-on-dark);color:var(--color-primary);font-size:.8125rem;font-weight:600;cursor:pointer;transition:background-color .15s ease}.update-notification-button:hover{background:var(--bg-subtle)}.update-notification-button:active{background:var(--border)}.update-notification-dismiss{flex:0 0 auto;padding:.25rem .5rem;border:none;background:transparent;color:var(--text-on-dark);font-size:1.25rem;line-height:1;cursor:pointer;opacity:.7;transition:opacity .15s ease}.update-notification-dismiss:hover{opacity:1}.view{position:fixed;top:0;left:0;bottom:0;right:0;display:flex;justify-content:center;align-items:center}.app{display:grid;grid-template-rows:1fr auto;grid-template-columns:240px 1fr auto;grid-template-areas:"sidebar main details" "player player player";height:100vh;height:100dvh;overflow:hidden;padding-top:env(safe-area-inset-top);background:var(--bg-subtle);transition:grid-template-columns .2s ease}.app.sidebar-collapsed{grid-template-columns:60px 1fr auto}.app.sidebar-collapsed .sidebar{width:60px}.app.sidebar-collapsed .sidebar-content{padding:.5rem}.app.sidebar-collapsed .sidebar-toggle-btn{position:relative;top:env(safe-area-inset-top);left:0;margin:0 auto .5rem}.app.sidebar-collapsed .sidebar-controls{flex-direction:column;padding-bottom:.5rem}.app.sidebar-collapsed .nav-section-title{justify-content:center;padding:0;height:16px;font-size:0}.app.sidebar-collapsed .nav-section-title .add-playlist-btn{display:none}.app.sidebar-collapsed .nav-item{justify-content:center;padding:10px}.app.sidebar-collapsed .nav-item span,.app.sidebar-collapsed .empty-playlists,.app.sidebar-collapsed .add-playlist-btn{display:none}.sidebar{grid-area:sidebar;background:var(--bg-subtle);border-right:1px solid var(--border);overflow-y:auto;overflow-x:hidden}.sidebar-content{padding:1rem;position:relative}.sidebar-toggle-btn{position:absolute;top:1rem;left:1rem;width:32px;height:32px;padding:0;background:transparent;color:var(--text-muted);border:none;border-radius:6px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center;z-index:10}.sidebar-toggle-btn:hover{background:var(--bg-hover);color:var(--text)}.sidebar-toggle-btn svg{width:22px;height:22px}.drawer-close-btn{position:absolute;top:12px;right:12px;width:44px;height:44px;padding:0;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;z-index:10}.drawer-close-btn:hover{background:var(--bg-hover);color:var(--text)}.drawer-close-btn svg{width:24px;height:24px}.sidebar-controls{display:flex;align-items:center;justify-content:flex-end;gap:4px;padding:0 0 .4rem;border-bottom:1px solid var(--border)}.sidebar-control-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;color:var(--text-muted);border:none;border-radius:6px;cursor:pointer;transition:all .15s ease}.sidebar-control-btn:hover{background:var(--bg-hover);color:var(--text)}.sidebar-control-btn svg{width:18px;height:18px}.sidebar-controls .volume-menu{position:absolute;top:100%;right:0;margin-top:4px;padding:12px 16px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:1000}.sidebar-controls .volume-slider{width:120px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-hover);border-radius:2px;outline:none;cursor:pointer}.sidebar-controls .volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--color-primary);border-radius:50%;cursor:pointer;transition:transform .1s}.sidebar-controls .volume-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.sidebar-controls .volume-slider::-moz-range-thumb{width:14px;height:14px;background:var(--color-primary);border-radius:50%;cursor:pointer;border:none}.nav-section{margin-bottom:20px}.nav-section-title{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding:0 8px}.add-playlist-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-muted);border-radius:4px;display:flex;align-items:center;justify-content:center}.add-playlist-btn:hover{background:var(--bg-hover);color:var(--text)}.add-playlist-btn svg{width:.85rem;height:.85rem}.nav-list{display:flex;flex-direction:column;gap:2px}.nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:none;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;color:var(--text-secondary);text-align:left;width:100%;transition:all .15s ease}.nav-item:hover{background:var(--bg-hover);color:var(--text)}.nav-item.active{background:var(--color-primary);color:#fff}.nav-item.keyboard-focus{outline:2px solid var(--color-primary);outline-offset:-2px}.nav-item.keyboard-focus:not(.active){background:var(--bg-hover)}.nav-item svg{width:18px;height:18px;flex-shrink:0}.nav-item[data-playlist].drag-over{background:var(--color-primary);color:#fff}body.dragging-songs .nav-item[data-playlist]{outline:2px dashed var(--border);outline-offset:-2px}.empty-playlists{font-size:12px;color:var(--text-subtle);padding:8px 12px;font-style:italic}p-player{width:100%}.main-content{grid-area:main;overflow-y:auto;overflow-x:hidden;background:var(--bg)}.player-bar-container{grid-area:player;background:var(--bg-subtle);border-top:1px solid var(--border)}.sidebar::-webkit-scrollbar,.main-content::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-track,.main-content::-webkit-scrollbar-track{background:var(--bg-subtle)}.sidebar,.main-content{scrollbar-width:none;scrollbar-color:var(--bg) var(--border)}.sidebar::-webkit-scrollbar-thumb,.main-content::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:4px}.sidebar::-webkit-scrollbar-thumb:hover,.main-content::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}.scroll-scrubber{position:fixed;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-subtle);border:1px solid var(--border);border-radius:50%;color:var(--text-subtle);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s,background .15s;z-index:100;-webkit-tap-highlight-color:transparent;touch-action:none;-webkit-user-select:none;user-select:none}.scroll-scrubber.visible{opacity:.85;pointer-events:auto}.scroll-scrubber.dragging{opacity:1;background:var(--accent);color:#fff;transform:scale(1.15)}.scroll-scrubber svg{flex-shrink:0}.fullscreen-cover-overlay{position:fixed;top:0;right:0;bottom:0;left:0;bottom:5.7rem;background:var(--fullscreen-bg, var(--bg));z-index:2000;display:flex;align-items:center;justify-content:center;animation:fadeIn .2s ease;transition:background .3s ease}.fullscreen-cover-image{max-width:80vw;max-height:80vh;border-radius:8px;box-shadow:0 20px 60px #00000080;animation:scaleIn .2s ease}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.fullscreen-cover-placeholder{width:300px;height:300px;background:var(--bg-subtle);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);animation:scaleIn .2s ease}.fullscreen-cover-placeholder svg{width:120px;height:120px}.fullscreen-cover-close{position:absolute;top:calc(20px + env(safe-area-inset-top));right:20px;width:44px;height:44px;border:none;background:var(--bg-subtle);color:var(--color-button);border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.fullscreen-cover-close:hover{background:var(--bg-hover)}.fullscreen-cover-close svg{width:24px;height:24px}.mobile-top-bar{display:none;grid-area:topbar;height:56px;padding:0 16px;background:var(--bg-subtle);border-bottom:1px solid var(--border);align-items:center;gap:12px}.hamburger-btn{width:44px;height:44px;padding:0;background:transparent;border:none;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:8px;margin-left:-8px}.hamburger-btn:hover{background:var(--bg-hover)}.hamburger-btn svg{width:24px;height:24px}.mobile-top-bar-title{font-size:18px;font-weight:600;color:var(--text)}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:999;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.sidebar-backdrop.visible{opacity:1;visibility:visible}@media (max-width: 768px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;grid-template-areas:"topbar" "main" "player"}.mobile-top-bar{display:flex}.player-bar-container{padding-bottom:env(safe-area-inset-bottom)}.sidebar{display:block;position:fixed;top:0;left:0;bottom:0;width:280px;z-index:1000;padding-top:env(safe-area-inset-top);transform:translate(-100%);transition:transform .3s ease}.sidebar.drawer-open{transform:translate(0)}.sidebar-backdrop{display:block}.sidebar-toggle-btn{display:none}.sidebar-content{padding-top:60px}.main-content{padding-bottom:0}.fullscreen-cover-overlay{bottom:calc(7.55rem + env(safe-area-inset-bottom))}.app.sidebar-collapsed{grid-template-columns:1fr}}.player-bar{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;gap:16px;padding:12px 16px;height:90px;box-sizing:border-box}.player-song-info{display:flex;align-items:center;gap:12px}.cover-art{width:56px;height:56px;background:var(--bg-hover);border-radius:6px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;color:var(--text-muted);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.cover-art:hover{transform:scale(1.05);box-shadow:0 4px 12px #0000004d}.cover-art svg{width:24px;height:24px}.song-details{flex:1;cursor:pointer}.song-details:hover .song-title{text-decoration:underline}.song-artist{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.control-btn{background:none;border:none;padding:8px;cursor:pointer;color:var(--text-secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.control-btn:hover{color:var(--text)}.control-btn.active{color:var(--color-primary)}.control-btn svg{width:28px;height:28px}.main-play-btn.loading{pointer-events:none;opacity:.7}.main-play-btn .loading-spinner-small{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--text);border-radius:50%;animation:spin .8s linear infinite}.player-controls{display:flex;flex-direction:column;align-items:center;gap:8px}.control-buttons{display:flex;align-items:center;gap:8px}.main-play-btn{background:var(--text);color:var(--bg);width:48px;height:48px;padding:0}.main-play-btn:hover{background:var(--text-secondary);color:var(--bg);transform:scale(1.05)}.main-play-btn svg{width:28px;height:28px;pointer-events:none}.progress-container{display:flex;align-items:center;gap:8px;width:100%;max-width:600px}.current-time,.remaining-time{font-size:11px;color:var(--text-muted);width:50px;text-align:center;font-variant-numeric:tabular-nums}.remaining-time{text-align:right}.progress-bar{flex:1;height:4px;background:var(--bg-hover);border-radius:2px;cursor:pointer;position:relative}.progress-fill{position:absolute;left:0;top:0;height:100%;background:var(--color-primary);border-radius:2px;pointer-events:none}.progress-handle{position:absolute;top:50%;width:12px;height:12px;background:var(--text);border-radius:50%;transform:translate(-50%,-50%);cursor:grab;opacity:0;transition:opacity .15s ease,transform .15s ease;z-index:1}.progress-bar:hover .progress-handle,.progress-bar.dragging .progress-handle{opacity:1}.progress-handle:active,.progress-bar.dragging .progress-handle{cursor:grabbing;transform:translate(-50%,-50%) scale(1.2)}.progress-bar:hover .progress-fill,.progress-bar.dragging .progress-fill{background:var(--color-primary-light)}.player-waveform{display:flex;align-items:center;justify-content:stretch;width:100%;height:100%;filter:invert(1)}.waveform-canvas{width:100%;height:50px;cursor:pointer;border-radius:4px}.waveform-canvas:hover{opacity:.9}.podcast-progress-container{flex:1;height:50px;display:flex;align-items:center;cursor:pointer;padding:0 4px}.podcast-progress-bar{position:relative;width:100%;height:6px;background:var(--color-primary-lighter);border-radius:3px;overflow:visible}.podcast-progress-fill{position:absolute;top:0;left:0;height:100%;background:var(--color-primary);border-radius:3px;transition:width .1s linear}.podcast-progress-handle{position:absolute;top:50%;width:14px;height:14px;background:var(--color-button);border-radius:50%;border:2px solid var(--bg);transform:translate(-50%,-50%);box-shadow:0 2px 4px #0000004d;transition:opacity .15s ease;cursor:grab}.podcast-progress-handle:before{content:"";position:absolute;top:50%;left:50%;width:40px;height:40px;transform:translate(-50%,-50%);border-radius:50%}.podcast-progress-handle:active{cursor:grabbing}.podcast-progress-container:hover .podcast-progress-handle,.podcast-progress-container.dragging .podcast-progress-handle{opacity:1}.podcast-progress-container:hover .podcast-progress-bar{height:8px}.player-right-controls{display:flex;align-items:center;width:100%;gap:.5rem}.queue-btn.active{color:var(--color-primary)}@media (prefers-color-scheme: dark){.player-waveform{filter:invert(0)}.current-time,.remaining-time{color:var(--text)}}@media (prefers-color-scheme: light) and (max-width: 768px){.player-waveform{filter:invert(0)}.current-time,.remaining-time{color:var(--bg)}}@media (prefers-color-scheme: dark) and (max-width: 768px){.current-time,.remaining-time{filter:invert(1)}}@media (max-width: 768px){.player-bar{grid-template-columns:1fr auto;grid-template-rows:1fr auto;gap:8px;padding:8px 12px;max-width:100vw;height:auto}.player-song-info{grid-column:1 / -1}.cover-art{width:48px;height:48px}.player-controls{grid-column:1 / -1;width:100%}.progress-container{order:1;margin-bottom:4px}.control-buttons{order:2}.love-btn{display:none}.player-bar.radio-mode .player-right-controls,.player-bar.podcast-mode .player-right-controls{display:none;position:absolute;bottom:calc(7.5rem + env(safe-area-inset-bottom));left:.5rem;right:.5rem;z-index:9999;width:auto;height:50px}.player-right-controls{display:none;position:absolute;bottom:calc(8.5rem + env(safe-area-inset-bottom));left:.5rem;right:.5rem;z-index:9999;width:auto;height:50px}.player-right-controls.visible,.player-bar.radio-mode .player-right-controls.visible,.player-bar.podcast-mode .player-right-controls.visible{display:flex}.progress-handle{opacity:1}.player-bar.radio-mode .player-right-controls.visible{display:flex;grid-column:1 / -1;justify-content:center;order:4;margin-top:4px;bottom:calc(8.2rem + env(safe-area-inset-bottom))}}.player-bar:not(.has-song){opacity:.5;pointer-events:none}.player-bar:not(.has-song) .main-play-btn{pointer-events:auto;opacity:.5}.player-bar.radio-mode .player-right-controls{justify-content:center}.radio-status{display:flex;align-items:center;justify-content:center;flex:1;gap:8px}.radio-live{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.radio-live svg{width:16px;height:16px;color:var(--color-primary)}.radio-error{font-size:12px;color:#ff6b6b;white-space:nowrap;animation:fadeIn .3s ease}.songs-list{padding:0 1rem 1rem;position:relative;min-height:100%}.songs-header{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-bottom:1rem;position:sticky;top:0;z-index:10;background:var(--bg);padding:1rem 0}.header-left{display:flex;gap:.2rem;flex-direction:column;justify-content:center;align-items:center;margin-right:auto;margin-left:auto}.header-right{display:flex;align-items:center;gap:8px}.view-title{font-size:1.6rem;font-weight:700;color:var(--text);margin:0}.storage-info{font-size:.85rem;color:var(--text-muted)}.header-search{flex-shrink:0;margin-right:auto}.header-search .search-box{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-hover);border:1px solid var(--border);border-radius:8px;min-width:180px}.header-search .search-box svg{width:16px;height:16px;color:var(--text-muted);flex-shrink:0}.header-search .search-input{border:none;background:transparent;color:var(--text);font-size:.85rem;outline:none;width:100%}.header-search .search-input::placeholder{color:var(--text-muted)}.import-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--color-primary);color:#fff;border:none;border-radius:8px;cursor:pointer;transition:all .15s ease}.import-btn:hover{background:var(--color-primary-dark, #1a73e8)}.import-btn svg{width:18px;height:18px}.settings-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;color:var(--text-secondary);border:none;border-radius:8px;cursor:pointer;transition:all .15s ease}.settings-btn:hover{background:var(--bg-hover);color:var(--text)}.settings-btn svg{width:20px;height:20px}.volume-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;color:var(--text-secondary);border:none;border-radius:8px;cursor:pointer;transition:all .15s ease}.volume-btn:hover{background:var(--bg-hover);color:var(--text)}.volume-btn svg{width:20px;height:20px}.volume-menu{position:absolute;top:100%;right:0;margin-top:4px;padding:12px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:1000}.volume-slider{width:120px;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-hover);border-radius:2px;outline:none;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;background:var(--color-primary);border-radius:50%;cursor:pointer;transition:transform .1s}.volume-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.volume-slider::-moz-range-thumb{width:14px;height:14px;background:var(--color-primary);border-radius:50%;cursor:pointer;border:none}.select-btn,.columns-btn{display:flex;align-items:center;gap:8px;background:transparent;color:var(--text-secondary);border:none;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.select-btn span{display:none}.select-btn:hover{color:var(--text)}.select-btn.cancel{color:var(--text-muted)}.select-btn.cancel span{display:inline-flex}.select-btn svg{width:21px;height:21px}.selection-actions{display:flex;align-items:center;gap:8px}.selection-count{font-size:.85rem;color:var(--text-muted);margin-right:4px}.clear-selection-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:var(--bg-hover);color:var(--text-muted);border:none;border-radius:6px;cursor:pointer;transition:all .15s ease}.clear-selection-btn:hover{background:var(--bg-subtle);color:var(--text)}.clear-selection-btn svg{width:16px;height:16px}.select-all-btn,.download-selected-btn,.delete-selected-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg-hover);color:var(--text-secondary);border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.select-all-btn:hover,.download-selected-btn:hover{background:var(--bg-subtle);color:var(--text)}.delete-selected-btn:hover{background:#ea43351a;color:var(--color-error, #ea4335)}.select-all-btn svg,.download-selected-btn svg,.delete-selected-btn svg{width:16px;height:16px}.download-selected-btn:disabled,.delete-selected-btn:disabled{opacity:.4;pointer-events:none}.delete-selected-btn{color:var(--color-button-red)}.delete-selected-btn:hover{color:var(--color-button-red-hover)}.checkbox-wrapper{display:flex;align-items:center;justify-content:center;cursor:pointer}.checkbox-wrapper input[type=checkbox]{display:none}.checkbox-custom{width:20px;height:20px;border:2px solid var(--border);border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s ease;background:var(--bg)}.checkbox-custom svg{width:.85rem;height:.85rem;color:#fff}.song-row.selected .checkbox-custom{background:var(--color-primary);border-color:var(--color-primary)}.song-row.selected{background:rgba(var(--color-primary-rgb, 66, 133, 244),.1);border-color:var(--color-primary)}.song-row.focused{background:var(--bg-hover);border-color:var(--border)}.songs-list.select-mode .col-number .track-number,.songs-list.select-mode .col-number .play-indicator{display:none}.spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.empty-state p{font-size:.85rem;color:var(--text-muted);margin:0 0 24px;max-width:300px}.empty-import-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all .15s ease}.empty-import-btn:hover{background:var(--color-primary-dark, #1a73e8);transform:translateY(-1px)}.empty-import-btn svg{width:20px;height:20px}.songs-footer{text-align:center;padding:24px 0}.songs-footer .storage-info{font-size:.85rem;color:var(--text-muted)}.drop-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(var(--color-primary-rgb, 66, 133, 244),.1);border:3px dashed var(--color-primary);border-radius:12px;display:none;align-items:center;justify-content:center;z-index:100;pointer-events:none}.songs-list.drag-over .drop-overlay{display:flex}.drop-message{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px;background:var(--bg);border-radius:12px;box-shadow:0 4px 20px #00000026;color:var(--color-primary);font-size:16px;font-weight:500}.drop-message svg{width:48px;height:48px}.songs-table{width:100%}.table-header{display:grid;grid-template-columns:var(--grid-columns, 50px 2fr 1.5fr 1.48fr 64px 80px 70px);gap:12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:12px;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;position:sticky;top:64px;background:var(--bg);z-index:1}.sort-header{display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s ease}.sort-header:hover,.sort-header.active{color:var(--text)}.sort-arrow{opacity:0;transition:opacity .15s ease,transform .15s ease}.sort-arrow svg{width:.85rem;height:.85rem}.sort-header.active .sort-arrow{opacity:1}.sort-header.active.desc .sort-arrow{transform:rotate(180deg)}.table-body{display:flex;flex-direction:column}.song-row{display:grid;height:2.5rem;grid-template-columns:var(--grid-columns, 50px 2fr 1.5fr 1.48fr 64px 80px 70px);gap:12px;align-items:center;border-radius:6px;cursor:pointer;transition:background .15s ease,border-color .15s ease;border:2px solid transparent}.song-row:hover,.song-row.context-active{background:var(--bg-hover)}.song-row.current,.song-row.playing{background:var(--bg-subtle)}.song-row.keyboard-focus{outline:2px solid var(--color-primary);outline-offset:-2px;background:var(--bg-hover)}.song-row.keyboard-focus.current{outline-color:var(--color-primary)}.song-row.highlight-scroll{animation:highlight-pulse 1.5s ease-out}@keyframes highlight-pulse{0%{background:rgba(var(--color-primary-rgb, 66, 133, 244),.3)}to{background:transparent}}.col-title{min-width:0%}.col-number{position:relative;font-size:.85rem;color:var(--text-muted);font-variant-numeric:tabular-nums;display:flex;align-items:center;justify-content:center;pointer-events:none}.track-number{transition:opacity .15s ease}.play-indicator{position:absolute;opacity:0;color:var(--color-primary);display:flex;align-items:center;justify-content:center;transition:opacity .15s ease}.play-indicator svg{width:16px;height:16px}.song-row:hover .track-number{opacity:1}.song-row.current .track-number{opacity:0}.song-row:hover .play-indicator,.song-row.current .play-indicator{opacity:1}.play-indicator.animating svg{animation:pulse 1s ease-in-out infinite}.col-title{min-width:0%;overflow:hidden}.col-title .song-info{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;min-width:0%}.mini-cover{width:2rem;height:2rem;border-radius:4px;background:var(--bg-hover);flex-shrink:0;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center;color:var(--text-muted)}.mini-cover svg{width:18px;height:18px}.title-text{font-size:.85rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-row.current .title-text,.song-row.playing .title-text{color:var(--color-primary)}.col-artist,.col-album{font-size:.85rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.col-duration{font-size:.85rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.col-added{font-size:13px;color:var(--text-muted)}.col-actions{display:flex;justify-content:flex-end;gap:4px}.love-btn,.more-btn{background:none;border:none;padding:6px;cursor:pointer;color:var(--text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .15s ease;position:relative}.love-btn svg,.more-btn svg{width:16px;height:16px}.song-row:hover .love-btn,.song-row:hover .more-btn,.song-row.context-active .love-btn,.song-row.context-active .more-btn,.love-btn.active{opacity:1}.love-btn:hover{color:var(--color-primary)}.love-btn.active{color:var(--color-button-red)}.playlist-dropdown{position:absolute;top:100%;right:0;min-width:180px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:1000;padding:4px;margin-top:4px}.dropdown-empty{padding:12px 16px;font-size:13px;color:var(--text-muted);text-align:center}.dropdown-item,.dropdown-new-playlist{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;background:none;border:none;border-radius:6px;font-size:.85rem;color:var(--text);cursor:pointer;transition:background .15s ease;text-align:left}.dropdown-item:hover,.dropdown-new-playlist:hover{background:var(--bg-hover)}.dropdown-item svg,.dropdown-new-playlist svg{width:16px;height:16px;color:var(--text-muted);flex-shrink:0}.dropdown-item.in-playlist svg{color:var(--color-primary)}.dropdown-divider{height:1px;background:var(--border);margin:4px 0}.dropdown-new-playlist{color:var(--color-primary)}.dropdown-new-playlist svg{color:var(--color-primary)}@media (max-width: 768px){.songs-list{max-width:100vw;padding:0 16px 16px}.songs-header{align-items:center;gap:.5rem;padding:16px 0}.header-left{flex-direction:column;align-items:flex-start;gap:4px}.header-right{width:auto}.view-title{font-size:24px}.table-header{display:none}.song-row{grid-template-columns:1fr auto;gap:8px}.col-number,.col-artist,.col-album,.col-added,.col-bpm,.col-format,.col-plays{display:none}.song-info{gap:10px}.genre-view-container .song-info{gap:2px;flex-direction:column;justify-content:flex-start;align-items:flex-start}.title-text{font-size:15px}.col-duration{font-size:13px;display:none}.col-actions{gap:0}.love-btn,.more-btn{opacity:1;padding:8px}.more-btn{opacity:.7}.empty-state{padding:40px 16px}}.columns-menu{position:absolute;top:100%;right:0;margin-top:4px;min-width:160px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:1000;padding:4px}.columns-menu .menu-item{display:flex;align-items:center;text-align:left;gap:8px;padding:8px 12px;border-radius:4px;cursor:pointer;font-size:13px;color:var(--text);transition:background .15s ease}.columns-menu .menu-item:hover{background:var(--bg-hover)}.columns-menu .checkbox-wrapper{flex-shrink:0}.columns-menu .checkbox-custom{width:18px;height:18px}.columns-menu input:checked+.checkbox-custom{background:var(--color-primary);border-color:var(--color-primary)}.columns-menu .menu-item>span{display:flex}.col-genre{color:var(--text-muted);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-bpm{color:var(--text-muted);font-size:.85rem;font-variant-numeric:tabular-nums;text-align:right}.col-format{color:var(--text-muted);font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.col-plays{color:var(--text-muted);font-size:.85rem;font-variant-numeric:tabular-nums;text-align:right}.opened-item-banner{background:linear-gradient(135deg,var(--color-primary-light, rgba(99, 102, 241, .1)) 0%,var(--bg-hover) 100%);border:1px solid var(--color-primary, #6366f1);border-radius:12px;padding:12px 16px;margin-bottom:16px}.opened-item-row{display:flex;align-items:center;gap:12px}.opened-cover{width:48px;height:48px;border-radius:6px;background-color:var(--bg-hover);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;flex-shrink:0}.opened-cover svg{width:24px;height:24px;color:var(--text-muted)}.opened-item-info{flex:1;display:flex;flex-direction:column;gap:2px}.opened-title{font-weight:600;font-size:.95rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opened-artist{font-size:.85rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opened-item-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.import-opened-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--color-primary, #6366f1);color:#fff;border:none;border-radius:20px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease}.import-opened-btn:hover{background:var(--color-primary-dark, #5458e0);transform:translateY(-1px)}.import-opened-btn svg{width:16px;height:16px}.import-opened-btn.importing{pointer-events:none;opacity:.8}.import-opened-btn .spinner{width:16px;height:16px;border-width:2px}.dismiss-opened-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:1px solid var(--border);border-radius:50%;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.dismiss-opened-btn:hover{background:var(--bg-hover);color:var(--text);border-color:var(--text-muted)}.dismiss-opened-btn svg{width:16px;height:16px}.dismiss-opened-btn:disabled{opacity:.4;pointer-events:none}@media (max-width: 768px){.opened-item-banner{padding:10px 12px}.opened-item-row{flex-wrap:wrap}.opened-item-info{flex:1 1 calc(100% - 60px)}.opened-item-actions{width:100%;margin-top:8px;justify-content:flex-end}.import-opened-btn span{display:none}.import-opened-btn{padding:8px 12px}}.opened-item-banner.loading{display:flex;align-items:center;justify-content:center;gap:12px;padding:20px}.opened-item-banner.loading .spinner{width:20px;height:20px}.opened-item-banner.loading span{color:var(--text-muted);font-size:.9rem}.import-menu{position:absolute;top:100%;right:0;margin-top:4px;min-width:200px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:1000;padding:4px}.import-menu .menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;border-radius:6px;font-size:.85rem;color:var(--text);cursor:pointer;transition:background .15s ease;text-align:left}.import-menu .menu-item:hover{background:var(--bg-hover)}.import-menu .menu-item svg{width:18px;height:18px;color:var(--text-muted);flex-shrink:0}.url-import-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.url-import-dialog{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:24px;min-width:400px;max-width:90vw;box-shadow:0 8px 32px #0003}.url-import-dialog h3{margin:0 0 16px;font-size:1.1rem;font-weight:600;color:var(--text)}.url-import-dialog .url-input{width:100%;padding:12px 14px;font-size:.95rem;border:1px solid var(--border);border-radius:8px;background:var(--bg-hover);color:var(--text);outline:none;transition:border-color .15s ease;box-sizing:border-box}.url-import-dialog .url-input:focus{border-color:var(--color-primary)}.url-import-dialog .url-input::placeholder{color:var(--text-muted)}.url-import-dialog .url-error{margin-top:8px;font-size:.85rem;color:var(--color-error, #ea4335)}.url-import-dialog .dialog-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.url-import-dialog .cancel-btn,.url-import-dialog .confirm-btn{padding:10px 20px;font-size:.9rem;font-weight:500;border-radius:8px;cursor:pointer;transition:all .15s ease}.url-import-dialog .cancel-btn{background:var(--bg-hover);color:var(--text);border:1px solid var(--border)}.url-import-dialog .cancel-btn:hover{background:var(--bg-subtle)}.url-import-dialog .confirm-btn{background:var(--color-primary);color:#fff;border:none}.url-import-dialog .confirm-btn:hover{background:var(--color-primary-dark, #1a73e8)}.url-import-dialog .confirm-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.url-import-dialog{min-width:auto;width:calc(100vw - 32px);margin:16px}}.albums-grid-container{padding:24px}.albums-header{display:flex;align-items:baseline;gap:12px;margin-bottom:24px}.album-count{font-size:.85rem;color:var(--text-muted)}.albums-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:24px}.album-card{cursor:pointer;transition:transform .15s ease}.album-card:hover{z-index:9}.album-card .album-cover{transform:scale(1);transition:transform .15s ease}.album-cover{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--bg-subtle);margin-bottom:12px;box-shadow:0 4px 12px #0000001a}.album-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:var(--bg-hover)}.album-cover-placeholder svg{width:48px;height:48px}.play-overlay-btn{position:absolute;bottom:8px;right:8px;width:48px;height:48px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(8px);transition:all .2s ease;box-shadow:0 4px 12px #0000004d}.play-overlay-btn svg{width:24px;height:24px}.album-card:hover .play-overlay-btn,.album-card.playing .play-overlay-btn{opacity:1;transform:translateY(0)}.play-overlay-btn:hover{transform:scale(1.1);background:var(--color-primary-dark, #1a73e8)}.album-card.playing .play-overlay-btn{background:var(--color-primary)}.album-info{padding:0 4px}.album-name{font-size:.85rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.album-artist{font-size:13px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.album-meta{font-size:12px;color:var(--text-muted)}@media (max-width: 768px){.albums-grid-container{max-width:100vw;padding:16px}.albums-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}.album-cover{border-radius:6px;margin-bottom:8px}.play-overlay-btn{width:40px;height:40px;opacity:1;transform:translateY(0)}.play-overlay-btn svg{width:20px;height:20px}.album-name{font-size:13px}.album-artist{font-size:12px}}.artists-grid-container{padding:24px}.artists-header{display:flex;align-items:baseline;gap:12px;margin-bottom:24px}.artist-count{font-size:.85rem;color:var(--text-muted)}.artists-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:24px}.artist-card{display:flex;flex-direction:column;cursor:pointer;border-radius:8px;padding:12px;transition:background .15s ease}.artist-card:hover{background:var(--bg-hover)}.artist-card.playing{background:var(--bg-subtle)}.artist-cover{position:relative;width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:var(--bg-subtle);margin-bottom:12px}.artist-cover img{width:100%;height:100%;object-fit:cover}.artist-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);color:var(--text-muted)}.artist-cover-placeholder svg{width:48px;height:48px}.artist-card .play-overlay-btn{position:absolute;top:0;left:0;right:0;bottom:0;align-self:center;justify-self:center;width:40px;height:40px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:none;transition:all .15s ease;box-shadow:0 4px 12px #0000004d}.artist-card .play-overlay-btn svg{width:18px;height:18px}.artist-card:hover .play-overlay-btn,.artist-card.playing .play-overlay-btn{opacity:1}.artist-card .play-overlay-btn:hover{transform:scale(1.05)}.artist-info{text-align:center}.artist-name{font-size:.85rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.artist-card.playing .artist-name{color:var(--color-primary)}.artist-meta{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 768px){.artists-grid-container{max-width:100vw;padding:16px}.artists-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:16px}.artist-card{padding:8px}.artist-card .play-overlay-btn{opacity:1;width:36px;height:36px}.artist-card .play-overlay-btn svg{width:16px;height:16px}.artist-cover-placeholder svg{width:32px;height:32px}.artist-name{font-size:13px}.artist-meta{font-size:11px}}.playlist-view-container{padding:24px}.playlist-hero{display:flex;gap:24px;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--border)}.playlist-cover{width:200px;height:200px;border-radius:8px;overflow:hidden;background:var(--bg-subtle);flex-shrink:0;box-shadow:0 8px 24px #0003}.playlist-cover img{width:100%;height:100%;object-fit:cover}.playlist-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);color:var(--text-muted)}.playlist-cover-placeholder svg{width:64px;height:64px}.playlist-details{display:flex;flex-direction:column;justify-content:flex-end}.playlist-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px}.playlist-name{font-size:36px;font-weight:700;color:var(--text);margin:0 0 8px;line-height:1.2;cursor:text}.playlist-name-input{font-size:36px;font-weight:700;color:var(--text);margin:0 0 8px;line-height:1.2;background:transparent;border:none;border-bottom:2px solid var(--color-primary);outline:none;padding:0;width:100%;font-family:inherit}.playlist-meta{font-size:.85rem;color:var(--text-secondary);margin-bottom:16px}.playlist-actions,.playlist-selection-actions{display:flex;gap:12px;align-items:center}.playlist-selection-actions .selection-count{font-size:.85rem;color:var(--text-muted);margin-right:4px}.playlist-selection-actions .remove-selected-btn{background:#ea43351a;color:var(--color-error, #ea4335)}.playlist-selection-actions .remove-selected-btn:hover{background:#ea433533}.playlist-selection-actions .clear-selection-btn{padding:10px;color:var(--text-muted)}.playlist-selection-actions .clear-selection-btn:hover{color:var(--text)}.edit-playlist-btn,.delete-playlist-btn{padding:10px;color:var(--text-muted)}.edit-playlist-btn:hover{color:var(--text);background:var(--bg-subtle)}.delete-playlist-btn:hover{color:var(--color-error, #ea4335);background:#ea43351a}.empty-playlist{padding:48px 24px;text-align:center;color:var(--text-muted)}.playlist-songs{display:flex;flex-direction:column}.playlist-song-row{display:grid;grid-template-columns:24px 40px 48px 1fr 60px 40px;gap:12px;padding:8px 12px;align-items:center;border-radius:6px;cursor:pointer;transition:background .15s ease,opacity .15s ease,border-color .15s ease;border:2px solid transparent}.song-drag-handle{display:flex;align-items:center;justify-content:center;cursor:grab;color:var(--text-muted);opacity:0;transition:opacity .15s ease}.song-drag-handle:active{cursor:grabbing}.song-drag-handle svg{width:16px;height:16px}.drag-dots{font-size:12px;letter-spacing:-2px;-webkit-user-select:none;user-select:none}.playlist-song-row:hover .song-drag-handle{opacity:1}.playlist-song-row.dragging{opacity:.4;background:var(--bg-hover)}.playlist-song-row.drag-over-above{border-top-color:var(--color-primary)}.playlist-song-row.drag-over-below{border-bottom-color:var(--color-primary)}.playlist-song-row.selected{background:var(--bg-subtle);border-color:var(--color-primary)}.playlist-song-row.selected:hover,.playlist-song-row:hover,.playlist-song-row.context-active{background:var(--bg-hover)}.playlist-song-row.current{background:var(--bg-subtle)}.playlist-song-row .song-number{font-size:.85rem;color:var(--text-muted);text-align:center;font-variant-numeric:tabular-nums;display:none}.playlist-song-row.playing .song-number{color:var(--color-primary)}.song-info{gap:2px;flex-direction:column;justify-content:flex-start;align-items:flex-start;min-width:0%}.song-title{font-size:.85rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-song-row.current .song-title,.playlist-song-row.playing .song-title{color:var(--color-primary)}.song-artist{font-size:13px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-duration{font-size:13px;color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums}.more-btn{background:none;border:none;padding:6px;cursor:pointer;color:var(--text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .15s ease;position:relative}.more-btn svg{width:16px;height:16px}.playlist-song-row:hover .more-btn,.playlist-song-row.context-active .more-btn{opacity:1}.more-btn:hover{color:var(--text);background:var(--bg-hover)}.song-more-menu{position:absolute;min-width:200px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:1000;padding:4px}.song-more-menu .menu-item.has-submenu{position:relative}@media (max-width: 768px){.playlist-view-container{max-width:100vw;padding:16px}.playlist-hero{flex-direction:column;align-items:center;text-align:center;gap:16px}.playlist-cover{width:160px;height:160px}.playlist-details{align-items:center}.playlist-name,.playlist-name-input{font-size:24px}.playlist-actions{justify-content:center;flex-wrap:wrap}.action-btn span{display:none}.action-btn{padding:12px}.action-btn.primary span,.shuffle-btn span{display:inline}.playlist-song-row{grid-template-columns:15px 20px 1fr 5fr auto 30px;gap:8px}.song-number{display:none}.song-drag-handle{opacity:.5}.song-cover{width:44px;height:44px}.more-btn{opacity:.5}}p-details-sidebar{grid-area:details;width:0;overflow:hidden;transition:width .2s ease;background:var(--bg-subtle);border-left:1px solid var(--border)}p-details-sidebar.open{width:320px}.details-sidebar{width:320px;height:100%;display:flex;flex-direction:column}.details-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.details-header-title{font-size:.85rem;font-weight:600;color:var(--text);margin:0}.details-close-btn{background:none;border:none;padding:6px;cursor:pointer;color:var(--text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.details-close-btn:hover{background:var(--bg-hover);color:var(--text)}.details-close-btn svg{width:18px;height:18px}.details-body{flex:1;overflow-y:auto;padding:20px}.details-cover{width:100%;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--bg);margin-bottom:16px}.details-cover img{width:100%;height:100%;object-fit:cover}.details-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.details-cover-placeholder svg{width:64px;height:64px}.details-info{text-align:center;margin-bottom:24px}.details-title{font-size:1.1rem;font-weight:600;color:var(--text);margin:0 0 4px;word-break:break-word}.details-artist{font-size:.85rem;color:var(--text-muted);margin:0}.details-section{margin-bottom:24px}.details-section-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}.details-grid{display:flex;flex-direction:column;gap:8px}.details-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}.details-row:last-child{border-bottom:none}.details-label{font-size:13px;color:var(--text-muted);flex-shrink:0}.details-value{font-size:13px;color:var(--text);text-align:right;word-break:break-word}.details-lyrics-content{font-size:13px;color:var(--text-secondary);line-height:1.6;white-space:pre-wrap;max-height:300px;overflow-y:auto;padding:12px;background:var(--bg);border-radius:8px}.details-lyrics-content.empty{color:var(--text-muted);font-style:italic;text-align:center;padding:24px 12px}.details-comment-content{font-size:13px;color:var(--text-secondary);line-height:1.6;white-space:pre-wrap;padding:12px;background:var(--bg);border-radius:8px}.details-body::-webkit-scrollbar,.details-lyrics-content::-webkit-scrollbar{width:6px}.details-body::-webkit-scrollbar-track,.details-lyrics-content::-webkit-scrollbar-track{background:transparent}.details-body::-webkit-scrollbar-thumb,.details-lyrics-content::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:3px}.details-header-actions{display:flex;align-items:center;gap:4px}.details-edit-btn{background:none;border:none;padding:6px;cursor:pointer;color:var(--text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.details-edit-btn:hover{background:var(--bg-hover);color:var(--accent)}.details-edit-btn svg{width:18px;height:18px}.details-edit-form{display:flex;flex-direction:column;gap:20px}.details-cover-edit{display:flex;flex-direction:column;gap:12px}.cover-preview{position:relative;width:100%;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--bg);cursor:pointer}.cover-preview img{width:100%;height:100%;object-fit:cover}.cover-edit-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#fff;opacity:0;transition:opacity .2s ease}.cover-preview:hover .cover-edit-overlay{opacity:1}.cover-edit-overlay svg{width:32px;height:32px}.cover-edit-overlay span{font-size:13px;font-weight:500}.cover-picker{background:var(--bg);border-radius:8px;padding:12px;border:1px solid var(--border)}.cover-picker-tabs{display:flex;margin-bottom:12px}.cover-tab{flex:1;padding:8px 12px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:6px;font-size:13px;font-weight:500;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.cover-tab:hover{background:var(--bg-hover);color:var(--text)}.cover-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.cover-tab[data-tab=search]{border-radius:6px 0 0 6px}.cover-tab[data-tab=upload]{border-radius:0 6px 6px 0}.cover-search-input-wrapper{display:flex;gap:8px;margin-bottom:12px}.cover-search-input{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-subtle);color:var(--text);font-size:13px;font-family:inherit}.cover-search-input:focus{outline:none;border-color:var(--accent)}.cover-search-btn{padding:8px 16px;background:var(--accent);border:none;border-radius:6px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:filter .15s ease;white-space:nowrap}.cover-search-btn:hover:not(:disabled){filter:brightness(1.1)}.cover-search-btn:disabled{opacity:.6;cursor:not-allowed}.cover-results-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:200px;overflow-y:auto}.cover-result-item{cursor:pointer;border-radius:6px;overflow:hidden;background:var(--bg-subtle);transition:transform .15s ease,box-shadow .15s ease}.cover-result-item:hover{transform:scale(1.05);box-shadow:0 4px 12px #0003}.cover-result-item img{width:100%;aspect-ratio:1;object-fit:cover;display:block}.cover-result-info{padding:6px}.cover-result-album{font-size:10px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cover-result-artist{font-size:9px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cover-upload-section{display:flex;flex-direction:column;align-items:center;gap:12px;padding:20px}.cover-upload-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:var(--bg-subtle);border:2px dashed var(--border);border-radius:8px;color:var(--text-muted);font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.cover-upload-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--bg-hover)}.cover-upload-btn svg{width:20px;height:20px}.cover-upload-hint{font-size:12px;color:var(--text-muted);margin:0}.details-edit-fields{display:flex;flex-direction:column;gap:16px}.details-edit-row{display:flex;flex-direction:column;gap:6px}.details-edit-row-inline{display:flex;gap:12px}.details-edit-row-inline .details-edit-row{flex:1}.details-edit-label{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.details-input{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.details-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb, 99, 102, 241),.1)}.details-input::placeholder{color:var(--text-muted)}.details-input[type=number]{-moz-appearance:textfield}.details-input[type=number]::-webkit-outer-spin-button,.details-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.details-textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:14px;font-family:inherit;resize:vertical;min-height:60px;transition:border-color .15s ease,box-shadow .15s ease}.details-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb, 99, 102, 241),.1)}.details-textarea::placeholder{color:var(--text-muted)}.details-lyrics-textarea{min-height:150px}.details-edit-actions{display:flex;gap:8px}.details-save-btn,.details-cancel-btn{flex:1;padding:12px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.details-save-btn{background:var(--accent);color:#fff}.details-save-btn:hover:not(:disabled){filter:brightness(1.1)}.details-save-btn:disabled{opacity:.6;cursor:not-allowed}.details-cancel-btn{background:var(--bg-hover);color:var(--text)}.details-cancel-btn:hover:not(:disabled){background:var(--border)}.details-cancel-btn:disabled{opacity:.6;cursor:not-allowed}.details-warning{display:flex;align-items:flex-start;gap:10px;padding:12px;background:#ffc1071a;border:1px solid rgba(255,193,7,.3);border-radius:8px;color:var(--text-secondary);font-size:12px;line-height:1.5}.details-warning svg{width:16px;height:16px;flex-shrink:0;color:#ffc107;margin-top:1px}.details-readonly-section{margin-top:8px;padding-top:16px;border-top:1px solid var(--border)}.details-readonly-section .details-row{padding:6px 0}@media (max-width: 768px){p-details-sidebar{position:fixed;top:env(safe-area-inset-top);left:0;right:0;bottom:0;width:100%;height:100%;z-index:1000;transform:translateY(100%);transition:transform .3s ease;border-left:none}p-details-sidebar.open{width:100%;transform:translateY(0)}.details-sidebar{width:100%;height:100%;padding-bottom:env(safe-area-inset-bottom)}.details-body{padding:16px}.details-cover{width:180px;height:180px}}p-upload-sidebar{width:0;overflow:hidden;transition:width .2s ease;background:var(--bg-subtle);border-left:1px solid var(--border);position:fixed;right:0;top:0;bottom:var(--player-bar-height, 80px);z-index:100}p-upload-sidebar.open{width:320px}.upload-sidebar{width:320px;height:100%;display:flex;flex-direction:column}.upload-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.upload-header-title{font-size:.85rem;font-weight:600;color:var(--text);margin:0}.upload-header-actions{display:flex;align-items:center;gap:12px}.upload-stats{font-size:.75rem;color:var(--text-muted)}.upload-close-btn{background:none;border:none;padding:6px;cursor:pointer;color:var(--text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.upload-close-btn:hover{background:var(--bg-hover);color:var(--text)}.upload-close-btn svg{width:18px;height:18px}.upload-cancel-all-btn{background:none;border:1px solid var(--error, #ef4444);padding:4px 10px;cursor:pointer;color:var(--error, #ef4444);border-radius:4px;font-size:.75rem;font-weight:500;transition:all .15s ease}.upload-cancel-all-btn:hover{background:var(--error, #ef4444);color:#fff}.upload-overall{padding:12px 20px;border-bottom:1px solid var(--border)}.upload-overall-progress{width:100%;height:4px;background:var(--color-primary-alpha);border-radius:2px;overflow:hidden}.upload-overall-progress-fill{height:100%;background:var(--color-primary);border-radius:2px;transition:width .3s ease}.upload-body{flex:1;overflow-y:auto;padding:12px}.upload-list{display:flex;flex-direction:column;gap:8px}.upload-item{display:flex;gap:12px;padding:12px;background:var(--bg);border-radius:8px;border:1px solid var(--border)}.upload-item.complete{border-color:var(--success, #22c55e);background:#22c55e0d}.upload-item.error{border-color:var(--error, #ef4444);background:#ef44440d}.upload-item.queued{opacity:.6}.upload-item-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);flex-shrink:0}.upload-item-icon svg{width:20px;height:20px}.upload-item.uploading .upload-item-icon{color:var(--accent);animation:upload-pulse 1s ease-in-out infinite}.upload-item.processing .upload-item-icon{color:var(--accent);animation:upload-spin 1s linear infinite}.upload-item.complete .upload-item-icon{color:var(--success, #22c55e)}.upload-item.error .upload-item-icon{color:var(--error, #ef4444)}@keyframes upload-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes upload-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.upload-item-info{flex:1;min-width:0}.upload-item-cancel-btn{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-muted);border-radius:4px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:all .15s ease;flex-shrink:0;align-self:flex-start;margin-top:4px}.upload-item-cancel-btn:hover{background:#ef44441a;color:var(--error, #ef4444);opacity:1}.upload-item-cancel-btn svg{width:16px;height:16px}.upload-item-name{font-size:.85rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.upload-item-meta{display:flex;gap:8px;font-size:.75rem;color:var(--text-muted)}.upload-item-status{color:var(--text-secondary)}.upload-item.complete .upload-item-status{color:var(--success, #22c55e)}.upload-item.error .upload-item-status{color:var(--error, #ef4444)}.upload-item-progress{width:100%;height:3px;background:var(--bg-hover);border-radius:2px;overflow:hidden;margin-top:8px}.upload-item-progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .15s ease-out}.upload-queue-more{text-align:center;padding:12px;font-size:.8rem;color:var(--text-muted)}.upload-complete-message{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:24px;color:var(--success, #22c55e)}.upload-complete-message svg{width:32px;height:32px}.upload-body::-webkit-scrollbar{width:6px}.upload-body::-webkit-scrollbar-track{background:transparent}.upload-body::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:3px}@media (max-width: 768px){p-upload-sidebar{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;z-index:1000;transform:translate(100%);transition:transform .3s ease;border-left:none}p-upload-sidebar.open{width:100%;transform:translate(0)}.upload-sidebar{width:100%;height:100%;padding-bottom:env(safe-area-inset-bottom)}}p-queue-panel{position:absolute;z-index:999999;top:env(safe-area-inset-top);right:0;bottom:5.7rem;grid-area:queue;width:0;overflow:hidden;transition:width .2s ease;background:var(--bg-subtle);border-left:1px solid var(--border)}p-queue-panel.open{width:320px}.queue-panel{width:320px;height:100%;display:flex;flex-direction:column}.queue-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.queue-header-title{font-size:.85rem;font-weight:600;color:var(--text);margin:0}.queue-close-btn{background:none;border:none;padding:6px;cursor:pointer;color:var(--text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.queue-close-btn:hover{background:var(--bg-hover);color:var(--text)}.queue-close-btn svg{width:18px;height:18px}.queue-body{flex:1;overflow-y:auto;padding:8px 0}.queue-section-header{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:12px 16px 8px}.queue-list{display:flex;flex-direction:column}.queue-item{display:flex;align-items:center;gap:10px;padding:8px 16px;cursor:pointer;transition:background .15s ease}.queue-item:hover{background:var(--bg-hover)}.queue-item.current{background:var(--bg-selected)}.queue-item.dragging{opacity:.5}.queue-item.drag-over{border-top:2px solid var(--color-primary);margin-top:-2px}.queue-item-drag{cursor:grab;color:var(--text-muted);opacity:0;transition:opacity .15s ease;flex-shrink:0;display:flex;align-items:center}.queue-item:hover .queue-item-drag{opacity:1}.queue-item-drag:active{cursor:grabbing}.queue-item-drag svg{width:16px;height:16px}.queue-item-cover{width:40px;height:40px;border-radius:4px;overflow:hidden;background:var(--bg);flex-shrink:0;position:relative}.queue-item-cover img{width:100%;height:100%;object-fit:cover}.queue-item-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.queue-item-cover-placeholder svg{width:20px;height:20px}.queue-item-playing-indicator{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;color:var(--color-primary);opacity:0;transition:opacity .15s ease}.queue-item-playing-indicator svg{width:16px;height:16px}.queue-item.current .queue-item-playing-indicator{opacity:1}.queue-item-playing-indicator.playing svg{animation:pulse 1s ease-in-out infinite}.queue-item-info{flex:1;overflow:hidden}.queue-item-title{font-size:13px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-item.current .queue-item-title{color:var(--color-primary)}.queue-item-artist{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-item-duration{font-size:12px;color:var(--text-muted);flex-shrink:0}.queue-item-remove{background:none;border:none;padding:4px;cursor:pointer;color:var(--text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .15s ease;flex-shrink:0}.queue-item:hover .queue-item-remove{opacity:1}.queue-item-remove:hover{background:var(--bg-hover);color:var(--color-error)}.queue-item-remove svg{width:.85rem;height:.85rem}.queue-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-muted);text-align:center}.queue-empty-icon{margin-bottom:16px;opacity:.5}.queue-empty-icon svg{width:48px;height:48px}.queue-empty p{margin:0 0 8px;font-size:.85rem}.queue-empty-hint{font-size:12px!important;opacity:.7}.queue-footer{padding:12px 16px;border-top:1px solid var(--border);flex-shrink:0}.queue-clear-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;background:none;border:1px solid var(--border);border-radius:6px;cursor:pointer;color:var(--text-muted);font-size:13px;transition:all .15s ease}.queue-clear-btn:hover{background:var(--bg-hover);color:var(--text);border-color:var(--text-muted)}.queue-clear-btn svg{width:16px;height:16px}.queue-body::-webkit-scrollbar{width:6px}.queue-body::-webkit-scrollbar-track{background:transparent}.queue-body::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:3px}@media (max-width: 768px){p-queue-panel{position:fixed;top:env(safe-area-inset-top);left:0;right:0;bottom:0;width:100%;height:100%;z-index:99999;transform:translateY(100%);transition:transform .3s ease;border-left:none}p-queue-panel.open{width:100%;transform:translateY(0)}.queue-panel{width:100%;height:100%;padding-bottom:env(safe-area-inset-bottom)}.queue-item-drag,.queue-item-remove{opacity:1}}.album-view-container{padding:24px}.album-hero{display:flex;gap:24px;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.album-cover{width:200px;height:200px;border-radius:8px;overflow:hidden;background:var(--bg-subtle);flex-shrink:0;box-shadow:0 8px 24px #0003}.album-cover img{width:100%;height:100%;object-fit:cover}.album-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);color:var(--text-muted)}.album-cover-placeholder svg{width:64px;height:64px}.album-details{display:flex;flex-direction:column;justify-content:flex-end}.album-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px}.album-name{font-size:1rem;font-weight:700;color:var(--text);margin:0 0 8px;line-height:1.2}.album-artist{font-size:16px;color:var(--text);margin-bottom:4px}.album-meta{font-size:.85rem;color:var(--text-secondary);margin-bottom:16px}.album-actions{display:flex;gap:12px;align-items:center}.album-songs{display:flex;flex-direction:column}.album-song-row{display:grid;grid-template-columns:40px 1fr 60px 80px;gap:12px;padding:10px 12px;align-items:center;border-radius:6px;cursor:pointer;transition:background .15s ease}.album-song-row:hover,.album-song-row.context-active{background:var(--bg-hover)}.album-song-row.current{background:var(--bg-subtle)}.song-number{display:grid!important;font-size:.85rem;color:var(--text-muted);text-align:center;font-variant-numeric:tabular-nums}.album-song-row .song-info{display:grid;min-width:0%}.album-song-row .song-title{font-size:.85rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.album-song-row.current .song-title,.album-song-row.playing .song-title{color:var(--color-primary)}.album-song-row .song-duration{font-size:13px;color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums}.album-song-row:hover .song-actions .love-btn,.album-song-row:hover .song-actions .more-btn,.album-song-row.context-active .song-actions .love-btn,.album-song-row.context-active .song-actions .more-btn,.song-actions .love-btn.active{opacity:1}.playlist-submenu{position:absolute;top:env(safe-area-inset-top);min-width:160px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:1001;padding:4px}@media (max-width: 768px){.album-view-container{padding:16px}.album-hero{flex-direction:column;align-items:center;text-align:center;gap:16px}.album-cover{width:160px;height:160px}.album-details{align-items:center}.album-name{font-size:24px}.album-actions{justify-content:center}.action-btn span{display:none}.action-btn{padding:12px}.action-btn.primary span,.shuffle-btn span{display:inline}.album-song-row{grid-template-columns:32px 1fr auto 60px;gap:8px;padding:8px}.song-actions .love-btn,.song-actions .more-btn{opacity:1}.song-actions .more-btn{opacity:.7}}.artist-view-container{padding:24px}.back-btn{display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--text-muted);font-size:.85rem;cursor:pointer;padding:8px 12px;margin:-8px -12px 16px;border-radius:6px;transition:all .15s ease}.back-btn:hover{background:var(--bg-hover);color:var(--text)}.back-btn svg{width:20px;height:20px}.artist-hero{display:flex;gap:24px;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.artist-image{width:200px;height:200px;border-radius:50%;overflow:hidden;background:var(--bg-subtle);flex-shrink:0;box-shadow:0 8px 24px #0003}.artist-image img{width:100%;height:100%;object-fit:cover}.artist-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);color:var(--text-muted)}.artist-image-placeholder svg{width:64px;height:64px}.artist-details{display:flex;flex-direction:column;justify-content:flex-end}.artist-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px}.artist-name{font-size:1rem;font-weight:700;color:var(--text);margin:0 0 8px;line-height:1.2}.artist-meta{font-size:.85rem;color:var(--text-secondary);margin-bottom:16px}.artist-actions{display:flex;gap:12px;align-items:center}.action-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;border:none;border-radius:24px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease;background:var(--bg-hover);color:var(--text)}.action-btn:hover{background:var(--bg-subtle)}.action-btn.primary{background:var(--color-primary);color:#fff}.action-btn.primary:hover{background:var(--color-primary-dark, #1a73e8)}.action-btn svg{width:18px;height:18px}.artist-songs{display:flex;flex-direction:column}.artist-song-row{display:grid;grid-template-columns:40px 48px 1fr 60px 80px;gap:12px;padding:8px 12px;align-items:center;border-radius:6px;cursor:pointer;transition:background .15s ease}.artist-song-row:hover,.artist-song-row.context-active{background:var(--bg-hover)}.artist-song-row.current{background:var(--bg-subtle)}.song-number{font-size:.85rem;color:var(--text-muted);text-align:center;font-variant-numeric:tabular-nums}.song-number.is-playing{color:var(--color-primary)}.song-number.is-playing svg{width:16px;height:16px;animation:pulse 1s ease-in-out infinite}.song-cover{width:48px;height:48px;border-radius:4px;background:var(--bg-hover);display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--text-muted)}.song-cover img{width:100%;height:100%;object-fit:cover}.song-cover svg{width:20px;height:20px}.artist-song-row .song-info{flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:3px;min-width:0%}.artist-song-row .song-title{font-size:.85rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.artist-song-row.current .song-title,.artist-song-row.playing .song-title{color:var(--color-primary)}.artist-song-row .song-album{font-size:13px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.artist-song-row .song-duration{font-size:13px;color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums}.song-actions{display:flex;gap:4px;justify-content:flex-end}.song-actions .love-btn,.song-actions .more-btn{background:none;border:none;padding:6px;cursor:pointer;color:var(--text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .15s ease;position:relative}.song-actions .love-btn svg,.song-actions .more-btn svg{width:16px;height:16px}.artist-song-row:hover .song-actions .love-btn,.artist-song-row:hover .song-actions .more-btn,.artist-song-row.context-active .song-actions .love-btn,.artist-song-row.context-active .song-actions .more-btn,.song-actions .love-btn.active{opacity:1}.song-actions .love-btn:hover{color:var(--color-primary)}.song-actions .love-btn.active{color:var(--color-button-red)}.song-actions .more-btn:hover{color:var(--text);background:var(--bg-hover)}.song-more-menu{position:absolute;min-width:180px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:1000;padding:4px}.song-more-menu .menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;border-radius:6px;font-size:.85rem;color:var(--text);cursor:pointer;transition:background .15s ease;text-align:left}.song-more-menu .menu-item:hover{background:var(--bg-hover)}.song-more-menu .menu-item svg{width:16px;height:16px;color:var(--text-muted);flex-shrink:0}.song-more-menu .menu-item.has-submenu svg:last-child{margin-left:auto;width:.85rem;height:.85rem}.song-more-menu .menu-item.danger{color:var(--color-error, #ea4335)}.song-more-menu .menu-item.danger svg{color:var(--color-error, #ea4335)}.song-more-menu .menu-item.danger:hover{background:#ea43351a}.song-more-menu .menu-divider{height:1px;background:var(--border);margin:4px 0}.playlist-submenu{position:absolute;top:0;min-width:160px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:1001;padding:4px}.playlist-submenu .menu-item.in-playlist svg{color:var(--color-primary)}.submenu-empty{padding:12px 16px;font-size:13px;color:var(--text-muted);text-align:center}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;text-align:center}.empty-icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--bg-subtle);border-radius:50%;margin-bottom:24px;color:var(--text-muted)}.empty-icon svg{width:40px;height:40px}.empty-state h2{font-size:20px;font-weight:600;color:var(--text);margin:0 0 8px}.empty-state p{font-size:.85rem;color:var(--text-muted);margin:0;max-width:300px}@media (max-width: 768px){.artist-view-container{padding:16px}.artist-hero{flex-direction:column;align-items:center;text-align:center;gap:16px}.artist-image{width:140px;height:140px}.artist-details{align-items:center}.artist-name{font-size:24px}.artist-actions{justify-content:center}.action-btn span{display:none}.action-btn{padding:12px}.action-btn.primary span,.shuffle-btn span{display:inline}.artist-song-row{grid-template-columns:30px 44px 1fr 60px;gap:8px;padding:8px}.song-number{display:none}.song-cover{width:44px;height:44px}.artist-song-row .song-duration{display:none}.song-actions .love-btn,.song-actions .more-btn{opacity:1}.song-actions .more-btn{opacity:.7}}.genres-grid-container{padding:24px}.genres-header{display:flex;align-items:baseline;gap:12px;margin-bottom:24px}.genre-count{font-size:.85rem;color:var(--text-muted)}.genres-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:24px}.genre-card{cursor:pointer;transition:transform .15s ease}.genre-card:hover{z-index:9}.genre-card .genre-cover{transform:scale(1);transition:transform .15s ease}.genre-card:hover .genre-cover{transform:scale(1.07)}.genre-cover{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--bg-subtle);margin-bottom:12px;box-shadow:0 4px 12px #0000001a}.genre-cover img{width:100%;height:100%;object-fit:cover}.genre-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);background:var(--bg-hover)}.genre-cover-placeholder svg{width:48px;height:48px}.genre-card .play-overlay-btn{position:absolute;bottom:8px;right:8px;width:48px;height:48px;border-radius:50%;background:var(--color-primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(8px);transition:all .2s ease;box-shadow:0 4px 12px #0000004d}.genre-card .play-overlay-btn svg{width:24px;height:24px}.genre-card:hover .play-overlay-btn,.genre-card.playing .play-overlay-btn{opacity:1;transform:translateY(0)}.genre-card .play-overlay-btn:hover{transform:scale(1.1);background:var(--color-primary-dark, #1a73e8)}.genre-card.playing .play-overlay-btn{background:var(--color-primary)}.genre-info{padding:0 4px}.genre-name{font-size:.85rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:2px}.genre-meta{font-size:12px;color:var(--text-muted)}@media (max-width: 768px){.genres-grid-container{max-width:100vw;padding:16px}.genres-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px}.genre-cover{border-radius:6px;margin-bottom:8px}.genre-card .play-overlay-btn{width:40px;height:40px;opacity:1;transform:translateY(0)}.genre-card .play-overlay-btn svg{width:20px;height:20px}.genre-name{font-size:13px}}.genre-view-container{padding:24px}.genre-view-container .back-btn{display:flex;align-items:center;gap:8px;background:none;border:none;color:var(--text-muted);font-size:.85rem;cursor:pointer;padding:8px 12px;margin:-8px -12px 16px;border-radius:6px;transition:all .15s ease}.genre-view-container .back-btn:hover{background:var(--bg-hover);color:var(--text)}.genre-view-container .back-btn svg{width:20px;height:20px}.genre-hero{display:flex;gap:24px;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.genre-hero .genre-cover{width:200px;height:200px;border-radius:8px;overflow:hidden;background:var(--bg-subtle);flex-shrink:0;box-shadow:0 8px 24px #0003}.genre-hero .genre-cover img{width:100%;height:100%;object-fit:cover}.genre-hero .genre-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);color:var(--text-muted)}.genre-hero .genre-cover-placeholder svg{width:64px;height:64px}.genre-details{display:flex;flex-direction:column;justify-content:flex-end}.genre-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px}.genre-title{font-size:2rem;font-weight:700;color:var(--text);margin:0 0 8px;line-height:1.2}.genre-details .genre-meta{font-size:.85rem;color:var(--text-secondary);margin-bottom:16px}.genre-actions{display:flex;gap:12px;align-items:center}.genre-view-container .action-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;border:none;border-radius:24px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s ease;background:var(--bg-hover);color:var(--text)}.genre-view-container .action-btn:hover{background:var(--bg-subtle)}.genre-view-container .action-btn.primary{background:var(--color-primary);color:#fff}.genre-view-container .action-btn.primary:hover{background:var(--color-primary-dark, #1a73e8)}.genre-view-container .action-btn svg{width:18px;height:18px}.genre-songs{display:flex;flex-direction:column}.genre-song-row{display:grid;grid-template-columns:40px 48px 1fr 180px 60px 80px;gap:12px;padding:10px 12px;align-items:center;border-radius:6px;cursor:pointer;transition:background .15s ease}.genre-song-row:hover,.genre-song-row.context-active{background:var(--bg-hover)}.genre-song-row.current{background:var(--bg-subtle)}.genre-song-row .song-number{font-size:.85rem;color:var(--text-muted);text-align:center;font-variant-numeric:tabular-nums}.genre-song-row .song-number.is-playing{color:var(--color-primary)}.genre-song-row .song-number.is-playing svg{width:16px;height:16px;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.genre-song-row .song-cover{width:48px;height:48px;border-radius:4px;overflow:hidden;background:var(--bg-subtle)}.genre-song-row .song-cover img{width:100%;height:100%;object-fit:cover}.genre-song-row .song-cover-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-hover);color:var(--text-muted)}.genre-song-row .song-cover-placeholder svg{width:20px;height:20px}.genre-song-row .song-info{display:grid;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:3px;min-width:0%}.genre-song-row .song-title{font-size:.85rem;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.genre-song-row.current .song-title,.genre-song-row.playing .song-title{color:var(--color-primary)}.genre-song-row .song-artist{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.genre-song-row .song-album{font-size:13px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.genre-song-row .song-duration{font-size:13px;color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums}.genre-song-row .song-actions{display:flex;gap:4px;justify-content:flex-end}.genre-song-row .song-actions .love-btn,.genre-song-row .song-actions .more-btn{background:none;border:none;padding:6px;cursor:pointer;color:var(--text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center;opacity:0;transition:all .15s ease;position:relative}.genre-song-row .song-actions .love-btn svg,.genre-song-row .song-actions .more-btn svg{width:16px;height:16px}.genre-song-row:hover .song-actions .love-btn,.genre-song-row:hover .song-actions .more-btn,.genre-song-row.context-active .song-actions .love-btn,.genre-song-row.context-active .song-actions .more-btn,.genre-song-row .song-actions .love-btn.active{opacity:1}.genre-song-row .song-actions .love-btn:hover{color:var(--color-primary)}.genre-song-row .song-actions .love-btn.active{color:var(--color-button-red)}.genre-song-row .song-actions .more-btn:hover{color:var(--text);background:var(--bg-hover)}.genre-view-container .song-more-menu{position:absolute;min-width:180px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:1000;padding:4px}.genre-view-container .song-more-menu .menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:none;border-radius:6px;font-size:.85rem;color:var(--text);cursor:pointer;transition:background .15s ease;text-align:left}.genre-view-container .song-more-menu .menu-item:hover{background:var(--bg-hover)}.genre-view-container .song-more-menu .menu-item svg{width:16px;height:16px;color:var(--text-muted);flex-shrink:0}.genre-view-container .song-more-menu .menu-item.has-submenu svg:last-child{margin-left:auto;width:.85rem;height:.85rem}.genre-view-container .song-more-menu .menu-item.danger{color:var(--color-error, #ea4335)}.genre-view-container .song-more-menu .menu-item.danger svg{color:var(--color-error, #ea4335)}.genre-view-container .song-more-menu .menu-item.danger:hover{background:#ea43351a}.genre-view-container .song-more-menu .menu-divider{height:1px;background:var(--border);margin:4px 0}.genre-view-container .playlist-submenu{position:absolute;top:0;min-width:160px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 20px #00000026;z-index:1001;padding:4px}.genre-view-container .playlist-submenu .menu-item.in-playlist svg{color:var(--color-primary)}.genre-view-container .submenu-empty{padding:12px 16px;font-size:13px;color:var(--text-muted);text-align:center}.genre-view-container .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;text-align:center}.genre-view-container .empty-icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--bg-subtle);border-radius:50%;margin-bottom:24px;color:var(--text-muted)}.genre-view-container .empty-icon svg{width:40px;height:40px}.genre-view-container .empty-state h2{font-size:20px;font-weight:600;color:var(--text);margin:0 0 8px}.genre-view-container .empty-state p{font-size:.85rem;color:var(--text-muted);margin:0;max-width:300px}@media (max-width: 768px){.genre-view-container{padding:16px}.genre-hero{flex-direction:column;align-items:center;text-align:center;gap:16px}.genre-hero .genre-cover{width:160px;height:160px}.genre-details{align-items:center}.genre-title{font-size:24px}.genre-song-row .song-duration{display:none}.genre-actions{justify-content:center}.genre-view-container .action-btn span{display:none}.genre-view-container .action-btn{padding:12px}.genre-view-container .action-btn.primary span,.genre-view-container .shuffle-btn span{display:inline}.genre-song-row{grid-template-columns:40px 1fr 60px;gap:8px;padding:8px}.genre-song-row .song-album{display:none}.genre-song-row .song-cover{width:40px;height:40px}.genre-song-row .song-actions .love-btn,.genre-song-row .song-actions .more-btn{opacity:1}.genre-song-row .song-actions .more-btn{opacity:.7}}.radio-favorites-container{padding:1rem;height:100%;overflow-y:auto}.radio-favorites-header{display:flex;align-items:baseline;gap:12px;margin-bottom:1rem}.radio-favorites-header .view-title{font-size:1.6rem;font-weight:700;color:var(--text);margin:0}.station-count{font-size:14px;color:var(--text-muted)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-icon{width:80px;height:80px;margin-bottom:20px;opacity:.3}.empty-icon svg{width:100%;height:100%}.empty-state h3{font-size:1.1rem;font-weight:600;color:var(--text);margin:0 0 8px}.empty-state p{font-size:14px;max-width:300px;margin:0 0 24px;line-height:1.5}.browse-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:var(--accent);border:none;border-radius:24px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:filter .15s ease}.browse-btn:hover{filter:brightness(1.1)}.browse-btn svg{width:18px;height:18px}.stations-list{display:flex;flex-direction:column;gap:8px}.station-item{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-subtle);border-radius:8px;cursor:pointer;transition:background .15s ease}.station-item:hover{background:var(--bg-hover)}.station-item.active{background:var(--accent-subtle, rgba(99, 102, 241, .1))}.station-logo{position:relative;width:56px;height:56px;border-radius:8px;overflow:hidden;background:var(--bg);flex-shrink:0}.station-logo img{width:100%;height:100%;object-fit:cover}.station-logo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.station-logo-placeholder svg{width:28px;height:28px}.playing-indicator{display:flex;align-items:center;gap:2px}.playing-indicator span{width:3px;height:16px;background:var(--accent);border-radius:2px;animation:audioWave 1s ease-in-out infinite}.playing-indicator span:nth-child(2){animation-delay:.2s}.playing-indicator span:nth-child(3){animation-delay:.4s}@keyframes audioWave{0%,to{height:8px}50%{height:20px}}.station-info{flex:1}.station-name{font-size:15px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.station-meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-muted)}.station-country{display:flex;align-items:center;gap:4px}.station-bitrate{opacity:.7}.station-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.station-tag{padding:2px 8px;background:var(--bg);border-radius:10px;font-size:11px;color:var(--text-muted)}.station-actions{display:flex;align-items:center;gap:4px;opacity:0;transition:opacity .15s ease}.station-item:hover .station-actions,.station-item.active .station-actions{opacity:1}.station-actions .play-btn,.station-actions .remove-btn{width:32px;height:32px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.station-actions .play-btn svg{width:24px;height:24px}.play-btn{background:var(--accent);color:#fff}.play-btn:hover{filter:brightness(1.1)}.remove-btn{background:transparent;color:var(--text-muted)}.remove-btn:hover{background:var(--bg);color:var(--text)}.remove-btn svg{width:16px;height:16px}@media (max-width: 768px){.radio-favorites-container{padding:16px}.radio-favorites-header .view-title{font-size:24px}.station-item{padding:12px}.station-logo{width:48px;height:48px}.station-actions{opacity:1}}.radio-browse-container{padding:1rem;height:100%;overflow-y:auto}.radio-browse-header{margin-bottom:20px}.radio-browse-header .view-title{font-size:1.6rem;font-weight:700;color:var(--text);margin:0}.search-section{margin-bottom:16px}.search-input-wrapper{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:12px;transition:border-color .15s ease}.search-input-wrapper:focus-within{border-color:var(--accent)}.search-input-wrapper>svg{width:20px;height:20px;color:var(--text-muted);flex-shrink:0}.search-input{flex:1;border:none;background:none;font-size:15px;color:var(--text);outline:none}.search-input::placeholder{color:var(--text-muted)}.search-clear-btn{width:24px;height:24px;border-radius:50%;border:none;background:var(--bg-hover);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.search-clear-btn:hover{background:var(--border);color:var(--text)}.search-clear-btn svg{width:14px;height:14px}.genre-tags-section{margin-bottom:24px;overflow:hidden}.genre-tags{display:flex;flex-wrap:wrap;gap:8px}.genre-tag{padding:8px 16px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:20px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;text-transform:capitalize}.genre-tag:hover{background:var(--accent);border-color:var(--accent);color:#fff}.loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px;color:var(--text-muted)}.loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.section-title{font-size:1.1rem;font-weight:600;color:var(--text);margin:0 0 16px;display:flex;align-items:baseline;gap:8px}.result-count{font-size:13px;font-weight:400;color:var(--text-muted)}.stations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-bottom:32px}.station-card{background:var(--bg-subtle);border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease;position:relative}.station-card:hover{box-shadow:0 8px 24px #00000026}.station-card.active{box-shadow:0 0 0 2px var(--accent)}.station-card-logo{position:relative;width:100%;aspect-ratio:1;background:var(--bg)}.station-card-logo img{width:100%;height:100%;object-fit:cover}.station-card-logo .station-logo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.station-card-logo .station-logo-placeholder svg{width:48px;height:48px}.station-card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease}.station-card:hover .station-card-overlay{opacity:1}.station-card-overlay .play-btn{width:56px;height:56px;border-radius:50%;border:none;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s ease}.station-card-overlay .play-btn:hover{transform:scale(1.1)}.station-card-overlay .play-btn svg{width:24px;height:24px}.live-badge{position:absolute;right:.5rem;bottom:-2rem;padding:4px 8px;background:#ef4444;border-radius:4px;font-size:10px;font-weight:700;color:#fff;letter-spacing:.5px}.station-card-info{padding:12px}.station-card-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.station-card-meta{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.station-card-meta span:not(:last-child):after{content:"•";margin-left:6px}.favorite-btn{position:absolute;top:8px;right:8px;width:32px;height:32px;border-radius:50%;border:none;background:#00000080;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:all .15s ease}.station-card:hover .favorite-btn,.favorite-btn.active{opacity:1}.favorite-btn:hover{background:#000000b3}.favorite-btn.active{color:#ef4444}.favorite-btn svg{width:16px;height:16px}.no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px;color:var(--text-muted)}.no-results-icon{width:64px;height:64px;margin-bottom:16px;opacity:.3}.no-results-icon svg{width:100%;height:100%}.no-results h3{font-size:1.1rem;font-weight:600;color:var(--text);margin:0 0 8px}.no-results p{font-size:14px;margin:0}.recent-section{margin-top:32px;padding-top:24px;border-top:1px solid var(--border)}.recent-list{display:flex;flex-direction:column;gap:4px}.recent-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:background .15s ease}.recent-item:hover{background:var(--bg-subtle)}.recent-item.active{background:var(--accent-subtle, rgba(99, 102, 241, .1))}.recent-logo{width:40px;height:40px;border-radius:6px;overflow:hidden;background:var(--bg);flex-shrink:0}.recent-logo img{width:100%;height:100%;object-fit:cover}.recent-logo .station-logo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.recent-logo .station-logo-placeholder svg{width:20px;height:20px}.recent-info{flex:1}.recent-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-meta{font-size:12px;color:var(--text-muted)}.recent-item .playing-indicator{display:flex;align-items:center;gap:2px}.recent-item .playing-indicator span{width:3px;height:12px;background:var(--color-button);border-radius:2px;animation:audioWave 1s ease-in-out infinite}.recent-item .playing-indicator span:nth-child(2){animation-delay:.2s}.recent-item .playing-indicator span:nth-child(3){animation-delay:.4s}@media (max-width: 768px){.radio-browse-container{padding:16px}.radio-browse-header .view-title{font-size:24px}.stations-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.genre-tags{justify-content:center}.genre-tag{flex-shrink:0}.favorite-btn{opacity:1}}.podcast-view-container{padding:24px;height:100%;overflow-y:auto}.podcast-view-header{margin-bottom:24px}.back-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-subtle);border:none;border-radius:20px;color:var(--text);font-size:14px;cursor:pointer;transition:background .15s ease}.back-btn:hover{background:var(--bg-hover)}.back-btn svg{width:18px;height:18px}.podcast-hero{display:flex;gap:24px;margin-bottom:24px}.podcast-hero-artwork{width:180px;height:180px;border-radius:16px;overflow:hidden;background:var(--bg-subtle);flex-shrink:0}.podcast-hero-artwork img{width:100%;height:100%;object-fit:cover}.podcast-hero-artwork .podcast-artwork-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.podcast-hero-artwork .podcast-artwork-placeholder svg{width:64px;height:64px}.podcast-hero-info{flex:1;display:flex;flex-direction:column;justify-content:center}.podcast-title{font-size:1.6rem;font-weight:700;color:var(--text);margin:0 0 8px;line-height:1.2}.podcast-hero-info .podcast-author{font-size:16px;color:var(--text-secondary);margin-bottom:8px}.podcast-hero-info .podcast-genre{display:inline-block;width:fit-content;padding:4px 12px;background:var(--bg-subtle);border-radius:12px;font-size:12px;color:var(--text-muted);margin-bottom:16px}.podcast-hero-info .subscribe-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:var(--color-primary);border:none;border-radius:24px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;width:fit-content}.podcast-hero-info .subscribe-btn:hover{filter:brightness(1.1)}.podcast-hero-info .subscribe-btn svg{width:18px;height:18px}.podcast-hero-info .subscribe-btn.subscribed{background:var(--bg-subtle);color:var(--text-secondary)}.podcast-hero-info .subscribe-btn.subscribed:hover{background:var(--bg-hover)}.podcast-description{margin-bottom:32px;padding:16px;background:var(--bg-subtle);border-radius:12px}.podcast-description p{font-size:14px;color:var(--text-secondary);line-height:1.6;margin:0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.episodes-section{margin-bottom:24px}.episodes-section .section-title{font-size:20px;font-weight:600;color:var(--text);margin:0 0 16px;display:flex;align-items:baseline;gap:8px}.episode-count{font-size:14px;font-weight:400;color:var(--text-muted)}.episodes-list{display:flex;flex-direction:column;gap:8px}.episode-item{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-subtle);border-radius:12px;cursor:pointer;transition:background .15s ease}.episode-item:hover{background:var(--bg-hover)}.episode-item.playing{background:var(--accent-subtle)}.episode-play-btn{width:40px;height:40px;border-radius:50%;border:none;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .15s ease}.episode-play-btn:hover{filter:brightness(1.1);transform:scale(1.05)}.episode-play-btn svg{width:18px;height:18px}.episode-play-btn.loading{background:var(--color-button);pointer-events:none}.loading-spinner-small{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.episode-item.loading{opacity:.8}.episode-info{flex:1;position:relative}.episode-title{font-size:15px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.episode-meta{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--text-muted)}.episode-meta span{display:flex;align-items:center}.episode-progress-text{color:var(--color-primary)!important;font-weight:500}.episode-progress-bar{margin-top:4px;height:3px;background:var(--border);border-radius:2px;overflow:hidden;width:50px}.episode-progress-fill{height:100%;background:var(--color-primary);border-radius:2px;transition:width .3s ease}.episode-expand-btn{width:32px;height:32px;border:none;background:transparent;color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;border-radius:8px;transition:all .2s ease}.episode-expand-btn:hover{background:var(--bg-hover);color:var(--text)}.episode-expand-btn svg{width:18px;height:18px;transition:transform .2s ease}.episode-expand-btn.expanded svg{transform:rotate(90deg)}.episode-description{padding:16px 16px 16px 72px;background:var(--bg-subtle);border-radius:0 0 12px 12px;margin-top:-8px;margin-bottom:8px;border-top:1px solid var(--border)}.episode-description p{font-size:14px;color:var(--text);line-height:1.7;margin:0;white-space:pre-wrap;word-wrap:break-word}.episode-item.expanded{border-radius:12px 12px 0 0;margin-bottom:0}.podcast-view-container .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px;color:var(--text-muted)}.podcast-view-container .loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.no-episodes{padding:40px 20px;text-align:center;color:var(--text-muted)}.podcast-error{padding:16px 20px;text-align:center;color:#ff6b6b;background:#ff6b6b1a;border-radius:8px;animation:fadeIn .3s ease}.podcast-error p{margin:0;font-size:.9rem}.load-more-btn{width:100%;padding:16px;margin-top:16px;background:var(--bg-subtle);border:none;border-radius:12px;color:var(--text);font-size:14px;cursor:pointer;transition:background .15s ease}.load-more-btn:hover{background:var(--bg-hover)}@media (max-width: 768px){.podcast-view-container{max-width:100vw;padding:16px}.podcast-hero{flex-direction:column;align-items:center;text-align:center}.podcast-hero-artwork{width:160px;height:160px}.podcast-hero-info{align-items:center}.podcast-title{font-size:22px}.episode-item{padding:12px}.episode-play-btn{width:36px;height:36px}.episode-play-btn svg{width:16px;height:16px}.episode-description{padding:12px 12px 12px 60px}.episode-expand-btn{width:28px;height:28px}}.podcast-subscriptions-container{padding:1rem;height:100%;overflow-y:auto}.podcast-subscriptions-header{margin-bottom:20px}.podcast-subscriptions-header .view-title{font-size:1.6rem;font-weight:700;color:var(--text);margin:0}.podcast-subscriptions-container .search-section{margin-bottom:24px}.podcast-subscriptions-container .search-input-wrapper{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:12px;transition:border-color .15s ease}.podcast-subscriptions-container .search-input-wrapper:focus-within{border-color:var(--accent)}.podcast-subscriptions-container .search-input-wrapper>svg{width:20px;height:20px;color:var(--text-muted);flex-shrink:0}.podcast-subscriptions-container .search-input{flex:1;border:none;background:none;font-size:15px;color:var(--text);outline:none}.podcast-subscriptions-container .search-input::placeholder{color:var(--text-muted)}.podcast-subscriptions-container .search-clear-btn{width:24px;height:24px;border-radius:50%;border:none;background:var(--bg-hover);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.podcast-subscriptions-container .search-clear-btn:hover{background:var(--border);color:var(--text)}.podcast-subscriptions-container .search-clear-btn svg{width:14px;height:14px}.podcast-subscriptions-container .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px;color:var(--text-muted)}.podcast-subscriptions-container .loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.podcast-subscriptions-container .section-title{font-size:1.1rem;font-weight:600;color:var(--text);margin:0 0 16px;display:flex;align-items:baseline;gap:8px}.podcast-subscriptions-container .result-count{font-size:13px;font-weight:400;color:var(--text-muted)}.podcast-subscriptions-container .podcasts-list{display:flex;flex-direction:column;gap:8px}.podcast-subscriptions-container .podcast-item{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-subtle);border-radius:12px;cursor:pointer;transition:background .15s ease}.podcast-subscriptions-container .podcast-item:hover{background:var(--bg-hover)}.podcast-subscriptions-container .podcast-artwork{width:72px;height:72px;border-radius:8px;overflow:hidden;background:var(--bg);flex-shrink:0}.podcast-subscriptions-container .podcast-artwork img{width:100%;height:100%;object-fit:cover}.podcast-subscriptions-container .podcast-artwork-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.podcast-subscriptions-container .podcast-artwork-placeholder svg{width:32px;height:32px}.podcast-subscriptions-container .podcast-info{flex:1}.podcast-subscriptions-container .podcast-name{font-size:15px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.podcast-subscriptions-container .podcast-author{font-size:13px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.podcast-subscriptions-container .podcast-genre{display:inline-block;padding:2px 8px;background:var(--bg);border-radius:10px;font-size:11px;color:var(--text-muted)}.podcast-subscriptions-container .subscribe-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--accent);border:none;border-radius:20px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;flex-shrink:0}.podcast-subscriptions-container .subscribe-btn:hover{filter:brightness(1.1)}.podcast-subscriptions-container .subscribe-btn svg{width:16px;height:16px}.podcast-subscriptions-container .subscribe-btn.subscribed{background:var(--bg);color:var(--text-secondary)}.podcast-subscriptions-container .subscribe-btn.subscribed:hover{background:var(--bg-hover)}.podcast-subscriptions-container .subscriptions-section{margin-top:24px}.podcast-subscriptions-container .subscriptions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px}.podcast-subscriptions-container .podcast-card{display:flex;flex-direction:column;cursor:pointer;transition:filter .15s ease}.podcast-subscriptions-container .podcast-card:hover{filter:brightness(1.1)}.podcast-subscriptions-container .podcast-card-artwork{width:100%;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--bg-subtle);position:relative;margin-bottom:12px}.podcast-subscriptions-container .podcast-card-artwork img{width:100%;height:100%;object-fit:cover}.podcast-subscriptions-container .podcast-card-artwork .podcast-artwork-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.podcast-subscriptions-container .podcast-card-artwork .podcast-artwork-placeholder svg{width:48px;height:48px}.podcast-subscriptions-container .new-episodes-badge{position:absolute;top:8px;right:8px;background:var(--accent);color:#fff;font-size:10px;font-weight:700;padding:4px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;box-shadow:0 2px 4px #0000004d}.podcast-subscriptions-container .podcast-card-info{padding:0 4px}.podcast-subscriptions-container .podcast-card-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.podcast-subscriptions-container .podcast-card-author{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.podcast-subscriptions-container .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px}.podcast-subscriptions-container .empty-icon{width:80px;height:80px;margin-bottom:20px;color:var(--text-muted);opacity:.3}.podcast-subscriptions-container .empty-icon svg{width:100%;height:100%}.podcast-subscriptions-container .empty-state h3{font-size:1.1rem;font-weight:600;color:var(--text);margin:0 0 8px}.podcast-subscriptions-container .empty-state p{font-size:14px;color:var(--text-muted);max-width:300px;margin:0;line-height:1.5}.podcast-subscriptions-container .no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px;color:var(--text-muted)}.podcast-subscriptions-container .no-results-icon{width:64px;height:64px;margin-bottom:16px;opacity:.3}.podcast-subscriptions-container .no-results-icon svg{width:100%;height:100%}.podcast-subscriptions-container .no-results h3{font-size:1.1rem;font-weight:600;color:var(--text);margin:0 0 8px}.podcast-subscriptions-container .no-results p{font-size:14px;margin:0}.podcast-subscriptions-container .results-section,.continue-listening-section{margin-bottom:24px}.continue-listening-scroll{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.continue-listening-scroll::-webkit-scrollbar{display:none}.continue-card{flex-shrink:0;width:160px;background:var(--bg-subtle);border-radius:12px;overflow:hidden;cursor:pointer;transition:background .15s ease,transform .15s ease}.continue-card:hover{background:var(--bg-hover);transform:translateY(-2px)}.continue-card-artwork{width:100%;aspect-ratio:1;background:var(--bg);position:relative}.continue-card-artwork img{width:100%;height:100%;object-fit:cover}.continue-artwork-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.continue-artwork-placeholder svg{width:40px;height:40px}.continue-card-info{padding:10px 12px 6px}.continue-card-title{font-size:13px;font-weight:500;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3;margin-bottom:4px}.continue-card-podcast{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.continue-card-progress{padding:8px 12px 12px}.continue-progress-bar{height:3px;background:var(--bg-hover);border-radius:2px;overflow:hidden;margin-bottom:6px}.continue-progress-fill{height:100%;background:var(--accent);border-radius:2px;transition:width .15s ease}.continue-remaining{font-size:10px;color:var(--text-muted)}@media (max-width: 768px){.podcast-subscriptions-container{max-width:100vw;padding:16px}.podcast-subscriptions-header .view-title{font-size:24px}.podcast-subscriptions-container .subscriptions-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:16px}.podcast-subscriptions-container .podcast-card-artwork{border-radius:8px}.podcast-subscriptions-container .podcast-artwork{width:56px;height:56px}.podcast-subscriptions-container .subscribe-btn span{display:none}.podcast-subscriptions-container .subscribe-btn{padding:8px;border-radius:50%}.continue-card{width:140px}.continue-card-title{font-size:12px}}.podcast-discover-container{padding:1rem;height:100%;overflow-y:auto}.podcast-discover-header{margin-bottom:20px}.podcast-discover-header .view-title{font-size:1.6rem;font-weight:700;color:var(--text);margin:0}.podcast-discover-container .search-section{margin-bottom:24px}.podcast-discover-container .search-input-wrapper{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:12px;transition:border-color .15s ease}.podcast-discover-container .search-input-wrapper:focus-within{border-color:var(--accent)}.podcast-discover-container .search-input-wrapper>svg{width:20px;height:20px;color:var(--text-muted);flex-shrink:0}.podcast-discover-container .search-input{flex:1;border:none;background:none;font-size:15px;color:var(--text);outline:none}.podcast-discover-container .search-input::placeholder{color:var(--text-muted)}.podcast-discover-container .search-clear-btn{width:24px;height:24px;border-radius:50%;border:none;background:var(--bg-hover);color:var(--text-muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s ease}.podcast-discover-container .search-clear-btn:hover{background:var(--border);color:var(--text)}.podcast-discover-container .search-clear-btn svg{width:14px;height:14px}.podcast-discover-container .loading-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px;color:var(--text-muted)}.podcast-discover-container .loading-spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.podcast-discover-container .section-title{font-size:1.1rem;font-weight:600;color:var(--text);margin:0;display:flex;align-items:baseline;gap:8px}.podcast-discover-container .result-count{font-size:13px;font-weight:400;color:var(--text-muted)}.podcast-discover-container .podcasts-list{display:flex;flex-direction:column;gap:8px}.podcast-discover-container .podcast-item{display:flex;align-items:center;gap:16px;padding:12px 16px;background:var(--bg-subtle);border-radius:12px;cursor:pointer;transition:background .15s ease}.podcast-discover-container .podcast-item:hover{background:var(--bg-hover)}.podcast-discover-container .podcast-artwork{width:72px;height:72px;border-radius:8px;overflow:hidden;background:var(--bg);flex-shrink:0}.podcast-discover-container .podcast-artwork img{width:100%;height:100%;object-fit:cover}.podcast-discover-container .podcast-artwork-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.podcast-discover-container .podcast-artwork-placeholder svg{width:32px;height:32px}.podcast-discover-container .podcast-info{flex:1}.podcast-discover-container .podcast-name{font-size:15px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.podcast-discover-container .podcast-author{font-size:13px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.podcast-discover-container .podcast-genre{display:inline-block;padding:2px 8px;background:var(--bg);border-radius:10px;font-size:11px;color:var(--text-muted)}.podcast-discover-container .subscribe-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--accent);border:none;border-radius:20px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease;flex-shrink:0}.podcast-discover-container .subscribe-btn:hover{filter:brightness(1.1)}.podcast-discover-container .subscribe-btn svg{width:16px;height:16px}.podcast-discover-container .subscribe-btn.subscribed{background:var(--bg);color:var(--text-secondary)}.podcast-discover-container .subscribe-btn.subscribed:hover{background:var(--bg-hover)}.podcast-discover-container .results-section{margin-bottom:24px}.podcast-discover-container .results-section .section-title{margin-bottom:16px}.podcast-discover-container .no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 20px;color:var(--text-muted)}.podcast-discover-container .no-results-icon{width:64px;height:64px;margin-bottom:16px;opacity:.3}.podcast-discover-container .no-results-icon svg{width:100%;height:100%}.podcast-discover-container .no-results h3{font-size:1.1rem;font-weight:600;color:var(--text);margin:0 0 8px}.podcast-discover-container .no-results p{font-size:14px;margin:0}.podcast-discover-container .ai-suggestions-section{margin-top:8px}.podcast-discover-container .section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.podcast-discover-container .refresh-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--accent);border:none;border-radius:20px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.podcast-discover-container .refresh-btn:hover:not(:disabled){filter:brightness(1.1)}.podcast-discover-container .refresh-btn:disabled{opacity:.7;cursor:not-allowed}.podcast-discover-container .refresh-btn.loading{background:var(--bg-subtle);color:var(--text-muted)}.podcast-discover-container .refresh-btn svg{width:16px;height:16px}.podcast-discover-container .loading-spinner-small{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.podcast-discover-container .suggestions-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:40px 20px;color:var(--text-muted)}.podcast-discover-container .suggestions-empty .empty-icon{width:64px;height:64px;margin-bottom:16px;opacity:.3}.podcast-discover-container .suggestions-empty .empty-icon svg{width:100%;height:100%}.podcast-discover-container .suggestions-empty h3{font-size:1.1rem;font-weight:600;color:var(--text);margin:0 0 8px}.podcast-discover-container .suggestions-empty p{font-size:14px;margin:0;max-width:300px;line-height:1.5}.podcast-discover-container .suggestions-error{padding:16px;background:#ff6b6b1a;border-radius:8px;margin-bottom:16px}.podcast-discover-container .suggestions-error p{margin:0;color:#ff6b6b;font-size:14px}@media (max-width: 768px){.podcast-discover-container{max-width:100vw;padding:16px}.podcast-discover-header .view-title{font-size:24px}.podcast-discover-container .podcast-artwork{width:56px;height:56px}.podcast-discover-container .subscribe-btn span{display:none}.podcast-discover-container .subscribe-btn{padding:8px;border-radius:50%}.podcast-discover-container .section-header{flex-direction:column;align-items:flex-start;gap:12px}.podcast-discover-container .refresh-btn{width:100%;justify-content:center}}.playlists-list-container{padding:1rem;height:100%;overflow-y:auto}.playlists-list-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.playlists-list-header .view-title{font-size:1.6rem;font-weight:700;color:var(--text);margin:0}.new-playlist-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--accent);border:none;border-radius:20px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.new-playlist-btn:hover{filter:brightness(1.1)}.new-playlist-btn svg{width:18px;height:18px}.playlists-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px}.playlist-card{display:flex;flex-direction:column;cursor:pointer;transition:filter .15s ease}.playlist-card:hover{filter:brightness(1.1)}.playlist-artwork{width:100%;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--bg-subtle);margin-bottom:12px}.playlist-artwork img{width:100%;height:100%;object-fit:cover}.playlist-artwork-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-subtle),var(--bg));color:var(--text-muted)}.playlist-artwork-placeholder svg{width:48px;height:48px}.playlist-artwork-grid{width:100%;height:100%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.playlist-artwork-grid img{width:100%;height:100%;object-fit:cover}.playlist-card-info{padding:0 4px}.playlist-card-name{font-size:14px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.playlist-card-count{font-size:12px;color:var(--text-muted)}.playlists-list-container .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:80px 20px}.playlists-list-container .empty-icon{width:80px;height:80px;margin-bottom:20px;color:var(--text-muted);opacity:.3}.playlists-list-container .empty-icon svg{width:100%;height:100%}.playlists-list-container .empty-state h3{font-size:1.1rem;font-weight:600;color:var(--text);margin:0 0 8px}.playlists-list-container .empty-state p{font-size:14px;color:var(--text-muted);max-width:300px;margin:0 0 24px;line-height:1.5}.create-playlist-btn{display:flex;align-items:center;gap:8px;padding:12px 24px;background:var(--accent);border:none;border-radius:24px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.create-playlist-btn:hover{filter:brightness(1.1)}.create-playlist-btn svg{width:18px;height:18px}@media (max-width: 768px){.playlists-list-container{padding:16px}.playlists-list-header .view-title{font-size:24px}.playlists-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:16px}.playlist-artwork{border-radius:8px}}.confirm-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;animation:confirmFadeIn .15s ease}.confirm-backdrop.closing{animation:confirmFadeOut .15s ease forwards}@keyframes confirmFadeIn{0%{opacity:0}to{opacity:1}}@keyframes confirmFadeOut{0%{opacity:1}to{opacity:0}}.confirm-dialog{background:var(--bg-secondary, var(--bg));border-radius:12px;width:90%;max-width:340px;overflow:hidden;box-shadow:0 20px 60px #00000080;animation:confirmSlideUp .2s ease}.confirm-dialog.closing{animation:confirmSlideDown .15s ease forwards}@keyframes confirmSlideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes confirmSlideDown{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(10px) scale(.95)}}.confirm-header{padding:20px 20px 0}.confirm-header h2{font-size:1rem;font-weight:600;color:var(--text);margin:0;text-align:center}.confirm-body{padding:12px 20px 20px}.confirm-body p{font-size:14px;line-height:1.5;color:var(--text-muted);margin:0;text-align:center}.confirm-footer{display:flex;gap:12px;padding:0 20px 20px}.confirm-cancel-btn,.confirm-confirm-btn{flex:1;padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.confirm-cancel-btn{background:var(--bg-hover);color:var(--text)}.confirm-cancel-btn:hover{background:var(--border)}.confirm-cancel-btn:focus{outline:2px solid var(--color-primary);outline-offset:2px}.confirm-confirm-btn{background:var(--color-primary);color:#fff}.confirm-confirm-btn:hover{background:var(--color-primary-hover)}.confirm-confirm-btn:focus{outline:2px solid var(--color-primary);outline-offset:2px}.confirm-confirm-btn.destructive{background:var(--color-error)}.confirm-confirm-btn.destructive:hover{background:var(--color-error-dark)}.confirm-confirm-btn.destructive:focus{outline:2px solid var(--color-error);outline-offset:2px}@media (max-width: 480px){.confirm-dialog{width:95%;max-width:none;margin:0 10px}.confirm-header{padding:16px 16px 0}.confirm-body{padding:12px 16px 16px}.confirm-footer{padding:0 16px 16px}}.progress-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;animation:progressFadeIn .15s ease}.progress-backdrop.closing{animation:progressFadeOut .15s ease forwards}@keyframes progressFadeIn{0%{opacity:0}to{opacity:1}}@keyframes progressFadeOut{0%{opacity:1}to{opacity:0}}.progress-dialog{background:var(--bg-secondary, var(--bg));border-radius:12px;width:90%;max-width:340px;overflow:hidden;box-shadow:0 20px 60px #00000080;animation:progressSlideUp .2s ease}.progress-dialog.closing{animation:progressSlideDown .15s ease forwards}@keyframes progressSlideUp{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes progressSlideDown{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(10px) scale(.95)}}.progress-header{padding:20px 20px 0}.progress-header h2{font-size:1rem;font-weight:600;color:var(--text);margin:0;text-align:center}.progress-body{padding:16px 20px 20px}.progress-text{font-size:14px;line-height:1.5;color:var(--text-muted);margin:0 0 12px;text-align:center}.progress-bar{width:100%;height:6px;background:var(--bg-hover);border-radius:3px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-primary);border-radius:3px;transition:width .1s ease}.progress-footer{padding:0 20px 20px;display:flex;justify-content:center}.progress-cancel-btn{padding:8px 24px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;background:var(--bg-hover);color:var(--text)}.progress-cancel-btn:hover{background:var(--border)}.progress-cancel-btn:focus{outline:2px solid var(--color-primary);outline-offset:2px}@media (max-width: 480px){.progress-dialog{width:95%;max-width:none;margin:0 10px}.progress-header{padding:16px 16px 0}.progress-body{padding:12px 16px 16px}.progress-footer{padding:0 16px 16px}}p-convert-to-mp3-modal{display:none}p-convert-to-mp3-modal.open{display:block}.convert-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.convert-modal{background:var(--bg-secondary);border-radius:12px;width:90%;max-width:440px;max-height:90vh;overflow:hidden;box-shadow:0 20px 60px #00000080;animation:slideUp .2s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.convert-modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px;background:var(--bg-hover);border-bottom:1px solid var(--border)}.convert-modal-header h2{font-size:1.1rem;font-weight:600;color:var(--text);margin:0;display:flex;align-items:center;gap:10px}.convert-modal-header h2 svg{width:24px;height:24px;opacity:.7}.convert-close-btn{background:none;border:none;padding:8px;cursor:pointer;color:var(--text-muted);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .15s ease;flex-shrink:0}.convert-close-btn:hover{background:var(--bg);color:var(--text)}.convert-close-btn svg{width:20px;height:20px}.convert-modal-body{padding:20px;overflow-y:auto;max-height:calc(90vh - 80px);background:var(--bg)}.convert-file-info{display:flex;align-items:center;gap:16px;padding:16px;background:var(--bg-hover);border-radius:8px;margin-bottom:20px}.convert-file-cover{width:56px;height:56px;border-radius:6px;background:var(--bg);flex-shrink:0;display:flex;align-items:center;justify-content:center;background-size:cover;background-position:center}.convert-file-cover svg{width:24px;height:24px;color:var(--text-muted)}.convert-file-details{flex:1;min-width:0}.convert-file-title{font-weight:600;color:var(--text);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.convert-file-meta{font-size:12px;color:var(--text-muted);margin-top:4px}.convert-section{margin-bottom:20px}.convert-section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted);margin-bottom:12px}.convert-bitrate-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.convert-bitrate-option{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;background:var(--bg-hover);border:2px solid var(--border);border-radius:8px;cursor:pointer;transition:all .15s ease}.convert-bitrate-option:hover{background:var(--bg-subtle);border-color:var(--text-muted)}.convert-bitrate-option.selected{background:rgba(var(--color-primary-rgb, 66, 133, 244),.1);border-color:var(--color-primary)}.convert-bitrate-value{font-size:18px;font-weight:600;color:var(--text)}.convert-bitrate-option.selected .convert-bitrate-value{color:var(--color-primary)}.convert-bitrate-label{font-size:10px;color:var(--text-muted);text-transform:uppercase}.convert-size-estimate{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-hover);border-radius:8px;margin-bottom:20px}.convert-size-label{font-size:13px;color:var(--text-muted)}.convert-size-value{font-size:13px;font-weight:600;color:var(--text)}.convert-option-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;margin-bottom:20px}.convert-option-label{display:flex;flex-direction:column;gap:2px}.convert-option-title{font-size:14px;font-weight:500;color:var(--text)}.convert-option-description{font-size:12px;color:var(--text-muted)}.convert-checkbox{width:20px;height:20px;accent-color:var(--color-primary);cursor:pointer}.convert-actions{display:flex;gap:12px;justify-content:flex-end}.convert-cancel-btn{padding:10px 20px;background:var(--bg-hover);color:var(--text);border:1px solid var(--border);border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.convert-cancel-btn:hover{background:var(--bg-subtle)}.convert-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.convert-submit-btn{padding:10px 24px;background:var(--color-primary);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease}.convert-submit-btn:hover{background:var(--color-primary-dark, #1a73e8)}.convert-submit-btn:disabled{opacity:.5;cursor:not-allowed}.convert-progress{margin-top:20px}.convert-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.convert-progress-label{font-size:13px;color:var(--text)}.convert-progress-percent{font-size:13px;font-weight:600;color:var(--color-primary)}.convert-progress-bar{height:8px;background:var(--bg-hover);border-radius:4px;overflow:hidden}.convert-progress-fill{height:100%;background:var(--color-primary);border-radius:4px;transition:width .2s ease}.convert-progress-stage{font-size:12px;color:var(--text-muted);margin-top:8px;text-align:center}@media (max-width: 480px){.convert-modal{width:95%;max-height:85vh}.convert-modal-header,.convert-modal-body{padding:16px}.convert-bitrate-options{grid-template-columns:repeat(2,1fr)}}
