:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:#f7f7f8;--bg-elevated:#fff;--bg-surface:#ebebec;--bg-hover:#0000000a;--border:#d8d8d8;--text:#111;--text-muted:#666;--text-error:#d83232;--accent:#1a88ff;--accent-subtle:#1a88ff17;--accent-loop:#f59e0b;--accent-loop-subtle:#f59e0b1a;--beat-highlight:#000;--beat-paint-always:#18bb58;--beat-paint-always-forward:#0ea5e9;--beat-paint-always-backward:#9333ea;--beat-paint-never:#d83232;--beat-segment-favour:#0d9488;--beat-segment-avoid:#9a7b3a;--beat-loop-range:#7c3aed;--seekbar-bg:#d0d8e0;--seekbar-played-intro:#18bb58;--seekbar-played-loop:#1a88ff;--seekbar-played-outro:#e87700;--seekbar-idle-gradient:linear-gradient(90deg, var(--seekbar-played-intro), var(--seekbar-played-loop), var(--seekbar-played-outro), var(--seekbar-played-intro));--seekbar-stripe-loading:#b0bcc8;--seekbar-stripe-decode:#6898cc;--seekbar-stripe-server-download:#ffe600;--seekbar-stripe-pattern:#fff6;--seekbar-head-line:#141414b8;--seekbar-head-tail:#14141466;--seekbar-error-fill:#c97070;--seekbar-error-line:#ffffff59;--beat-cluster-0:#ef4444;--beat-cluster-1:#f59e0b;--beat-cluster-2:#eab308;--beat-cluster-3:#22c55e;--beat-cluster-4:#14b8a6;--beat-cluster-5:#3b82f6;--beat-cluster-6:#8b5cf6;--beat-cluster-7:#ec4899}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]):not([data-theme=dark]){--bg:#111;--bg-elevated:#1a1a1a;--bg-surface:#252525;--bg-hover:#ffffff0d;--border:#2e2e2e;--text:#fff;--text-muted:#888;--text-error:#ff6b6b;--accent:#6ab0ff;--accent-subtle:#6ab0ff1f;--accent-loop:#f59e0b;--accent-loop-subtle:#f59e0b1f;--beat-highlight:#fff;--beat-paint-always:#70e898;--beat-paint-always-forward:#67d3ff;--beat-paint-always-backward:#c89bff;--beat-paint-never:#ff6b6b;--beat-segment-favour:#2dd4bf;--beat-segment-avoid:#c0a368;--beat-loop-range:#a78bfa;--seekbar-bg:#222;--seekbar-played-intro:#70e898;--seekbar-played-loop:#6ab0ff;--seekbar-played-outro:#fc7;--seekbar-stripe-loading:#444;--seekbar-stripe-decode:#08f;--seekbar-stripe-server-download:#ffe600;--seekbar-stripe-pattern:#ffffff1f;--seekbar-head-line:#ffffffe6;--seekbar-head-tail:#fff9;--seekbar-error-fill:#8b3030;--seekbar-error-line:#ffffff26}}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f7f7f8;--bg-elevated:#fff;--bg-surface:#ebebec;--bg-hover:#0000000a;--border:#d8d8d8;--text:#111;--text-muted:#666;--text-error:#d83232;--accent:#1a88ff;--accent-subtle:#1a88ff17;--accent-loop:#f59e0b;--accent-loop-subtle:#f59e0b1a;--beat-highlight:#000;--beat-paint-always:#18bb58;--beat-paint-always-forward:#0ea5e9;--beat-paint-always-backward:#9333ea;--beat-paint-never:#d83232;--beat-segment-favour:#0d9488;--beat-segment-avoid:#9a7b3a;--beat-loop-range:#7c3aed;--seekbar-bg:#d0d8e0;--seekbar-played-intro:#18bb58;--seekbar-played-loop:#1a88ff;--seekbar-played-outro:#e87700;--seekbar-stripe-loading:#b0bcc8;--seekbar-stripe-decode:#6898cc;--seekbar-stripe-server-download:#ffe600;--seekbar-stripe-pattern:#fff6;--seekbar-head-line:#141414b8;--seekbar-head-tail:#14141466;--seekbar-error-fill:#c97070;--seekbar-error-line:#ffffff59}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#111;--bg-elevated:#1a1a1a;--bg-surface:#252525;--bg-hover:#ffffff0d;--border:#2e2e2e;--text:#fff;--text-muted:#888;--text-error:#ff6b6b;--accent:#6ab0ff;--accent-subtle:#6ab0ff1f;--accent-loop:#f59e0b;--accent-loop-subtle:#f59e0b1f;--beat-highlight:#fff;--beat-paint-always:#70e898;--beat-paint-always-forward:#67d3ff;--beat-paint-always-backward:#c89bff;--beat-paint-never:#ff6b6b;--beat-segment-favour:#2dd4bf;--beat-segment-avoid:#c0a368;--beat-loop-range:#a78bfa;--seekbar-bg:#222;--seekbar-played-intro:#70e898;--seekbar-played-loop:#6ab0ff;--seekbar-played-outro:#fc7;--seekbar-stripe-loading:#444;--seekbar-stripe-decode:#08f;--seekbar-stripe-server-download:#ffe600;--seekbar-stripe-pattern:#ffffff1f;--seekbar-head-line:#ffffffe6;--seekbar-head-tail:#fff9;--seekbar-error-fill:#8b3030;--seekbar-error-line:#ffffff26}html,body{height:100dvh;margin:0}body{background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Helvetica Neue,Arial,sans-serif}@keyframes lcs-spin{to{transform:rotate(360deg)}}.icon-btn{border-radius:6px;transition:background .12s,color .12s}.icon-btn:hover{background:var(--bg-hover)!important;color:var(--text)!important}.icon-btn:active{opacity:.6}@keyframes holdPinPop{0%{opacity:0;transform:translate(-50%, var(--hold-pin-shift,0)) scale(.6)}to{opacity:1;transform:translate(-50%, var(--hold-pin-shift,0)) scale(1)}}@keyframes skipTipAdvance{0%{opacity:.4;transform:translate(-2px)}55%{opacity:1;transform:translate(3px)}80%{opacity:0;transform:translate(6px)}80.01%{opacity:0;transform:translate(-2px)}to{opacity:.4;transform:translate(-2px)}}@keyframes skipBarPulse{0%,to{opacity:.5}60%{opacity:1}}.skip-finishing .skip-tip{animation:1.5s cubic-bezier(.5,0,.4,1) infinite skipTipAdvance}.skip-finishing .skip-bar{animation:1.5s ease-in-out infinite skipBarPulse}@media (prefers-reduced-motion:reduce){.skip-finishing .skip-tip,.skip-finishing .skip-bar{animation:none}}@keyframes loopUnsavedPing{0%{box-shadow:0 0 0 2px var(--bg-elevated), 0 0 0 0 #f59e0b8c}70%,to{box-shadow:0 0 0 2px var(--bg-elevated), 0 0 0 7px #f59e0b00}}.loop-unsaved-dot{background:var(--accent-loop);width:7px;height:7px;box-shadow:0 0 0 2px var(--bg-elevated);pointer-events:none;border-radius:50%;animation:1s ease-out 3 loopUnsavedPing;position:absolute;top:6px;right:6px}@media (prefers-reduced-motion:reduce){.loop-unsaved-dot{animation:none}}@keyframes probe-spin{to{transform:rotate(360deg)}}@keyframes probe-success-glow{0%{opacity:0}15%{opacity:1}85%{opacity:1}to{opacity:.6}}.probe-spinner{border:1.5px solid;border-right-color:#0000;border-radius:50%;flex-shrink:0;width:10px;height:10px;animation:.55s linear infinite probe-spin;display:inline-block}.probe-success-row{animation:.4s ease-out forwards probe-success-glow}.sort-bar{top:calc(var(--header-height,0px) - var(--header-offset,0px));background:var(--bg);z-index:1;box-shadow:0 4px 8px -4px var(--bg);align-items:center;gap:.5rem;padding:.5rem 0 .625rem;display:flex;position:sticky}.sort-bar--elevated{z-index:30}.sort-bar__label{color:var(--text-muted);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:.72rem;font-weight:600}.track-list__items{margin:0;padding:0;list-style:none}.track-list__empty{color:var(--text-muted);text-align:center;padding:2rem 0;font-size:.875rem}.track-row{border-bottom:1px solid var(--border);cursor:pointer;touch-action:manipulation;border-left:3px solid #0000;border-radius:4px;grid-template-columns:5.5ch 44px 1fr auto;align-items:center;gap:.625rem;min-height:44px;padding:.5rem .375rem;transition:background .1s;display:grid}.track-row:last-child{border-bottom:none}@media (hover:hover){.track-row:hover{background:var(--bg-hover)}}.track-row--playing{background:var(--accent-subtle);border-left-color:var(--accent);padding-left:.375rem}@media (hover:hover){.track-row--playing:hover{background:color-mix(in srgb, var(--accent) 20%, transparent)}}.track-row--unavailable{cursor:default}.track-row--unavailable .track-row__thumb,.track-row--unavailable .track-row__meta,.track-row--unavailable .track-row__duration{opacity:.45}@media (hover:hover){.track-row--unavailable:hover{background:0 0}}.track-row__position{font-variant-numeric:tabular-nums;color:var(--text-muted);text-align:right;white-space:nowrap;letter-spacing:-.01em;align-self:center;font-family:ui-monospace,SF Mono,Cascadia Mono,Consolas,monospace;font-size:.72rem;line-height:1}.track-row__thumb{flex-shrink:0;width:44px;height:44px}.track-row__art{object-fit:cover;border-radius:3px;width:44px;height:44px;display:block}.track-row__art-placeholder{background:var(--bg-surface);border-radius:3px;width:44px;height:44px;display:block}.track-row__meta{flex-direction:column;gap:.2rem;min-width:0;display:flex}.track-row__title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.875rem;font-weight:600;line-height:1.3;overflow:hidden}.track-row--playing .track-row__title{color:var(--accent)}.track-row__artist{color:var(--text);opacity:.75;white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;line-height:1.25;overflow:hidden}.track-row__album{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.72rem;font-style:italic;line-height:1.25;overflow:hidden}.track-row__duration{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;align-self:center;font-size:.775rem;line-height:1}mark.search-highlight{color:#1a1a1a;background:#ffeb3b;border-radius:2px;padding:0 1px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]):not([data-theme=dark]) mark.search-highlight{color:gold;background:#ffd60040}}[data-theme=dark] mark.search-highlight{color:gold;background:#ffd60040}.track-row--has-actions{grid-template-columns:5.5ch 44px 1fr auto auto}@media (hover:hover){.track-row__actions-btn:hover{background:var(--border)}}@media (width<=480px){.track-row{grid-template-columns:4.5ch 40px 1fr auto;gap:.5rem;min-height:52px;padding:.4rem .25rem}.track-row__thumb,.track-row__art,.track-row__art-placeholder{width:40px;height:40px}.track-row__title{font-size:.85rem}.track-row--has-actions{grid-template-columns:4.5ch 40px 1fr auto auto}}.bottom-sheet__backdrop{z-index:200;background:#00000073;animation:.18s ease-out bottom-sheet-fade;position:fixed;inset:0}.bottom-sheet__backdrop--closing{animation:.18s ease-in forwards bottom-sheet-fade-out}.bottom-sheet__panel{width:min(var(--content-max-width), calc(100vw - 2rem));box-sizing:border-box;background:var(--bg-elevated);border:1px solid var(--border);z-index:201;border-bottom:none;border-radius:12px 12px 0 0;max-height:80vh;padding:.75rem 1.25rem 1.5rem;animation:.22s cubic-bezier(.16,1,.3,1) bottom-sheet-up;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%)}.bottom-sheet__panel--closing{animation:.2s cubic-bezier(.4,0,1,1) forwards bottom-sheet-down}.bottom-sheet__header{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.5rem;display:flex}.bottom-sheet__title{color:var(--text);font-size:.95rem;font-weight:600;line-height:1.3}.bottom-sheet__subtitle{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:.2rem;font-size:.78rem;overflow:hidden}@keyframes bottom-sheet-up{0%{transform:translate(-50%,100%)}to{transform:translate(-50%)}}@keyframes bottom-sheet-down{0%{transform:translate(-50%)}to{transform:translate(-50%,100%)}}@keyframes bottom-sheet-fade{0%{opacity:0}to{opacity:1}}@keyframes bottom-sheet-fade-out{0%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.bottom-sheet__panel,.bottom-sheet__panel--closing,.bottom-sheet__backdrop,.bottom-sheet__backdrop--closing{animation:none}}
