*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0b0b0f;--panel: #17171d;--panel-2: #22222a;--text: #ffffff;--muted: #999;--dim: #666;--accent: #8ab4ff;--heart: #ff6b8a;--danger: #ff6b6b}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;height:100vh;overflow:hidden}#root{height:100vh;display:flex;flex-direction:column}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input{font:inherit}.login{height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:340px;display:flex;flex-direction:column;gap:12px}.login-card h1{text-align:center;font-size:42px;font-weight:800}.login-card p{text-align:center;color:var(--muted);margin-bottom:8px}.login-card input{background:var(--panel);border:none;border-radius:10px;padding:13px 16px;color:var(--text);font-size:15px}.login-card .primary{margin-top:4px}.login-card .toggle{color:var(--accent);font-size:14px;margin-top:10px}.error{color:var(--danger);font-size:14px;text-align:center}.primary{background:#fff;color:#000;font-weight:700;border-radius:10px;padding:12px 22px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.primary:disabled{opacity:.4}.topbar{display:flex;gap:10px;padding:14px 18px 10px;align-items:center}.topbar .logo{font-weight:800;font-size:20px;margin-right:6px;cursor:pointer}.topbar input{flex:1;max-width:420px;background:var(--panel);border:none;border-radius:10px;padding:10px 14px;color:var(--text)}.topbar .spacer{flex:1}.iconbtn{background:var(--panel);border-radius:10px;padding:9px 13px;font-size:15px}.iconbtn:hover,.segment:hover{background:var(--panel-2)}.segments{display:flex;gap:8px;padding:0 18px 10px}.segment{background:var(--panel);border-radius:18px;padding:7px 16px;font-size:13px;font-weight:600;color:var(--muted)}.segment.active{background:#fff;color:#000}.content{flex:1;overflow-y:auto;padding:4px 18px 24px}.track-row{display:flex;align-items:center;gap:12px;padding:7px 8px;border-radius:8px;cursor:pointer}.track-row:hover{background:var(--panel)}.track-row .art{width:42px;height:42px;border-radius:6px;background:var(--panel);display:flex;align-items:center;justify-content:center;color:var(--dim);flex-shrink:0;object-fit:cover}.track-row .meta{flex:1;min-width:0}.track-row .title{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-row .title.active{color:var(--accent)}.track-row .sub{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.track-row .dur{color:var(--dim);font-size:13px;font-variant-numeric:tabular-nums}.track-row .rowbtn{color:var(--dim);font-size:15px;padding:4px;visibility:hidden}.track-row:hover .rowbtn{visibility:visible}.track-row .rowbtn:hover{color:#fff}.track-row .rowbtn.liked{visibility:visible;color:var(--heart)}.album-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:18px;padding-top:8px}.album-card{cursor:pointer}.album-card .cover{width:100%;aspect-ratio:1;border-radius:10px;background:var(--panel);display:flex;align-items:center;justify-content:center;font-size:40px;color:var(--dim);object-fit:cover}.album-card .t{font-size:14px;font-weight:600;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.album-card .s{font-size:12px;color:var(--muted);margin-top:2px}.list-row{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:8px;cursor:pointer}.list-row:hover{background:var(--panel)}.list-row .bubble{width:42px;height:42px;border-radius:50%;background:var(--panel);display:flex;align-items:center;justify-content:center;color:var(--dim)}.list-row .name{flex:1;font-size:15px}.list-row .count{color:var(--muted);font-size:13px}.detail-header{display:flex;gap:22px;align-items:flex-end;padding:18px 8px}.detail-header .cover{width:180px;height:180px;border-radius:12px;background:var(--panel);display:flex;align-items:center;justify-content:center;font-size:56px;color:var(--dim);object-fit:cover}.detail-header h2{font-size:30px;font-weight:800}.detail-header .sub{color:var(--muted);margin-top:6px}.detail-header .actions{margin-top:14px;display:flex;gap:10px}.backbtn{color:var(--muted);font-size:14px;padding:8px 8px 0}.backbtn:hover{color:#fff}.section-title{color:var(--accent);font-size:15px;font-weight:700;padding:16px 8px 6px}.playerbar{border-top:1px solid #2a2a33;background:var(--panel);padding:10px 18px;display:grid;grid-template-columns:280px 1fr 280px;align-items:center;gap:18px}.playerbar .now{display:flex;align-items:center;gap:12px;min-width:0}.playerbar .now img,.playerbar .now .art{width:48px;height:48px;border-radius:6px;background:var(--panel-2);display:flex;align-items:center;justify-content:center;color:var(--dim);object-fit:cover}.playerbar .center{display:flex;flex-direction:column;align-items:center;gap:6px}.playerbar .controls{display:flex;align-items:center;gap:22px}.playerbar .controls button{font-size:18px;color:#ddd}.playerbar .controls button:hover{color:#fff}.playerbar .controls .play{background:#fff;color:#000;width:38px;height:38px;border-radius:50%;font-size:15px;display:flex;align-items:center;justify-content:center}.playerbar .scrub{display:flex;align-items:center;gap:10px;width:100%;max-width:560px}.playerbar .scrub input{flex:1;accent-color:var(--accent)}.playerbar .scrub .t{color:var(--dim);font-size:12px;font-variant-numeric:tabular-nums;min-width:38px}.playerbar .right{display:flex;justify-content:flex-end;align-items:center;gap:14px}.playerbar .right input{width:90px;accent-color:var(--accent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background:var(--panel);border-radius:14px;padding:20px;width:420px;max-height:70vh;overflow-y:auto}.modal h3{margin-bottom:12px}.modal .row{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:8px;cursor:pointer}.modal .row:hover{background:var(--panel-2)}.modal input{width:100%;background:var(--panel-2);border:none;border-radius:8px;padding:10px 12px;color:var(--text);margin-bottom:10px}.muted{color:var(--muted)}.small{font-size:13px}.empty{text-align:center;color:var(--muted);padding:60px 0}
