:root{--bg:#0d0f14;--panel:#151821;--panel2:#1d2230;--text:#f7f7fa;--muted:#9ca3b3;--accent:#6c5ce7;--accent2:#00d2a0;--danger:#ff5f6d;--line:#2a3040;--shadow:0 20px 50px rgba(0,0,0,.28)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 85% 0,#1e1747 0,transparent 28%),var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}img{max-width:100%}.topbar{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,5vw);position:sticky;top:0;z-index:20;background:rgba(13,15,20,.86);backdrop-filter:blur(16px);border-bottom:1px solid rgba(255,255,255,.05)}.brand{font-size:1.25rem;font-weight:900;letter-spacing:-.03em;display:flex;align-items:center;gap:9px}.brand span{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:white}.topbar nav{display:flex;gap:20px;align-items:center;color:#d6d9e2}.topbar nav a:hover{color:white}.plan-chip{padding:6px 10px;border:1px solid var(--line);border-radius:999px;font-size:.78rem;color:var(--accent2)}main{min-height:calc(100vh - 130px)}.btn{border:0;background:linear-gradient(135deg,var(--accent),#8f7cff);color:white;font-weight:800;padding:13px 20px;border-radius:12px;display:inline-flex;justify-content:center;align-items:center;cursor:pointer;box-shadow:0 10px 24px rgba(108,92,231,.25)}.btn:hover{transform:translateY(-1px)}.btn.ghost{background:transparent;border:1px solid var(--line);box-shadow:none}.btn.small{padding:9px 13px;border-radius:9px;font-size:.85rem}.btn.full{width:100%}.btn.disabled{opacity:.55;pointer-events:none;background:var(--panel2);box-shadow:none}.hero{max-width:1180px;margin:0 auto;padding:88px 28px 60px;display:grid;grid-template-columns:1.35fr .65fr;gap:70px;align-items:center}.eyebrow{color:var(--accent2);font-size:.76rem;font-weight:900;letter-spacing:.14em}.hero h1{font-size:clamp(2.7rem,6vw,5.6rem);line-height:.95;letter-spacing:-.065em;margin:18px 0 24px}.hero p{color:var(--muted);font-size:1.13rem;line-height:1.7;max-width:650px}.hero-actions{display:flex;gap:12px;margin-top:30px}.hero-player{background:linear-gradient(145deg,#27223f,#141722);padding:32px;border:1px solid rgba(255,255,255,.09);border-radius:28px;box-shadow:var(--shadow);transform:rotate(2deg)}.record{width:190px;height:190px;border-radius:50%;margin:0 auto 25px;display:grid;place-items:center;font-size:4rem;background:repeating-radial-gradient(circle,#111 0 10px,#222 11px 15px);border:12px solid #282337;box-shadow:inset 0 0 0 18px #16151d}.hero-player h3{font-size:1.45rem;margin-bottom:6px}.hero-player p{font-size:.95rem}.fake-progress{height:5px;border-radius:5px;background:#3b3e49;overflow:hidden}.fake-progress span{display:block;width:62%;height:100%;background:var(--accent2)}.fake-controls{text-align:center;font-size:1.3rem;margin-top:18px}.feature-grid,.plans-grid{max-width:1180px;margin:0 auto;padding:28px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature-grid article,.plan-card{background:rgba(21,24,33,.88);border:1px solid rgba(255,255,255,.07);border-radius:20px;padding:26px}.feature-grid b{font-size:1.5rem;color:var(--accent2)}.feature-grid h3{margin:14px 0 7px}.feature-grid p,.plan-card p,.section-head p{color:var(--muted);line-height:1.6}.section{max-width:1236px;margin:50px auto;padding:30px 28px}.section.narrow{max-width:1100px}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:20px}.section-head.compact{margin:24px 0 14px}.section-head h1,.section-head h2{margin:8px 0 0;letter-spacing:-.04em}.plan-card{position:relative}.plan-card.featured{border-color:rgba(108,92,231,.65);box-shadow:0 15px 50px rgba(108,92,231,.15)}.plan-card h3{font-size:1.4rem}.price{font-size:2.2rem;font-weight:900;letter-spacing:-.05em;margin:15px 0}.price small{font-size:.8rem;color:var(--muted);letter-spacing:0}.plan-card ul{list-style:none;padding:0;margin:22px 0}.plan-card li{padding:9px 0;border-bottom:1px solid var(--line);color:#d9dce5}.plan-card li:before{content:'✓';color:var(--accent2);margin-right:9px}.footer{text-align:center;color:#777f91;padding:32px 20px 110px}.auth-wrap,.install-page{min-height:75vh;display:grid;place-items:center;padding:35px 20px}.auth-card{width:min(430px,100%);background:var(--panel);padding:32px;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.auth-card.wide{width:min(760px,calc(100% - 30px));margin:50px auto}.auth-card h1{margin-top:0}.auth-card p{color:var(--muted)}label{display:block;color:#dfe2ea;font-weight:700;font-size:.9rem;margin:14px 0}input,select,textarea{width:100%;background:#0f1219;border:1px solid var(--line);color:white;border-radius:10px;padding:12px 13px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.center{text-align:center}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.span-2{grid-column:span 2}.flash{max-width:1180px;margin:16px auto;padding:13px 16px;border-radius:11px}.flash.success{background:#11372f;color:#a9ffdf}.flash.danger{background:#411b22;color:#ffc1c7}.flash.warning{background:#3d3215;color:#ffe8a1}.app-shell{display:grid;grid-template-columns:250px 1fr;max-width:1500px;margin:0 auto;min-height:calc(100vh - 72px)}.sidebar{border-right:1px solid var(--line);padding:28px 18px 130px;position:sticky;top:72px;height:calc(100vh - 72px);overflow:auto}.profile-box{display:flex;align-items:center;gap:11px;padding:14px;background:var(--panel);border-radius:15px;margin-bottom:25px}.profile-box small{display:block;color:var(--muted);margin-top:3px}.avatar{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:grid;place-items:center;font-weight:900}.sidebar h4{font-size:.78rem;text-transform:uppercase;color:#727b8f;letter-spacing:.11em}.side-link{display:block;padding:11px 12px;border-radius:10px;color:#bfc4d0}.side-link:hover,.side-link.active{background:var(--panel2);color:white}.side-title{display:flex;justify-content:space-between;align-items:center;margin-top:22px}.side-title button{border:0;background:none;color:white;font-size:1.25rem;cursor:pointer}.playlist-item{display:flex;justify-content:space-between;padding:9px 5px;color:#bbc1cf;font-size:.9rem}.playlist-item small{color:#687184}.mini-form{display:flex;gap:6px;margin-bottom:8px}.mini-form input{padding:8px}.hidden{display:none!important}.content-area{padding:38px 35px 150px;min-width:0}.welcome{display:flex;justify-content:space-between;gap:25px;align-items:center}.welcome h1{font-size:2.3rem;letter-spacing:-.05em;margin:8px 0}.search-form{width:min(430px,100%);position:relative}.search-form input{border-radius:999px;padding:14px 48px 14px 18px}.search-form button{position:absolute;right:8px;top:7px;width:35px;height:35px;border:0;border-radius:50%;background:var(--accent);color:white}.ad-banner{display:flex;justify-content:space-between;align-items:center;margin:22px 0;padding:14px 18px;border-radius:14px;background:linear-gradient(90deg,#2b203f,#1b2831);border:1px solid rgba(255,255,255,.08)}.ad-banner b,.ad-banner span{display:block}.ad-banner span{color:#bfc3cf;font-size:.86rem;margin-top:3px}.genre-row{display:flex;gap:8px;overflow:auto;padding:8px 0}.genre-chip{white-space:nowrap;padding:8px 13px;border:1px solid var(--line);border-radius:999px;color:#b7bdca;font-size:.88rem}.genre-chip.active,.genre-chip:hover{background:var(--accent);border-color:var(--accent);color:white}.track-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:17px}.track-card{background:var(--panel);border:1px solid rgba(255,255,255,.06);border-radius:16px;padding:12px;transition:.2s}.track-card:hover{transform:translateY(-4px);border-color:#40485d;box-shadow:0 18px 35px rgba(0,0,0,.22)}.cover-wrap{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:#222}.cover-wrap img{width:100%;height:100%;object-fit:cover}.play-card{position:absolute;right:10px;bottom:10px;width:45px;height:45px;border-radius:50%;border:0;color:white;background:var(--accent2);font-size:1rem;cursor:pointer;box-shadow:0 8px 20px rgba(0,210,160,.35)}.track-card.locked .cover-wrap img{filter:grayscale(.7) brightness(.65)}.premium-badge{position:absolute;left:8px;top:8px;background:#16131f;color:#d9d0ff;border:1px solid #7a68d4;padding:5px 7px;border-radius:7px;font-size:.62rem;font-weight:900}.track-meta{display:flex;justify-content:space-between;gap:8px;margin-top:11px}.track-meta h3{font-size:.98rem;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-meta p{font-size:.78rem;color:var(--muted);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.favorite-btn{border:0;background:none;color:#596173;font-size:1.15rem;cursor:pointer}.favorite-btn.active{color:#ff5f7a}.track-actions{display:flex;align-items:center;justify-content:space-between;margin-top:10px;color:#777f90;font-size:.75rem}.playlist-select{width:auto;max-width:105px;padding:5px;background:#11141b;font-size:.72rem}.empty-state{padding:55px;text-align:center;background:var(--panel);border-radius:16px;color:var(--muted)}.music-player{position:fixed;z-index:50;left:0;right:0;bottom:0;height:92px;background:rgba(18,21,29,.95);backdrop-filter:blur(18px);border-top:1px solid #333949;display:grid;grid-template-columns:1fr 1.5fr 1fr;align-items:center;padding:10px 25px;gap:18px}.now-playing{display:flex;align-items:center;gap:12px;min-width:0}.now-playing img{width:58px;height:58px;border-radius:10px;object-fit:cover}.now-playing strong,.now-playing span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-playing span{color:var(--muted);font-size:.82rem;margin-top:3px}.player-buttons{text-align:center}.player-buttons button{border:0;background:none;color:white;font-size:1.05rem;cursor:pointer;margin:0 8px}.player-buttons .main-play{width:40px;height:40px;border-radius:50%;background:white;color:#101219;margin:0 12px}.progress-row{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;font-size:.72rem;color:#8e96a7}.progress-row input,.volume-row input{padding:0;accent-color:var(--accent2)}.volume-row{display:flex;justify-content:flex-end;align-items:center;gap:8px}.volume-row input{max-width:120px}.admin-wrap{max-width:1350px;margin:0 auto;padding:35px 28px 120px}.admin-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.admin-tabs a{padding:9px 13px;border-radius:9px;background:var(--panel)}.admin-tabs a.active{background:var(--accent)}.admin-grid{display:grid;grid-template-columns:360px 1fr;gap:22px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:17px;padding:20px}.panel h2{margin-top:0}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:720px}.data-table th,.data-table td{text-align:left;padding:11px;border-bottom:1px solid var(--line);font-size:.86rem}.data-table th{color:#8c95a8}.badge{padding:5px 8px;border-radius:999px;background:#283040;font-size:.72rem}.badge.good{background:#15392f;color:#a9f8d6}.badge.warn{background:#423617;color:#ffe29a}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.stat{background:var(--panel);padding:18px;border-radius:15px;border:1px solid var(--line)}.stat b{display:block;font-size:1.8rem;margin-top:7px}.stat span{color:var(--muted);font-size:.82rem}.toast{position:fixed;right:20px;bottom:115px;z-index:99;background:#242a38;color:white;padding:12px 16px;border-radius:10px;box-shadow:var(--shadow)}@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-player{display:none}.feature-grid,.plans-grid{grid-template-columns:1fr}.app-shell{grid-template-columns:1fr}.sidebar{display:none}.content-area{padding:24px 18px 145px}.welcome{align-items:flex-start;flex-direction:column}.search-form{width:100%}.music-player{height:118px;grid-template-columns:1fr 1fr;padding:10px 14px}.player-center{grid-row:2;grid-column:1/3}.volume-row{display:none}.admin-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}.topbar nav a:not(.btn){display:none}}@media(max-width:560px){.topbar{padding:0 16px}.hero{padding:55px 20px}.hero h1{font-size:2.8rem}.hero-actions{flex-direction:column}.track-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.track-card{padding:8px}.music-player{grid-template-columns:1fr}.now-playing{grid-column:1}.player-center{grid-column:1}.music-player{height:126px}.progress-row{grid-template-columns:34px 1fr 34px}.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.stats-grid{grid-template-columns:1fr}.ad-banner{align-items:flex-start;gap:10px}.ad-banner span{max-width:200px}}
.source-badge{position:absolute;left:8px;bottom:8px;background:rgba(9,12,18,.88);color:#d9deea;border:1px solid rgba(255,255,255,.16);padding:4px 7px;border-radius:7px;font-size:.61rem;font-weight:800}.track-card .premium-badge+.source-badge{bottom:8px}.now-playing small{display:block;color:#6f7a8f;font-size:.68rem;margin-top:2px}.output-btn{border:1px solid var(--line);background:#10141d;color:#dfe4ef;padding:8px 10px;border-radius:10px;cursor:pointer;white-space:nowrap;font-weight:700;font-size:.76rem}.output-btn:hover,.output-btn.active{border-color:var(--accent2);color:white}.youtube-float{position:fixed;z-index:49;right:20px;bottom:104px;width:356px;height:226px;background:#0a0d12;border:1px solid #343b4b;border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}.youtube-float .youtube-label{height:26px;display:flex;align-items:center;padding:0 10px;color:#aeb5c5;font-size:.69rem;background:#171b24}.youtube-float iframe{display:block;width:356px!important;height:200px!important}.output-modal{position:fixed;inset:0;z-index:120;background:rgba(0,0,0,.66);display:grid;place-items:center;padding:18px}.output-card{position:relative;width:min(460px,100%);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:var(--shadow)}.output-card h3{margin:0 0 10px}.output-card p,.output-card small{color:var(--muted);line-height:1.5}.output-card ol{padding-left:22px;color:#d9dde7;line-height:1.65}.output-close{position:absolute;right:12px;top:10px;border:0;background:none;color:white;font-size:1.6rem;cursor:pointer}.admin-help{color:var(--muted);font-size:.85rem;line-height:1.55;margin-top:-8px}
@media(max-width:900px){.youtube-float{right:12px;bottom:130px;width:356px;max-width:calc(100vw - 24px)}.youtube-float iframe{width:100%!important}.volume-row{display:flex;gap:6px}.volume-row>span,.volume-row>input{display:none}.output-btn{font-size:.72rem;padding:7px 8px}}
@media(max-width:560px){.youtube-float{left:12px;right:12px;bottom:138px;width:auto;height:226px}.youtube-float iframe{width:100%!important;height:200px!important}.music-player{height:134px}.output-btn{position:absolute;right:10px;top:9px}.now-playing{padding-right:100px}}
@media(max-width:560px){.volume-row{position:absolute;right:10px;top:8px;display:block}.volume-row .output-btn{position:static}.volume-row>span,.volume-row>input{display:none}}

/* MusicFlow 3 — canais de DJs */
.dj-manage-wrap{max-width:1180px;margin:0 auto;padding:38px 24px 150px}.users-admin-grid{grid-template-columns:minmax(300px,.72fr) minmax(600px,1.45fr)}.user-admin-form{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.user-admin-form select{min-width:115px}.dj-public-section{padding-bottom:150px}.dj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.dj-card{background:var(--panel);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}.dj-cover{height:180px;background:linear-gradient(135deg,rgba(78,224,190,.18),rgba(94,90,255,.2));display:flex;align-items:center;justify-content:center;overflow:hidden}.dj-cover img{width:100%;height:100%;object-fit:cover}.dj-cover span{font-size:4rem}.dj-card-body{padding:20px;display:flex;flex-direction:column;gap:8px;flex:1}.dj-card-body h2{margin:0}.dj-card-body p{color:var(--muted);line-height:1.55;min-height:48px}.dj-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:10px}.dj-card-foot span{color:var(--muted);font-size:.88rem}.channel-hero{max-width:1180px;margin:0 auto;padding:48px 24px 26px;display:flex;gap:28px;align-items:center}.channel-avatar{width:180px;height:180px;border-radius:26px;overflow:hidden;display:flex;align-items:center;justify-content:center;flex:0 0 auto;background:linear-gradient(135deg,rgba(78,224,190,.2),rgba(94,90,255,.26));border:1px solid var(--line);box-shadow:var(--shadow)}.channel-avatar img{width:100%;height:100%;object-fit:cover}.channel-avatar span{font-size:4.5rem}.channel-hero h1{font-size:clamp(2rem,5vw,4rem);margin:6px 0 10px}.channel-hero p{max-width:760px;color:var(--muted);line-height:1.65}.channel-tracks-section{padding-top:14px;padding-bottom:160px}
@media(max-width:900px){.users-admin-grid{grid-template-columns:1fr}.channel-hero{align-items:flex-start}.channel-avatar{width:130px;height:130px}.user-admin-form{min-width:460px}}
@media(max-width:620px){.dj-manage-wrap{padding:25px 14px 150px}.channel-hero{padding:28px 16px 16px;display:block}.channel-avatar{width:110px;height:110px;margin-bottom:18px;border-radius:20px}.dj-grid{grid-template-columns:1fr}}

/* MusicFlow 3.2 - Top 10 albuns por genero */
.top10-albums{margin:24px 0 34px}.top10-main-head{align-items:center}.genre-album-ranking{margin:20px 0 28px}.genre-ranking-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:12px}.genre-ranking-head h2,.genre-ranking-head h3{margin:0 0 4px}.genre-ranking-head small{color:var(--muted)}.genre-ranking-head>a{color:var(--accent2);font-size:.86rem;font-weight:800}.album-ranking-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(155px,175px);gap:13px;overflow-x:auto;padding:3px 2px 12px;scroll-snap-type:x proximity}.album-rank-card{scroll-snap-align:start;min-width:0;background:var(--panel);border:1px solid rgba(255,255,255,.07);border-radius:15px;padding:10px;transition:.2s}.album-rank-card:hover{transform:translateY(-3px);border-color:#46506a;box-shadow:0 15px 30px rgba(0,0,0,.2)}.album-rank-cover{position:relative;aspect-ratio:1;border-radius:11px;overflow:hidden;background:#222;margin-bottom:9px}.album-rank-cover img{width:100%;height:100%;object-fit:cover}.rank-number{position:absolute;left:7px;top:7px;padding:5px 8px;border-radius:8px;background:rgba(10,12,18,.88);color:#fff;font-size:.77rem;font-weight:950;border:1px solid rgba(255,255,255,.12)}.album-play-overlay{position:absolute;right:8px;bottom:8px;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--accent2);color:#fff;box-shadow:0 8px 18px rgba(0,210,160,.3);opacity:.92}.album-rank-card>strong,.album-rank-card>span,.album-rank-card>small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.album-rank-card>strong{font-size:.9rem;margin-top:3px}.album-rank-card>span{color:#c3c8d3;font-size:.77rem;margin-top:3px}.album-rank-card>small{color:var(--muted);font-size:.68rem;margin-top:6px}.ranking-page{max-width:1380px}.ranking-hero-head{align-items:center}.ranking-hero-head h1{font-size:clamp(2rem,4vw,3.4rem)}.ranking-genre-list{margin-top:28px}.public-ranking-block{background:rgba(21,24,33,.72);border:1px solid rgba(255,255,255,.06);border-radius:19px;padding:18px;margin-bottom:18px}@media(max-width:700px){.top10-main-head,.genre-ranking-head,.ranking-hero-head{align-items:flex-start;flex-direction:column}.album-ranking-row{grid-auto-columns:minmax(142px,158px)}.public-ranking-block{padding:13px}.top10-main-head .btn{display:none}}

/* MusicFlow 3.3 - rankings fixos de albuns */
.ranking-shortcuts{display:flex;gap:9px;overflow-x:auto;padding:4px 0 14px;scrollbar-width:thin}.ranking-shortcuts a{white-space:nowrap;padding:8px 13px;border-radius:999px;border:1px solid var(--line);background:#11151d;color:#cbd1dd;font-size:.82rem;font-weight:800}.ranking-shortcuts a:hover{background:var(--accent);border-color:var(--accent);color:#fff}.ranking-shortcuts-public{position:sticky;top:80px;z-index:10;background:rgba(13,15,20,.9);backdrop-filter:blur(12px);padding:10px;border-radius:14px;margin-bottom:18px}.ranking-kicker{display:block;color:var(--accent2);font-size:.68rem;font-weight:950;letter-spacing:.12em;margin-bottom:4px}.ranking-empty-inline{padding:18px;border:1px dashed #394153;border-radius:13px;color:var(--muted);background:rgba(255,255,255,.018);font-size:.85rem}.ranking-empty-inline b{color:#dfe3eb}.public-ranking-block{scroll-margin-top:140px}
@media(max-width:700px){.ranking-shortcuts-public{top:74px}.ranking-shortcuts a{padding:7px 11px;font-size:.78rem}}

/* MusicFlow 3.4 - Top 10 musicas + periodos + generos de albuns */
.ranking-filter-box{margin:0 0 14px;padding:15px 16px;border:1px solid var(--line);border-radius:15px;background:rgba(21,24,33,.72);display:flex;align-items:center;gap:14px;flex-wrap:wrap}.ranking-filter-box>b{font-size:.82rem}.ranking-filter-box>small{color:var(--muted);margin-left:auto}.ranking-periods{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin}.ranking-periods a{white-space:nowrap;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:#11151d;color:#cbd1dd;font-size:.79rem;font-weight:850}.ranking-periods a:hover,.ranking-periods a.active{background:var(--accent2);border-color:var(--accent2);color:#07120f}.ranking-periods-home{margin:8px 0 9px}.ranking-subhead{display:flex;align-items:center;justify-content:space-between;margin:18px 0 10px}.ranking-subhead>div{display:flex;align-items:center;gap:9px}.ranking-subhead>div>span{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;background:rgba(0,210,160,.12);color:var(--accent2);font-weight:900}.ranking-subhead b,.ranking-subhead small{display:block}.ranking-subhead small{color:var(--muted);font-size:.72rem;margin-top:2px}.album-subhead{margin-top:24px}.track-ranking-row{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(235px,270px);gap:12px;overflow-x:auto;padding:3px 2px 12px;scroll-snap-type:x proximity}.track-rank-card{scroll-snap-align:start;display:grid;grid-template-columns:78px 1fr;gap:11px;align-items:center;background:var(--panel);border:1px solid rgba(255,255,255,.07);border-radius:15px;padding:9px;transition:.2s}.track-rank-card:hover{transform:translateY(-3px);border-color:#46506a;box-shadow:0 15px 30px rgba(0,0,0,.2)}.track-rank-cover{position:relative;width:78px;height:78px;border-radius:11px;overflow:hidden;background:#222}.track-rank-cover img{width:100%;height:100%;object-fit:cover}.track-rank-cover .rank-number{font-size:.68rem;padding:4px 6px}.track-rank-cover .album-play-overlay{width:29px;height:29px;font-size:.72rem}.track-rank-info{min-width:0}.track-rank-info strong,.track-rank-info span,.track-rank-info small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-rank-info strong{font-size:.9rem}.track-rank-info span{color:#c3c8d3;font-size:.77rem;margin-top:4px}.track-rank-info small{color:var(--muted);font-size:.67rem;margin-top:7px}.top10-home-v34{background:rgba(21,24,33,.42);border:1px solid rgba(255,255,255,.05);border-radius:18px;padding:16px}.home-general-ranking{margin-bottom:0}.genre-preset-note{color:var(--muted);font-size:.76rem;line-height:1.45}.admin-grid .panel small{color:var(--muted)}
@media(max-width:700px){.ranking-filter-box{align-items:flex-start;flex-direction:column}.ranking-filter-box>small{margin-left:0}.track-ranking-row{grid-auto-columns:minmax(210px,235px)}.track-rank-card{grid-template-columns:68px 1fr}.track-rank-cover{width:68px;height:68px}.top10-home-v34{padding:12px}}

/* MusicFlow 3.5 - limpeza de gêneros e descoberta na home */
.genre-row{scrollbar-width:none;-ms-overflow-style:none}.genre-row::-webkit-scrollbar{display:none}
.home-discovery-v35{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:22px 0 30px}.home-discovery-card{min-width:0;background:rgba(21,24,33,.72);border:1px solid rgba(255,255,255,.06);border-radius:17px;padding:15px}.home-discovery-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}.home-discovery-head h3{margin:4px 0 0;font-size:1.02rem}.home-discovery-head>a,.home-head-note{color:var(--accent2);font-size:.72rem;font-weight:850;white-space:nowrap}.home-mini-list{display:grid;gap:7px}.home-mini-list>a{display:grid;grid-template-columns:36px 44px 1fr 24px;gap:8px;align-items:center;min-width:0;padding:7px;border-radius:11px;background:rgba(255,255,255,.022);border:1px solid transparent}.home-mini-list>a:hover{background:rgba(255,255,255,.045);border-color:var(--line)}.home-mini-list img{width:44px;height:44px;object-fit:cover;border-radius:8px}.home-mini-list div{min-width:0}.home-mini-list b,.home-mini-list small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home-mini-list b{font-size:.78rem}.home-mini-list small{color:var(--muted);font-size:.64rem;margin-top:3px}.mini-rank{font-size:.7rem;font-weight:950;color:var(--accent2);text-align:center}.mini-new{font-size:.54rem;font-weight:950;color:#dfe4ef;background:#283040;padding:4px 3px;border-radius:6px;text-align:center}.mini-play{color:var(--accent2);font-size:.72rem;text-align:center}.home-discovery-empty{color:var(--muted);font-size:.78rem;line-height:1.5;margin:0;padding:14px 4px}
@media(max-width:1100px){.home-discovery-v35{grid-template-columns:1fr 1fr}.home-discovery-v35 .home-discovery-card:last-child{grid-column:1/-1}}
@media(max-width:680px){.home-discovery-v35{grid-template-columns:1fr}.home-discovery-v35 .home-discovery-card:last-child{grid-column:auto}.home-discovery-head{align-items:flex-start}.home-mini-list>a{grid-template-columns:32px 42px 1fr 22px}.home-mini-list img{width:42px;height:42px}}

/* MusicFlow 3.6 — Top 100 YouTube */
.youtube-genre-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.youtube-genre-panel{min-width:0}.youtube-genre-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.youtube-genre-title h2{margin:4px 0 0}.youtube-genre-actions{display:flex;gap:8px;align-items:center;margin-top:14px}.youtube-api-panel .form-grid small{display:block;margin-top:6px}.youtube-top-banner{margin:18px 0 24px;padding:20px;border:1px solid rgba(255,255,255,.07);border-radius:18px;background:linear-gradient(135deg,rgba(108,92,231,.15),rgba(0,210,160,.08));display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:center}.youtube-top-banner h2{margin:5px 0 5px}.youtube-top-banner p{margin:0;color:var(--muted)}.youtube-top-buttons{display:flex;flex-wrap:wrap;gap:9px}.youtube-top-buttons a{min-width:125px;padding:11px 13px;border-radius:12px;border:1px solid var(--line);background:rgba(13,15,20,.7)}.youtube-top-buttons a:hover{border-color:var(--accent2);transform:translateY(-1px)}.youtube-top-buttons b,.youtube-top-buttons small{display:block}.youtube-top-buttons small{color:var(--muted);font-size:.7rem;margin-top:3px}.youtube-top-page{max-width:1180px}.youtube-top-shortcuts a.active{background:var(--accent2);color:#07120f;border-color:var(--accent2)}.youtube-source-note{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;margin:14px 0;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.youtube-source-note b,.youtube-source-note small{display:block}.youtube-source-note small{color:var(--muted);margin-top:3px}.youtube-source-note>span{font-size:.8rem;color:#ff7b72;border:1px solid rgba(255,123,114,.35);padding:6px 9px;border-radius:999px}.youtube-top-list{display:grid;gap:8px}.youtube-top-item{display:grid;grid-template-columns:56px 72px minmax(0,1fr) 42px;gap:13px;align-items:center;padding:9px 12px;border:1px solid rgba(255,255,255,.06);border-radius:14px;background:var(--panel);transition:.16s}.youtube-top-item:hover{transform:translateY(-2px);border-color:#485269}.youtube-position{font-size:1rem;font-weight:950;color:var(--accent2);text-align:center}.youtube-top-item>img{width:72px;height:72px;object-fit:cover;border-radius:10px}.youtube-top-meta{min-width:0}.youtube-top-meta strong,.youtube-top-meta span,.youtube-top-meta small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.youtube-top-meta span{color:#c6cbd6;font-size:.82rem;margin-top:4px}.youtube-top-meta small{color:var(--muted);font-size:.72rem;margin-top:5px}.youtube-play{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--accent2);color:white}.admin-help{color:var(--muted);line-height:1.5}.btn[disabled]{opacity:.45;cursor:not-allowed;filter:grayscale(.5)}
@media(max-width:900px){.youtube-genre-admin-grid{grid-template-columns:1fr}.youtube-top-banner{grid-template-columns:1fr}.youtube-top-item{grid-template-columns:42px 60px minmax(0,1fr) 36px}.youtube-top-item>img{width:60px;height:60px}}
@media(max-width:560px){.youtube-top-item{grid-template-columns:36px 52px minmax(0,1fr)}.youtube-top-item>img{width:52px;height:52px}.youtube-play{display:none}.youtube-source-note{align-items:flex-start;flex-direction:column}.youtube-genre-actions{flex-wrap:wrap}}

/* MusicFlow 3.6 - Top 100 YouTube automático */
.youtube-api-panel{border-color:rgba(255,0,0,.15)}.youtube-genre-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.youtube-genre-panel{min-width:0}.youtube-genre-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.youtube-genre-title h2{margin:4px 0 0}.youtube-genre-actions{display:flex;gap:8px;align-items:center;margin-top:14px}.youtube-top-page{padding-bottom:150px}.youtube-top-shortcuts a.active{background:var(--accent);border-color:var(--accent);color:white}.youtube-source-note{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:16px 0;padding:13px 15px;border:1px solid var(--line);border-radius:13px;background:rgba(21,24,33,.75)}.youtube-source-note b,.youtube-source-note small{display:block}.youtube-source-note small{color:var(--muted);margin-top:3px}.youtube-source-note>span{font-size:.8rem;color:#ffb0b0}.youtube-top-list{display:grid;gap:8px}.youtube-top-item{display:grid;grid-template-columns:52px 72px 1fr 42px;gap:12px;align-items:center;padding:9px 12px;border:1px solid rgba(255,255,255,.06);border-radius:13px;background:rgba(21,24,33,.72);transition:.18s}.youtube-top-item:hover{background:rgba(255,255,255,.045);border-color:#414a60;transform:translateY(-1px)}.youtube-position{text-align:center;font-weight:950;color:var(--accent2)}.youtube-top-item img{width:72px;height:54px;object-fit:cover;border-radius:9px}.youtube-top-meta{min-width:0}.youtube-top-meta strong,.youtube-top-meta span,.youtube-top-meta small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.youtube-top-meta span{color:#c8cdd8;font-size:.82rem;margin-top:3px}.youtube-top-meta small{color:var(--muted);font-size:.7rem;margin-top:5px}.youtube-play{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--accent2);color:#07120f;font-size:.75rem;font-weight:900}.youtube-genre-panel select,.youtube-genre-panel input{margin-top:5px}
@media(max-width:900px){.youtube-genre-admin-grid{grid-template-columns:1fr}}@media(max-width:620px){.youtube-top-item{grid-template-columns:40px 58px 1fr 34px;gap:8px;padding:8px}.youtube-top-item img{width:58px;height:46px}.youtube-source-note{align-items:flex-start;flex-direction:column}.youtube-genre-actions{align-items:stretch;flex-direction:column}.youtube-genre-actions .btn{width:100%}}

/* MusicFlow 3.7 — segundo plano, controles Android e mini-player arrastável */
.floating-mini-player{position:fixed;z-index:110;right:16px;top:112px;width:min(350px,calc(100vw - 24px));background:rgba(12,15,21,.97);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.12);border-radius:20px;box-shadow:0 26px 70px rgba(0,0,0,.48);overflow:hidden;touch-action:none;user-select:none}.floating-mini-player.dragging{opacity:.94;box-shadow:0 30px 80px rgba(0,0,0,.6)}.floating-drag{height:39px;display:grid;grid-template-columns:32px 1fr 34px;align-items:center;padding:0 8px;border-bottom:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.025);cursor:grab;touch-action:none}.floating-drag:active{cursor:grabbing}.floating-drag>span{color:#7f899c;font-weight:900;letter-spacing:-2px}.floating-drag small{color:#9ca6b8;font-size:.68rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.floating-drag button{width:30px;height:30px;border:0;border-radius:9px;background:transparent;color:#cdd3df;font-size:1.25rem;cursor:pointer}.floating-drag button:hover{background:rgba(255,255,255,.08);color:white}.floating-main{display:grid;grid-template-columns:72px 1fr;gap:12px;align-items:center;padding:14px 15px 7px}.floating-main img{width:72px;height:72px;border-radius:13px;object-fit:cover;background:#1a1e28}.floating-meta{min-width:0}.floating-meta strong,.floating-meta span,.floating-meta small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.floating-meta strong{font-size:.98rem}.floating-meta span{font-size:.8rem;color:#c9cfda;margin-top:5px}.floating-meta small{font-size:.68rem;color:#747f92;margin-top:4px}.floating-controls{display:flex;justify-content:center;align-items:center;gap:20px;padding:5px 12px 8px}.floating-controls button{width:36px;height:36px;border:0;border-radius:50%;background:transparent;color:white;cursor:pointer;font-size:1rem}.floating-controls button:hover{background:rgba(255,255,255,.08)}.floating-controls .floating-play{width:44px;height:44px;background:white;color:#11151c;font-size:1rem}.floating-progress{display:grid;grid-template-columns:35px 1fr 35px;gap:8px;align-items:center;padding:0 14px 14px;color:#8f98a9;font-size:.66rem}.floating-progress input{padding:0;accent-color:var(--accent2)}.float-btn.active{border-color:var(--accent2);color:var(--accent2)}
@media(max-width:700px){.floating-mini-player{right:12px;top:92px;width:min(330px,calc(100vw - 24px))}.floating-main{grid-template-columns:62px 1fr}.floating-main img{width:62px;height:62px}.floating-controls{padding-top:2px}.floating-progress{padding-bottom:11px}}
@media(max-width:560px){.volume-row{position:absolute!important;right:10px!important;top:8px!important;display:flex!important;gap:6px!important}.volume-row #floatPlayerBtn,.volume-row #bluetoothBtn{position:static!important;width:38px;height:34px;padding:0;font-size:0}.volume-row #floatPlayerBtn:before{content:'▣';font-size:16px}.volume-row #bluetoothBtn:before{content:'ᛒ';font-size:15px}.now-playing{padding-right:94px!important}.floating-mini-player{top:80px}.youtube-float{z-index:48}}

/* MusicFlow 3.8 — correção de mini-player e Media Session */
#floatPlayerBtn.active{background:rgba(61,255,192,.12)!important;border-color:var(--accent2)!important;color:var(--accent2)!important}.player-source-youtube-note{color:#ffcf8b}
@media(max-width:700px){.floating-mini-player{top:auto!important;bottom:106px!important;left:12px!important;right:auto!important;width:calc(100vw - 24px)!important;max-width:390px}.floating-mini-player.dragging{bottom:auto!important}.music-player{z-index:105}.floating-mini-player{z-index:130}.volume-row #floatPlayerBtn{display:inline-grid!important;place-items:center!important}}

/* MusicFlow 4.5 — playlists arrastáveis e playlist Favoritos */
.side-action-btn{width:100%;margin:5px 0 9px;padding:9px 10px;border:1px dashed rgba(255,255,255,.16);border-radius:10px;background:rgba(255,255,255,.025);color:#c8cfdb;text-align:left;cursor:pointer;font-size:.78rem}.side-action-btn:hover{border-color:var(--accent2);color:white}.side-action-btn:disabled{opacity:.55;cursor:wait}.playlist-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 9px;border-radius:9px;color:#aeb6c6;text-decoration:none}.playlist-item:hover,.playlist-item.active{background:rgba(255,255,255,.06);color:white}.playlist-item.active{outline:1px solid rgba(61,255,192,.22)}.playlist-order-status{padding:6px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.1);color:#9ca6b8;font-size:.72rem;white-space:nowrap}.playlist-order-status.saving{color:#ffd891}.playlist-order-status.saved{color:var(--accent2);border-color:rgba(61,255,192,.28)}.playlist-sort-item{transition:transform .14s ease,opacity .14s ease,box-shadow .14s ease}.playlist-sort-item.sorting{opacity:.8;transform:scale(.985);box-shadow:0 18px 45px rgba(0,0,0,.4);outline:2px solid rgba(61,255,192,.32)}.playlist-drag-handle{border:1px solid rgba(255,255,255,.12);background:#171b24;color:#b8c0cf;width:31px;height:29px;border-radius:8px;cursor:grab;touch-action:none;user-select:none;font-size:15px;line-height:1}.playlist-drag-handle:active{cursor:grabbing}.playlist-sorting{user-select:none}.playlist-sorting .track-card:not(.sorting){transition:none}
@media(max-width:700px){.playlist-order-status{order:3;width:100%;text-align:center}.playlist-drag-handle{width:36px;height:34px;font-size:17px}.track-actions{gap:7px}.playlist-sort-item.sorting{transform:scale(.97)}}
.mobile-library-v45{display:none}.mobile-library-actions{display:flex;gap:8px;overflow:auto;padding:7px 0}.mobile-library-btn{white-space:nowrap;border:1px solid var(--line);border-radius:999px;background:#151923;color:#c5ccda;padding:8px 11px;font-size:.76rem;cursor:pointer;text-decoration:none}.mobile-library-btn:hover{border-color:var(--accent2);color:white}.mobile-playlist-form{margin:6px 0 8px}.mobile-playlist-strip{display:flex;gap:8px;overflow:auto;padding:4px 0 8px}.mobile-playlist-strip a{white-space:nowrap;padding:7px 10px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid var(--line);font-size:.75rem;color:#b8c0cf}.mobile-playlist-strip a.active{border-color:var(--accent2);color:white}.mobile-playlist-strip small{color:#788295;margin-left:4px}
@media(max-width:900px){.mobile-library-v45{display:block}.mobile-library-actions,.mobile-playlist-strip{scrollbar-width:none}.mobile-library-actions::-webkit-scrollbar,.mobile-playlist-strip::-webkit-scrollbar{display:none}}
