/* Approved Game Day identity only. Content and data colors remain unchanged. */
.brand-mark { display:block; flex:none; object-fit:contain; }
.brand-wordmark { display:block; width:220px; height:36px; object-fit:contain; }
.brand-on-dark { display:none; }
html .site-header .site-brand { align-items:center; gap:0; }
html:root .VPNavBarTitle .title { align-items:center; justify-content:center; }
html:root .VPNavBarTitle .title > span { display:none; }
html:root .VPNavBarTitle .logo { width:196px; height:32px; max-height:none; margin:0; object-fit:contain; }
html:root .VPNavBarTitle .VPImage.dark { display:none; }
html:root .VPNavBarTitle .VPImage.light { display:block; }
:root[data-site-theme="dark"] .brand-on-light, html:root[data-site-theme="dark"] .VPNavBarTitle .VPImage.light { display:none; }
:root[data-site-theme="dark"] .brand-on-dark, html:root[data-site-theme="dark"] .VPNavBarTitle .VPImage.dark { display:block; }
@media (prefers-color-scheme:dark) {
  :root:not([data-site-theme="light"]) .brand-on-light, html:root:not([data-site-theme="light"]) .VPNavBarTitle .VPImage.light { display:none; }
  :root:not([data-site-theme="light"]) .brand-on-dark, html:root:not([data-site-theme="light"]) .VPNavBarTitle .VPImage.dark { display:block; }
}

