:root{color-scheme:light;--radius-lg: 16px;--radius-md: 12px;--space-1: 6px;--space-2: 10px;--space-3: 14px;--space-4: 18px;--bg: #f5f7fb;--card-bg: #ffffff;--line: #e5e7eb;--line-strong: #cbd5e1;--text: #0f172a;--muted: #64748b;--primary: #1f6feb;--primary-hover: #1258cf;--danger: #dc2626;--danger-hover: #b91c1c;--success: #15803d;--focus: rgba(59, 130, 246, .18)}:root[data-theme=dark]{color-scheme:dark;--bg: #020617;--card-bg: rgba(15, 23, 42, .75);--line: #243244;--line-strong: #334155;--text: #e2e8f0;--muted: #94a3b8;--primary: #3b82f6;--primary-hover: #2563eb;--danger: #f87171;--danger-hover: #ef4444;--success: #4ade80;--focus: rgba(59, 130, 246, .25)}*{box-sizing:border-box}body{margin:0;font-family:Inter,Segoe UI,Arial,sans-serif;line-height:1.35;background:radial-gradient(900px 500px at 0% 0%,color-mix(in oklab,var(--primary) 20%,transparent) 0%,transparent 45%),radial-gradient(800px 500px at 100% 0%,color-mix(in oklab,#a78bfa 20%,transparent) 0%,transparent 42%),var(--bg);color:var(--text)}.container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 14px 108px;flex-direction:column;gap:14px}.app-top{width:100%;max-width:980px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px}h1{margin:0;font-size:clamp(1.2rem,1.6vw,1.5rem);letter-spacing:-.02em}h2{margin:0;font-size:clamp(1.1rem,1.4vw,1.35rem)}p{margin:0}.muted{color:var(--muted);font-size:.9rem}.card{width:100%;max-width:460px;margin:0 auto;background:var(--card-bg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:0 20px 40px #0f172a14}.wide{max-width:980px;width:min(980px,100%)}.auth-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.auth-panel-brand{position:relative;display:flex;align-items:center;justify-content:center;padding:60px 52px;overflow:hidden;background:linear-gradient(145deg,var(--primary) 0%,#7c3aed 100%);color:#fff}.auth-panel-brand:before{content:"";position:absolute;width:440px;height:440px;border-radius:50%;background:#ffffff12;top:-140px;right:-140px;pointer-events:none}.auth-panel-brand:after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;background:#ffffff0f;bottom:-80px;left:-80px;pointer-events:none}.auth-brand-content{position:relative;z-index:1;max-width:360px;display:flex;flex-direction:column;gap:22px}.auth-brand-eyebrow{font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;opacity:.7}.auth-brand-title{font-size:clamp(2rem,3vw,2.8rem);font-weight:800;letter-spacing:-.04em;line-height:1.1;margin:0}.auth-brand-sub{font-size:.92rem;line-height:1.65;opacity:.82}.auth-brand-features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px}.auth-brand-features li{display:flex;align-items:center;gap:10px;font-size:.87rem;opacity:.88}.auth-panel-form{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:48px 40px;position:relative;background:var(--bg);min-height:100vh}.auth-theme-btn{position:absolute;top:20px;right:20px;font-size:.8rem}.auth-card{width:100%;max-width:380px;display:flex;flex-direction:column;gap:22px}.auth-card-head{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}.auth-logo{width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--primary),#7c3aed);color:#fff;font-size:1.5rem;display:flex;align-items:center;justify-content:center;margin-bottom:4px;box-shadow:0 6px 20px color-mix(in oklab,var(--primary) 40%,transparent)}.auth-title{font-size:1.3rem;font-weight:800;letter-spacing:-.03em;margin:0}.auth-tagline{color:var(--muted);font-size:.83rem}.auth-tabs{display:flex;position:relative;border-bottom:1px solid var(--line)}.auth-tab-btn{flex:1;padding:11px 12px;background:none;border:none;font-size:.88rem;font-weight:600;color:var(--muted);cursor:pointer;transition:color var(--motion-std)}.auth-tab-btn.active{color:var(--primary)}.auth-tab-indicator{position:absolute;bottom:-1px;height:2px;background:var(--primary);border-radius:2px 2px 0 0;transition:left .25s cubic-bezier(.34,1.56,.64,1)}.auth-form{display:flex;flex-direction:column;gap:14px}.auth-field{display:flex;flex-direction:column;gap:5px}.auth-label{font-size:.8rem;font-weight:600;color:var(--text);letter-spacing:.01em}.auth-input-wrap{position:relative}.auth-input-wrap input{padding-right:44px}.auth-eye-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--muted);padding:4px;display:flex;align-items:center;border-radius:6px;transition:color var(--motion-std)}.auth-eye-btn:hover{color:var(--text)}.auth-field-error{font-size:.76rem;color:var(--danger)}input.input-error{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in oklab,var(--danger) 15%,transparent)}.auth-strength{display:flex;align-items:center;gap:8px;margin-top:2px}.auth-strength-bars{display:flex;gap:4px;flex:1}.auth-strength-bar{flex:1;height:3px;border-radius:2px;background:var(--line);transition:background .3s}.auth-strength-label{font-size:.72rem;font-weight:600;flex-shrink:0;min-width:32px;text-align:right}.auth-global-error{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--radius-md);background:color-mix(in oklab,var(--danger) 10%,transparent);border:1px solid color-mix(in oklab,var(--danger) 28%,transparent);color:var(--danger);font-size:.83rem}.auth-submit{width:100%;padding:13px;font-size:.92rem;display:flex;align-items:center;justify-content:center;gap:8px;margin-top:4px}.auth-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:auth-spin .7s linear infinite}@keyframes auth-spin{to{transform:rotate(360deg)}}.auth-success{display:flex;flex-direction:column;align-items:center;gap:10px;padding:28px 16px;text-align:center}.auth-success-icon{width:52px;height:52px;border-radius:50%;background:color-mix(in oklab,#22c55e 14%,transparent);border:2px solid #22c55e;color:#22c55e;font-size:1.4rem;display:flex;align-items:center;justify-content:center}@media (max-width: 700px){.auth-page{grid-template-columns:1fr}.auth-panel-brand{display:none}.auth-panel-form{padding:40px 24px}}input{width:100%;padding:12px;border-radius:12px;border:1px solid var(--line);background:color-mix(in oklab,var(--card-bg) 88%,white 12%);color:var(--text);font-size:14px;transition:border-color .2s,box-shadow .2s}input:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px var(--focus)}select{width:100%;padding:11px 12px;border-radius:12px;border:1px solid var(--line);background:color-mix(in oklab,var(--card-bg) 90%,white 10%);color:var(--text);font-size:14px}select:focus{outline:none;border-color:#93c5fd;box-shadow:0 0 0 3px var(--focus)}button{border:none;cursor:pointer;border-radius:var(--radius-md);font-size:.86rem;font-weight:600;transition:transform .08s ease,box-shadow .2s,background .2s}button:active{transform:translateY(1px)}.primary-btn{padding:10px 13px;background:var(--primary);color:#fff;box-shadow:0 8px 14px #1f6feb33}.primary-btn:hover{background:var(--primary-hover)}.ghost-btn{padding:9px 11px;background:color-mix(in oklab,var(--card-bg) 85%,white 15%);color:var(--text);border:1px solid var(--line)}.ghost-btn:hover{background:color-mix(in oklab,var(--primary) 14%,var(--card-bg))}.ghost-btn:disabled,.primary-btn:disabled{opacity:.7;cursor:not-allowed}.danger-btn{padding:10px 12px;background:color-mix(in oklab,var(--danger) 20%,var(--card-bg));color:var(--danger)}.danger-btn:hover{background:#fecaca;color:var(--danger-hover)}.link-btn{align-self:flex-start;padding:0;border-radius:0;border:none;background:transparent;color:var(--primary);font-weight:600}.link-btn:hover{color:var(--primary-hover)}.top-actions{display:flex;align-items:center;gap:10px}.password-row{display:grid;grid-template-columns:1fr auto;gap:8px}.compact-btn{min-width:72px}.dashboard-card{display:flex;flex-direction:column;gap:var(--space-3)}.header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.header-actions{display:flex;align-items:center;gap:8px}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.stat-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:color-mix(in oklab,var(--card-bg) 84%,white 16%);display:flex;flex-direction:column;gap:3px}.stat-card strong{font-size:1.1rem}.toolbar{display:grid;grid-template-columns:1.5fr 1fr auto;gap:var(--space-2);position:sticky;top:12px;z-index:2;background:color-mix(in oklab,var(--card-bg) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius-md);padding:8px}.filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.preset-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.playlist-panel{border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:10px;background:color-mix(in oklab,var(--card-bg) 86%,white 14%)}.playlist-create{display:grid;grid-template-columns:1fr auto;gap:10px}.playlist-list{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.playlist-chip{display:inline-flex;gap:6px;align-items:center}.playlist-order-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.playlist-order-item{border:1px dashed var(--line-strong);border-radius:10px;padding:10px;background:color-mix(in oklab,var(--card-bg) 80%,white 20%);cursor:grab}.active-filter{border-color:color-mix(in oklab,var(--primary) 50%,var(--line));box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--primary) 60%,transparent)}.upload-btn{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-width:160px;padding:11px 14px;border-radius:12px;background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;cursor:pointer;font-weight:600}.upload-btn input{display:none}.aux-actions{display:flex;gap:8px;flex-wrap:wrap}.list{display:flex;flex-direction:column;gap:8px}.item{display:grid;grid-template-columns:minmax(180px,1.2fr) auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);background:color-mix(in oklab,var(--card-bg) 82%,white 18%);border-radius:14px;transition:transform .12s ease,box-shadow .2s ease}.item:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0f172a14}.item-active{border-color:color-mix(in oklab,var(--primary) 55%,var(--line));box-shadow:0 0 0 1px color-mix(in oklab,var(--primary) 40%,transparent)}.track-meta{min-width:0}.track-cover{width:44px;height:44px;border-radius:8px;object-fit:cover;display:block;margin-bottom:6px}.track-title{font-weight:600;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-meta small{color:var(--muted)}.item-actions{display:flex;align-items:center;gap:6px;justify-content:flex-start;flex-wrap:wrap}.track-profile-editor{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.waveform-card{grid-column:1 / -1;border:1px solid var(--line);border-radius:10px;padding:10px;background:color-mix(in oklab,var(--card-bg) 82%,white 18%)}.waveform-bars{margin-top:6px;height:52px;display:grid;grid-template-columns:repeat(36,minmax(0,1fr));gap:3px;align-items:end}.wave-bar{width:100%;border-radius:4px;border:none;background:color-mix(in oklab,var(--line-strong) 70%,var(--card-bg));padding:0;cursor:pointer}.wave-bar.active{background:color-mix(in oklab,var(--primary) 70%,white 30%)}.timestamp-row{margin-top:6px;display:flex;justify-content:space-between;font-size:.78rem;color:var(--muted)}.favorite-btn{min-width:90px}.icon-btn{width:32px;height:32px;min-width:32px;padding:0;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:700}.filters-collapsible{border:1px solid var(--line);border-radius:10px;padding:8px 10px}.filters-collapsible>summary{cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;font-size:.88rem;margin-bottom:8px}.favorite-btn.is-favorite{color:#f59e0b;border-color:color-mix(in oklab,#f59e0b 45%,var(--line));background:color-mix(in oklab,#f59e0b 14%,var(--card-bg))}audio{width:100%;height:38px}.empty-state{border:1px dashed var(--line-strong);border-radius:12px;padding:22px;text-align:center;color:var(--muted);background:color-mix(in oklab,var(--card-bg) 80%,white 20%)}.now-playing{border:1px solid var(--line);background:color-mix(in oklab,var(--primary) 10%,var(--card-bg));border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:4px}.resume-block{border:1px solid var(--line);border-radius:12px;padding:12px;background:color-mix(in oklab,var(--card-bg) 84%,white 16%)}.resume-list{margin-top:8px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.resume-item{text-align:left;display:flex;flex-direction:column;gap:4px}.resume-title{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resume-item small{color:var(--muted)}.mini-player{position:fixed;left:50%;transform:translate(-50%);bottom:10px;width:min(980px,calc(100% - 20px));z-index:40;border:1px solid var(--line);border-radius:var(--radius-lg);padding:10px 12px;background:color-mix(in oklab,var(--primary) 8%,var(--card-bg));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:8px}.mini-player-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.mini-player-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mini-icon-btn{width:30px;height:30px;min-width:30px;font-size:.88rem}.mini-volume{display:inline-flex;align-items:center;gap:6px;font-size:.85rem}.mini-volume input{width:120px}.mini-progress{width:100%;accent-color:var(--primary)}.global-audio-engine{display:none}.error{margin:0;color:var(--danger);font-size:.88rem;font-weight:600}.success{margin:0;color:var(--success);font-size:.88rem;font-weight:700}@media (max-width: 900px){.container{padding:16px 12px}.card{border-radius:var(--radius-lg);padding:16px}.item{grid-template-columns:1fr;gap:8px}.toolbar,.filter-grid,.playlist-create,.playlist-order-list,.track-profile-editor{grid-template-columns:1fr}.item-actions{justify-content:stretch;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.mini-player{width:calc(100% - 14px);bottom:7px}}@media (max-width: 620px){.app-top{flex-direction:column;align-items:flex-start}.header{flex-direction:column;width:100%}.stats-grid,.resume-list{grid-template-columns:1fr}.ghost-btn,.danger-btn,.primary-btn,.upload-btn{width:100%}.top-actions,.header-actions{width:100%;flex-direction:column}.item-actions{grid-template-columns:1fr}}:root{--sidebar-w: 220px;--bottom-nav-h: 62px;--player-h: 140px;--z-sidebar: 20;--z-player: 40;--z-overlay: 48;--z-modal: 50;--radius-sm: 8px;--radius-xl: 20px;--motion-std: .18s ease;--motion-spring: .28s cubic-bezier(.34, 1.56, .64, 1)}.app-shell{display:flex;min-height:100vh}.app-sidebar{width:var(--sidebar-w);height:100vh;position:fixed;top:0;left:0;display:flex;flex-direction:column;background:var(--card-bg);border-right:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:var(--z-sidebar);overflow:hidden}.sidebar-logo{display:flex;align-items:center;gap:10px;padding:20px 16px 16px;border-bottom:1px solid var(--line);flex-shrink:0}.sidebar-logo-icon{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--primary);display:flex;align-items:center;justify-content:center;color:#fff;font-size:16px;flex-shrink:0}.sidebar-logo-text{font-weight:700;font-size:1rem;letter-spacing:-.02em}.sidebar-nav{flex:1;overflow-y:auto;padding:10px 8px;display:flex;flex-direction:column;gap:1px;scrollbar-width:none}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-section-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:10px 10px 4px}.nav-link{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-md);color:var(--text);text-decoration:none;font-size:.875rem;font-weight:500;transition:background var(--motion-std),color var(--motion-std);cursor:pointer}.nav-link:hover{background:color-mix(in oklab,var(--primary) 10%,var(--card-bg))}.nav-link.active{background:color-mix(in oklab,var(--primary) 16%,var(--card-bg));color:var(--primary);font-weight:600}.nav-link-icon{font-size:1rem;width:20px;text-align:center;flex-shrink:0}.sidebar-divider{height:1px;background:var(--line);margin:6px 10px}.sidebar-footer{padding:10px 8px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:1px;flex-shrink:0}.sidebar-footer-btn{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-md);background:transparent;border:none;color:var(--muted);font-size:.875rem;font-weight:500;cursor:pointer;text-align:left;width:100%;transition:background var(--motion-std),color var(--motion-std)}.sidebar-footer-btn:hover{background:color-mix(in oklab,var(--card-bg) 70%,white 30%);color:var(--text)}.sidebar-footer-btn.danger:hover{color:var(--danger);background:color-mix(in oklab,var(--danger) 10%,var(--card-bg))}.sidebar-install-btn{margin:0 8px 6px;width:calc(100% - 16px);display:flex;align-items:center;gap:8px;justify-content:center}.app-content{flex:1;margin-left:var(--sidebar-w);padding:28px 28px calc(var(--player-h) + 32px);max-width:100%;min-height:100vh}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-h);background:var(--card-bg);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:var(--z-player);padding:0 4px;align-items:center;justify-content:space-around}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 10px;border-radius:var(--radius-md);color:var(--muted);text-decoration:none;font-size:.68rem;font-weight:500;transition:color var(--motion-std);cursor:pointer;flex:1}.bottom-nav-item.active{color:var(--primary)}.bottom-nav-item.disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.bottom-nav-icon{font-size:1.15rem;line-height:1}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:24px}.page-header-left{display:flex;flex-direction:column;gap:4px}.page-header-title{margin:0;font-size:clamp(1.35rem,2vw,1.75rem);font-weight:700;letter-spacing:-.03em}.page-header-sub{margin:0;color:var(--muted);font-size:.88rem}.page-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.section-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-title{margin:0;font-size:.95rem;font-weight:600;letter-spacing:-.01em}.section-action{font-size:.82rem;color:var(--primary);background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background var(--motion-std)}.section-action:hover{background:color-mix(in oklab,var(--primary) 12%,transparent)}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}.stat-item{background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius-md);padding:14px 16px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.stat-item-label{font-size:.78rem;color:var(--muted);margin:0 0 4px}.stat-item-value{font-size:1.2rem;font-weight:700;margin:0;letter-spacing:-.02em}.continue-section{margin-bottom:24px}.continue-scroll{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.continue-scroll::-webkit-scrollbar{display:none}.continue-item{flex-shrink:0;width:170px;background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius-md);padding:12px;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:4px;font-weight:400;transition:background var(--motion-std),transform var(--motion-std)}.continue-item:hover{background:color-mix(in oklab,var(--primary) 8%,var(--card-bg));transform:translateY(-1px)}.continue-item-icon{font-size:1.2rem;margin-bottom:4px}.continue-item-title{font-size:.83rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.continue-item-time{font-size:.72rem;color:var(--muted)}.toolbar-v2{display:flex;gap:8px;align-items:center;padding:8px 10px;background:color-mix(in oklab,var(--card-bg) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--radius-md);border:1px solid var(--line);position:sticky;top:0;z-index:2;margin-bottom:14px}.toolbar-v2 input{flex:1;padding:8px 12px;font-size:.875rem}.toolbar-v2 select{width:auto;padding:8px 10px;font-size:.82rem}.filter-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.filter-chip{padding:5px 12px;border-radius:20px;border:1px solid var(--line);background:color-mix(in oklab,var(--card-bg) 90%,white 10%);color:var(--muted);font-size:.8rem;font-weight:500;cursor:pointer;transition:background var(--motion-std),color var(--motion-std),border-color var(--motion-std)}.filter-chip:hover{border-color:color-mix(in oklab,var(--primary) 50%,var(--line));color:var(--text)}.filter-chip.active{background:color-mix(in oklab,var(--primary) 18%,var(--card-bg));border-color:var(--primary);color:var(--primary);font-weight:600}.filter-chips select{width:auto;min-width:0;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.track-list{display:flex;flex-direction:column;gap:2px}.track-row{display:grid;grid-template-columns:40px minmax(0,1fr) 64px auto;gap:12px;align-items:center;padding:8px 10px;border-radius:var(--radius-md);transition:background var(--motion-std);cursor:default}.track-row:hover{background:color-mix(in oklab,var(--card-bg) 80%,white 20%)}.track-row:hover .track-row-actions{opacity:1}.track-row.playing{background:color-mix(in oklab,var(--primary) 10%,var(--card-bg))}.track-row-cover{width:40px;height:40px;border-radius:6px;background:color-mix(in oklab,var(--line) 80%,var(--card-bg));display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:1rem;flex-shrink:0;overflow:hidden}.track-row-cover img{width:100%;height:100%;object-fit:cover;display:block}.track-row-info{min-width:0;display:flex;flex-direction:column;gap:2px}.track-row-title{font-weight:600;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-row.playing .track-row-title{color:var(--primary)}.track-row-meta{font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-row-duration{font-size:.8rem;color:var(--muted);flex-shrink:0;text-align:right}.track-row-actions{display:flex;align-items:center;gap:4px;flex-shrink:0;opacity:0;transition:opacity var(--motion-std)}.track-row:hover .track-row-actions,.track-row.playing .track-row-actions{opacity:1}.tr-btn{width:30px;height:30px;min-width:30px;padding:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;background:color-mix(in oklab,var(--card-bg) 85%,white 15%);border:1px solid var(--line);color:var(--text);cursor:pointer;transition:background var(--motion-std),color var(--motion-std)}.tr-btn:hover{background:color-mix(in oklab,var(--primary) 14%,var(--card-bg))}.tr-btn.active{color:var(--primary);border-color:color-mix(in oklab,var(--primary) 50%,var(--line))}.tr-btn.play{background:var(--primary);color:#fff;border-color:var(--primary)}.tr-btn.play:hover{background:var(--primary-hover)}.tr-btn.danger:hover{color:var(--danger)}.tr-btn.fav.active{color:#f59e0b;border-color:color-mix(in oklab,#f59e0b 45%,var(--line));background:color-mix(in oklab,#f59e0b 12%,var(--card-bg))}.track-editor{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-top:8px;border-top:1px solid var(--line);margin-top:4px}.playlists-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px;margin-bottom:24px}.playlist-card{background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:transform var(--motion-std),box-shadow var(--motion-std)}.playlist-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0f172a1a}.playlist-card.selected{border-color:var(--primary);box-shadow:0 0 0 2px color-mix(in oklab,var(--primary) 30%,transparent)}.playlist-card-cover{width:100%;aspect-ratio:1;background:color-mix(in oklab,var(--primary) 14%,var(--card-bg));display:flex;align-items:center;justify-content:center;font-size:2.2rem;color:var(--primary)}.playlist-card-info{padding:10px 12px}.playlist-card-name{font-weight:600;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0 0 2px}.playlist-card-count{font-size:.75rem;color:var(--muted)}.playlist-card-actions{padding:0 8px 8px;display:flex;gap:4px;opacity:0;transition:opacity var(--motion-std)}.playlist-card:hover .playlist-card-actions{opacity:1}.playlist-create-row{display:flex;gap:8px;margin-bottom:20px}.playlist-create-row input{flex:1}.dropzone{border:2px dashed var(--line-strong);border-radius:var(--radius-lg);padding:52px 32px;text-align:center;cursor:pointer;transition:border-color var(--motion-std),background var(--motion-std);background:color-mix(in oklab,var(--card-bg) 80%,transparent);-webkit-user-select:none;user-select:none}.dropzone:hover,.dropzone.drag-over{border-color:var(--primary);background:color-mix(in oklab,var(--primary) 6%,var(--card-bg))}.dropzone-icon{font-size:2.8rem;margin-bottom:14px;display:block;line-height:1}.dropzone-title{font-size:1rem;font-weight:600;margin:0 0 6px}.dropzone-sub{color:var(--muted);font-size:.85rem;margin:0}.upload-queue{display:flex;flex-direction:column;gap:8px;margin-top:20px}.upload-queue-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius-md);font-size:.875rem}.upload-queue-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-queue-badge{font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:20px}.upload-queue-badge.success{color:var(--success);background:color-mix(in oklab,var(--success) 14%,var(--card-bg))}.upload-queue-badge.error{color:var(--danger);background:color-mix(in oklab,var(--danger) 14%,var(--card-bg))}.upload-queue-badge.pending{color:var(--muted);background:color-mix(in oklab,var(--muted) 14%,var(--card-bg))}.full-player-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:var(--z-overlay);display:flex;align-items:flex-end;justify-content:center;animation:fade-in .2s ease}.full-player{width:100%;max-width:480px;background:var(--card-bg);border:1px solid var(--line);border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:20px 24px 36px;display:flex;flex-direction:column;gap:20px;max-height:92vh;overflow-y:auto;animation:slide-up var(--motion-spring);position:relative}.full-player-handle{width:36px;height:4px;border-radius:2px;background:var(--line-strong);margin:0 auto;cursor:pointer;flex-shrink:0}.full-player-close{position:absolute;top:18px;right:18px;background:color-mix(in oklab,var(--card-bg) 80%,white 20%);border:1px solid var(--line);border-radius:50%;width:30px;height:30px;min-width:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.85rem;color:var(--muted);padding:0;transition:background var(--motion-std)}.full-player-close:hover{background:color-mix(in oklab,var(--card-bg) 60%,white 40%);color:var(--text)}.full-player-cover{width:190px;height:190px;border-radius:var(--radius-lg);background:color-mix(in oklab,var(--primary) 18%,var(--card-bg));display:flex;align-items:center;justify-content:center;font-size:4rem;margin:0 auto;color:var(--primary);flex-shrink:0;overflow:hidden;box-shadow:0 16px 40px #0f172a2e}.full-player-cover img{width:100%;height:100%;object-fit:cover}.full-player-info{text-align:center}.full-player-title{font-size:1.1rem;font-weight:700;margin:0 0 4px;letter-spacing:-.02em}.full-player-sub{font-size:.85rem;color:var(--muted);margin:0}.full-player-progress-area{display:flex;flex-direction:column;gap:6px}.full-player-progress{width:100%;accent-color:var(--primary)}.full-player-time-row{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted)}.full-player-controls{display:flex;align-items:center;justify-content:center;gap:10px}.fp-btn{width:38px;height:38px;min-width:38px;border-radius:50%;border:1px solid var(--line);background:color-mix(in oklab,var(--card-bg) 80%,white 20%);color:var(--text);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.95rem;padding:0;transition:background var(--motion-std),color var(--motion-std)}.fp-btn:hover{background:color-mix(in oklab,var(--primary) 14%,var(--card-bg))}.fp-btn.main{width:52px;height:52px;min-width:52px;background:var(--primary);color:#fff;border-color:var(--primary);font-size:1.15rem;box-shadow:0 6px 16px #1f6feb4d}.fp-btn.main:hover{background:var(--primary-hover)}.fp-btn:active{transform:none}.fp-btn.main:active{transform:scale(.96)}.fp-btn.active{color:var(--primary);background:color-mix(in oklab,var(--primary) 14%,var(--card-bg));border-color:color-mix(in oklab,var(--primary) 50%,var(--line))}.fp-waveform{height:54px;display:grid;grid-template-columns:repeat(40,minmax(0,1fr));gap:2px;align-items:end}.fp-wave-bar{width:100%;border-radius:3px;border:none;background:color-mix(in oklab,var(--line-strong) 70%,var(--card-bg));padding:0;cursor:pointer;transition:background .1s}.fp-wave-bar.active{background:color-mix(in oklab,var(--primary) 70%,white 30%)}.fp-wave-bar:hover{background:color-mix(in oklab,var(--primary) 50%,var(--card-bg))}.full-player-extras{display:flex;align-items:center;gap:8px;justify-content:center}.mini-player-cover{width:38px;height:38px;min-width:38px;border-radius:6px;background:color-mix(in oklab,var(--primary) 18%,var(--card-bg));display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--primary);overflow:hidden;flex-shrink:0}.mini-player-cover img{width:100%;height:100%;object-fit:cover;display:block}.mini-player-expand{padding:5px 8px;background:transparent;border:none;color:var(--muted);font-size:.78rem;cursor:pointer;border-radius:6px;transition:background var(--motion-std),color var(--motion-std);flex-shrink:0}.mini-player-expand:hover{background:color-mix(in oklab,var(--card-bg) 70%,white 30%);color:var(--text)}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg,var(--line) 25%,color-mix(in oklab,var(--line) 55%,white 45%) 50%,var(--line) 75%);background-size:200% 100%;animation:shimmer 1.6s infinite linear;border-radius:var(--radius-sm)}.empty-state-rich{display:flex;flex-direction:column;align-items:center;text-align:center;padding:52px 24px;gap:10px}.empty-state-icon{font-size:3.2rem;line-height:1;margin-bottom:4px}.empty-state-title{font-size:1.05rem;font-weight:700;margin:0}.empty-state-body{color:var(--muted);font-size:.875rem;margin:0;max-width:280px}.empty-state-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:8px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes page-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-enter{animation:page-enter .22s ease}@media (max-width: 900px){.app-sidebar{display:none}.app-content{margin-left:0;padding:16px 14px calc(var(--bottom-nav-h) + var(--player-h) + 18px)}.bottom-nav{display:flex}.mini-player{bottom:calc(var(--bottom-nav-h) + 6px);left:6px!important;right:6px;width:auto!important;transform:none!important}.stats-row{grid-template-columns:1fr 1fr}.playlists-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.full-player{max-width:100%}.track-row-actions{opacity:1}}@media (min-width: 901px){.mini-player{left:var(--sidebar-w)!important;right:0;bottom:10px;width:auto!important;transform:none!important;margin:0 14px}.full-player-overlay{align-items:center;justify-content:center;padding-left:var(--sidebar-w)}.full-player{border-radius:var(--radius-xl);max-height:82vh;padding:24px 28px 28px;max-width:420px;width:100%}}@media (max-width: 620px){.app-content{padding:12px 10px calc(var(--bottom-nav-h) + var(--player-h) + 14px)}.stats-row{grid-template-columns:1fr}.page-header{flex-direction:column}.page-header-actions{flex-direction:row;width:100%}.toolbar-v2{flex-wrap:wrap}.track-row{grid-template-columns:40px minmax(0,1fr) auto}.track-row-duration{display:none}.track-editor{grid-template-columns:1fr}}
