:root{--accent:#ff6b2b;--accent-light:#ffac50;--accent-pale:#ffe8c0;--bg:#060e1a;--surface:#081222b8;--surface-2:#0c182ccc;--border:#ffffff1a;--text:#f2f5f8eb;--text-dim:#f2f5f880;--radius-card:18px;--radius-pill:999px;--blur:18px;font-size:16px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--text);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}.pwa-shell{background:radial-gradient(120% 60% at 10% 100%,#ff6b2b38 0%,#0000 55%),radial-gradient(80% 50% at 90% 0,#5028b42e 0%,#0000 55%),radial-gradient(100% 70%,#0a1432e6 0%,#040812 100%);width:100%;height:100dvh;min-height:100svh;position:relative;overflow:hidden}.pwa-layout{z-index:10;grid-template-rows:auto auto auto auto 1fr;width:100%;height:100%;padding:0;display:grid;position:relative;overflow:hidden}.pwa-header{-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);background:#040a1499;justify-content:space-between;align-items:center;gap:12px;padding:clamp(8px,1.5vh,14px) clamp(12px,2.5vw,28px);display:flex}.pwa-brand{align-items:center;gap:10px;display:flex}.pwa-brand-logo{object-fit:cover;border-radius:10px;flex-shrink:0;width:clamp(28px,4vw,40px);height:clamp(28px,4vw,40px)}.pwa-brand-titles{flex-direction:column;gap:1px;display:flex}.pwa-brand-text{letter-spacing:.04em;background:linear-gradient(90deg, var(--accent), var(--accent-light));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:clamp(.85rem,1.8vw,1.1rem);font-weight:700;line-height:1.15}.pwa-brand-sub{color:#f2f5f761;letter-spacing:.02em;font-size:clamp(.56rem,1vw,.68rem);font-weight:400;line-height:1}.pwa-header-right{align-items:center;gap:10px;display:flex;position:relative}.pwa-online{border-radius:var(--radius-pill);background:#ffffff0a;border:1px solid #ffffff1a;align-items:center;gap:5px;padding:5px 12px;font-size:clamp(.68rem,1.1vw,.8rem);display:flex}.pwa-online-dot{background:#4ade80;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:2.4s ease-in-out infinite online-pulse;box-shadow:0 0 6px #4ade80}@keyframes online-pulse{0%,to{opacity:1}50%{opacity:.4}}.pwa-online-count{color:#f2f5f7eb;font-weight:700}.pwa-online-label{color:#f2f5f773}.pwa-now-playing{-webkit-backdrop-filter:blur(var(--blur));border-bottom:1px solid var(--border);background:linear-gradient(135deg,#ff6b2b14 0%,#08122200 60%),#060e1a8c;align-items:center;gap:clamp(12px,2vw,24px);min-height:clamp(80px,14vh,120px);padding:clamp(12px,2vh,22px) clamp(12px,2.5vw,28px);display:flex}.pwa-art-wrap{flex-shrink:0;width:clamp(52px,8vw,84px);height:clamp(52px,8vw,84px);position:relative}.pwa-station-logo{object-fit:cover;background:#ffffff0f;border-radius:85px;width:100%;height:100%}.placeholder-logo{background:#ffffff0f;border-radius:85px;justify-content:center;align-items:center;font-size:1.8rem;display:flex}.pwa-buffering-ring{border:2px solid #0000;border-top-color:var(--accent);border-right-color:var(--accent-light);border-radius:50%;animation:.9s linear infinite spin;position:absolute;inset:-4px}.pwa-buffering-ring.playing{border-color:#3ddc84;animation:none;box-shadow:0 0 6px 1px #3ddc8459}@keyframes spin{to{transform:rotate(360deg)}}.pwa-station-info{flex:1;min-width:0}.pwa-station-name{letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:clamp(1.05rem,2.4vw,1.7rem);font-weight:700;line-height:1.2;overflow:hidden}.pwa-now-song{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;margin-top:4px;font-size:clamp(.72rem,1.4vw,.92rem);overflow:hidden}.pwa-status{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);opacity:.7;margin-top:4px;font-size:.72rem}.pwa-controls{flex-shrink:0;align-items:center;gap:clamp(6px,1.2vw,14px);display:flex}.pwa-btn{border:1px solid var(--border);width:clamp(44px,6vw,60px);height:clamp(44px,6vw,60px);color:var(--text);cursor:pointer;background:#ffffff0f;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:background .12s,transform 80ms,box-shadow .12s;display:flex}.pwa-btn svg{width:50%;height:50%}.pwa-btn:hover,.pwa-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;background:#ffffff24}.pwa-btn:active{transform:scale(.92)}.pwa-btn-play{background:linear-gradient(145deg, var(--accent), var(--accent-light));color:#09111b;border:none;width:clamp(54px,7.5vw,76px);height:clamp(54px,7.5vw,76px);box-shadow:0 0 24px #ff6b2b59}.pwa-btn-play:hover,.pwa-btn-play:focus-visible{outline:2px solid var(--accent-light);background:linear-gradient(145deg,#ff8040,#ffbe70);box-shadow:0 0 36px #ff6b2b8c}.pwa-btn-play.active{box-shadow:0 0 28px #ff6b2b99,0 0 0 3px #ffac5040}.pwa-genre-tabs{scrollbar-width:none;border-bottom:1px solid var(--border);background:#040a1466;flex-shrink:0;gap:6px;padding:clamp(8px,1.2vh,14px) clamp(12px,2.5vw,28px);display:flex;overflow-x:auto}.pwa-genre-btn{white-space:nowrap;border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:#ffffff0d;flex-shrink:0;align-items:center;min-height:36px;padding:clamp(6px,.9vh,10px) clamp(12px,1.5vw,20px);font-size:clamp(.72rem,1.2vw,.88rem);font-weight:600;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.pwa-genre-btn:hover,.pwa-genre-btn:focus-visible{color:var(--text);background:#ffffff1f;outline:none}.pwa-genre-btn.active{background:linear-gradient(135deg, var(--accent), var(--accent-light));color:#09111b;border-color:#0000}.pwa-genre-tabs{scrollbar-width:none;border-bottom:1px solid var(--border);background:#040a1480;flex-wrap:wrap;flex-shrink:0;gap:6px;padding:clamp(8px,1.2vh,12px) clamp(12px,2.5vw,24px);display:flex;overflow-x:auto}.pwa-genre-tabs::-webkit-scrollbar{display:none}.filter-chip{color:#f2f5f7a6;cursor:pointer;white-space:nowrap;background:#ffffff0a;border:1px solid #ffffff21;border-radius:999px;flex-shrink:0;align-items:center;padding:4px 11px;font-size:12px;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.filter-chip:hover{color:#f2f5f7e6;background:#ffffff17}.filter-chip.active{color:#ffb05c;background:#ff7b392e;border-color:#ff7b3980}.pwa-genre-tabs .filter-chip{min-height:32px;padding:5px clamp(10px,1.4vw,18px);font-size:clamp(.7rem,1.1vw,.84rem)}.pwa-chips-sep{background:#ffffff26;flex-shrink:0;align-self:center;width:1px;height:20px;margin:0 2px}.pwa-search-bar{-webkit-backdrop-filter:blur(14px);background:linear-gradient(125deg,#ffffff14 0%,#ffffff08 55%,#ffffff0f 100%),#08101ea6;border:1px solid #ffffff1a;border-radius:18px;flex-shrink:0;align-items:center;gap:8px;margin:0 clamp(12px,2.5vw,24px) 6px;padding:6px clamp(10px,2.2vw,16px);transition:border-color .14s,box-shadow .18s,transform .12s;display:flex;position:relative;box-shadow:inset 0 1px #ffffff14,0 6px 18px #00000038}.pwa-search-bar:focus-within{border-color:#ff7e409e;box-shadow:inset 0 1px #ffffff1f,0 0 0 2px #ff76322e,0 8px 24px #ff6b2b29}.pwa-search-icon{color:#f2f5f773;flex-shrink:0;width:18px;height:18px}.pwa-search-input{color:var(--text);appearance:none;touch-action:manipulation;white-space:nowrap;text-overflow:ellipsis;caret-color:var(--text);background:#ffffff0a;border:1px solid #ffffff1f;border-radius:999px;outline:none;flex:1;min-height:36px;padding:7px 14px;font-size:16px;line-height:22px;transition:border-color .12s,background .12s,box-shadow .12s;display:block;overflow:hidden}.pwa-search-input::placeholder{color:#f2f5f74d}.pwa-search-input-btn{text-align:left;cursor:text}.pwa-search-input-btn:not(.has-value){color:#f2f5f74d}.pwa-search-input:focus{background:#ffffff1a;border-color:#ff76328c;box-shadow:0 0 0 2px #ff76321f}.pwa-search-input::-webkit-search-cancel-button{-webkit-appearance:none}.pwa-search-clear{color:#f2f5f7b3;cursor:pointer;background:#ffffff14;border:1px solid #ffffff29;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.74rem;transition:background .12s,color .12s,transform .1s;display:flex}.pwa-search-clear:hover{color:#ffd0a2;background:#ff6b2b38}.pwa-search-clear:active{transform:scale(.92)}.pwa-search-clear.left{order:-2}.pwa-filter-btn{color:#f2f5f7b8;cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;transition:background .12s,border-color .12s,color .12s,transform .1s;display:flex;position:relative}.pwa-filter-btn svg{width:17px;height:17px}.pwa-filter-btn:hover,.pwa-filter-btn:focus-visible{color:#f2f5f7e6;background:#ffffff24;outline:none}.pwa-filter-btn:active{transform:scale(.93)}.pwa-filter-btn.has-active{color:#ffb05c;background:#ff6b2b2e;border-color:#ff6b2b80}.pwa-filter-badge{background:var(--accent);color:#fff;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:.62rem;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.pwa-search-modal-overlay{z-index:260;-webkit-backdrop-filter:blur(8px);opacity:0;pointer-events:none;background:#02060e9e;place-items:center;padding:16px;transition:opacity .14s;display:grid;position:fixed;inset:0}.pwa-search-modal-overlay.open{opacity:1;pointer-events:auto;animation:.16s fade-in}.pwa-search-modal{background:linear-gradient(150deg,#ffffff1c 0%,#ffffff08 48%,#ffffff14 100%),#081222f2;border:1px solid #ffffff24;border-radius:20px;width:min(460px,100%);padding:16px;animation:.18s cubic-bezier(.2,.8,.2,1) modal-pop;box-shadow:0 20px 46px #00000073,inset 0 1px #ffffff1a}@keyframes modal-pop{0%{opacity:0;transform:translateY(10px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.pwa-search-modal-title{letter-spacing:.01em;color:#f2f5f7f0;margin-bottom:10px;font-size:.92rem;font-weight:700}.pwa-search-modal-input{width:100%;color:var(--text);appearance:none;background:#ffffff14;border:1px solid #ffffff24;border-radius:13px;outline:none;padding:10px 12px;font-size:16px;transition:border-color .12s,box-shadow .12s,background .12s}.pwa-search-modal-input:focus{background:#ffffff1c;border-color:#ff80419e;box-shadow:0 0 0 2px #ff763229}.pwa-search-modal-input::placeholder{color:#f2f5f76b}.pwa-search-modal-actions{justify-content:space-between;gap:8px;margin-top:12px;display:flex}.pwa-search-modal-btn{cursor:pointer;border:1px solid #ffffff29;border-radius:11px;padding:9px 14px;font-size:.82rem;font-weight:700;transition:transform .1s,background .12s,border-color .12s,color .12s}.pwa-search-modal-btn:active{transform:translateY(1px)}.pwa-search-modal-btn.ghost{color:#f2f5f7c7;background:#ffffff0f}.pwa-search-modal-btn.clear{color:#f2f5f79e;background:#ffffff0d;margin-right:auto}.pwa-search-modal-btn.clear:hover,.pwa-search-modal-btn.clear:focus-visible{color:#f2f5f7e6;background:#ffffff1a;outline:none}.pwa-search-modal-btn.ghost:hover,.pwa-search-modal-btn.ghost:focus-visible{color:#f2f5f7f0;background:#ffffff1a;outline:none}.pwa-search-modal-btn.solid{color:#09111b;background:linear-gradient(145deg,#ff7a38,#ffb060);border-color:#ff7f3d8c}.pwa-search-modal-btn.solid:hover,.pwa-search-modal-btn.solid:focus-visible{background:linear-gradient(145deg,#ff8a4a,#ffbf73);outline:none}.pwa-filter-overlay{z-index:200;-webkit-backdrop-filter:blur(2px);background:#0000008c;align-items:flex-end;animation:.15s fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.pwa-filter-panel{-webkit-backdrop-filter:blur(24px);background:linear-gradient(#0e1830fa 0%,#060c1cfc 100%);border-top:1px solid #ffffff1f;border-radius:24px 24px 0 0;flex-direction:column;gap:12px;width:100%;padding:12px 24px 32px;animation:.22s cubic-bezier(.25,.46,.45,.94) slide-up;display:flex}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.pwa-filter-handle{background:#fff3;border-radius:2px;width:40px;height:4px;margin:0 auto 4px}.pwa-filter-title{color:#f2f5f7e6;letter-spacing:.02em;font-size:1rem;font-weight:700}.pwa-filter-section{color:#f2f5f766;text-transform:uppercase;letter-spacing:.08em;margin-top:4px;font-size:.72rem;font-weight:600}.pwa-filter-chips{flex-wrap:wrap;gap:6px;display:flex}.pwa-filter-close{color:#f2f5f7b3;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:14px;width:100%;margin-top:8px;padding:12px;font-size:.85rem;font-weight:600;transition:background .12s}.pwa-station-list{scrollbar-width:thin;scrollbar-color:#ffffff1f transparent;flex-direction:column;gap:2px;min-height:0;padding:clamp(6px,1vh,10px) clamp(12px,2.5vw,24px);display:flex;overflow:hidden auto}.pwa-station-list::-webkit-scrollbar{width:4px}.pwa-station-list::-webkit-scrollbar-track{background:0 0}.pwa-station-list::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:2px}.pwa-station-row{background:0 0;border:1px solid #0000;border-radius:10px;flex-shrink:0;align-items:center;width:100%;height:64px;transition:background .12s,border-color .12s;display:flex;position:relative;overflow:hidden}.pwa-station-row:hover{background:#ffffff0f;border-color:#ffffff14}.pwa-station-row.active{background:linear-gradient(90deg,#ff6b2b24 0%,#ffac500f 100%);border-color:#ff6b2b59}.pwa-station-row:focus-within{border-color:#ff6b2b4d}.pwa-station-btn{cursor:pointer;text-align:left;height:100%;color:var(--text);font-size:inherit;background:0 0;border:none;flex:1;align-items:center;gap:12px;min-width:0;padding:0 12px;display:flex;overflow:hidden}.pwa-station-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.pwa-row-art{object-fit:cover;background:#ffffff0f;border-radius:8px;flex-shrink:0;width:40px;height:40px}.pwa-row-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.pwa-row-name{white-space:nowrap;text-overflow:ellipsis;color:#f2f5f8e0;font-size:clamp(.78rem,1.3vw,.92rem);font-weight:600;overflow:hidden}.pwa-row-country{color:#f2f5f759;letter-spacing:.05em;text-transform:uppercase;font-size:.62rem;font-weight:500}.pwa-station-row.active .pwa-row-name{color:#f2f5f8f7}.pwa-row-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.pwa-row-dot.buffering{background:var(--accent-light);animation:.7s ease-in-out infinite pwa-dot-pulse}@keyframes pwa-dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.6)}}.pwa-card-eq{flex-shrink:0;align-items:flex-end;gap:2px;height:16px;display:flex}.pwa-card-eq span{background:var(--accent);border-radius:2px;width:3px;animation:.8s ease-in-out infinite eq-bar}.pwa-card-eq span:first-child{height:4px;animation-delay:0s}.pwa-card-eq span:nth-child(2){height:10px;animation-delay:.1s}.pwa-card-eq span:nth-child(3){height:14px;animation-delay:50ms}.pwa-card-eq span:nth-child(4){height:7px;animation-delay:.15s}@keyframes eq-bar{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}.pwa-load-more{color:var(--text-dim);cursor:pointer;letter-spacing:.04em;background:0 0;border:1px dashed #ffffff1f;border-radius:12px;width:100%;margin-top:4px;padding:11px 20px;font-size:.8rem;font-weight:600;transition:border-color .14s,color .14s,background .14s}.pwa-load-more:hover:not(:disabled),.pwa-load-more:focus-visible{border-color:var(--accent);color:var(--accent);background:#ff6b2b0f;outline:none}.pwa-load-more:disabled{opacity:.5;cursor:not-allowed}@media (width>=1100px) and (height>=600px){.pwa-layout{grid-template:"header header""list now"1fr"search now""tabs now"". ."/minmax(0,1fr) 340px}.pwa-header{grid-area:header}.pwa-now-playing{border-left:1px solid var(--border);min-height:unset;text-align:center;background:linear-gradient(160deg,#ff6b2b1a 0%,#060e1ab3 100%);border-bottom:none;flex-direction:column;grid-area:now;justify-content:center;align-items:center;gap:22px;padding:32px 24px}.pwa-now-playing .pwa-controls{margin-top:8px}.pwa-art-wrap{width:clamp(90px,11vw,150px);height:clamp(90px,11vw,150px)}.pwa-station-name{white-space:normal;word-break:break-word;text-overflow:unset;font-size:clamp(1.1rem,1.6vw,1.45rem);overflow:visible}.pwa-tabs{grid-area:tabs}.pwa-search-bar{grid-area:search;margin:0 12px 6px;padding:6px 12px}.pwa-station-list{grid-area:list;min-height:0;padding-right:12px}}@media (width<=600px){.pwa-now-playing{gap:10px;min-height:clamp(70px,16vh,100px);padding:10px 14px}.pwa-station-name{font-size:.96rem}.pwa-genre-tabs{flex-wrap:nowrap;padding:7px 10px}.pwa-station-list{gap:0;padding:4px 10px}}@media (hover:none){.pwa-station-row:focus,.pwa-btn:focus,.pwa-genre-tabs .filter-chip:focus,.pwa-vol-btn:focus{outline:3px solid var(--accent);outline-offset:3px}}@media (prefers-reduced-motion:reduce){.pwa-idle-bars span,.pwa-card-eq span,.pwa-buffering-ring{animation:none}}.pwa-tabs{border-bottom:1px solid var(--border);background:#040a1499;flex-shrink:0;display:flex}.pwa-tab{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 12px;font-size:clamp(.75rem,1.2vw,.88rem);font-weight:600;transition:color .14s,border-color .14s;display:flex;position:relative}.pwa-tab.active{color:var(--text);border-bottom-color:var(--accent)}.pwa-tab-badge{background:var(--accent);color:#fff;border-radius:999px;padding:1px 5px;font-size:.58rem;font-weight:700;line-height:1.4}.pwa-tab-spinner{border:2px solid #fff3;border-top-color:var(--accent);border-radius:50%;width:10px;height:10px;animation:.8s linear infinite spin;display:inline-block}.pwa-fav-btn{cursor:pointer;opacity:.3;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:64px;padding:0;font-size:1.15rem;transition:opacity .12s,transform 80ms;display:flex}.pwa-fav-btn:hover,.pwa-fav-btn:focus-visible{opacity:.75;outline:none}.pwa-fav-btn.active{opacity:1}.pwa-fav-btn:active{transform:scale(.82)}.pwa-loading-hint{text-align:center;color:var(--text-dim);padding:16px 20px;font-size:.78rem;font-style:italic}@media (width<=600px){.pwa-station-row{padding:0}.pwa-station-btn{padding:8px 10px}}
