:root{--bg:#080a12;--s1:#0f1320;--s2:#151a2b;--line:#232a42;--line2:#2e3654;--text:#eef0f7;--text2:#b4bad0;--text3:#7d849e;--mint:#8ee6cc;--lav:#c4b5ff}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0}
body{background:var(--bg) radial-gradient(80% 50% at 50% -10%,#1a2445 0,transparent 70%) no-repeat;background-attachment:fixed;color:var(--text);font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh}
main{max-width:600px;margin:0 auto;padding:32px 16px 140px}
h1{font-size:26px;font-weight:600;margin:8px 0 4px;letter-spacing:.01em}
.sub{color:var(--text2);margin:0 0 18px}
.note{font-size:13.5px;color:var(--text3);border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:0 0 20px;background:var(--s1)}
ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.card{display:flex;align-items:center;gap:14px;background:var(--s1);border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.card.on{border-color:var(--mint);box-shadow:0 0 0 3px #8ee6cc22}
.card .txt{flex:1;min-width:0}
.card b{display:block;font-weight:600;font-size:16px;overflow-wrap:anywhere}
.card span{display:block;font-size:13px;color:var(--text3)}
.play{flex:none;width:52px;height:52px;border-radius:50%;border:0;background:var(--mint);color:#06110d;display:grid;place-items:center;cursor:pointer}
.play svg{width:22px;height:22px;fill:currentColor}
.card.on .play{background:var(--lav)}
button:focus-visible,input:focus-visible{outline:3px solid var(--lav);outline-offset:2px}
#msg{color:var(--text2);font-size:14px;min-height:1.5em;margin-top:16px}
.bar{position:fixed;left:0;right:0;bottom:0;background:#0b0e18f2;backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
.in{max-width:600px;margin:0 auto;display:flex;align-items:center;gap:14px}
.status{flex:1;min-width:0}
.status b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.status span{font-size:13px;color:var(--text3)}
.vol{display:flex;flex-direction:column;font-size:11px;color:var(--text3);width:110px}
.vol input{width:100%;accent-color:var(--mint);height:28px;margin:0}
.stop{height:44px;padding:0 18px;border-radius:12px;border:1px solid var(--line2);background:var(--s2);color:var(--text);font:inherit;font-weight:600;cursor:pointer}
.stop:disabled{opacity:.4;cursor:default}
@media (max-width:420px){.vol{width:84px}.card{padding:12px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
