:root{--bg: #f7f5f6;--paper: #ffffff;--ink: #1a1418;--ink-soft:#4a3e44;--muted: #7b6f75;--line: #e7e2e4;--accent: #a83e70;--accent-soft: #f6e4ec;--track: #ddd5d9;--danger: #b42318;--danger-soft: #fdecea;--shadow: 0 1px 3px rgba(26,20,24,.06), 0 4px 14px rgba(26,20,24,.05);--radius: 14px;--tabbar-h: 62px;--sans: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #131012;--paper: #1f1a1d;--ink: #f3eef1;--ink-soft:#d0c6cb;--muted: #998d93;--line: #322a2e;--accent: #e0679f;--accent-soft: #3a1a2a;--track: #3c3338;--danger: #f2675a;--danger-soft: #3a1f1b;--shadow: 0 1px 3px rgba(0,0,0,.4)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}button:disabled{opacity:.35;cursor:default}code{font-size:.85em;background:var(--line);padding:1px 5px;border-radius:5px}.app{max-width:640px;margin:0 auto;padding-bottom:calc(var(--tabbar-h) + 24px + env(safe-area-inset-bottom))}main{padding:0 16px}.center{min-height:100vh;display:flex;flex-direction:column;gap:12px;align-items:center;justify-content:center;padding:16px;text-align:center;color:var(--muted)}.center-text{text-align:center}.hint{font-size:.85rem;color:var(--muted)}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar h1{font-size:1.1rem;font-weight:700;white-space:nowrap}.device-chip{display:flex;align-items:center;gap:6px;min-width:0;padding:6px 12px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-weight:600;font-size:.88rem}.device-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-chip.none{background:var(--paper);color:var(--ink-soft);border:1px solid var(--line)}.btn{display:inline-block;background:var(--accent);color:#fff;font-weight:600;padding:10px 18px;border-radius:999px;font-size:.95rem;text-decoration:none}.btn.big{padding:13px 28px;font-size:1.05rem}.btn.wide{width:100%;margin-top:12px}.link-btn{color:var(--accent);font-weight:600;font-size:.9rem}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--ink-soft);flex-shrink:0}.icon-btn:active{background:var(--line)}.icon-btn.accent{color:var(--accent)}.banner{padding:10px 14px;border-radius:10px;font-size:.9rem}.banner.error{background:var(--danger-soft);color:var(--danger)}.connect{color:var(--ink-soft);gap:16px;max-width:420px;margin:0 auto}.connect h1{color:var(--ink);font-size:1.6rem}.connect-logo{display:block;width:80px;height:80px}.now{display:flex;flex-direction:column;align-items:stretch;gap:18px;padding-top:20px}.cover{width:min(100%,340px);aspect-ratio:1;margin:0 auto;border-radius:18px;overflow:hidden;background:var(--paper);box-shadow:var(--shadow)}.cover img{width:100%;height:100%;object-fit:cover;display:block}.cover .placeholder,.cover.placeholder{display:grid;place-items:center;width:100%;height:100%;color:var(--muted)}.cover.placeholder{width:180px;border:1px solid var(--line)}.meta{text-align:center;min-width:0}.meta .title{font-size:1.25rem;font-weight:700;overflow-wrap:anywhere}.meta .artist{color:var(--muted);overflow-wrap:anywhere}.controls{display:flex;align-items:center;justify-content:center;gap:28px}.ctl{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;color:var(--ink)}.ctl:active{background:var(--line)}.ctl.play{width:76px;height:76px;background:var(--accent);color:#fff;box-shadow:var(--shadow)}.ctl.play:active{filter:brightness(.92)}.modes{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.pill{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);font-size:.9rem;font-weight:600}.pill.on{background:var(--accent-soft);border-color:transparent;color:var(--accent)}.volume{display:flex;align-items:center;gap:10px;color:var(--muted);padding:4px 0}.volume .slider{flex:1}.idle{display:flex;flex-direction:column;align-items:center;gap:14px;padding:40px 0 8px;text-align:center;color:var(--ink-soft)}.slider{width:100%}.slider input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:28px;background:transparent;touch-action:none}.slider input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(to right,var(--accent) var(--pct),var(--track) var(--pct))}.slider input[type=range]::-moz-range-track{height:6px;border-radius:3px;background:var(--track)}.slider input[type=range]::-moz-range-progress{height:6px;border-radius:3px;background:var(--accent)}.slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;margin-top:-6px;border-radius:50%;background:var(--accent);border:2px solid var(--paper)}.slider input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);border:2px solid var(--paper)}.slider-labels{display:flex;justify-content:space-between;font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums;margin-top:-2px}.vol .slider-labels{justify-content:flex-end}.section-title{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:20px 0 8px}.list{list-style:none;display:flex;flex-direction:column;gap:2px}.row{display:flex;align-items:center;gap:12px;padding:6px 4px;border-radius:10px;min-width:0}.row.clickable{cursor:pointer}.row.clickable:active{background:var(--line)}.row.playing .row-title{color:var(--accent)}.row-text{flex:1;min-width:0}.row-title,.row-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-title{font-weight:600;font-size:.95rem}.row-sub{font-size:.83rem;color:var(--muted)}.row-actions{display:flex;gap:2px}.thumb{width:48px;height:48px;border-radius:8px;object-fit:cover;flex-shrink:0;background:var(--paper)}.thumb.placeholder{display:grid;place-items:center;color:var(--muted);border:1px solid var(--line)}.empty{text-align:center;color:var(--muted);padding:32px 0;list-style:none}.refresh-link{display:block;margin:16px auto 0}.search-box{position:sticky;top:calc(56px + env(safe-area-inset-top));z-index:5;display:flex;align-items:center;gap:8px;margin-top:14px;padding:4px 6px 4px 14px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--muted);box-shadow:var(--shadow)}.search-box input{flex:1;min-width:0;padding:8px 0;font:inherit;border:0;outline:0;background:transparent;color:var(--ink)}.search-box input::-webkit-search-cancel-button{display:none}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;justify-content:center;padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line)}.tabbar button{flex:1;max-width:200px;height:var(--tabbar-h);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:.75rem;color:var(--muted)}.tabbar button.active{color:var(--accent);font-weight:600}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#00000073;display:flex;align-items:flex-end;justify-content:center;animation:fade .15s ease-out}.sheet{width:100%;max-width:640px;max-height:80vh;overflow-y:auto;background:var(--paper);border-radius:20px 20px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));animation:up .2s ease-out}.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.sheet-head h2{font-size:1.1rem}.devices{list-style:none;display:flex;flex-direction:column;gap:4px}.device{width:100%;display:flex;align-items:center;gap:14px;padding:12px;border-radius:12px;text-align:left;color:var(--ink-soft)}.device:active{background:var(--line)}.device.active{background:var(--accent-soft);color:var(--accent)}.device-name{flex:1;min-width:0;font-weight:600;overflow-wrap:anywhere}.device-name small{display:block;font-weight:400;font-size:.8rem;color:var(--muted)}@keyframes fade{0%{opacity:0}}@keyframes up{0%{transform:translateY(40px);opacity:.5}}.toast{position:fixed;left:50%;transform:translate(-50%);z-index:40;bottom:calc(var(--tabbar-h) + 14px + env(safe-area-inset-bottom));max-width:calc(100% - 32px);padding:10px 16px;border-radius:12px;background:var(--ink);color:var(--bg);font-size:.9rem;box-shadow:var(--shadow);animation:fade .15s ease-out}.toast.error{background:var(--danger);color:#fff}.footer{margin-top:32px;text-align:center;font-size:.82rem;color:var(--muted);line-height:1.8}
