/* EdjSong — Bootstrap 5 override + custom theme */
:root{
  --edj-bg:#0b0f14;
  --edj-surface:#121821;
  --edj-surface-2:#1b2330;
  --edj-text:#e8eef7;
  --edj-muted:#8a96a8;
  --edj-primary:#22c1c3;
  --edj-primary-2:#0fb0c4;
  --edj-accent:#ff5f6d;
  --edj-border:rgba(255,255,255,.08);
  --edj-radius:14px;
}
html,body{background:var(--edj-bg);color:var(--edj-text);font-family:'Plus Jakarta Sans','Inter','Segoe UI',system-ui,sans-serif;}
.bg-edj{background:var(--edj-bg);}
a{color:#e8eef7;}
a.link-secondary,.text-muted{color:var(--edj-muted)!important;}
.text-edj{color:var(--edj-primary)!important;}
.btn-edj{background:linear-gradient(135deg,var(--edj-primary),var(--edj-primary-2));border:0;color:#fff;font-weight:600;}
.btn-edj:hover{filter:brightness(1.1);color:#fff;}
.edj-header{background:rgba(11,15,20,.85);backdrop-filter:saturate(120%) blur(10px);border-bottom:1px solid var(--edj-border);position:sticky;top:0;z-index:1020;}
.edj-hero{background:radial-gradient(120% 200% at 0% 0%,#1b2330 0%,#0b0f14 60%) , linear-gradient(135deg,#16323b 0%,#0b0f14 70%);border:1px solid var(--edj-border);}
.edj-footer{background:#080b10;border-top:1px solid var(--edj-border);}
.card{background:var(--edj-surface);border:1px solid var(--edj-border);border-radius:var(--edj-radius);}
.form-control,.form-select{background:var(--edj-surface-2);border:1px solid var(--edj-border);color:var(--edj-text);}
.form-control:focus{background:var(--edj-surface-2);color:var(--edj-text);border-color:var(--edj-primary);box-shadow:0 0 0 .2rem rgba(34,193,195,.15);}
.table-dark{--bs-table-bg:var(--edj-surface);--bs-table-border-color:var(--edj-border);}

/* Song card */
.song-card{position:relative;border-radius:12px;overflow:hidden;}
.song-cover{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;display:block;transition:transform .35s ease;}
.song-card:hover .song-cover{transform:scale(1.03);}
.btn-play-overlay{position:absolute;right:.75rem;bottom:.75rem;width:42px;height:42px;display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(8px);transition:.2s;font-size:1.2rem;}
.song-card:hover .btn-play-overlay{opacity:1;transform:translateY(0);}

.category-tile{background:linear-gradient(135deg,#1c2a3a,#101723);border:1px solid var(--edj-border);color:#e8eef7;padding:1.1rem 1rem;border-radius:12px;font-weight:600;text-align:center;transition:.2s;}
.category-tile:hover{background:linear-gradient(135deg,var(--edj-primary),var(--edj-primary-2));}

.artist-avatar{width:120px;height:120px;border-radius:50%;background-size:cover;background-position:center;background-color:#1b2330;border:2px solid var(--edj-border);}
.artist-hero{width:200px;height:200px;border-radius:50%;background-size:cover;background-position:center;background-color:#1b2330;}
.avatar-sm{width:36px;height:36px;border-radius:50%;background:#1b2330;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--edj-muted);}

.lyrics-block{background:var(--edj-surface);border:1px solid var(--edj-border);border-radius:12px;padding:1rem;white-space:pre-wrap;font-family:inherit;color:#cad6e7;}

.rating-stars i{cursor:pointer;color:#666;margin:0 .15rem;}
.rating-stars i.active,.rating-stars i.bi-star-fill{color:#ffc107;}

/* Persistent audio player */
.edj-player{position:fixed;bottom:0;left:0;right:0;background:rgba(8,11,16,.95);backdrop-filter:blur(10px);border-top:1px solid var(--edj-border);padding:.65rem 0;z-index:1040;}
.ep-cover{width:44px;height:44px;border-radius:8px;object-fit:cover;}
.ep-title{font-size:.92rem;font-weight:600;}
.ep-artist{font-size:.75rem;color:var(--edj-muted);}
.ep-seek{max-width:200px;}

@media (max-width:768px){
  .ep-seek{display:none;}
  .edj-hero{padding:1.5rem!important;}
}

/* Admin */
.admin-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh;}
.admin-sidebar{background:#0a0e13;border-right:1px solid var(--edj-border);padding:1rem;}
.admin-sidebar a{display:flex;align-items:center;gap:.6rem;padding:.55rem .75rem;border-radius:8px;color:#cad6e7;text-decoration:none;font-size:.9rem;}
.admin-sidebar a:hover{background:#172230;color:#fff;}
.admin-sidebar a.active{background:linear-gradient(135deg,var(--edj-primary),var(--edj-primary-2));color:#fff;}
.admin-main{padding:1.5rem;}
.stat-card{padding:1rem 1.2rem;border-radius:12px;background:linear-gradient(135deg,#172230,#0d141e);border:1px solid var(--edj-border);}
.stat-card .v{font-size:1.6rem;font-weight:700;}
.stat-card .l{color:var(--edj-muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;}
