:root {
    --bg-black: #000000;
    --bg-dark: #121212;
    --bg-light: #282828;
    --sp-green: #1db954;
    --text-white: #ffffff;
    --text-gray: #b3b3b3;
}

* { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Figtree', sans-serif; }

body { background: var(--bg-black); color: var(--text-white); height: 100vh; overflow: hidden; }

/* Desktop Grid Layout */
.app-shell {
    display: grid;
    grid-template-columns: 240px 1fr;
    grid-template-rows: 1fr 90px;
    height: 100vh;
}

/* SIDEBAR */
.sidebar { background: var(--bg-black); padding: 24px 12px; display: flex; flex-direction: column; gap: 20px; }
.logo { font-size: 1.5rem; font-weight: 800; padding: 0 12px; }
.nav-item { background: none; border: none; color: var(--text-gray); text-align: left; padding: 12px; 
            font-size: 1rem; font-weight: 700; cursor: pointer; width: 100%; border-radius: 4px; }
.nav-item:hover, .nav-item.active { color: white; background: var(--bg-light); }
.lib-header { font-size: 0.8rem; color: var(--text-gray); text-transform: uppercase; padding: 20px 12px 10px; }

/* MAIN CONTENT */
.main-view { background: linear-gradient(to bottom, #222, var(--bg-dark)); overflow-y: auto; border-radius: 8px; margin: 8px 8px 0 0; }
.top-bar { position: sticky; top: 0; padding: 16px 32px; background: rgba(18,18,18,0.8); backdrop-filter: blur(20px); display: flex; justify-content: space-between; z-index: 100; }
#searchInput { background: var(--bg-light); border: none; color: white; padding: 10px 20px; border-radius: 500px; width: 300px; }

.content-spacing { padding: 24px 32px 120px; }
.song-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 24px; }
.song-card { background: #181818; padding: 16px; border-radius: 8px; transition: 0.3s; cursor: pointer; }
.song-card:hover { background: #282828; }

/* PLAYER BAR */
.player-bar { grid-column: span 2; background: black; border-top: 1px solid #282828; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; }
.now-playing { width: 30%; display: flex; align-items: center; gap: 12px; }
.mini-art { width: 56px; height: 56px; background: #333; border-radius: 4px; display: flex; align-items: center; justify-content: center; }

.player-center { width: 40%; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.controls { display: flex; align-items: center; gap: 24px; }
.play-circle { background: white; color: black; width: 40px; height: 40px; border-radius: 50%; border: none; cursor: pointer; font-size: 1.2rem; }
.sub-btn { background: none; border: none; color: var(--text-gray); font-size: 1.4rem; cursor: pointer; }

.progress-row { width: 100%; display: flex; align-items: center; gap: 10px; font-size: 0.75rem; color: var(--text-gray); }
.progress-bg { flex: 1; height: 4px; background: #4d4d4d; border-radius: 2px; cursor: pointer; position: relative; }
.progress-fill { height: 100%; background: white; width: 0%; border-radius: 2px; }
.progress-bg:hover .progress-fill { background: var(--sp-green); }

/* MOBILE RESPONSIVE */
@media (max-width: 768px) {
    .app-shell { grid-template-columns: 1fr; }
    .sidebar { display: none; }
    .player-bar { padding: 0 10px; }
    .player-right, .progress-row { display: none; }
    .now-playing { width: 70%; }
    .player-center { width: 20%; }
    .song-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
}