:root{--bg:#0e0d11;--surface:#18161c;--surface-2:#221f27;--text:#e6dfd4;--text-strong:#efe8dc;--muted:#8d8579;--dim:#5e584f;--border:#2d2a33;--accent:#8fb39a;--accent-soft:rgba(143,179,154,.14);--accent-line:rgba(143,179,154,.4);--warm:#d2a15e;--warm-soft:rgba(210,161,94,.14);--warm-line:rgba(210,161,94,.5);--danger:#c25a4a;--done:var(--accent);--done-soft:var(--accent-soft);--radius:16px;--font-ui:"Manrope",-apple-system,BlinkMacSystemFont,system-ui,sans-serif;--font-zh:"Noto Serif SC","PingFang SC","Hiragino Sans GB","Songti SC",serif;color-scheme:dark}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-ui);line-height:1.45;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font-family:inherit;cursor:pointer}a{color:inherit;text-decoration:none}.topbar{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:env(safe-area-inset-top,0) 12px 0;height:calc(56px + env(safe-area-inset-top, 0));pointer-events:none}.topbar button{pointer-events:auto;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--text);display:grid;place-items:center;padding:0}.topbar button:active{background:var(--surface-2)}.topbar button:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}.auth-wrap{max-width:440px;margin:0 auto;padding:clamp(2.5rem,12vw,5rem) 18px 3rem}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 14px 14px;margin-bottom:14px;display:flex;flex-direction:column;gap:8px}.auth-title{font-size:1.25rem;font-weight:500;margin:0 0 .2rem;color:var(--text-strong);letter-spacing:-.01em}.auth-sub{color:var(--muted);margin:0 0 1rem;font-size:.8rem;line-height:1.5}.auth-h2{font-size:1.02rem;font-weight:500;margin:0 0 .8rem;color:var(--text-strong)}.auth-field{display:block;margin-bottom:10px}.auth-field span{display:block;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}.auth-input{width:100%;padding:10px 12px;font-size:1rem;font-family:inherit;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.auth-input:focus{outline:none;border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-soft)}.auth-btn{width:100%;padding:11px 18px;font-size:.9rem;font-weight:600;border:none;border-radius:999px;background:var(--accent);color:var(--bg);margin-top:6px}.auth-btn:disabled{opacity:.55}.auth-btn:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}.auth-btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text);font-weight:500}.auth-err{color:var(--danger)}.auth-err,.auth-ok{font-size:.8rem;margin:0 0 6px}.auth-ok{color:var(--accent)}.auth-note{background:var(--accent-soft);border:1px solid var(--accent-line);color:var(--text);padding:10px 12px;border-radius:12px;font-size:.8rem;margin-bottom:12px;line-height:1.5}.auth-link{display:inline-block;color:var(--accent);font-size:.82rem;margin-top:6px}.appContent{padding-bottom:calc(130px + env(safe-area-inset-bottom, 0))}.bottomNav{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;justify-content:space-around;align-items:stretch;height:calc(60px + env(safe-area-inset-bottom, 0));padding:4px 6px env(safe-area-inset-bottom,0);background:var(--bg);border-top:1px solid var(--border)}.bottomNav__tab{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--dim);font-size:.64rem;letter-spacing:.01em;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bottomNav__tab.is-active{color:var(--text)}.bottomNav__tab:active{opacity:.7}.miniPlayer{position:fixed;left:0;right:0;z-index:59;bottom:calc(68px + env(safe-area-inset-bottom, 0));margin:0 12px;height:48px;display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;font-size:.74rem;color:var(--muted)}.miniPlayer__title{flex:1 1;min-width:0;display:flex;align-items:baseline;gap:8px;background:none;border:none;padding:0;text-align:left;color:inherit;font-size:inherit}.miniPlayer__label{flex:none}.miniPlayer__name{color:var(--text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.miniPlayer__btn{width:30px;height:30px;border-radius:50%;flex:none;padding:0;border:1px solid var(--border);background:none;color:var(--muted);display:grid;place-items:center}.miniPlayer__btn--play{color:var(--accent)}.miniPlayer.on .miniPlayer__btn--play{background:var(--accent-soft);border-color:var(--accent-line)}.miniPlayer__btn:active{background:var(--surface)}.miniPlayer__btn:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px}