:root{
  --ink:#16151a; --ink-2:#2a2731; --paper:#faf8f5;
  --accent:#c9962b; --accent-2:#7b2d3b; --muted:#6b6770;
}
body{ background:var(--paper); color:var(--ink); font-family:'Inter',system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; }
a{ color:var(--accent-2); }
a:hover{ color:var(--ink); }

.site-nav{ background:var(--ink); }
.site-nav .navbar-brand{ letter-spacing:.02em; }
.site-footer{ background:var(--ink); color:#cfc9c2; }
.site-footer a{ color:#e6c97a; text-decoration:none; }

.hero{
  background:linear-gradient(120deg,var(--ink) 0%, var(--ink-2) 60%, var(--accent-2) 140%);
  color:#fff; padding:4.5rem 0;
}
.hero h1{ font-weight:800; letter-spacing:-.02em; }
.section-head{ font-weight:800; letter-spacing:-.01em; }

.release-card{ border:none; box-shadow:0 1px 3px rgba(0,0,0,.08); transition:transform .15s ease, box-shadow .15s ease; }
.release-card:hover{ transform:translateY(-3px); box-shadow:0 8px 24px rgba(0,0,0,.14); }
.release-cover{ aspect-ratio:1/1; object-fit:cover; }
.track-thumb{ object-fit:cover; }
.btn-play{ border:1px solid var(--ink); color:var(--ink); border-radius:50%; width:38px; height:38px; flex:0 0 38px;
  display:inline-flex; align-items:center; justify-content:center; }
.btn-play:hover, .btn-play.playing{ background:var(--ink); color:#fff; }
.min-w-0{ min-width:0; }

.artist-hero{ background-size:cover; background-position:center; color:#fff; position:relative; }
.artist-hero::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.25),rgba(0,0,0,.75)); }
.artist-hero > .container{ position:relative; z-index:2; padding:5rem 0 2.5rem; }
.artist-photo{ width:120px; height:120px; object-fit:cover; border-radius:50%; border:4px solid #fff; }

.spec-table th{ width:38%; color:var(--muted); font-weight:600; }
.tag-chip{ text-decoration:none; }

.player-bar{ position:fixed; left:0; right:0; bottom:0; background:var(--ink); color:#fff; padding:.6rem 0; z-index:1050;
  box-shadow:0 -2px 16px rgba(0,0,0,.3); }

.admin-wrap{ display:flex; min-height:70vh; }
.admin-side{ width:230px; background:var(--ink); color:#cfc9c2; padding:1rem 0; flex:0 0 230px; }
.admin-side a{ display:block; color:#cfc9c2; padding:.5rem 1.25rem; text-decoration:none; }
.admin-side a:hover, .admin-side a.active{ background:rgba(255,255,255,.08); color:#fff; }
.admin-main{ flex:1; padding:1.5rem; min-width:0; }
@media (max-width:768px){ .admin-wrap{ flex-direction:column; } .admin-side{ width:100%; flex:none; } }

/* ---- Admin polish ---- */
.admin-main{ max-width:1100px; margin:0 auto; }
.admin-main h1{ font-weight:800; letter-spacing:-.01em; }
.admin-side{ position:sticky; top:0; align-self:flex-start; }
.admin-side a{ display:flex; align-items:center; border-left:3px solid transparent; }
.admin-side a.active{ border-left-color:var(--accent); }
.admin-main .card{ border:1px solid #ece8e2; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.admin-main .table thead th{ font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; color:var(--muted); }
.admin-main .h6.text-uppercase{ letter-spacing:.05em; font-size:.72rem; }
.admin-main .btn-warning{ font-weight:600; }
.admin-main .form-label{ font-weight:600; font-size:.85rem; }
.admin-main .release-card .card-body{ padding:1rem; }
.btn-play.disabled{ opacity:.4; cursor:default; pointer-events:none; }

/* ---- Footer ---- */
.site-footer{ background:var(--ink); color:#cfc9d6; }
.site-footer a{ color:#cfc9d6; text-decoration:none; }
.site-footer a:hover{ color:#fff; text-decoration:underline; }
.site-footer .footer-head{ font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:#8e8898; margin-bottom:.4rem; }
.site-footer .footer-rule{ border-color:rgba(255,255,255,.12); }
/* Bootstrap's .text-muted is a dark grey — force a light tone on the dark footer. */
.site-footer .text-muted{ color:#a39db0 !important; }
.footer-social a{ font-size:1.25rem; display:inline-flex; }
.footer-social a:hover{ color:var(--accent); }
.content-body{ line-height:1.7; }

/* ---- Admin footer ---- */
.admin-foot{ border-top:1px solid #e7e2da; background:#fff; color:#8a8378; font-size:.8rem; padding:.75rem 0; margin-top:1rem; }
.admin-foot a{ color:#8a8378; text-decoration:none; }
.admin-foot a:hover{ color:var(--ink); text-decoration:underline; }
.upload-progress .progress-bar{ transition:width .2s ease; }

/* ---- Rich text (Quill) ---- */
.ql-size-small{ font-size:.75em; }
.ql-size-large{ font-size:1.5em; }
.ql-size-huge{ font-size:2.5em; }
.content-body .ql-size-huge,.content-body .ql-size-large{ line-height:1.2; }
.richtext-editor{ background:#fff; min-height:140px; }
.richtext-editor .ql-editor{ min-height:140px; }
/* Quill toolbar sits flush on top of the editor */
.ql-toolbar.ql-snow + .ql-container.ql-snow{ border-top:0; }

/* ---- Footer text contrast (force readable light text on the dark footer) ---- */
.site-footer,
.site-footer p,
.site-footer span,
.site-footer div,
.site-footer small,
.site-footer li,
.site-footer strong,
.site-footer .text-muted{ color:#d7d2de !important; }
.site-footer .footer-head{ color:#a59eb6 !important; }
.site-footer a{ color:#ecd9a6 !important; text-decoration:none; }
.site-footer a:hover{ color:#ffffff !important; text-decoration:underline; }
