:root {
  --bg: #121212;
  --card: #1e1e1e;
  --text: #ffffff;
  --accent: #1db954;
}

[data-theme="light"] {
  --bg: #ffffff;
  --text: #000;
  --card: #f2f2f2;
}

body {
  background: var(--bg);
  color: var(--text);
  font-family: sans-serif;
  margin: 0;
}

header {
  display: flex;
  justify-content: space-between;
  padding: 15px;
  background: black;
}

button {
  background: var(--accent);
  border: none;
  padding: 10px;
  margin: 5px;
  border-radius: 8px;
  cursor: pointer;
}

input, select {
  padding: 10px;
  margin: 10px;
  border-radius: 6px;
}

.page {
  padding: 20px;
}

.hidden {
  display: none;
}

.card {
  background: var(--card);
  padding: 15px;
  margin: 10px;
  border-radius: 10px;
}

/* GLASS UI */
.glass {
  background: rgba(255,255,255,0.05);
  backdrop-filter: blur(12px);
  padding: 20px;
  border-radius: 15px;
}

/* PRIMARY BUTTON */
.primary {
  background: linear-gradient(45deg, #1db954, #1ed760);
  font-weight: bold;
}

/* CHART GRID */
.chart-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 20px;
}

/* INPUT GROUPS */
.slider-group {
  display: flex;
  flex-direction: column;
  max-width: 400px;
}

/* CHIPS */
.chip {
  display: inline-block;
  padding: 8px 12px;
  margin: 5px;
  border-radius: 20px;
  background: #2a2a2a;
  cursor: pointer;
  transition: 0.2s;
}

.chip:hover {
  background: #1db954;
}

.chip.active {
  background: #1db954;
}

/* CARDS IMPROVED */
.card {
  background: linear-gradient(145deg, #1e1e1e, #2a2a2a);
  transition: 0.3s;
}

.card:hover {
  transform: translateY(-5px);
}

/* HEADER IMPROVED */
header {
  background: linear-gradient(90deg, #121212, #1e1e1e);
}

/* INPUT STYLE */
input {
  background: #1e1e1e;
  color: white;
  border: 1px solid #333;
}

/* BUTTON HOVER */
button:hover {
  transform: scale(1.05);
}

/* ARTIST SEARCH DROPDOWN */
#artistSuggestions {
  position: absolute;
  background: #1e1e1e;
  border: 1px solid #333;
  width: 300px;
  max-height: 200px;
  overflow-y: auto;
  border-radius: 10px;
  z-index: 100;
}

/* SUGGESTION ITEM */
.suggestion-item {
  padding: 10px;
  cursor: pointer;
  border-bottom: 1px solid #333;
}

.suggestion-item:hover {
  background: #1db954;
  color: black;
}

/* SELECTED ARTIST CONTAINER */
#selectedArtists {
  display: flex;
  flex-wrap: wrap;
  margin-top: 10px;
}

#prefNumSongs {
  width: 200px;
}

/* ICON BUTTON */
.icon-btn {
  background: transparent;
  color: white;
  font-size: 18px;
}

/* SEARCH BOX */
.search-box {
  position: relative;
  width: 300px;
}

/* FIX DROPDOWN POSITION */
#artistSuggestions {
  position: absolute;
  top: 45px;
  width: 100%;
}

/* BETTER SPACING */
h2 {
  margin-bottom: 15px;
}

h3 {
  margin-top: 20px;
}

canvas {
  background: rgba(255,255,255,0.03);
  padding: 10px;
  border-radius: 12px;
}

.card {
  border-left: 4px solid #1db954;
}

/* HERO */
.hero {
  text-align: center;
  padding: 60px 20px;
}

.hero h1 {
  font-size: 2.5rem;
}

.hero-buttons button {
  margin: 10px;
}

/* SECTION CARD */
.section-card {
  background: rgba(255,255,255,0.05);
  padding: 20px;
  border-radius: 15px;
  margin-bottom: 30px;
}

/* CENTER */
.center {
  text-align: center;
}

/* CHART LAYOUT */
.charts-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 25px;
  margin-top: 30px;
}

.chart-card {
  background: rgba(255,255,255,0.05);
  padding: 15px;
  border-radius: 12px;
}

/* SUMMARY */
.summary-card {
  margin-top: 30px;
  padding: 20px;
  background: rgba(0,255,150,0.05);
  border-left: 4px solid #1db954;
}

/* INPUT GROUP */
.input-group {
  margin-bottom: 20px;
}

/* SLIDER GRID */
.slider-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
}

/* RESULTS */
.results-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 15px;
  margin-top: 30px;
}