:root{color-scheme:dark;--bg:#0b1120;--card:#121d31;--card2:#182640;--line:#273753;--text:#edf5ff;--muted:#8e9eb7;--blue:#62bdfc;--mint:#4de0c0;--error:#f49a9a;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{min-height:100%;background:var(--bg)}body{margin:0;background:radial-gradient(circle at 30% -10%,#1d3151 0%,transparent 45%),var(--bg);color:var(--text);min-height:100vh}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:not-allowed}a{color:#91d5ff}.shell{max-width:1100px;margin:auto;padding:24px 20px 12px}.header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px}.brand,.header-right{display:flex;gap:12px;align-items:center}.logo,.login-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#2e91d2,#4863bf);box-shadow:0 8px 30px #104e8055;font-size:26px}.brand b{font-size:21px;letter-spacing:-.7px}.brand small{display:block;margin-top:2px;color:var(--muted);letter-spacing:2.5px;font-size:9px;font-weight:700}.connection{border:1px solid #2c4760;border-radius:99px;padding:8px 11px;color:#b6cce1;font-size:12px;white-space:nowrap}.dot,.live-dot{display:inline-block;width:7px;height:7px;border-radius:99px;background:#e5ac5b;margin-right:4px}.dot.online{background:#37d9a3;box-shadow:0 0 8px #37d9a3}.icon-btn{height:38px;min-width:38px;border:1px solid var(--line);border-radius:11px;display:grid;place-items:center;background:#172339;color:var(--text);font-size:18px;text-decoration:none}.dashboard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px}.dashboard[hidden]{display:none}.player-card,.library-card{background:linear-gradient(155deg,#17253e,#101a2b);border:1px solid #2a3950;border-radius:25px;box-shadow:0 20px 65px #0002;position:relative;overflow:hidden}.player-card{padding:34px 32px 30px;text-align:center}.album-glow{position:absolute;width:260px;height:260px;background:#3684d822;filter:blur(55px);border-radius:50%;top:0;left:50%;transform:translateX(-50%);pointer-events:none}.artwork{position:relative;margin:8px auto 26px;width:175px;aspect-ratio:1;border-radius:27px;background:linear-gradient(145deg,#4776b8,#203b64 75%);display:grid;place-items:center;box-shadow:0 20px 40px #0005,inset 0 2px 5px #ffffff35}.artwork span{font-size:93px;color:#b4dbff}.now-label{font-size:10px;font-weight:800;color:#68d2bd;letter-spacing:2.3px}.live-dot{background:var(--mint);margin-right:6px}h1{font-size:21px;margin:12px 0 7px;font-weight:750;overflow-wrap:anywhere}#play-state{color:var(--muted);margin:0 0 26px;font-size:13px}.progress-row{display:flex;justify-content:space-between;color:#9fb0c8;font-size:12px;font-variant-numeric:tabular-nums;margin:0 0 9px}.progress-track{height:6px;border-radius:99px;background:#2c3a51;overflow:hidden}.progress-track>div{height:100%;width:0%;border-radius:99px;background:linear-gradient(90deg,#5296fe,#64e0c2);transition:width .45s linear}.controls{display:flex;align-items:center;justify-content:center;gap:14px;margin:27px 0 31px}.control.round{width:48px;height:48px;border-radius:50%;border:1px solid #354965;color:#dbeaff;font-size:21px;background:#253651;display:grid;place-items:center;transition:transform .15s}.control.round:active{transform:scale(.92)}.control.primary{height:64px;width:64px;font-size:24px;border:none;background:linear-gradient(145deg,#66caff,#4488e9);color:#061a32;box-shadow:0 10px 28px #3a99ed55}.volume-group{display:flex;align-items:center;gap:12px;background:#101b2e;padding:13px 16px;border-radius:14px;border:1px solid #2b3b51}.volume-group label{font-size:12px;color:var(--muted);white-space:nowrap}.volume-icon{color:var(--blue)}input[type=range]{min-width:0;flex:1;accent-color:#70c9fa;cursor:pointer}.volume-group strong{font-size:12px;min-width:36px;text-align:right}.library-card{padding:28px 25px}.section-header{display:flex;justify-content:space-between;align-items:start;gap:8px}.section-header h2{margin:0;font-size:21px}.section-header p{font-size:12px;color:var(--muted);line-height:1.6;margin:8px 0 20px}.count{color:#84c9fb;border:1px solid #315174;background:#1d314b;font-size:11px;border-radius:30px;padding:7px 10px;white-space:nowrap}.search-wrap{display:flex;gap:12px;align-items:center;background:#0e182a;border:1px solid #30415c;border-radius:12px;padding:0 12px;margin-bottom:16px}.search-wrap span{font-size:24px;color:var(--muted)}.search-wrap input{border:0;outline:none;min-width:0;background:transparent;color:var(--text);width:100%;height:44px;font-size:14px}.tracks{min-height:160px;max-height:390px;overflow:auto;padding-right:5px}.track{display:flex;width:100%;text-align:left;align-items:center;gap:12px;border:1px solid transparent;border-bottom-color:#283853;background:transparent;color:var(--text);padding:13px 9px;border-radius:11px}.track:hover,.track.active{background:#213651;border-color:#355979}.track-icon{width:42px;height:42px;border-radius:12px;background:#2a3f5c;color:#8ccaf5;font-size:19px;display:grid;place-items:center;flex-shrink:0}.track.active .track-icon{color:var(--mint);background:#16464b}.track-body{min-width:0;flex:1}.track-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650}.track-sub{display:block;margin-top:5px;color:#8da4bd;font-size:11px}.track-play{font-size:18px;color:#9fd6f7}.empty{font-size:13px;color:var(--muted);text-align:center;padding:58px 16px;line-height:1.8}.upload-control{display:flex;align-items:center;gap:14px;margin-top:20px;padding:15px 14px;background:#1b3047;border:1px dashed #4b6a88;border-radius:13px;cursor:pointer}.upload-symbol{font-size:23px;width:35px;height:35px;border-radius:10px;background:#30516b;display:grid;place-items:center}.upload-control b,.upload-control small{display:block}.upload-control b{font-size:13px}.upload-control small{font-size:11px;color:var(--muted);margin-top:5px}.upload-chevron{margin-left:auto;font-size:26px;color:#94b3c8}#upload-status{font-size:12px;color:var(--mint);margin-top:10px}footer{text-align:center;font-size:10px;letter-spacing:1.1px;color:#6e829e;margin-top:25px;overflow-wrap:anywhere}.login-screen{position:fixed;inset:0;background:#0a1120ee;display:grid;place-items:center;padding:18px;z-index:20;backdrop-filter:blur(14px)}.login-screen[hidden]{display:none}.login-card{width:min(100%,390px);background:linear-gradient(150deg,#1b2a43,#111e32);border:1px solid #36455e;border-radius:24px;padding:34px;box-shadow:0 20px 70px #0007;text-align:center}.login-icon{margin:0 auto 20px;width:70px;height:70px;font-size:39px}.login-card h1{font-size:25px}.login-card p{font-size:13px;color:var(--muted);margin-bottom:30px}.login-card label{display:block;text-align:left;font-size:12px;color:#b7c7df;margin-bottom:9px}.login-card input{width:100%;height:51px;outline:0;border-radius:11px;border:1px solid #496080;background:#0b172a;color:var(--text);padding:12px;font-size:19px;letter-spacing:6px;text-align:center}.login-submit{width:100%;background:linear-gradient(120deg,#54baf6,#6099fa);color:#0a2035;border:0;border-radius:12px;padding:15px;margin-top:15px;font-weight:800}.login-submit span{padding-left:8px}.login-card>a{display:inline-block;margin-top:15px;font-size:12px}.error{min-height:20px;color:var(--error);font-size:12px;margin-top:10px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,140px);background:#24405c;color:#fff;border:1px solid #4b789a;border-radius:12px;padding:12px 20px;max-width:calc(100% - 30px);box-shadow:0 15px 35px #0008;z-index:30;transition:transform .25s ease;line-height:1.5;font-size:13px}.toast.show{transform:translate(-50%,0)}@media(max-width:760px){.shell{padding:15px 13px}.header{margin-bottom:18px}.brand b{font-size:18px}.dashboard{grid-template-columns:1fr;gap:14px}.player-card{padding:27px 21px 23px}.artwork{width:132px;border-radius:22px;margin-bottom:18px}.artwork span{font-size:70px}.controls{margin:21px 0 23px}.library-card{padding:22px 17px}.tracks{max-height:310px}.connection{font-size:0;padding:8px}.connection .dot{margin:0;height:9px;width:9px}.icon-btn{width:36px;height:36px}.volume-group{gap:9px}.volume-group label{font-size:11px}.track{min-height:66px}footer{line-height:1.6}}
