:root{--fpm-accent: var(--accent, #6c6fc6);--fpm-green: #00e5a0;--fpm-glass: rgba(10, 10, 18, .98);--fpm-surface: rgba(255, 255, 255, .04);--fpm-border: rgba(255, 255, 255, .07);--fpm-text: #ffffff;--fpm-muted: rgba(255, 255, 255, .38);--fpm-dur: .42s}.fpm-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:800;background:#000000c7;backdrop-filter:blur(20px) saturate(150%);-webkit-backdrop-filter:blur(20px) saturate(150%);opacity:0;pointer-events:none;transition:opacity var(--fpm-dur) ease}.fpm-backdrop.fpm-open{opacity:1;pointer-events:all}.fpm-modal{position:fixed;z-index:810;pointer-events:none;font-family:Montserrat,sans-serif;left:0;right:0;top:68px;bottom:88px;width:calc(100% - 28px);max-width:460px;margin:auto;height:fit-content;background:var(--fpm-glass);border-radius:24px;border:1px solid var(--fpm-border);overflow:hidden;transform:translateY(20px);opacity:0;transition:transform var(--fpm-dur) cubic-bezier(.22,1,.36,1),opacity calc(var(--fpm-dur)*.7) ease;box-shadow:0 32px 80px #000000bf,0 0 0 1px #ffffff0d,inset 0 1px #ffffff12}.fpm-modal:after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 5%,rgba(0,229,160,.45) 40%,rgba(0,229,160,.45) 60%,transparent 95%);z-index:1}.fpm-modal.fpm-open{transform:translateY(0);opacity:1;pointer-events:all}@media(min-width:640px){.fpm-modal{top:50%;left:50%;right:auto;bottom:auto;margin:0;height:auto;transform:translate(-50%,-42%) scale(.93);width:min(840px,90vw);max-width:none;border-radius:24px;border:1px solid var(--fpm-border);box-shadow:0 48px 96px #000000bf,0 0 0 1px #ffffff0a,inset 0 1px #ffffff0f}.fpm-modal.fpm-open{transform:translate(-50%,-50%) scale(1)}}.fpm-handle{display:flex;justify-content:center;padding:12px 0 4px;cursor:grab;flex-shrink:0;touch-action:none}.fpm-handle span{width:36px;height:3px;border-radius:3px;background:#ffffff26}@media(min-width:640px){.fpm-handle{display:none}}.fpm-close{position:absolute;top:16px;right:18px;width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:#ffffff0f;color:#ffffff80;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,border-color .2s;z-index:10}.fpm-close:hover{background:#ffffff24;border-color:#fff3;color:#fff}.fpm-inner{padding:22px 24px 28px;display:flex;flex-direction:column;gap:20px}@media(min-width:640px){.fpm-inner{flex-direction:row;gap:32px;padding:28px 32px 32px;align-items:flex-start}}.fpm-artwork-col{flex-shrink:0}@media(min-width:640px){.fpm-artwork-col{width:272px}}.fpm-artwork-wrap{position:relative;width:100%;max-width:220px;margin:0 auto;aspect-ratio:1;border-radius:16px;overflow:hidden;background:#111;box-shadow:0 24px 56px #000000a6,0 0 0 1px #ffffff0d}@media(min-width:640px){.fpm-artwork-wrap{max-width:100%}}.fpm-artwork-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}.fpm-artwork-wrap:hover img{transform:scale(1.04)}.fpm-onair{position:absolute;top:10px;right:10px;background:#0009;border:1px solid rgba(255,255,255,.12);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:50px;padding:4px 11px 4px 8px;display:flex;align-items:center;gap:6px;font-size:9px;font-weight:700;letter-spacing:1.5px;color:#fff;text-transform:uppercase}.fpm-onair-dot{width:7px;height:7px;border-radius:50%;background:#ff4757;position:relative;flex-shrink:0}.fpm-onair-dot:before,.fpm-onair-dot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#ff4757;opacity:0;animation:fpmLivePulse 2s ease-out infinite}.fpm-onair-dot:after{animation-delay:1s}@keyframes fpmLivePulse{0%{opacity:0}40%{opacity:.5}to{transform:scale(2.3);opacity:0}}.fpm-info-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:18px}.fpm-meta-block{position:relative;padding:12px 14px 14px;border-radius:14px;overflow:hidden;background:#ffffff08;border:1px solid rgba(255,255,255,.05)}#fpmVisualizer{position:absolute;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0;opacity:.55;-webkit-mask-image:linear-gradient(to top,rgba(0,0,0,1) 0%,rgba(0,0,0,.6) 55%,transparent 100%);mask-image:linear-gradient(to top,rgba(0,0,0,1) 0%,rgba(0,0,0,.6) 55%,transparent 100%)}.fpm-meta-block .fpm-station-tag,.fpm-meta-block .fpm-song,.fpm-meta-block .fpm-artist{position:relative;z-index:1}.fpm-station-tag{display:inline-flex;align-items:center;gap:5px;font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--fpm-green);background:#00e5a014;border:1px solid rgba(0,229,160,.18);border-radius:50px;padding:3px 10px 3px 7px;width:fit-content}.fpm-song{font-size:clamp(18px,4.5vw,25px);font-weight:900;text-transform:uppercase;color:var(--fpm-text);line-height:1.1;letter-spacing:-.3px;margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fpm-artist{font-size:12px;font-weight:500;color:#ffffff7a;margin:4px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fpm-play-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:15px;border-radius:14px;border:none;background:#fff;color:#000;font-family:Montserrat,sans-serif;font-size:13px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s;box-shadow:0 8px 24px #0000004d}.fpm-play-btn:hover{background:#f2f2f2;transform:translateY(-1px);box-shadow:0 14px 32px #0006}.fpm-play-btn:active{transform:scale(.97)}.fpm-play-btn.is-playing{background:var(--fpm-green)}.fpm-play-btn svg{width:16px;height:16px;flex-shrink:0}.fpm-vol-row{display:flex;align-items:center;gap:10px}.fpm-vol-icon{color:#ffffff47;flex-shrink:0;display:flex;align-items:center}.fpm-vol-track{flex:1;height:3px;background:#ffffff1a;border-radius:50px;position:relative;cursor:pointer}.fpm-vol-fill{position:absolute;left:0;top:0;height:100%;background:linear-gradient(90deg,var(--fpm-accent),var(--fpm-green));border-radius:50px;pointer-events:none;transition:width .05s}.fpm-vol-thumb{position:absolute;top:50%;transform:translate(-50%,-50%);width:13px;height:13px;border-radius:50%;background:#fff;box-shadow:0 2px 8px #0006;cursor:grab;transition:transform .1s}.fpm-vol-thumb:hover{transform:translate(-50%,-50%) scale(1.35)}.fpm-vol-label{font-size:10px;font-weight:600;color:var(--fpm-muted);min-width:24px;text-align:right}.fpm-history-btn{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;border-radius:12px;border:1px solid var(--fpm-border);background:var(--fpm-surface);color:#ffffff80;font-family:Montserrat,sans-serif;font-size:10px;font-weight:700;letter-spacing:1.8px;text-transform:uppercase;cursor:pointer;transition:background .22s,border-color .22s,color .22s;position:relative;overflow:hidden}.fpm-history-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(0,229,160,.05),transparent);transform:translate(-100%);transition:transform .55s ease;pointer-events:none}.fpm-history-btn:hover:before{transform:translate(100%)}.fpm-history-btn:hover{border-color:#00e5a038;background:#00e5a00d;color:#ffffffc7}.fpm-history-btn .fpm-hbtn-label{flex:1;text-align:left}.fpm-history-btn .fpm-hbtn-count{width:18px;height:18px;border-radius:50%;background:#00e5a01f;border:1px solid rgba(0,229,160,.22);color:var(--fpm-green);font-size:9px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.fpm-history-btn .fpm-hbtn-arrow{flex-shrink:0;color:#ffffff2e;transition:transform .3s ease,color .2s}.fpm-history-btn:hover .fpm-hbtn-arrow{transform:translate(3px);color:var(--fpm-green)}.fph-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:900;background:#0000008c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .35s ease}.fph-backdrop.fph-open{opacity:1;pointer-events:all}.fph-modal{position:fixed;z-index:910;pointer-events:none;font-family:Montserrat,sans-serif;inset:auto 0 0 0;width:100%;background:#080810fc;border-top-left-radius:32px;border-top-right-radius:32px;border:1px solid rgba(255,255,255,.09);border-bottom:none;overflow:hidden;transform:translateY(100%);opacity:0;transition:transform .44s cubic-bezier(.22,1,.36,1),opacity .3s ease;box-shadow:0 -20px 60px #0009}.fph-modal:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;z-index:1;background:linear-gradient(90deg,transparent 8%,rgba(0,229,160,.5) 35%,rgba(0,229,160,.5) 65%,transparent 92%)}.fph-modal.fph-open{transform:translateY(0);opacity:1;pointer-events:all}@media(min-width:640px){.fph-modal{inset:50% auto auto 50%;transform:translate(-50%,-42%) scale(.92);width:min(480px,88vw);max-height:78vh;border-radius:24px;border:1px solid rgba(255,255,255,.1);box-shadow:0 40px 80px #000c,0 0 0 1px #ffffff0a,inset 0 1px #ffffff12;display:flex;flex-direction:column}.fph-modal.fph-open{transform:translate(-50%,-50%) scale(1)}}.fph-handle{display:flex;justify-content:center;padding:13px 0 6px;cursor:grab;flex-shrink:0;touch-action:none}.fph-handle span{width:36px;height:3px;border-radius:3px;background:#ffffff21}@media(min-width:640px){.fph-handle{display:none}}.fph-header{display:flex;align-items:center;justify-content:space-between;padding:16px 22px 14px;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}.fph-title-group{display:flex;align-items:center;gap:10px}.fph-icon{width:32px;height:32px;border-radius:9px;background:#00e5a01a;border:1px solid rgba(0,229,160,.2);display:flex;align-items:center;justify-content:center;color:var(--fpm-green);flex-shrink:0}.fph-title{font-size:14px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#fff}.fph-subtitle{font-size:10px;font-weight:500;color:#ffffff59;letter-spacing:.5px;margin-top:1px}.fph-close{width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:#ffffff0d;color:#ffffff73;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,border-color .2s}.fph-close:hover{background:#ffffff1f;border-color:#ffffff2e;color:#fff}.fph-body{overflow-y:auto;overflow-x:hidden;flex:1;scrollbar-width:thin;scrollbar-color:rgba(0,229,160,.2) transparent;padding:14px 16px 24px}.fph-body::-webkit-scrollbar{width:3px}.fph-body::-webkit-scrollbar-thumb{background:#00e5a033;border-radius:3px}.fph-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 0;color:#fff3;font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;text-align:center}.fph-empty svg{opacity:.2}.fph-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.fph-track{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:14px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);cursor:default;transition:background .2s,border-color .2s,transform .2s;position:relative;opacity:0;transform:translateY(10px)}.fph-modal.fph-open .fph-track{animation:fphTrackIn .4s ease forwards}.fph-modal.fph-open .fph-track:nth-child(1){animation-delay:.07s}.fph-modal.fph-open .fph-track:nth-child(2){animation-delay:.14s}.fph-modal.fph-open .fph-track:nth-child(3){animation-delay:.21s}.fph-modal.fph-open .fph-track:nth-child(4){animation-delay:.28s}@keyframes fphTrackIn{to{opacity:1;transform:translateY(0)}}.fph-track:hover{background:#00e5a00d;border-color:#00e5a026;transform:translate(-2px)}.fph-num{font-size:11px;font-weight:800;font-style:italic;color:#00e5a04d;min-width:16px;text-align:center;flex-shrink:0}.fph-art{width:52px;height:52px;border-radius:10px;overflow:hidden;flex-shrink:0;background:#ffffff0f;box-shadow:0 4px 16px #0006,0 0 0 1px #ffffff0d;position:relative}.fph-art img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}.fph-track:hover .fph-art img{transform:scale(1.08)}.fph-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.06) 0%,transparent 60%)}.fph-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.fph-track-song{font-size:13px;font-weight:700;color:#ffffffe6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fph-track-artist{font-size:11px;font-weight:500;color:#ffffff61;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fph-wave{flex-shrink:0;display:flex;align-items:flex-end;gap:2px;height:16px;opacity:.15}.fph-wave span{display:block;width:2px;background:var(--fpm-green);border-radius:2px}.fph-wave span:nth-child(1){height:50%}.fph-wave span:nth-child(2){height:100%}.fph-wave span:nth-child(3){height:65%}.fph-wave span:nth-child(4){height:38%}.fph-time{font-size:9px;font-weight:600;color:#ffffff2e;letter-spacing:.5px;flex-shrink:0;text-align:right;display:flex;flex-direction:column;gap:4px;align-items:flex-end}.fph-footer{padding:12px 16px 16px;border-top:1px solid rgba(255,255,255,.05);text-align:center;flex-shrink:0}.fph-footer-text{font-size:9px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:#ffffff26}body.fpm-modal-open{overflow:hidden}#app-player .player-left .player-artwork-style{cursor:pointer;transition:transform .2s,box-shadow .2s}#app-player .player-left .player-artwork-style:hover{transform:scale(1.08);box-shadow:0 0 0 4px #00e5a047}#fpmFab{position:fixed;bottom:calc(72px + .5rem);right:1.25rem;z-index:99;width:36px;height:36px;border-radius:8%;border:1px solid rgba(255,255,255,.15);background:#ffffff14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff9;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s,transform .2s}#fpmFab:hover{background:#ffffff26;color:#fff;transform:scale(1.08)}#fpmFab svg{width:16px;height:16px}
