/* =========================================================
   HALTON SOUND DASHBOARD BUILD 2.5.6
   Clean operational design system aligned to haltonsound.co.uk
   ========================================================= */
:root{
  --hs-purple:#72469b;
  --hs-purple-2:#a979d0;
  --hs-purple-dark:#2a1b31;
  --hs-pink:#c31370;
  --hs-pink-dark:#a90f61;
  --hs-pink-soft:#fbe8f2;
  --hs-nav:#2a1b31;
  --hs-nav-hover:#382441;
  --hs-orange:#ed7a33;
  --hs-yellow:#f6bc38;
  --hs-ink:#17121b;
  --hs-text:#4f4854;
  --hs-muted:#7b7480;
  --hs-bg:#f7f6f8;
  --hs-card:#ffffff;
  --hs-line:#e6e2e8;
  --hs-line-strong:#d8d1dc;
  --hs-success:#15825e;
  --hs-warning:#8a5b09;
  --hs-danger:#bd314f;
  --hs-navy:#172536;
  --accent:var(--hs-pink);
  --accent2:var(--hs-purple);
  --bg:var(--hs-bg);
  --panel:var(--hs-card);
  --panel2:var(--hs-card);
  --text:var(--hs-ink);
  --muted:var(--hs-muted);
  --line:var(--hs-line);
  --radius:12px;
  --shadow:0 8px 24px rgba(25,17,31,.055);
}
*{box-sizing:border-box}
html{background:var(--hs-bg)!important}
body{
  margin:0!important;
  min-height:100vh;
  font-family:Inter,"Segoe UI",Arial,sans-serif!important;
  color:var(--hs-text)!important;
  background:var(--hs-bg)!important;
  font-size:14px;
}
body:before{display:none!important}
a{color:var(--hs-purple);text-decoration:none}
a:hover{color:var(--hs-pink)}
h1,h2,h3,h4,strong{color:var(--hs-ink)}
h1,h2,.module-card h2,.dashboard-hero h1,.section-hero h1,.hero-copy h1{
  font-family:"Vinyl OT","Arial Narrow","Roboto Condensed","Segoe UI",sans-serif!important;
}

/* Header — directly inspired by public website */
.topbar,.dashboard-topbar{
  position:sticky!important;top:0!important;z-index:100!important;
  height:86px!important;min-height:86px!important;
  display:flex!important;align-items:center!important;justify-content:space-between!important;
  padding:0 max(28px,3.2vw)!important;
  background:var(--hs-nav)!important;
  border:0!important;border-bottom:1px solid rgba(255,255,255,.06)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}
