/* SPDX-License-Identifier: AGPL-3.0-or-later */
:root{color-scheme:dark;--bg:#090f13;--card:#142028;--line:#25323a;--ink:#edf5f7;--muted:#9bacb4;--accent:#79eed0}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:var(--bg);color:var(--ink);font:16px/1.45 system-ui,-apple-system,sans-serif}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{min-height:48px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);padding:8px 14px;cursor:pointer;touch-action:manipulation}button:active{filter:brightness(1.3)}button:disabled{opacity:.5}input{min-width:0;border:1px solid var(--line);border-radius:14px;background:#101c24;color:var(--ink);padding:12px;min-height:48px;outline:none}input:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}a{color:var(--accent)}[hidden]{display:none!important}#app{height:100%;height:100dvh;max-width:500px;margin:auto;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}header{flex-shrink:0;height:65px;padding:10px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #17252c}.brand{display:flex;align-items:center;gap:10px}.brand strong{font-size:18px;letter-spacing:1px}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:2px}.logo{display:grid;place-items:center;background:var(--accent);color:#123b32;border-radius:13px;width:38px;height:38px;font-weight:800;font-size:28px}.status{font-size:11px;color:var(--accent);border:1px solid #254c43;border-radius:20px;padding:5px 8px}main{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.page{display:none;padding:14px 18px 18px}.page.active{display:block}.searchbar{display:flex;gap:8px}.searchbar input{flex:1;width:0}.primary{background:var(--accent);border-color:var(--accent);color:#082d24;font-weight:750}.section-line{display:flex;align-items:center;justify-content:space-between;gap:6px}.section-line>span{font-size:12px;color:var(--muted)}.text-button{border:0;background:none;color:var(--accent);padding:5px 0;font-size:13px}.hint{font-size:12px;color:var(--muted);margin:3px 0 12px;line-height:1.65;word-break:break-word}.empty{text-align:center;color:var(--muted);padding:10px 0}.empty h2{color:var(--ink);font-size:20px;margin:16px 0 8px}.empty p{font-size:13px;line-height:1.7}.disc,.record{position:relative;display:grid;place-items:center;margin:auto;border-radius:50%;border:1px solid #315346;background:repeating-radial-gradient(circle,#172c29 0,#172c29 2px,#0f1d1d 3px,#0f1d1d 8px)}.disc{width:95px;height:95px}.disc span,.record span{display:grid;place-items:center;background:var(--accent);color:#123a31;border-radius:50%;width:44%;height:44%;font-size:30px}.song{width:100%;display:flex;align-items:center;text-align:left;padding:10px 12px;margin:0 0 8px;gap:10px;min-height:76px}.song-icon{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;border-radius:12px;background:#203d36;color:var(--accent);font-size:22px}.song-info{min-width:0;flex:1}.song-title{display:block;font-size:16px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.song-detail{display:block;font-size:12px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--muted);margin-top:4px}.song-arrow{font-size:16px;color:var(--accent)}nav{display:flex;flex-shrink:0;border-top:1px solid var(--line);padding:4px 14px calc(4px + env(safe-area-inset-bottom));background:#0c1419}nav button{flex:1;display:flex;flex-direction:column;gap:0;align-items:center;border:0;background:transparent;color:var(--muted);font-size:11px;min-height:52px;padding:1px 6px}nav button span{font-size:24px;line-height:28px}nav button.active{color:var(--accent);background:#142923}.now-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--muted)}.pill{font-size:11px;border-radius:15px;background:#1d302c;padding:4px 10px;color:var(--accent)}.record{width:94px;height:94px;margin:2px auto 8px}.record i{position:absolute;width:7px;height:7px;background:#0c1b16;border-radius:50%}#player{text-align:center}h2{font-size:20px;margin:8px 0}#trackName{font-size:19px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:4px 0}.muted{color:var(--muted);font-size:13px;margin:3px 0 10px}#trackArtist{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quality{font-size:11px;color:var(--accent);min-height:18px}#seek{width:100%;padding:0;height:32px;min-height:32px;accent-color:var(--accent);border:0}.times{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:-6px}.controls{display:flex;align-items:center;justify-content:center;gap:22px;margin:7px 0 10px}.controls button{width:50px;height:48px;border:0;background:transparent}.controls .play{width:60px;height:52px;border-radius:50%;background:var(--accent);color:#10352b;font-size:23px}.row{display:flex;gap:8px}.row button{flex:1;font-size:13px;min-height:44px}#playStatus{margin-top:8px}#lyricText{font:14px/2 system-ui;white-space:pre-wrap;color:#c1d4cf}.source-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.source-grid button{text-align:left;font-size:13px;display:flex;align-items:center;justify-content:space-between;padding:10px}.source-grid button.selected{border-color:#548d79;background:#172f28;color:var(--accent)}.wide{width:100%}.about{font-size:11px;color:var(--muted);text-align:center;line-height:2;margin:16px 0}.overlay{position:fixed;inset:0;z-index:10;background:var(--bg);overflow:auto;display:flex;align-items:center;justify-content:center;padding:24px}.login-box{width:100%;max-width:350px}.large{width:55px;height:55px;font-size:38px}.login-box h1{font-size:27px;margin:14px 0 4px}.login-box label{font-size:13px;color:var(--muted);display:block;margin:22px 0 8px}.login-box input{width:100%;margin-bottom:12px;font-size:15px}.login-box .hint{margin-top:16px}#toast{position:fixed;bottom:75px;left:8%;right:8%;margin:auto;max-width:360px;padding:13px 16px;border:1px solid #3c5b51;border-radius:14px;background:#233b32;color:#fff;font-size:13px;z-index:20;box-shadow:0 8px 30px #0008}@media(max-width:320px){header{padding:8px 12px;height:56px}.page{padding:10px 12px}.brand strong{font-size:16px}.status{font-size:10px}.controls{gap:12px}.row{gap:6px}.row button{padding:8px 4px}.source-grid{gap:6px}.login-box h1{font-size:24px}}@media(max-height:430px){header{height:52px}.record{width:64px;height:64px}.page{padding-top:9px}.empty{padding-top:0}.disc{width:72px;height:72px}.empty h2{margin-top:9px}.controls{margin:4px 0}.login-box label{margin-top:10px}.overlay{align-items:flex-start;padding:18px 22px}.large{width:40px;height:40px;font-size:28px}}
/* v1.0.2: readable timed lyrics and explicit alternate-source chooser. */
.panel{position:fixed;z-index:8;top:0;bottom:61px;left:0;right:0;max-width:500px;margin:auto;background:#0b151b;padding:16px 18px 6px;display:flex;flex-direction:column;min-height:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}.panel-head strong{font-size:18px}.panel-head button{min-height:44px}.lyric-tools{display:flex;gap:6px;margin:4px 0;flex-shrink:0}.lyric-tools button{flex:1;padding:6px 2px;font-size:11px;min-height:44px}.lyric-scroll,.panel-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.lyric-scroll{position:relative;padding:22px 0 60px;white-space:pre-wrap;text-align:center}.lyric-line{display:block;width:100%;border:0;background:none;font-size:16px;color:#92a5ad;padding:12px 8px;line-height:1.65;white-space:pre-wrap;min-height:48px;overflow-wrap:anywhere}.lyric-line.current{color:#79eed0;background:#19332c;font-weight:700}.lyric-placeholder{white-space:pre-wrap;font-size:14px;color:#a8bac3;padding:18px 4px;line-height:1.8}.candidate{display:block;width:100%;text-align:left;margin:6px 0;font-size:14px}.candidate small{display:block;color:#a8bac3;font-size:12px;margin-top:4px}.row button{padding:8px 6px}.song:focus{border-color:#548d79}@media(max-width:260px){.panel{padding:8px}.lyric-tools button{font-size:10px}.row button{font-size:11px}} 

.search-sources{display:flex;gap:6px;overflow-x:auto;padding:2px 0 5px;scrollbar-width:thin}.source-status{flex:0 0 auto;min-height:44px;font-size:11px;padding:6px 10px;max-width:220px}.source-status.ok{color:var(--accent)}.source-status.error,.source-status.empty{color:#f2c082}.search-sources:empty{display:none}.song-detail{white-space:normal;line-height:1.45}#moreResults{margin-top:8px}#downloads p{font-size:14px;line-height:1.8}

nav{grid-template-columns:repeat(5,1fr)}nav button{min-width:0;padding-left:0;padding-right:0;font-size:11px}.row{flex-wrap:wrap}.row button{min-height:44px}.list-track{display:flex;gap:6px;align-items:center}.list-track .candidate{flex:1;min-width:0}.remove-track{flex:0 0 auto;min-height:44px}#playlistQuery,#playlistSource{width:100%;margin-bottom:8px;min-height:44px;background:#14242d;color:#fff;border:1px solid #32434c;border-radius:10px;padding:8px;box-sizing:border-box}#listTitle{overflow-wrap:anywhere}#listRenameForm{margin:8px 0}#listInfo{margin:6px 0}#listTracks{flex:1}#player .row button{font-size:12px;padding:6px 8px}
