*, ::before, ::after {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}/*
! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com
*//*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: -apple-system, BlinkMacSystemFont, SF Pro Text, Inter, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji, sans-serif; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}
  html {
  font-family: -apple-system, BlinkMacSystemFont, SF Pro Text, Inter, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji, sans-serif;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    color-scheme: light dark;
    min-height: 100%;
}
  body {
  --tw-bg-opacity: 1;
  background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(30 41 59 / var(--tw-text-opacity, 1));
    min-height: 100vh;
    min-height: 100dvh;
    padding-bottom: env(safe-area-inset-bottom);
}
  @media (prefers-color-scheme: dark) {
    body {
    --tw-bg-opacity: 1;
    background-color: rgb(15 23 42 / var(--tw-bg-opacity, 1));
    --tw-text-opacity: 1;
    color: rgb(226 232 240 / var(--tw-text-opacity, 1));
  }
  }
  /* Optional: slightly tighter headings; components already set sizes */
  h1, h2, h3 {
    letter-spacing: -0.01em;
  }

/* Leaderboard animations */
@keyframes fade-in-up {
  from {
    opacity: 0;
    transform: translateX(-50%) translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
  }
}

.animate-fade-in-up {
  animation: fade-in-up 300ms ease-out both;
}

/* Base typography tweaks for modern, Apple-like rendering */

/* Utility classes for accessibility */

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

/* Hide scrollbars utility */
.no-scrollbar {
  -ms-overflow-style: none; /* IE and Edge */
  scrollbar-width: none; /* Firefox */
}
.no-scrollbar::-webkit-scrollbar {
  display: none; /* Chrome, Safari */
  width: 0;
  height: 0;
}

/* Pin pulse animation */
@keyframes pinPulse {
  0% { transform: scale(1); }
  40% { transform: scale(1.08); }
  100% { transform: scale(1); }
}
.pin-pulse {
  animation: pinPulse 0.35s ease-out;
}

/* barlow-condensed-latin-600-normal */
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("/static/fonts/barlow-condensed-latin-600-normal.ba4513495282.woff2") format('woff2'), url("/static/fonts/barlow-condensed-latin-600-normal.25b77ba2cbe8.woff") format('woff');
}
/* barlow-condensed-latin-700-normal */
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("/static/fonts/barlow-condensed-latin-700-normal.e1180918b873.woff2") format('woff2'), url("/static/fonts/barlow-condensed-latin-700-normal.eeab71485421.woff") format('woff');
}
/* barlow-condensed-latin-800-normal */
@font-face {
  font-family: 'Barlow Condensed';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url("/static/fonts/barlow-condensed-latin-800-normal.b1b7dd5dbcea.woff2") format('woff2'), url("/static/fonts/barlow-condensed-latin-800-normal.ef4988db7246.woff") format('woff');
}
/* source-sans-3-latin-400-normal */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url("/static/fonts/source-sans-3-latin-400-normal.27ab01c4cb50.woff2") format('woff2'), url("/static/fonts/source-sans-3-latin-400-normal.053dded0e7b3.woff") format('woff');
}
/* source-sans-3-latin-600-normal */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url("/static/fonts/source-sans-3-latin-600-normal.9a35cba76eda.woff2") format('woff2'), url("/static/fonts/source-sans-3-latin-600-normal.bb81d4704ca0.woff") format('woff');
}
/* source-sans-3-latin-700-normal */
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url("/static/fonts/source-sans-3-latin-700-normal.9b13bd3653e3.woff2") format('woff2'), url("/static/fonts/source-sans-3-latin-700-normal.3b786d8524b9.woff") format('woff');
}
/* Legacy NBA color ramp.
 *
 * These predate the Courtside Album system in courtside.css and survive only
 * because the submission surfaces still consume them: SubmissionsPage.css and
 * the inline styles in features/submissions/istSubmissionUtils.js. Courtside
 * tokens (--court-*) are the system of record for anything new.
 *
 * Imported from index.jsx so the ramp is defined before any consumer, rather
 * than riding along with a page component's import. */

:root {
  --nba-blue-50: #e8f1ff;
  --nba-blue-400: #3d7eff;
  --nba-blue-500: #1f6bff;
  --nba-blue-600: #1553cc;
  --nba-blue-700: #0e3b99;

  --nba-red-50: #ffecec;
  --nba-red-400: #ff4747;
  --nba-red-500: #ff2d2d;
  --nba-red-600: #d42020;
  --nba-red-700: #a31818;

  --nba-slate-100: #f1f5f9;
  --nba-slate-200: #e2e8f0;
  --nba-slate-300: #cbd5f5;
  --nba-slate-400: #94a3b8;
  --nba-slate-500: #64748b;
  --nba-slate-600: #475569;
  --nba-slate-700: #334155;
  --nba-slate-900: #0f172a;
}

@media (prefers-color-scheme: dark) {
  :root {
    --nba-slate-100: #1e293b;
    --nba-slate-200: #334155;
    --nba-slate-300: #475569;
    --nba-slate-400: #94a3b8;
    --nba-slate-500: #cbd5e1;
    --nba-slate-600: #e2e8f0;
    --nba-slate-700: #cbd5e1;
    --nba-slate-900: #f8fafc;
  }
}

:root {
  --court-paper: #ffffff;
  --court-paper-cool: #f7fbfe;
  --court-ink: #101214;
  --court-blue: #07549a;
  --court-blue-dark: #063d70;
  --court-blue-soft: #e8f2fb;
  --court-red: #d52b1e;
  --court-red-dark: #9f2018;
  --court-red-soft: #fcecea;
  --court-gold: #e7b92f;
  --court-gold-soft: #fff4c7;
  --court-wood: #c9985b;
  --court-medal-silver: #aeb8c1;
  --court-leader-badge-bg: var(--court-gold-soft);
  --court-leader-badge-ink: var(--court-ink);
  --court-sheet-wash: #f5f8fa;
  --court-steel: #53606d;
  --court-muted: #5d6368;
  --court-rule: #15181a;
  --court-rule-soft: #cfd4d8;
  --court-success: #15703b;
  --court-warning: #9a5a00;
  --court-danger: #b42318;
  --court-nav-height: 74px;
  --court-topbar-height: 56px;
  --court-desktop-rail: 220px;
  /* One album canvas. Every participant page caps its content at the same width
     and uses the same gutter so the sheets line up edge-to-edge across pages. */
  --court-canvas: 1380px;
  --court-gutter: 16px;
  /* Page-identity type. Display carries the page name (leaderboard, picks);
     title carries ruled section heads on every page. */
  --court-display-identity: 800 clamp(44px, 5vw, 68px)/.88 var(--court-display);
  --court-title-section: 800 28px/1 var(--court-display);
  --court-display: "Barlow Condensed", "Arial Narrow", sans-serif;
  --court-text: "Source Sans 3", system-ui, sans-serif;
  --court-body: var(--court-text);
  --court-radius-ticket: 1px;
  --court-paper-translucent: rgba(255, 255, 255, 0.98);
  --court-ring-faint: rgb(16 18 20 / 12%);
  /* Stamped carbon chrome (mastheads, column heads, score-band status) reads as
     a fixed black bar with white text in both themes — it is chrome, not page
     ink, so it must not invert when --court-ink flips for dark mode. */
  --court-carbon: #0a0c0e;
  color-scheme: light;
}

/* Night Stock — the same ruled scorebook lit for evening reading: carbon stock
   deepens to near-black, ink lifts to off-white, and NBA blue/red/gold lift in
   value so they keep their identity at arena-at-night contrast. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --court-paper: #13161b;
    --court-paper-cool: #181c22;
    --court-ink: #f2f4f6;
    --court-blue: #1f6bff;
    --court-blue-dark: #1652b8;
    --court-blue-soft: #17293c;
    --court-red: #d13a2c;
    --court-red-dark: #a82e22;
    --court-red-soft: #3a1a17;
    --court-gold: #eec455;
    --court-gold-soft: #392c11;
    --court-wood: #d3aa72;
    --court-medal-silver: #93a0ac;
    --court-sheet-wash: #1a1e24;
    --court-steel: #a7b1bc;
    --court-muted: #8992a0;
    --court-rule: #dfe4e8;
    --court-rule-soft: #2b3037;
    --court-success: #45c37c;
    --court-success-soft: #12301f;
    --court-warning: #e2a53a;
    --court-warning-soft: #362a0e;
    --court-danger: #ef5b4d;
    --court-paper-translucent: rgba(19, 22, 27, 0.94);
    --court-ring-faint: rgb(255 255 255 / 14%);
    color-scheme: dark;
  }
}

:root[data-theme="dark"] {
  --court-paper: #13161b;
  --court-paper-cool: #181c22;
  --court-ink: #f2f4f6;
  --court-blue: #1f6bff;
  --court-blue-dark: #1652b8;
  --court-blue-soft: #17293c;
  --court-red: #d13a2c;
  --court-red-dark: #a82e22;
  --court-red-soft: #3a1a17;
  --court-gold: #eec455;
  --court-gold-soft: #392c11;
  --court-wood: #d3aa72;
  --court-medal-silver: #93a0ac;
  --court-sheet-wash: #1a1e24;
  --court-steel: #a7b1bc;
  --court-muted: #8992a0;
  --court-rule: #dfe4e8;
  --court-rule-soft: #2b3037;
  --court-success: #45c37c;
  --court-success-soft: #12301f;
  --court-warning: #e2a53a;
  --court-warning-soft: #362a0e;
  --court-danger: #ef5b4d;
  --court-paper-translucent: rgba(19, 22, 27, 0.94);
  --court-ring-faint: rgb(255 255 255 / 14%);
  color-scheme: dark;
}

* {
  box-sizing: border-box;
}

html {
  background: var(--court-paper);
  color-scheme: light;
  font-family: var(--court-text);
  scroll-padding-top: calc(var(--court-topbar-height) + 12px);
  transition: background-color 200ms ease;
}

@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) {
    color-scheme: dark;
  }
}

html[data-theme="dark"] {
  color-scheme: dark;
}

body.court-body {
  min-width: 320px;
  min-height: 100dvh;
  margin: 0;
  padding: 0 0 calc(var(--court-nav-height) + env(safe-area-inset-bottom));
  overflow-x: hidden;
  background-color: var(--court-paper) !important;
  color: var(--court-ink) !important;
  font-family: var(--court-text);
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::-moz-selection {
  color: #fff;
  background: var(--court-blue);
}

::selection {
  color: #fff;
  background: var(--court-blue);
}

:focus-visible {
  outline: 3px solid var(--court-gold) !important;
  outline-offset: 3px;
}

* {
  scrollbar-color: var(--court-blue) var(--court-rule-soft);
  scrollbar-width: thin;
}

*::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

*::-webkit-scrollbar-track {
  background: var(--court-blue-soft);
}

*::-webkit-scrollbar-thumb {
  border: 2px solid var(--court-rule-soft);
  border-radius: 0;
  background: var(--court-blue);
}

h1,
h2,
h3,
h4,
.court-display {
  color: var(--court-ink);
  font-family: var(--court-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 0.98;
  text-wrap: balance;
}

a {
  color: var(--court-blue);
  text-underline-offset: 0.2em;
  text-decoration-thickness: 2px;
}

button,
input,
select,
textarea {
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: rgba(7, 84, 154, 0.15);
}

@media (min-width: 768px) {
  :root {
    --court-gutter: 24px;
  }
}

.court-topbar {
  position: fixed;
  inset: 0 0 auto;
  z-index: 70;
  height: var(--court-topbar-height);
  border-bottom: 2px solid var(--court-rule);
  background: var(--court-paper-translucent);
  color: var(--court-ink);
}

.court-topbar > nav {
  height: 100%;
}

.court-topbar__inner {
  display: grid;
  grid-template-columns: minmax(44px, 1fr) auto minmax(44px, 1fr);
  align-items: center;
  width: 100%;
  height: 100%;
  padding: 0 12px;
}

.court-topbar__brand {
  display: flex;
  grid-column: 2;
  min-width: 0;
  gap: 8px;
  align-items: center;
  color: var(--court-ink);
  font-family: var(--court-display);
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.01em;
  text-decoration: none;
  text-transform: uppercase;
}

.court-topbar__brand img {
  width: 30px;
  height: 30px;
  -o-object-fit: contain;
     object-fit: contain;
}

.court-topbar__admin {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
}

.court-topbar__account {
  display: flex;
  grid-column: 3;
  grid-row: 1;
  gap: 10px;
  align-items: center;
  justify-self: end;
  white-space: nowrap;
}

.court-topbar__username,
.court-topbar__admin {
  display: none;
}

@media (max-width: 767px) {
  .court-topbar__account .court-button {
    display: none;
  }

  .court-topbar__account {
    font-size: 0.9rem;
  }

  /* The centre brand track is `auto`, so at phone widths the wordmark grew past
     its share and the account cluster overlapped it. Shrink the lockup enough to
     centre cleanly, and let the wordmark clip rather than collide. */
  .court-topbar__brand {
    font-size: 0.9375rem;
    letter-spacing: 0.02em;
  }

  .court-topbar__brand img {
    width: 26px;
    height: 26px;
  }

  .court-topbar__brand span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

@media (max-width: 359px) {
  .court-topbar__brand span {
    display: none;
  }
}

.court-text-link {
  min-height: 44px;
  padding: 11px 4px;
  color: var(--court-ink);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: var(--court-blue);
}

.court-button,
.btn-primary,
button[type="submit"] {
  display: inline-flex;
  min-height: 44px;
  gap: 8px;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--court-rule);
  border-radius: 4px;
  background: var(--court-blue);
  color: #fff;
  font-family: var(--court-display);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.035em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 160ms ease-out, color 160ms ease-out, transform 160ms ease-out;
}

.court-button:hover,
.btn-primary:hover,
button[type="submit"]:hover {
  background: var(--court-blue-dark);
  color: #fff;
}

.court-button:active,
button[type="submit"]:active {
  transform: translateY(1px);
}

.court-button--small {
  min-height: 38px;
  padding: 8px 12px;
  font-size: 0.9rem;
}

.court-theme-toggle {
  display: inline-flex;
  flex: 0 0 auto;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--court-rule);
  border-radius: 4px;
  background: var(--court-paper);
  color: var(--court-ink);
  cursor: pointer;
  transition: background-color 160ms ease-out, color 160ms ease-out, transform 160ms ease-out;
}

.court-theme-toggle svg {
  width: 18px;
  height: 18px;
  stroke-width: 2.25;
}

.court-theme-toggle:hover {
  background: var(--court-blue-soft);
  color: var(--court-blue);
}

.court-theme-toggle:active {
  transform: translateY(1px);
}

.court-theme-toggle[aria-pressed="true"] {
  background: var(--court-carbon);
  color: var(--court-gold);
  border-color: var(--court-carbon);
}

.court-theme-toggle[aria-pressed="true"]:hover {
  border-color: var(--court-gold);
}

.court-page-main {
  width: 100%;
  min-height: calc(100dvh - var(--court-topbar-height));
  margin: var(--court-topbar-height) 0 0;
  padding: 0;
  background: transparent;
}

.court-footer {
  display: none;
}

.court-desktop-nav {
  display: none;
}

.court-mobile-nav {
  position: fixed;
  inset: auto 0 0;
  z-index: 80;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  min-height: calc(var(--court-nav-height) + env(safe-area-inset-bottom));
  padding: 0 4px env(safe-area-inset-bottom);
  border-top: 2px solid var(--court-rule);
  background: var(--court-paper);
}

.court-nav-link {
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 52px;
  gap: 4px;
  align-items: center;
  justify-content: center;
  color: var(--court-ink);
  font-family: var(--court-display);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.035em;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
}

.court-mobile-nav .court-nav-link {
  flex-direction: column;
  border-right: 1px solid var(--court-rule-soft);
}

.court-mobile-nav .court-nav-link:last-child {
  border-right: 0;
}

.court-nav-link svg {
  width: 23px;
  height: 23px;
  stroke-width: 2;
}

.court-nav-link.is-active {
  background: var(--court-blue);
  color: #fff;
}

.court-panel {
  border: 2px solid var(--court-rule);
  border-radius: 5px;
  background: var(--court-paper);
}

.court-data-number,
[class*="points"],
[class*="score"],
[class*="rank"] {
  font-variant-numeric: tabular-nums;
}

.court-page-main input:not([type="checkbox"]):not([type="radio"]),
.court-page-main select,
.court-page-main textarea {
  min-height: 48px;
  border: 2px solid var(--court-rule) !important;
  border-radius: 4px !important;
  background: var(--court-paper) !important;
  color: var(--court-ink) !important;
}

.court-page-main input::-moz-placeholder, .court-page-main textarea::-moz-placeholder {
  color: var(--court-muted);
  opacity: 1;
}

.court-page-main input::placeholder,
.court-page-main textarea::placeholder {
  color: var(--court-muted);
  opacity: 1;
}

/* Compact listboxes and searchable roster pickers share one scorebook face. */
.court-select {
  position: relative;
  min-width: 0;
  color: var(--court-ink);
}

.court-select__trigger {
  display: grid;
  width: 100%;
  min-height: 48px;
  grid-template-columns: minmax(0, 1fr) 18px;
  grid-template-rows: auto auto;
  align-content: center;
  -moz-column-gap: 10px;
       column-gap: 10px;
  padding: 6px 10px 6px 12px;
  color: var(--court-ink);
  text-align: left;
  background: var(--court-paper);
  border: 2px solid var(--court-rule);
  border-radius: 4px;
  cursor: pointer;
}