.topbar:after,.dashboard-topbar:after{
  content:"";position:absolute;left:0;right:0;bottom:-4px;height:4px;
  background:linear-gradient(90deg,var(--hs-purple) 0 38%,var(--hs-pink) 38% 76%,var(--hs-orange) 76% 90%,var(--hs-yellow));
}
.hs-brand{display:flex!important;align-items:center!important;gap:12px!important;color:#fff!important;min-width:240px}
.hs-logo{width:48px!important;height:48px!important;border-radius:50%!important;object-fit:cover!important;background:#fff!important;border:0!important;box-shadow:none!important}
.hs-lockup{display:flex!important;flex-direction:column!important;line-height:1!important}
.hs-lockup strong{font-size:18px!important;letter-spacing:.075em!important;color:#fff!important;font-weight:900!important}
.hs-product{display:flex!important;align-items:center!important;gap:6px!important;color:#d6cadc!important;font-size:9px!important;letter-spacing:.18em!important;margin-top:6px!important;font-weight:800!important}
.hs-lockup small{display:none!important}
.version-badge{font-family:Inter,"Segoe UI",sans-serif!important;font-size:8px!important;padding:2px 5px!important;border-radius:4px!important;background:rgba(255,255,255,.08)!important;border:1px solid rgba(255,255,255,.1)!important;color:#d8cce0!important}
.dashboard-nav{display:flex!important;align-items:center!important;gap:4px!important;flex-wrap:nowrap!important}
.dashboard-nav>a:not(.user-chip){padding:9px 10px!important;border-radius:6px!important;background:transparent!important;color:#eee9f0!important;font-size:12.5px!important;font-weight:650!important;white-space:nowrap!important}
.dashboard-nav>a:not(.user-chip):hover{background:rgba(255,255,255,.08)!important;color:#fff!important;transform:none!important}
.dashboard-nav>a.nav-link.active{background:var(--hs-pink)!important;color:#fff!important;box-shadow:0 5px 14px rgba(195,19,112,.24)!important}
.dashboard-nav>a.nav-link.active:hover{background:var(--hs-pink-dark)!important;color:#fff!important}
.dashboard-nav>a.nav-link:focus-visible,.user-chip.user-chip-link:focus-visible,.nav-logout button:focus-visible{outline:3px solid rgba(195,19,112,.28)!important;outline-offset:2px!important}
.user-chip.user-chip-link{margin-left:9px!important;padding:5px 8px 5px 5px!important;border:1px solid rgba(255,255,255,.16)!important;background:rgba(255,255,255,.075)!important;border-radius:8px!important;color:#fff!important;box-shadow:none!important}
.user-chip.user-chip-link:hover{background:rgba(255,255,255,.12)!important;border-color:rgba(255,255,255,.22)!important}
.user-chip.user-chip-link.active{border-color:rgba(195,19,112,.9)!important;box-shadow:0 0 0 2px rgba(195,19,112,.16)!important}
.nav-profile-photo,.nav-profile-fallback{width:30px!important;height:30px!important;border-radius:50%!important}
.nav-profile-fallback{display:grid!important;place-items:center!important;background:var(--hs-purple)!important;color:#fff!important;font-weight:800!important}
.user-chip-copy strong{font-size:11px!important;color:#fff!important}.user-chip-copy small{font-size:9px!important;color:#bdb2c3!important}
.nav-logout button{padding:8px 10px!important;border-radius:6px!important;border:0!important;background:transparent!important;color:#cbbfd0!important;font-size:12px!important;font-weight:650!important;cursor:pointer!important}
.nav-logout button:hover{background:rgba(255,255,255,.07)!important;color:#fff!important}

/* Main application canvas */
.page,.dashboard-page{width:min(1420px,94vw)!important;margin:32px auto 64px!important}
.eyebrow{margin:0 0 7px!important;color:var(--hs-purple)!important;font-size:10px!important;font-weight:850!important;letter-spacing:.16em!important;text-transform:uppercase!important}
.lead{color:var(--hs-muted)!important;font-size:14px!important;line-height:1.55!important}
h1{font-size:clamp(34px,4vw,54px)!important;line-height:.98!important;letter-spacing:-.03em!important;margin:2px 0 10px!important}
h2{font-size:23px!important;line-height:1.08!important;letter-spacing:-.018em!important;margin:2px 0 8px!important}
h3{font-size:17px!important}

/* Operational page headers: compact, flat, professional */
.section-hero,.history-hero,.sources-hero,.library-hero,.profile-hero{
  display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:24px!important;
  min-height:0!important;padding:0 0 18px!important;margin:0 0 20px!important;
  border:0!important;border-bottom:1px solid var(--hs-line)!important;border-radius:0!important;
  background:transparent!important;box-shadow:none!important;overflow:visible!important;
}
.section-hero:after,.dashboard-hero:after{display:none!important}
.section-hero h1,.library-hero h1,.profile-hero h1{font-size:38px!important;color:var(--hs-ink)!important}
.section-hero h1 span,.library-hero h1 span,.profile-hero h1 span{color:var(--hs-pink)!important}
.section-hero .lead{margin:0!important;max-width:720px!important}
.hero-actions{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:wrap!important}

/* Dashboard home gets the expressive treatment */
.dashboard-hero{
  position:relative!important;overflow:hidden!important;
  display:grid!important;grid-template-columns:minmax(0,1fr) 280px!important;gap:28px!important;align-items:center!important;
  padding:32px 34px!important;margin-bottom:22px!important;
  border:0!important;border-radius:14px!important;
  background:linear-gradient(110deg,#21102d 0%,#2d143d 53%,#17101d 100%)!important;
  box-shadow:none!important;
}
.dashboard-hero:before{content:"";position:absolute;inset:auto 0 0;height:4px;background:linear-gradient(90deg,var(--hs-purple),var(--hs-pink),var(--hs-orange),var(--hs-yellow))}
.dashboard-hero .eyebrow{color:#c7a8df!important}.dashboard-hero h1{color:#fff!important;font-size:46px!important}.dashboard-hero h1 span{color:#c889ef!important}.dashboard-hero .lead{color:#d9cedf!important;max-width:720px!important;font-size:15px!important}
.dashboard-profile-card,.dashboard-welcome{display:flex!important;align-items:center!important;gap:12px!important;padding:14px!important;border:1px solid rgba(255,255,255,.13)!important;background:rgba(255,255,255,.07)!important;border-radius:10px!important;box-shadow:none!important;color:#fff!important}
.dashboard-welcome small{color:#bdaec5!important}.dashboard-welcome strong{color:#fff!important}.dashboard-welcome span{color:#d4c9d9!important}.dashboard-profile-card em{color:#efa7d1!important}
.dashboard-profile-photo,.dashboard-profile-fallback{width:54px!important;height:54px!important;border-radius:50%!important;object-fit:cover!important;border:0!important;box-shadow:none!important}
.dashboard-profile-fallback{display:grid!important;place-items:center!important;background:var(--hs-purple)!important;color:#fff!important;font-size:20px!important;font-weight:800!important}

/* Music Checker header */
.hero.hs-hero{display:grid!important;grid-template-columns:minmax(0,1fr) 250px!important;gap:14px!important;align-items:stretch!important;margin:0 0 18px!important}
.hero-copy{min-height:0!important;padding:24px 26px!important;border-radius:12px!important;border:0!important;background:#21162a!important;box-shadow:none!important;overflow:hidden!important}
.hero-copy:after{display:none!important}
.hero-copy h1{font-size:42px!important;color:#fff!important;margin:2px 0 7px!important}.hero-copy h1 span{color:#ee4ba5!important}.hero-copy .lead{margin:0!important;color:#cfc3d3!important;font-size:14px!important}
.brand-stripe{width:220px!important;height:4px!important;margin-top:18px!important;border-radius:0!important}
.status-card{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:8px!important;padding:20px!important;border:1px solid var(--hs-line)!important;border-radius:12px!important;background:#fff!important;box-shadow:none!important}
.status{font-size:12px!important}.status.ok{color:var(--hs-success)!important}.status.bad{color:var(--hs-danger)!important}

/* Panels and cards */
.card,.panel-card,.auth-card,.review-card,.coming-card,.settings-card,.match-panel,
.library-path-note,.upload-history-row,.show-upload-row,.user-row,.changelog-card details,
.library-track-row,.library-stats>div,.summary-grid>div,.stats>div,.review-grid>div{
  background:#fff!important;border:1px solid var(--hs-line)!important;border-radius:12px!important;box-shadow:none!important;color:var(--hs-text)!important;
}
.card,.panel-card,.auth-card,.review-card,.coming-card{padding:20px!important}
.panel-card p,.module-card p,.review-card p,.coming-card p{color:var(--hs-muted)!important}
.card.topgap,.panel-card.topgap{margin-top:16px!important}
.section-head{display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:16px!important;margin-bottom:14px!important}.section-head h2{margin-bottom:2px!important}
.subtle,.hint,.helper,.library-helper,.upload-guidance,.credential-note{font-size:12px!important;line-height:1.5!important;color:var(--hs-muted)!important}

/* Dashboard module cards */
.module-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:12px!important;margin-top:18px!important}
.module-card{position:relative!important;min-height:170px!important;padding:20px!important;border:1px solid var(--hs-line)!important;border-radius:12px!important;background:#fff!important;box-shadow:none!important;color:var(--hs-text)!important;overflow:hidden!important;transition:border-color .14s ease,transform .14s ease!important}
.module-card:before{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--hs-purple)!important}
.module-card.module-live:before{background:var(--hs-pink)!important}.module-card.module-management:before{background:#29202e!important}
.module-card:hover{transform:translateY(-2px)!important;border-color:#cfc5d6!important;background:#fff!important;box-shadow:var(--shadow)!important}
.module-card h2{font-size:25px!important;color:var(--hs-ink)!important;margin:4px 0 8px!important}
.module-card p{font-size:13px!important;line-height:1.5!important;margin:0 0 16px!important}.module-kicker{font-size:9px!important;letter-spacing:.16em!important;color:var(--hs-purple)!important}.module-meta{font-size:11px!important;color:var(--hs-muted)!important}.module-action{position:absolute!important;left:20px!important;bottom:18px!important;font-size:12px!important;font-weight:800!important;color:var(--hs-pink)!important}

/* Buttons */
.button,button.button,a.button,.tiny-action,.user-actions summary,.mini{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;
  min-height:36px!important;padding:8px 13px!important;border-radius:7px!important;
  font-family:Inter,"Segoe UI",sans-serif!important;font-size:12px!important;font-weight:750!important;line-height:1!important;
  border:1px solid transparent!important;box-shadow:none!important;cursor:pointer!important;transition:background .14s,border-color .14s,color .14s!important;
}
.button:hover,.tiny-action:hover,.user-actions summary:hover{transform:none!important;filter:none!important}
.button.primary,.keepbtn,.lyricsbtn,.publish-clean-button,.spotify-action,.clean-publish{
  color:#fff!important;background:var(--hs-pink)!important;border-color:var(--hs-pink)!important;
}
.button.primary:hover{background:var(--hs-pink-dark)!important;border-color:var(--hs-pink-dark)!important}
.button.secondary,.button.ghost,.skipbtn,.tiny-action,.user-actions summary,.mini{
  color:var(--hs-purple)!important;background:#fff!important;border-color:#d9cde2!important;
}
.button.secondary:hover,.button.ghost:hover,.tiny-action:hover,.user-actions summary:hover{background:#f4f1f5!important;border-color:#c8becd!important}
.button.big{padding:9px 15px!important;min-height:38px!important}
.danger-button,.removebtn,.danger-action{background:#fff5f7!important;color:var(--hs-danger)!important;border-color:#efcbd4!important}
.linkbtn{border:0!important;background:transparent!important;color:var(--hs-muted)!important;padding:0!important;font-size:11px!important}

/* Forms */
.auth-form,.form,.mini-form{gap:13px!important}
.auth-form label,.mini-form label,.form label{gap:6px!important;color:#39313d!important;font-size:12px!important;font-weight:700!important}
.auth-form input,.auth-form select,.auth-form textarea,.mini-form input,.mini-form select,.mini-form textarea,
.form input,.form select,.form textarea,select,textarea,.library-search-form input,.library-search-form select,.profile-form textarea{
  min-height:40px!important;padding:9px 11px!important;color:var(--hs-ink)!important;background:#fff!important;border:1px solid var(--hs-line-strong)!important;border-radius:7px!important;box-shadow:none!important;font-size:13px!important;
}
textarea{min-height:94px!important}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(195,19,112,.11)!important;outline-offset:0!important;border-color:var(--hs-pink)!important}
.info,.upload-guidance,.profile-lock-note{padding:11px 12px!important;background:#f7f5f8!important;border:1px solid var(--hs-line)!important;border-radius:8px!important;color:var(--hs-muted)!important}
.permission-editor{padding:13px!important;border:1px solid var(--hs-line)!important;border-radius:9px!important;background:#faf9fb!important;color:var(--hs-text)!important}
.permission-editor>strong{display:block!important;margin-bottom:4px!important}.permission-editor>small{display:block!important;margin-bottom:10px!important;color:var(--hs-muted)!important;font-size:11px!important}
.permission-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
.permission-option{display:flex!important;align-items:center!important;gap:8px!important;min-height:38px!important;padding:8px 9px!important;background:#fff!important;border:1px solid var(--hs-line)!important;border-radius:7px!important;color:var(--hs-text)!important}
.permission-option input{min-height:auto!important;width:15px!important;height:15px!important;accent-color:var(--hs-pink)!important}.permission-option span{font-size:11px!important}.permission-option small{display:block!important;margin-top:2px!important;color:var(--hs-muted)!important;font-size:10px!important}

/* Management */
.management-layout{display:grid!important;grid-template-columns:340px minmax(0,1fr)!important;gap:14px!important;align-items:start!important}
.span-two{min-width:0!important}.user-list{display:grid!important;gap:8px!important}.user-row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:14px!important;padding:13px 14px!important}
.user-main{display:flex!important;align-items:center!important;gap:8px!important;min-width:0!important;flex-wrap:wrap!important}.user-main>strong{font-size:14px!important}.user-main>span:not(.expiry-pill){font-size:11px!important;color:var(--hs-muted)!important}.permission-summary{width:auto!important;min-width:0!important;padding:4px 7px!important;border-radius:5px!important;background:#f0edf2!important;color:#5f5664!important;font-size:9px!important;font-weight:700!important}
.expiry-pill{padding:4px 8px!important;border-radius:999px!important;font-size:9px!important;font-weight:800!important}.expiry-neutral{background:#efedf0!important;color:#746d78!important}
.user-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:6px!important;flex-wrap:wrap!important}.user-actions details{position:relative!important}.user-actions details[open]>.mini-form,.user-actions details[open]>.wide-editor{position:absolute!important;right:0!important;top:42px!important;z-index:30!important;width:380px!important;padding:14px!important;background:#fff!important;border:1px solid var(--hs-line-strong)!important;border-radius:10px!important;box-shadow:0 18px 48px rgba(28,18,34,.14)!important}
.audit-panel{margin-top:14px!important}.audit-list>div{padding:10px 0!important;border-bottom:1px solid var(--hs-line)!important}.audit-list span,.audit-list small{font-size:11px!important;color:var(--hs-muted)!important}

/* Music Library */
.library-stats{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:8px!important;margin:0 0 14px!important}.library-stats>div{padding:12px 14px!important}.library-stats span{font-size:10px!important;color:var(--hs-muted)!important;text-transform:uppercase!important;letter-spacing:.08em!important}.library-stats strong{font-size:22px!important;margin-top:3px!important}
.library-management-grid{display:grid!important;grid-template-columns:1.35fr .9fr!important;gap:14px!important;margin-bottom:14px!important}.library-copy-option{margin-top:2px!important}.library-path-note{padding:10px 12px!important;margin-top:10px!important;background:#faf9fb!important}.library-path-note span{font-size:9px!important}.library-path-note code{font-size:11px!important;color:#625868!important}.library-safety-summary{display:grid!important;grid-template-columns:repeat(4,1fr)!important;gap:6px!important;margin:12px 0!important}.library-safety-summary>div{padding:10px!important;border:1px solid var(--hs-line)!important;border-radius:8px!important;background:#fff!important;text-align:center!important}.library-safety-summary strong{font-size:19px!important}.library-safety-summary span{font-size:10px!important;color:var(--hs-muted)!important}.library-browser{padding:18px!important}.library-browser-head{display:flex!important;align-items:end!important;justify-content:space-between!important;gap:14px!important;margin-bottom:12px!important}.library-search-form{display:flex!important;gap:6px!important;align-items:center!important;flex-wrap:wrap!important}.library-search-form input{width:260px!important}.library-search-form select{width:auto!important;min-width:145px!important}.library-track-list{display:grid!important;gap:6px!important}.library-track-row{display:grid!important;grid-template-columns:46px minmax(0,1fr) auto auto!important;align-items:center!important;gap:12px!important;padding:9px 10px!important}.library-artwork{width:46px!important;height:46px!important;border-radius:6px!important;overflow:hidden!important;background:#f1edf3!important}.library-artwork img{width:100%!important;height:100%!important;object-fit:cover!important}.library-track-main strong{font-size:13px!important}.library-track-main span,.library-track-main small{display:block!important;color:var(--hs-muted)!important;font-size:10.5px!important;margin-top:2px!important}.library-tag,.library-safety-pill{padding:4px 6px!important;border-radius:5px!important;font-size:9px!important}

/* Settings / sticky areas */
.settings-sticky{position:sticky!important;top:94px!important;z-index:20!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;padding:13px 15px!important;margin-bottom:14px!important;background:#fff!important;border:1px solid var(--hs-line)!important;border-radius:10px!important;box-shadow:none!important}.settings-sticky h2{font-size:21px!important}.settings-sticky .eyebrow{margin-bottom:4px!important}.settings-sticky .button.primary{background:var(--hs-pink)!important}
.settings-section,.settings-card{padding:18px!important}.connection-actions{display:flex!important;gap:7px!important;flex-wrap:wrap!important}

/* Stats/tables/status */
.stats,.summary-grid{gap:8px!important;margin:14px 0!important}.stats>div,.summary-grid>div{padding:12px!important}.stats strong,.summary-grid strong{font-size:22px!important}.stats span,.summary-grid span{font-size:10px!important;color:var(--hs-muted)!important}
.table-wrap{overflow:auto!important;border:1px solid var(--hs-line)!important;border-radius:9px!important;background:#fff!important}table{width:100%!important;border-collapse:collapse!important;background:#fff!important;color:var(--hs-text)!important;font-size:12px!important}th{padding:9px 10px!important;background:#faf9fb!important;color:#766c7c!important;border-bottom:1px solid var(--hs-line)!important;font-size:9px!important;letter-spacing:.08em!important;text-transform:uppercase!important}td{padding:10px!important;border-bottom:1px solid #eeeaf0!important}tbody tr:hover{background:#fbfafc!important}
.filters a{padding:6px 8px!important;border-radius:6px!important;background:#f1eef3!important;color:#5f5664!important;font-size:11px!important}.filters a.active{background:var(--hs-purple)!important;color:#fff!important}
.pill{padding:4px 7px!important;border-radius:999px!important;font-size:9px!important}.pill.good{background:#e8f6f0!important;color:var(--hs-success)!important}.pill.warn,.pill.review{background:#fff6df!important;color:#9a6713!important}.pill.danger{background:#fff0f3!important;color:var(--hs-danger)!important}.pill.neutral{background:#efedf0!important;color:#6e6672!important}

/* Soft semantic status badges — status must not look like a button */
.upload-status{display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;padding:5px 9px!important;border-radius:999px!important;font-size:10px!important;font-weight:850!important;letter-spacing:.045em!important;border:1px solid transparent!important;box-shadow:none!important}
.upload-status.status-complete{background:#e8f6f0!important;color:#176b50!important;border-color:#cee9dd!important}
.upload-status.status-pending,.upload-status.status-transferring{background:#fff4dc!important;color:#8a5b09!important;border-color:#f0dfb6!important}
.upload-status.status-failed{background:#fce8ec!important;color:#a62a45!important;border-color:#efcbd4!important}
.status-good{color:#176b50!important}
.alert{padding:10px 12px!important;border-radius:8px!important;margin-bottom:12px!important;border:1px solid!important;font-size:12px!important}.alert.success{background:#eff9f5!important;border-color:#c9e8dc!important;color:#17684e!important}.alert.error{background:#fff2f4!important;border-color:#efcbd4!important;color:#9e2942!important}.alert.info{background:#f1f6fb!important;border-color:#cfe0ef!important;color:#365f7e!important}

/* Uploader */
.upload-shell,.show-uploader-shell{max-width:900px!important;margin:0 auto!important}.upload-dropzone{border-radius:10px!important;border-color:var(--hs-line-strong)!important;background:#faf9fb!important}.upload-progress-track{height:8px!important;background:#eeeaf0!important;border-radius:999px!important;overflow:hidden!important}.upload-progress-fill{background:linear-gradient(90deg,var(--hs-purple),var(--hs-pink))!important}.upload-success-dialog{border-radius:12px!important;box-shadow:0 24px 80px rgba(23,15,28,.18)!important}

/* Auth/profile */
.auth-wrap{min-height:68vh!important}.auth-card{width:min(500px,100%)!important;padding:26px!important;border-top:3px solid var(--hs-pink)!important;box-shadow:var(--shadow)!important}.auth-card h1{font-size:36px!important}.profile-grid{gap:14px!important}

footer{display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;margin-top:50px!important;padding:24px!important;border-top:1px solid var(--hs-line)!important;color:#948c98!important;font-size:9px!important;letter-spacing:.1em!important}footer img{width:24px!important;height:24px!important;border-radius:50%!important}

@media(max-width:1100px){
  .dashboard-nav>a:not(.user-chip){display:none!important}
  .module-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .management-layout,.library-management-grid{grid-template-columns:1fr!important}
  .library-stats{grid-template-columns:repeat(3,1fr)!important}
}
@media(max-width:760px){
  .topbar,.dashboard-topbar{height:auto!important;min-height:76px!important;padding:10px 16px!important;position:relative!important}
  .hs-brand{min-width:0!important}.hs-logo{width:42px!important;height:42px!important}.hs-lockup strong{font-size:15px!important}.hs-product{font-size:8px!important}
  .user-chip-copy,.nav-logout{display:none!important}.page,.dashboard-page{width:92vw!important;margin-top:22px!important}
  .dashboard-hero,.hero.hs-hero{grid-template-columns:1fr!important}.dashboard-hero{padding:24px!important}.dashboard-hero h1{font-size:38px!important}.hero-copy h1{font-size:36px!important}
  .section-hero{align-items:flex-start!important;flex-direction:column!important}.section-hero h1{font-size:34px!important}
  .module-grid{grid-template-columns:1fr!important}.library-stats{grid-template-columns:repeat(2,1fr)!important}.library-track-row{grid-template-columns:46px minmax(0,1fr)!important}.library-track-meta,.library-track-actions{grid-column:2!important}.user-row{align-items:flex-start!important;flex-direction:column!important}.user-actions{justify-content:flex-start!important}.user-actions details[open]>.mini-form,.user-actions details[open]>.wide-editor{position:fixed!important;left:5vw!important;right:5vw!important;top:15vh!important;width:90vw!important;max-height:70vh!important;overflow:auto!important}
}


/* Build 2.5.3 — shared Music Checker queue */
.queue-wait-card{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 14px;padding:16px 18px;border:1px solid #ead2df;border-left:4px solid var(--hs-pink);border-radius:10px;background:var(--hs-pink-soft);color:var(--hs-text)}
.queue-wait-card[hidden]{display:none!important}.queue-wait-card>div{display:flex;flex-direction:column;gap:4px}.queue-label{font-size:10px;font-weight:850;letter-spacing:.16em;color:var(--hs-pink)}.queue-wait-card strong{font-size:18px;color:var(--hs-ink)}.queue-wait-card small{color:var(--hs-muted)}.queue-estimate{text-align:right;max-width:360px}.queue-estimate>span{font-size:11px;font-weight:750;color:var(--hs-muted)}.queue-estimate>strong{font-size:24px;color:var(--hs-pink)}
.queue-chip-row{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}.queue-chip{display:grid;grid-template-columns:auto auto;column-gap:8px;row-gap:2px;min-width:180px;padding:10px 12px;border:1px solid var(--hs-line);border-radius:8px;background:#fff;color:var(--hs-text)!important;text-decoration:none!important}.queue-chip:hover{border-color:#d8b6cb;background:#fff8fb}.queue-chip strong{color:var(--hs-pink)}.queue-chip span{justify-self:end;font-size:11px;font-weight:800;color:var(--hs-purple)}.queue-chip small{grid-column:1/-1;color:var(--hs-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.login-help{margin-top:14px}.login-help a{color:var(--hs-pink);font-weight:750;text-decoration:none}.login-help a:hover{text-decoration:underline}.recovery-note{margin:18px 0;padding:14px;border:1px solid #ead2df;border-radius:9px;background:#fff8fb}.recovery-note code{font-weight:800;color:var(--hs-purple)}
@media(max-width:760px){.queue-wait-card{align-items:flex-start;flex-direction:column}.queue-estimate{text-align:left}}

/* =========================================================
   BUILD 2.5.4 — GLOBAL HALTON SOUND ACTION BUTTON SYSTEM
   The public website is the visual source of truth. Standard
   dashboard actions now use the same solid Halton Sound pink.
   Semantic/destructive/external-brand controls remain distinct.
   ========================================================= */
:root{
  --hs-action:#C31370;
  --hs-action-hover:#A90F61;
  --hs-action-disabled:#E8CFDC;
  --hs-action-disabled-text:#8F6A7E;
}

/* All ordinary clickable application actions share one branded treatment. */
.button,
button.button,
a.button,
.button.primary,
button.button.primary,
a.button.primary,
.button.secondary,
button.button.secondary,
a.button.secondary,
.button.ghost,
button.button.ghost,
a.button.ghost,
.tiny-action,
.user-actions summary,
.mini,
.skipbtn,
.lyricsbtn,
.deep-check,
.publish-clean-button,
.clean-publish,
.spotify-action{
  background:var(--hs-action)!important;
  border:1px solid var(--hs-action)!important;
  color:#fff!important;
  box-shadow:none!important;
  filter:none!important;
}

.button:hover,
button.button:hover,
a.button:hover,
.button.primary:hover,
button.button.primary:hover,
a.button.primary:hover,
.button.secondary:hover,
button.button.secondary:hover,
a.button.secondary:hover,
.button.ghost:hover,
button.button.ghost:hover,
a.button.ghost:hover,
.tiny-action:hover,
.user-actions summary:hover,
.mini:hover,
.skipbtn:hover,
.lyricsbtn:hover,
.deep-check:hover,
.publish-clean-button:hover,
.clean-publish:hover,
.spotify-action:hover{
  background:var(--hs-action-hover)!important;
  border-color:var(--hs-action-hover)!important;
  color:#fff!important;
  transform:none!important;
  filter:none!important;
}

/* Disabled actions remain recognisably branded, without appearing active. */
.button:disabled,
button.button:disabled,
.button.disabled,
a.button.disabled,
.disabled-link,
.button[aria-disabled="true"]{
  background:var(--hs-action-disabled)!important;
  border-color:var(--hs-action-disabled)!important;
  color:var(--hs-action-disabled-text)!important;
  opacity:1!important;
  cursor:not-allowed!important;
  pointer-events:none!important;
  transform:none!important;
  filter:none!important;
}

/* Semantic actions keep meaning through colour rather than becoming pink. */
.keepbtn,
.mini.keep.selected{
  background:#11734C!important;
  border-color:#11734C!important;
  color:#fff!important;
}
.keepbtn:hover,
.mini.keep.selected:hover{
  background:#0D613F!important;
  border-color:#0D613F!important;
}
.removebtn,
.button.danger,
.danger-button,
.danger-action,
.mini.remove.selected{
  background:#A82E4C!important;
  border-color:#A82E4C!important;
  color:#fff!important;
}
.removebtn:hover,
.button.danger:hover,
.danger-button:hover,
.danger-action:hover,
.mini.remove.selected:hover{
  background:#8E263F!important;
  border-color:#8E263F!important;
  color:#fff!important;
}
.fpbtn{
  background:#8A6415!important;
  border-color:#8A6415!important;
  color:#fff!important;
}
.fpbtn:hover{
  background:#72510F!important;
  border-color:#72510F!important;
  color:#fff!important;
}

/* Keep the actual external Spotify launch control recognisably Spotify. */
.spotify-button{
  background:#1DB954!important;
  border-color:#1DB954!important;
  color:var(--hs-ink)!important;
}
.spotify-button:hover{
  background:#169C46!important;
  border-color:#169C46!important;
  color:var(--hs-ink)!important;
}

/* Text-only controls are intentionally not converted into filled buttons. */
.linkbtn,
.nav-logout button,
.review-overlay-close{
  box-shadow:none!important;
}

/* =========================================================
   BUILD 2.5.6 — CSS AUDIT / CANONICAL LIGHT-SURFACE CONTRACT

   Audit policy:
   - Dark surfaces are reserved for the two branded hero areas, evidence/code
     panels and modal backdrops.
   - Operational cards, metrics, pickers and workflow controls use the light
     dashboard surface system.
   - Every light surface sets its own foreground colours rather than relying
     on inherited legacy colours from styles.css.
   ========================================================= */

/* Base contrast contract for light application surfaces. */
.card,.panel-card,.auth-card,.coming-card,.settings-card,
.user-row,.upload-history-row,.show-upload-row,
.library-track-row,.library-stats>div,.library-safety-summary>div,
.library-import-metrics>div,.stats>div,.summary-grid>div,.review-grid>div,
.dashboard-status-strip>div,.current-check,.live-stats>div,
.source-item,.source-choice,.run-source-mini label,.delivery-steps>div,
.action-card{
  background:var(--hs-card)!important;
  border-color:var(--hs-line)!important;
  color:var(--hs-text)!important;
}

.card strong,.panel-card strong,.auth-card strong,.coming-card strong,
.settings-card strong,.user-row strong,.upload-history-row strong,
.show-upload-row strong,.stats strong,.summary-grid strong,.review-grid strong,
.dashboard-status-strip strong,.current-check strong,.live-stats strong,
.source-item strong,.source-choice strong,.run-source-mini label,
.delivery-steps strong,.action-card strong{
  color:var(--hs-ink)!important;
}

/* Status colours must remain semantic after the general foreground reset. */
strong.status-good,.status-good,.library-stats strong.status-good{color:var(--hs-success)!important}
strong.status-warn,.status-warn,.library-stats strong.status-warn{color:var(--hs-warning)!important}
strong.status-bad,.status-bad,.library-stats strong.status-bad{color:var(--hs-danger)!important}

/* Dashboard / management metric strip. */
.dashboard-status-strip>div{padding:12px 14px!important;border-radius:10px!important}
.dashboard-status-strip span{color:var(--hs-muted)!important}
.dashboard-status-strip strong{font-weight:800!important}

/* Music Checker processing surfaces. */
.progress-numbers{color:var(--hs-muted)!important}
.progress-numbers strong{color:var(--hs-ink)!important}
.current-check{border-radius:10px!important}
.current-check span,.live-stats span,.timing-row span{color:var(--hs-muted)!important}
.live-stats>div{border-radius:10px!important}
.stage-list span{
  background:#faf9fb!important;
  border:1px solid var(--hs-line)!important;
  color:#625a67!important;
}

/* Results/evidence text rendered inside white tables. */
.reason-detail strong{color:var(--hs-ink)!important}
.reason-detail p{color:var(--hs-text)!important}
.reason-detail small{color:var(--hs-muted)!important}
.diag-row{border-bottom-color:var(--hs-line)!important}

/* Source Manager — remove legacy dark cards/gradient footer. */
.source-item,.source-choice,.run-source-mini label{border-radius:9px!important}
.source-item:hover,.source-choice:hover{background:#fff8fb!important;border-color:#d8b6cb!important}
.source-item>div span,.source-choice small{color:var(--hs-muted)!important}
.source-footer{background:linear-gradient(transparent,var(--hs-bg) 35%)!important}
.source-connection.connected{
  background:#eff9f5!important;border-color:#c9e8dc!important;color:#17684e!important;
}
.source-connection.connected strong{color:#17684e!important}
.source-connection.disconnected{
  background:#fff2f4!important;border-color:#efcbd4!important;color:#9e2942!important;
}
.source-connection.disconnected strong{color:#9e2942!important}

/* Show Uploader — progress text lives on a light workflow card. */
.upload-working{
  background:#fff8fb!important;
  border-color:#ead2df!important;
  color:var(--hs-text)!important;
}
.upload-progress-head strong{color:var(--hs-ink)!important}
.upload-progress-head span,.upload-progress-meta{color:var(--hs-muted)!important}
.delivery-steps small{color:var(--hs-muted)!important}
.delivery-steps b{background:var(--hs-purple)!important;color:#fff!important}

/* Final summary / workflow cards. */
.action-card{text-decoration:none!important;border-radius:10px!important}
.action-card:hover{background:#fff8fb!important;border-color:#d8b6cb!important;transform:translateY(-1px)!important}
.action-card span{color:var(--hs-pink)!important}
.attention-banner{
  background:#fff8e8!important;border-color:#f0dfb6!important;color:#79520f!important;
}
.attention-banner strong{color:#79520f!important}
.attention-banner span{color:#8a6b34!important}
.duplicate-note{
  background:#eff9f5!important;border-color:#c9e8dc!important;color:#17684e!important;
}
.live-review-note{
  background:#eff9f5!important;border-color:#c9e8dc!important;color:#17684e!important;
}
.live-review-note strong,.live-review-note a{color:#17684e!important}

/* Music Library — explicit contrast for every light surface. */
.library-stats strong{color:var(--hs-ink)!important}
.library-stats span{color:var(--hs-muted)!important}
.library-safety-summary strong{color:var(--hs-ink)!important}
.library-safety-summary span{color:var(--hs-muted)!important}
.library-track-main>a{color:var(--hs-ink)!important;text-decoration:none!important}
.library-track-main>a:hover,.library-track-main>a:hover strong{color:var(--hs-pink)!important}
.library-track-main>a strong{color:var(--hs-ink)!important;font-weight:800!important}
.library-track-main>span{color:#5f5863!important}
.library-track-main>small{color:var(--hs-muted)!important}
.library-tag{
  background:#f1edf4!important;
  border:1px solid #e1d8e7!important;
  color:#5f5365!important;
}
.library-safety-pill.safety-clean,.safety-clean.library-checker-state{
  background:#e8f6f0!important;color:#176b50!important;border:1px solid #cee9dd!important;
}
.library-safety-pill.safety-review,.safety-review.library-checker-state{
  background:#fff4dc!important;color:#8a5b09!important;border:1px solid #f0dfb6!important;
}
.library-safety-pill.safety-explicit,.safety-explicit.library-checker-state{
  background:#fce8ec!important;color:#a62a45!important;border:1px solid #efcbd4!important;
}
.library-safety-pill.safety-unknown,.safety-unknown.library-checker-state{
  background:#efedf0!important;color:#625a67!important;border:1px solid #dfdae2!important;
}
.library-empty{color:var(--hs-muted)!important}
.library-empty h3{color:var(--hs-ink)!important}
.library-pagination{border-top-color:var(--hs-line)!important}
.library-pagination strong{color:var(--hs-muted)!important}
.library-import-metrics span{color:var(--hs-muted)!important}
.library-import-metrics strong{color:var(--hs-ink)!important}
.library-current-file{color:var(--hs-muted)!important}
.library-file-facts>div{border-bottom-color:var(--hs-line)!important}
.library-file-facts span{color:var(--hs-muted)!important}
.library-file-facts strong{color:var(--hs-ink)!important}

/* Forms: explicit readable foreground/background and predictable placeholders. */
input,select,textarea,
.auth-form input,.auth-form select,.auth-form textarea,
.form input,.form select,.form textarea,
.mini-form input,.mini-form select,.mini-form textarea,
.library-search-form input,.library-search-form select,.profile-form textarea,
.source-controls input,.source-controls select{
  background:#fff!important;
  color:var(--hs-ink)!important;
  border-color:var(--hs-line-strong)!important;
}
input::placeholder,textarea::placeholder{color:#9b949f!important;opacity:1!important}

/* Sticky actions belong to the light application canvas, not the old dark UI. */
.sticky-review-actions{
  background:rgba(255,255,255,.96)!important;
  border-top:1px solid var(--hs-line)!important;
  backdrop-filter:blur(10px)!important;
}

/* Keyboard focus consistency across actionable controls. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,
summary:focus-visible{
  outline:3px solid rgba(195,19,112,.22)!important;
  outline-offset:2px!important;
}

/* Dark-surface allow-list: these are intentionally dark for branded/evidence use. */
.dashboard-hero,.hero-copy,.review-overlay-shell,.evidence-box,.evidence-item,
.lyric-context,.diagnostic-log,.delete-user-dialog{
  --text: #f4f7fb;
}
.dashboard-hero strong,.hero-copy strong,.review-overlay-shell strong,
.evidence-box strong,.evidence-item strong,.lyric-context strong,.delete-user-dialog strong{
  color:#fff!important;
}

