/* Google Font */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
    font-family:'Poppins',sans-serif;
}

body{
    background:#0f0f0f;
    color:#fff;
    display:flex;
    min-height:100vh;
    overflow-x:hidden;
}

/* Sidebar */

.sidebar{
    width:260px;
    background:#121212;
    padding:25px;
    border-right:1px solid #222;
    position:fixed;
    left:0;
    top:0;
    bottom:0;
}

.logo{
    display:flex;
    align-items:center;
    gap:10px;
    margin-bottom:40px;
}

.logo i{
    color:#1DB954;
    font-size:32px;
}

.logo h2{
    font-size:28px;
    font-weight:700;
}

.sidebar ul{
    list-style:none;
}

.sidebar ul li{
    padding:15px;
    margin:10px 0;
    border-radius:10px;
    cursor:pointer;
    transition:.3s;
}

.sidebar ul li:hover{
    background:#1e1e1e;
    transform:translateX(5px);
}

.sidebar ul li i{
    margin-right:12px;
}

/* Main Content */

.main-content{
    margin-left:260px;
    width:100%;
    padding:30px;
    padding-bottom:130px;
}

/* Header */

header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:30px;
}

.search-box{
    background:#1a1a1a;
    width:350px;
    display:flex;
    align-items:center;
    padding:12px 15px;
    border-radius:30px;
}

.search-box input{
    width:100%;
    background:none;
    border:none;
    color:white;
    outline:none;
    font-size:15px;
}

.search-box i{
    color:#aaa;
}

.voice-btn{
    width:50px;
    height:50px;
    border:none;
    border-radius:50%;
    cursor:pointer;
    background:#1DB954;
    color:white;
    font-size:18px;
    transition:.3s;
}

.voice-btn:hover{
    transform:scale(1.08);
}

/* Banner */

.banner{
    background:linear-gradient(
        135deg,
        #1DB954,
        #0d6d39
    );
    border-radius:25px;
    padding:50px;
    margin-bottom:40px;
}

.banner h1{
    font-size:40px;
    margin-bottom:15px;
}

.banner p{
    font-size:16px;
    color:#f0f0f0;
}

/* Section Title */

.section-title{
    margin-bottom:20px;
    font-size:28px;
}

/* Song Grid */

.song-grid{
    display:grid;
    grid-template-columns:
    repeat(auto-fill,minmax(230px,1fr));
    gap:25px;
}

/* Song Card */

.song-card{
    background:rgba(255,255,255,0.05);
    backdrop-filter:blur(12px);
    border:1px solid rgba(255,255,255,0.1);
    border-radius:20px;
    padding:18px;
    transition:.3s;
    position:relative;
}

.song-card:hover{
    transform:translateY(-8px);
    box-shadow:
    0 10px 25px rgba(0,0,0,0.4);
}

.song-card img{
    width:100%;
    height:220px;
    object-fit:cover;
    border-radius:15px;
}

.song-card h3{
    margin-top:15px;
}

.song-card p{
    color:#bdbdbd;
    font-size:14px;
    margin-top:5px;
}

/* Play Button */

.play-song{
    position:absolute;
    right:18px;
    bottom:65px;

    width:50px;
    height:50px;

    border:none;
    border-radius:50%;

    background:#1DB954;
    color:white;

    cursor:pointer;
    font-size:18px;

    transition:.3s;
}

.play-song:hover{
    transform:scale(1.1);
}

/* Favorite Button */

.fav-btn{
    margin-top:15px;

    border:none;
    background:none;

    color:white;
    cursor:pointer;
    font-size:22px;
}

.fav-btn:hover{
    color:#ff4d6d;
}

/* Visualizer */

.visualizer-section{
    margin-top:50px;
}

#visualizer{
    width:100%;
    height:200px;
    background:#161616;
    border-radius:20px;
}

/* Music Player Footer */

.music-player{
    position:fixed;
    bottom:0;
    left:260px;
    right:0;

    height:100px;

    background:#181818;

    display:flex;
    justify-content:space-between;
    align-items:center;

    padding:15px 25px;

    border-top:1px solid #333;
}

/* Song Info */

.song-info{
    display:flex;
    align-items:center;
    gap:15px;
}

.song-info img{
    width:65px;
    height:65px;
    border-radius:12px;
    object-fit:cover;
}

.song-info h4{
    font-size:16px;
}

.song-info p{
    color:#aaa;
    font-size:13px;
}

/* Controls */

.player-controls{
    width:40%;
    text-align:center;
}

.buttons{
    margin-bottom:10px;
}

.buttons button{
    width:45px;
    height:45px;

    border:none;
    border-radius:50%;

    margin:0 10px;

    cursor:pointer;

    background:#282828;
    color:white;

    font-size:18px;
    transition:.3s;
}

.buttons button:hover{
    background:#1DB954;
}

#playPauseBtn{
    width:55px;
    height:55px;
    font-size:22px;
}

#progressBar{
    width:100%;
    cursor:pointer;
}

/* Volume */

.volume-section{
    display:flex;
    align-items:center;
    gap:10px;
}

.volume-section i{
    color:#1DB954;
}

#volumeSlider{
    width:120px;
}

/* Scrollbar */

::-webkit-scrollbar{
    width:8px;
}

::-webkit-scrollbar-track{
    background:#111;
}

::-webkit-scrollbar-thumb{
    background:#1DB954;
    border-radius:20px;
}

/* Responsive */

@media(max-width:1000px){

    .sidebar{
        width:80px;
        padding:20px 10px;
    }

    .sidebar h2{
        display:none;
    }

    .sidebar ul li{
        text-align:center;
    }

    .sidebar ul li i{
        margin-right:0;
    }

    .main-content{
        margin-left:80px;
    }

    .music-player{
        left:80px;
    }
}

@media(max-width:768px){

    body{
        flex-direction:column;
    }

    .sidebar{
        display:none;
    }

    .main-content{
        margin-left:0;
    }

    .music-player{
        left:0;
        height:auto;
        flex-direction:column;
        gap:15px;
        padding:15px;
    }

    .player-controls{
        width:100%;
    }

    .search-box{
        width:220px;
    }

    .banner{
        padding:30px;
    }

    .banner h1{
        font-size:28px;
    }
}

@media(max-width:500px){

    .song-grid{
        grid-template-columns:1fr;
    }

    .search-box{
        width:180px;
    }

    .volume-section{
        width:100%;
        justify-content:center;
    }
}

.song-card img{
    transition:0.4s;
}

.song-card:hover img{
    transform:scale(1.05);
}

.song-card:hover h3{
    color:#1DB954;
}