.court-select__label {
  grid-column: 1;
  color: var(--court-steel);
  font: 800 9px/1 var(--court-display);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.court-select__value {
  grid-column: 1;
  overflow: hidden;
  font: 800 16px/1.1 var(--court-display);
  letter-spacing: .02em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.court-select__icon {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  width: 17px;
  height: 17px;
  color: var(--court-blue);
  pointer-events: none;
  stroke-width: 2.5;
  transition: transform 160ms ease-out;
}

.court-select.is-open .court-select__icon {
  transform: rotate(180deg);
}

.court-select.is-disabled {
  cursor: not-allowed;
  opacity: .58;
}

.court-select.is-disabled .court-select__trigger {
  cursor: not-allowed;
}

.court-select--compact .court-select__trigger {
  min-height: 44px;
  grid-template-columns: auto minmax(0, 1fr) 17px;
  grid-template-rows: 1fr;
  align-items: center;
  gap: 9px;
  padding: 0 9px 0 10px;
  border-radius: 3px;
}

.court-select--compact .court-select__label,
.court-select--compact .court-select__value,
.court-select--compact .court-select__icon {
  grid-row: 1;
}

.court-select--compact .court-select__label { grid-column: 1; }
.court-select--compact .court-select__value {
  grid-column: 2;
  font-size: 14px;
}
.court-select--compact .court-select__icon { grid-column: 3; }

.court-select__menu {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 140;
  width: 100%;
  min-width: 0;
  max-width: calc(100vw - 24px);
  max-height: 264px;
  overflow-y: auto;
  background: var(--court-paper);
  border: 2px solid var(--court-rule);
  border-radius: 3px;
  box-shadow: 4px 4px 0 var(--court-rule);
}

.court-select__option {
  display: grid;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  grid-template-columns: minmax(0, 1fr) 18px;
  align-items: center;
  gap: 12px;
  padding: 8px 11px;
  color: var(--court-ink);
  font: 800 16px/1 var(--court-display);
  letter-spacing: .02em;
  text-align: left;
  text-transform: uppercase;
  background: var(--court-paper);
  border: 0;
  border-bottom: 1px solid var(--court-rule-soft);
  border-radius: 0;
}

.court-select__option:last-child { border-bottom: 0; }
.court-select__option:hover,
.court-select__option:focus-visible { background: var(--court-blue-soft); }
.court-select__option.is-selected { color: #fff; background: var(--court-blue); }
.court-select__option svg { width: 17px; }

@media (hover: hover) {
  .court-select__trigger:hover {
    border-color: var(--court-blue);
  }
}

/* Account forms */
.court-page-main--account {
  display: grid;
  place-items: start center;
  padding: 24px 12px;
}

.court-page-main--account > * {
  width: min(100%, 520px);
}

.court-page-main--account form {
  display: grid;
  gap: 16px;
  padding: 20px;
  border: 2px solid var(--court-rule);
  border-radius: 5px;
  background: var(--court-paper);
}

.court-account-sheet,
.court-account-panel {
  border: 2px solid var(--court-rule);
  border-radius: 4px;
  background: var(--court-paper);
  box-shadow: none;
}

.court-account-sheet::before {
  display: block;
  height: 10px;
  border-bottom: 2px solid var(--court-rule);
  background: var(--court-blue);
  content: "";
}

/* Shared album pages. The advanced board is deliberately absent: it is a
   fixed-height workbench with its own shell in courtside-advanced.css, not a
   scrolling album page. */
.court-leaderboard-page,
.court-submissions-page,
.court-profile-page,
.court-ist-page {
  min-height: calc(100dvh - var(--court-topbar-height));
  background: var(--court-paper) !important;
  color: var(--court-ink) !important;
  font-family: var(--court-text) !important;
}

.court-leaderboard-page :is(.dark\:bg-slate-950, .dark\:bg-slate-900, .dark\:bg-slate-800),
.court-submissions-page :is(.dark\:bg-slate-950, .dark\:bg-slate-900, .dark\:bg-slate-800),
.court-profile-page :is(.dark\:bg-slate-950, .dark\:bg-slate-900, .dark\:bg-slate-800),
.court-ist-page :is(.dark\:bg-slate-950, .dark\:bg-slate-900, .dark\:bg-slate-800) {
  background-color: var(--court-paper) !important;
}

.court-leaderboard-page > header,
.court-submissions-page > header {
  border-bottom: 2px solid var(--court-rule) !important;
  background: var(--court-blue-soft) !important;
}

.court-leaderboard-page > header > div,
.court-leaderboard-page > main,
.court-submissions-page > header > div,
.court-submissions-page > main,
.court-ist-page > div:last-child {
  max-width: var(--court-canvas) !important;
}

.court-leaderboard-page h1,
.court-submissions-page h1,
.court-ist-page h1 {
  color: var(--court-ink) !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
  font: var(--court-display-identity) !important;
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

/* Basic leaderboard: a concise scorebook sheet. */
.court-leaderboard-page > header {
  padding: 22px 0 !important;
}

.court-leaderboard-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
}

.court-leaderboard-page .court-leaderboard-header__title h1 {
  max-width: none;
}

.court-leaderboard-header__utilities {
  display: flex;
  gap: 16px;
  align-items: end;
}

.court-leaderboard-header__utilities .court-select--compact {
  width: 180px;
}

@media (max-width: 1279px) {
  .court-leaderboard-header {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .court-leaderboard-header__utilities {
    width: 100%;
    justify-content: space-between;
  }
}

.court-leaderboard-page > header select {
  min-height: 38px;
  border: 2px solid var(--court-rule) !important;
  border-radius: 3px !important;
  background: var(--court-paper) !important;
  color: var(--court-ink) !important;
  font-family: var(--court-display);
  text-transform: uppercase;
}

.court-your-rank {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  width: -moz-fit-content;
  width: fit-content;
  min-height: 0;
  padding: 6px 0 0;
  color: var(--court-ink);
  font-family: var(--court-display);
}

.court-your-rank > span {
  grid-column: 1 / -1;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}

.court-your-rank > strong {
  color: var(--court-blue);
  font-size: 50px;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: .8;
  text-transform: uppercase;
}

.court-your-rank > small {
  align-self: end;
  padding: 0 0 2px 7px;
  color: var(--court-steel);
  font-size: 16px;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
  line-height: 1;
}

.court-leaderboard-page > header .grid > div {
  min-height: 70px;
  border: 1px solid var(--court-rule) !important;
  border-radius: 3px !important;
  background: var(--court-paper) !important;
}

.court-leaderboard-page > header .grid > div:nth-child(1) svg,
.court-leaderboard-page > header .grid > div:nth-child(3) svg {
  color: var(--court-blue) !important;
}

.court-leaderboard-page > header .grid > div:nth-child(2) svg,
.court-leaderboard-page > header .grid > div:nth-child(4) svg {
  color: var(--court-red) !important;
}

.court-leaderboard-page > main {
  padding-top: 12px !important;
}

.court-leaderboard-page > main > div {
  border: 2px solid var(--court-rule) !important;
  border-radius: 5px !important;
  background: var(--court-paper) !important;
  box-shadow: none !important;
}

.court-leaderboard-page > main > div > div:first-child {
  border-color: var(--court-rule) !important;
  background: var(--court-carbon) !important;
  color: #fff !important;
  font-family: var(--court-display);
}

.court-leaderboard-page > main button {
  min-height: 58px;
  border-radius: 0 !important;
  color: var(--court-ink) !important;
}

.court-leaderboard-page > main button:hover {
  background: var(--court-blue-soft) !important;
}

.court-leaderboard-page > main h3,
.court-leaderboard-page > main [class*="font-black"] {
  color: var(--court-ink) !important;
  font-family: var(--court-display);
}

.court-leaderboard-page [class*="rounded-full"] {
  border-radius: 3px !important;
}

/* Reusable ruled scorebook primitives. */
.court-scorebook-table { border: 2px solid var(--court-rule); background: var(--court-paper); }
.court-scorebook-header { color: #fff; font: 800 11px var(--court-display); letter-spacing: .08em; text-transform: uppercase; background: var(--court-carbon); }
.court-scorebook-row { width: 100%; text-align: left; border: 0; border-bottom: 1px solid var(--court-rule); background: var(--court-paper); }
.court-scorebook-number { font-family: var(--court-display); font-weight: 800; font-variant-numeric: tabular-nums; line-height: .9; }

/* Basic participant leaderboard: album ranking table, with previews on expansion. */
.court-leaderboard-page > main > .court-basic-leaderboard { border-radius: 2px !important; }
.court-basic-leaderboard__head { display: grid; grid-template-columns: 76px 220px 140px minmax(0, 1fr) 40px; }
.court-basic-leaderboard__head > div { display: flex; min-height: 46px; align-items: center; padding: 0 14px; border-right: 1px solid rgb(255 255 255 / 18%); }
.court-basic-leaderboard__head > div:first-child,
.court-basic-leaderboard__head > div:nth-child(3) { justify-content: center; }
.court-basic-leaderboard__head > div:last-child { border-right: 0; }
.court-basic-entry { border-bottom: 1px solid var(--court-rule-soft); background: var(--court-paper); }
.court-basic-entry:last-child { border-bottom: 0; }
.court-basic-entry.is-leader { background: var(--court-paper); }
.court-basic-entry.is-expanded { background: var(--court-sheet-wash); }
.court-basic-entry.is-leader.is-expanded { background: var(--court-paper); }
.court-leaderboard-page > main .court-basic-leaderboard__row { display: grid; grid-template-columns: 76px 220px 140px minmax(0, 1fr) 40px; min-height: 80px; border-bottom: 0; background: transparent !important; }
.court-basic-leaderboard__row > div { height: 100%; min-height: 80px; border-right: 1px solid var(--court-rule-soft); }
.court-basic-leaderboard__row > div:last-child { border-right: 0; }
.court-basic-rank { display: grid; position: relative; place-items: center; }
.court-basic-rank .court-scorebook-number { position: relative; z-index: 1; font-size: 40px; }
.court-rank-honor {
  display: grid;
  position: absolute;
  z-index: 2;
  top: 9px;
  left: calc(50% + 7px);
  width: 22px;
  height: 22px;
  place-items: center;
  border: 1px solid var(--court-ink);
  border-radius: var(--court-radius-ticket);
  color: var(--court-carbon);
}
.court-rank-honor svg { width: 13px; height: 13px; stroke-width: 2; }
.court-basic-rank.is-gold .court-rank-honor { background: var(--court-gold); }
.court-basic-rank.is-silver .court-rank-honor { background: var(--court-medal-silver); }
.court-basic-rank.is-bronze .court-rank-honor { background: var(--court-wood); }
.court-basic-rank.is-gold .court-rank-honor { transform: rotate(-4deg); }
.court-basic-rank.is-silver .court-rank-honor { transform: rotate(3deg); }
.court-basic-rank.is-bronze .court-rank-honor { transform: rotate(-2deg); }
.court-basic-participant { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 10px 16px; }
.court-basic-participant [class*="rounded-full"] { border-radius: 999px !important; }
.court-basic-participant h3 { font: 800 24px var(--court-display) !important; letter-spacing: .01em; }
.court-basic-entry.is-leader .court-basic-participant [class*="rounded-full"] { color: #fff !important; background: var(--court-blue) !important; border-color: var(--court-rule) !important; }
.court-category-badge {
  display: inline-flex;
  min-height: 18px;
  align-items: center;
  gap: 4px;
  padding: 2px 6px;
  border-radius: var(--court-radius-ticket);
  background: var(--court-leader-badge-bg);
  color: var(--court-leader-badge-ink);
  font: 800 10px/1 var(--court-display);
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.court-category-badge svg { width: 12px; height: 12px; flex: 0 0 auto; }
.court-basic-points-cell { display: flex; align-items: center; justify-content: center; flex-direction: column; }
.court-basic-points { font-size: 34px; }
.court-basic-preview { display: flex; align-items: center; gap: 16px; min-height: 80px; padding: 10px 18px; }
.court-basic-preview > div { min-width: 0; }
.court-basic-preview__label { display: flex; align-items: end; justify-content: space-between; gap: 5px; margin-bottom: 5px; color: var(--court-steel); font: 700 10px/1 var(--court-text); font-variant-numeric: tabular-nums; }
.court-basic-preview__label > span:first-child { overflow: hidden; font: 800 11px/1 var(--court-display); letter-spacing: .05em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.court-basic-preview [class*="h-1"] { height: 4px; border-radius: 0; background: var(--court-rule-soft) !important; }
.court-basic-preview [class*="h-full"] { border-radius: 0; background: var(--court-blue) !important; }
.court-basic-disclosure { display: flex; align-items: center; justify-content: center; }
.court-basic-entry.is-expanded .court-basic-disclosure svg { color: var(--court-blue) !important; }

/* Expanded participant preview: one joined grading sheet, not nested cards. */
.court-basic-expansion {
  background: var(--court-paper);
}

.court-basic-expansion__inner { padding: 0; }

.court-breakdown-sheet {
  overflow: hidden;
  background: var(--court-paper);
}

.court-breakdown-sheet__head {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 16px;
  background: var(--court-sheet-wash);
  border-bottom: 1px solid var(--court-rule-soft);
  color: var(--court-steel);
}

.court-breakdown-sheet__head h4,
.court-breakdown-sheet__head a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  color: inherit;
  font: 800 12px/1 var(--court-display);
  letter-spacing: .08em;
  text-decoration: none;
  text-transform: uppercase;
}

.court-breakdown-sheet__head h4 svg,
.court-breakdown-sheet__head a svg { width: 14px; height: 14px; }
.court-breakdown-sheet__head a { min-height: 44px; padding: 0 2px; }
.court-breakdown-sheet__head a:hover { color: var(--court-gold); text-decoration: underline; }

.court-breakdown-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.court-breakdown-card {
  position: relative;
  min-width: 0;
  background: var(--court-paper);
}

.court-breakdown-card + .court-breakdown-card { border-left: 1px solid var(--court-rule-soft); }

.court-breakdown-card__best {
  display: inline-flex;
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  min-height: 30px;
  gap: 5px;
  align-items: center;
  padding: 6px 9px;
  background: var(--court-leader-badge-bg);
  color: var(--court-leader-badge-ink);
  font: 800 10px/1 var(--court-display);
  letter-spacing: .06em;
  text-transform: uppercase;
}

.court-breakdown-card__best svg { width: 12px; height: 12px; }

.court-breakdown-card__header {
  display: flex;
  min-height: 62px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 14px;
  color: var(--court-ink);
  text-decoration: none;
}

.court-breakdown-card.is-best .court-breakdown-card__header { padding-right: 118px; }
.court-breakdown-card__header:hover { background: var(--court-blue-soft); color: var(--court-ink); }
.court-breakdown-card__title { display: flex; min-width: 0; gap: 9px; align-items: center; }
.court-breakdown-card__title svg { width: 19px; height: 19px; flex: 0 0 auto; color: var(--court-blue); }
.court-breakdown-card__title strong { font: 800 18px/.95 var(--court-display); letter-spacing: .015em; text-transform: uppercase; }

.court-breakdown-card__score {
  display: flex;
  flex: 0 0 auto;
  align-items: baseline;
  gap: 4px;
  color: var(--court-steel);
  font: 700 11px/1 var(--court-text);
  font-variant-numeric: tabular-nums;
}

.court-breakdown-card__score b { color: var(--court-ink); font: 800 22px/.85 var(--court-display); }
.court-breakdown-card__score small { padding-left: 5px; border-left: 1px solid var(--court-rule-soft); color: var(--court-blue); font-weight: 800; }

.court-breakdown-card__meter { height: 4px; background: var(--court-sheet-wash); }
.court-breakdown-card__meter > span { display: block; height: 100%; background: var(--court-blue); }

.court-breakdown-conferences { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.court-breakdown-conference:first-child { border-right: 1px solid var(--court-rule-soft); }
.court-breakdown-conference h5 { min-height: 34px; margin: 0; padding: 9px 10px 7px; background: var(--court-paper); font: 800 14px/1 var(--court-display); letter-spacing: .045em; text-transform: uppercase; }
.court-breakdown-conference.is-east h5 { color: var(--court-blue); background: var(--court-blue-soft); }
.court-breakdown-conference.is-west h5 { color: var(--court-red-dark); background: var(--court-red-soft); }

.court-grade-ledger { border-top: 1px solid var(--court-rule-soft); }
.court-grade-group + .court-grade-group { border-top: 1px solid var(--court-rule-soft); }
.court-leaderboard-page > main .court-grade-group__trigger {
  display: flex;
  width: 100%;
  min-height: 44px;
  align-items: stretch;
  justify-content: space-between;
  padding: 0;
  border: 0;
  background: var(--court-paper);
  color: var(--court-ink) !important;
  text-align: left;
}
.court-leaderboard-page > main .court-grade-group__trigger:hover { background: var(--court-sheet-wash) !important; }
.court-grade-group__identity { display: flex; min-width: 0; align-items: center; gap: 7px; padding: 6px 8px; }
.court-grade-group__identity > span:last-child { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.court-grade-group__identity strong { font: 800 13px/1 var(--court-display); letter-spacing: .04em; text-transform: uppercase; }
.court-grade-group__identity small { color: var(--court-steel); font: 700 10px/1 var(--court-text); }
.court-grade-group__mark { display: grid; width: 20px; height: 20px; flex: 0 0 auto; place-items: center; }
.court-grade-group__mark svg { width: 16px; height: 16px; }
.court-grade-group__summary { display: flex; flex: 0 0 auto; gap: 2px; align-items: center; padding-right: 6px; }
.court-grade-group__summary b { display: grid; min-width: 32px; height: 100%; place-items: center; font: 800 16px/1 var(--court-display); font-variant-numeric: tabular-nums; }
.court-grade-group__summary svg { width: 24px; height: 14px; padding: 0 5px; transition: transform 160ms ease-out; }
.court-grade-group.is-open .court-grade-group__summary svg { transform: rotate(180deg); }
.court-grade-group.is-correct .court-grade-group__mark,
.court-grade-group.is-correct .court-grade-group__summary b { color: var(--court-success); }
.court-grade-group.is-partial .court-grade-group__mark,
.court-grade-group.is-partial .court-grade-group__summary b { color: var(--court-warning); }
.court-grade-group.is-incorrect .court-grade-group__mark,
.court-grade-group.is-incorrect .court-grade-group__summary b { color: var(--court-danger); }
.court-grade-group.is-pending .court-grade-group__mark,
.court-grade-group.is-pending .court-grade-group__summary b { color: var(--court-steel); }

.court-grade-group__content { border-top: 1px solid var(--court-rule-soft); background: var(--court-sheet-wash); }
.court-grade-pick { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 43px; padding: 7px 10px 7px 45px; }
.court-grade-pick + .court-grade-pick { border-top: 1px solid var(--court-rule-soft); }
.court-grade-pick__name { min-width: 0; color: var(--court-ink); font: 700 12px/1.25 var(--court-text); }
.court-grade-pick__name-text { overflow-wrap: anywhere; }
.court-grade-pick__name.is-team { display: flex; align-items: center; gap: 8px; }
.court-grade-pick__logo { display: block; width: 28px; height: 28px; flex: 0 0 auto; -o-object-fit: contain; object-fit: contain; }
.court-grade-pick__detail { display: flex; gap: 5px; align-items: center; color: var(--court-steel); font: 700 10px/1.2 var(--court-text); font-variant-numeric: tabular-nums; text-align: right; }
.court-grade-pick__detail.is-standing { color: var(--court-ink); font: 800 12px/1 var(--court-display); white-space: nowrap; }
.court-grade-pick__detail b { min-width: 25px; color: currentColor; font: 800 13px/1 var(--court-display); }
.court-grade-group.is-correct .court-grade-pick__detail b { color: var(--court-success); }
.court-grade-group.is-partial .court-grade-pick__detail b { color: var(--court-warning); }
.court-grade-group.is-incorrect .court-grade-pick__detail b { color: var(--court-danger); }
.court-grade-group__empty,
.court-grade-group__more { margin: 0; padding: 10px 12px 10px 45px; color: var(--court-steel); font: 600 11px/1.25 var(--court-text); }
.court-grade-group__more { border-top: 1px solid var(--court-rule-soft); font-weight: 700; }

.court-breakdown-conference .court-grade-pick {
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding-left: 12px;
}

.court-breakdown-conference .court-grade-pick__detail {
  justify-content: flex-end;
  text-align: right;
}

.court-breakdown-card__link {
  display: inline-flex;
  min-height: 44px;
  gap: 6px;
  align-items: center;
  margin: 4px 10px 6px;
  padding: 0 4px;
  color: var(--court-blue);
  font: 800 11px/1 var(--court-display);
  letter-spacing: .055em;
  text-transform: uppercase;
}
.court-breakdown-card__link svg { width: 13px; height: 13px; }

/* Submission ledger */
.court-submissions-page > header {
  padding: 20px 0 !important;
}

.court-submissions-page > main {
  padding: 12px !important;
}

.court-submissions-page nav,
.court-submissions-page section,
.court-submissions-page article,
.court-submissions-page [class*="shadow"] {
  box-shadow: none !important;
}

.court-submissions-page section,
.court-submissions-page article,
.court-submissions-page [class*="rounded-2xl"],
.court-submissions-page [class*="rounded-3xl"] {
  border-radius: 5px !important;
}

.court-submissions-page section,
.court-submissions-page article {
  border-color: var(--court-rule) !important;
  background: var(--court-paper) !important;
}

.court-submissions-page h2,
.court-submissions-page h3,
.court-submissions-page h4 {
  font-family: var(--court-display) !important;
  text-transform: uppercase;
}

.court-submissions-page [class*="bg-gradient"] {
  background-image: none !important;
}

.court-submissions-page [class*="bg-amber-50"] {
  background: var(--court-gold-soft) !important;
}

.court-submissions-page [class*="bg-sky-"],
.court-submissions-page [class*="bg-blue-"] {
  background-color: var(--court-blue-soft) !important;
}

.court-submissions-page [class*="bg-rose-"] {
  background-color: var(--court-red-soft) !important;
}

.court-submissions-page .overunder-scale,
.court-submissions-page .yesno-scale,
.court-submissions-page .head-to-head-scale {
  border: 2px solid var(--court-rule);
  border-radius: 4px !important;
  background: var(--court-paper);
  box-shadow: none;
}

.court-submissions-page :is(.overunder-choice, .yesno-choice, .head-to-head-choice) {
  min-height: 52px;
  border-radius: 0 !important;
  font-family: var(--court-display);
  font-weight: 700;
  text-transform: uppercase;
}

.court-submissions-page :is(.overunder-choice, .yesno-choice, .head-to-head-choice).is-selected {
  background: var(--court-blue) !important;
  color: #fff !important;
}

/* Profile: player card, stat strip, and ruled content sheets. */
.court-profile-page > div:nth-of-type(2) {
  margin: 0 !important;
  border: 0 !important;
  border-bottom: 2px solid var(--court-rule) !important;
  border-radius: 0 !important;
  background: var(--court-blue-soft) !important;
  box-shadow: none !important;
}

.court-profile-page > div:nth-of-type(2) > div[class*="absolute"] {
  display: none !important;
}

.court-profile-page > div:nth-of-type(2) > div[class*="relative"] {
  padding: 20px 0 58px !important;
}

.court-profile-page > div:nth-of-type(2) h1,
.court-profile-page > div:nth-of-type(2) p,
.court-profile-page > div:nth-of-type(2) span {
  color: var(--court-ink) !important;
}

.court-profile-page > div:nth-of-type(2) h1 {
  font-size: clamp(2.3rem, 10vw, 5rem) !important;
  text-transform: uppercase;
}

.court-profile-page > div:nth-of-type(2) img {
  filter: saturate(0.85) contrast(1.05);
}

.court-profile-page > div:nth-of-type(2) [class*="rounded-full"] {
  border: 2px solid var(--court-rule) !important;
  border-radius: 4px !important;
  background: var(--court-paper) !important;
}

.court-profile-page > div:nth-of-type(3) {
  max-width: 1380px !important;
}

.court-profile-page > div:nth-of-type(3) > div:first-child {
  gap: 0 !important;
  overflow: hidden;
  border: 2px solid var(--court-rule);
  border-radius: 5px;
  background: var(--court-paper);
}

.court-profile-page > div:nth-of-type(3) > div:first-child > div {
  border: 0 !important;
  border-right: 1px solid var(--court-rule) !important;
  border-radius: 0 !important;
  background: var(--court-paper) !important;
  box-shadow: none !important;
  transform: none !important;
}

.court-profile-page > div:nth-of-type(3) > div:first-child > div:last-child {
  border-right: 0 !important;
}

.court-profile-page > div:nth-of-type(3) > div:nth-child(2) > div {
  gap: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  border: 2px solid var(--court-rule) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

.court-profile-page > div:nth-of-type(3) > div:nth-child(2) button {
  min-height: 48px;
  border-right: 1px solid var(--court-rule-soft);
  border-radius: 0 !important;
}

.court-profile-page > div:nth-of-type(3) > div:nth-child(2) button:has(> div) {
  color: #fff !important;
}

.court-profile-page > div:nth-of-type(3) > div:nth-child(2) button > div {
  border-radius: 0 !important;
  background: var(--court-blue) !important;
}

.court-profile-page > div:nth-of-type(3) > div:last-child [class*="rounded"],
.court-profile-page > div:nth-of-type(3) > div:last-child [class*="shadow"] {
  border-radius: 4px !important;
  box-shadow: none !important;
}

.court-profile-page > div:nth-of-type(3) > div:last-child [class*="border"] {
  border-color: var(--court-rule) !important;
}

.court-profile-page > div:nth-of-type(3) > div:last-child [class*="bg-gradient"] {
  background-image: none !important;
  background-color: var(--court-paper) !important;
}

/* NBA Cup center */
.court-ist-page > div:first-child {
  border-bottom: 2px solid var(--court-rule);
  background: var(--court-blue-soft) !important;
}

.court-ist-page > div:first-child > div:first-child {
  display: none;
}

.court-ist-page > div:first-child > div:last-child {
  padding-top: 28px !important;
  padding-bottom: 28px !important;
}

.court-ist-page > div:first-child p,
.court-ist-page > div:first-child span {
  color: var(--court-ink) !important;
}

.court-ist-page > div:first-child [class*="rounded-full"] {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--court-red) !important;
  font-family: var(--court-display);
  font-size: 1rem;
  text-transform: uppercase;
}

.court-ist-page > div:first-child .grid > div {
  min-width: 92px;
  border: 1px solid var(--court-rule) !important;
  border-radius: 3px !important;
  background: var(--court-paper) !important;
  color: var(--court-ink) !important;
  box-shadow: none !important;
}

.court-ist-page > div:first-child .grid svg {
  color: var(--court-blue) !important;
}

.court-ist-page > div:first-child .grid > div:nth-child(2) svg {
  color: var(--court-red) !important;
}

.court-ist-page > div:last-child {
  padding-top: 22px !important;
}

.court-ist-page section {
  padding-top: 4px;
}

.court-ist-page section > div:first-child {
  margin-bottom: 12px !important;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--court-rule);
}

.court-ist-page section > div:first-child > div {
  width: 8px !important;
  height: 26px !important;
  border-radius: 0 !important;
  background: var(--court-blue) !important;
}

.court-ist-page section:nth-of-type(2) > div:first-child > div {
  background: var(--court-red) !important;
}

.court-ist-page section h2,
.court-ist-page section h3 {
  color: var(--court-ink) !important;
  font-family: var(--court-display) !important;
  text-transform: uppercase;
}

.court-ist-page section [class*="rounded-xl"],
.court-ist-page section [class*="rounded-2xl"] {
  border-color: var(--court-rule) !important;
  border-radius: 4px !important;
  box-shadow: none !important;
}

.court-ist-page section [class*="bg-gradient"] {
  background-image: none !important;
  background-color: var(--court-blue) !important;
}

.court-ist-page section:nth-of-type(2) [class*="bg-gradient"] {
  background-color: var(--court-red) !important;
}

@media (min-width: 768px) {
  :root {
    /* The rail's brand block and the topbar share this height so their bottom
       rules meet as one continuous line across the top of the page. */
    --court-topbar-height: 72px;
  }

  body.court-body {
    padding: 0;
  }

  .court-mobile-nav {
    display: none;
  }

  .court-desktop-nav {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 85;
    display: flex;
    width: var(--court-desktop-rail);
    flex-direction: column;
    border-right: 2px solid var(--court-rule);
    background: var(--court-paper);
  }

  .court-desktop-nav__brand {
    display: flex;
    gap: 10px;
    align-items: center;
    height: var(--court-topbar-height);
    padding: 0 16px;
    border-bottom: 2px solid var(--court-rule);
    color: var(--court-ink);
    font-family: var(--court-display);
    font-size: 1.2rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    line-height: 0.86;
    text-decoration: none;
    text-transform: uppercase;
  }

  .court-desktop-nav__brand img {
    width: 38px;
    height: 38px;
    -o-object-fit: contain;
       object-fit: contain;
  }

  .court-desktop-nav__season {
    padding: 8px 16px;
    border-bottom: 1px solid var(--court-rule);
    color: var(--court-blue);
    font-family: var(--court-display);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .court-desktop-nav nav {
    display: grid;
    gap: 4px;
    padding: 12px 10px;
  }

  .court-desktop-nav .court-nav-link {
    min-height: 48px;
    flex-direction: row;
    justify-content: flex-start;
    padding: 0 12px;
    border: 2px solid transparent;
    border-radius: 4px;
    font-size: 1rem;
  }

  .court-desktop-nav .court-nav-link:hover {
    border-color: var(--court-rule);
    background: var(--court-blue-soft);
  }

  .court-desktop-nav .court-nav-link.is-active {
    border-color: var(--court-rule);
  }

  .court-topbar {
    left: var(--court-desktop-rail);
  }

  .court-topbar__inner {
    grid-template-columns: 1fr auto;
    padding: 0 24px;
  }

  .court-topbar__brand {
    display: none;
  }

  .court-topbar__admin {
    display: block;
  }

  .court-topbar__account {
    grid-column: 2;
  }

  .court-topbar__username {
    display: inline;
    font-weight: 700;
  }

  .court-page-main {
    width: calc(100% - var(--court-desktop-rail));
    margin: var(--court-topbar-height) 0 0 var(--court-desktop-rail);
  }

  .court-page-main--account {
    padding: 48px 24px;
  }

  .court-leaderboard-page > main,
  .court-submissions-page > main,
  .court-ist-page > div:last-child {
    padding-right: 24px !important;
    padding-left: 24px !important;
  }

  .court-profile-page > div:nth-of-type(3) {
    padding-right: 24px !important;
    padding-left: 24px !important;
  }
}

@media (max-width: 767px) {

  .court-leaderboard-page > header .grid {
    gap: 0 !important;
    overflow: hidden;
    border: 2px solid var(--court-rule);
    border-radius: 4px;
  }

  .court-leaderboard-page > header .grid > div {
    border: 0 !important;
    border-right: 1px solid var(--court-rule) !important;
    border-bottom: 1px solid var(--court-rule) !important;
  }

  .court-leaderboard-page > header .grid > div:nth-child(even) {
    border-right: 0 !important;
  }

  .court-basic-leaderboard__head { display: none; }
  .court-leaderboard-page > main .court-basic-leaderboard__row { grid-template-columns: 56px minmax(0, 1fr) 76px 24px; min-height: 70px; }
  .court-basic-leaderboard__row > div { min-height: 70px; }
  .court-basic-rank .court-scorebook-number { font-size: 31px; }
  .court-rank-honor { top: 8px; left: calc(50% + 5px); width: 18px; height: 18px; }
  .court-rank-honor svg { width: 11px; height: 11px; }
  .court-basic-participant { gap: 8px !important; padding: 8px 10px; }
  .court-basic-participant h3 { font-size: 20px !important; }
  .court-basic-points { font-size: 27px; }
  .court-basic-preview { display: none; }
  .court-basic-disclosure { min-width: 24px; }

  .court-your-rank { padding-top: 4px; }
  .court-your-rank > strong { font-size: 50px; }
  .court-your-rank > small { font-size: 16px; }

  .court-leaderboard-page > header { padding: 14px 0 16px !important; }
  .court-leaderboard-header {
    gap: 12px;
  }
  .court-leaderboard-page .court-leaderboard-header__title h1 {
    max-width: 7ch;
    font-size: clamp(44px, 12vw, 58px) !important;
  }
  .court-leaderboard-header__utilities {
    display: grid;
    grid-template-columns: minmax(118px, 1fr) minmax(142px, 170px);
    gap: 10px;
    align-items: end;
  }
  .court-leaderboard-header__utilities .court-select--compact {
    width: 100%;
  }

  .court-basic-expansion__inner { padding: 0; }
  .court-breakdown-sheet__head { align-items: stretch; padding: 0; }
  .court-breakdown-sheet__head h4 { padding: 10px 12px; }
  .court-breakdown-sheet__head a { padding: 0 10px; border-left: 1px solid var(--court-steel); font-size: 10px; }
  .court-breakdown-grid { grid-template-columns: minmax(0, 1fr); }
  .court-breakdown-card + .court-breakdown-card { border-top: 1px solid var(--court-rule-soft); border-left: 0; }
  .court-breakdown-card__header { min-height: 64px; padding: 10px 11px; }
  .court-breakdown-card.is-best .court-breakdown-card__header { padding-top: 38px; padding-right: 11px; }
  .court-breakdown-card__title { gap: 7px; }
  .court-breakdown-card__title strong { font-size: 19px; }
  .court-breakdown-card__score { flex-wrap: wrap; justify-content: flex-end; max-width: 90px; }
  .court-breakdown-card__score b { font-size: 23px; }
  .court-breakdown-conferences { grid-template-columns: minmax(0, 1fr); }
  .court-breakdown-conference:first-child { border-right: 0; border-bottom: 1px solid var(--court-rule-soft); }
  .court-grade-pick { grid-template-columns: minmax(0, 1fr); gap: 3px; padding-left: 45px; }
  .court-grade-pick__detail { justify-content: space-between; text-align: left; }

  .court-profile-page > div:nth-of-type(3) {
    margin-top: -38px !important;
  }

  .court-profile-page > div:nth-of-type(3) > div:first-child > div:nth-child(even) {
    border-right: 0 !important;
  }

  .court-profile-page > div:nth-of-type(3) > div:first-child > div {
    border-bottom: 1px solid var(--court-rule) !important;
  }

  .court-profile-page > div:nth-of-type(3) > div:nth-child(2) button {
    padding-right: 6px !important;
    padding-left: 6px !important;
  }

  .court-ist-page > div:first-child .grid {
    width: 100%;
    gap: 0 !important;
    overflow: hidden;
    border: 2px solid var(--court-rule);
    border-radius: 4px;
  }

  .court-ist-page > div:first-child .grid > div {
    border: 0 !important;
    border-right: 1px solid var(--court-rule) !important;
  }

  .court-ist-page > div:first-child .grid > div:last-child {
    border-right: 0 !important;
  }

  .court-ist-page > div:last-child {
    padding-right: 12px !important;
    padding-left: 12px !important;
  }

}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* Courtside Album — second-pass interaction and composition layer */
.court-modal-backdrop {
  padding: 18px;
  background: rgb(10 18 30 / 72%);
}

.court-roster-sheet,
.court-simulation-sheet {
  color: var(--court-ink);
  background: var(--court-paper);
  border: 2px solid var(--court-rule);
  border-radius: 3px;
  box-shadow: 12px 12px 0 rgb(5 25 45 / 28%);
}

.court-sheet-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 24px 18px;
  color: #fff;
  background: var(--court-blue);
  border-bottom: 2px solid var(--court-rule);
}

.court-kicker {
  display: block;
  margin-bottom: 4px;
  font: 700 11px/1 var(--court-body);
  letter-spacing: .18em;
  text-transform: uppercase;
}

.court-sheet-header h3,
.court-simulation-sheet h3 {
  margin: 0;
  font: 800 clamp(25px, 4vw, 38px)/.95 var(--court-display);
  letter-spacing: .02em;
  text-transform: uppercase;
}

/* The sheet masthead is a saturated blue field, so its title states white
   rather than inheriting it — a bare `h3` colour rule otherwise wins over an
   inherited value and drops the title to ink on blue. */
.court-sheet-header h3 {
  color: #fff;
}

.court-simulation-sheet h3 {
  color: var(--court-ink);
}

.court-sheet-header p {
  margin: 8px 0 0;
  font-size: 13px;
  color: rgb(255 255 255 / 78%);
}

.court-icon-button {
  display: grid;
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  place-items: center;
  color: #fff;
  border: 1px solid rgb(255 255 255 / 70%);
  border-radius: 0;
}

.court-roster-tools {
  display: grid;
  grid-template-columns: 1fr auto auto;
  border-bottom: 1px solid var(--court-rule);
}

.court-search-field {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 0 14px;
  border-right: 1px solid var(--court-rule);
}

.court-search-field input {
  width: 100%;
  min-height: 48px;
  color: var(--court-ink);
  background: transparent;
  border: 0;
  outline: 0;
}

.court-roster-tools > button {
  min-height: 48px;
  padding: 0 16px;
  font: 800 11px var(--court-body);
  letter-spacing: .08em;
  text-transform: uppercase;
  border-right: 1px solid var(--court-rule);
}

.court-roster-tools > button:last-child { color: var(--court-red); border-right: 0; }
.court-roster-column-head,
.cup-leaders-columns {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  padding: 8px 16px;
  font: 800 10px var(--court-body);
  color: #fff;
  letter-spacing: .14em;
  text-transform: uppercase;
  background: var(--court-carbon);
}

.court-roster-row {
  display: grid;
  grid-template-columns: 38px 1fr 28px;
  align-items: center;
  gap: 12px;
  min-height: 58px;
  padding: 8px 16px;
  cursor: pointer;
  border-bottom: 1px solid var(--court-medal-silver);
}

.court-roster-row:hover,
.court-roster-row.is-selected { background: var(--court-blue-soft); }
.court-roster-rank { font: 800 18px var(--court-display); color: var(--court-blue); }
.court-roster-name { display: flex; min-width: 0; flex-direction: column; }
.court-roster-name strong { overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.court-roster-name small { color: var(--court-muted); font-size: 11px; }
.court-score-check { display: grid; width: 25px; height: 25px; place-items: center; color: #fff; border: 2px solid var(--court-rule); }
.is-selected .court-score-check { background: var(--court-blue); }
.court-sheet-footer { display: flex; align-items: center; justify-content: space-between; padding-left: 18px; font-size: 12px; font-weight: 700; border-top: 2px solid var(--court-rule); }
.court-sheet-footer button { min-height: 50px; padding: 0 24px; color: #fff; font: 800 12px var(--court-body); letter-spacing: .08em; text-transform: uppercase; background: var(--court-red); border-left: 2px solid var(--court-rule); }

.court-simulation-sheet { width: min(100%, 520px); padding: 26px; }
.court-simulation-sheet .court-kicker { color: var(--court-red); }
.court-simulation-sheet > p { max-width: 42ch; margin: 12px 0 20px; color: var(--court-steel); font-size: 14px; line-height: 1.45; }
.court-simulation-sheet ol { margin: 0; padding: 0; list-style: none; border: 1px solid var(--court-rule); }
.court-simulation-sheet li { display: grid; grid-template-columns: 44px 1fr; align-items: center; min-height: 64px; border-bottom: 1px solid var(--court-rule); }
.court-simulation-sheet li:last-child { border-bottom: 0; }
.court-simulation-sheet li > svg,
.court-step-number { width: 44px; height: 100%; padding: 12px; color: var(--court-blue); border-right: 1px solid var(--court-rule); }
.court-step-number { display: grid; place-items: center; padding: 0; font: 800 22px var(--court-display); }
.court-simulation-sheet li span:last-child { display: flex; flex-direction: column; padding: 10px 14px; color: var(--court-steel); font-size: 12px; }
.court-simulation-sheet li strong { margin-bottom: 2px; color: var(--court-ink); font-size: 14px; }
.court-simulation-actions { display: grid; grid-template-columns: 1fr 1fr; margin-top: 18px; border: 2px solid var(--court-rule); }
.court-simulation-actions button { min-height: 48px; padding: 8px 10px; font: 800 11px var(--court-body); letter-spacing: .06em; text-transform: uppercase; border-right: 1px solid var(--court-rule); }
.court-simulation-actions button:last-child { color: #fff; background: var(--court-blue); border-right: 0; }

/* Player passport / season scorebook */
.court-profile-page { background: var(--court-paper) !important; }
.court-page-main--profile { padding: 0; }
.court-profile-hero { margin: 0 !important; color: var(--court-ink); background: var(--court-paper); border: 0; border-bottom: 2px solid var(--court-rule); box-shadow: none; }
.court-profile-stripe { display: flex; justify-content: space-between; padding: 8px max(var(--court-gutter), calc((100vw - var(--court-canvas)) / 2 + var(--court-gutter))); color: #fff; font: 800 10px var(--court-body); letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; background: linear-gradient(90deg, var(--court-blue) 0 72%, var(--court-red) 72%); }
.court-profile-hero__inner { width: min(100%, var(--court-canvas)); margin: 0 auto; padding: 26px var(--court-gutter) 28px; }
.court-profile-identity { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; border: 2px solid var(--court-rule); }
.court-profile-primary { display: grid; min-width: 0; grid-template-columns: 100px minmax(0, 1fr); }
.court-profile-monogram { display: grid; place-items: center; color: #fff; font: 800 42px var(--court-display); background: var(--court-blue); border-right: 2px solid var(--court-rule); }
.court-profile-copy { align-self: center; min-width: 0; padding: 18px 22px; }
.court-profile-copy .court-kicker { color: var(--court-red); }
.court-profile-copy h1 { margin: 0; overflow: hidden; font: 800 clamp(30px, 5vw, 54px)/.92 var(--court-display); letter-spacing: .01em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.court-profile-copy p { margin: 8px 0 0; color: var(--court-steel); font-size: 13px; }
.court-profile-meta { display: grid; grid-template-columns: 160px 140px; border-left: 1px solid var(--court-rule); }
.court-profile-rank-stamp { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 12px 18px; color: var(--court-blue); border-right: 1px solid var(--court-rule); }
.court-profile-rank-stamp svg { width: 24px; flex: 0 0 auto; }
.court-profile-rank-stamp div { display: flex; min-width: 0; flex-direction: column; }
.court-profile-rank-stamp span { color: var(--court-steel); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.court-profile-rank-stamp strong { font: 800 30px var(--court-display); }
.court-season-select { position: relative; display: block; min-width: 0; padding: 10px 12px; }
.court-season-select .court-select__trigger { height: 100%; min-height: 48px; }
.court-season-select .court-select__value { font-size: 18px; }
.court-season-select .court-select__icon { width: 15px; }
.court-profile-main { width: min(100%, var(--court-canvas)); margin: 0 auto; padding: 24px var(--court-gutter) 56px; }
.court-profile-score-strip { display: grid; grid-template-columns: repeat(4, 1fr); margin-bottom: 24px; border: 2px solid var(--court-rule); }
.court-profile-score { display: grid; grid-template-columns: 24px 1fr; align-items: center; padding: 13px 16px; border-right: 1px solid var(--court-rule); }
.court-profile-score:last-child { border-right: 0; }
.court-profile-score svg { grid-row: span 3; width: 18px; color: var(--court-blue); }
.court-profile-score span { color: var(--court-steel); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.court-profile-score strong { font: 800 26px var(--court-display); }
.court-profile-score small { color: var(--court-muted); font-size: 10px; }
.court-profile-tabs { display: flex; margin-bottom: 24px; overflow-x: auto; border: 2px solid var(--court-rule); background: var(--court-paper); }
.court-profile-tabs button { display: flex; min-width: -moz-max-content; min-width: max-content; flex: 1; align-items: center; justify-content: center; gap: 7px; min-height: 46px; padding: 0 14px; color: var(--court-steel); font: 800 11px var(--court-body); letter-spacing: .06em; text-transform: uppercase; border-right: 1px solid var(--court-rule); }
.court-profile-tabs button:last-child { border-right: 0; }
.court-profile-tabs button.is-active { color: #fff; background: var(--court-blue); }
.court-profile-tabs svg { width: 15px; }
.court-profile-dashboard { display: grid; gap: 24px; }
.court-category-ledger { border: 2px solid var(--court-rule); }
.court-category-ledger > header { display: grid; grid-template-columns: 1fr auto; padding: 9px 14px; color: #fff; font: 800 10px var(--court-body); letter-spacing: .12em; text-transform: uppercase; background: var(--court-carbon); }
.court-category-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto 58px 20px; align-items: center; gap: 10px; min-height: 68px; padding: 8px 14px; color: var(--court-ink); border-bottom: 1px solid var(--court-rule); }
.court-category-row:last-child { border-bottom: 0; }
.court-category-row:hover { background: var(--court-success-soft); }
.court-category-row > svg:first-child { width: 20px; color: var(--court-blue); }
.court-category-row > span { display: flex; flex-direction: column; }
.court-category-row span > strong { font: 800 19px var(--court-display); letter-spacing: .02em; text-transform: uppercase; }
.court-category-row small { color: var(--court-muted); font-size: 11px; }
.court-ledger-score { display: block !important; min-width: 72px; text-align: right; }
.court-ledger-score strong { font-size: 20px !important; }
.court-ledger-percent { display: grid !important; min-height: 34px; place-items: center; color: var(--court-blue); font: 800 13px var(--court-body); background: var(--court-blue-soft); border: 1px solid var(--court-blue); }
.court-profile-editorial { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); gap: 20px; align-items: start; }
.court-calls-sheet,
.court-moments-sheet { border: 2px solid var(--court-rule); }
.court-calls-sheet > header,
.court-moments-sheet > header { display: flex; min-height: 72px; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 2px solid var(--court-rule); }
.court-calls-sheet h3,
.court-moments-sheet h3 { margin: 0; font: 800 27px var(--court-display); letter-spacing: .02em; text-transform: uppercase; }
.court-calls-sheet .court-kicker { color: var(--court-blue); }
.court-moments-sheet .court-kicker { color: var(--court-red); }
.court-calls-sheet header button { display: flex; align-items: center; gap: 5px; color: var(--court-blue); font: 800 10px var(--court-body); letter-spacing: .08em; text-transform: uppercase; }
.court-calls-sheet header button svg { width: 14px; }
.court-call-row { display: grid; grid-template-columns: 36px minmax(0, 1fr) 58px 32px; align-items: center; gap: 10px; min-height: 62px; padding: 8px 12px; border-bottom: 1px solid var(--court-medal-silver); }
.court-call-row:last-child { border-bottom: 0; }
.court-call-number { font: 800 18px var(--court-display); color: var(--court-medal-silver); }
.court-call-row > span:nth-child(2) { display: flex; min-width: 0; flex-direction: column; }
.court-call-row > span:nth-child(2) strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.court-call-row small { color: var(--court-muted); font-size: 11px; }
.court-call-status { display: flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.court-call-status svg { width: 13px; }
.court-call-row.is-hit .court-call-status,
.court-call-row.is-hit > b { color: var(--court-success); }
.court-call-row.is-miss .court-call-status { color: var(--court-red); }
.court-call-row.is-open .court-call-status { color: var(--court-muted); }
.court-call-row > b { text-align: right; }
.court-moment-row { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; gap: 9px; padding: 13px 14px; border-bottom: 1px solid var(--court-medal-silver); }
.court-moment-row:last-child { border-bottom: 0; }
.court-moment-row > svg { width: 18px; color: var(--court-blue); }
.court-moment-row.is-red > svg { color: var(--court-red); }
.court-moment-row.is-gold > svg { color: var(--court-warning); }
.court-moment-row > span { display: flex; min-width: 0; flex-direction: column; }
.court-moment-row small { color: var(--court-muted); font-size: 9px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.court-moment-row strong { margin-top: 2px; font-size: 12px; line-height: 1.25; }
.court-moment-row em { margin-top: 3px; color: var(--court-blue); font-size: 11px; font-style: normal; }
.court-moment-row > b { color: var(--court-blue); font-size: 12px; }
.court-profile-empty { margin: 0; padding: 28px 16px; color: var(--court-muted); font-size: 13px; }
.court-question-ledger { border: 2px solid var(--court-rule); }
.court-question-ledger > header { display: flex; min-height: 78px; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 2px solid var(--court-rule); }
.court-question-ledger > header .court-kicker { color: var(--court-red); }
.court-question-ledger > header h3 { margin: 0; font: 800 29px var(--court-display); letter-spacing: .02em; text-transform: uppercase; }
.court-question-ledger > header > strong { font: 800 28px var(--court-display); color: var(--court-blue); }
.court-question-ledger > header small { color: var(--court-muted); font: 800 10px var(--court-body); letter-spacing: .08em; text-transform: uppercase; }
.court-question-ledger__head { display: grid; grid-template-columns: 1fr 86px 44px; gap: 8px; padding: 8px 12px; color: #fff; font: 800 9px var(--court-body); letter-spacing: .12em; text-transform: uppercase; background: var(--court-carbon); }
.court-question-ledger__head span:nth-child(2),
.court-question-ledger__head span:nth-child(3) { text-align: center; }
.court-question-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) 86px 44px; align-items: center; gap: 8px; min-height: 66px; padding: 8px 12px; border-bottom: 1px solid var(--court-medal-silver); }
.court-question-row:last-child { border-bottom: 0; }
.court-question-index { font: 800 18px var(--court-display); color: var(--court-medal-silver); }
.court-question-copy { display: flex; min-width: 0; flex-direction: column; }
.court-question-copy > strong { font-size: 13px; line-height: 1.25; }
.court-question-copy small { margin-top: 4px; color: var(--court-muted); font-size: 11px; }
.court-question-copy small b { color: var(--court-ink); }
.court-question-result { display: flex; align-items: center; justify-content: center; gap: 4px; min-height: 30px; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; border: 1px solid currentColor; }
.court-question-result svg { width: 13px; }
.court-question-row.is-correct .court-question-result,
.court-question-row.is-correct .court-question-points { color: var(--court-success); }
.court-question-row.is-wrong .court-question-result { color: var(--court-red); }
.court-question-row.is-open .court-question-result { color: var(--court-muted); }
.court-question-points { text-align: center; }

.court-standings-book { border: 2px solid var(--court-rule); }
.court-standings-book__header { display: flex; min-height: 76px; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 2px solid var(--court-rule); }
.court-standings-book__header > div:first-child { display: flex; align-items: center; gap: 10px; }
.court-standings-book__header svg { width: 23px; color: var(--court-blue); }
.court-standings-book__header h3 { margin: 0; font: 800 29px var(--court-display); letter-spacing: .02em; text-transform: uppercase; }
.court-standings-book__score { display: flex; align-items: baseline; gap: 4px; }
.court-standings-book__score span { margin-right: 5px; color: var(--court-muted); font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.court-standings-book__score strong { color: var(--court-blue); font: 800 28px var(--court-display); }
.court-standings-book__score small { color: var(--court-muted); font-size: 12px; }
.court-standings-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 8px 16px; color: var(--court-steel); font-size: 10px; font-weight: 700; border-bottom: 1px solid var(--court-rule); }
.court-standings-legend span { display: flex; align-items: center; gap: 5px; }
.court-standings-legend svg { width: 13px; color: var(--court-blue); }
.court-standings-legend a { display: flex; align-items: center; gap: 4px; margin-left: auto; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.court-standings-legend a svg { width: 12px; }
.court-conference-grid { display: grid; grid-template-columns: 1fr 1fr; }
.court-conference-sheet:first-child { border-right: 1px solid var(--court-rule); }
.court-conference-sheet > header { display: flex; min-height: 42px; align-items: center; justify-content: space-between; padding: 8px 12px; color: #fff; border-bottom: 2px solid var(--court-rule); }
.court-conference-sheet.is-east > header { background: var(--court-blue); }
.court-conference-sheet.is-west > header { background: var(--court-red); }
.court-conference-sheet h4 { margin: 0; color: inherit; font: 800 19px var(--court-display); letter-spacing: .03em; text-transform: uppercase; }
.court-conference-sheet header span { font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.court-standing-line { display: grid; grid-template-columns: 18px 32px 34px minmax(0, 1fr) 50px 28px; align-items: center; gap: 8px; min-height: 58px; padding: 7px 10px; border-bottom: 1px solid var(--court-medal-silver); }
.court-standing-line:last-child { border-bottom: 0; }
.court-standing-grip { width: 15px; color: var(--court-medal-silver); }
.court-standing-pick { color: var(--court-blue); font: 800 21px var(--court-display); text-align: center; }
.court-standing-logo { width: 29px; height: 29px; -o-object-fit: contain; object-fit: contain; }
.court-standing-team { display: flex; min-width: 0; flex-direction: column; }
.court-standing-team > strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.court-standing-team small,
.court-standing-actual small { color: var(--court-muted); font-size: 9px; }
.court-standing-actual { display: flex; flex-direction: column; text-align: center; }
.court-standing-actual strong { font: 800 16px var(--court-display); }
.court-standing-line > b { color: var(--court-muted); font-size: 12px; text-align: right; }
.court-standing-line.is-exact { background: var(--court-success-soft); }
.court-standing-line.is-exact > b { color: var(--court-success); }
.court-standing-line.is-close { background: var(--court-warning-soft); }
.court-standing-line.is-close > b { color: var(--court-warning); }

.court-settings-sheet { max-width: 780px; margin: 0 auto; border: 2px solid var(--court-rule); }
.court-settings-sheet > header { display: flex; min-height: 86px; align-items: center; gap: 13px; padding: 14px 18px; color: #fff; background: var(--court-carbon); border-bottom: 2px solid var(--court-rule); }
.court-settings-sheet > header svg { width: 27px; color: #fff; }
.court-settings-sheet > header h3 { margin: 0; color: #fff; font: 800 29px var(--court-display); letter-spacing: .02em; text-transform: uppercase; }
.court-settings-sheet > header p { margin: 3px 0 0; color: var(--court-medal-silver); font-size: 12px; }
.court-settings-ledger { display: grid; }
.court-settings-row { display: grid; width: 100%; grid-template-columns: 42px minmax(0, 1fr) auto 20px; align-items: center; gap: 12px; min-height: 76px; padding: 10px 16px; color: var(--court-ink); text-align: left; text-decoration: none; border-bottom: 1px solid var(--court-rule); }
.court-settings-row:last-child { border-bottom: 0; }
.court-settings-row:hover { background: var(--court-success-soft); }
.court-settings-row > svg:first-child { width: 20px; color: var(--court-blue); }
.court-settings-row > span { display: flex; min-width: 0; flex-direction: column; }
.court-settings-row span strong { font: 800 19px var(--court-display); letter-spacing: .02em; text-transform: uppercase; }
.court-settings-row span small { color: var(--court-muted); font-size: 11px; }
.court-settings-row > b { color: var(--court-blue); font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.court-settings-row > svg:last-child { width: 16px; }
.court-settings-signout > svg:first-child,
.court-settings-signout > b { color: var(--court-red); }
.court-settings-signout:hover { background: var(--court-red-soft); }

.court-profile-page [class*="rounded-2xl"],
.court-profile-page [class*="rounded-xl"] { border-radius: 2px !important; box-shadow: none !important; }
.court-profile-page [class*="bg-gradient"],
.court-profile-page [class*="backdrop-blur"] { background-image: none !important; backdrop-filter: none !important; }

.court-locked-sheet { position: relative; overflow: visible; padding: 0; color: var(--court-ink); background: var(--court-paper); border: 2px solid var(--court-rule); box-shadow: none; }
/* League colour arrives as an attached top band in the flow of the sheet, the
   same way the account sheet carries it — not as a thick edge down one side and
   not as a stripe laid over the corner. */
.court-locked-sheet::before { display: block; height: 10px; background: var(--court-blue); border-bottom: 2px solid var(--court-rule); content: ""; }
.court-locked-sheet__body { padding: 32px; }
.court-locked-sheet__watermark { position: absolute; top: 28px; right: 16px; width: 88px; height: 88px; color: var(--court-ink); opacity: 0.06; pointer-events: none; }
.court-locked-sheet__badge { display: inline-flex; width: 64px; height: 64px; align-items: center; justify-content: center; margin: 0 auto 24px; color: var(--court-gold); background: var(--court-gold-soft); border: 2px solid var(--court-rule); border-radius: 4px; }
.court-locked-sheet__chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; color: var(--court-ink); font-size: 0.875rem; font-weight: 700; background: var(--court-sheet-wash); border: 1px solid var(--court-rule-soft); border-radius: 4px; }
.court-locked-sheet__seasons { position: relative; z-index: 1; margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--court-rule-soft); }

/* Admin — Courtside Album chrome for staff-only tooling */
.court-admin-page { min-height: 100vh; background: var(--court-paper); color: var(--court-ink); }
.court-admin-tabbar { position: sticky; top: 0; z-index: 30; padding: 16px; background: var(--court-paper-translucent); border-bottom: 2px solid var(--court-rule); backdrop-filter: blur(8px); }
.court-admin-tabs { max-width: 640px; margin: 0 auto 0; }
.court-admin-content { max-width: 1380px; margin: 0 auto; padding: 24px 16px 64px; }
.court-admin-section { border: 2px solid var(--court-rule); background: var(--court-paper); padding: 20px; }
.court-admin-section + .court-admin-section { margin-top: 20px; }
.court-admin-section__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: -20px -20px 20px; padding: 12px 16px; color: #fff; font: 800 12px var(--court-display); letter-spacing: .08em; text-transform: uppercase; background: var(--court-carbon); }
.court-admin-card { border: 1px solid var(--court-rule-soft); background: var(--court-paper); padding: 16px; }
.court-admin-label { color: var(--court-steel); font: 800 11px var(--court-body); letter-spacing: .06em; text-transform: uppercase; }
.court-admin-input { height: 44px; padding: 0 12px; color: var(--court-ink); background: var(--court-paper); border: 2px solid var(--court-rule); border-radius: 4px; font: 400 14px var(--court-text); }
.court-admin-input:focus-visible { outline: 3px solid var(--court-gold); outline-offset: 2px; }
.court-admin-table { width: 100%; border-collapse: collapse; }
.court-admin-table th { padding: 10px 12px; color: #fff; font: 800 10px var(--court-body); letter-spacing: .08em; text-transform: uppercase; text-align: left; background: var(--court-carbon); }
.court-admin-table td { padding: 10px 12px; border-bottom: 1px solid var(--court-rule-soft); }
.court-admin-table tr:hover td { background: var(--court-sheet-wash); }
.court-admin-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; font: 800 10px var(--court-body); letter-spacing: .05em; text-transform: uppercase; border-radius: 2px; }
.court-admin-badge--success { color: var(--court-success); background: var(--court-success-soft); }
.court-admin-badge--warning { color: var(--court-warning); background: var(--court-warning-soft); }
.court-admin-badge--danger { color: var(--court-danger); background: var(--court-red-soft); }
.court-admin-badge--neutral { color: var(--court-steel); background: var(--court-sheet-wash); }
.court-admin-stat { display: flex; align-items: center; gap: 12px; border: 1px solid var(--court-rule-soft); background: var(--court-paper); padding: 14px 16px; }
.court-admin-stat__value { font: 800 26px var(--court-display); color: var(--court-ink); line-height: 1; }
.court-admin-stat__label { margin-top: 2px; color: var(--court-steel); font-size: 11px; }
.court-admin-chip-btn { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; font: 700 11px var(--court-body); border: 1px solid var(--court-rule-soft); border-radius: 4px; background: var(--court-paper); color: var(--court-ink); transition: background-color 120ms ease-out; }
.court-admin-chip-btn:hover:not(:disabled) { background: var(--court-sheet-wash); }
.court-admin-chip-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.court-admin-chip-btn--success { color: var(--court-success); background: var(--court-success-soft); border-color: var(--court-success-soft); }
.court-admin-chip-btn--warning { color: var(--court-warning); background: var(--court-warning-soft); border-color: var(--court-warning-soft); }
.court-admin-chip-btn--blue { color: var(--court-blue); background: var(--court-blue-soft); border-color: var(--court-blue-soft); }
.court-admin-chip-btn--danger { color: var(--court-danger); background: var(--court-red-soft); border-color: var(--court-red-soft); }
.court-admin-grading-row { border: 1px solid var(--court-rule-soft); background: var(--court-paper); padding: 12px; }
.court-admin-grading-row--set { border-color: var(--court-success); background: var(--court-success-soft); }
.court-admin-accordion { border: 1px solid var(--court-rule-soft); background: var(--court-paper); }
.court-admin-accordion__head { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 20px; color: var(--court-ink); text-align: left; background: transparent; transition: background-color 120ms ease-out; }
.court-admin-accordion__head:hover { background: var(--court-sheet-wash); }
.court-admin-accordion__body { padding: 20px; border-top: 1px solid var(--court-rule-soft); }
.court-admin-subaccordion { border: 1px solid var(--court-rule-soft); }
.court-admin-subaccordion__head { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; color: var(--court-ink); text-align: left; background: var(--court-sheet-wash); }

/* Picks become ruled entry slips instead of a form-card grid */
.court-submissions-page { padding-top: 28px !important; color: var(--court-ink); background: var(--court-paper) !important; }
.court-submissions-page > div { max-width: var(--court-canvas) !important; }
/* Masthead matches the leaderboard: open paper closed by a carbon rule, not a
   floating bordered card. */
.court-submissions-page > div > div:first-child { margin-bottom: 24px !important; padding: 0 0 20px; border-bottom: 2px solid var(--court-rule); }
.court-submissions-page h1 { font: var(--court-display-identity) !important; letter-spacing: -.025em; text-transform: uppercase; }
.court-submissions-page nav { gap: 0 !important; border: 1px solid var(--court-rule); }
.court-submissions-page nav a { min-height: 42px; padding: 0 14px !important; border: 0 !important; border-right: 1px solid var(--court-rule) !important; border-radius: 0 !important; box-shadow: none !important; }
.court-submissions-page section > header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; padding: 0 0 10px; border-bottom: 2px solid var(--court-rule); }
.court-submissions-page section > header h2 { font: var(--court-title-section) !important; letter-spacing: .02em; text-transform: uppercase; }
.court-submissions-page #standings > div { border: 2px solid var(--court-rule) !important; border-radius: 2px !important; box-shadow: none !important; }
.court-submissions-page #questions > section > .grid { gap: 0 !important; border: 2px solid var(--court-rule); }
.court-submissions-page #questions > section > .grid > div { min-height: 190px; border: 0 !important; border-right: 1px solid var(--court-rule) !important; border-bottom: 1px solid var(--court-rule) !important; border-radius: 0 !important; box-shadow: none !important; }
.court-submissions-page #questions > section > .grid > div:nth-child(even) { border-right: 0 !important; }
.court-submissions-page #questions input,
.court-submissions-page #questions select,
.court-submissions-page #questions textarea,
.court-submissions-page #questions button { border-radius: 0 !important; box-shadow: none !important; }
.court-submissions-page [class*="rounded-full"] { border-radius: 2px !important; }
.court-submissions-page #submit { position: sticky; bottom: 62px; z-index: 35; align-items: stretch !important; padding: 10px; background: var(--court-paper); border: 2px solid var(--court-rule); box-shadow: none; }
.court-submissions-page #submit > div { gap: 0 !important; }
.court-submissions-page #submit button { min-height: 48px; border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
.court-submissions-page #submit button:last-child { color: #fff !important; background: var(--court-blue) !important; border-left: 1px solid var(--court-rule) !important; }

/* NBA Cup prediction leaders as a compact score table */
.cup-leaders-sheet { overflow: hidden; color: var(--court-ink); background: var(--court-paper); border: 2px solid var(--court-rule); border-radius: 2px; }
.cup-leaders-header { padding: 14px 16px; color: #fff; background: var(--court-blue); border-bottom: 2px solid var(--court-rule); }
.cup-leaders-header h2 { font: 800 20px var(--court-display) !important; letter-spacing: .04em; text-transform: uppercase; }
.cup-leaders-header svg { color: #fff !important; }
.cup-leaders-header .text-xs { color: rgb(255 255 255 / 74%) !important; }
.cup-leaders-columns { grid-template-columns: 1fr 110px 64px; background: var(--court-carbon); }
.cup-leader-row { padding: 10px 14px; border-bottom: 1px solid var(--court-medal-silver); }
.cup-leader-row:last-child { border-bottom: 0; }
.cup-leader-row:hover { background: var(--court-sheet-wash); }
.cup-leader-row > div:first-child { display: grid !important; grid-template-columns: 28px minmax(0, 1fr) auto; align-items: start !important; gap: 10px !important; }
.cup-leader-row [class*="rounded-md"],
.cup-leader-row [class*="rounded"] { border-radius: 1px !important; box-shadow: none !important; }
.cup-leader-row.is-expanded { background: var(--court-sheet-wash); border-left: 7px solid var(--court-red); }
.cup-pick-mark { display: inline-grid; grid-template-columns: auto auto auto; align-items: center; gap: 4px; min-height: 28px; padding: 3px 7px; font-size: 11px; border: 1px solid currentColor; border-radius: 1px; }
.cup-leaders-more { padding: 10px; text-align: center; border-top: 2px solid var(--court-rule); }
.cup-leaders-more button { min-height: 42px; padding: 0 20px; font: 800 11px var(--court-body); letter-spacing: .08em; text-transform: uppercase; border: 1px solid var(--court-rule); border-radius: 0; box-shadow: none; }
.cup-leader-record { display: flex; align-items: baseline; gap: 6px; margin-left: auto; color: var(--court-ink); font: 800 12px var(--court-body); }
.cup-leader-record small { color: var(--court-muted); font-size: 10px; font-weight: 600; }

/* Leaderboard foldouts and detail answer tickets */
.court-leaderboard-page main > div { border: 2px solid var(--court-rule) !important; border-radius: 2px !important; box-shadow: none !important; }
.court-leaderboard-page main [class*="rounded-xl"] { border-radius: 1px !important; box-shadow: none !important; }
.court-leaderboard-page main [class*="max-h-\[1200px\]"] > div > div { padding: 0 !important; background: var(--court-sheet-wash) !important; border: 2px solid var(--court-rule) !important; }
.court-leaderboard-page main [class*="max-h-\[1200px\]"] h4 { font-size: 11px !important; color: #fff !important; }
.court-leaderboard-page main [class*="max-h-\[1200px\]"] > div > div > div:first-child { min-height: 42px; margin: 0 !important; padding: 0 12px !important; color: #fff; background: var(--court-blue); border-bottom: 2px solid var(--court-rule); }
.court-leaderboard-page main [class*="max-h-\[1200px\]"] > div > div > div:first-child a { color: #fff !important; }
.court-leaderboard-page main [class*="max-h-\[1200px\]"] .grid { gap: 0 !important; }
.court-leaderboard-page main [class*="max-h-\[1200px\]"] .grid > div { border: 0 !important; border-right: 1px solid var(--court-rule) !important; border-radius: 0 !important; background: var(--court-paper) !important; }
.court-leaderboard-page main [class*="max-h-\[1200px\]"] .grid > div:last-child { border-right: 0 !important; }

@media (max-width: 960px) {
  .court-profile-identity { grid-template-columns: 1fr; }
  .court-profile-meta { grid-template-columns: 1fr 1fr; border-top: 1px solid var(--court-rule); border-left: 0; }
  .court-profile-rank-stamp,
  .court-season-select { min-height: 62px; }
}

@media (max-width: 767px) {
  * {
    -ms-overflow-style: none;
    scrollbar-width: none;
  }
  *::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
  }
  .court-combobox__menu {
    border-radius: 0 !important;
    box-shadow: none !important;
  }
  .court-select__menu {
    border-radius: 0;
    box-shadow: none;
  }
  .court-leaderboard-page > header .court-select--compact {
    width: min(100%, 180px);
    align-self: flex-end;
  }
  .court-modal-backdrop { padding: 0; }
  .court-roster-sheet,
  .court-simulation-sheet { max-width: none; border-right: 0; border-bottom: 0; border-left: 0; border-radius: 0; box-shadow: none; }
  .court-roster-tools { grid-template-columns: 1fr auto auto; }
  .court-roster-tools > button { padding: 0 11px; font-size: 10px; }
  .court-sheet-header { padding: 17px 16px 14px; }
  .court-sheet-footer { padding-left: 12px; }
  .court-sheet-footer button { padding: 0 16px; }
  .court-simulation-sheet { padding: 22px 16px max(20px, env(safe-area-inset-bottom)); }
  .court-profile-stripe { padding-right: 12px; padding-left: 12px; }
  .court-profile-hero__inner { padding: 14px 12px 16px; }
  .court-profile-main { padding: 16px 12px 40px; }
  .court-profile-primary { grid-template-columns: 72px minmax(0, 1fr); }
  .court-profile-monogram { font-size: 31px; }
  .court-profile-copy { padding: 13px 12px; }
  .court-profile-copy h1 { font-size: clamp(28px, 9vw, 34px); }
  .court-profile-copy p { font-size: 11px; }
  .court-profile-rank-stamp { padding: 8px 12px; }
  .court-profile-rank-stamp strong { font-size: 26px; }
  .court-season-select { padding: 8px; }
  .court-profile-score-strip { grid-template-columns: repeat(2, 1fr); }
  .court-profile-score { border-bottom: 1px solid var(--court-rule); }
  .court-profile-score:nth-child(even) { border-right: 0; }
  .court-profile-score:nth-last-child(-n+2) { border-bottom: 0; }
  .court-profile-tabs button { min-width: 48px; padding: 0 12px; }
  .court-profile-tabs button span { display: none; }
  .court-profile-editorial { grid-template-columns: 1fr; }
  .court-category-row { grid-template-columns: 28px minmax(0, 1fr) auto 48px; padding: 8px 10px; }
  .court-category-row > svg:last-child { display: none; }
  .court-ledger-score { min-width: 52px; }
  .court-call-row { grid-template-columns: 28px minmax(0, 1fr) 28px; }
  .court-call-status { font-size: 0; }
  .court-call-status svg { width: 16px; }
  .court-call-row > b { display: none; }
  .court-question-ledger__head { grid-template-columns: 1fr 40px; }
  .court-question-ledger__head span:nth-child(2) { display: none; }
  .court-question-row { grid-template-columns: 30px minmax(0, 1fr) 32px; }
  .court-question-result { min-height: 30px; font-size: 0; border: 0; }
  .court-question-result svg { width: 17px; }
  .court-question-points { font-size: 12px; }
  .court-standings-book__header { min-height: 66px; padding: 10px 12px; }
  .court-standings-book__header h3 { font-size: 24px; }
  .court-standings-legend { justify-content: space-between; gap: 8px; padding: 8px 10px; }
  .court-conference-grid { grid-template-columns: 1fr; }
  .court-conference-sheet:first-child { border-right: 0; border-bottom: 2px solid var(--court-rule); }
  .court-standing-line { grid-template-columns: 16px 30px 32px minmax(0, 1fr) 44px 26px; gap: 6px; padding-right: 8px; padding-left: 8px; }
  .court-settings-sheet > header { min-height: 76px; padding: 12px 14px; }
  .court-settings-row { grid-template-columns: 30px minmax(0, 1fr) 18px; gap: 9px; padding: 9px 12px; }
  .court-settings-row > b { display: none; }
  .court-submissions-page { padding-top: 12px !important; padding-bottom: 90px !important; }
  .court-submissions-page > div > div:first-child { padding: 15px; }
  .court-submissions-page nav { width: 100%; }
  .court-submissions-page nav a { flex: 1; justify-content: center; padding: 0 8px !important; }
  .court-submissions-page #questions > section > .grid > div { border-right: 0 !important; }
  .court-submissions-page #submit { bottom: 68px; margin-right: -4px; margin-left: -4px; }
  .cup-leaders-columns { grid-template-columns: 1fr 72px 50px; }
  .cup-leader-row { padding: 9px 10px; }
  .cup-leader-row > div:first-child { grid-template-columns: 24px minmax(0, 1fr) 42px !important; }
  .cup-leader-record { align-items: flex-end; flex-direction: column; gap: 0; }
  .cup-leader-row:not(.is-expanded) .cup-pick-mark { display: none; }
  .cup-leader-row.is-expanded .cup-pick-mark { width: 100%; grid-template-columns: auto 1fr; }
  .cup-leader-row.is-expanded .cup-pick-mark > span:nth-last-child(1) { grid-column: 1 / -1; padding-left: 19px; }
  .court-leaderboard-page main [class*="max-h-\[1200px\]"] .grid > div { border-right: 0 !important; border-bottom: 1px solid var(--court-rule) !important; }
  .court-leaderboard-page main [class*="max-h-\[1200px\]"] .grid > div:last-child { border-bottom: 0 !important; }
}

/* Submission completion ledger */
.court-submissions-page { overflow-x: clip; }

.court-submissions-page .submission-progress {
  position: sticky;
  top: calc(var(--court-topbar-height) + 8px);
  z-index: 34;
  display: grid;
  margin: 0 0 24px;
  color: var(--court-ink);
  background: var(--court-paper);
  border: 2px solid var(--court-rule);
  border-radius: 2px;
}

.submission-progress__section,
.submission-progress__overall { min-width: 0; padding: 10px 12px 11px; }
.submission-progress__section { display: none; }
.submission-progress__label-row,
.submission-progress__overall-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.submission-progress__label {
  color: var(--court-steel);
  font: 800 10px/1 var(--court-body);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.submission-progress__label-row strong,
.submission-progress__status,
.submission-section-count,
.submission-actions__status span,
.submission-actions__status strong,
.submission-actions__buttons button,
.submission-actions__unsaved {
  font-family: var(--court-display);
  font-variant-numeric: tabular-nums;
  text-transform: uppercase;
}
.submission-progress__label-row strong { font-size: 11px; letter-spacing: .035em; }
.submission-progress__section p {
  overflow: hidden;
  margin: 5px 0 8px;
  font: 800 18px/1 var(--court-display);
  letter-spacing: .015em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.submission-progress__overall-row { margin-top: 8px; }
.submission-progress__track {
  height: 7px;
  flex: 1 1 auto;
  overflow: hidden;
  background: var(--court-rule-soft);
  border: 1px solid var(--court-rule);
}
.submission-progress__track > span {
  display: block;
  height: 100%;
  background: var(--court-blue);
}
.submission-progress.is-complete .submission-progress__track > span { background: var(--court-success); }
.submission-progress__status {
  flex: 0 0 auto;
  color: var(--court-blue-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .045em;
}
.submission-progress.is-complete .submission-progress__status { color: var(--court-success); }
.submission-progress__jumps {
  display: flex;
  grid-column: 1 / -1;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  border-top: 1px solid var(--court-rule);
  scroll-snap-type: x proximity;
}
.submission-progress__jumps::-webkit-scrollbar { display: none; }
.court-submissions-page .submission-progress__jumps a {
  display: flex;
  min-width: -moz-max-content;
  min-width: max-content;
  min-height: 44px;
  align-items: center;
  gap: 7px;
  padding: 6px 11px !important;
  color: var(--court-ink);
  font: 800 12px/1 var(--court-display);
  letter-spacing: .035em;
  text-transform: uppercase;
  background: var(--court-paper);
  border: 0 !important;
  border-right: 1px solid var(--court-rule) !important;
  scroll-snap-align: start;
}
.submission-progress__jumps a small {
  padding: 3px 4px;
  color: var(--court-danger);
  font: 800 9px/1 var(--court-body);
  letter-spacing: .045em;
  background: var(--court-red-soft);
  border: 1px solid currentColor;
}
.submission-progress__jumps a.is-active { color: #fff; background: var(--court-blue); }
.submission-progress__jumps a.is-active small { color: #fff; background: transparent; }
.submission-progress__jumps a.is-complete:not(.is-active) small { color: var(--court-success); background: var(--court-sheet-wash); }

.court-submissions-page .ist-group-marker {
  flex: 0 0 40px;
  color: var(--court-ink);
  background: var(--court-sheet-wash);
  border: 2px solid var(--court-rule);
}
.court-submissions-page .ist-group-marker--east {
  color: #fff;
  background: var(--court-blue);
  border-color: var(--court-blue);
}
.court-submissions-page .ist-group-marker--west {
  color: #fff;
  background: var(--court-red);
  border-color: var(--court-red);
}
.court-submissions-page .ist-team-choice--east:hover,
.court-submissions-page .ist-team-choice--east[aria-pressed="true"] { border-color: var(--court-blue); }
.court-submissions-page .ist-team-choice--west:hover,
.court-submissions-page .ist-team-choice--west[aria-pressed="true"] { border-color: var(--court-red); }

.submission-standings-frame {
  width: 100%;
  overflow: hidden;
  background: var(--court-paper);
  border: 2px solid var(--court-rule);
}
.submission-standings-board { width: 100%; min-width: 0; }
.submission-standings-board.is-dragging { cursor: grabbing; }
.submission-standings-loading {
  min-height: 180px;
  display: grid;
  place-items: center;
  color: var(--court-steel);
  font: 800 12px var(--court-body);
  letter-spacing: .08em;
  text-transform: uppercase;
}
.submission-standings-grid {
  display: grid;
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.court-submissions-page .submission-conference-ledger {
  min-width: 0;
  border: 0;
  border-radius: 0;
}
.submission-conference-ledger + .submission-conference-ledger { border-left: 1px solid var(--court-rule); }
.court-submissions-page .submission-conference-ledger > header {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 7px 8px;
  color: #fff;
  border-bottom: 2px solid var(--court-rule);
}
.submission-conference-ledger.is-east > header { background: var(--court-blue); }
.submission-conference-ledger.is-west > header { background: var(--court-red); }
.court-submissions-page .submission-conference-ledger > header h3 {
  overflow: hidden;
  flex: 0 1 auto;
  margin: 0;
  color: inherit;
  font: 800 16px/1 var(--court-display);
  letter-spacing: .025em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
/* Which conference this is outranks the caption beside it, so the caption is
   what gives way — and below 640px it goes entirely rather than clipping the
   name to an initial. */
.submission-conference-ledger > header span {
  display: none;
  min-width: 0;
  flex: 0 1 auto;
  overflow: hidden;
  font: 800 11px/1 var(--court-body);
  letter-spacing: .07em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
@media (min-width: 640px) {
  .submission-conference-ledger > header span { display: block; }
}
.submission-conference-list {
  min-height: 690px;
  background: var(--court-paper);
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}
.submission-conference-list.is-dragging-over { box-shadow: inset 0 0 0 2px var(--court-gold); }
.submission-standing-row {
  display: grid;
  min-width: 0;
  min-height: 46px;
  /* Four columns below 640px: the record stacks under the name, so a fifth
     track would only spend a gap the team names need. */
  grid-template-columns: 12px 20px 24px minmax(0, 1fr);
  align-items: center;
  gap: 3px;
  padding: 4px;
  color: var(--court-ink);
  background: var(--court-paper);
  border-bottom: 1px solid var(--court-rule-soft);
}
.submission-standing-row.is-editable { cursor: grab; }
.submission-standing-row.is-dragging {
  cursor: grabbing;
  background: var(--court-sheet-wash);
  border: 1px solid var(--court-rule);
  box-shadow: 0 12px 24px rgba(24, 27, 30, .16);
}
.submission-standing-row:focus-visible { outline: 3px solid var(--court-gold); outline-offset: -3px; }
.submission-standing-row__grip { width: 12px; color: var(--court-steel); }
.submission-standing-row__seed {
  color: var(--court-blue);
  font: 800 16px/1 var(--court-display);
  text-align: center;
  font-variant-numeric: tabular-nums;
}
.submission-conference-ledger.is-west .submission-standing-row__seed { color: var(--court-red); }
.submission-standing-row__logo { width: 22px; height: 22px; -o-object-fit: contain; object-fit: contain; }
.submission-standing-row__team {
  overflow: hidden;
  font-size: 11px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Last season's finish, carried beside each team so an order is picked against
   evidence rather than memory. It is reference, not the pick, so it sits a clear
   step below the team name in weight. */
.submission-standing-row__last {
  display: flex;
  flex: none;
  align-items: baseline;
  justify-content: flex-end;
  gap: 5px;
  color: var(--court-medal-silver);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.submission-standing-row__last b {
  color: var(--court-steel);
  font: 700 11px/1 var(--court-text);
}
.submission-standing-row__last i {
  color: var(--court-muted);
  font: 600 9px/1 var(--court-display);
  font-style: normal;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.submission-standing-row:hover .submission-standing-row__last { color: var(--court-steel); }

/* Below 640px the row has no width to spare, so the record drops to a second
   line and every team name stays whole. From 640px it rejoins the row on the
   right, where there is room for it and for the finish. */
.submission-standing-row { grid-template-rows: auto auto; row-gap: 0; }
.submission-standing-row__grip,
.submission-standing-row__seed,
.submission-standing-row__logo { grid-row: 1 / 3; }
.submission-standing-row__team { grid-column: 4; grid-row: 1; }
.submission-standing-row__last {
  grid-column: 4;
  grid-row: 2;
  justify-content: flex-start;
}

.submission-standings-empty { margin: 0; padding: 24px 8px; color: var(--court-steel); font-size: 11px; text-align: center; }
.submission-standings-actions {
  display: grid;
  border-top: 2px solid var(--court-rule);
}
.submission-standings-actions > p {
  margin: 0;
  padding: 8px 10px;
  color: var(--court-steel);
  font: 800 10px/1 var(--court-body);
  letter-spacing: .07em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--court-rule);
}
.submission-standings-actions > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.submission-standings-actions button {
  min-height: 44px;
  padding: 6px 8px;
  color: var(--court-ink);
  font: 800 11px/1 var(--court-display);
  letter-spacing: .04em;
  text-transform: uppercase;
  background: var(--court-paper);
  border: 0;
  border-right: 1px solid var(--court-rule);
}
.submission-standings-actions button:last-child { border-right: 0; }
.submission-standings-actions button.is-primary { color: #fff; background: var(--court-blue); }
.submission-standings-actions button:disabled { cursor: not-allowed; opacity: .48; }

@media (min-width: 640px) {
  .court-submissions-page .submission-conference-ledger > header { min-height: 48px; padding: 8px 12px; }
  .court-submissions-page .submission-conference-ledger > header h3 { font-size: 28px; }
  .submission-standing-row {
    min-height: 52px;
    grid-template-columns: 18px 30px 32px minmax(0, 1fr) auto;
    grid-template-rows: auto;
    gap: 7px;
    padding: 6px 10px;
  }
  .submission-standing-row__grip,
  .submission-standing-row__seed,
  .submission-standing-row__logo { grid-row: 1; }
  .submission-standing-row__team { grid-column: 4; grid-row: 1; }
  .submission-standing-row__last {
    grid-column: 5;
    grid-row: 1;
    justify-content: flex-end;
  }
  .submission-standing-row__grip { width: 15px; }
  .submission-standing-row__seed { font-size: 28px; }
  .submission-standing-row__logo { width: 28px; height: 28px; }
  .submission-standing-row__team { font-size: 16px; }
  .submission-conference-list { min-height: 780px; }
  .submission-standings-actions { grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; }
  .submission-standings-actions > p { display: flex; align-items: center; border-right: 1px solid var(--court-rule); border-bottom: 0; }
  .submission-standings-actions > div { min-width: 390px; }
}

.court-submissions-page .submission-question-group { scroll-margin-top: calc(var(--court-topbar-height) + 150px); }
.court-submissions-page .submission-question-group > header { gap: 12px; }
.submission-section-count {
  align-self: center;
  padding: 7px 9px;
  color: var(--court-blue-dark);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  white-space: nowrap;
  background: var(--court-blue-soft);
  border: 1px solid var(--court-blue);
  border-radius: 1px;
}
.submission-section-count.is-complete {
  color: var(--court-success);
  background: var(--court-sheet-wash);
  border-color: var(--court-success);
}

.court-submissions-page #submit.submission-actions {
  position: sticky;
  bottom: calc(var(--court-nav-height) - 6px + env(safe-area-inset-bottom));
  z-index: 35;
  display: grid;
  align-items: stretch !important;
  gap: 0;
  padding: 0;
  overflow: hidden;
  color: var(--court-ink);
  background: var(--court-paper);
  border: 2px solid var(--court-rule);
  border-radius: 2px;
  box-shadow: none;
}
.submission-actions__status {
  display: grid;
  gap: 5px;
  padding: 10px 12px;
  background: var(--court-sheet-wash);
  border-bottom: 1px solid var(--court-rule);
}
.submission-actions.has-validation-error .submission-actions__status { background: var(--court-red-soft); }
.submission-actions__status > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.submission-actions__status span { color: var(--court-steel); font-size: 11px; font-weight: 800; letter-spacing: .1em; }
.submission-actions__status strong { font-size: 11px; letter-spacing: .035em; }
.submission-actions__status p { margin: 0; color: var(--court-steel); font-size: 11px; line-height: 1.3; }
.submission-actions.has-validation-error .submission-actions__status p { color: var(--court-danger); }
.court-submissions-page #submit .submission-actions__buttons {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr);
  gap: 0 !important;
}
.court-submissions-page #submit .submission-actions__buttons button {
  min-height: 50px;
  padding: 8px 12px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .055em;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.submission-actions__save { color: var(--court-blue-dark); background: var(--court-paper); }
.court-submissions-page #submit .submission-actions__submit {
  color: #fff !important;
  background: var(--court-blue) !important;
  border-left: 1px solid var(--court-rule) !important;
}
.court-submissions-page #submit .submission-actions__submit.is-incomplete {
  color: var(--court-blue-dark) !important;
  background: var(--court-blue-soft) !important;
}
.submission-actions__buttons button:disabled { cursor: not-allowed; opacity: .58; }
.submission-actions__buttons button:active { transform: translateY(1px); }
.submission-actions__unsaved {
  margin: 0;
  padding: 6px 10px;
  color: var(--court-warning);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .07em;
  text-align: center;
  background: var(--court-gold-soft);
  border-top: 1px solid var(--court-rule);
}

@media (hover: hover) {
  .submission-actions__save:hover { background: var(--court-sheet-wash); }
  .court-submissions-page #submit .submission-actions__submit:hover { background: var(--court-blue-dark) !important; }
  .court-submissions-page #submit .submission-actions__submit.is-incomplete:hover {
    color: #fff !important;
    background: var(--court-blue) !important;
  }
}

@media (min-width: 768px) {
  .court-submissions-page .submission-progress { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
  .submission-progress__section { display: block; border-right: 1px solid var(--court-rule); }
  .submission-progress__overall { display: flex; flex-direction: column; justify-content: center; }
  .court-submissions-page #submit.submission-actions {
    bottom: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
  }
  .submission-actions__status { min-width: 0; border-right: 1px solid var(--court-rule); border-bottom: 0; }
  .court-submissions-page #submit .submission-actions__buttons { grid-template-columns: 150px 190px; }
  .submission-actions__unsaved { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
  .court-submissions-page #standings > header { grid-template-columns: 1fr; align-items: start; gap: 4px; }
  .court-submissions-page #standings > div { box-sizing: border-box; max-width: 100%; }
  .court-submissions-page .submission-question-group > header { grid-template-columns: 1fr; align-items: start; }
  .submission-section-count { justify-self: start; }
}

/* Anonymous entry and trust-critical submission notices */
.submission-account-note,
.submission-payment,
.submission-entry-error,
.submission-verifying,
.submission-window,
.submission-feedback__sheet {
  color: var(--court-ink);
  background: var(--court-paper);
  border: 2px solid var(--court-rule);
  border-radius: 2px;
  box-shadow: none;
}
.submission-account-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
  padding: 12px 14px;
  background: var(--court-blue-soft);
}
.submission-account-note strong,
.submission-payment strong,
.submission-window > p:first-child,
.submission-entry-error strong {
  font: 800 18px/1 var(--court-display);
  letter-spacing: .02em;
  text-transform: uppercase;
}
.submission-account-note p,
.submission-payment p,
.submission-entry-error p { margin: 3px 0 0; color: var(--court-steel); font-size: 16px; line-height: 1.45; }
.submission-account-note.is-prompted { background: var(--court-gold-soft); }
.submission-account-note__actions { display: flex; flex: 0 0 auto; align-items: stretch; }
.court-submissions-page .submission-account-note__actions a,
.submission-account-note__actions button,
.submission-entry-error button,
.submission-payment button {
  display: grid;
  min-height: 44px;
  padding: 0 12px;
  place-items: center;
  color: var(--court-ink);
  font: 800 11px/1 var(--court-display);
  letter-spacing: .08em;
  text-transform: uppercase;
  background: var(--court-paper);
  border: 0;
  border-left: 1px solid var(--court-rule);
  border-radius: 0;
}
.court-submissions-page .submission-account-note__actions a:first-child { color: #fff; background: var(--court-blue); }
.submission-payment,
.submission-entry-error { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; padding: 12px 14px; }
.submission-payment__copy { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; }
.submission-payment.is-paid { border-color: var(--court-success); }
.submission-payment.is-due,
.submission-entry-error { background: var(--court-gold-soft); }
.submission-payment__stamp { padding: 6px 8px; color: var(--court-success); font: 800 11px/1 var(--court-display); letter-spacing: .08em; text-transform: uppercase; border: 1px solid var(--court-success); }
.submission-window { margin-bottom: 24px; padding: 12px 14px; }
.submission-window.is-open { color: var(--court-success); background: var(--court-sheet-wash); }
.submission-window.is-closed { color: var(--court-danger); background: var(--court-red-soft); }
.submission-window p { margin: 0; }
.submission-verifying { margin-bottom: 24px; padding: 12px 14px; color: var(--court-blue-dark); background: var(--court-blue-soft); }
.submission-feedback { position: fixed; right: 16px; bottom: calc(var(--court-nav-height) + 16px); z-index: 60; width: min(380px, calc(100vw - 32px)); }
.submission-feedback__sheet { display: flex; align-items: start; justify-content: space-between; gap: 12px; padding: 12px 14px; }
.submission-feedback__sheet.is-error { color: var(--court-danger); background: var(--court-red-soft); }
.submission-feedback__sheet.is-success { color: var(--court-success); background: var(--court-sheet-wash); }
.submission-feedback__sheet button { color: currentColor; font: 800 10px/1 var(--court-display); letter-spacing: .08em; text-transform: uppercase; background: transparent; border: 0; }

@media (max-width: 640px) {
  .submission-account-note,
  .submission-payment,
  .submission-entry-error { align-items: stretch; flex-direction: column; }
  .submission-payment__copy { align-items: stretch; flex-direction: column; }
  .submission-account-note__actions { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--court-rule); }
  .submission-account-note__actions button { grid-column: 1 / -1; border-top: 1px solid var(--court-rule); border-left: 0; }
  .submission-account-note__actions a:first-child { border-left: 0 !important; }
  .submission-feedback { right: 12px; bottom: calc(var(--court-nav-height) + 12px); width: calc(100vw - 24px); }
}

/* Home — The Next Play */

/* Template wrapper from predictions/home.html. The album page below owns its own
   canvas width and gutter, so this only centres it. */
.home-page-root {
  display: flex;
  justify-content: center;
  width: 100%;
  padding: 0;
}

.next-play-home {
  width: min(100%, var(--court-canvas));
  min-height: calc(100dvh - var(--court-topbar-height));
  margin: 0 auto;
  padding: 16px var(--court-gutter) calc(var(--court-nav-height) + 24px);
  color: var(--court-ink);
  font-family: var(--court-body);
  background: var(--court-paper);
}

.next-play-home ::-moz-selection {
  color: #fff;
  background: var(--court-blue);
}

.next-play-home ::selection {
  color: #fff;
  background: var(--court-blue);
}

.next-play-home :focus-visible {
  outline: 3px solid var(--court-gold);
  outline-offset: 3px;
}

.next-play-home :is(h1, h2, h3, p, dl, dd) { margin: 0; }
.next-play-home :is(a, button) { -webkit-tap-highlight-color: rgb(7 84 154 / 18%); }

.next-play-hero {
  display: grid;
  overflow: hidden;
  background: var(--court-paper-cool);
  border: 2px solid var(--court-rule);
  border-radius: 6px;
}

.next-play-hero__copy {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  padding: clamp(26px, 6vw, 72px) clamp(18px, 5vw, 64px);
}

.next-play-hero__copy::after {
  position: absolute;
  right: -66px;
  bottom: -66px;
  width: 186px;
  height: 186px;
  border: 2px solid var(--court-ring-faint);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}

.next-play-hero h1 {
  position: relative;
  z-index: 1;
  max-width: 13ch;
  font: 800 clamp(42px, 10vw, 72px)/.88 var(--court-display);
  letter-spacing: -.02em;
  text-wrap: balance;
  text-transform: uppercase;
}

/* The lock countdown is the reason the entry phase exists, so it is stamped
   above the headline rather than buried in a fact strip. */
.next-play-hero__stamp {
  position: relative;
  z-index: 1;
  display: inline-flex;
  min-height: 30px;
  align-self: start;
  align-items: center;
  gap: 7px;
  margin-bottom: 14px;
  padding: 0 10px;
  color: #fff;
  font: 800 12px/1 var(--court-body);
  letter-spacing: .1em;
  text-transform: uppercase;
  background: var(--court-red);
  border: 1px solid var(--court-rule);
  border-radius: 1px;
}

.next-play-hero__stamp.is-done { background: var(--court-success); }

.next-play-hero__standfirst {
  position: relative;
  z-index: 1;
  max-width: 46ch;
  margin-top: 20px;
  color: var(--court-steel);
  font-size: clamp(15px, 2vw, 18px);
  line-height: 1.45;
}

.next-play-hero__actions {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 8px;
  margin-top: 22px;
}

/* Once picks lock the headline is a caption on a status card, not a poster.
   The copy column tightens so the ledger's numbers lead instead of a void. */
.next-play-home.is-season .next-play-hero__copy { padding: clamp(22px, 3.4vw, 40px) clamp(18px, 3.4vw, 44px); }
.next-play-home.is-season .next-play-hero h1 { max-width: 15ch; font-size: clamp(34px, 5.2vw, 52px); }
.next-play-home.is-season .next-play-hero__standfirst { margin-top: 14px; font-size: clamp(14px, 1.4vw, 16px); }
.next-play-home.is-season .next-play-hero__actions { margin-top: 18px; }
/* The ring needs a tall panel to read as a court arc. In the compressed season
   hero it crosses the copy as a stray line, so it is dropped. */
.next-play-home.is-season .next-play-hero__copy::after { display: none; }

.next-play-action {
  display: inline-flex;
  min-height: 48px;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 0 15px;
  color: #fff;
  font: 800 13px/1 var(--court-display);
  letter-spacing: .07em;
  text-decoration: none;
  text-transform: uppercase;
  background: var(--court-blue);
  border: 1px solid var(--court-rule);
  border-radius: 4px;
  transition: background-color 160ms ease-out, color 160ms ease-out, transform 160ms ease-out;
}

.next-play-action svg { width: 17px; height: 17px; flex: 0 0 auto; stroke-width: 2.2; }
.next-play-action:hover { color: #fff; background: var(--court-blue-dark); }
.next-play-action:active { transform: translateY(1px); }
.next-play-action.is-secondary { color: var(--court-ink); background: var(--court-paper); }
.next-play-action.is-secondary:hover { color: var(--court-blue-dark); background: var(--court-blue-soft); }

.next-play-ledger {
  position: relative;
  display: flex;
  align-self: stretch;
  flex-direction: column;
  color: var(--court-ink);
  background: var(--court-paper);
  border-top: 2px solid var(--court-rule);
}

.next-play-ledger__mast {
  display: flex;
  min-height: 50px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 14px;
  color: #fff;
  font: 800 11px/1 var(--court-body);
  letter-spacing: .11em;
  text-transform: uppercase;
  background: var(--court-red);
  border-bottom: 2px solid var(--court-rule);
}

.next-play-ledger__mast strong { font: inherit; }
.next-play-ledger--player .next-play-ledger__mast { background: var(--court-blue); }

.next-play-steps { display: flex; min-height: 0; flex: 1; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.next-play-steps li { display: grid; grid-template-columns: 48px minmax(0, 1fr); min-height: 82px; flex: 1; border-bottom: 1px solid var(--court-rule); }
.next-play-steps__number { display: grid; place-items: center; color: var(--court-blue); font: 800 26px/1 var(--court-display); font-variant-numeric: tabular-nums; border-right: 1px solid var(--court-rule); }
.next-play-steps__copy { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: 11px 14px; }
.next-play-steps__copy strong { font: 800 19px/1 var(--court-display); letter-spacing: .025em; text-transform: uppercase; }
.next-play-steps__copy small { max-width: 38ch; margin-top: 5px; color: var(--court-steel); font-size: 12px; line-height: 1.35; }

.next-play-ledger__foot {
  padding: 11px 14px;
  color: var(--court-steel);
  font: 700 11px/1.4 var(--court-body);
  letter-spacing: .03em;
  background: var(--court-paper-cool);
  border-top: 1px solid var(--court-rule-soft);
}

.next-play-ledger__footer { display: grid; grid-template-columns: 1fr 1.35fr; }
.next-play-ledger__footer a {
  display: flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  color: var(--court-ink);
  font: 800 12px/1 var(--court-display);
  letter-spacing: .06em;
  text-decoration: none;
  text-transform: uppercase;
  border-right: 1px solid var(--court-rule);
}
.next-play-ledger__footer a:last-child { color: #fff; background: var(--court-blue); border-right: 0; }
.next-play-ledger__footer a:first-child:hover { background: var(--court-blue-soft); }
.next-play-ledger__footer a:last-child:hover { background: var(--court-blue-dark); }
.next-play-ledger__footer svg { width: 16px; height: 16px; }

/* Entry checklist — one ruled row per real category, counted against its total. */
.next-play-checklist { display: flex; min-height: 0; flex: 1; flex-direction: column; }
.next-play-checklist__loading { padding: 20px 14px; color: var(--court-steel); font-size: 13px; }
.next-play-checklist__row {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  min-height: 52px;
  flex: 1;
  align-items: center;
  gap: 11px;
  padding: 0 14px;
  border-bottom: 1px solid var(--court-rule-soft);
}
.next-play-checklist__row:last-child { border-bottom: 0; }
.next-play-checklist__mark {
  display: grid;
  width: 18px;
  height: 18px;
  place-items: center;
  color: #fff;
  background: var(--court-paper);
  border: 1px solid var(--court-rule-soft);
  border-radius: 1px;
}
.next-play-checklist__mark svg { width: 13px; height: 13px; stroke-width: 3.2; }
.next-play-checklist__row.is-done .next-play-checklist__mark { background: var(--court-success); border-color: var(--court-success); }
.next-play-checklist__row.is-part .next-play-checklist__mark { background: linear-gradient(135deg, var(--court-gold) 50%, var(--court-paper) 50%); }
.next-play-checklist__label { min-width: 0; overflow: hidden; font-size: 14px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.next-play-checklist__count { font: 800 17px/1 var(--court-display); font-variant-numeric: tabular-nums; }
.next-play-checklist__count i { color: var(--court-steel); font-style: normal; font-weight: 700; }
.next-play-checklist__row.is-done .next-play-checklist__count { color: var(--court-success); }
.next-play-checklist__row.is-todo .next-play-checklist__count { color: var(--court-steel); }

/* The two halves of an entry, stamped side by side so neither can be mistaken
   for the whole. Unpaid draws the warning rule; paid drops it. */
.next-play-entry-state {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 2px solid var(--court-rule);
}
.next-play-entry-state__half { display: flex; min-width: 0; flex-direction: column; justify-content: center; padding: 12px 14px; }
.next-play-entry-state__half:first-child { border-right: 1px solid var(--court-rule); }
.next-play-entry-state span:first-child { color: var(--court-steel); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.next-play-entry-state strong { margin-top: 5px; font: 800 19px/1 var(--court-display); letter-spacing: .02em; text-transform: uppercase; }
.next-play-entry-state small { margin-top: 6px; color: var(--court-steel); font-size: 11px; line-height: 1.3; }
.next-play-entry-state .next-play-progress__track { margin: 9px 0 0; }
.next-play-entry-state.is-unpaid .next-play-entry-state__half:last-child { background: var(--court-red-soft); }
.next-play-entry-state.is-unpaid .next-play-entry-state__half:last-child strong { color: var(--court-danger); }
.next-play-entry-state.is-paid .next-play-entry-state__half:last-child strong { color: var(--court-success); }

.next-play-ledger__next {
  display: grid;
  gap: 12px;
  align-items: center;
  margin-top: auto;
  padding: 14px;
  background: var(--court-gold-soft);
  border-top: 2px solid var(--court-rule);
}
.next-play-ledger__next > div { min-width: 0; }
.next-play-ledger__next > div > strong { display: block; font: 800 17px/1 var(--court-display); letter-spacing: .04em; text-transform: uppercase; }
.next-play-ledger__next > div > small { display: block; margin-top: 4px; color: var(--court-steel); font-size: 11px; line-height: 1.3; }

/* A forecast, not a score. It carries a dashed rule and half the numeral size
   of the graded tiles above it precisely so the glance that reads the ledger
   cannot come away with this number as the one that pays. */
.next-play-forecast {
  padding: 12px 14px;
  background: var(--court-paper-cool);
  border-top: 2px dashed var(--court-rule-soft);
}
.next-play-forecast__tag { color: var(--court-steel); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.next-play-forecast__line { margin-top: 5px; color: var(--court-steel); font-size: 13px; }
.next-play-forecast__line strong { font: 800 22px/1 var(--court-display); color: var(--court-ink); font-variant-numeric: tabular-nums; letter-spacing: .02em; }
.next-play-forecast small { display: block; margin-top: 6px; color: var(--court-steel); font-size: 11px; line-height: 1.35; }

/* A filled ruled bar, not a ring: the entry is a count of saved picks. */
.next-play-progress__track {
  display: block;
  height: 9px;
  margin: 8px 0 7px;
  overflow: hidden;
  background: var(--court-paper);
  border: 1px solid var(--court-rule);
  border-radius: 1px;
}
/* The fill is a full-width bar scaled from its left edge, so the meter animates
   on the compositor instead of relaying out the track on every update. */
.next-play-progress__track i {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--court-blue);
  transform: scaleX(var(--fill, 0));
  transform-origin: left center;
  transition: transform 320ms cubic-bezier(.2, .8, .3, 1);
}

.next-play-player-grid { display: grid; grid-template-columns: 1fr 1fr; }
.next-play-player-grid > div { display: flex; min-height: 104px; min-width: 0; flex-direction: column; justify-content: center; padding: 14px; border-right: 1px solid var(--court-rule); border-bottom: 1px solid var(--court-rule); }
.next-play-player-grid > div:nth-child(even) { border-right: 0; }
.next-play-player-grid span { color: var(--court-steel); font-size: 10px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.next-play-player-grid strong { margin-top: 6px; overflow: hidden; font: 800 34px/.9 var(--court-display); text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.next-play-player-grid small { margin-top: 7px; color: var(--court-steel); font-size: 11px; line-height: 1.25; }
.next-play-player-grid .next-play-player-grid__status,
.next-play-player-grid .next-play-player-grid__deadline { font-size: 20px; line-height: 1.05; }

.next-play-categories,
.next-play-podium,
.next-play-games,
.next-play-note,
.next-play-leaders,
.next-play-pulse,
.next-play-close { margin-top: 14px; border: 2px solid var(--court-rule); border-radius: 4px; background: var(--court-paper); }

.next-play-section-head { padding: 18px 16px 14px; border-bottom: 2px solid var(--court-rule); }
/* Section heads sit at the same title scale the picks and profile sheets use. */
.next-play-section-head h2,
.next-play-close h2 { font: var(--court-title-section); letter-spacing: .02em; text-transform: uppercase; }
.next-play-section-head p,
.next-play-close p { max-width: 56ch; margin-top: 5px; color: var(--court-steel); font-size: 14px; line-height: 1.35; }

.next-play-categories__rows { display: grid; }
.next-play-categories__rows > div { display: grid; grid-template-columns: 26px minmax(0, 1fr); min-height: 68px; align-items: center; gap: 14px; padding: 13px 16px; border-bottom: 1px solid var(--court-rule-soft); }
.next-play-categories__rows > div:last-child { border-bottom: 0; }
.next-play-categories__rows svg { width: 22px; height: 22px; color: var(--court-blue); stroke-width: 1.8; }
.next-play-categories__rows strong { display: block; font: 800 20px/1 var(--court-display); letter-spacing: .025em; text-transform: uppercase; }
.next-play-categories__rows span { display: block; max-width: 62ch; margin-top: 5px; color: var(--court-steel); font-size: 13px; line-height: 1.4; }

/* The workbench owns its own rhythm, so the cards inside drop the stacked
   margin the standalone sections carry and rely on the grid gap. */
.next-play-workbench { display: grid; gap: 14px; margin-top: 14px; }
.next-play-workbench:empty { display: none; }
.next-play-workbench > * { min-width: 0; margin-top: 0; }
/* In a narrow rail the caption and the reset control cannot share a line. */
.next-play-workbench > .nba-games .next-play-section-head { flex-wrap: wrap; gap: 10px; }
.next-play-workbench > .nba-games .next-play-section-head > div { flex: 1 1 190px; }
.next-play-section-head { display: flex; align-items: end; justify-content: space-between; gap: 16px; }
.next-play-section-head a { display: inline-flex; min-height: 44px; align-items: center; gap: 8px; color: var(--court-blue-dark); font: 800 11px/1 var(--court-display); letter-spacing: .06em; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; text-transform: uppercase; }
.next-play-section-head a svg { width: 15px; height: 15px; }

.next-play-leaders__row { display: grid; min-height: 48px; align-items: center; border-bottom: 1px solid var(--court-rule-soft); font-variant-numeric: tabular-nums; }
.next-play-leaders__row:last-child { border-bottom: 0; }
.next-play-leaders__row.is-head { min-height: 42px; color: #fff; font: 800 10px/1 var(--court-body); letter-spacing: .07em; text-transform: uppercase; background: var(--court-carbon); }

.next-play-leaders { overflow: hidden; }
.next-play-leaders__row { grid-template-columns: 54px minmax(0, 1fr) 72px; padding: 0 12px; color: var(--court-ink); text-decoration: none; }
.next-play-leaders__row > :last-child { text-align: right; }
.next-play-leaders__row:not(.is-head):hover { background: var(--court-blue-soft); }
.next-play-leaders__row.is-current { background: var(--court-gold-soft); box-shadow: inset 0 -4px 0 var(--court-gold); }
/* Pinned out-of-window row: a hard rule marks the jump in the standings. */
.next-play-leaders__row.is-pinned { border-top: 2px solid var(--court-rule); }

.next-play-pulse__grid { display: grid; }
.next-play-conference:first-child { border-bottom: 2px solid var(--court-rule); }
/* Fifteen rows a side, so the row is tighter than a five-team teaser. */
.next-play-conference > header,
.next-play-conference > div { display: grid; grid-template-columns: 26px minmax(0, 1fr) 72px; min-height: 34px; align-items: center; gap: 8px; padding: 0 12px; border-bottom: 1px solid var(--court-rule-soft); }
/* Actual, your call, team, record, points. */
.next-play-conference.is-scored > div { grid-template-columns: 26px 26px minmax(0, 1fr) 62px 26px; }
.next-play-conference > header { grid-template-columns: 1fr auto; min-height: 40px; color: #fff; font: 800 12px/1 var(--court-display); letter-spacing: .08em; text-transform: uppercase; border-bottom: 2px solid var(--court-rule); }
/* The header's flexible first column spans the row's rank, call, and team
   columns, so the two fixed columns still line up under their labels. */
.next-play-conference.is-scored > header { grid-template-columns: minmax(0, 1fr) 62px 26px; }
.next-play-conference.is-scored > header > :nth-child(n+2) { font-size: 9px; letter-spacing: .06em; opacity: .84; }
.next-play-conference.is-scored > header > :last-child { text-align: right; }
.next-play-conference.is-east > header { background: var(--court-blue); }
.next-play-conference.is-west > header { background: var(--court-red); }
/* Rows are opaque and stackable so a re-sorting row animates over its
   neighbours instead of showing through them. */
.next-play-conference > div { position: relative; background: var(--court-paper); }
.next-play-conference > div:last-child { border-bottom: 0; }
.next-play-conference > div > strong { color: var(--court-blue); font: 800 14px/1 var(--court-display); font-variant-numeric: tabular-nums; }
.next-play-conference.is-west > div > strong { color: var(--court-red); }
.next-play-conference > div > span { overflow: hidden; font-size: 13px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.next-play-conference > div > b { text-align: right; font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
/* The two lines a conference is actually read against: the guaranteed playoff
   places, then the play-in. Rows are children 2–16, after the header. */
.next-play-conference > div:nth-child(7) { border-bottom: 2px solid var(--court-rule); }
.next-play-conference > div:nth-child(11) { border-bottom: 1px dashed var(--court-steel); }

/* ---- Your call against the table --------------------------------------- */

/* The called position sits directly beside the real one, so the distance
   between the two numbers is the answer, read without any decoding. */
.next-play-conference__call {
  color: var(--court-steel);
  font: 800 13px/1 var(--court-display);
  font-variant-numeric: tabular-nums;
  text-align: center;
}
.next-play-conference__pts {
  color: var(--court-steel);
  font: 800 13px/1 var(--court-display);
  font-style: normal;
  font-variant-numeric: tabular-nums;
  text-align: right;
}
/* A scoring call is marked at the edge, not by flooding the row: thirty rows
   of fill would read as noise. The tint is saved for a row this projection
   actually moved, which is the thing worth looking at while calling games. */
.next-play-conference > div.is-scoring .next-play-conference__call { color: var(--court-ink); }
.next-play-conference > div.is-band-1 { box-shadow: inset 2px 0 0 var(--court-rule); }
.next-play-conference > div.is-band-1 .next-play-conference__pts { color: var(--court-ink); }
.next-play-conference > div.is-band-3 { box-shadow: inset 3px 0 0 var(--court-gold); }
.next-play-conference > div.is-band-3 .next-play-conference__pts { color: var(--court-ink); font-size: 14px; }

.next-play-conference > div.is-called { background: var(--court-gold-soft); }
.next-play-conference > div.is-called.is-band-3 { box-shadow: inset 3px 0 0 var(--court-gold); }

/* Which half of the record the called result moved. */
.next-play-conference b .is-gained { color: var(--court-success); }
.next-play-conference b .is-dropped { color: var(--court-danger); }

/* Position movement under a projection. */
.next-play-conference > div > strong u,
.next-play-leaders__row > strong u {
  margin-left: 4px;
  font-size: 9px;
  font-weight: 800;
  text-decoration: none;
  vertical-align: 1px;
}
.next-play-home .is-up { color: var(--court-success); }
.next-play-home .is-down { color: var(--court-danger); }

.next-play-conference__total {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 12px;
  color: var(--court-steel);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .03em;
  text-transform: uppercase;
  background: var(--court-paper-cool);
  border-top: 2px solid var(--court-rule);
}

/* ---- Calling tonight's games ------------------------------------------- */

.next-play-reset {
  display: inline-flex;
  min-height: 34px;
  align-items: center;
  gap: 6px;
  padding: 0 11px;
  color: var(--court-ink);
  font: 800 10px/1 var(--court-display);
  letter-spacing: .07em;
  text-transform: uppercase;
  background: var(--court-paper);
  border: 1px solid var(--court-rule);
  border-radius: 3px;
  cursor: pointer;
}
.next-play-reset:hover:not(:disabled) { color: #fff; background: var(--court-blue); }
.next-play-reset:disabled { color: var(--court-steel); border-color: var(--court-rule-soft); cursor: default; opacity: .55; }
.next-play-reset svg { width: 13px; height: 13px; }

/* One night at a time: a full slate is a dozen games, so the rail tabs by day
   rather than cutting the list off partway through. */
.next-play-days {
  display: flex;
  overflow-x: auto;
  scrollbar-width: none;
  border-bottom: 2px solid var(--court-rule);
}
.next-play-days::-webkit-scrollbar { display: none; }
.next-play-days__tab {
  display: flex;
  min-height: 38px;
  flex: 0 0 auto;
  align-items: center;
  gap: 5px;
  padding: 0 11px;
  color: var(--court-steel);
  font: 800 10px/1 var(--court-display);
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
  background: var(--court-paper-cool);
  border: 0;
  border-right: 1px solid var(--court-rule-soft);
  cursor: pointer;
}
.next-play-days__tab:hover { color: var(--court-ink); background: var(--court-blue-soft); }
.next-play-days__tab.is-active { color: #fff; background: var(--court-blue); }
.next-play-days__tab > span { font-size: 9px; font-weight: 700; opacity: .7; }
/* A count of calls held on a night you are not looking at. */
.next-play-days__tab > i {
  display: grid;
  min-width: 15px;
  height: 15px;
  place-items: center;
  padding: 0 3px;
  color: var(--court-ink);
  font-size: 9px;
  font-style: normal;
  font-weight: 800;
  background: var(--court-gold);
  border-radius: 8px;
}

.nba-games__matchup.is-pickable { gap: 4px; }
.nba-games__pick {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
  padding: 5px 7px;
  font: inherit;
  text-align: left;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 3px;
  cursor: pointer;
}
.nba-games__pick:hover { background: var(--court-blue-soft); border-color: var(--court-rule-soft); }
.nba-games__pick.is-picked { background: var(--court-gold-soft); border-color: var(--court-rule); }
/* The label carries the toggle's meaning to assistive tech, not a third line. */
.nba-games__pick-label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.nba-games__row.is-called { background: var(--court-paper-cool); }

.next-play-close { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 12px; align-items: center; padding: 18px 16px; background: var(--court-paper-cool); }
.next-play-close > span { display: grid; width: 40px; height: 40px; place-items: center; color: #fff; background: var(--court-red); border: 1px solid var(--court-rule); }
.next-play-close > span svg { width: 21px; height: 21px; }
.next-play-close .next-play-action { grid-column: 1 / -1; }

.next-play-nowrap { white-space: nowrap; }

/* ---- Final standings podium -------------------------------------------- */

/* Capped and centred: across a full-width card the three plinths would drift
   apart into unrelated blocks instead of reading as one podium. */
.next-play-podium__stand {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 560px;
  align-items: end;
  margin: 0 auto;
  padding: 16px 16px 0;
  list-style: none;
}

.next-play-podium__place {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: end;
}

.next-play-podium__name {
  display: flex;
  min-width: 0;
  min-height: 58px;
  flex-direction: column;
  align-items: center;
  justify-content: end;
  padding: 0 6px 8px;
  text-align: center;
}

.next-play-podium__name svg { width: 18px; height: 18px; margin-bottom: 4px; color: var(--court-gold); }
.next-play-podium__name strong {
  max-width: 100%;
  overflow: hidden;
  font: 800 clamp(14px, 1.7vw, 18px)/1.05 var(--court-display);
  letter-spacing: .02em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}
.next-play-podium__name span { margin-top: 4px; color: var(--court-steel); font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }

/* Each plinth is a stamped block; the rank is engraved into it. */
.next-play-podium__block {
  display: grid;
  width: 100%;
  max-width: 164px;
  margin: 0 auto;
  place-items: center;
  border: 2px solid var(--court-rule);
  border-bottom: 0;
  transform: scaleY(.04);
  transform-origin: bottom center;
  transition: transform 620ms cubic-bezier(.16, 1, .3, 1);
}
.next-play-podium__block b {
  font: 800 clamp(26px, 3.2vw, 34px)/1 var(--court-display);
  font-variant-numeric: tabular-nums;
  opacity: 0;
  transition: opacity 260ms ease-out 380ms;
}
.next-play-podium__stand.is-raised .next-play-podium__block { transform: scaleY(1); }
.next-play-podium__stand.is-raised .next-play-podium__block b { opacity: 1; }

.is-rank-1 .next-play-podium__block { height: 96px; color: var(--court-ink); background: var(--court-gold); }
.is-rank-2 .next-play-podium__block { height: 72px; color: var(--court-ink); background: var(--court-medal-silver); transition-delay: 90ms; }
.is-rank-3 .next-play-podium__block { height: 54px; color: var(--court-ink); background: var(--court-wood); transition-delay: 180ms; }
.is-rank-2 .next-play-podium__block b,
.is-rank-3 .next-play-podium__block b { transition-delay: 470ms; }
.is-rank-1 .next-play-podium__name strong { font-size: clamp(16px, 2vw, 21px); }

/* ---- NBA Cup honour ---------------------------------------------------- */

.next-play-cup {
  position: relative;
  display: grid;
  grid-template-columns: auto auto auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 4px 10px;
  margin-top: 14px;
  padding: 9px 14px;
  overflow: hidden;
  background: var(--court-gold-soft);
  border: 2px solid var(--court-rule);
  border-radius: 4px;
  box-shadow: inset 0 -3px 0 var(--court-gold);
}
.next-play-cup__icon { width: 15px; height: 15px; color: var(--court-red); }
.next-play-cup__mast { color: var(--court-steel); font: 800 10px/1 var(--court-body); letter-spacing: .11em; text-transform: uppercase; white-space: nowrap; }
.next-play-cup__names { font: 800 17px/1 var(--court-display); letter-spacing: .02em; text-transform: uppercase; white-space: nowrap; }
.next-play-cup__detail { min-width: 0; overflow: hidden; color: var(--court-steel); font-size: 12px; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.next-play-cup__logo { width: 26px; height: 26px; flex: 0 0 auto; -o-object-fit: contain; object-fit: contain; }

/* ---- NBA games (shared: rail, ticker, day listing) ---------------------- */

.nba-games--rail,
.nba-games--day { border: 2px solid var(--court-rule); border-radius: 4px; background: var(--court-paper); }
.nba-games__rows { display: grid; }
.nba-games__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-height: 54px;
  align-items: center;
  gap: 12px;
  padding: 9px 12px;
  border-bottom: 1px solid var(--court-rule-soft);
}
.nba-games__row:last-child { border-bottom: 0; }
.nba-games--day .nba-games__row { min-height: 66px; padding: 11px 16px; }
.nba-games__row.is-live { background: var(--court-red-soft); }

.nba-games__matchup { display: flex; min-width: 0; align-items: center; gap: 8px; }
.nba-games__matchup > i { color: var(--court-steel); font-size: 11px; font-style: normal; font-weight: 700; text-transform: uppercase; }
.nba-games__side { display: flex; min-width: 0; align-items: center; gap: 6px; }
.nba-games__side img { width: 24px; height: 24px; flex: 0 0 auto; -o-object-fit: contain; object-fit: contain; }
.nba-games__side b { font: 800 15px/1 var(--court-display); letter-spacing: .03em; }
.nba-games__side s { color: var(--court-steel); font-size: 11px; font-variant-numeric: tabular-nums; text-decoration: none; }

.nba-games__meta { display: flex; flex-direction: column; align-items: end; gap: 3px; text-align: right; white-space: nowrap; }
.nba-games__score { font: 800 16px/1 var(--court-display); font-variant-numeric: tabular-nums; }
.nba-games__meta em { color: var(--court-ink); font-size: 12px; font-style: normal; font-weight: 700; }
.nba-games__row.is-live .nba-games__meta em { color: var(--court-danger); }
.nba-games__meta small { color: var(--court-steel); font-size: 11px; }
.nba-games__meta u { color: var(--court-blue-dark); font-size: 10px; font-weight: 800; letter-spacing: .07em; text-decoration: none; text-transform: uppercase; }

/* Ticker: one continuous ruled strip, the way a scores crawl reads. */
.nba-games--ticker {
  overflow: hidden;
  border-block: 2px solid var(--court-rule);
  background: var(--court-carbon);
}
.nba-games__marquee { display: flex; width: -moz-max-content; width: max-content; animation: nba-games-crawl 64s linear infinite; }
.nba-games__track { display: flex; align-items: center; }
.nba-games--ticker:hover .nba-games__marquee { animation-play-state: paused; }
.nba-games__tick {
  display: flex;
  min-height: 44px;
  align-items: center;
  gap: 7px;
  padding: 0 18px;
  color: #fff;
  border-right: 1px solid rgb(255 255 255 / 22%);
}
.nba-games__tick img { width: 20px; height: 20px; -o-object-fit: contain; object-fit: contain; }
.nba-games__tick b { font: 800 14px/1 var(--court-display); letter-spacing: .04em; }
.nba-games__tick s { font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; text-decoration: none; }
.nba-games__tick i { color: rgb(255 255 255 / 62%); font-size: 11px; font-style: normal; }
.nba-games__tick em { margin-left: 4px; color: rgb(255 255 255 / 72%); font-size: 10px; font-style: normal; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.nba-games__tick.is-live em { color: var(--court-gold); }

@keyframes nba-games-crawl {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
  .nba-games__marquee { animation: none; }
  .nba-games--ticker { overflow-x: auto; }
}

@media (min-width: 560px) {
  .next-play-hero__actions { display: flex; }
  .next-play-hero__actions .next-play-action { min-width: 180px; }
  .next-play-ledger__next { grid-template-columns: minmax(0, 1fr) auto; }
  .next-play-ledger__next .next-play-action { min-width: 176px; }
  .next-play-close { grid-template-columns: 42px minmax(0, 1fr) auto; }
  .next-play-close .next-play-action { grid-column: auto; min-width: 190px; }
}

@media (min-width: 768px) {
  .next-play-home { padding: 22px var(--court-gutter) 56px; }
  .next-play-hero { grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); }
  .next-play-ledger { border-top: 0; border-left: 2px solid var(--court-rule); }
  .next-play-ledger--player .next-play-player-grid { min-height: 0; flex: 1; }
  .next-play-ledger--player .next-play-player-grid > div { min-height: 0; }
  .next-play-ledger__mast { padding-right: 18px; padding-left: 18px; }
  /* Fixtures and pool table share a narrow left rail; the standings take the
     rest and stay level with the games that change them. */
  .next-play-workbench {
    grid-template-columns: minmax(286px, .82fr) minmax(0, 2.18fr);
    grid-template-areas: "games table" "pool table";
    align-items: start;
  }
  .next-play-workbench > .nba-games { grid-area: games; }
  .next-play-workbench > .next-play-pulse { grid-area: table; }
  .next-play-workbench > .next-play-leaders { grid-area: pool; }
  /* Nothing left to call: the pool table takes the rail on its own. */
  .next-play-workbench.is-settled { grid-template-areas: "pool table"; }
  .next-play-workbench.is-single { grid-template-columns: minmax(0, 1fr); grid-template-areas: "table"; }
  .next-play-pulse__grid { grid-template-columns: 1fr 1fr; }
  .next-play-conference:first-child { border-right: 2px solid var(--court-rule); border-bottom: 0; }
}

@media (min-width: 1180px) {
  .next-play-hero { grid-template-columns: minmax(0, 1.14fr) minmax(470px, .86fr); }
  .next-play-hero h1 { max-width: 15ch; font-size: clamp(56px, 5vw, 76px); }
  .next-play-player-grid > div { border-right: 1px solid var(--court-rule); }
  .next-play-player-grid > div:nth-child(even) { border-right: 0; }
  .next-play-player-grid strong { font-size: 38px; }
  .next-play-workbench { grid-template-columns: minmax(320px, .74fr) minmax(0, 2.26fr); }
}

/* Signed-in phones open on the task and its status, not on a full-bleed
   headline: the hero compresses so the ledger clears the fold. */
@media (max-width: 767px) {
  .next-play-home:not(.is-guest) .next-play-hero__copy { padding: 16px 14px 18px; }
  .next-play-home:not(.is-guest) .next-play-hero h1 { max-width: 12ch; font-size: clamp(34px, 9.6vw, 44px); }
  .next-play-home:not(.is-guest) .next-play-hero__standfirst { margin-top: 10px; font-size: 14px; line-height: 1.4; }
  .next-play-home:not(.is-guest) .next-play-hero__actions { margin-top: 14px; }
  .next-play-home:not(.is-guest) .next-play-hero__actions .is-secondary { display: none; }
  .next-play-home:not(.is-guest) .next-play-hero__stamp { margin-bottom: 12px; }
  .next-play-home:not(.is-guest) .next-play-player-grid > div { min-height: 82px; padding: 10px; }
  .next-play-home:not(.is-guest) .next-play-player-grid strong { margin-top: 4px; font-size: 26px; }
  .next-play-home:not(.is-guest) .next-play-player-grid .next-play-player-grid__status,
  .next-play-home:not(.is-guest) .next-play-player-grid .next-play-player-grid__deadline { font-size: 16px; }
  .next-play-home:not(.is-guest) .next-play-player-grid small { margin-top: 4px; font-size: 10px; }
  .next-play-home:not(.is-guest) .next-play-ledger__next { padding: 12px; }
  .next-play-checklist__row { min-height: 48px; }
}

@media (prefers-reduced-motion: reduce) {
  .next-play-home * { scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .next-play-podium__block { transform: scaleY(1); }
  .next-play-podium__block b { opacity: 1; }
}

/* Courtside Album — Advanced Board (fold-out comparison + What-If)
 *
 * This file replaces the old `.court-detail-*` override layer, which painted a
 * Courtside costume over generic Tailwind markup using `[class*="bg-sky"]`
 * attribute hacks and ~90 `!important` declarations. The components in
 * features/leaderboard now carry these classes natively, so nothing here needs
 * to out-specify a utility class.
 *
 * Structure of the surface, top to bottom:
 *   .court-adv                page shell, fixed height, three bands
 *     .court-adv-masthead     identity, section tabs, workspace tools
 *     .court-adv-band         top-3 + you score strip, What-If control
 *     .court-adv-note         written What-If guidance (simulation only)
 *     .court-adv-work         the ledger; owns the only vertical scroll
 */

:root {
  --court-success-soft: #e7f2ea;
  --court-warning-soft: #fbf1de;
  --court-danger-soft: #fceceb;
  --court-adv-masthead-h: 56px;
  --court-adv-tabs-h: 46px;
  --court-adv-band-h: 62px;
  --court-adv-control-h: 36px;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --court-success-soft: #12301f;
    --court-warning-soft: #362a0e;
    --court-danger-soft: #3a1a17;
  }
}

:root[data-theme="dark"] {
  --court-success-soft: #12301f;
  --court-warning-soft: #362a0e;
  --court-danger-soft: #3a1a17;
}

@media (min-width: 768px) {
  :root {
    --court-adv-masthead-h: 60px;
  }

}

/* ── Page shell ─────────────────────────────────────────────────────────────
   The board is a workbench, not a document: chrome is fixed and the ledger
   owns the only vertical scroll, so the score band stays readable however deep
   into the standings you are. */

/* Below 768px the persistent bottom navigation owns the thumb zone, so the
   workbench stops above it rather than scrolling its last rows underneath. */
.court-adv {
  --court-adv-reserved-bottom: var(--court-nav-height);

  display: flex;
  height: calc(100dvh - var(--court-topbar-height) - var(--court-adv-reserved-bottom));
  flex-direction: column;
  overflow: hidden;
  background: var(--court-paper);
  color: var(--court-ink);
  font-family: var(--court-text);
  -webkit-tap-highlight-color: transparent;
}

/* The desktop rail replaces the bottom bar, so the workbench reclaims that
   height. Declared after the shell so it wins on equal specificity. */
@media (min-width: 768px) {
  .court-adv {
    --court-adv-reserved-bottom: 0px;
  }

  /* The season control keeps the album's 48px touch frame on a phone; on a
     pointer device it joins the rest of the control row. */
  .court-adv-masthead .court-select__trigger {
    min-height: var(--court-adv-control-h);
    padding-top: 0;
    padding-bottom: 0;
  }
}

.court-adv ::-moz-selection {
  background: var(--court-gold-soft);
  color: var(--court-ink);
}

.court-adv ::selection {
  background: var(--court-gold-soft);
  color: var(--court-ink);
}

.court-adv :focus-visible {
  outline: 3px solid var(--court-gold);
  outline-offset: 3px;
}

.court-adv-state {
  display: flex;
  height: calc(100dvh - var(--court-topbar-height));
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 24px;
  background: var(--court-paper);
  text-align: center;
}

.court-adv-state strong {
  font: 800 26px/1 var(--court-display);
  letter-spacing: .02em;
  text-transform: uppercase;
}

.court-adv-state span {
  max-width: 44ch;
  color: var(--court-steel);
  font-size: 14px;
  line-height: 1.45;
}

.court-adv-state--error strong {
  color: var(--court-danger);
}

/* ── Masthead ─────────────────────────────────────────────────────────────── */

.court-adv-masthead {
  display: flex;
  min-height: var(--court-adv-masthead-h);
  flex: none;
  align-items: center;
  gap: 8px;
  padding: 0 var(--court-gutter);
  border-bottom: 2px solid var(--court-rule);
  background: var(--court-paper);
}

.court-adv-back {
  display: grid;
  width: var(--court-adv-control-h);
  height: var(--court-adv-control-h);
  flex: none;
  place-items: center;
  color: var(--court-ink);
  border: 1px solid var(--court-rule);
  border-radius: 4px;
  transition: background-color 160ms ease-out;
}

.court-adv-back:hover {
  background: var(--court-blue-soft);
}

.court-adv-title {
  margin: 0;
  overflow: hidden;
  color: var(--court-ink);
  font: 800 22px/1 var(--court-display);
  letter-spacing: .02em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.court-adv-masthead__end {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

/* Search joins the tools rather than floating as its own rounded field, and
   matches their height exactly so the masthead reads as one row of controls. */
.court-adv-search {
  display: flex;
  height: var(--court-adv-control-h);
  min-width: 0;
  align-items: center;
  gap: 6px;
  padding: 0 10px;
  color: var(--court-muted);
  border: 1px solid var(--court-rule);
  border-radius: 4px;
}

/* The album gives every page-level input a 48px frame. Inside this control row
   the field is the frame, so the input itself carries none of it. */
.court-adv-search input:not([type="checkbox"]):not([type="radio"]) {
  width: 132px;
  height: 100%;
  min-height: 0;
  padding: 0;
  color: var(--court-ink);
  font: 400 13px var(--court-text);
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: none;
}

.court-adv-search input::-moz-placeholder {
  color: var(--court-muted);
}

.court-adv-search input::placeholder {
  color: var(--court-muted);
}

/* Mobile keeps section choice and the ledger tools on one joined row. */
.court-adv-mobilebar {
  display: flex;
  min-height: var(--court-adv-tabs-h);
  flex: none;
  align-items: center;
  gap: 8px;
  padding: 0 var(--court-gutter);
  border-bottom: 2px solid var(--court-rule);
  background: var(--court-paper);
}

.court-adv-mobilebar > *:first-child {
  min-width: 0;
  flex: 1;
}

/* ── Segmented ledgers (section tabs, tool cluster, conference switch) ─────── */

.court-seg {
  display: flex;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid var(--court-rule);
  border-radius: 4px;
}

.court-seg > * + * {
  border-left: 1px solid var(--court-rule);
}

.court-seg--fill {
  width: 100%;
}

.court-seg--fill > .court-seg__cell {
  min-width: 0;
  flex: 1;
  padding: 0 4px;
}

.court-seg__cell {
  display: inline-flex;
  min-height: calc(var(--court-adv-control-h) - 2px);
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 0 12px;
  color: var(--court-steel);
  font: 800 11px/1 var(--court-display);
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
  background: var(--court-paper);
  transition: background-color 160ms ease-out, color 160ms ease-out;
}

.court-seg__cell:hover:not(.is-active) {
  color: var(--court-ink);
  background: var(--court-blue-soft);
}

.court-seg__cell.is-active {
  color: #fff;
  background: var(--court-blue);
}

.court-seg__cell.is-active:hover {
  background: var(--court-blue-dark);
}

.court-seg__count {
  display: inline-grid;
  min-width: 17px;
  height: 17px;
  place-items: center;
  padding: 0 3px;
  color: var(--court-paper);
  font-size: 10px;
  background: var(--court-ink);
  border-radius: 1px;
}

.court-seg__cell.is-active .court-seg__count {
  color: var(--court-blue);
  background: #fff;
}

/* ── Sort menu ────────────────────────────────────────────────────────────── */

.court-adv-menu {
  position: relative;
}

.court-adv-menu__list {
  position: absolute;
  z-index: 60;
  top: calc(100% + 4px);
  right: 0;
  min-width: 176px;
  padding: 0;
  background: var(--court-paper);
  border: 2px solid var(--court-rule);
  border-radius: 3px;
  box-shadow: 4px 4px 0 var(--court-rule);
}

.court-adv-menu__option {
  display: flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 0 12px;
  color: var(--court-ink);
  font: 800 11px/1 var(--court-display);
  letter-spacing: .08em;
  text-align: left;
  text-transform: uppercase;
  border-bottom: 1px solid var(--court-rule-soft);
}

.court-adv-menu__option:last-child {
  border-bottom: 0;
}

.court-adv-menu__option:hover {
  background: var(--court-blue-soft);
}

.court-adv-menu__option.is-active {
  color: #fff;
  background: var(--court-blue);
}

/* ── Score band — top 3 + you, always in view ──────────────────────────────── */

/* The band is sheet-wash so that the run-off past the last leader reads as the
   edge of the ledger rather than a hole in the page. */
.court-adv-band {
  display: flex;
  min-height: var(--court-adv-band-h);
  flex: none;
  align-items: stretch;
  border-bottom: 2px solid var(--court-rule);
  background: var(--court-sheet-wash);
  font-family: var(--court-display);
}

.court-adv-band.is-simulating {
  box-shadow: inset 0 -5px 0 var(--court-gold);
}

.court-adv-band__scroll {
  display: flex;
  min-width: 0;
  flex: 1;
  align-items: stretch;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.court-adv-band__scroll::-webkit-scrollbar {
  display: none;
}

.court-adv-entry {
  display: flex;
  min-width: 156px;
  flex: none;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  text-align: left;
  background: var(--court-paper);
  border-right: 1px solid var(--court-rule-soft);
}

.court-adv-entry__rank {
  display: grid;
  width: 28px;
  height: 28px;
  flex: none;
  place-items: center;
  color: var(--court-ink);
  font: 800 14px/1 var(--court-display);
  border: 1px solid var(--court-rule);
  border-radius: 1px;
}

.court-adv-entry__rank.is-leader {
  color: var(--court-carbon);
  background: var(--court-gold);
  border-color: var(--court-gold);
}

.court-adv-entry__body {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 3px;
}

.court-adv-entry__name {
  overflow: hidden;
  max-width: 108px;
  color: var(--court-steel);
  font: 800 10px/1 var(--court-display);
  letter-spacing: .08em;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.court-adv-entry__score {
  display: flex;
  align-items: baseline;
  gap: 5px;
  color: var(--court-ink);
  font: 800 17px/1 var(--court-display);
  font-variant-numeric: tabular-nums;
}

.court-adv-entry__score small {
  color: var(--court-muted);
  font: 800 9px/1 var(--court-display);
  letter-spacing: .1em;
}

/* The locked share of a total, drawn in the same language the tickets use: the
   solid run is banked, the dashed remainder is still in play. The exact figures
   stay available on hover and to screen readers rather than repeating as text
   under every one of twenty-odd entries. */
.court-adv-entry__banked {
  display: block;
  width: 100%;
  height: 3px;
  margin-top: 1px;
  background:
    linear-gradient(var(--court-steel), var(--court-steel)) left center / var(--locked-share) 3px no-repeat,
    repeating-linear-gradient(90deg, var(--court-rule-soft) 0 2px, transparent 2px 5px) left center / 100% 1px no-repeat;
}

/* You: identity is league blue, not gold. In this competition gold means
   winning — it belongs to the leader's rank stamp and to active simulation, so
   marking your own row with it would read as a standing you have not earned.
   The cell is a button: it pins you to the front of the comparison. */
.court-adv-entry--me {
  position: sticky;
  left: 0;
  z-index: 2;
  background: var(--court-blue-soft);
  border-right: 2px solid var(--court-rule);
  box-shadow: inset 0 -5px 0 var(--court-blue);
}

.court-adv-entry--me .court-adv-entry__name {
  color: var(--court-blue);
}

.court-adv-entry--me .court-adv-entry__rank {
  color: #fff;
  background: var(--court-blue);
  border-color: var(--court-blue);
}

.court-adv-entry__pin {
  display: grid;
  width: 20px;
  height: 20px;
  flex: none;
  place-items: center;
  color: var(--court-muted);
  border: 1px solid transparent;
  border-radius: 1px;
}

.court-adv-entry--me[aria-pressed="true"] .court-adv-entry__pin {
  color: #fff;
  background: var(--court-blue);
  border-color: var(--court-blue);
}

.court-adv-delta {
  font: 800 11px/1 var(--court-display);
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}

.court-adv-delta.is-up {
  color: var(--court-success);
}

.court-adv-delta.is-down {
  color: var(--court-danger);
}

/* What-If sits on the band because it changes the numbers on the band. */
.court-adv-band__whatif {
  display: flex;
  flex: none;
  align-items: stretch;
  border-left: 2px solid var(--court-rule);
}

.court-adv-whatif {
  display: inline-flex;
  min-width: 44px;
  align-items: center;
  justify-content: center;
  gap: 7px;
  padding: 0 14px;
  color: var(--court-ink);
  font: 800 11px/1.05 var(--court-display);
  letter-spacing: .08em;
  text-transform: uppercase;
  background: var(--court-paper);
  transition: background-color 160ms ease-out;
}

.court-adv-whatif:hover {
  background: var(--court-blue-soft);
}

.court-adv-whatif.is-on {
  color: var(--court-carbon);
  background: var(--court-gold);
}

.court-adv-whatif.is-on:hover {
  background: var(--court-gold);
  filter: brightness(.95);
}

.court-adv-whatif--reset {
  border-left: 1px solid var(--court-rule);
}

/* ── What-If guidance, attached rather than floating ──────────────────────── */

.court-adv-note {
  display: flex;
  flex: none;
  align-items: center;
  gap: 8px;
  padding: 7px var(--court-gutter);
  color: var(--court-ink);
  font-size: 12px;
  line-height: 1.35;
  background: var(--court-gold-soft);
  border-bottom: 2px solid var(--court-rule);
}

.court-adv-note svg {
  width: 14px;
  height: 14px;
  flex: none;
}

.court-adv-note b {
  font: 800 11px/1 var(--court-display);
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* ── Workspace ────────────────────────────────────────────────────────────── */

.court-adv-work {
  min-height: 0;
  flex: 1;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  background: var(--court-paper);
  -webkit-overflow-scrolling: touch;
}

.court-adv-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 56px 24px;
  text-align: center;
}

.court-adv-empty strong {
  font: 800 22px/1 var(--court-display);
  letter-spacing: .02em;
  text-transform: uppercase;
}

.court-adv-empty span {
  max-width: 40ch;
  color: var(--court-steel);
  font-size: 13px;
  line-height: 1.45;
}

.court-adv-empty button {
  min-height: 44px;
  margin-top: 4px;
  padding: 0 16px;
  color: #fff;
  font: 800 11px/1 var(--court-display);
  letter-spacing: .08em;
  text-transform: uppercase;
  background: var(--court-blue);
  border: 1px solid var(--court-rule);
  border-radius: 4px;
}

/* ── Ledger primitives shared by both orientations ────────────────────────── */

.court-ledger-head {
  position: sticky;
  z-index: 30;
  top: 0;
  display: flex;
  color: #fff;
  background: var(--court-carbon);
}

.court-ledger-head__label {
  display: flex;
  align-items: center;
  color: #fff;
  font: 800 10px/1 var(--court-display);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.court-ledger-scroll {
  min-width: 0;
  flex: 1;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}

.court-ledger-scroll::-webkit-scrollbar {
  display: none;
}

.court-ledger-fixed {
  flex: none;
  background: var(--court-paper);
  border-right: 2px solid var(--court-rule);
}

/* Conference binding: red West, blue East — the album's only routine use of
   league colour as a wayfinding cue. */
.court-conf-head {
  position: sticky;
  z-index: 20;
  display: flex;
  min-height: 34px;
  align-items: center;
  gap: 8px;
  padding: 0 14px;
  color: var(--court-ink);
  font: 800 11px/1 var(--court-display);
  letter-spacing: .12em;
  text-transform: uppercase;
  background: var(--court-sheet-wash);
  border-bottom: 1px solid var(--court-rule);
}

.court-conf-head::before {
  width: 3px;
  height: 14px;
  flex: none;
  background: var(--court-blue);
  content: "";
}

.court-conf-head--west::before {
  background: var(--court-red);
}

.court-conf-head__hint {
  margin-left: auto;
  color: var(--court-muted);
  font: 800 9px/1 var(--court-display);
  letter-spacing: .1em;
}

/* ── Score tickets ────────────────────────────────────────────────────────── */

.court-ticket {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--court-muted);
  font-family: var(--court-text);
  font-variant-numeric: tabular-nums;
  text-align: center;
  background: var(--court-paper);
  border: 1px solid var(--court-rule-soft);
  border-radius: 1px;
  transition: background-color 160ms ease-out, border-color 160ms ease-out;
}

.court-ticket.is-hit {
  color: var(--court-success);
  background: var(--court-success-soft);
  border-color: var(--court-success);
}

.court-ticket.is-near {
  color: var(--court-warning);
  background: var(--court-warning-soft);
  border-color: var(--court-warning);
}

.court-ticket.is-miss {
  color: var(--court-danger);
  background: var(--court-danger-soft);
  border-color: var(--court-danger);
}

.court-ticket.is-open {
  color: var(--court-muted);
  background: var(--court-paper);
  border-style: dotted;
}

/* Settlement, carried in the border rather than a second colour system: a solid
   ticket has banked its points, a dashed one is scored on where things stand
   today and can still move. */
.court-ticket.is-settled {
  border-style: solid;
}

.court-ticket.is-inplay {
  border-style: dashed;
}

.court-ticket.is-empty {
  color: var(--court-medal-silver);
  background: var(--court-sheet-wash);
  border-color: transparent;
}

.court-ticket.is-live {
  cursor: pointer;
}

.court-ticket.is-live:hover {
  border-color: var(--court-rule);
}

/* A simulated call keeps its result colour and gains a written gold binding, so
   "I changed this" never depends on hue alone. */
.court-ticket.is-simulated {
  box-shadow: inset 3px 0 0 var(--court-gold);
}

.court-pos-ticket {
  width: 32px;
  height: 32px;
  font-size: 12px;
  font-weight: 700;
}

.court-answer-ticket {
  display: -webkit-box;
  width: 100%;
  min-height: 34px;
  padding: 5px 7px;
  overflow: hidden;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.15;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.court-answer-ticket__figure {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  justify-content: center;
}

/* ── Legend — replaces the hover-only points badge ────────────────────────── */

.court-adv-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 16px;
  padding: 10px var(--court-gutter) 28px;
  color: var(--court-steel);
  font-size: 11px;
  border-top: 1px solid var(--court-rule-soft);
}

.court-adv-legend dt {
  display: inline-flex;
  min-width: 26px;
  height: 20px;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
  font: 700 10px/1 var(--court-text);
  border: 1px solid;
  border-radius: 1px;
}

.court-adv-legend > div {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.court-adv-legend dd {
  margin: 0;
}

.court-adv-legend__rule {
  width: 1px;
  height: 18px;
  background: var(--court-rule-soft);
}

/* ── Participant column head (desktop) ────────────────────────────────────── */

.court-adv-col {
  position: relative;
  display: flex;
  flex: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 6px 6px;
  border-right: 1px solid rgb(255 255 255 / 18%);
  will-change: transform;
}

.court-adv-col__name {
  display: flex;
  max-width: 100%;
  align-items: center;
  gap: 4px;
  overflow: hidden;
  color: #fff;
  font: 800 11px/1.1 var(--court-display);
  letter-spacing: .05em;
  text-align: center;
  text-transform: uppercase;
}

.court-adv-col__name > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.court-adv-col__score {
  display: flex;
  align-items: baseline;
  gap: 4px;
  color: #fff;
  font: 800 15px/1 var(--court-display);
  font-variant-numeric: tabular-nums;
}

.court-adv-pin {
  display: grid;
  width: 20px;
  height: 20px;
  flex: none;
  place-items: center;
  color: rgb(255 255 255 / 45%);
  border-radius: 1px;
  transition: color 160ms ease-out, background-color 160ms ease-out;
}

.court-adv-pin:hover {
  color: #fff;
}

.court-adv-pin.is-pinned {
  color: #fff;
  background: var(--court-blue);
}

.court-adv-drop:hover {
  color: #fff;
  background: var(--court-red);
}

/* A pinned participant holds the left edge of the scrolling pane, so their
   column stays beside every team or question you swipe to. */
.court-adv-col.is-sticky,
.court-adv-cell.is-sticky {
  position: sticky;
  z-index: 6;
  background: inherit;
}

.court-adv-col.is-sticky {
  background: var(--court-carbon);
}

.court-adv-col.is-sticky::after,
.court-adv-cell.is-sticky::after {
  position: absolute;
  inset: 0 0 0 auto;
  width: 2px;
  background: var(--court-blue);
  content: "";
}

/* ── Desktop ledger rows ──────────────────────────────────────────────────── */

.court-adv-desktop {
  display: none;
}

@media (min-width: 768px) {
  .court-adv-desktop {
    display: block;
  }
}

.court-adv-row {
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid var(--court-rule-soft);
  background: var(--court-paper);
}

.court-adv-row:hover {
  background: var(--court-sheet-wash);
}

.court-adv-row.is-moved,
.court-adv-row.is-moved:hover {
  background: var(--court-gold-soft);
}

.court-adv-team {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
}

.court-adv-team img {
  width: 22px;
  height: 22px;
  flex: none;
  -o-object-fit: contain;
     object-fit: contain;
}

.court-adv-team__body {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
}

.court-adv-team__name {
  min-width: 0;
  overflow: hidden;
  font-size: 13px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* The record reads under the team name: one number per line, so it never sits
   shoulder to shoulder with the rank digit. It answers how much room a seed has
   left, which is what decides whether a What-If move is plausible — so unlike
   everything else on the row, it stays put during a scenario. */
.court-adv-record {
  color: var(--court-medal-silver);
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  letter-spacing: .02em;
}

/* A seed with no room left reads a shade firmer than one still in play. */
.court-adv-record.is-settled {
  color: var(--court-steel);
}

.court-adv-row:hover .court-adv-record {
  color: var(--court-steel);
}

.court-adv-grip {
  display: grid;
  width: 26px;
  flex: none;
  place-items: center;
  color: var(--court-medal-silver);
}

.court-adv-row.is-moved .court-adv-grip {
  color: var(--court-warning);
}

.court-adv-rank {
  display: flex;
  width: 62px;
  flex: none;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: var(--court-steel);
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}

.court-adv-rank del {
  color: var(--court-medal-silver);
  font-size: 11px;
  font-weight: 400;
}

.court-adv-rank strong {
  color: var(--court-ink);
}

.court-adv-question {
  display: flex;
  min-width: 0;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  padding: 8px 14px;
}

.court-adv-question__text {
  display: -webkit-box;
  overflow: hidden;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.25;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.court-adv-question svg {
  display: inline;
  width: 13px;
  height: 13px;
  margin-left: 4px;
  color: var(--court-warning);
  vertical-align: -2px;
}

/* ── Answer key ───────────────────────────────────────────────────────────────
   What actually happened, kept beside the question in the fixed column. A
   result nobody picked has no cell anywhere else on the board. */

.court-adv-key {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 12px;
}

.court-adv-key__row {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: 5px;
}

.court-adv-key__mark {
  flex: none;
  padding: 1px 4px;
  font: 800 9px/1.4 var(--court-display);
  letter-spacing: .08em;
  text-transform: uppercase;
  border-radius: 1px;
}

.court-adv-key__mark.is-hit {
  color: var(--court-success);
  background: var(--court-success-soft);
}

.court-adv-key__mark.is-near {
  color: var(--court-warning);
  background: var(--court-warning-soft);
}

.court-adv-key__name {
  overflow: hidden;
  color: var(--court-steel);
  font-size: 11px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* In the mobile column head the key sits on carbon stock. */
.court-adv-key--compact {
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
}

.court-adv-key--compact .court-adv-key__name {
  color: rgb(255 255 255 / 82%);
  font-size: 10px;
}

.court-adv-cell {
  position: relative;
  display: flex;
  flex: none;
  align-items: center;
  justify-content: center;
  padding: 0 8px;
  border-right: 1px solid var(--court-rule-soft);
  will-change: transform;
}

/* Exact points on hover. The legend below the ledger carries the same meaning
   in writing, so this reveals detail for a pointer without being the only way
   to read a score. */
.court-adv-points {
  position: absolute;
  top: 3px;
  right: 7px;
  padding: 1px 4px;
  color: #fff;
  font: 700 10px/1.3 var(--court-text);
  font-variant-numeric: tabular-nums;
  background: var(--court-medal-silver);
  border-radius: 1px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 140ms ease-out;
}

.court-adv-cell:hover .court-adv-points {
  opacity: 1;
}

.court-adv-points.is-hit {
  background: var(--court-success);
}

.court-adv-points.is-near {
  background: var(--court-warning);
}

.court-adv-points.is-miss {
  background: var(--court-danger);
}

/* Drag feedback: a gold insertion rule, per the album's simulation vocabulary. */
.court-drop-ledger.is-dragging-over {
  box-shadow: inset 0 0 0 3px var(--court-gold);
}

.court-adv-row.is-dragging,
.court-adv-colgrip.is-dragging {
  background: var(--court-gold-soft);
  outline: 3px solid var(--court-gold);
  outline-offset: -3px;
}

.court-adv [data-rbd-placeholder-context-id] {
  background: var(--court-gold-soft);
  opacity: 1;
}

.court-adv-desktop [data-rbd-placeholder-context-id] {
  background: linear-gradient(180deg, var(--court-gold) 0 5px, var(--court-gold-soft) 5px 100%);
}

.court-adv-mobile [data-rbd-placeholder-context-id] {
  background: linear-gradient(90deg, var(--court-gold) 0 5px, var(--court-gold-soft) 5px 100%);
}

.court-adv [data-rbd-draggable-context-id] {
  touch-action: none;
}

/* ── Mobile transposition ─────────────────────────────────────────────────── */

.court-adv-mobile {
  display: block;
}

@media (min-width: 768px) {
  .court-adv-mobile {
    display: none;
  }
}

/* Conference switch replaces two stacked collapsibles: one conference at a
   time keeps 15 swipable team columns in a single vertical field. */
.court-adv-switch {
  position: sticky;
  z-index: 34;
  top: 0;
  display: flex;
  background: var(--court-paper);
  border-bottom: 1px solid var(--court-rule);
}

.court-adv-switch button {
  min-height: 44px;
  flex: 1;
  color: var(--court-steel);
  font: 800 11px/1 var(--court-display);
  letter-spacing: .1em;
  text-transform: uppercase;
  background: var(--court-paper);
  border-right: 1px solid var(--court-rule-soft);
}

.court-adv-switch button:last-child {
  border-right: 0;
}

.court-adv-switch button.is-active {
  color: #fff;
  background: var(--court-blue);
}

.court-adv-switch button.is-active[data-conf="West"] {
  background: var(--court-red);
}

.court-adv-mrow {
  display: flex;
  align-items: stretch;
  min-height: 52px;
  border-bottom: 1px solid var(--court-rule-soft);
  background: var(--court-paper);
  will-change: transform;
}

/* The fixed zone carries rank, name and the score that What-If moves — the
   three things worth keeping on screen while team columns swipe past. */
.court-adv-mfixed {
  position: sticky;
  left: 0;
  z-index: 10;
  display: flex;
  width: 132px;
  flex: none;
  align-items: center;
  gap: 7px;
  padding: 6px 8px;
  background: var(--court-paper);
  border-right: 2px solid var(--court-rule);
}

/* Identity is blue here too — gold stays reserved for winning and simulation. */
.court-adv-mrow.is-me .court-adv-mfixed {
  background: var(--court-blue-soft);
  box-shadow: inset 4px 0 0 var(--court-blue);
}

.court-adv-mfixed__rank {
  display: grid;
  width: 22px;
  height: 22px;
  flex: none;
  place-items: center;
  color: var(--court-steel);
  font: 800 12px/1 var(--court-display);
  border: 1px solid var(--court-rule-soft);
  border-radius: 1px;
}

.court-adv-mrow.is-me .court-adv-mfixed__rank {
  color: #fff;
  background: var(--court-blue);
  border-color: var(--court-blue);
}

.court-adv-mfixed__body {
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
  gap: 2px;
}

.court-adv-mfixed__name {
  overflow: hidden;
  color: var(--court-ink);
  font-size: 12px;
  font-weight: 700;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.court-adv-mfixed__score {
  display: flex;
  align-items: baseline;
  gap: 4px;
  color: var(--court-blue);
  font: 800 14px/1 var(--court-display);
  font-variant-numeric: tabular-nums;
}

.court-adv-mfixed__score small {
  color: var(--court-muted);
  font: 800 9px/1 var(--court-display);
  letter-spacing: .08em;
}

.court-adv-mhead {
  position: sticky;
  z-index: 30;
  top: 44px;
  display: flex;
  color: #fff;
  background: var(--court-carbon);
}

.court-adv-mhead--flush {
  top: 0;
}

.court-adv-mhead__fixed {
  position: sticky;
  left: 0;
  z-index: 12;
  display: flex;
  width: 132px;
  flex: none;
  align-items: center;
  padding: 0 8px;
  color: #fff;
  font: 800 10px/1 var(--court-display);
  letter-spacing: .1em;
  text-transform: uppercase;
  background: var(--court-carbon);
  border-right: 2px solid var(--court-paper);
}

.court-adv-mteam {
  display: flex;
  width: 48px;
  flex: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 7px 2px;
  background: var(--court-carbon);
  border-right: 1px solid rgb(255 255 255 / 16%);
}

.court-adv-mteam img {
  width: 22px;
  height: 22px;
  -o-object-fit: contain;
     object-fit: contain;
}

.court-adv-mteam__rank {
  display: flex;
  align-items: center;
  gap: 2px;
  color: rgb(255 255 255 / 72%);
  font-size: 10px;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}

.court-adv-mteam__rank del {
  color: rgb(255 255 255 / 45%);
  font-weight: 400;
}

.court-adv-mteam__rank strong {
  color: var(--court-gold);
}

.court-adv-mteam.is-moved {
  background: var(--court-warning);
}

.court-adv-mq {
  display: flex;
  width: 152px;
  flex: none;
  flex-direction: column;
  gap: 4px;
  padding: 8px;
  background: var(--court-carbon);
  border-right: 1px solid rgb(255 255 255 / 16%);
}

.court-adv-mq__index {
  align-self: flex-start;
  padding: 2px 5px;
  color: var(--court-carbon);
  font: 800 9px/1 var(--court-display);
  letter-spacing: .08em;
  background: var(--court-paper);
  border-radius: 1px;
}

.court-adv-mq__text {
  display: -webkit-box;
  overflow: hidden;
  color: #fff;
  font-size: 11px;
  font-weight: 600;
  line-height: 1.2;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.court-adv-mcell {
  display: flex;
  width: 48px;
  flex: none;
  align-items: center;
  justify-content: center;
  padding: 5px 3px;
  border-right: 1px solid var(--court-rule-soft);
}

.court-adv-mcell.is-moved {
  background: var(--court-gold-soft);
}

.court-adv-mcell--wide {
  width: 152px;
  padding: 5px 6px;
}

.court-adv-mcell .court-pos-ticket {
  width: 30px;
  height: 30px;
}

/* ── Roster sheet additions ───────────────────────────────────────────────── */

.court-roster-scope {
  display: flex;
  border-bottom: 2px solid var(--court-rule);
}

.court-roster-scope button {
  min-height: 44px;
  flex: 1;
  color: var(--court-steel);
  font: 800 11px/1 var(--court-display);
  letter-spacing: .08em;
  text-transform: uppercase;
  background: var(--court-paper);
  border-right: 1px solid var(--court-rule-soft);
}

.court-roster-scope button:last-child {
  border-right: 0;
}

.court-roster-scope button.is-active {
  color: #fff;
  background: var(--court-blue);
}

@media (max-width: 767px) {
  /* The season control is a filter, not the page identity — it yields width
     to the title rather than taking a third of the masthead. */
  .court-adv-masthead .court-select {
    max-width: 104px;
  }

  .court-adv-entry {
    min-width: 138px;
    padding: 8px 10px;
  }

  .court-adv-entry__name {
    max-width: 100px;
  }
}

.court-roster-scope__note {
  padding: 8px 18px;
  color: var(--court-steel);
  font-size: 12px;
  line-height: 1.4;
  background: var(--court-sheet-wash);
  border-bottom: 1px solid var(--court-rule-soft);
}

/* Over/under prop choice control.
 *
 * The only component that survived the pre-Courtside palette. Rendered by
 * features/submissions/QuestionCard.jsx on the picks page. Depends on the
 * legacy ramp in tokens.css. */

.overunder-scale {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: stretch;
  border-radius: 1.2rem;
  border: 1px solid rgba(148, 163, 184, 0.22);
  background: linear-gradient(135deg, rgba(226, 232, 240, 0.45), rgba(255, 255, 255, 0.92));
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);
  overflow: hidden;
}

.overunder-scale::after {
  content: '';
  position: absolute;
  inset: 0.2rem;
  border-radius: 1.05rem;
  background: radial-gradient(circle at 50% 20%, rgba(148, 163, 184, 0.2), transparent 60%);
  opacity: 0.6;
  pointer-events: none;
  transition: opacity 220ms ease;
}

.overunder-scale--disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.overunder-choice {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.25rem;
  z-index: 1;
  padding: 0.8rem 1.05rem;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--nba-slate-600);
  transition: color 160ms ease, transform 160ms ease;
}

.overunder-choice::before {
  content: '';
  position: absolute;
  inset: 0.25rem;
  border-radius: 0.95rem;
  opacity: 0;
  transform: scale(0.92);
  transition: opacity 200ms ease, transform 220ms ease;
  z-index: -1;
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.12);
}

.overunder-choice--over::before {
  background: linear-gradient(135deg, rgba(61, 126, 255, 0.25), rgba(31, 107, 255, 0.45));
}

.overunder-choice--under::before {
  background: linear-gradient(135deg, rgba(255, 71, 71, 0.25), rgba(255, 45, 45, 0.4));
}

.overunder-choice:not(.is-disabled):hover {
  color: var(--nba-slate-900);
}

.overunder-choice:not(.is-disabled):hover::before {
  opacity: 0.85;
  transform: scale(0.98);
}

.overunder-choice.is-selected {
  transform: translateY(-2px) scale(1.01);
}

.overunder-choice--over.is-selected {
  color: var(--nba-blue-600);
}

.overunder-choice--under.is-selected {
  color: var(--nba-red-600);
}

.overunder-choice.is-selected::before {
  opacity: 1;
  transform: scale(1);
}

.overunder-choice.is-disabled,
.overunder-choice.is-disabled:hover {
  cursor: not-allowed;
  color: rgba(100, 116, 139, 0.8);
}

.overunder-choice.is-disabled::before,
.overunder-choice.is-disabled:hover::before {
  opacity: 0;
  transform: scale(0.95);
  box-shadow: none;
}

.overunder-choice-label {
  font-size: 0.95rem;
  font-weight: 800;
}

.overunder-divider {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.25rem;
  padding: 0.65rem 0.9rem;
  min-width: 72px;
  background: rgba(255, 255, 255, 0.65);
  backdrop-filter: blur(6px);
  border-left: 1px dashed rgba(148, 163, 184, 0.35);
  border-right: 1px dashed rgba(148, 163, 184, 0.35);
}

.overunder-divider::before,
.overunder-divider::after {
  content: '';
  position: absolute;
  width: 1px;
  height: 36%;
  background: linear-gradient(to bottom, transparent, rgba(148, 163, 184, 0.45), transparent);
  left: 50%;
  transform: translateX(-50%);
}

.overunder-divider::before {
  top: 0.35rem;
}

.overunder-divider::after {
  bottom: 0.35rem;
}

.overunder-divider-label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  font-weight: 700;
  color: rgba(100, 116, 139, 0.85);
}

.overunder-divider-value {
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--nba-slate-900);
  letter-spacing: 0.02em;
}

.overunder-indicator {
  position: absolute;
  top: 0.2rem;
  bottom: 0.2rem;
  left: 0.2rem;
  width: calc(50% - 0.35rem);
  border-radius: 1rem;
  opacity: 0;
  transform: translateX(0);
  transition: transform 260ms cubic-bezier(0.22, 0.9, 0.3, 1.1), opacity 180ms ease;
  pointer-events: none;
  z-index: 0;
  box-shadow: 0 20px 35px rgba(15, 23, 42, 0.12);
}

.overunder-scale--under .overunder-indicator {
  opacity: 1;
  transform: translateX(0);
  background: linear-gradient(135deg, rgba(255, 71, 71, 0.12), rgba(255, 45, 45, 0.32));
}

.overunder-scale--over .overunder-indicator {
  opacity: 1;
  transform: translateX(calc(100% + 0.45rem));
  background: linear-gradient(135deg, rgba(61, 126, 255, 0.12), rgba(31, 107, 255, 0.35));
}

.overunder-scale:not(.overunder-scale--under):not(.overunder-scale--over) .overunder-indicator {
  opacity: 0;
}

@media (max-width: 640px) {
  .overunder-scale {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    border-radius: 1.25rem;
  }
  .overunder-choice {
    padding: 0.7rem 0.65rem;
    font-size: 0.85rem;
  }
  .overunder-choice::before {
    inset: 0.2rem;
    border-radius: 0.85rem;
  }
  .overunder-divider {
    padding: 0.55rem 0.75rem;
    min-width: 64px;
  }
  .overunder-divider-value {
    font-size: 1rem;
  }
  .overunder-indicator {
    top: 0.18rem;
    bottom: 0.18rem;
    left: 0.18rem;
    width: calc(50% - 0.3rem);
    border-radius: 0.85rem;
  }
  .overunder-scale--over .overunder-indicator {
    transform: translateX(calc(100% + 0.4rem));
  }
}

@media (prefers-reduced-motion: reduce) {
  .overunder-choice,
  .overunder-choice::before {
    transition: none;
    transform: none !important;
  }
  .overunder-indicator {
    transition: none;
  }
}

@media (prefers-color-scheme: dark) {
  .overunder-scale {
    background: linear-gradient(135deg, rgba(30, 41, 59, 0.45), rgba(15, 23, 42, 0.92));
    border-color: rgba(255, 255, 255, 0.1);
  }
  
  .overunder-choice {
    color: #94a3b8;
  }
  
  .overunder-choice:not(.is-disabled):hover {
    color: #f8fafc;
  }
  
  .overunder-divider {
    background: rgba(15, 23, 42, 0.65);
    border-color: rgba(255, 255, 255, 0.1);
  }
  
  .overunder-divider::before,
  .overunder-divider::after {
    background: linear-gradient(to bottom, transparent, rgba(255, 255, 255, 0.2), transparent);
  }
  
  .overunder-divider-value {
    color: #f8fafc;
  }
}

.yesno-scale {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  border-radius: 1.2rem;
  border: 1px solid rgba(148, 163, 184, 0.22);
  background: linear-gradient(135deg, rgba(226, 232, 240, 0.45), rgba(255, 255, 255, 0.92));
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);
  overflow: hidden;
}

.yesno-scale::after {
  content: '';
  position: absolute;
  inset: 0.2rem;
  border-radius: 1.05rem;
  background: radial-gradient(circle at 50% 20%, rgba(148, 163, 184, 0.2), transparent 60%);
  opacity: 0.6;
  pointer-events: none;
  transition: opacity 220ms ease;
}

.yesno-scale--disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.yesno-choice {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.25rem;
  z-index: 1;
  padding: 0.8rem 1.05rem;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--nba-slate-600);
  transition: color 160ms ease, transform 160ms ease;
}

.yesno-choice::before {
  content: '';
  position: absolute;
  inset: 0.25rem;
  border-radius: 0.95rem;
  opacity: 0;
  transform: scale(0.92);
  transition: opacity 200ms ease, transform 220ms ease;
  z-index: -1;
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.12);
}

.yesno-choice--yes::before {
  background: linear-gradient(135deg, rgba(61, 126, 255, 0.25), rgba(31, 107, 255, 0.45));
}

.yesno-choice--no::before {
  background: linear-gradient(135deg, rgba(255, 71, 71, 0.25), rgba(255, 45, 45, 0.4));
}

.yesno-choice:not(.is-disabled):hover {
  color: var(--nba-slate-900);
}

.yesno-choice:not(.is-disabled):hover::before {
  opacity: 0.85;
  transform: scale(0.98);
}

.yesno-choice.is-selected {
  transform: translateY(-2px) scale(1.01);
}

.yesno-choice--yes.is-selected {
  color: var(--nba-blue-600);
}

.yesno-choice--no.is-selected {
  color: var(--nba-red-600);
}

.yesno-choice.is-selected::before {
  opacity: 1;
  transform: scale(1);
}

.yesno-indicator {
  position: absolute;
  top: 0.2rem;
  bottom: 0.2rem;
  left: 0.2rem;
  width: calc(50% - 0.2rem);
  border-radius: 1rem;
  opacity: 0;
  transform: translateX(0);
  transition: transform 260ms cubic-bezier(0.22, 0.9, 0.3, 1.1), opacity 180ms ease;
  pointer-events: none;
  z-index: 0;
  box-shadow: 0 20px 35px rgba(15, 23, 42, 0.12);
}

.yesno-scale--no .yesno-indicator {
  opacity: 1;
  transform: translateX(calc(100% + 0.05rem));
  background: linear-gradient(135deg, rgba(255, 71, 71, 0.12), rgba(255, 45, 45, 0.32));
}

.yesno-scale--yes .yesno-indicator {
  opacity: 1;
  transform: translateX(0);
  background: linear-gradient(135deg, rgba(61, 126, 255, 0.12), rgba(31, 107, 255, 0.35));
}

.head-to-head-scale {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  border-radius: 1.2rem;
  border: 1px solid rgba(148, 163, 184, 0.22);
  background: linear-gradient(135deg, rgba(226, 232, 240, 0.45), rgba(255, 255, 255, 0.92));
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08);
  overflow: hidden;
}

.head-to-head-scale::after {
  content: '';
  position: absolute;
  inset: 0.2rem;
  border-radius: 1.05rem;
  background: radial-gradient(circle at 50% 20%, rgba(148, 163, 184, 0.2), transparent 60%);
  opacity: 0.6;
  pointer-events: none;
  transition: opacity 220ms ease;
}

.head-to-head-scale--disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.head-to-head-choice {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 0.5rem;
  z-index: 1;
  padding: 1rem 1.05rem;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--nba-slate-600);
  transition: color 160ms ease, transform 160ms ease;
  text-align: center;
}

.head-to-head-logo {
  width: 48px;
  height: 48px;
  -o-object-fit: contain;
     object-fit: contain;
  transition: transform 160ms ease;
}

.head-to-head-name {
  font-size: 0.8rem;
  font-weight: 600;
}

.head-to-head-choice::before {
  content: '';
  position: absolute;
  inset: 0.25rem;
  border-radius: 0.95rem;
  opacity: 0;
  transform: scale(0.92);
  transition: opacity 200ms ease, transform 220ms ease;
  z-index: -1;
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.12);
}

.head-to-head-choice--team1::before {
  background: linear-gradient(135deg, rgba(61, 126, 255, 0.25), rgba(31, 107, 255, 0.45));
}

.head-to-head-choice--team2::before {
  background: linear-gradient(135deg, rgba(255, 71, 71, 0.25), rgba(255, 45, 45, 0.4));
}

.head-to-head-choice:not(.is-disabled):hover {
  color: var(--nba-slate-900);
}

.head-to-head-choice:not(.is-disabled):hover::before {
  opacity: 0.85;
  transform: scale(0.98);
}

.head-to-head-choice:not(.is-disabled):hover .head-to-head-logo {
  transform: scale(1.08);
}

.head-to-head-choice.is-selected {
  transform: translateY(-2px) scale(1.01);
}

.head-to-head-choice--team1.is-selected {
  color: var(--nba-blue-600);
}

.head-to-head-choice--team2.is-selected {
  color: var(--nba-red-600);
}

.head-to-head-choice.is-selected::before {
  opacity: 1;
  transform: scale(1);
}

.head-to-head-indicator {
  position: absolute;
  top: 0.2rem;
  bottom: 0.2rem;
  left: 0.2rem;
  width: calc(50% - 0.2rem);
  border-radius: 1rem;
  opacity: 0;
  transform: translateX(0);
  transition: transform 260ms cubic-bezier(0.22, 0.9, 0.3, 1.1), opacity 180ms ease;
  pointer-events: none;
  z-index: 0;
  box-shadow: 0 20px 35px rgba(15, 23, 42, 0.12);
}

.head-to-head-scale--team2 .head-to-head-indicator {
  opacity: 1;
  transform: translateX(calc(100% + 0.05rem));
  background: linear-gradient(135deg, rgba(255, 71, 71, 0.12), rgba(255, 45, 45, 0.32));
}

.head-to-head-scale--team1 .head-to-head-indicator {
  opacity: 1;
  transform: translateX(0);
  background: linear-gradient(135deg, rgba(61, 126, 255, 0.12), rgba(31, 107, 255, 0.35));
}




/*# sourceMappingURL=styles.css.43b034c7c373.map */