/* NorthBanked Matchday Platform v4 — shared tokens and component contract. */
:root{
  --nbm-red:#e30613;
  --nbm-red-dark:#b80510;
  --nbm-navy:#081727;
  --nbm-panel:#102945;
  --nbm-panel-soft:#173757;
  --nbm-gold:#d6a827;
  --nbm-green:#168a50;
  --nbm-white:#f8fafc;
  --nbm-muted:#aebdd0;
  --nbm-line:#35506e;
  --nbm-radius:12px;
  --nbm-shadow:0 16px 42px rgba(8,23,39,.16);
}
/* One theme, everywhere. The platform shell previously used a cream
   background while the squad picker, prediction cards and every share
   image were built dark navy — dark components on a light page is what
   produced the white boxes and mismatched panels reported throughout.
   The page now matches the rest of the product. */
body.nb-matchday-platform{overflow-x:hidden;background:var(--nb-bg,#0A1729);color:var(--nb-text,#E8ECF3)}
body.nb-matchday-platform :is(button,a,input,select,textarea){box-sizing:border-box}
body.nb-matchday-platform :is(.nb-centre-page-shell,.nb-match-centre-shell,.nb-public-profile-shell,.nbpl-plugin-page-shell,.nbpl-builder-experience){width:min(90vw,1800px)!important;max-width:none!important;margin-inline:auto!important}
body.nb-matchday-platform :is(.nb-centre-hero,.nbpl-player-directory-hero){border-top:4px solid var(--nbm-red)!important;background:linear-gradient(112deg,var(--nbm-panel),var(--nbm-navy) 68%,#351522)!important;box-shadow:var(--nbm-shadow)}
body.nb-matchday-platform :is(.nb-centre-hero,.nbpl-player-directory-hero) :is(h1,h2){color:var(--nbm-white)!important}
body.nb-matchday-platform :is(.nb-btn-primary,.nbpl-btn-primary,[data-submit-prediction]){background:var(--nbm-red)!important;border-color:var(--nbm-red)!important;color:#fff!important}
body.nb-matchday-platform :is(.nb-btn-primary,.nbpl-btn-primary,[data-submit-prediction]):hover{background:var(--nbm-red-dark)!important}
body.nb-matchday-platform :is(button,a,input,select,textarea):focus-visible{outline:3px solid rgba(214,168,39,.72)!important;outline-offset:2px}
body.nb-matchday-platform .nb-unified-sidebar-block{border-top-color:var(--nbm-red)!important;background:linear-gradient(145deg,var(--nbm-panel),#1d1830)!important}
body.nb-matchday-platform .nb-section-kicker{color:var(--nbm-gold)!important}
body.nb-matchday-platform .nb-shared-menu2-portal #nb-shared-menu2{width:min(90vw,1800px)!important}
body.nb-matchday-platform .nb-mobile-dock{display:none}
body.nb-matchday-platform.nb-matchday-reduce-motion *,html.nb-matchday-reduce-motion body.nb-matchday-platform *{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
.nb-pwa-actions{position:fixed;right:18px;bottom:18px;z-index:99980;display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.nb-pwa-actions button,.nb-mobile-site-actions button{min-height:40px;padding:0 12px;border:1px solid #d5aa32;border-radius:8px;background:#07192b;color:#fff;font:800 11px/1 Inter,sans-serif;cursor:pointer}
.nb-pwa-actions button[data-nb-install]{background:#e30613;border-color:#e30613}
.nb-credit-dashboard{display:grid;gap:20px;padding:clamp(18px,3vw,32px);border-radius:14px;background:#07192b;color:#fff}
.nb-credit-dashboard h2,.nb-credit-dashboard h3{margin:0;color:#fff}
.nb-credit-dashboard__balance{display:block;margin:8px 0;color:#d5aa32;font:800 clamp(42px,8vw,72px)/1 Oswald,sans-serif}
.nb-credit-dashboard__rules{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.nb-credit-dashboard__rules>div{display:grid;gap:4px;padding:16px;border:1px solid #29435f;border-radius:10px;background:#102b46;text-align:center}
.nb-credit-dashboard__rules strong{color:#d5aa32;font-size:24px}.nb-credit-dashboard__rules span{font-size:12px}
.nb-credit-ledger{display:grid;border:1px solid #29435f;border-radius:10px;overflow:hidden}
.nb-credit-ledger>div{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px;border-bottom:1px solid #29435f}.nb-credit-ledger>div:last-child{border:0}
.nb-credit-ledger span{display:grid}.nb-credit-ledger small,.nb-credit-ledger time{color:#9bb0c6}.nb-credit-ledger .is-positive{color:#4fd89a}.nb-credit-ledger .is-negative{color:#ff7380}
@media(max-width:640px){.nb-pwa-actions{right:8px;bottom:calc(76px + env(safe-area-inset-bottom))}.nb-credit-dashboard__rules{grid-template-columns:1fr}.nb-credit-ledger>div{grid-template-columns:minmax(0,1fr) auto}.nb-credit-ledger time{grid-column:1/-1}}
.nb-player-data{display:grid;gap:14px;margin:18px 0;padding:clamp(16px,3vw,26px);border:1px solid #29435f;border-radius:12px;background:#07192b;color:#fff}.nb-player-data h2{margin:0;color:#fff}.nb-player-career{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.nb-player-career>div{display:grid;gap:3px;padding:14px;border-radius:9px;background:#102b46;text-align:center}.nb-player-career strong{color:#d5aa32;font-size:25px}.nb-player-career span{font-size:11px;text-transform:uppercase}.nb-player-season-table{overflow-x:auto}.nb-player-season-table table{width:100%;min-width:580px;border-collapse:collapse}.nb-player-season-table :is(th,td){padding:10px;border-bottom:1px solid #29435f;text-align:left}.nb-player-season-table th{color:#d5aa32;font-size:11px;text-transform:uppercase}@media(max-width:640px){.nb-player-career{grid-template-columns:repeat(2,minmax(0,1fr))}}
