/*-------------------------------------------------------------------
 * software: .... KM Play - Music player
 * version:  .... 1.0.0
 * content:  .... Responsive dark interface for KM Play
 * author :  .... Donato Poggi, 2026
 * license:  .... Proprietary - All rights reserved
 * framework: ... © Aetheros PHP Framework by Donato Poggi
 *-------------------------------------------------------------------*/

:root{color-scheme:dark;--bg:#100e1c;--panel:#1d172b;--panel2:#292038;--text:#f8f5fb;--muted:#bbb0c7;--line:#45384f;--pink:#ff3e93;--pink2:#c52374;--blue:#2684d9;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(circle at 65% -10%,#32203a 0,transparent 34rem),linear-gradient(130deg,#0d0c17,#141020 50%,#100e1c);color:var(--text)}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #ff8dc0;outline-offset:3px}.app-shell{min-height:100vh}.topbar{height:88px;display:flex;align-items:center;gap:28px;padding:16px 28px;background:#0d0c16d9;border-bottom:1px solid #33283c;position:relative;z-index:4}.brand{min-width:236px;display:flex;align-items:center;gap:13px}.brand img{width:46px;height:46px;object-fit:contain}.brand strong{display:block;font-size:28px;line-height:1;font-weight:800;letter-spacing:-.04em}.brand small{display:block;color:#c5b6cd;font-size:11px;margin-top:5px}.top-search{margin:auto;display:flex;align-items:center;gap:13px;width:min(100%,520px);height:46px;border:1px solid #75627e;border-radius:999px;padding:0 18px;background:#1b1725}.top-search>span{font-size:29px;line-height:1;color:#f2eaf5}.top-search input{border:0;outline:0;background:none;color:white;width:100%;font-size:14px}.top-search input::placeholder{color:#a99bab}.locale-pill{font-size:12px;font-weight:800;letter-spacing:.1em;color:#f6c5dc;border:1px solid #735267;border-radius:999px;padding:7px 10px}.mobile-search{display:none}.body-layout{display:grid;grid-template-columns:224px minmax(0,1fr);max-width:1920px;margin:auto}.sidebar{min-height:calc(100vh - 88px);border-right:1px solid #2d2435;padding:18px 12px;display:flex;flex-direction:column;gap:7px;position:sticky;top:0;height:calc(100vh - 88px);background:linear-gradient(170deg,#1c1327,#141020 65%)}.sidebar>a{height:46px;display:flex;align-items:center;gap:16px;padding:0 16px;color:#d8d1dd;border-radius:10px;font-size:14px}.sidebar>a>span:first-child{font-size:22px;width:24px;text-align:center}.sidebar>a:hover,.sidebar>a.active{background:linear-gradient(90deg,#cb2872,#93275e);color:white}.sidebar-note{margin-top:auto;border-top:1px solid #46344a;padding:21px 13px 10px;color:#a99bab;font-size:12px;line-height:1.5;display:flex;gap:9px}.pulse{background:var(--pink);width:7px;height:7px;flex:none;border-radius:50%;margin-top:5px;box-shadow:0 0 12px var(--pink)}.main-column{min-width:0;padding:12px 18px 50px}.player{min-height:92px;display:flex;align-items:center;gap:14px;padding:12px 16px;background:linear-gradient(110deg,#281b33,#20172c 50%,#302039);border:1px solid #4a3453;border-radius:18px;box-shadow:0 15px 35px #0004;position:sticky;top:10px;z-index:3}.player-cover-button{border:0;background:none;padding:0;flex:none}.player-cover-button img{width:64px;height:64px;object-fit:cover;border-radius:10px}.player-track{width:clamp(110px,15vw,225px);min-width:0}.player-track strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px}.player-track span{display:block;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}.player-controls{display:flex;align-items:center;gap:5px;white-space:nowrap}.icon-button{border:0;background:transparent;color:#f7edf8;font-size:20px;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%}.icon-button:hover,.icon-button.enabled{color:var(--pink);background:#ffffff12}.play-button{border:0;border-radius:50%;width:50px;height:50px;background:var(--pink);color:#fff;display:grid;place-items:center;font-size:21px;box-shadow:0 5px 20px #e5337c66}.play-button:hover,.primary-button:hover{background:#ff62a7;transform:translateY(-1px)}.player-progress{display:flex;align-items:center;gap:9px;flex:1;min-width:120px;color:#e5dce8;font-size:11px}.player-progress input,.now-progress input{width:100%;accent-color:var(--pink);height:4px}.player-extras{display:flex;align-items:center;gap:4px}.player-extras input{width:68px;accent-color:var(--pink)}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:15px;margin-top:16px}#view{min-width:0}.queue-panel{align-self:start;background:linear-gradient(155deg,#2d2138,#1c1728);border:1px solid #403148;border-radius:17px;padding:15px;position:sticky;top:117px;min-height:295px}.aside-heading{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #53445a;margin-bottom:8px}.aside-heading h2{font-size:17px;margin:0;padding:3px 0 14px;color:var(--pink)}.mobile-close{display:none}.queue-item{display:flex;align-items:center;gap:9px;width:100%;padding:9px 3px;text-align:left;color:white;background:none;border:0;border-radius:8px}.queue-item:hover,.queue-item.current{background:#ffffff0c}.queue-item img{height:45px;width:45px;object-fit:cover;border-radius:7px}.queue-item span{min-width:0;flex:1}.queue-item strong,.queue-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-item strong{font-size:12px}.queue-item small{font-size:11px;color:var(--muted);margin-top:4px}.queue-item>small{font-size:10px}.queue-empty{color:var(--muted);font-size:13px}.preview-note{border:1px solid #7e506d;background:#38233a;color:#ffd6e7;border-radius:9px;padding:8px 12px;margin-bottom:12px;font-size:12px}.hero{min-height:280px;position:relative;overflow:hidden;border-radius:18px;background-image:linear-gradient(90deg,#101523eb 0%,#121124a6 42%,#17112420 100%),var(--hero);background-position:center;background-size:cover;display:flex;align-items:center;border:1px solid #493552}.hero-overlay{max-width:63%;padding:28px 34px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:#ff8dbf;font-weight:800;font-size:10px}.hero h1{font-size:clamp(32px,3.6vw,54px);line-height:1.04;letter-spacing:-.05em;margin:16px 0 8px}.hero p{color:#e5ddeb;font-size:18px;margin:0 0 25px}.hero-actions,.detail-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.primary-button,.ghost-button{border-radius:999px;padding:11px 19px;font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:41px;transition:.2s}.primary-button{color:white;background:var(--pink);border:1px solid var(--pink)}.ghost-button{color:white;background:#2018279e;border:1px solid #d9c7df}.ghost-button:hover{background:#442f50}.content-section{margin:24px 0}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:13px}.content-section h2,.section-heading h2{font-size:23px;letter-spacing:-.03em;margin:0 0 14px}.section-heading h2{margin:0}.section-heading a{color:var(--pink);font-size:12px;font-weight:700}.section-heading span{color:var(--muted);font-size:12px}.card-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.track-card{min-width:0}.art-button{display:block;position:relative;border:0;padding:0;width:100%;aspect-ratio:1;background:#2a1e39;border-radius:11px;overflow:hidden}.art-button img{width:100%;height:100%;object-fit:cover;transition:.25s}.art-button:hover img{transform:scale(1.06);filter:brightness(.72)}.art-play{position:absolute;bottom:10px;right:10px;background:var(--pink);width:37px;height:37px;border-radius:50%;display:grid;place-items:center;opacity:0;transform:translateY(5px);transition:.2s}.art-button:hover .art-play,.art-button:focus-visible .art-play{opacity:1;transform:none}.card-title{display:block;font-weight:650;font-size:13px;line-height:1.35;margin:8px 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-title:hover,.row-meta a:hover{color:#ff84b9}.track-card p{margin:0;color:var(--muted);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.genre-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.genre-tile{min-height:72px;border-radius:12px;display:flex;align-items:center;justify-content:space-between;padding:15px 19px;font-size:18px;transition:transform .2s}.genre-tile:hover{transform:translateY(-3px)}.genre-0{background:linear-gradient(110deg,#63306b,#8e397c)}.genre-1{background:linear-gradient(110deg,#773448,#aa5a60)}.genre-2{background:linear-gradient(110deg,#1b5580,#3276a3)}.genre-3{background:linear-gradient(110deg,#525d3a,#7b8854)}.genre-4{background:linear-gradient(110deg,#604875,#8e65a0)}.genre-5{background:linear-gradient(110deg,#76513f,#ad7550)}.language-chips{display:flex;gap:10px;flex-wrap:wrap}.language-chips a{border:1px solid #614666;padding:9px 17px;border-radius:999px;background:#241a30;font-size:12px}.language-chips a:hover{border-color:var(--pink)}.page-heading{padding:20px 6px 23px}.page-heading h1{font-size:clamp(34px,4vw,56px);margin:7px 0 4px;letter-spacing:-.05em}.page-heading p{color:var(--muted);margin:0}.filters{display:flex;gap:9px;flex-wrap:wrap;padding:15px;background:#1d172a;border:1px solid #403047;border-radius:15px;margin-bottom:26px;align-items:end}.filters label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:11px;font-weight:700}.filters select,.filters input{background:#30253c;color:white;border:1px solid #584761;border-radius:9px;padding:10px 12px;min-width:145px}.filters .filter-search{flex:1}.filters input{width:100%}.filters .primary-button{border-radius:9px}.track-list{border-top:1px solid #45384e}.track-row{display:flex;align-items:center;gap:13px;border-bottom:1px solid #342a3e;padding:9px 3px}.row-art{border:0;background:transparent;padding:0;flex:none}.row-art img{width:50px;height:50px;object-fit:cover;border-radius:7px}.row-meta{flex:1;min-width:0}.row-meta a,.row-meta span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-meta a{font-size:14px;font-weight:650}.row-meta span{color:var(--muted);font-size:12px;margin-top:4px}.row-genre,.row-time{font-size:12px;color:var(--muted)}.row-genre{width:85px;text-transform:capitalize}.row-time{width:40px;text-align:right}.row-more{border:0;background:none;color:#e9dceb;font-size:19px;width:28px}.detail-hero,.playlist-hero{background:linear-gradient(120deg,#332039,#171525);border:1px solid #4c3651;border-radius:17px;padding:28px;display:flex;gap:28px;align-items:center}.detail-hero>img,.playlist-hero>img{width:min(28vw,220px);aspect-ratio:1;object-fit:cover;border-radius:12px;box-shadow:0 15px 35px #0006}.detail-hero h1,.playlist-hero h1{font-size:clamp(30px,4vw,52px);letter-spacing:-.05em;line-height:1.08;margin:12px 0}.detail-hero p,.playlist-hero p{color:var(--muted);margin:0 0 20px}.description p{color:#d6cbdc;line-height:1.7;white-space:pre-line;max-width:75ch}.platform-links{display:flex;flex-wrap:wrap;gap:10px}.platform-links a{background:#2c2238;border:1px solid #5c4868;border-radius:9px;padding:10px 14px;font-size:12px;text-transform:capitalize}.platform-links a:hover{border-color:var(--pink)}.playlist-list{margin-top:22px}.muted{color:var(--muted);font-size:12px}.empty{padding:45px;text-align:center;color:var(--muted);border:1px dashed #58435e;border-radius:14px}.loading{display:flex;justify-content:center;gap:8px;padding:100px}.loading span{background:var(--pink);height:8px;width:8px;border-radius:50%;animation:bounce 1s infinite alternate}.loading span:nth-child(2){animation-delay:.2s}.loading span:nth-child(3){animation-delay:.4s}@keyframes bounce{to{opacity:.2;transform:translateY(-8px)}}.bottom-nav{display:none}.now-playing[hidden]{display:none}.now-playing{position:fixed;inset:0;background:linear-gradient(145deg,#34203d,#0e1020 70%);z-index:10;padding:20px max(20px,env(safe-area-inset-right));display:flex;flex-direction:column;align-items:center;overflow:auto}.close-now{align-self:flex-start;font-size:28px}.now-art{width:min(62vh,80vw);max-width:470px;margin:10px auto 20px}.now-art img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:18px;box-shadow:0 18px 55px #0009}.now-text,.now-progress,.now-controls,.now-bottom{width:min(470px,100%)}.now-text h2{font-size:clamp(27px,5vw,40px);line-height:1.08;margin:0}.now-text p{color:var(--muted);margin:6px 0 20px}.now-progress>div{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.now-controls{display:flex;justify-content:space-around;align-items:center;margin:22px 0}.now-controls .play-button{width:66px;height:66px;font-size:27px}.now-controls .icon-button{font-size:28px}.now-bottom{display:flex;justify-content:space-between;margin-top:auto;padding-bottom:env(safe-area-inset-bottom)}.text-button{border:0;background:none;color:#f2dce8;font-size:14px;padding:13px}.mobile-close{display:none}#toast{position:fixed;z-index:20;left:50%;bottom:25px;transform:translate(-50%,20px);background:#3a2b42;border:1px solid #875474;border-radius:999px;padding:10px 20px;color:white;font-size:13px;opacity:0;pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1250px){.content-grid{grid-template-columns:minmax(0,1fr) 220px}.card-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.player-extras input{display:none}.player-track{width:150px}.player{gap:8px}.genre-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:990px){.body-layout{grid-template-columns:70px minmax(0,1fr)}.sidebar{padding:14px 8px}.sidebar>a{justify-content:center;padding:0}.sidebar>a>span:last-child,.sidebar-note{display:none}.brand{min-width:200px}.player-progress{max-width:210px}.queue-panel{display:none;position:fixed;top:100px;right:15px;width:min(320px,calc(100vw - 30px));height:min(75vh,600px);overflow:auto;z-index:7;box-shadow:0 20px 60px #0009}.queue-panel.open{display:block}.mobile-close{display:grid}.content-grid{display:block}.card-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:700px){.topbar{height:70px;padding:10px 16px;gap:9px}.brand{min-width:0;flex:1}.brand img{width:38px;height:38px}.brand strong{font-size:23px}.brand small{font-size:9px}.top-search{display:none;position:absolute;top:69px;left:12px;right:12px;width:auto;max-width:none;background:#241a31;z-index:8}.top-search.open{display:flex}.mobile-search{display:grid;font-size:28px}.body-layout{display:block}.sidebar{display:none}.main-column{padding:9px 12px 100px}.player{top:6px;min-height:76px;border-radius:14px;padding:8px 10px;gap:10px}.player-cover-button img{width:53px;height:53px}.player-track{flex:1;width:auto}.player-track strong{font-size:13px}.player-track span{font-size:11px}.player-controls{gap:2px}.player-controls .icon-button{display:none}.player-controls .play-button{width:42px;height:42px;font-size:18px}.player-progress,.player-extras{display:none}.content-grid{margin-top:13px}.hero{min-height:270px;background-image:linear-gradient(90deg,#101523de,#1610244d),var(--hero)}.hero-overlay{max-width:90%;padding:22px}.hero h1{font-size:36px}.hero p{font-size:15px}.content-section{margin:24px 0}.content-section h2,.section-heading h2{font-size:21px}.card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.genre-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.genre-tile{min-height:66px;font-size:15px;padding:12px}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:5;background:#13101ef5;border-top:1px solid #403047;padding:8px 8px calc(8px + env(safe-area-inset-bottom));justify-content:space-around}.bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:1px;color:#d7cadd;min-width:80px}.bottom-nav a span{font-size:24px;line-height:1}.bottom-nav a small{font-size:10px}.detail-hero,.playlist-hero{padding:18px;gap:15px}.detail-hero>img,.playlist-hero>img{width:34vw}.detail-hero h1,.playlist-hero h1{font-size:26px}.queue-panel{top:87px}}
@media(max-width:440px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{min-height:235px}.hero h1{font-size:31px}.hero-actions .primary-button,.hero-actions .ghost-button{padding:9px 13px}.detail-hero,.playlist-hero{align-items:flex-start}.detail-hero>img,.playlist-hero>img{width:105px;flex:none}.detail-hero h1,.playlist-hero h1{font-size:22px}.detail-actions{gap:6px}.detail-actions .primary-button,.detail-actions .ghost-button{font-size:11px;padding:9px 10px}.row-genre{display:none}.filters label{flex:1;min-width:130px}.filters select{width:100%;min-width:0}}
