:root{--bg: #0c0e10;--bg-card: #161a1e;--bg-row-hover: rgba(52, 211, 153, .06);--bg-row-selected: rgba(52, 211, 153, .14);--fg: #eaeaea;--fg-dim: rgba(234, 234, 234, .7);--accent: #34d399;--muted: rgba(234, 234, 234, .55);--border: rgba(234, 234, 234, .08);--error: #f87171}.player-shell{display:flex;flex-direction:column;height:100%;background:var(--bg);color:var(--fg);user-select:none;font-family:system-ui,-apple-system,Segoe UI,sans-serif;position:relative;overflow:hidden}.player-shell-drag{outline:2px dashed var(--accent);outline-offset:-8px}.player-shell-fullscreen .player-header,.player-shell-fullscreen .player-library,.player-shell-fullscreen .player-footer{display:none}.player-shell-fullscreen .player-vis-banner{height:auto;flex:1 1 auto;border-bottom:none}.player-shell-fullscreen .player-vis-title{font-size:2.4rem}.player-shell-fullscreen .player-vis-artist{font-size:1.2rem}.player-shell-canvas .player-footer{display:none}.player-shell-canvas .player-vis-banner{height:auto;flex:1 1 auto;border-bottom:none}.player-shell-canvas .player-transport{position:absolute;left:0;right:0;bottom:0;z-index:6;background:#161a1ed1;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(255,255,255,.06)}.player-header-view{appearance:none;border:1px solid var(--border);background:#ffffff0a;color:var(--fg);font:inherit;font-size:.9rem;padding:.32rem .7rem;border-radius:6px;cursor:pointer}.player-header-view:hover{background:#34d39924;border-color:#34d39966}.player-shell-fullscreen .player-transport{position:absolute;left:0;right:0;bottom:0;z-index:6;background:#161a1ec7;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(255,255,255,.06)}.player-shell-fullscreen .shell-canvas-scroll{scrollbar-width:none}.player-shell-fullscreen .shell-canvas-scroll::-webkit-scrollbar{width:0;height:0}.player-shell-idle{cursor:none}.player-shell-idle .player-transport{transform:translateY(110%);pointer-events:none}.player-transport{transition:transform .25s ease}.player-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1.2rem;border-bottom:1px solid var(--border)}.player-brand-row{display:flex;align-items:baseline;gap:.6rem}.player-brand{font-size:1.1rem;font-weight:800;letter-spacing:.3em;padding-left:.3em;color:var(--accent)}.player-tagline{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.player-search{flex:0 1 22rem;padding:.5rem .7rem;border:1px solid var(--border);background:var(--bg-card);color:var(--fg);border-radius:6px;font-size:.85rem;outline:none}.player-search:focus{border-color:var(--accent)}.player-vis-banner{position:relative;height:240px;flex:0 0 auto;border-bottom:1px solid var(--border);overflow:hidden;background:#000}.player-vis-wrap{position:absolute;inset:0}.player-vis-canvas{display:block;width:100%;height:100%}.player-vis-dim{position:absolute;inset:0;background:#000;pointer-events:none}.player-vis-overlay{position:absolute;left:1.4rem;bottom:1.1rem;z-index:5;pointer-events:none;text-shadow:0 2px 12px rgba(0,0,0,.8);opacity:0;transform:translateY(4px);transition:opacity .28s ease,transform .28s ease}.player-vis-overlay-shown{opacity:1;transform:translateY(0)}.player-vis-title{font-size:1.45rem;font-weight:700;color:var(--fg);letter-spacing:.01em}.player-vis-artist{font-size:.95rem;color:var(--accent);margin-top:.15rem;letter-spacing:.04em}.shell-canvas-scroll{position:absolute;inset:0;z-index:3;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 2rem;background:#08090e8c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);scrollbar-width:thin;scrollbar-color:rgba(52,211,153,.4) transparent;font-family:var(--lyric-font-family, "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif);font-weight:700;letter-spacing:-.01em;text-shadow:0 0 8px rgba(0,0,0,.6),0 2px 0 rgba(0,0,0,.8);font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1}.shell-canvas-scroll::-webkit-scrollbar{width:6px}.shell-canvas-scroll::-webkit-scrollbar-track{background:transparent}.shell-canvas-scroll::-webkit-scrollbar-thumb{background:#34d39966;border-radius:3px}.shell-canvas-scroll-pad{flex:0 0 50%;width:100%;pointer-events:none}.shell-canvas-scroll-pill{position:absolute;top:24px;right:24px;z-index:4;background:#0f1218d9;border:1px solid rgba(255,255,255,.14);color:#ffffffeb;padding:8px 16px;border-radius:999px;font-size:.85rem;font-weight:500;letter-spacing:.01em;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 6px 18px #00000059;opacity:0;animation:shell-canvas-scroll-pill-in .22s ease forwards;transition:background .12s ease,border-color .12s ease,transform .16s ease}.shell-canvas-scroll-pill:hover{background:#141820f2;border-color:#ffffff38;transform:translateY(-1px)}.shell-canvas-scroll-pill:active{transform:translateY(0)}.shell-canvas-scroll-line[data-section]:before{content:"";position:absolute;left:0;top:8%;bottom:8%;width:4px;border-radius:2px;pointer-events:none}.shell-canvas-scroll-line[data-section=unlabeled]:before{background:#94a3b873}.shell-canvas-scroll-line[data-section=verse]:before{background:#34d399}.shell-canvas-scroll-line[data-section=chorus]:before{background:#fbbf24}.shell-canvas-scroll-line[data-section=bridge]:before{background:#a78bfa}.shell-canvas-scroll-line[data-section=intro]:before{background:#94a3b8}.shell-canvas-scroll-line[data-section=outro]:before{background:#94a3b8}.shell-canvas-scroll-line-claimed{position:relative}.shell-canvas-scroll-line-claimed:after{content:"";position:absolute;right:0;top:6%;bottom:6%;width:4px;border-radius:2px;background:var(--singer-color, transparent);box-shadow:0 0 12px 1px color-mix(in oklab,var(--singer-color) 60%,transparent);pointer-events:none}.shell-canvas-scroll-line-claimed.shell-canvas-scroll-line-active:after{box-shadow:0 0 18px 2px color-mix(in oklab,var(--singer-color) 75%,transparent)}.shell-canvas-scroll-line-claimed.shell-canvas-scroll-line-active{background:linear-gradient(90deg,color-mix(in oklab,var(--singer-color) 22%,transparent) 0%,color-mix(in oklab,var(--singer-color) 8%,transparent) 55%,transparent 85%);border-radius:8px}.shell-canvas-countdown{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;gap:16px;pointer-events:none;z-index:5;font-size:28px;line-height:1;font-feature-settings:"tnum"}.shell-canvas-countdown-pip{color:#ffffffd9;text-shadow:0 0 8px rgba(255,255,255,.45),0 1px 0 rgba(0,0,0,.55);transition:opacity 60ms linear}@keyframes shell-canvas-scroll-pill-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.shell-canvas-scroll-line{width:100%;max-width:60ch;font-size:calc(2rem * var(--lyric-zoom, 1.4));font-weight:600;line-height:1.4;padding:calc(.45rem * var(--lyric-zoom, 1.4)) .5rem;position:relative;overflow-wrap:anywhere;color:#eaeaea8c;transition:color .22s ease,transform .22s ease,opacity .22s ease;text-shadow:0 2px 6px rgba(0,0,0,.55);cursor:pointer}.shell-canvas-scroll-break{width:100%;max-width:60ch;height:calc(1.4rem * var(--lyric-zoom, 1.4));pointer-events:none;flex:0 0 auto}.shell-canvas-scroll-line-past{color:#eaeaea33;text-shadow:none;font-weight:500}.shell-canvas-scroll-line-active{color:#fff;font-weight:700;transform:scale(1.04);text-shadow:0 2px 12px var(--lyric-glow-strong, rgba(52, 211, 153, .55)),0 0 24px var(--lyric-glow-soft, rgba(52, 211, 153, .25));position:relative}.shell-canvas-scroll-word{transition:color .12s ease,opacity .12s ease,text-shadow .16s ease,font-weight .12s ease}.shell-canvas-scroll-word-unsung{opacity:.45}.shell-canvas-scroll-word-sung{color:#fff;opacity:1}.shell-canvas-scroll-word-current{color:#fff;opacity:1;font-weight:800;text-shadow:0 2px 14px var(--lyric-current-strong, rgba(52, 211, 153, .85)),0 0 28px var(--lyric-current-soft, rgba(52, 211, 153, .45));display:inline-block;transform-origin:center center;background:linear-gradient(to right,var(--lyric-sweep-fill, rgba(52, 211, 153, 1)) 0%,var(--lyric-sweep-fill, rgba(52, 211, 153, 1)) var(--sweep-pct, 0%),#fff var(--sweep-pct, 0%),#fff 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;transition:none}.shell-canvas-scroll-word-sung{background:linear-gradient(to right,var(--lyric-sweep-fill, rgba(52, 211, 153, 1)) 0%,var(--lyric-sweep-fill, rgba(52, 211, 153, 1)) var(--sweep-pct, 100%),#fff var(--sweep-pct, 100%),#fff 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}@keyframes shell-canvas-bloom{0%{transform:scale(1);text-shadow:0 2px 14px var(--lyric-current-strong, rgba(52, 211, 153, .85)),0 0 28px var(--lyric-current-soft, rgba(52, 211, 153, .45))}25%{transform:scale(1.08);text-shadow:0 4px 22px var(--lyric-current-strong, rgba(52, 211, 153, 1)),0 0 56px var(--lyric-current-soft, rgba(52, 211, 153, .7)),0 0 8px #fff}to{transform:scale(1);text-shadow:0 2px 14px var(--lyric-current-strong, rgba(52, 211, 153, .85)),0 0 28px var(--lyric-current-soft, rgba(52, 211, 153, .45))}}.shell-canvas-scroll[data-lyric-motion=bloom] .shell-canvas-scroll-word-current,.shell-canvas-scroll[data-lyric-motion=full] .shell-canvas-scroll-word-current{animation:shell-canvas-bloom .32s ease-out 1}@keyframes shell-canvas-tilt{0%{transform:rotate(0)}35%{transform:rotate(-3deg)}70%{transform:rotate(2deg)}to{transform:rotate(0)}}.shell-canvas-scroll[data-lyric-motion=tilt] .shell-canvas-scroll-word-current.shell-canvas-scroll-word-held{animation:shell-canvas-tilt 1s ease-in-out 1}.shell-canvas-scroll[data-lyric-motion=full] .shell-canvas-scroll-word-current.shell-canvas-scroll-word-held{animation:shell-canvas-bloom .32s ease-out 1,shell-canvas-tilt 1s ease-in-out 1}.shell-canvas-scroll[data-lyric-style=emerald]{--lyric-glow-strong: rgba(52, 211, 153, .55);--lyric-glow-soft: rgba(52, 211, 153, .25);--lyric-current-strong: rgba(52, 211, 153, .85);--lyric-current-soft: rgba(52, 211, 153, .45);--lyric-sweep-fill: rgba(52, 211, 153, 1);--accent-h: 160}.shell-canvas-scroll[data-lyric-style=amber]{--lyric-glow-strong: rgba(255, 176, 32, .55);--lyric-glow-soft: rgba(255, 176, 32, .25);--lyric-current-strong: rgba(255, 176, 32, .85);--lyric-current-soft: rgba(255, 176, 32, .45);--lyric-sweep-fill: rgba(255, 176, 32, 1);--accent-h: 70}.shell-canvas-scroll[data-lyric-style=crystal]{--lyric-glow-strong: rgba(255, 255, 255, .42);--lyric-glow-soft: rgba(255, 255, 255, .18);--lyric-current-strong: rgba(255, 255, 255, .65);--lyric-current-soft: rgba(255, 255, 255, .32);--lyric-sweep-fill: rgba(255, 255, 255, 1);--accent-h: 0}.shell-canvas-scroll[data-lyric-style=neon]{--lyric-glow-strong: rgba(120, 205, 230, .34);--lyric-glow-soft: rgba(120, 205, 230, .15);--lyric-current-strong: rgba(255, 125, 178, .78);--lyric-current-soft: rgba(255, 125, 178, .4);--lyric-sweep-fill: rgba(255, 125, 178, .92);--accent-h: 340}.shell-canvas-scroll[data-lyric-style=mono]{--lyric-glow-strong: rgba(0, 0, 0, 0);--lyric-glow-soft: rgba(0, 0, 0, 0);--lyric-current-strong: rgba(0, 0, 0, 0);--lyric-current-soft: rgba(0, 0, 0, 0);--lyric-sweep-fill: rgba(255, 255, 255, 1);--accent-h: 0}.shell-canvas-scroll[data-lyric-style=plum]{--lyric-glow-strong: rgba(150, 110, 190, .45);--lyric-glow-soft: rgba(150, 110, 190, .22);--lyric-current-strong: rgba(198, 152, 226, .8);--lyric-current-soft: rgba(198, 152, 226, .42);--lyric-sweep-fill: rgba(198, 152, 226, .92);--accent-h: 300}.shell-canvas-scroll[data-lyric-style=rainbow]{--lyric-glow-strong: rgba(255, 255, 255, .3);--lyric-glow-soft: rgba(255, 255, 255, .14);--lyric-current-strong: rgba(255, 255, 255, .5);--lyric-current-soft: rgba(255, 255, 255, .22);--lyric-sweep-fill: rgba(255, 255, 255, 1);--accent-h: 0}@property --glow-alpha{syntax: "<number>"; inherits: true; initial-value: .45;}@property --hue-spin{syntax: "<angle>"; inherits: true; initial-value: 0deg;}@keyframes shell-canvas-glow-breathe{0%{--glow-alpha: .35}50%{--glow-alpha: .8}to{--glow-alpha: .35}}.shell-canvas-scroll[data-lyric-motion=glow] .shell-canvas-scroll-line-active{animation:shell-canvas-glow-breathe 2.2s ease-in-out infinite;text-shadow:0 0 calc(8px * var(--glow-alpha, .45)) var(--lyric-current-strong),0 0 calc(24px * var(--glow-alpha, .45)) var(--lyric-current-soft),0 0 calc(48px * var(--glow-alpha, .45)) var(--lyric-glow-soft)}@keyframes shell-canvas-wave-bob{0%{transform:translateY(0)}50%{transform:translateY(calc(-4px - 2px * (1 / (1 + var(--wave-dist, 0)))))}to{transform:translateY(0)}}.shell-canvas-scroll[data-lyric-motion=wave] .shell-canvas-scroll-line{--wave-dist: max(0, calc(var(--li, 0) - var(--active-li, 0)));animation:shell-canvas-wave-bob 1.4s ease-in-out infinite;animation-delay:calc(var(--wave-dist) * 60ms);will-change:transform}.shell-canvas-scroll[data-lyric-motion=wave] .shell-canvas-scroll-line-past{animation:none}@keyframes shell-canvas-rainbow-spin{0%{filter:hue-rotate(0deg)}to{filter:hue-rotate(360deg)}}.shell-canvas-scroll[data-lyric-style=rainbow] .shell-canvas-scroll-word-current,.shell-canvas-scroll[data-lyric-style=rainbow] .shell-canvas-scroll-word-sung{background:linear-gradient(to right,oklch(78% .14 var(--word-hue, 0)) 0%,oklch(78% .14 var(--word-hue, 0)) var(--sweep-pct, 0%),#fff var(--sweep-pct, 0%),#fff 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.shell-canvas-scroll[data-lyric-style=rainbow] .shell-canvas-scroll-line-active{animation:shell-canvas-rainbow-spin 12s linear infinite}.shell-canvas-scroll[data-lyric-display-mode=focus] .shell-canvas-scroll-line{transition:filter .28s ease,transform .28s ease,opacity .28s ease;filter:blur(min(8px,calc(2px*max(1,calc(var(--li, 0) - var(--active-li, 0)) * (var(--li, 0) - var(--active-li, 0))))));transform:scale(.94);opacity:.55}.shell-canvas-scroll[data-lyric-display-mode=focus] .shell-canvas-scroll-line-active{filter:blur(0);transform:scale(1);opacity:1}.shell-canvas-scroll[data-lyric-display-mode=focus] .shell-canvas-scroll-line-active+.shell-canvas-scroll-line{filter:blur(2px);transform:scale(.96);opacity:.78}@keyframes shell-canvas-weight-pump{0%{font-weight:400;font-variation-settings:"wght" 400}35%{font-weight:900;font-variation-settings:"wght" 900}to{font-weight:700;font-variation-settings:"wght" 700}}.shell-canvas-scroll[data-lyric-motion=weight] .shell-canvas-scroll-word-current{animation:shell-canvas-weight-pump .48s ease-out 1}@media (prefers-reduced-motion: reduce){.shell-canvas-scroll[data-lyric-motion=bloom] .shell-canvas-scroll-word-current,.shell-canvas-scroll[data-lyric-motion=tilt] .shell-canvas-scroll-word-current,.shell-canvas-scroll[data-lyric-motion=full] .shell-canvas-scroll-word-current,.shell-canvas-scroll[data-lyric-motion=glow] .shell-canvas-scroll-line-active,.shell-canvas-scroll[data-lyric-motion=wave] .shell-canvas-scroll-line,.shell-canvas-scroll[data-lyric-style=rainbow] .shell-canvas-scroll-line-active,.shell-canvas-scroll[data-lyric-motion=weight] .shell-canvas-scroll-word-current{animation:none}.shell-canvas-scroll[data-lyric-display-mode=focus] .shell-canvas-scroll-line{filter:none;transform:none;opacity:1}}.player-library{flex:1 1 auto;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(52,211,153,.4) transparent}.player-library::-webkit-scrollbar{width:8px;height:8px}.player-library::-webkit-scrollbar-track{background:transparent}.player-library::-webkit-scrollbar-thumb{background:#34d39959;border-radius:4px}.player-library::-webkit-scrollbar-thumb:hover{background:#34d3998c}.player-library::-webkit-scrollbar-corner{background:transparent}.player-vis-resizer{flex:0 0 auto;height:6px;cursor:ns-resize;position:relative;background:transparent;z-index:4}.player-vis-resizer:after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;margin-top:-.5px;background:var(--border);transition:background .12s ease,height .12s ease}.player-vis-resizer:hover:after,.player-vis-resizer:active:after{background:var(--accent);height:2px;margin-top:-1px}.player-vis-resizer-vertical{height:auto;width:6px;align-self:stretch;cursor:ew-resize}.player-vis-resizer-vertical:after{inset:0 auto 0 50%;width:1px;height:100%;margin-top:0;margin-left:-.5px;transition:background .12s ease,width .12s ease}.player-vis-resizer-vertical:hover:after,.player-vis-resizer-vertical:active:after{width:2px;height:100%;margin-top:0;margin-left:-1px}.player-split{display:flex;flex:1 1 auto;flex-direction:row;min-height:0;overflow:hidden}.player-split .player-library{height:auto;min-height:0;border-right:1px solid var(--border)}.player-split .player-vis-banner{flex:1 1 auto;height:auto;border-bottom:none}.player-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:16rem;color:var(--muted);text-align:center}.player-empty-title{font-size:1.1rem;font-weight:600;color:var(--fg-dim);margin-bottom:.4rem}.player-empty-hint{font-size:.85rem}.player-table{width:100%;border-collapse:collapse;font-size:.88rem}.player-table thead{position:sticky;top:0;background:var(--bg);z-index:1;box-shadow:0 1px 0 var(--border)}.player-th{text-align:left;padding:.6rem .8rem;font-weight:500;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);cursor:pointer;user-select:none;white-space:nowrap}.player-th:hover{color:var(--fg-dim)}.player-th-active{color:var(--accent)}.player-th-right{text-align:right}.player-th-arrow{display:inline-block;width:.9em;text-align:center;margin-left:.25em;font-variant-numeric:tabular-nums}.player-row{cursor:pointer;transition:background 80ms ease}.player-row:hover{background:var(--bg-row-hover)}.player-row-selected{background:var(--bg-row-selected)}.player-row-playing .player-cell-title{color:var(--accent)}.player-row td{padding:.55rem .8rem;border-top:1px solid var(--border);vertical-align:middle;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:0}.player-cell-title{font-weight:500;color:var(--fg)}.player-cell-title-row{display:flex;align-items:center;gap:.6rem;min-width:0}.player-cell-title-row>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.player-row-thumb{width:36px;height:36px;border-radius:4px;flex:0 0 auto;object-fit:cover;background:var(--bg);border:1px solid var(--border)}.player-row-thumb-empty{display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem;color:var(--fg-dim);background:linear-gradient(135deg,#1a1f24,#0f1418)}.player-table-card .player-row td{padding:.7rem .9rem;border-top:1px solid var(--border)}.player-table-card .player-row-thumb{width:48px;height:48px}.player-table-card .player-cell-title-row{gap:.85rem;align-items:center}.player-cell-stack{display:flex;flex-direction:column;min-width:0;gap:.1rem;flex:1 1 auto}.player-cell-stack-title{color:var(--fg);font-weight:600;font-size:.92rem;line-height:1.25;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.player-cell-stack-artist{color:var(--fg-dim);font-size:.78rem;line-height:1.25;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.player-table-card .player-cell-num{vertical-align:middle;white-space:nowrap;color:var(--fg-dim)}.player-cell-num{text-align:right;font-variant-numeric:tabular-nums;color:var(--fg-dim);width:6rem}.player-footer{display:flex;align-items:center;justify-content:space-between;padding:.4rem 1.2rem;border-top:1px solid var(--border);font-size:.75rem;color:var(--muted)}.player-footer-now{display:inline-flex;align-items:center;gap:.35rem;color:var(--fg-dim)}.player-footer-now-dot{color:var(--accent)}.player-footer-now-title{color:var(--fg);font-weight:500}.player-footer-now-artist{color:var(--accent)}.player-footer-now-status{color:var(--muted)}.player-transport{display:flex;align-items:center;gap:1rem;padding:.7rem 1.2rem;border-top:1px solid var(--border);background:var(--bg-card)}.player-transport-skip{width:2.2rem;height:2.2rem;background:transparent;border:none;color:var(--fg-dim);cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:6px;transition:color .1s ease,background .1s ease}.player-transport-skip:hover:not(:disabled){color:var(--fg);background:#ffffff0f}.player-transport-skip:disabled{opacity:.3;cursor:not-allowed}.player-transport-play{width:2.6rem;height:2.6rem;border-radius:50%;background:var(--accent);color:#042f1f;border:none;font-size:.9rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.player-transport-play:hover:not(:disabled){background:#2cb98a}.player-transport-play:disabled{background:#34d39940;color:#042f1f80;cursor:not-allowed}.player-transport-time{flex:1 1 auto;display:flex;align-items:center;gap:.6rem}.player-transport-time-num{font-variant-numeric:tabular-nums;font-size:.78rem;color:var(--fg-dim);min-width:3rem;text-align:center}.player-transport-scrub{flex:1 1 auto;height:4px;appearance:none;background:var(--border);border-radius:2px;outline:none;cursor:pointer}.player-transport-scrub::-webkit-slider-thumb{appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent);cursor:pointer}.player-transport-scrub:disabled{opacity:.4;cursor:not-allowed}.player-transport-queue{position:relative;background:transparent;border:1px solid var(--border);color:var(--fg-dim);width:2.2rem;height:2.2rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.05rem}.player-transport-queue:hover{color:var(--fg);background:#ffffff0a}.player-transport-queue-open{background:#34d3992e;border-color:var(--accent);color:var(--accent)}.player-transport-queue-badge{position:absolute;top:-4px;right:-4px;min-width:1.1rem;height:1.1rem;padding:0 .25rem;border-radius:999px;background:var(--accent);color:#042f1f;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.player-transport-mic{background:transparent;border:1px solid var(--border);color:var(--fg);width:2.2rem;height:2.2rem;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.95rem}.player-transport-mic:disabled{opacity:.35;cursor:not-allowed}.player-transport-mic-on{background:var(--accent);border-color:var(--accent);color:#042f1f;box-shadow:0 2px 8px #34d39959}.player-transport-mic:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.player-transport-mic-on:hover:not(:disabled){color:#042f1f}.player-transport-volume{display:flex;align-items:center;gap:.35rem}.player-transport-mute{background:transparent;border:none;color:var(--fg-dim);cursor:pointer;font-size:.95rem;padding:.2rem .4rem}.player-transport-volume-slider{width:5rem;height:4px;appearance:none;background:var(--border);border-radius:2px;outline:none;cursor:pointer}.player-transport-volume-slider::-webkit-slider-thumb{appearance:none;width:10px;height:10px;border-radius:50%;background:var(--fg-dim);cursor:pointer}.player-transport-icon{background:transparent;border:1px solid var(--border);color:var(--fg-dim);height:2.2rem;min-width:2.2rem;padding:0 .5rem;border-radius:6px;cursor:pointer;font:inherit;font-size:.85rem;display:flex;align-items:center;justify-content:center}.player-transport-icon:hover{color:var(--fg);background:#ffffff0a}.player-transport-icon-on{background:#34d3992e;border-color:var(--accent);color:var(--accent)}.player-transport-lyrics-size{display:flex;align-items:center;gap:2px}.player-transport-lyric-pct{background:transparent;border:1px solid var(--border);border-left:none;border-right:none;color:var(--fg-dim);height:2.2rem;min-width:3rem;padding:0 .4rem;cursor:pointer;font:inherit;font-size:.78rem;font-variant-numeric:tabular-nums}.player-transport-lyric-pct:hover{color:var(--fg);background:#ffffff0a}.player-transport-lyrics-size .player-transport-icon{font-weight:600}.player-transport-lyrics-size .player-transport-icon:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.player-transport-lyrics-size .player-transport-icon:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.player-upnext{position:absolute;top:0;right:0;bottom:0;width:22rem;max-width:80vw;background:var(--bg-card);border-left:1px solid var(--border);display:flex;flex-direction:column;box-shadow:-8px 0 24px #0006;z-index:5}.player-upnext-header{display:flex;align-items:center;gap:.6rem;padding:.7rem .9rem;border-bottom:1px solid var(--border)}.player-upnext-title{font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fg);flex:0 0 auto}.player-upnext-count{font-size:.72rem;color:var(--muted);flex:1 1 auto}.player-upnext-clear{background:transparent;border:1px solid var(--border);color:var(--fg-dim);padding:.2rem .55rem;border-radius:4px;font-size:.72rem;cursor:pointer}.player-upnext-clear:hover:not(:disabled){color:var(--fg);border-color:var(--fg-dim)}.player-upnext-clear:disabled{opacity:.35;cursor:not-allowed}.player-upnext-close{background:transparent;border:none;color:var(--muted);font-size:1.2rem;cursor:pointer;padding:0 .2rem}.player-upnext-close:hover{color:var(--fg)}.player-upnext-empty{padding:2rem 1rem;text-align:center;color:var(--muted);font-size:.85rem}.player-upnext-hint{margin-top:.4rem;font-size:.75rem;color:var(--muted)}.player-upnext-list{list-style:none;margin:0;padding:.3rem 0;flex:1 1 auto;overflow-y:auto}.player-upnext-row{display:grid;grid-template-columns:1.6rem 1fr 1.4rem;align-items:center;gap:.5rem;padding:.45rem .9rem;font-size:.85rem;border-bottom:1px solid rgba(234,234,234,.04)}.player-upnext-row:hover{background:#ffffff08}.player-upnext-row-num{text-align:right;font-variant-numeric:tabular-nums;font-size:.75rem;color:var(--muted)}.player-upnext-row-text{min-width:0}.player-upnext-row-title{color:var(--fg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-upnext-row-artist{color:var(--accent);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-upnext-row-remove{background:transparent;border:none;color:var(--muted);font-size:1rem;cursor:pointer;padding:.15rem .3rem;border-radius:3px;opacity:0;transition:opacity .1s ease,color .1s ease,background .1s ease}.player-upnext-row:hover .player-upnext-row-remove{opacity:1}.player-upnext-row-remove:hover{color:var(--error);background:#f8717114}.player-ctxmenu{position:fixed;z-index:20;min-width:12rem;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 24px #00000073;padding:.25rem 0;font-size:.85rem}.player-ctxmenu-item{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--fg);padding:.45rem .9rem;cursor:pointer;font:inherit}.player-ctxmenu-item:hover:not(:disabled){background:#34d39924;color:var(--accent)}.player-ctxmenu-item:disabled{opacity:.4;cursor:not-allowed}.player-ctxmenu-item-danger{color:var(--error)}.player-ctxmenu-item-danger:hover:not(:disabled){background:#f871711f;color:var(--error)}.player-ctxmenu-sep{height:1px;background:var(--border);margin:.25rem 0}.player-ctxmenu-item-toggle{display:flex;align-items:center;gap:.5rem}.player-ctxmenu-item-check{flex:0 0 auto;width:1.1em;text-align:center;color:var(--accent);font-weight:700}.player-ctxmenu-submenu-anchor{position:relative}.player-ctxmenu-item-submenu{display:flex;align-items:center;gap:.5rem}.player-ctxmenu-item-label{flex:1 1 auto;text-align:left}.player-ctxmenu-item-hint{flex:0 0 auto;color:var(--muted);font-size:.78rem;letter-spacing:.01em;margin-right:.1rem}.player-ctxmenu-item-chevron{flex:0 0 auto;color:var(--muted);font-size:1rem;line-height:1}.player-ctxmenu-item-submenu-open{background:#34d3991a}.player-ctxmenu-item-submenu-open .player-ctxmenu-item-chevron{color:var(--accent)}.player-ctxmenu-slider{padding:.5rem .85rem .55rem;min-width:14rem}.player-ctxmenu-slider-row{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.35rem}.player-ctxmenu-slider-label{flex:1 1 auto;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.player-ctxmenu-slider-value{flex:0 0 auto;font-variant-numeric:tabular-nums;font-size:.82rem;color:var(--fg)}.player-ctxmenu-slider-reset{flex:0 0 auto;background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;font-size:.75rem;padding:0;letter-spacing:.02em}.player-ctxmenu-slider-reset:hover:not(:disabled){text-decoration:underline}.player-ctxmenu-slider-reset:disabled{opacity:.3;cursor:not-allowed}.player-ctxmenu-slider-input{-webkit-appearance:none;appearance:none;width:100%;height:4px;background:#eaeaea24;border-radius:2px;outline:none;cursor:pointer}.player-ctxmenu-slider-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);box-shadow:0 0 0 1px #34d3994d;cursor:grab;transition:transform 80ms ease,box-shadow .12s ease}.player-ctxmenu-slider-input::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 0 0 3px #34d39940}.player-ctxmenu-slider-input::-webkit-slider-thumb:active{cursor:grabbing}.player-ctxmenu-slider-input::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);cursor:grab}.player-ctxmenu-slider-input:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.player-splash{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#08090eeb;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);user-select:none}.player-splash-card{width:min(28rem,90vw);padding:1.6rem 1.8rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 48px #00000080;display:flex;flex-direction:column;gap:.6rem}.player-splash-brand{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.4rem}.player-splash-title{font-size:1.05rem;font-weight:600;color:var(--fg)}.player-splash-current{font-size:.85rem;color:var(--fg-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:1.2em}.player-splash-bar{width:100%;height:6px;background:#eaeaea1a;border-radius:3px;overflow:hidden;margin-top:.2rem}.player-splash-bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .18s ease}.player-splash-bar-indeterminate{width:30%;background:var(--accent);animation:player-splash-bar-slide 1.4s ease-in-out infinite}@keyframes player-splash-bar-slide{0%{transform:translate(-100%)}to{transform:translate(360%)}}.player-splash-errors{font-size:.78rem;color:var(--error);margin-top:.3rem}.player-splash-song .player-splash-card{align-items:center;text-align:center}.player-splash-cover{width:128px;height:128px;border-radius:8px;object-fit:cover;margin:0 auto .4rem;border:1px solid var(--border);box-shadow:0 6px 20px #0006}.player-empty-overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;background:#08090ed9;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.player-empty-card{width:min(32rem,90vw);padding:2rem 2.2rem;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;gap:.7rem}.player-empty-card .player-empty-hint{font-size:.92rem;color:var(--fg-dim);line-height:1.5}.player-empty-card code{background:#ffffff0f;padding:0 .3rem;border-radius:3px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.85em}.player-dropzone{cursor:pointer}.player-dropzone-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.player-dropzone .player-empty-card{align-items:center;text-align:center;border-style:dashed;border-color:#ffffff2e;transition:border-color .12s ease,background .12s ease,transform .12s ease}.player-dropzone:hover .player-empty-card{border-color:#34d39973}.player-dropzone.is-drag .player-empty-card{border-color:#34d399d9;background:#34d39914;transform:scale(1.01)}.player-dropzone-cue{font-size:.95rem;color:var(--fg-dim);letter-spacing:.02em}.player-empty-actions{display:flex;gap:.6rem;margin-top:.6rem}.player-empty-btn{flex:1 1 auto;background:transparent;color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:.55rem .9rem;font-size:.88rem;font:inherit;font-weight:500;cursor:pointer;transition:background .1s ease,border-color .1s ease}.player-empty-btn:hover{background:#ffffff0a;border-color:#ffffff2e}.player-empty-btn-primary{background:var(--accent);border-color:var(--accent);color:#042f1f;font-weight:600}.player-empty-btn-primary:hover{background:#2cb98a;border-color:#2cb98a}.player-toast{position:fixed;left:50%;bottom:1.6rem;transform:translate(-50%);padding:.6rem 1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:6px;font-size:.85rem;color:var(--fg);box-shadow:0 4px 16px #0006;z-index:10}@media (max-width: 700px){.player-header{flex-direction:column;align-items:stretch;gap:.55rem;padding:.7rem .9rem}.player-brand-row{justify-content:flex-start}.player-brand{font-size:1rem;letter-spacing:.25em}.player-search{flex:1 1 auto;width:100%;font-size:.95rem;padding:.55rem .7rem}.player-vis-banner{height:55vh!important;min-height:240px}.player-vis-overlay{left:.9rem;bottom:.7rem}.player-vis-title{font-size:1.05rem}.player-vis-artist{font-size:.78rem}.shell-canvas-scroll{padding:0 .7rem}.shell-canvas-scroll-line{font-size:calc(1.5rem * var(--lyric-zoom, 1.4));line-height:1.3;padding:calc(.3rem * var(--lyric-zoom, 1.4)) .3rem}.shell-canvas-scroll-pill{top:12px;right:12px;padding:6px 12px;font-size:.78rem}.player-vis-resizer,.player-vis-resizer-vertical{display:none}.player-table{font-size:.92rem}.player-table thead{display:none}.player-table tr{display:grid;grid-template-columns:1fr auto;gap:.4rem;align-items:center;padding:.55rem .9rem;border-top:1px solid var(--border)}.player-table td{border-top:none!important;padding:0!important;max-width:none!important;white-space:normal}.player-table .player-cell-title{grid-column:1;overflow:hidden}.player-table .player-cell-num{grid-column:2;text-align:right;font-size:.78rem;color:var(--muted)}.player-table .player-row td:nth-child(2),.player-table .player-row td:nth-child(3),.player-table .player-row td:nth-child(4),.player-table .player-row td:nth-child(6){display:none}.player-cell-title-row{gap:.7rem}.player-row-thumb{width:44px;height:44px}.player-cell-title-row>span{font-size:.95rem;line-height:1.25;white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.player-footer{display:none}.player-transport{gap:.5rem;padding:.55rem .7rem;flex-wrap:nowrap}.player-transport-skip,.player-transport-queue,.player-transport-mic,.player-transport-icon{width:2.6rem;height:2.6rem;min-width:2.6rem;font-size:1.1rem}.player-transport-play{width:3rem;height:3rem;font-size:1rem}.player-transport-time{gap:.4rem;min-width:0}.player-transport-time-num{font-size:.7rem;min-width:2.4rem}.player-transport-volume-slider{display:none}.player-transport-mute{width:2.6rem;height:2.6rem;display:flex;align-items:center;justify-content:center;font-size:1.1rem}.player-transport-lyric-pct{height:2.6rem;min-width:2.4rem;font-size:.7rem}.player-upnext{width:100vw;max-width:100vw;border-left:none}.player-upnext-row{padding:.7rem .9rem;font-size:.95rem}.player-upnext-row-remove{opacity:1;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.player-empty-btn{padding:.75rem 1rem;font-size:.95rem}.player-toast{bottom:5.5rem;max-width:calc(100vw - 1.6rem);text-align:center}}@media (max-width: 380px){.player-header{padding:.55rem .7rem}.player-vis-banner{height:50vh!important}.shell-canvas-scroll-line{font-size:calc(1.35rem * var(--lyric-zoom, 1.4))}.player-transport-lyrics-size{display:none}}.m-shell{display:flex;flex-direction:column;height:100dvh;min-height:100dvh;background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,sans-serif;overscroll-behavior:none;position:relative}.m-library,.m-sheet-body,.m-nowplaying-surface .shell-canvas-scroll{overscroll-behavior:contain}@media (prefers-reduced-motion: reduce){.m-shell *,.m-shell *:before,.m-shell *:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.m-shell,.m-shell *{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.m-library{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding-top:env(safe-area-inset-top,0)}.m-library-with-minibar{padding-bottom:calc(76px + env(safe-area-inset-bottom,0))}.m-library-header{display:flex;flex-direction:column;gap:.55rem;padding:.9rem 1rem .6rem;position:sticky;top:0;z-index:2;background:var(--bg);border-bottom:1px solid transparent}.m-library-brand{display:flex;align-items:baseline;gap:.55rem}.m-library-brand-name{font-size:1rem;font-weight:800;letter-spacing:.3em;color:var(--accent)}.m-library-brand-tag{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.m-library-search{width:100%;font-size:1rem;padding:.7rem .9rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;color:var(--fg);outline:none}.m-library-search:focus{border-color:var(--accent)}.m-library-empty{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);padding:4rem 2rem;text-align:center}.m-library-empty-title{font-size:1.05rem;color:var(--fg-dim)}.m-library-list{list-style:none;margin:0;padding:0}.m-card{display:flex;align-items:center;gap:.85rem;padding:.65rem 1rem;border-bottom:1px solid rgba(234,234,234,.04);cursor:pointer;user-select:none;touch-action:manipulation}.m-card:active{background:#ffffff0a}.m-card-playing{background:#34d3990f}.m-card-playing .m-card-title{color:var(--accent)}.m-card-thumb{width:56px;height:56px;border-radius:6px;flex:0 0 auto;background:linear-gradient(135deg,#1a1f24,#0f1418);display:flex;align-items:center;justify-content:center;color:var(--fg-dim);font-weight:700;font-size:1.4rem;overflow:hidden;border:1px solid var(--border)}.m-card-thumb img{width:100%;height:100%;object-fit:cover;display:block}.m-card-text{flex:1 1 auto;min-width:0}.m-card-title{color:var(--fg);font-size:1rem;font-weight:500;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-card-meta{color:var(--muted);font-size:.8rem;line-height:1.2;margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-card-duration{flex:0 0 auto;color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums}.m-minibar{position:fixed;left:0;right:0;bottom:env(safe-area-inset-bottom,0);z-index:30;display:flex;align-items:center;gap:.7rem;padding:.55rem .7rem;background:#161a1eeb;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border);cursor:pointer;user-select:none}.m-minibar:active{background:#1c2024f2}.m-minibar-progress{position:absolute;left:0;right:0;top:0;height:2px;background:var(--accent);transform-origin:0 0;transition:transform .25s ease}.m-minibar-thumb{width:44px;height:44px;border-radius:5px;overflow:hidden;flex:0 0 auto;background:linear-gradient(135deg,#1a1f24,#0f1418);display:flex;align-items:center;justify-content:center;color:var(--fg-dim);font-weight:700;border:1px solid var(--border)}.m-minibar-thumb img{width:100%;height:100%;object-fit:cover}.m-minibar-text{flex:1 1 auto;min-width:0}.m-minibar-title{color:var(--fg);font-size:.92rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-minibar-artist{color:var(--muted);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-minibar-btn{flex:0 0 auto;width:44px;height:44px;background:transparent;border:none;color:var(--fg);font-size:1.1rem;cursor:pointer;border-radius:8px}.m-minibar-btn:active{background:#ffffff0f}.m-minibar-btn:disabled{opacity:.35;cursor:not-allowed}.m-nowplaying{position:fixed;inset:0;z-index:40;background:var(--bg);display:flex;flex-direction:column;transform:translateY(100%);transition:transform .32s cubic-bezier(.4,0,.2,1);pointer-events:none;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}.m-nowplaying-open{transform:translateY(0);pointer-events:auto}.m-nowplaying-surface{position:relative;flex:1 1 auto;overflow:hidden;min-height:0}.m-nowplaying-meta{position:absolute;left:1.2rem;right:1.2rem;bottom:1.2rem;z-index:4;text-shadow:0 2px 12px rgba(0,0,0,.7);pointer-events:none}.m-nowplaying-title{color:var(--fg);font-size:1.5rem;font-weight:700;letter-spacing:.005em;line-height:1.2}.m-nowplaying-artist{color:var(--accent);font-size:1rem;margin-top:.2rem;letter-spacing:.04em}.m-nowplaying-album{color:var(--fg-dim);font-size:.85rem;margin-top:.1rem}.m-nowplaying-top{position:absolute;left:0;right:0;top:env(safe-area-inset-top,0);z-index:5;display:flex;align-items:center;gap:.55rem;padding:.65rem .7rem;background:linear-gradient(to bottom,#0c0e10d9,#0c0e1000);pointer-events:auto;transition:opacity .28s ease}.m-nowplaying-top-text{flex:1 1 auto;min-width:0;text-align:center}.m-nowplaying-top-title{color:var(--fg);font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-nowplaying-top-artist{color:var(--muted);font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-nowplaying-icon{flex:0 0 auto;width:44px;height:44px;background:#ffffff0f;border:none;border-radius:50%;color:var(--fg);font-size:1.5rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s ease}.m-nowplaying-icon:active{background:#ffffff1f}.m-nowplaying-bottom{position:absolute;left:0;right:0;bottom:env(safe-area-inset-bottom,0);z-index:5;background:linear-gradient(to top,#0c0e10eb,#0c0e1099 80%,#0c0e1000);padding:.7rem 1rem 1rem;display:flex;flex-direction:column;gap:.6rem;transition:opacity .32s ease,transform .32s ease}.m-nowplaying-idle .m-nowplaying-top,.m-nowplaying-idle .m-nowplaying-bottom{opacity:0;pointer-events:none}.m-nowplaying-scrub-row{display:flex;align-items:center;gap:.6rem}.m-nowplaying-time{flex:0 0 auto;font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums;min-width:2.4rem;text-align:center}.m-nowplaying-scrub{flex:1 1 auto;height:6px;appearance:none;background:#eaeaea2e;border-radius:3px;outline:none}.m-nowplaying-scrub::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:50%;background:var(--fg);border:2px solid var(--accent);box-shadow:0 2px 8px #00000059;cursor:pointer}.m-nowplaying-scrub::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--fg);border:2px solid var(--accent);cursor:pointer}.m-nowplaying-transport{display:flex;align-items:center;justify-content:center;gap:2rem}.m-nowplaying-mode-btn{flex:0 0 auto;width:44px;height:44px;background:transparent;border:1px solid var(--border);border-radius:50%;color:var(--fg-dim);cursor:pointer;display:flex;align-items:center;justify-content:center;position:relative;transition:background .12s ease,color .12s ease,border-color .12s ease}.m-nowplaying-mode-btn:active{background:#ffffff0f}.m-nowplaying-mode-btn-on{background:#34d3992e;border-color:var(--accent);color:var(--accent)}.m-nowplaying-skip{flex:0 0 auto;width:56px;height:56px;background:transparent;border:none;color:var(--fg);font-size:1.4rem;cursor:pointer;border-radius:50%;display:flex;align-items:center;justify-content:center}.m-nowplaying-skip:active:not(:disabled){background:#ffffff0f}.m-nowplaying-skip:disabled{opacity:.3;cursor:not-allowed}.m-nowplaying-play{flex:0 0 auto;width:72px;height:72px;border-radius:50%;background:var(--accent);color:#042f1f;border:none;font-size:1.5rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px #34d39966;transition:transform 80ms ease,background .12s ease}.m-nowplaying-play:active{transform:scale(.92);background:#2cb98a}.m-nowplaying-skip:active:not(:disabled),.m-nowplaying-mode-btn:active:not(:disabled),.m-nowplaying-icon:active,.m-nowplaying-mic:active,.m-minibar-btn:active:not(:disabled){transform:scale(.92);transition:transform 80ms ease}.m-nowplaying-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:#042f1f;font-size:.65rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.m-vocal-toggle{display:grid;grid-template-columns:1fr 1fr;background:#eaeaea14;border:1px solid var(--border);border-radius:999px;padding:4px;position:relative;overflow:hidden}.m-vocal-toggle-option{position:relative;z-index:1;background:transparent;border:none;color:var(--muted);padding:.7rem .9rem;font:inherit;font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:999px;display:flex;align-items:center;justify-content:center;gap:.4rem;transition:color .16s ease;-webkit-tap-highlight-color:transparent}.m-vocal-toggle-option:active{transform:scale(.98);transition:transform 60ms ease,color .16s ease}.m-vocal-toggle-option-active{color:#042f1f;font-weight:700;background:var(--accent);box-shadow:0 2px 8px #34d39959}.m-vocal-toggle-karaoke{border-color:var(--accent);box-shadow:0 0 0 1px #34d39926}.m-vocal-toggle-option svg{flex:0 0 auto}.m-vocal-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.85rem 1rem;font:inherit;font-size:.9rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg);background:#eaeaea14;border:1px solid var(--border);border-radius:999px;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .16s ease,color .16s ease,box-shadow .16s ease}.m-vocal-btn:active{transform:scale(.98);transition:transform 60ms ease}.m-vocal-btn-on{color:#042f1f;background:var(--accent);border-color:var(--accent);box-shadow:0 2px 10px #34d39966}.m-vocal-btn svg{flex:0 0 auto}.m-nowplaying-surface .shell-canvas-scroll{padding:4.5rem .9rem 6.5rem;z-index:4}.m-nowplaying-surface .shell-canvas-scroll-line{font-size:calc(1.6rem * var(--lyric-zoom, 1.4));line-height:1.3;padding:calc(.35rem * var(--lyric-zoom, 1.4)) .4rem;cursor:default}.m-nowplaying-surface .shell-canvas-scroll-pill{z-index:5;top:5rem;right:1rem}.m-nowplaying-mode-label{font-size:.95rem;font-weight:700;letter-spacing:.02em;font-family:ui-serif,Georgia,Times New Roman,serif}@media (orientation: landscape) and (max-height: 540px){.m-nowplaying-surface .shell-canvas-scroll{padding:3.25rem 1rem 4.75rem}.m-nowplaying-surface .shell-canvas-scroll-line{font-size:calc(1.15rem * var(--lyric-zoom, 1.4));padding:calc(.2rem * var(--lyric-zoom, 1.4)) .4rem}.m-nowplaying-top{padding-top:calc(env(safe-area-inset-top,0) + .4rem)}.m-nowplaying-bottom{padding:.4rem 1rem .55rem;gap:.4rem}.m-nowplaying-play{width:52px;height:52px;font-size:1.2rem}.m-nowplaying-mode-btn{width:38px;height:38px}.m-vocal-btn{padding:.6rem 1rem}}.m-sheet{position:fixed;inset:0;z-index:50;background:#0000;display:flex;align-items:flex-end;justify-content:center;pointer-events:none;transition:background .28s ease}.m-sheet-open{background:#0000008c;pointer-events:auto;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.m-sheet-panel{width:100%;max-height:85vh;background:var(--bg-card);border-top-left-radius:16px;border-top-right-radius:16px;box-shadow:0 -10px 40px #00000080;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .32s cubic-bezier(.4,0,.2,1);padding-bottom:env(safe-area-inset-bottom,0)}.m-sheet-open .m-sheet-panel{transform:translateY(0)}.m-sheet-grabber{display:flex;justify-content:center;padding:.5rem 0 .3rem;cursor:grab;touch-action:none}.m-sheet-handle{width:38px;height:4px;border-radius:2px;background:#eaeaea40}.m-sheet-header{display:flex;align-items:center;gap:.5rem;padding:0 1.1rem .6rem;border-bottom:1px solid var(--border)}.m-sheet-title{flex:1 1 auto;margin:0;font-size:.8rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim)}.m-sheet-close{flex:0 0 auto;width:32px;height:32px;background:transparent;border:none;color:var(--muted);font-size:1.1rem;cursor:pointer;border-radius:50%}.m-sheet-close:active{background:#ffffff0f}.m-sheet-body{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.5rem 0}.m-settings{display:flex;flex-direction:column;gap:.75rem;padding:0 .5rem .4rem}.m-settings-section{padding:.4rem .6rem}.m-settings-section-title{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:.55rem;padding-left:.1rem}.m-settings-row{display:flex;align-items:center;width:100%;background:transparent;border:none;color:var(--fg);font:inherit;text-align:left;cursor:pointer}.m-settings-row-slider{flex-direction:column;gap:.3rem;padding:.5rem .2rem}.m-settings-row-toggle{padding:.85rem .2rem;border-bottom:1px solid rgba(234,234,234,.04)}.m-settings-row-toggle:last-child{border-bottom:none}.m-settings-label{flex:1 1 auto;font-size:.95rem;display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;color:var(--fg)}.m-settings-value{color:var(--accent);font-size:.85rem;font-variant-numeric:tabular-nums;font-weight:500}.m-settings-slider{width:100%;height:4px;appearance:none;background:#eaeaea29;border-radius:2px;outline:none}.m-settings-slider::-webkit-slider-thumb{appearance:none;width:22px;height:22px;border-radius:50%;background:var(--accent);border:2px solid var(--bg);cursor:pointer;box-shadow:0 0 0 1px #34d3994d}.m-settings-slider::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--accent);border:2px solid var(--bg)}.m-settings-switch{flex:0 0 auto;width:44px;height:26px;background:#eaeaea29;border-radius:999px;position:relative;transition:background .16s ease}.m-settings-switch-on{background:var(--accent)}.m-settings-switch-knob{position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:var(--fg);transition:transform .16s ease;box-shadow:0 1px 4px #00000059}.m-settings-switch-on .m-settings-switch-knob{transform:translate(18px);background:var(--bg-card)}.m-settings-pill-row{display:flex;flex-wrap:wrap;gap:.4rem}.m-settings-pill{flex:0 1 auto;background:#eaeaea0f;border:1px solid var(--border);color:var(--fg-dim);padding:.5rem .85rem;border-radius:999px;font:inherit;font-size:.82rem;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.m-settings-pill:active{background:#eaeaea1a}.m-settings-pill-active{background:#34d3992e;border-color:var(--accent);color:var(--accent)}.m-settings-pill-emerald:before{background:#34d399}.m-settings-pill-amber:before{background:#ffb020}.m-settings-pill-crystal:before{background:#ffffffb3}.m-settings-pill-neon:before{background:#00e5ff}.m-settings-pill-mono:before{background:#eaeaea80}.m-settings-pill-plum:before{background:#b450c8}.m-settings-pill-emerald,.m-settings-pill-amber,.m-settings-pill-crystal,.m-settings-pill-neon,.m-settings-pill-mono,.m-settings-pill-plum{display:inline-flex;align-items:center;gap:.4rem}.m-settings-pill-emerald:before,.m-settings-pill-amber:before,.m-settings-pill-crystal:before,.m-settings-pill-neon:before,.m-settings-pill-mono:before,.m-settings-pill-plum:before{content:"";width:8px;height:8px;border-radius:50%}.m-settings-action{display:block;width:100%;background:transparent;border:1px solid var(--border);color:var(--fg);padding:.85rem;border-radius:10px;font:inherit;font-size:.95rem;cursor:pointer;text-align:center}.m-settings-action:active:not(:disabled){background:#ffffff0a}.m-settings-action:disabled{opacity:.35;cursor:not-allowed}.m-queue{display:flex;flex-direction:column}.m-queue-empty{padding:2.5rem 1.5rem;text-align:center;color:var(--muted)}.m-queue-empty-hint{margin-top:.4rem;font-size:.78rem;color:var(--muted)}.m-queue-meta{display:flex;justify-content:space-between;align-items:center;padding:.4rem 1.1rem .6rem;font-size:.78rem;color:var(--muted)}.m-queue-clear{background:transparent;border:1px solid var(--border);color:var(--fg-dim);padding:.35rem .7rem;border-radius:999px;font:inherit;font-size:.72rem;cursor:pointer}.m-queue-clear:active{background:#ffffff0a}.m-queue-list{list-style:none;margin:0;padding:0}.m-queue-row{display:grid;grid-template-columns:2rem 1fr 2.4rem;align-items:center;gap:.6rem;padding:.7rem 1.1rem;border-bottom:1px solid rgba(234,234,234,.04)}.m-queue-row-num{text-align:center;font-variant-numeric:tabular-nums;font-size:.78rem;color:var(--muted)}.m-queue-row-text{min-width:0}.m-queue-row-title{color:var(--fg);font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-queue-row-artist{color:var(--muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:.1rem}.m-queue-row-remove{background:transparent;border:none;color:var(--muted);font-size:1.05rem;cursor:pointer;width:2.4rem;height:2.4rem;border-radius:50%}.m-queue-row-remove:active{background:#ffffff0f;color:var(--fg)}.m-toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0) + 5.5rem);transform:translate(-50%);z-index:60;padding:.6rem 1rem;background:#161a1ef5;border:1px solid var(--border);border-radius:999px;color:var(--fg);font-size:.85rem;white-space:nowrap;max-width:calc(100vw - 2rem);overflow:hidden;text-overflow:ellipsis;box-shadow:0 8px 24px #00000080}.m-loading{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;background:#08090eeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.m-loading-card{width:min(20rem,80vw);padding:1.6rem 1.4rem;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;align-items:center;gap:.7rem;text-align:center}.m-loading-cover{width:120px;height:120px;border-radius:10px;object-fit:cover;border:1px solid var(--border);box-shadow:0 6px 20px #00000073}.m-loading-title{color:var(--fg);font-size:1rem;font-weight:600}.m-mobile-empty{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;padding:calc(env(safe-area-inset-top,0) + 2rem) 1.5rem calc(env(safe-area-inset-bottom,0) + 2rem);background:var(--bg, #0c0e10);cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.m-mobile-empty-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.m-mobile-empty-cta{min-height:52px;display:inline-flex;align-items:center;padding:0 1.6rem;border-radius:999px;font-size:1.05rem;font-weight:600;color:var(--fg, #ecf0f4);background:#34d39924;border:1px solid rgba(52,211,153,.5);transition:background .14s ease,transform .14s ease}.m-mobile-empty:active .m-mobile-empty-cta{background:#34d3993d;transform:scale(.98)}.m-loading-bar{width:100%;height:4px;background:#eaeaea1a;border-radius:2px;overflow:hidden}.m-loading-bar-fill{width:30%;height:100%;background:var(--accent);border-radius:2px;animation:m-loading-slide 1.4s ease-in-out infinite}@keyframes m-loading-slide{0%{transform:translate(-100%)}to{transform:translate(360%)}}
