/* --- Lightweight Font Awesome setup (using local woff2) --- */
@font-face{
  font-family: "FontAwesome";
  src: url("/fonts/fontawesome-webfont.woff2") format("woff2");
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}
.fa{
  font-family: "FontAwesome";
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* Icons we need */
.fa-play:before{ content:"\f04b"; }
.fa-pause:before{ content:"\f04c"; }
.fa-step-forward:before{ content:"\f051"; } /* next track */
.fa-step-backward:before{ content:"\f048"; } /* previous track */
.fa-forward:before{ content:"\f04e"; }      /* +30s */
.fa-backward:before{ content:"\f04a"; }     /* -30s */
.fa-volume-up:before{ content:"\f028"; }
.fa-volume-off:before{ content:"\f026"; }
.fa-users:before      { content:"\f0c0"; } /* listeners */
/* optional: .fa-volume-down:before{ content:"\f027"; } */

/* Optional: make icon-only buttons look nice & consistent */
.icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:42px;
  height:36px;
}
.icon-btn .fa{ font-size:16px; }

:root{
  --bg1:#2b1a7f; --bg2:#0f1230; --pink:#b31785; --accent:#5dd0ff;
  --text:#f4f7fb; --muted:#b5bdd3; --card:#101431cc; --line:#2b3058;
  --good:#2bd97c; --bad:#ef476f;
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0; color:var(--text); font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,"Helvetica Neue",Arial;
  background:
    radial-gradient(1200px 700px at 0% 100%, rgba(179,23,133,.65), transparent 60%),
    radial-gradient(1400px 900px at 70% 0%, rgba(45,84,255,.20), transparent 60%),
    linear-gradient(135deg,var(--bg1),var(--bg2) 55%);
}

a{color:inherit; text-decoration:none}
.container{max-width:1200px; margin:0 auto; padding:0 20px}

/* NAV */
.nav{display:flex; align-items:center; justify-content:space-between; padding:18px 0}
.brand{display:flex; align-items:center; gap:10px; font-weight:800; font-size:28px; letter-spacing:.5px}
.brand .sub{font-weight:600; font-size:11px; color:var(--muted)}
.navlinks{display:flex; gap:24px}
.navlinks a{opacity:.9; position:relative}
.navlinks a.active::after{
  content:''; position:absolute; left:0; right:0; bottom:-8px; height:2px; background:var(--text); border-radius:2px;
}
.social{display:flex; gap:14px}
.social a{opacity:.8}

/* HERO */
.hero{padding:70px 0 36px 0; position:relative}
.hero h1{font-size:64px; margin:10px 0 6px 0; display:flex; align-items:center; gap:16px}
.hero h1 .play-icon{display:inline-flex; width:56px; height:56px; border-radius:50%; border:2px solid #fff; align-items:center; justify-content:center}
.hero h2{font-size:42px; margin:0 0 12px 0; font-weight:800}
.hero p{color:var(--muted); max-width:780px}
.pill{border:1px solid rgba(255,255,255,.2); padding:6px 10px; border-radius:999px; font-size:12px; display:inline-block}
.controls{margin-top:22px; display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.btn{background:#ffffff10; border:1px solid #ffffff22; color:#fff; padding:8px 14px; border-radius:10px; cursor:pointer}
.btn:active{transform:translateY(1px)}
.btn.primary{background:linear-gradient(135deg,#7a3cff,#2f80ff); border:none}
.btn.hide{display:none}
.range{accent-color:var(--accent)}

.stripe{height:1px; background:linear-gradient(90deg,transparent,#ffffff22,transparent); margin:32px 0}

/* GRID */
.grid{display:grid; grid-template-columns:repeat(12,1fr); gap:18px}
.col-8{grid-column:span 8} .col-4{grid-column:span 4}
@media(max-width:1024px){ .col-8{grid-column:span 12} .col-4{grid-column:span 12} }

/* CARDS */
.card{background:var(--card); border:1px solid #ffffff14; border-radius:16px; padding:16px; backdrop-filter:blur(6px)}
.card-head{display:flex; align-items:center; gap:10px}
.card-actions{display:flex; gap:10px; margin-top:10px}
.dot{width:10px;height:10px;border-radius:50%;background:var(--bad);box-shadow:0 0 0 2px #0002 inset}
.channel-card.active .dot{background:var(--good)}
.ch-name{margin:0; font-size:18px}
.np-line{margin-top:6px; color:var(--muted); min-height:22px}
.play-card{width:42px;height:42px;border-radius:12px;background:#ffffff15;border:1px solid #ffffff22;color:#fff;cursor:pointer;font-size:18px}
.play-card:active{transform:translateY(1px)}

/* NOW PLAYING box on right */
.np-box h3{margin:0 0 6px 0}
.np-box .big{font-size:20px; font-weight:600}
.np-box .muted{color:var(--muted)}

/* DJs */
.dj-search{display:flex; gap:10px; margin-bottom:12px}
.input{background:#0e1431; border:1px solid #2a2f55; color:#e9ecf6; padding:10px 12px; border-radius:10px; width:100%}
.dj-card{display:flex; gap:12px; align-items:flex-start}
.dj-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#ff8ae2,#7ab8ff);display:flex;align-items:center;justify-content:center;font-weight:800}
.dj-top{display:flex; align-items:center; justify-content:space-between; gap:10px}
.dj-name{margin:0}
.badge{border:1px solid #ffffff22; border-radius:999px; padding:4px 10px; font-size:12px; color:#fff}
.badge.on{background:#1c6b40;border-color:#1c6b40}

/* footer player bar */
.player{margin-top:14px; display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.player .grow{flex:1 1 280px}
.progress{width:100%}
.tiny{color:var(--muted); min-width:90px; text-align:right}
