:root{--color-bg:#0a0a0c;--color-chrome:#0c0c0f;--color-surface-100:#121215;--color-surface-200:#1a1a1f;--color-surface-field:#16161a;--color-hairline:#27272a;--color-ink:#f2f2f4;--color-ink-2:#a1a1aa;--color-ink-3:#71717a;--color-accent:#4f46e5;--color-accent-soft:#6366f1;--color-accent-ink:#8b87f8;--color-brand-start:#5e5ff0;--color-brand-mid:#6a55ea;--color-brand-end:#9b48e6;--color-brand-deep:#1b0650;--color-success:#34d399;--color-warning:#fcd34d;--color-danger:#f87171;--radius-control:8px;--radius-card:12px;--radius-panel:16px;--font-display:"Outfit Variable", "Outfit", -apple-system, system-ui, sans-serif;--font-sans:"Inter Variable", "Inter", -apple-system, system-ui, sans-serif;--brand-grad:linear-gradient(135deg, var(--color-brand-start), var(--color-brand-mid) 50%, var(--color-brand-end));--sab:env(safe-area-inset-bottom,0px);--sat:env(safe-area-inset-top,0px);--tabs-h:56px;--mini-h:64px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-sans);margin:0;font-size:15px}body{overscroll-behavior-y:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}#rm-audio{display:none}.app{min-height:100dvh}.top{z-index:5;padding:calc(var(--sat) + 10px) 16px 10px;background:color-mix(in srgb, var(--color-chrome) 88%, transparent);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--color-hairline);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);letter-spacing:-.02em;background:var(--brand-grad);color:#0000;background-clip:text;font-size:20px;font-weight:700}.brand-sub{color:var(--color-ink-3);-webkit-text-fill-color:var(--color-ink-3);margin-left:8px;font-size:12px;font-weight:500}.chips{gap:6px;display:flex}.pill{border:1px solid var(--color-hairline);color:var(--color-ink-2);border-radius:99px;padding:3px 8px;font-size:11px}.pill.ok{color:var(--color-success);border-color:color-mix(in srgb, var(--color-success) 40%, transparent)}.pill.warn{color:var(--color-warning);border-color:color-mix(in srgb, var(--color-warning) 40%, transparent)}.pill.off{color:var(--color-danger);border-color:color-mix(in srgb, var(--color-danger) 40%, transparent)}.content{padding:12px 16px calc(var(--tabs-h) + var(--sab) + 24px)}.has-mini .content{padding-bottom:calc(var(--tabs-h) + var(--mini-h) + var(--sab) + 32px)}.screen{max-width:640px;margin:0 auto}.h1{font-family:var(--font-display);letter-spacing:-.02em;margin:8px 0 4px;font-size:24px}.muted{color:var(--color-ink-3);margin:0 0 12px;font-size:13px}.small{font-size:11px}.hint{color:var(--color-ink-2);margin:6px 0;font-size:12px}.section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-3);margin-bottom:8px;font-size:11px}.card{background:var(--color-surface-100);border:1px solid var(--color-hairline);border-radius:var(--radius-card);margin:12px 0;padding:14px}.kv{border-bottom:1px solid color-mix(in srgb, var(--color-hairline) 50%, transparent);justify-content:space-between;gap:12px;padding:5px 0;font-size:13px;display:flex}.kv:last-of-type{border-bottom:0}.kv>:first-child{color:var(--color-ink-2);flex-shrink:0}.kv>:last-child{text-align:right;overflow-wrap:anywhere}.row-btns{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.btn{background:var(--brand-grad);color:#fff;border-radius:var(--radius-control);padding:10px 14px;font-size:14px;font-weight:600}.btn.ghost{background:var(--color-surface-200);color:var(--color-ink);border:1px solid var(--color-hairline)}.btn.danger{color:var(--color-danger);margin-top:10px}.ok{color:var(--color-success)}.tracks{gap:8px;margin:0;padding:0;list-style:none;display:grid}.track{background:var(--color-surface-100);border:1px solid var(--color-hairline);border-radius:var(--radius-card);align-items:center;gap:10px;padding:8px 10px 8px 8px;display:flex}.track.cur{border-color:color-mix(in srgb, var(--color-accent-soft) 60%, transparent);background:color-mix(in srgb, var(--color-accent) 10%, var(--color-surface-100))}.track-main{text-align:left;flex:1;align-items:center;gap:12px;min-width:0;display:flex}.track-art{border-radius:var(--radius-control);flex-shrink:0;width:52px;height:52px}.track-text{flex-direction:column;min-width:0;display:flex}.track-title{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.track-sub{color:var(--color-ink-3);flex-wrap:wrap;align-items:center;gap:6px;margin-top:2px;font-size:12px;display:flex}.badge{border:1px solid;border-radius:99px;align-items:center;gap:3px;padding:1px 6px;font-size:10px;display:inline-flex}.badge.ok{color:var(--color-success)}.badge.err{color:var(--color-danger)}.dl{background:var(--color-surface-200);border:1px solid var(--color-hairline);width:40px;height:40px;color:var(--color-ink-2);border-radius:50%;flex-shrink:0;place-items:center;font-size:11px;display:grid}.dl.stored{color:var(--color-ink-3)}.dl.busy{color:var(--color-accent-ink)}.dl.err{color:var(--color-danger)}.icon-btn{width:44px;height:44px;color:var(--color-ink);border-radius:50%;flex-shrink:0;place-items:center;display:grid;position:relative}.icon-btn.on{color:var(--color-accent-ink)}.icon-btn.big{width:56px;height:56px}.badge1{font-size:9px;font-weight:700;position:absolute;top:8px;right:8px}.mini{left:8px;right:8px;bottom:calc(var(--tabs-h) + var(--sab) + 8px);z-index:6;height:var(--mini-h);background:color-mix(in srgb, var(--color-surface-200) 92%, transparent);-webkit-backdrop-filter:blur(16px);border:1px solid var(--color-hairline);border-radius:var(--radius-panel);align-items:center;gap:2px;padding:0 6px 0 8px;display:flex;position:fixed;overflow:hidden;box-shadow:0 8px 30px #00000073}.mini-progress{background:var(--brand-grad);height:2px;transition:width .25s linear;position:absolute;bottom:0;left:0}.mini-main{text-align:left;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.mini-art{border-radius:var(--radius-control);width:44px;height:44px}.mini-text{flex-direction:column;min-width:0;display:flex}.mini-title{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.mini-sub{color:var(--color-ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.play-sm{background:var(--color-ink);color:var(--color-bg);width:40px;height:40px}.tabs{z-index:7;height:calc(var(--tabs-h) + var(--sab));padding-bottom:var(--sab);background:color-mix(in srgb, var(--color-chrome) 94%, transparent);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--color-hairline);display:flex;position:fixed;bottom:0;left:0;right:0}.tabs button{color:var(--color-ink-3);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:10px;display:flex}.tabs button.on{color:var(--color-ink)}.full{z-index:20;padding:calc(var(--sat) + 8px) 20px calc(var(--sab) + 24px);background:radial-gradient(120% 70% at 30% 0%, color-mix(in srgb, var(--color-brand-deep) 85%, transparent), var(--color-bg) 70%), var(--color-bg);animation:.22s ease-out rise;position:fixed;inset:0;overflow-y:auto}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.full-top{justify-content:space-between;align-items:center;display:flex}.full-top-label{color:var(--color-ink-2);font-size:12px}.full-art{aspect-ratio:1;border-radius:var(--radius-panel);width:min(78vw,360px);margin:18px auto 20px;display:block;box-shadow:0 20px 60px #2a0c788c}.full-meta{max-width:420px;margin:0 auto}.full-title{font-family:var(--font-display);font-size:22px;font-weight:700}.full-artist{color:var(--color-ink-2);margin-top:2px}.seek{width:100%;max-width:420px;accent-color:var(--color-accent-soft);height:28px;margin:18px auto 0;display:block}.times{max-width:420px;color:var(--color-ink-3);font-variant-numeric:tabular-nums;justify-content:space-between;margin:0 auto;font-size:12px;display:flex}.controls{justify-content:space-between;align-items:center;max-width:420px;margin:14px auto;display:flex}.play-lg{background:var(--color-ink);width:72px;height:72px;color:var(--color-bg);border-radius:50%;place-items:center;display:grid}.full-status{max-width:420px;color:var(--color-ink-2);margin:8px auto;font-size:12px;line-height:1.6}.full-error{border-radius:var(--radius-control);background:color-mix(in srgb, var(--color-danger) 14%, transparent);max-width:420px;color:var(--color-danger);margin:8px auto;padding:8px 10px;font-size:13px}.dot{background:var(--color-ink-3);border-radius:50%;width:8px;height:8px;margin-right:4px;display:inline-block}.dot.playing{background:var(--color-success)}.dot.buffering,.dot.loading{background:var(--color-warning)}.dot.error{background:var(--color-danger)}.upnext{max-width:420px;margin:18px auto 0}.upnext-row{border-radius:var(--radius-control);text-align:left;gap:10px;width:100%;padding:10px 6px;font-size:14px;display:flex}.upnext-row.cur{background:color-mix(in srgb, var(--color-accent) 18%, transparent);color:var(--color-accent-ink)}.upnext-n{width:18px;color:var(--color-ink-3)}.upnext-d{color:var(--color-ink-3);font-variant-numeric:tabular-nums;margin-left:auto}.group-head{align-items:center;gap:8px;margin-bottom:6px;font-weight:600;display:flex}.group-id{background:var(--brand-grad);color:#fff;border-radius:6px;place-items:center;width:24px;height:24px;font-size:12px;display:inline-grid}.case{border-top:1px solid color-mix(in srgb, var(--color-hairline) 60%, transparent);padding:10px 0}.case-text{font-size:13px;line-height:1.4}.case-res{margin-top:4px;font-size:11px}.case-res.PASS{color:var(--color-success)}.case-res.PARTIAL{color:var(--color-warning)}.case-res.FAIL{color:var(--color-danger)}.case-btns{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.chip{background:var(--color-surface-200);border:1px solid var(--color-hairline);color:var(--color-ink-2);border-radius:99px;padding:6px 10px;font-size:12px}.chip.sel.PASS{background:color-mix(in srgb, var(--color-success) 20%, transparent);color:var(--color-success)}.chip.sel.PARTIAL{background:color-mix(in srgb, var(--color-warning) 20%, transparent);color:var(--color-warning)}.chip.sel.FAIL{background:color-mix(in srgb, var(--color-danger) 20%, transparent);color:var(--color-danger)}.toggle{justify-content:space-between;align-items:center;gap:12px;padding:8px 0;font-size:13px;display:flex}.toggle select{background:var(--color-surface-field);color:var(--color-ink);border:1px solid var(--color-hairline);border-radius:var(--radius-control);max-width:55%;padding:6px;font-size:13px}.toggle input[type=checkbox]{width:22px;height:22px;accent-color:var(--color-accent-soft)}.pre{background:var(--color-surface-field);border-radius:var(--radius-control);margin:0;padding:8px;font-size:11px;overflow-x:auto}.events{max-height:50vh;margin:0;padding:0;font-family:ui-monospace,Menlo,monospace;font-size:10.5px;list-style:none;overflow-y:auto}.events li{border-bottom:1px solid color-mix(in srgb, var(--color-hairline) 40%, transparent);overflow-wrap:anywhere;padding:3px 0}.events li.bad{color:var(--color-danger)}.ev-t{color:var(--color-ink-3)}.ev-d{color:var(--color-ink-2)}.top{min-height:calc(var(--sat) + 52px)}.nav-back{color:var(--color-accent-ink);align-items:center;gap:2px;min-height:44px;margin-left:-8px;font-weight:600;display:inline-flex}.tool{width:34px;height:34px;color:var(--color-ink-2);border:1px solid var(--color-hairline);border-radius:50%;place-items:center;display:grid}.tool.on{color:var(--color-accent-ink);border-color:color-mix(in srgb, var(--color-accent-soft) 60%, transparent)}.chips{align-items:center}.tabs button{min-height:44px}.kb-open .tabs,.kb-open .mini{display:none}.kb-open .content{padding-bottom:24px}.card.empty{border-style:dashed}.search-field{border-radius:var(--radius-card);width:100%;font:inherit;background:var(--color-surface-field);color:var(--color-ink);border:1px solid var(--color-hairline);appearance:none;margin:8px 0 10px;padding:12px 14px;font-size:16px}.search-field:focus{outline:2px solid color-mix(in srgb, var(--color-accent-soft) 70%, transparent);outline-offset:1px}.sheet-backdrop{z-index:30;background:#00000080;align-items:flex-end;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{width:100%;max-width:640px;padding:8px 12px calc(var(--sab) + 12px);background:var(--color-surface-200);border-top-left-radius:var(--radius-panel);border-top-right-radius:var(--radius-panel);border:1px solid var(--color-hairline);margin:0 auto;animation:.2s ease-out rise}.sheet-title{border-bottom:1px solid var(--color-hairline);flex-direction:column;gap:2px;padding:10px 6px 12px;font-weight:600;display:flex}.sheet-title span{color:var(--color-ink-3);font-size:12px;font-weight:400}.sheet-row{border-radius:var(--radius-control);align-items:center;gap:12px;width:100%;min-height:50px;padding:0 8px;font-size:15px;display:flex}.sheet-row:active{background:color-mix(in srgb, var(--color-accent) 18%, transparent)}.sheet-row.cancel{color:var(--color-ink-2);background:var(--color-surface-100);justify-content:center;margin-top:6px}.upnext-head{justify-content:space-between;align-items:center;display:flex}.upnext-row{align-items:center;padding:2px 0 2px 6px}.upnext-main{text-align:left;min-width:0;min-height:44px;color:inherit;flex:1;align-items:center;gap:10px;font-size:14px;display:flex}.upnext-t{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.q-btn{width:36px;height:40px;color:var(--color-ink-2);flex-shrink:0;place-items:center;display:grid}.q-btn:disabled{opacity:.3}@media (prefers-reduced-motion:reduce){.full,.sheet,.sheet-backdrop{animation:none}}.brand{white-space:nowrap;flex-shrink:0}.top{gap:8px}.art-ph{border-radius:var(--radius-control);background:linear-gradient(135deg, color-mix(in srgb, var(--color-brand-start) 35%, var(--color-surface-200)), var(--color-surface-200));width:52px;height:52px;color:var(--color-ink-2);flex-shrink:0;place-items:center;display:grid}.art-ph.round,.track-art.round{border-radius:50%}.mosaic{border-radius:var(--radius-control);flex-shrink:0;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.mosaic img{object-fit:cover;width:100%;height:100%;display:block}.track-art{object-fit:cover}.seg{background:var(--color-surface-100);border:1px solid var(--color-hairline);scrollbar-width:none;border-radius:99px;gap:4px;margin:10px 0 8px;padding:3px;display:flex;overflow-x:auto}.seg::-webkit-scrollbar{display:none}.seg button{min-height:36px;color:var(--color-ink-2);white-space:nowrap;border-radius:99px;flex:1;padding:0 12px;font-size:13px}.seg button.on{background:var(--color-surface-200);color:var(--color-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--color-accent-soft) 45%, transparent)}.mini-seg{flex:none;margin:0}.mini-seg button{flex:none;min-height:30px;padding:0 10px;font-size:12px}.quick{flex-wrap:wrap;gap:8px;margin:4px 0 12px;display:flex}.quick .chip{align-items:center;gap:6px;min-height:36px;display:inline-flex}.list-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.list-head .muted{margin:0}.btn{justify-content:center;align-items:center;gap:6px;min-height:44px;display:inline-flex}.btn:disabled{opacity:.45}.btn.wide{width:100%}.new-pl{margin-bottom:10px}.pl-head{align-items:center;gap:14px;margin:8px 0 12px;display:flex}.pl-meta{flex-direction:column;align-items:flex-start;gap:6px;min-width:0;display:flex}.pl-meta .h1{overflow-wrap:anywhere;margin:0}.pl-meta .muted{margin:0}.pl-actions{align-items:center;gap:8px;margin-bottom:12px;display:flex}.pl-actions .btn{flex:1}.edit-bar{border-radius:var(--radius-control);background:color-mix(in srgb, var(--color-accent) 14%, transparent);color:var(--color-accent-ink);justify-content:space-between;align-items:center;margin-bottom:8px;padding:8px 12px;font-size:13px;display:flex}.edit-btns{flex-shrink:0;display:flex}.track.unavail .track-art,.track.unavail .art-ph,.track.unavail .track-title{opacity:.55}.badge.warn{color:var(--color-warning)}.track-main:disabled{cursor:default}.toast{z-index:25;left:16px;right:16px;bottom:calc(var(--tabs-h) + var(--sab) + 16px);border-radius:var(--radius-card);background:var(--color-surface-200);border:1px solid var(--color-hairline);max-width:560px;margin:0 auto;padding:10px 14px;font-size:13px;animation:.18s ease-out rise;position:fixed;box-shadow:0 8px 30px #00000080}.has-mini .toast{bottom:calc(var(--tabs-h) + var(--mini-h) + var(--sab) + 18px)}.toast.warn{border-color:color-mix(in srgb, var(--color-warning) 50%, transparent)}.toast.err{border-color:color-mix(in srgb, var(--color-danger) 60%, transparent);color:var(--color-danger)}.sheet{max-height:calc(100dvh - var(--sat) - 24px);flex-direction:column;display:flex}.sheet-body{-webkit-overflow-scrolling:touch;min-height:0;overflow-y:auto}.sheet-scroll{-webkit-overflow-scrolling:touch;max-height:48dvh;overflow-y:auto}.sheet-group{margin:12px 8px 4px}.sheet-row.muted-row{color:var(--color-ink-2)}.sheet-row.danger-row{color:var(--color-danger)}.pick-name{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.pick-count{color:var(--color-ink-3);font-size:12px}.add-row{align-items:center;gap:10px;padding:6px 8px;display:flex}.add-row .track-text{flex:1}.q-btn.ok{color:var(--color-success);opacity:1}.name-form{flex-direction:column;gap:8px;padding:8px 4px 0;display:flex}.form-err{color:var(--color-danger);margin:6px 0;font-size:13px}.file-btn{margin-top:6px;position:relative;overflow:hidden}.file-btn input{opacity:0;font-size:16px;position:absolute;inset:0}.preview{border-radius:var(--radius-control);background:var(--color-surface-200);border:1px solid var(--color-hairline);margin-top:12px;padding:12px}.warn-box{border-radius:var(--radius-control);background:color-mix(in srgb, var(--color-warning) 12%, transparent);color:var(--color-warning);margin:8px 0;padding:8px 10px;font-size:12px;line-height:1.45}.full-meta{align-items:center;gap:10px;display:flex}.full-meta-text{flex:1;min-width:0}.full-meta-text .full-title,.full-meta-text .full-artist{text-overflow:ellipsis;overflow:hidden}code{color:var(--color-ink-2);font-size:11px}