/* Shared visual language. Deliberately no body, app, toolbar or grid resets. */
:root {
  color-scheme: light;
  scrollbar-color: var(--site-muted) var(--site-canvas);
  --site-canvas: #f6f8fb;
  --site-surface: #fff;
  --site-text: #11365b;
  --site-muted: #53677d;
  --site-accent: #0069bd;
  --site-link: #0069bd;
  --site-tint: #eaf3fc;
  --site-border: #dce4ed;
  --site-grid-line: #edf1f5;
  --site-event-bg: #eaf4ff;
  --site-event-border: #d5e8fb;
  --site-positive: #197344;
  --site-danger: #b32a35;
  --site-highlight: #ab1f26;
  --site-action-bg: #126ea9;
  --site-action-text: #ffffff;
  --site-backdrop: #10294070;
  --site-shadow: #142d4a38;
  --site-radius: 10px;
  --site-width: 1280px;
  --site-font: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* Native media queries also follow preference changes while the page is open. */
@media (prefers-color-scheme: dark) {
  :root:not([data-site-theme="light"]) {
    color-scheme: dark;
    --site-canvas: #0f1722;
    --site-surface: #172230;
    --site-text: #e3ecf7;
    --site-muted: #afbed0;
    --site-accent: #79bdff;
    --site-link: #8bc5ff;
    --site-tint: #22374d;
    --site-border: #34485d;
    --site-grid-line: #28394c;
    --site-event-bg: #1c334b;
    --site-event-border: #3d6285;
    --site-positive: #81d9a1;
    --site-danger: #ffa3ad;
    --site-highlight: #ffa3ad;
    --site-action-bg: #95c9ff;
    --site-action-text: #102338;
    --site-backdrop: #030811b3;
    --site-shadow: #00000066;
  }
}

:root[data-site-theme="dark"] {
  color-scheme: dark;
  --site-canvas: #0f1722;
  --site-surface: #172230;
  --site-text: #e3ecf7;
  --site-muted: #afbed0;
  --site-accent: #79bdff;
  --site-link: #8bc5ff;
  --site-tint: #22374d;
  --site-border: #34485d;
  --site-grid-line: #28394c;
  --site-event-bg: #1c334b;
  --site-event-border: #3d6285;
  --site-positive: #81d9a1;
  --site-danger: #ffa3ad;
  --site-highlight: #ffa3ad;
  --site-action-bg: #95c9ff;
  --site-action-text: #102338;
  --site-backdrop: #030811b3;
  --site-shadow: #00000066;
}

.analytics-preference-button { background:transparent; color:var(--site-muted); border:0; font:inherit; font-size:12px; cursor:pointer; min-height:44px; padding:4px 8px; text-decoration:underline; }
.analytics-preference-button:focus-visible { outline:3px solid var(--site-accent); outline-offset:2px; }
.analytics-preferences { box-sizing:border-box; max-width:min(540px, calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow:auto; color:var(--site-text); background:var(--site-surface); border:1px solid var(--site-border); border-radius:12px; padding:20px; font:16px/1.5 system-ui,sans-serif; }
.analytics-preferences::backdrop { background:rgba(0,0,0,.55); }
.analytics-preferences button { min-height:44px; min-width:44px; margin:4px; padding:8px 12px; border:1px solid var(--site-border); color:var(--site-text); background:var(--site-surface); border-radius:6px; font:inherit; cursor:pointer; }
.analytics-preferences button:focus-visible { outline:3px solid var(--site-accent); }
.analytics-preferences a { color:var(--site-link); }
.analytics-preferences h2 { font-size:20px; margin-top:0; }
.analytics-notice { box-sizing:border-box; position:fixed; z-index:1000; inset:auto 12px max(12px, env(safe-area-inset-bottom)); max-width:620px; margin-inline:auto; padding:12px 16px; color:var(--site-text); background:var(--site-surface); border:1px solid var(--site-border); border-radius:12px; box-shadow:0 4px 24px var(--site-shadow); font:14px/1.45 system-ui,sans-serif; }
.analytics-notice[hidden] { display:none; }
.analytics-notice p { margin:0 0 8px; }
.analytics-notice a { color:var(--site-link); }
.analytics-notice div { display:flex; flex-wrap:wrap; gap:8px; }
.analytics-notice button { box-sizing:border-box; min-width:44px; min-height:44px; padding:8px 12px; color:var(--site-text); background:var(--site-surface); border:1px solid var(--site-border); border-radius:6px; cursor:pointer; font:inherit; }
.analytics-notice button:focus-visible { outline:3px solid var(--site-accent); outline-offset:2px; }

.site-theme-toggle {
  position:static; flex:none; order:2; margin:0;
  display:flex; align-items:center; justify-content:center; box-sizing:border-box;
  width:44px; height:44px; padding:0; border:0; border-radius:12px;
  color:var(--site-muted); background:transparent; cursor:pointer; -webkit-tap-highlight-color:transparent;
}
.site-theme-toggle:focus-visible { outline:3px solid var(--site-accent); outline-offset:2px; }
.site-theme-track { position:relative; display:flex; align-items:center; justify-content:space-around; box-sizing:border-box; width:36px; height:22px; border:1px solid var(--site-border); border-radius:12px; background:var(--site-tint); }
.site-theme-track svg { z-index:1; width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.site-theme-thumb { position:absolute; left:2px; top:2px; width:16px; height:16px; border-radius:50%; background:var(--site-surface); box-shadow:0 1px 3px var(--site-shadow); }
.site-theme-toggle[aria-checked="true"] .site-theme-thumb { transform:translateX(14px); }
.site-theme-toggle:hover .site-theme-track { border-color:var(--site-muted); }
/* One shared flow: links, privacy and the small switch share the desktop row.
   At phone widths the same 44px targets wrap into two deliberate compact rows. */
:root :is(footer.calendar-footer, footer.site-footer, footer.VPFooter) {
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  column-gap:8px; row-gap:0; box-sizing:border-box;
  padding:8px max(0px, env(safe-area-inset-right, 0px)) 8px max(0px, env(safe-area-inset-left, 0px));
  font:12px/1.5 var(--site-font); color:var(--site-muted);
}
:root :is(footer.calendar-footer, footer.site-footer, footer.VPFooter) :is(nav, .container, .message, .site-footer-links) { display:contents; }
:root :is(footer.calendar-footer, footer.site-footer, footer.VPFooter) a {
  display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
  min-width:44px; min-height:44px; white-space:nowrap; color:var(--site-muted); text-decoration:none;
}
:root :is(footer.calendar-footer, footer.site-footer, footer.VPFooter) a:hover { color:var(--site-link); text-decoration:underline; }
:root :is(footer.calendar-footer, footer.site-footer, footer.VPFooter) .analytics-preference-button { order:1; margin:0; padding:0 4px; white-space:nowrap; }
:root footer.VPFooter .copyright:empty { display:none; }
@media (max-width:640px) {
  :root :is(footer.calendar-footer, footer.site-footer, footer.VPFooter) { column-gap:4px; }
}


@media (max-width:360px) {
  :root :is(footer.calendar-footer, footer.site-footer, footer.VPFooter) { column-gap:4px; }
  :root :is(footer.calendar-footer, footer.site-footer, footer.VPFooter) a:is([href="/tv/"], [href="https://nbacalendar.com/tv/"]) { width:52px; white-space:normal; text-align:center; }
  footer a[aria-label="Home"] { flex-direction:column; }
  footer .brand-mark { width:16px; height:16px; }
}

.site-header {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 24px;
  width: 100%;
  max-width: var(--site-width);
  margin: 0 auto;
  padding: 16px 24px;
  border-bottom: 1px solid var(--site-border);
  background: var(--site-surface);
  color: var(--site-text);
  font: 14px/1.5 var(--site-font);
}

.site-header .site-brand {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--site-text);
  font-size: 20px;
  font-weight: 750;
  letter-spacing: -.5px;
  text-decoration: none;
  white-space: nowrap;
}

.site-nav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
}

.site-nav a {
  box-sizing: border-box;
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 12px;
  border-radius: var(--site-radius);
  color: var(--site-text);
  font-weight: 600;
  text-decoration: none;
}

.site-nav a:hover,
.site-nav a[aria-current="page"] {
  color: var(--site-link);
  background: var(--site-tint);
}

.site-nav a[aria-current="page"] {
  box-shadow: inset 0 -2px var(--site-accent);
}

.site-footer {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--site-width);
  margin: 24px auto 0;
  padding: 20px 24px 28px;
  border-top: 1px solid var(--site-border);
  color: var(--site-muted);
  font: 13px/1.65 var(--site-font);
}

footer .footer-credits { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; vertical-align: middle; }
.site-footer p { margin: 0 0 8px; }
.site-footer a { color: var(--site-link); text-underline-offset: 3px; }
.site-footer p:first-child a { display: inline-flex; align-items: center; min-height: 44px; }
:is(.site-header, .site-footer) a:focus-visible {
  outline: 3px solid var(--site-accent);
  outline-offset: 3px;
}

@media (max-width: 640px) {
  .site-header { padding: 12px; gap: 4px; }
  .site-nav { width: 100%; gap: 2px; }
  .site-nav a { padding: 8px 6px; min-width: 44px; justify-content: center; }
  .site-footer { padding: 16px 12px 24px; }
}

@media (max-width: 379px) {
  .site-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .site-nav a { justify-content: center; min-width: 44px; }
}
