:root {
  color-scheme: dark;
  --ink: #e7f1eb;
  --muted: #a8b8af;
  --surface: #101b16;
  --surface-soft: #07110d;
  --surface-subtle: #0c1712;
  --html-bg: #050b08;
  --line: #294136;
  --line-soft: #20362c;
  --brand: #67d49e;
  --brand-dark: #9af0c4;
  --brand-contrast: #06110d;
  --accent: #e0b84a;
  --danger: #ff7e85;
  --header-bg: #07120e;
  --header-ink: #f4fbf7;
  --nav-accent: #f4d98f;
  --field-bg: #07120e;
  --field-border: #60786c;
  --panel-soft: #0d1914;
  --table-head-bg: #14251e;
  --table-head-ink: #d8e7df;
  --selected-row-bg: #2a240f;
  --badge-bg: #1d3128;
  --badge-ink: #d8e7df;
  --success-bg: #123421;
  --success-line: #4f936c;
  --success-ink: #a8efc4;
  --error-bg: #341417;
  --error-line: #b8565c;
  --error-ink: #ffbcc0;
  --warning-bg: #332713;
  --warning-line: #c49a32;
  --warning-ink: #f4d98f;
  --info-bg: #132836;
  --info-line: #5f91b5;
  --info-ink: #bfe1f6;
  --shadow: 0 16px 34px rgb(0 0 0 / 32%);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-synthesis: none;
}

html[data-theme="light"] {
  color-scheme: light;
  --ink: #17221e;
  --muted: #596760;
  --surface: #ffffff;
  --surface-soft: #f1f5f2;
  --surface-subtle: #f8fbf9;
  --html-bg: #e9efeb;
  --line: #d4ddd7;
  --line-soft: #e1e7e3;
  --brand: #176a4b;
  --brand-dark: #0f4b35;
  --brand-contrast: #ffffff;
  --accent: #d6a329;
  --danger: #a92d32;
  --header-bg: #13261f;
  --header-ink: #ffffff;
  --nav-accent: #f4d98f;
  --field-bg: #ffffff;
  --field-border: #899b90;
  --panel-soft: #f4f7f5;
  --table-head-bg: #e7eee9;
  --table-head-ink: #34453d;
  --selected-row-bg: #fff8df;
  --badge-bg: #e6ebe8;
  --badge-ink: #35443c;
  --success-bg: #e8f5ed;
  --success-line: #78ad8e;
  --success-ink: #155c37;
  --error-bg: #fbeded;
  --error-line: #d99a9d;
  --error-ink: #852126;
  --warning-bg: #fff8e5;
  --warning-line: #dab96a;
  --warning-ink: #6f4d00;
  --info-bg: #edf5fa;
  --info-line: #91aabd;
  --info-ink: #285a7b;
  --shadow: 0 10px 26px rgb(20 48 37 / 9%);
}

* { box-sizing: border-box; }
html { background: var(--html-bg); color: var(--ink); }
body { margin: 0; min-width: 0; min-height: 100vh; background: var(--surface-soft); line-height: 1.55; }
a { color: var(--brand-dark); text-underline-offset: 0.18em; }
a:hover { color: var(--brand); }
button, input, select, textarea { font: inherit; }
img { max-width: 100%; height: auto; }
h1, h2, h3, p { overflow-wrap: anywhere; }
h1 { margin: 0 0 0.5rem; font-size: clamp(1.8rem, 7vw, 3rem); line-height: 1.08; letter-spacing: -0.035em; }
h2 { line-height: 1.2; }
code { overflow-wrap: anywhere; }

.skip-link { position: fixed; z-index: 100; left: 1rem; top: -4rem; padding: 0.7rem 1rem; background: var(--surface); }
.skip-link:focus { top: 1rem; }
.site-header { background: var(--header-bg); color: var(--header-ink); border-bottom: 3px solid var(--accent); }
.header-inner { width: min(72rem, 100%); margin: 0 auto; padding: 0.8rem 1rem; }
.brand { color: var(--header-ink); font-size: 1.2rem; font-weight: 800; text-decoration: none; letter-spacing: -0.02em; }
.brand:hover { color: var(--nav-accent); }
.nav-menu { margin-top: 0.55rem; }
.nav-menu summary { cursor: pointer; width: max-content; padding: 0.3rem 0; font-weight: 700; }
.primary-navigation { display: flex; flex-wrap: wrap; align-items: center; gap: 0.2rem 0.85rem; padding: 0.45rem 0; }
.desktop-navigation { display: none; }
.primary-navigation a, .link-button { color: var(--header-ink); font-weight: 650; text-decoration: none; }
.primary-navigation form { margin: 0; }
#logout-form { display: none; }
.link-button { padding: 0; border: 0; background: none; cursor: pointer; }
.nav-group { display: inline-grid; position: relative; min-width: 0; }
.nav-parent { display: inline-flex; align-items: center; gap: 0.28rem; }
.nav-group-has-menu > .nav-parent::after { content: "▾"; color: var(--nav-accent); font-size: 0.72em; line-height: 1; transform: translateY(0.06rem); }
.nav-submenu { display: grid; gap: 0.15rem; min-width: 12rem; }
.nav-submenu a { border-radius: 0.38rem; }
.mobile-navigation { display: grid; align-items: stretch; gap: 0.18rem; padding-top: 0.6rem; }
.mobile-navigation .nav-group { gap: 0.22rem; padding: 0.12rem 0 0.22rem; }
.mobile-navigation .nav-submenu { margin-left: 0.15rem; padding: 0.24rem 0 0.24rem 0.85rem; border-left: 2px solid rgb(244 217 143 / 55%); }
.mobile-navigation .nav-submenu a { width: max-content; max-width: 100%; padding: 0.2rem 0.42rem; color: #ecf4ef; font-size: 0.95rem; }
.primary-navigation a:hover, .link-button:hover { color: var(--nav-accent); }
.primary-navigation a[aria-current="page"] { color: var(--nav-accent); text-decoration: underline; text-decoration-thickness: 0.14em; }
.nav-group-active > .nav-parent { color: var(--nav-accent); }
.nav-menu summary:focus-visible, .primary-navigation a:focus-visible, .link-button:focus-visible { outline: 3px solid var(--nav-accent); outline-offset: 0.2rem; }

.page-shell { width: min(72rem, 100%); min-height: calc(100vh - 11rem); margin: 0 auto; padding: 1.25rem 1rem 3rem; }
.site-footer { padding: 1.5rem 1rem; background: var(--header-bg); color: #c9d5ce; text-align: center; font-size: 0.9rem; }
.page-header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1rem; margin: 1rem 0 1.5rem; }
.page-header p { margin: 0.2rem 0; color: var(--muted); }
.button-row { display: flex; flex-wrap: wrap; gap: 0.45rem; align-items: center; }
.compact-actions .button { padding: 0.35rem 0.55rem; font-size: 0.9rem; }
.international-fixture-list li { display: grid; gap: 0.65rem; }
.international-fixture-summary { display: grid; gap: 0.35rem; min-width: 0; }
.international-fixture-matchup { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: start; gap: 0.6rem; width: min(100%, 34rem); font-weight: 850; text-decoration: none; }
.international-fixture-team { display: grid; justify-items: center; gap: 0.1rem; min-width: 0; text-align: center; }
.international-fixture-team-name { max-width: 100%; overflow-wrap: anywhere; text-decoration: underline; text-underline-offset: 0.18em; }
.international-fixture-team-score { color: var(--ink); font-size: 1.2rem; line-height: 1.1; text-decoration: none; }
.international-fixture-versus { color: var(--muted); font-weight: 700; text-decoration: none; }
.eyebrow { margin: 0 0 0.4rem !important; color: var(--brand) !important; font-size: 0.78rem; font-weight: 850; letter-spacing: 0.12em; text-transform: uppercase; }
.woc-title-row { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.25rem; }
.woc-title-copy { min-width: min(100%, 28rem); max-width: 44rem; }
.woc-prize-note { color: #8a5a10 !important; font-weight: 850; }
.golden-woc { flex: 0 0 auto; width: clamp(5.5rem, 16vw, 8.25rem); filter: drop-shadow(0 0.75rem 0.85rem rgb(107 66 16 / 18%)); }
.golden-woc svg { display: block; width: 100%; height: auto; }
.role-chip { display: inline-flex; padding: 0.35rem 0.65rem; border: 1px solid var(--line); border-radius: 999px; background: var(--surface); font-size: 0.85rem; font-weight: 750; }
.back-link { display: inline-block; margin: 0.5rem 0; font-weight: 700; }
.muted { color: var(--muted); font-size: 0.92rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
[hidden] { display: none !important; }

.alert { margin-bottom: 0.7rem; padding: 0.8rem 1rem; border: 1px solid; border-radius: 0.5rem; background: var(--surface); }
.alert-success { border-color: var(--success-line); background: var(--success-bg); color: var(--success-ink); }
.alert-error { border-color: var(--error-line); background: var(--error-bg); color: var(--error-ink); }
.alert-warning { border-color: var(--warning-line); background: var(--warning-bg); color: var(--warning-ink); }
.alert-info { border-color: var(--info-line); background: var(--info-bg); color: var(--info-ink); }

.auth-card, .settings-card, .data-card, .tool-card, .metric, .empty-state, .promotion-card { border: 1px solid var(--line); border-radius: 0.75rem; background: var(--surface); box-shadow: var(--shadow); }
.auth-card { width: min(32rem, 100%); margin: 1rem auto; padding: clamp(1.2rem, 5vw, 2.2rem); }
.auth-card > p { color: var(--muted); }
.registration-warning { margin: 1.1rem 0; border-width: 2px; }
.registration-warning h2 { margin: 0 0 0.55rem; font-size: 1.18rem; letter-spacing: 0; }
.registration-warning p { margin: 0.45rem 0; }
.registration-disclaimer { margin: 1.1rem 0; }
.registration-disclaimer h2 { margin: 0 0 0.55rem; font-size: 1.18rem; letter-spacing: 0; }
.registration-disclaimer p { margin: 0.45rem 0; }
.registration-guide-actions { display: grid; margin: 0 0 1.2rem; }
.registration-guide-button { width: 100%; font-size: 1.05rem; }
.login-promotions { margin-top: 2.5rem; }
.promotion-heading { max-width: 44rem; margin-bottom: 1rem; }
.promotion-heading h2 { margin: 0.1rem 0 0.4rem; }
.promotion-heading > p:not(.eyebrow) { margin: 0; color: var(--muted); }
.promotion-grid { display: grid; gap: 1rem; }
.promotion-card { display: flex; min-width: 0; flex-direction: column; padding: 1rem; }
.promotion-card h3 { margin: 0.1rem 0 0.45rem; font-size: 1.25rem; }
.promotion-card > p:not(.eyebrow) { margin: 0; color: var(--muted); }
.promotion-media { display: grid; min-height: 8rem; place-items: center; overflow: hidden; border-radius: 0.55rem; background: var(--panel-soft); }
.promotion-media-wide { background: #151d18; }
.promotion-media-custos { min-height: 11.5rem; background: #050606; }
html[data-theme="light"] .promotion-media-custos { background: #fff; }
.promotion-image { display: block; max-width: 100%; object-fit: contain; }
.promotion-image-logo { max-height: 8rem; }
.promotion-image-wide { width: 100%; max-height: 8rem; }
.promotion-image-theme-light { display: none; }
html[data-theme="light"] .promotion-image-theme-dark { display: none; }
html[data-theme="light"] .promotion-image-theme-light { display: block; }
.promotion-image-custos { width: 100%; max-height: 11.25rem; }
.promotion-card > .eyebrow { margin-top: 1rem !important; }
.promotion-actions { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: auto; padding-top: 1rem; }
.promotion-status { display: inline-flex; min-height: 2.6rem; align-items: center; padding: 0.55rem 0.9rem; border-radius: 0.42rem; background: var(--badge-bg); color: var(--badge-ink); font-weight: 800; }
.guide-card { margin-bottom: 1rem; }
.guide-warning { border-color: var(--warning-line); background: var(--warning-bg); }
.guide-grid .guide-link-card h2 { margin: 0.25rem 0 0.45rem; font-size: 1.25rem; }
.guide-steps { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; counter-reset: guide-step; }
.guide-step { counter-increment: guide-step; }
.guide-step h2 { display: flex; gap: 0.55rem; align-items: baseline; }
.guide-step h2::before { content: counter(guide-step); display: inline-grid; flex: 0 0 auto; width: 1.7rem; aspect-ratio: 1; place-items: center; border-radius: 999px; background: var(--brand); color: white; font-size: 0.92rem; line-height: 1; }
.guide-figure { margin: 1rem 0 0; }
.guide-image { display: block; width: 100%; border: 1px solid var(--line); border-radius: 0.6rem; background: var(--surface); box-shadow: var(--shadow); }
.guide-image-reduced { width: min(100%, 34rem); margin-inline: auto; }
.form-footer { margin: 1.5rem 0 0; }
.field { display: grid; gap: 0.35rem; margin: 1rem 0; }
.field label, .field > label { font-weight: 750; }
.field input, .field select, .field textarea { width: 100%; min-height: 2.75rem; padding: 0.6rem 0.7rem; border: 1px solid var(--field-border); border-radius: 0.4rem; background: var(--field-bg); color: var(--ink); }
.field textarea { resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { outline: 3px solid rgb(23 106 75 / 24%); border-color: var(--brand); }
.field-error input, .field-error select, .field-error textarea { border-color: var(--danger); }
.field-message, .inline-error { color: #852126; font-weight: 650; }
.field-hint { color: var(--muted); font-size: 0.95rem; }
.field-message:empty { display: none; }
.message-preview { white-space: pre-wrap; overflow-wrap: anywhere; margin: 0; padding: 0.75rem; border: 1px solid var(--line); border-radius: 0.5rem; background: var(--surface-soft); color: var(--ink); font: inherit; line-height: 1.45; }
.checkbox-field { display: flex; align-items: flex-start; gap: 0.55rem; margin: 1.1rem 0; }
.checkbox-field input { flex: 0 0 auto; margin-top: 0.3rem; }
.compact-list { display: grid; gap: 0.45rem; margin: 0; padding-left: 1rem; }
.compact-list li { min-width: 0; }
.theme-choice-group { display: grid; gap: 0.55rem; margin: 1rem 0; padding: 0; border: 0; }
.theme-choice-group legend { margin-bottom: 0.2rem; font-weight: 750; }
.theme-choice { display: flex; align-items: center; gap: 0.55rem; padding: 0.65rem 0.75rem; border: 1px solid var(--line); border-radius: 0.5rem; background: var(--surface-subtle); cursor: pointer; font-weight: 750; }
.theme-choice input { margin: 0; }
.button { display: inline-flex; min-height: 2.6rem; align-items: center; justify-content: center; padding: 0.55rem 0.9rem; border: 1px solid transparent; border-radius: 0.42rem; cursor: pointer; font-weight: 800; text-decoration: none; }
.button-primary { background: var(--brand); color: var(--brand-contrast); }
.button-primary:hover { background: var(--brand-dark); color: var(--brand-contrast); }
.button-secondary { border-color: var(--field-border); background: var(--surface); color: var(--brand-dark); }
.button-secondary:hover { background: var(--panel-soft); }
.button-small { min-height: 2rem; padding: 0.35rem 0.55rem; font-size: 0.82rem; }
.button-danger { background: var(--danger); color: white; }
.button-danger:hover { background: #7f1e22; }
.compact-actions { align-items: flex-start; gap: 0.45rem; margin-top: 0; }
.compact-actions form { display: grid; gap: 0.35rem; min-width: 8rem; }
.button:disabled { cursor: not-allowed; opacity: 0.62; }
.button:focus-visible { outline: 3px solid var(--brand); outline-offset: 0.2rem; }
.refresh-status { display: grid; gap: 0.22rem; margin: 0.8rem 0; padding: 0.65rem 0.75rem; border-left: 0.25rem solid #7f9187; border-radius: 0.3rem; background: var(--panel-soft); }
.refresh-status p { margin: 0; }
.refresh-status-info { border-left-color: var(--info-line); background: var(--info-bg); }
.refresh-status-success { border-left-color: var(--success-line); background: var(--success-bg); }
.refresh-status-warning { border-left-color: var(--warning-line); background: var(--warning-bg); }
.refresh-status-error { border-left-color: var(--danger); background: var(--error-bg); }
.refresh-status-message { font-weight: 650; }
.refresh-status-hint, .refresh-status-meta { color: var(--muted); font-size: 0.86rem; }
.refresh-status time { white-space: nowrap; }
.secret-value { display: inline-block; padding: 0.15rem 0.3rem; background: var(--panel-soft); }
.qr-code { display: block; margin: 1rem auto; border: 8px solid var(--surface); }
.steps { padding-left: 1.3rem; }
.recovery-codes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; padding: 0; list-style: none; }
.recovery-codes li { padding: 0.5rem; background: var(--panel-soft); text-align: center; }

.metric-grid, .card-grid, .settings-grid { display: grid; gap: 1rem; grid-template-columns: 1fr; }
.metric { display: grid; padding: 1rem; }
.metric strong { color: var(--brand-dark); font-size: 1.8rem; line-height: 1; }
.metric span { margin-top: 0.4rem; color: var(--muted); }
.tool-card { display: block; padding: 1rem; color: var(--ink); text-decoration: none; }
.tool-card:hover { border-color: var(--brand); color: var(--ink); transform: translateY(-1px); }
.tool-card h3, .tool-card p { margin: 0.2rem 0; }
.tool-card p { color: var(--muted); }
.data-card, .settings-card { min-width: 0; padding: 1rem; }
.data-card h2, .settings-card h2 { margin-top: 0; }
.worker-diagnostic { max-width: 46rem; max-height: 18rem; overflow: auto; white-space: pre-wrap; }
.worker-history-item { display: inline-flex; margin: 0.12rem 0.25rem 0.12rem 0; }
.worker-recovery-grid { display: grid; gap: 0.85rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); margin-top: 1rem; }
.worker-recovery-form { display: grid; gap: 0.65rem; align-content: start; }
.card-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; }
.section-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 0.5rem; margin: 1.6rem 0 0.8rem; }
.section-heading h2 { margin: 0; }
.club-title-row { display: flex; min-width: 0; align-items: center; gap: 0.7rem; }
.club-title-row h1, .club-title-row h2, .club-title-row h3, .club-title-row strong { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.club-title-row > span:not(.club-logo) { min-width: 0; overflow-wrap: anywhere; }
.club-title-compact { gap: 0.45rem; }
.club-logo { display: inline-grid; flex: 0 0 auto; width: 3rem; aspect-ratio: 1; place-items: center; overflow: hidden; border: 1px solid var(--line); border-radius: 0.65rem; background: var(--panel-soft); color: var(--brand-dark); }
.club-logo-small { width: 2rem; border-radius: 0.45rem; }
.club-logo-large { width: 4rem; }
.club-logo-xlarge { width: clamp(4.5rem, 15vw, 6.5rem); }
.club-logo-image { display: block; width: 100%; height: 100%; object-fit: contain; background: var(--surface); }
.club-logo-fallback { font-size: 1.15em; font-weight: 850; }
.club-switch-card { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.8rem; }
.club-switch-card .club-title-row { flex: 1 1 10rem; }
.settings-card > .club-title-row { margin: 0.75rem 0 1rem; }
.field-muted { opacity: 0.74; }
.field-muted input[readonly] { cursor: not-allowed; }
.friendly-batch-rows { display: grid; gap: 0.75rem; }
.friendly-mode-panel { margin-top: 0.75rem; }
.friendly-search-results { display: grid; gap: 0.75rem; margin-top: 1rem; }
.friendly-search-result { display: grid; min-width: 0; gap: 0.85rem; padding: 0.85rem; border: 1px solid var(--line); border-radius: 0.6rem; background: var(--surface-subtle); }
.friendly-search-heading { display: grid; min-width: 0; gap: 0.75rem; }
.friendly-search-result h3, .friendly-search-result p { margin: 0; }
.friendly-search-result h3 { overflow-wrap: anywhere; }
.friendly-search-stats { display: grid; min-width: 0; gap: 0.55rem; grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr)); margin: 0; }
.friendly-search-stats div { display: block; min-width: 0; padding: 0.55rem 0.65rem; border: 1px solid var(--line-soft); border-radius: 0.45rem; background: var(--surface); }
.friendly-search-stats dt { font-size: 0.72rem; letter-spacing: 0.04em; }
.friendly-search-stats dd { min-width: 0; overflow-wrap: anywhere; font-size: 1.05rem; font-weight: 850; line-height: 1.2; }
.friendly-search-stats small { display: block; margin-top: 0.15rem; font-size: 0.72rem; font-weight: 700; }
.friendly-search-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: start; }
.friendly-queue-items { display: grid; gap: 0.35rem; margin: 0; padding: 0; list-style: none; }
.friendly-queue-items li { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; justify-content: space-between; }
.friendly-queue-actions { display: grid; gap: 0.45rem; margin: 0; }
.friendly-queue-actions .button { width: max-content; }
.club-stat-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 0.8rem; }
.club-stat-list dd { font-size: 1.05rem; font-weight: 750; }
.club-performance-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 1rem; }
.club-performance-summary .metric strong { font-size: clamp(1.3rem, 6vw, 1.8rem); }
.club-finishes-card { grid-column: 1 / -1; }
dl { margin: 1rem 0; }
dl div { display: grid; gap: 0.15rem; padding: 0.5rem 0; border-bottom: 1px solid var(--line-soft); }
dt { color: var(--muted); font-size: 0.82rem; font-weight: 750; text-transform: uppercase; }
dd { margin: 0; }
.danger-zone { border-color: #d99a9d; }
.narrow-card { max-width: 36rem; }
.empty-state { padding: clamp(1.5rem, 7vw, 3rem); text-align: center; }

.badge { display: inline-flex; width: max-content; padding: 0.2rem 0.48rem; border-radius: 999px; background: var(--badge-bg); color: var(--badge-ink); font-size: 0.75rem; font-weight: 850; white-space: nowrap; }
.badge-ready, .badge-fresh, .badge-active { background: var(--success-bg); color: var(--success-ink); }
.badge-failed, .badge-disabled, .badge-closure-pending, .badge-purged { background: var(--error-bg); color: var(--error-ink); }
.badge-queued, .badge-refreshing, .badge-refresh-due, .badge-pending-confirmation, .badge-stale, .badge-cooldown, .badge-authentication-required { background: var(--warning-bg); color: var(--warning-ink); }
.union-flag-badge { display: inline-flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; max-width: 100%; font-weight: 850; }
.union-flag-code { display: inline-flex; align-items: center; justify-content: center; min-width: 2.1rem; min-height: 1.45rem; padding: 0.1rem 0.35rem; border: 1px solid var(--line); border-radius: 0.35rem; background: var(--surface-subtle); color: var(--ink); font-size: 0.74rem; letter-spacing: 0.06em; }
.refresh-strip { display: grid; gap: 0.6rem; margin-bottom: 1rem; }
.refresh-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.55rem; padding: 0.7rem; border: 1px solid var(--line); border-radius: 0.5rem; background: var(--surface); }
.refresh-row > .club-title-row { margin-right: auto; font-weight: 750; }
.refresh-row > .refresh-status { flex: 1 0 100%; margin: 0; }
.refresh-row form { margin: 0; }
.responsive-table, .table-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--line); border-radius: 0.6rem; background: var(--surface); }
.custom-ratings-table-wrap { max-width: 100%; border: 1px solid var(--line); border-radius: 0.6rem; background: var(--surface); }
.custom-ratings-table { min-width: 0; table-layout: fixed; }
.custom-ratings-table th, .custom-ratings-table td { overflow-wrap: anywhere; vertical-align: top; }
.custom-ratings-table th:nth-child(1) { width: 19%; }
.custom-ratings-table th:nth-child(2), .custom-ratings-table th:nth-child(3) { width: 7%; }
.custom-ratings-table th:nth-child(4), .custom-ratings-table th:nth-child(5) { width: 12%; }
.custom-ratings-table th:nth-child(6), .custom-ratings-table th:nth-child(7), .custom-ratings-table th:nth-child(8) { width: 10%; }
.rating-table-heading { display: inline-block; line-height: 1.15; white-space: normal; }
.bmi-target-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 0.65rem; }
.bmi-plan-list { display: grid; gap: 0.6rem; }
.bmi-plan-row { display: grid; grid-template-columns: 1.15fr repeat(5, minmax(0, 1fr)); gap: 0.65rem; padding: 0.75rem; border: 1px solid var(--line); border-radius: 0.55rem; background: var(--surface); }
.bmi-plan-row strong, .bmi-plan-row span { display: block; overflow-wrap: anywhere; }
.bmi-plan-row strong { font-size: 0.8rem; color: var(--muted); }
@media (max-width: 760px) { .bmi-plan-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rating-secondary { display: block; margin-top: 0.2rem; color: var(--muted); font-size: 0.82rem; font-weight: 400; }
.compact-number-field { max-width: 13rem; }
@media (max-width: 720px) {
  .custom-ratings-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .custom-ratings-table, .custom-ratings-table tbody, .custom-ratings-table tr, .custom-ratings-table th, .custom-ratings-table td { display: block; width: 100%; }
  .custom-ratings-table tr { padding: 0.75rem; border-bottom: 1px solid var(--line); }
  .custom-ratings-table tr:last-child { border-bottom: 0; }
  .custom-ratings-table th, .custom-ratings-table td { padding: 0.3rem 0; border: 0; }
}
table { width: 100%; min-width: 40rem; border-collapse: collapse; }
th, td { padding: 0.75rem; border-bottom: 1px solid var(--line-soft); text-align: left; vertical-align: top; }
thead th { background: var(--table-head-bg); color: var(--table-head-ink); font-size: 0.78rem; letter-spacing: 0.04em; text-transform: uppercase; }
tbody th span, tbody th small { display: block; }
tbody th small { color: var(--muted); font-weight: 500; }
.data-table tr.is-selected > th, .data-table tr.is-selected > td { background: var(--selected-row-bg); }
.data-table .button { min-height: 2.2rem; padding: 0.4rem 0.65rem; }
.conveyor-position-panel { min-width: 0; margin: 0.85rem 0; padding: 0.75rem; border: 1px solid var(--line); border-radius: 0.55rem; }
.conveyor-position-panel legend { padding: 0 0.25rem; font-weight: 850; }
.conveyor-presets { margin-bottom: 0.7rem; }
.conveyor-position-options { display: grid; gap: 0.25rem 0.7rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr)); }
.conveyor-position-options .checkbox-field { margin: 0; }
.conveyor-chart-card { display: grid; gap: 0.65rem; min-width: 0; margin-bottom: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: 0.75rem; background: var(--surface); box-shadow: var(--shadow); }
.conveyor-chart-canvas { width: 100%; min-width: 0; aspect-ratio: 16 / 9; }
.conveyor-chart-svg { display: block; width: 100%; height: 100%; min-height: 18rem; }
.conveyor-chart-plot { fill: var(--surface-subtle); stroke: var(--line); stroke-width: 2; }
.conveyor-chart-grid { stroke: var(--line-soft); stroke-width: 1.2; }
.conveyor-chart-axis-label { fill: var(--muted); font-size: 1rem; font-weight: 850; }
.conveyor-chart-point { fill: var(--brand); stroke: var(--surface); stroke-width: 3; }
.conveyor-chart-point-link:focus-visible .conveyor-chart-point,
.conveyor-chart-point-link:hover .conveyor-chart-point { fill: var(--warning); stroke: var(--ink); outline: none; }
.conveyor-chart-tooltip { min-height: 1.5rem; margin: 0; color: var(--muted); font-size: 0.9rem; font-weight: 750; overflow-wrap: anywhere; }
.conveyor-tabs { display: flex; flex-wrap: wrap; gap: 0.55rem; margin: 0 0 1rem; }
.conveyor-needs-list { display: grid; gap: 0.75rem; }
.conveyor-need-card { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(13rem, 0.8fr); gap: 1rem; padding: 0.9rem; border: 1px solid var(--line); border-left-width: 0.35rem; border-radius: 0.6rem; background: var(--surface); }
.conveyor-need-now { border-left-color: var(--danger); }
.conveyor-need-soon { border-left-color: var(--warning); }
.conveyor-need-planned { border-left-color: var(--brand); }
.conveyor-need-covered { border-left-color: var(--success); }
.conveyor-need-card h3 { margin: 0.2rem 0 0.5rem; }
.conveyor-chain { display: grid; align-content: start; gap: 0.18rem; min-width: 0; }
.conveyor-chain a { overflow-wrap: anywhere; }
.conveyor-chain span { color: var(--muted); font-size: 0.88rem; }
@media (max-width: 700px) { .conveyor-need-card { grid-template-columns: 1fr; } }
.cards-intro { margin-bottom: 1rem; }
.cards-club-picker { margin-bottom: 1rem; }
.cards-club-picker-grid { display: grid; gap: 0.65rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }
.cards-club-picker-card { display: flex; align-items: center; gap: 0.65rem; min-width: 0; padding: 0.75rem; border: 1px solid var(--line); border-radius: 0.7rem; background: var(--surface); color: inherit; font-weight: 850; text-decoration: none; }
.cards-club-picker-card:hover, .cards-club-picker-card:focus-visible { border-color: var(--brand); box-shadow: 0 0 0 0.16rem rgb(126 255 200 / 20%); outline: none; }
.cards-club-picker-card.is-selected { border-color: var(--brand); background: var(--selected-row-bg); }
.cards-club-picker-card .club-logo, .cards-club-picker-card .club-logo-image { flex: 0 0 auto; }
.cards-club-stack { display: grid; gap: 1rem; }
.cards-club-card { display: grid; gap: 1rem; }
.cards-summary-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cards-summary-grid .metric strong { font-size: clamp(1.15rem, 7vw, 1.8rem); }
.cards-category-row { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; }
.cards-section { display: grid; gap: 0.65rem; min-width: 0; padding-top: 0.8rem; border-top: 1px solid var(--line-soft); }
.cards-section h3 { margin: 0; }
.cards-section-heading-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 0.6rem 1rem; min-width: 0; }
.cards-section-heading-row form { margin: 0; }
.cards-bulk-action-list { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: flex-end; gap: 0.45rem; min-width: 0; }
.checkbox-line { display: inline-flex; align-items: center; gap: 0.35rem; min-height: 2rem; font-weight: 750; }
.checkbox-line input { width: 1rem; height: 1rem; margin: 0; }
.cards-bulk-action-with-note { display: grid; gap: 0.18rem; max-width: 18rem; }
.cards-bulk-action-with-note small { line-height: 1.2; }
.cards-slot-action-form { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; margin: 0.35rem 0 0; min-width: 0; }
.cards-slot-action-form select { flex: 1 1 10rem; min-width: 0; min-height: 2rem; padding: 0.25rem 0.45rem; border: 1px solid var(--field-border); border-radius: 0.35rem; background: var(--field-bg); color: var(--ink); font-size: 0.82rem; }
.cards-slot-action-button { flex: 0 0 auto; }
.cards-slot-load-picker { min-width: 0; margin-top: 0.35rem; color: var(--slot-card-ink, var(--ink)); }
.cards-slot-load-picker > summary { display: inline-flex; align-items: center; gap: 0.35rem; max-width: 100%; min-height: 2rem; padding: 0.35rem 0.6rem; border: 1px solid rgb(255 255 255 / 34%); border-radius: 0.4rem; background: rgb(255 255 255 / 18%); color: inherit; font-weight: 850; cursor: pointer; }
.cards-slot-load-picker > summary:hover, .cards-slot-load-picker > summary:focus-visible { outline: none; box-shadow: 0 0 0 0.16rem rgb(255 255 255 / 24%); }
.cards-slot-load-picker > summary::marker { color: currentColor; }
.cards-slot-load-groups { display: grid; gap: 0.4rem; max-height: 18rem; min-width: 0; margin-top: 0.45rem; padding-right: 0.15rem; overflow: auto; }
.cards-slot-load-type { min-width: 0; border-top: 1px solid rgb(255 255 255 / 24%); }
.cards-slot-load-type > summary { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; min-width: 0; padding: 0.35rem 0.25rem; border-radius: 0.35rem; font-weight: 850; cursor: pointer; }
.cards-slot-load-type > summary span { min-width: 0; overflow-wrap: anywhere; }
.cards-slot-load-type > summary small { flex: 0 0 auto; color: var(--slot-card-muted, var(--muted)); font-weight: 750; }
.cards-slot-load-type-body { display: grid; gap: 0.45rem; min-width: 0; padding: 0.2rem 0 0.35rem; }
.cards-slot-load-source { --load-source-accent: var(--line); display: grid; gap: 0.35rem; min-width: 0; padding-left: 0.5rem; border-left: 0.22rem solid var(--load-source-accent); }
.cards-slot-load-source--blue { --load-source-accent: #4d7dff; }
.cards-slot-load-source--red { --load-source-accent: #ff3627; }
.cards-slot-load-source-heading { display: flex; align-items: center; justify-content: space-between; gap: 0.45rem; min-width: 0; }
.cards-slot-load-source-heading strong { min-width: 0; overflow-wrap: anywhere; }
.cards-slot-load-scope { display: grid; gap: 0.25rem; min-width: 0; }
.cards-slot-load-scope-heading,
.cards-slot-load-level-heading { margin: 0; color: var(--slot-card-muted, var(--muted)); font-size: 0.78rem; font-weight: 850; }
.cards-slot-load-level-group { display: grid; gap: 0.25rem; min-width: 0; }
.cards-slot-load-card-form { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.35rem; min-width: 0; padding: 0.3rem; border: 1px solid rgb(255 255 255 / 24%); border-radius: 0.35rem; background: rgb(255 255 255 / 16%); }
.cards-slot-load-card-meta { display: flex; flex: 1 1 8rem; flex-wrap: wrap; gap: 0.25rem 0.45rem; min-width: 0; color: inherit; font-size: 0.82rem; font-weight: 720; }
.cards-type-filter { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.cards-type-filter .button { gap: 0.35rem; }
.cards-count-sections { display: grid; align-items: start; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.cards-count-section { display: grid; align-content: start; align-items: start; gap: 0.6rem; min-width: 0; padding: 0.65rem; border: 1px solid var(--line); border-radius: 0.7rem; background: var(--surface-subtle); }
.cards-count-section--top-aligned { align-self: start; }
.cards-count-section h4 { margin: 0; }
.cards-count-heading-badge { display: inline-flex; max-width: 100%; align-items: center; min-height: 2rem; padding: 0.28rem 0.65rem; border: 1px solid currentColor; border-radius: 999px; font-size: 0.92rem; font-weight: 900; line-height: 1.15; overflow-wrap: anywhere; }
.cards-count-section--blue { border-color: rgb(69 156 255 / 45%); box-shadow: inset 0 0.18rem 0 #459cff; }
.cards-count-section--blue .cards-count-heading-badge { background: rgb(69 156 255 / 16%); color: #bfe1ff; }
.cards-count-section--red { border-color: rgb(255 96 96 / 48%); box-shadow: inset 0 0.18rem 0 #d33b35; }
.cards-count-section--red .cards-count-heading-badge { background: rgb(255 96 96 / 15%); color: #ffd1d1; }
html[data-theme="light"] .cards-count-section--blue { border-color: #9cc8ff; }
html[data-theme="light"] .cards-count-section--blue .cards-count-heading-badge { background: #e6f2ff; color: #114f9b; }
html[data-theme="light"] .cards-count-section--red { border-color: #efaaa8; }
html[data-theme="light"] .cards-count-section--red .cards-count-heading-badge { background: #fff0ef; color: #9d2626; }
.training-regime-grid { display: grid; gap: 0.8rem; min-width: 0; }
.training-regime-panel { display: grid; gap: 0.75rem; min-width: 0; padding: 0.85rem; border: 1px solid var(--line); border-radius: 0.75rem; background: var(--surface-subtle); }
.training-regime-heading { display: flex; flex-wrap: wrap; align-items: start; justify-content: space-between; gap: 0.65rem; }
.training-regime-heading h4 { margin: 0; overflow-wrap: anywhere; }
.training-regime-session-stack { display: grid; gap: 0.65rem; min-width: 0; }
.training-regime-session-row { display: grid; grid-template-columns: minmax(5.6rem, 8rem) minmax(0, 1fr); gap: 0.6rem; align-items: stretch; min-width: 0; }
.training-regime-session-row h5 { margin: 0; min-width: 0; padding-top: 0.15rem; font-size: 0.92rem; overflow-wrap: anywhere; }
.training-slot-list { display: grid; gap: 0.45rem; grid-template-columns: repeat(3, minmax(0, 1fr)); min-width: 0; margin: 0; padding: 0; list-style: none; }
.training-slot-row { display: grid; align-content: start; gap: 0.35rem; min-width: 0; min-height: 5.6rem; padding: 0.55rem; border: 1px solid var(--line-soft); border-radius: 0.55rem; background: var(--surface); }
.training-slot-row--blue,
.training-slot-row--red { --slot-card-ink: #211211; --slot-card-muted: rgb(33 18 17 / 76%); color: var(--slot-card-ink); border-color: rgb(255 255 255 / 28%); box-shadow: inset 0 0.22rem 0 rgb(255 255 255 / 22%), inset 0 0 0 999px rgb(255 255 255 / 4%); }
.training-slot-row--blue.training-slot-row--level-1 { --slot-card-ink: #191930; --slot-card-muted: rgb(25 25 48 / 76%); background: #dad9ff; }
.training-slot-row--blue.training-slot-row--level-2 { --slot-card-ink: #11172b; --slot-card-muted: rgb(17 23 43 / 78%); background: #b3c4ff; }
.training-slot-row--blue.training-slot-row--level-3 { --slot-card-ink: #0c1428; --slot-card-muted: rgb(12 20 40 / 78%); background: #89a2ff; }
.training-slot-row--blue.training-slot-row--level-4 { --slot-card-ink: #071225; --slot-card-muted: rgb(7 18 37 / 80%); background: #4d7dff; }
.training-slot-row--blue.training-slot-row--level-5 { --slot-card-ink: #f6f8ff; --slot-card-muted: rgb(246 248 255 / 84%); background: #001eff; text-shadow: 0 1px 1px rgb(0 0 0 / 34%); }
.training-slot-row--blue.training-slot-row--level-6 { --slot-card-ink: #f8fbff; --slot-card-muted: rgb(248 251 255 / 84%); background: #001eff; text-shadow: 0 1px 1px rgb(0 0 0 / 34%); }
.training-slot-row--red.training-slot-row--level-1 { background: #ffb9b4; }
.training-slot-row--red.training-slot-row--level-2 { background: #ff8981; }
.training-slot-row--red.training-slot-row--level-3 { background: #ff5a4e; }
.training-slot-row--red.training-slot-row--level-4 { background: #ff2a1b; }
.training-slot-row--red.training-slot-row--level-5 { --slot-card-ink: #fff8f7; --slot-card-muted: rgb(255 248 247 / 84%); background: #e70f00; text-shadow: 0 1px 1px rgb(0 0 0 / 32%); }
.training-slot-row--red.training-slot-row--level-6 { --slot-card-ink: #fff8f7; --slot-card-muted: rgb(255 248 247 / 84%); background: #ff3627; text-shadow: 0 1px 1px rgb(0 0 0 / 32%); }
.training-slot-row--blue.training-slot-row--foil,
.training-slot-row--red.training-slot-row--foil { --slot-card-ink: #09090b; --slot-card-muted: rgb(9 9 11 / 78%); border-width: 4px; border-color: #e6ebf2; text-shadow: none; box-shadow: inset 0 0 0 1px rgb(255 255 255 / 80%), 0 0 0 1px #9aa4b2, 0 0 18px rgb(223 231 240 / 36%); }
.training-slot-row--blue.training-slot-row--foil { background: linear-gradient(105deg, #001eff 0%, #4d7dff 28%, #a8b9f0 52%, #d8dadd 74%, #f3f4f6 100%); }
.training-slot-row--red.training-slot-row--foil { background: linear-gradient(105deg, #e70f00 0%, #ff3627 24%, #ef7770 48%, #d8dadd 74%, #f3f4f6 100%); }
.training-slot-row--filtered { border-style: dashed; background: var(--surface-subtle); }
.training-slot-row--empty { color: var(--muted); background: var(--surface-subtle); }
.training-slot-label { font-size: 0.78rem; font-weight: 850; color: var(--muted); overflow-wrap: anywhere; }
.training-slot-card { display: grid; gap: 0.18rem; min-width: 0; font-size: 0.85rem; line-height: 1.25; }
.training-slot-card-content { display: grid; align-items: center; gap: 0.45rem; min-width: 0; min-height: 100%; }
.training-slot-card-content--with-image { grid-template-columns: minmax(0, 1fr) minmax(3.25rem, 42%); }
.training-slot-card-text { display: grid; align-content: center; gap: 0.18rem; min-width: 0; }
.training-slot-image { display: block; align-self: center; justify-self: end; width: 100%; max-width: 5.5rem; max-height: 6.8rem; object-fit: contain; border-radius: 0.35rem; background: var(--surface-subtle); }
.training-slot-focus { overflow-wrap: anywhere; }
.training-slot-title-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.38rem; min-width: 0; }
.match-tactics-card-scope { color: var(--muted); font-size: 0.78rem; font-weight: 800; line-height: 1; overflow-wrap: anywhere; }
.training-card-meta { display: grid; gap: 0.12rem; min-width: 0; color: var(--muted); }
.training-slot-row--blue .training-slot-label,
.training-slot-row--red .training-slot-label,
.training-slot-row--blue .training-card-meta,
.training-slot-row--red .training-card-meta,
.training-slot-row--blue .match-tactics-card-scope,
.training-slot-row--red .match-tactics-card-scope,
.training-slot-row--blue .muted,
.training-slot-row--red .muted { color: var(--slot-card-muted); }
.training-slot-row--blue .training-slot-image,
.training-slot-row--red .training-slot-image { background: rgb(255 255 255 / 14%); }
.training-card-badges { display: flex; flex-wrap: wrap; gap: 0.22rem; min-width: 0; }
.training-slot-spent,
.training-slot-foil { display: inline-flex; width: fit-content; padding: 0.08rem 0.35rem; border-radius: 999px; font-weight: 850; }
.training-slot-spent { border: 1px solid #3b3d42; background: #151619; color: #f5c842; text-shadow: none; }
.training-slot-foil { border: 1px solid #9ca3af; background: linear-gradient(145deg, #f8fafc, #cbd5e1); color: #000; text-shadow: none; }
html[data-theme="light"] .training-slot-spent { border-color: #3b3d42; background: #151619; color: #f5c842; }
html[data-theme="light"] .training-slot-foil { border-color: #8d99a8; background: linear-gradient(145deg, #ffffff, #cbd5e1); color: #000; }
.match-fixture-grid { display: grid; gap: 0.8rem; min-width: 0; }
.match-fixture-panel { display: grid; gap: 0.75rem; min-width: 0; padding: 0.85rem; border: 1px solid var(--line); border-radius: 0.75rem; background: var(--surface-subtle); }
.match-fixture-heading { display: flex; flex-wrap: wrap; align-items: start; justify-content: space-between; gap: 0.65rem; }
.match-fixture-heading h4 { margin: 0; overflow-wrap: anywhere; }
.match-fixture-meta { display: flex; flex-wrap: wrap; gap: 0.35rem 0.65rem; margin: 0.25rem 0 0; color: var(--muted); font-size: 0.86rem; }
.match-fixture-slot-list { align-items: stretch; }
@media (max-width: 42rem) {
  .training-regime-session-row { grid-template-columns: 1fr; }
  .training-slot-row { padding: 0.45rem; }
  .training-slot-card { font-size: 0.78rem; }
  .training-slot-card-content--with-image { grid-template-columns: minmax(0, 1fr) minmax(3rem, 38%); }
  .training-slot-image { max-width: 4.8rem; max-height: 5.8rem; }
}
.cards-colour-section-stack { display: grid; gap: 0.8rem; }
.cards-colour-section { display: grid; gap: 0.65rem; min-width: 0; padding: 0.75rem; border: 1px solid var(--line); border-radius: 0.8rem; background: var(--surface-subtle); }
.cards-colour-heading { display: flex; align-items: center; justify-content: space-between; gap: 0.7rem; margin: -0.75rem -0.75rem 0; padding: 0.65rem 0.75rem; border-radius: 0.8rem 0.8rem 0 0; border-bottom: 1px solid var(--line); }
.cards-colour-heading h5 { margin: 0; font-size: 0.92rem; letter-spacing: 0.08em; text-transform: uppercase; }
.cards-colour-section--blue .cards-colour-heading { border-color: rgb(69 156 255 / 42%); background: linear-gradient(135deg, rgb(26 92 196 / 34%), rgb(16 58 122 / 18%)); color: #bfe1ff; }
.cards-colour-section--red .cards-colour-heading { border-color: rgb(255 96 96 / 45%); background: linear-gradient(135deg, rgb(190 31 31 / 34%), rgb(118 24 24 / 20%)); color: #ffd1d1; }
html[data-theme="light"] .cards-colour-section--blue .cards-colour-heading { border-color: #9cc8ff; background: #e6f2ff; color: #114f9b; }
html[data-theme="light"] .cards-colour-section--red .cards-colour-heading { border-color: #efaaa8; background: #fff0ef; color: #9d2626; }
.cards-count-grid { display: grid; gap: 0.65rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.card-count-card { display: grid; gap: 0.6rem; min-width: 0; padding: 0.75rem; border: 1px solid var(--line); border-radius: 0.7rem; background: var(--surface); }
.card-count-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 0.8rem; min-width: 0; }
.card-count-heading h4, .card-count-heading p { margin: 0; overflow-wrap: anywhere; }
.card-count-heading > strong { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; min-width: 2.4rem; min-height: 2.4rem; border-radius: 999px; background: var(--badge-bg); color: var(--badge-ink); font-size: 1.1rem; }
.card-count-levels { display: grid; gap: 0.3rem; margin: 0; padding: 0; list-style: none; }
.card-count-levels li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.28rem; }
.card-count-levels strong { font-size: 1.02rem; }
.cards-bucket-preserve-form { display: inline-flex; align-items: center; gap: 0.3rem; margin-left: 0.2rem; }
.cards-bucket-preserve-count input { width: 3.8rem; min-height: 2rem; padding: 0.25rem 0.4rem; }
.cards-table-scroll table { min-width: 34rem; }
.card-storage-target-list { display: grid; gap: 0.65rem; }
.card-storage-target { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; padding: 0.75rem; border: 1px solid var(--line); border-radius: 0.65rem; background: var(--surface); }
.card-storage-target p { margin: 0.15rem 0; }
.card-storage-target form { margin: 0; }
.card-storage-form { display: grid; gap: 0.8rem; padding: 0.85rem; border: 1px solid var(--line); border-radius: 0.65rem; background: var(--surface-subtle); }
.form-grid { display: grid; gap: 0.75rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr)); }
.card-storage-form textarea { resize: vertical; }
.union-summary { margin-bottom: 1rem; }
.union-members-panel { display: grid; gap: 0.6rem; margin-bottom: 1rem; }
.union-members-panel h2, .union-members-panel p { margin: 0; }
.union-member-list { display: flex; flex-wrap: wrap; gap: 0.45rem; margin: 0; padding: 0; list-style: none; }
.union-player-controls { margin-top: 0.9rem; }
.inline-table-form { margin-top: 0.45rem; }
.union-rating-panel { margin-bottom: 1rem; }
.union-rating-form { margin: 0; }
.union-candidate-list { display: grid; gap: 1rem; }
.union-candidate-card { display: grid; gap: 0.85rem; }
.springbok-lineup-list { display: grid; gap: 0.75rem; min-width: 0; }
.springbok-lineup-row { display: grid; grid-template-columns: minmax(7.5rem, 0.75fr) minmax(13rem, 1.25fr) minmax(10rem, 0.9fr) minmax(18rem, 2fr); gap: 0.8rem; align-items: start; min-width: 0; padding: 0.8rem; border: 1px solid var(--line-soft); border-radius: 0.65rem; background: var(--surface-subtle); }
.springbok-bench-row { grid-template-columns: minmax(7.5rem, 0.75fr) minmax(13rem, 1.25fr) minmax(10rem, 0.9fr) minmax(12rem, 1fr); }
.springbok-lineup-slot { min-width: 0; }
.springbok-lineup-slot strong, .springbok-lineup-slot span { display: block; overflow-wrap: anywhere; }
.springbok-lineup-slot span { margin-top: 0.15rem; color: var(--muted); font-size: 0.78rem; font-weight: 750; text-transform: uppercase; }
.springbok-lineup-player { display: grid; gap: 0.35rem; min-width: 0; }
.springbok-assignment-form { display: grid; gap: 0.45rem; min-width: 0; margin: 0; }
.springbok-assignment-controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.45rem; align-items: stretch; min-width: 0; }
.springbok-assignment-form select, .springbok-cover-field select { width: 100%; min-width: 0; }
.springbok-current-player, .springbok-cover-selected { margin: 0; overflow-wrap: anywhere; }
.springbok-lineup-facts { display: grid; gap: 0.3rem; min-width: 0; margin: 0; }
.springbok-lineup-facts div { display: grid; grid-template-columns: minmax(5.2rem, max-content) minmax(0, 1fr); gap: 0.45rem; align-items: baseline; }
.springbok-lineup-facts dt { color: var(--muted); font-size: 0.74rem; font-weight: 850; text-transform: uppercase; }
.springbok-lineup-facts dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.springbok-cover-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; min-width: 0; }
.springbok-cover-field { min-width: 0; }
.springbok-cover-field label { font-size: 0.78rem; }
.springbok-lineup-warning { min-width: 0; overflow-wrap: anywhere; }
.union-candidate-heading { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 0.65rem 1rem; }
.union-candidate-heading h3 { margin: 0 0 0.25rem; }
.union-candidate-badges { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.union-candidate-facts { display: grid; gap: 0.45rem 0.85rem; margin: 0; }
.union-candidate-facts div { min-width: 0; padding: 0.35rem 0; border-bottom: 1px solid var(--line-soft); }
.union-candidate-facts dt { color: var(--muted); font-size: 0.86rem; }
.union-candidate-facts dd { overflow-wrap: anywhere; font-weight: 800; }
.union-candidate-form { display: grid; gap: 0.2rem; }
.union-candidate-form-grid { display: grid; gap: 0 0.85rem; }
.union-candidate-form .field { margin: 0.65rem 0 0; }
.union-archive-form { margin: 0; }
.union-discovered-scroll { margin-top: 0.35rem; overflow-x: hidden; }
.union-discovered-table { width: 100%; min-width: 0; table-layout: fixed; font-size: 0.86rem; }
.union-discovered-table th, .union-discovered-table td { min-width: 0; padding: 0.55rem 0.45rem; line-height: 1.32; }
.union-discovered-table thead th { line-height: 1.25; white-space: normal; }
.union-discovered-table thead th span { display: block; }
.union-discovered-table form { margin: 0; }
.union-discovered-table .player-name { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: 0.18rem 0.3rem; max-width: 100%; white-space: normal; }
.union-discovered-table .player-name > a, .union-discovered-table .player-name-text { overflow-wrap: break-word; word-break: normal; white-space: normal; }
.union-col-player { width: 12%; }
.union-col-club { width: 10%; }
.union-col-country { width: 6%; }
.union-col-union { width: 8%; }
.union-col-age { width: 4%; }
.union-col-br-position { width: 6%; }
.union-col-level { width: 4%; }
.union-col-manager-position { width: 8%; }
.union-col-union-position { width: 6%; }
.union-col-rating { width: 7%; }
.union-col-cache { width: 10%; }
.union-col-candidate { width: 8%; }
.union-col-detail { width: 5%; }
.union-player-cell, .union-club-cell, .union-position-cell { overflow-wrap: break-word; word-break: normal; white-space: normal; }
.union-country-cell, .union-number-cell { white-space: nowrap; }
.union-cell-stack { display: grid; gap: 0.22rem; align-content: start; }
.union-rating-cell strong, .union-rating-cell .muted { display: block; }
.union-membership-cell .muted, .union-rating-cell .muted { overflow-wrap: break-word; line-height: 1.35; }
.union-number-cell { text-align: right; }
.union-cache-cell { overflow-wrap: break-word; }
.union-cache-cell time { display: block; margin-top: 0.28rem; white-space: normal; }
.union-action-stack { display: grid; gap: 0.35rem; align-items: start; }
.union-discovered-table .inline-table-form { margin-top: 0.48rem; }
.union-discovered-table .button { width: 100%; min-width: 0; padding-inline: 0.35rem; white-space: normal; }
@media (max-width: 48rem) {
  .union-discovered-table,
  .union-discovered-table colgroup,
  .union-discovered-table tbody,
  .union-discovered-table tr,
  .union-discovered-table th,
  .union-discovered-table td { display: block; width: 100%; }
  .union-discovered-table { border-collapse: separate; border-spacing: 0; }
  .union-discovered-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .union-discovered-table tbody tr { display: grid; gap: 0; padding: 0.45rem 0; border-bottom: 1px solid var(--line-soft); }
  .union-discovered-table tbody th,
  .union-discovered-table tbody td { display: grid; grid-template-columns: minmax(6.8rem, 38%) minmax(0, 1fr); gap: 0.55rem; align-items: start; padding: 0.35rem 0.6rem; border-bottom: 0; text-align: left; }
  .union-discovered-table tbody th::before,
  .union-discovered-table tbody td::before { content: attr(data-label); color: var(--muted); font-size: 0.72rem; font-weight: 850; letter-spacing: 0.04em; text-transform: uppercase; }
  .union-discovered-table .button { width: max-content; max-width: 100%; padding-inline: 0.55rem; }
}
.projection-table { table-layout: fixed; }
.projection-table progress { margin-top: 0.28rem; }
.projection-current-physical { color: #0d6efd; font-weight: 850; }
.projection-current-skill { color: #198754; font-weight: 850; }
.projection-table .projection-progress-physical { --attribute-bar-colour: #0d6efd; --attribute-bar-shadow: rgb(13 110 253 / 28%); accent-color: #0d6efd; }
.projection-table .projection-progress-skill { --attribute-bar-colour: #198754; --attribute-bar-shadow: rgb(25 135 84 / 26%); accent-color: #198754; }
.projection-table .projection-progress-physical::-webkit-progress-value { background: #0d6efd; box-shadow: 0 0 0.45rem rgb(13 110 253 / 28%); }
.projection-table .projection-progress-skill::-webkit-progress-value { background: #198754; box-shadow: 0 0 0.45rem rgb(25 135 84 / 26%); }
.projection-table .projection-progress-physical::-moz-progress-bar { background: #0d6efd; box-shadow: 0 0 0.45rem rgb(13 110 253 / 28%); }
.projection-table .projection-progress-skill::-moz-progress-bar { background: #198754; box-shadow: 0 0 0.45rem rgb(25 135 84 / 26%); }
.projection-options-form { display: flex; flex-wrap: wrap; gap: 0.75rem 1rem; align-items: end; margin: 1rem 0; padding: 0.85rem; border: 1px solid var(--line); border-radius: 0.6rem; background: var(--surface-subtle); }
.projection-options-form .checkbox-field, .projection-options-form .field { margin: 0; }
.projection-training-toggle { flex: 1 1 15rem; align-self: center; }
.projection-training-count { flex: 1 1 13rem; }
.projection-training-summary { display: flex; flex: 1 1 16rem; flex-wrap: wrap; gap: 0.55rem; align-items: center; }
.plain-list { display: grid; gap: 0.7rem; padding-left: 1.2rem; }
.fixture-list { display: grid; gap: 0.75rem; margin: 0.8rem 0 0; padding: 0; list-style: none; }
.fixture-card { display: grid; gap: 0.16rem; min-width: 0; padding: 0.72rem 0; border-bottom: 1px solid var(--line-soft); }
.fixture-type { font-weight: 900; }
.fixture-type-league { color: #1f65d6; }
.fixture-type-ladder { color: #7b3bb3; }
.fixture-type-cup { color: #b47a00; }
.fixture-type-friendly { color: #168a43; }
.fixture-matchup, .fixture-score { font-weight: 750; }
.fixture-date, .fixture-id { overflow-wrap: anywhere; font-size: 0.92rem; }
.fixture-analysis-action { margin: 0.18rem 0 0; }
.fixture-analysis-link {
  width: max-content;
  max-width: 100%;
  padding: 0;
  border: 0;
  background: none;
  color: var(--brand-dark);
  cursor: pointer;
  font-size: 0.92rem;
  font-weight: 850;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}
.fixture-analysis-link:hover { color: var(--brand); }
.button-filter { display: flex; flex-wrap: wrap; gap: 0.55rem; }
.analysis-history-grid { align-items: start; }
.analysis-history-column h3 { margin-top: 0; }
.analysis-history-list { display: grid; gap: 0.75rem; margin: 0.7rem 0 0; padding: 0; list-style: none; }
.analysis-history-list li { display: grid; gap: 0.14rem; min-width: 0; padding-bottom: 0.72rem; border-bottom: 1px solid var(--line-soft); }
.analysis-history-list a { font-weight: 850; overflow-wrap: anywhere; }
.inline-filter { display: flex; flex-wrap: wrap; gap: 0.7rem; align-items: end; margin: 1rem 0; }
.inline-filter .field { flex: 1 1 16rem; margin: 0; }
.comparison-list { display: grid; gap: 0.7rem; }
.comparison-row { display: grid; gap: 0.45rem; padding: 0.7rem 0; border-bottom: 1px solid var(--line-soft); }
.comparison-row h4 { margin: 0; }
.comparison-team { display: grid; grid-template-columns: minmax(0, 1fr) minmax(3.5rem, auto); gap: 0.25rem 0.55rem; align-items: center; --attribute-bar-colour: #6d7b72; --attribute-bar-shadow: rgb(109 123 114 / 24%); }
.comparison-team--technical { --attribute-bar-colour: #198754; --attribute-bar-shadow: rgb(25 135 84 / 26%); }
.comparison-team--physical { --attribute-bar-colour: #0d6efd; --attribute-bar-shadow: rgb(13 110 253 / 28%); }
.comparison-team--gold { --attribute-bar-colour: #ffc107; --attribute-bar-shadow: rgb(255 193 7 / 34%); }
.comparison-team--home { --attribute-bar-colour: #b45309; --attribute-bar-shadow: rgb(180 83 9 / 26%); }
.comparison-team--guest { --attribute-bar-colour: #7c3aed; --attribute-bar-shadow: rgb(124 58 237 / 24%); }
.comparison-team progress { grid-column: 1 / -1; }
.position-checkboxes { display: flex; flex-wrap: wrap; gap: 0.45rem 0.75rem; margin: 1rem 0; padding: 0.65rem; border: 1px solid var(--line); border-radius: 0.5rem; }
.position-checkboxes legend { padding: 0 0.25rem; font-weight: 750; }
.position-button-groups { display: grid; gap: 1rem; }
.position-button-groups h3 { margin: 0 0 0.45rem; }
.player-position-buttons { display: grid; gap: 0.55rem; }
.player-position-button-row { display: flex; flex-wrap: wrap; gap: 0.55rem; min-width: 0; }
.player-position-buttons .button { min-width: 2.6rem; }
.player-vs-player-rating-controls { display: block; margin: 1rem 0; }
.player-matchup-grid { display: grid; gap: 1rem; margin-top: 1rem; }
.player-matchup-card { min-width: 0; padding: 1rem; border: 1px solid var(--line-soft); border-radius: 0.55rem; background: var(--surface-subtle); }
.player-matchup-card h3 { margin: 0 0 0.35rem; }
.player-matchup-card-empty { border-style: dashed; }
.player-matchup-name { margin: 0.2rem 0 0.75rem; font-size: 1.25rem; font-weight: 900; overflow-wrap: anywhere; }
.compact-definition-list { display: grid; gap: 0.45rem; margin: 0; }
.compact-definition-list div { display: grid; grid-template-columns: minmax(7rem, 0.65fr) minmax(0, 1fr); gap: 0.5rem; min-width: 0; }
.compact-definition-list dt { color: var(--muted); font-size: 0.85rem; font-weight: 800; }
.compact-definition-list dd { min-width: 0; margin: 0; font-weight: 750; overflow-wrap: anywhere; }
.player-comparison-sections { align-items: start; }
.player-comparison-section { min-width: 0; }
.player-comparison-bars { display: grid; gap: 0.75rem; }
.player-comparison-metric { display: grid; gap: 0.45rem; min-width: 0; padding: 0.75rem 0; border-bottom: 1px solid var(--line-soft); }
.player-comparison-metric h3 { margin: 0; font-size: 1.02rem; }
.player-comparison-bar-pair { display: grid; gap: 0.38rem; min-width: 0; }
.player-comparison-bar-row { display: grid; grid-template-columns: minmax(7.5rem, 0.8fr) minmax(0, 1.4fr) minmax(4.5rem, auto); gap: 0.5rem; align-items: center; min-width: 0; --attribute-bar-colour: #b45309; --attribute-bar-shadow: rgb(180 83 9 / 26%); }
.player-comparison-bar-row-guest { --attribute-bar-colour: #7c3aed; --attribute-bar-shadow: rgb(124 58 237 / 24%); }
.player-comparison-bar-row.comparison-team--technical { --attribute-bar-colour: #198754; --attribute-bar-shadow: rgb(25 135 84 / 26%); }
.player-comparison-bar-row.comparison-team--physical { --attribute-bar-colour: #0d6efd; --attribute-bar-shadow: rgb(13 110 253 / 28%); }
.player-comparison-bar-row.comparison-team--gold { --attribute-bar-colour: #ffc107; --attribute-bar-shadow: rgb(255 193 7 / 34%); }
.player-comparison-bar-row.comparison-team--home { --attribute-bar-colour: #b45309; --attribute-bar-shadow: rgb(180 83 9 / 26%); }
.player-comparison-bar-row.comparison-team--guest { --attribute-bar-colour: #7c3aed; --attribute-bar-shadow: rgb(124 58 237 / 24%); }
.player-comparison-player { min-width: 0; color: var(--muted); font-size: 0.88rem; font-weight: 850; overflow-wrap: anywhere; }
.player-comparison-unavailable { grid-column: 2 / -1; color: var(--muted); font-weight: 750; }
.player-comparison-table { display: grid; gap: 0; min-width: 0; }
.player-comparison-row { display: grid; grid-template-columns: minmax(7rem, 0.9fr) repeat(2, minmax(7rem, 1fr)) minmax(5rem, 0.65fr); gap: 0.5rem; align-items: center; min-width: 0; padding: 0.65rem 0; border-bottom: 1px solid var(--line-soft); }
.player-comparison-row > * { min-width: 0; }
.player-comparison-row-head { color: var(--muted); font-size: 0.82rem; font-weight: 850; text-transform: uppercase; letter-spacing: 0.04em; }
.player-comparison-value { display: block; margin-bottom: 0.25rem; font-weight: 850; overflow-wrap: anywhere; }
.player-comparison-edge { font-weight: 850; }

.heat-map { display: grid; gap: 1rem; margin: 1rem 0; }
.heat-map-summary { margin: 0; font-weight: 800; }
.heat-map-field {
  width: min(58rem, 100%);
  margin: 0 auto;
  padding: clamp(0.45rem, 2vw, 1rem);
  overflow: hidden;
  border: 2px solid #dcece2;
  border-radius: 0.8rem;
  background:
    linear-gradient(90deg, transparent calc(50% - 1px), rgb(240 255 245 / 55%) 50%, transparent calc(50% + 1px)),
    repeating-linear-gradient(0deg, #176a4b 0, #176a4b 4rem, #1d7655 4rem, #1d7655 8rem);
  box-shadow: var(--shadow);
}
.heat-map-field--single { padding-top: 0.8rem; }
.heat-map-team { display: grid; min-width: 0; gap: 0.55rem; }
.heat-map-team-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.2rem 0.75rem;
  padding: 0.45rem 0.6rem;
  border-radius: 0.45rem;
  background: rgb(4 30 20 / 88%);
  color: #fff;
}
.heat-map-team-heading h3, .heat-map-team-heading p { margin: 0; }
.heat-map-team-heading p { font-size: 0.88rem; }
.heat-map-direction { flex: 1 0 100%; color: #e2f4e8; font-size: 0.8rem; font-weight: 800; }
.heat-map-team--upper .heat-map-direction { text-align: right; }
.heat-map-formation {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-template-rows: repeat(9, minmax(4.8rem, auto));
  gap: clamp(0.18rem, 1vw, 0.45rem);
  min-width: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
.heat-map-field--standard .heat-map-formation {
  grid-template-columns: repeat(16, minmax(0, 1fr));
  grid-template-rows: repeat(9, minmax(4.15rem, auto));
}
.heat-map-field--lineout .heat-map-formation {
  grid-template-columns: repeat(36, minmax(0, 1fr));
  grid-template-rows: repeat(7, minmax(4.2rem, auto));
}
.heat-map-cell {
  position: relative;
  isolation: isolate;
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-self: stretch;
  justify-content: center;
  gap: 0.08rem;
  padding: 0.35rem 0.4rem 0.35rem 1.65rem;
  overflow-wrap: anywhere;
  border: 2px solid rgb(6 17 13 / 48%);
  border-radius: 0.52rem;
  box-shadow: 0 0.2rem 0.45rem rgb(0 0 0 / 24%);
  font-size: clamp(0.7rem, 2.4vw, 0.88rem);
  line-height: 1.16;
}
.heat-map-cell--incomplete { border-style: dashed; }
.heat-map-cell-number {
  position: absolute;
  top: 0.3rem;
  left: 0.3rem;
  display: inline-grid;
  width: 1.1rem;
  aspect-ratio: 1;
  place-items: center;
  border-radius: 999px;
  background: rgb(0 0 0 / 72%);
  color: #fff;
  font-size: 0.68rem;
  font-weight: 900;
}
.heat-map-cell-player, .heat-map-cell-score { font-weight: 900; }
.heat-map-cell-role, .heat-map-cell-status { font-size: 0.82em; }
.heat-map-cell-status { font-weight: 750; }
.heat-map-unit-input + .heat-map-unit-toggle {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: none;
  border-radius: inherit;
  cursor: pointer;
}
.unit-controls-enhanced .heat-map-unit-input + .heat-map-unit-toggle { display: block; }
.heat-map-unit-input:checked + .heat-map-unit-toggle {
  box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 5px #06110d;
}
.heat-map-unit-input:checked + .heat-map-unit-toggle::after {
  content: "✓";
  position: absolute;
  top: 0.22rem;
  right: 0.22rem;
  display: inline-grid;
  width: 1.15rem;
  aspect-ratio: 1;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #06110d;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 950;
  line-height: 1;
}
.heat-map-unit-input:focus-visible + .heat-map-unit-toggle {
  outline: 4px solid var(--nav-accent);
  outline-offset: -4px;
}
.heat-map-unit-input:disabled + .heat-map-unit-toggle { cursor: not-allowed; }
.heat-map-cell--unit-enabled > :not(.heat-map-unit-input, .heat-map-unit-toggle) { pointer-events: none; }
.heat-map-cell--official-best { outline: 3px solid #ffe16b; outline-offset: -3px; }
.heat-map-cell--official-best .heat-map-unit-input:checked + .heat-map-unit-toggle::after { content: "★"; }
.heat-map-field--standard .heat-map-cell {
  min-height: 3.45rem;
  align-self: center;
  padding: 0.28rem 0.32rem 0.28rem 1.45rem;
  font-size: clamp(0.68rem, 1.55vw, 0.8rem);
}
.heat-map-field--standard .heat-map-cell-number {
  top: 0.24rem;
  left: 0.24rem;
  width: 1rem;
  font-size: 0.62rem;
}
.heat-map-field--lineout .heat-map-cell {
  min-height: 3.55rem;
  align-self: center;
  padding: 0.24rem 0.16rem 0.24rem 1.1rem;
  font-size: clamp(0.54rem, 1.25vw, 0.72rem);
}
.heat-map-field--lineout .heat-map-cell-number {
  top: 0.2rem;
  left: 0.18rem;
  width: 0.78rem;
  font-size: 0.5rem;
}
.heat-map-field--lineout .heat-map-cell-player {
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.heat-map-halfway {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0.8rem -1rem;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 900;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.heat-map-halfway::before, .heat-map-halfway::after { content: ""; flex: 1; border-top: 3px solid #f6fff9; }
.heat-map-legend {
  width: min(58rem, 100%);
  margin: 0 auto;
  padding: 0.8rem;
  border: 1px solid var(--line);
  border-radius: 0.65rem;
  background: var(--surface);
}
.heat-map-legend h3 { margin: 0 0 0.55rem; }
.heat-map-legend-scale { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); margin: 0; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 0.4rem; list-style: none; }
.heat-map-legend-level { min-height: 2.25rem; padding: 0.3rem 0.12rem; text-align: center; font-size: clamp(0.5rem, 1.8vw, 0.72rem); font-weight: 900; }
.heat-map-neutral-key { display: flex; align-items: center; gap: 0.45rem; margin: 0.65rem 0 0; color: var(--muted); font-size: 0.85rem; }
.heat-map-neutral-swatch { flex: 0 0 auto; width: 1.35rem; aspect-ratio: 1; border: 2px solid var(--field-border); border-radius: 0.3rem; background: var(--panel-soft); }
.heat-map-controls fieldset { min-width: 0; margin: 0.75rem 0; padding: 0.7rem; border: 1px solid var(--line); border-radius: 0.55rem; }
.heat-map-controls legend { padding: 0 0.25rem; font-weight: 850; }
.heat-map-function-options { display: flex; flex-wrap: wrap; gap: 0.45rem 0.8rem; }
.heat-map-function-options .checkbox-field { margin: 0; }
.candidate-position-options .checkbox-field,
.candidate-position-options .button {
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 0.45rem 0.7rem;
}
.candidate-position-options .checkbox-field.is-active,
.candidate-position-options .button.is-active {
  background: var(--selected-row-bg);
  border-color: var(--accent);
  color: var(--warning-ink);
  font-weight: 700;
}
.heat-map-unit-config { min-width: 0; margin-top: 0.9rem; padding-top: 0.9rem; border-top: 1px solid var(--line-soft); }
fieldset.heat-map-unit-config { padding-top: 0.7rem; border: 1px solid var(--line); }
.heat-map-unit-config h4 { margin: 0 0 0.4rem; }
.heat-map-unit-config .field { margin: 0.65rem 0; }
.heat-map-unit-config .button { margin-top: 0.35rem; }
.heat-map-no-js-unit { margin-top: 0.7rem !important; }
.heat-map-no-js-positions { display: flex; flex-wrap: wrap; gap: 0.35rem 0.7rem; }
.heat-map-no-js-positions .checkbox-field { margin: 0; }
.heat-map-unit-pending { min-height: 1.4em; margin: 0.45rem 0 0; color: var(--warning-ink); font-size: 0.86rem; font-weight: 750; }
.heat-map-unit-band {
  min-width: 0;
  padding: 0.7rem;
  border: 3px solid rgb(6 17 13 / 72%);
  border-radius: 0.58rem;
  box-shadow: inset 0 0 0 2px rgb(255 255 255 / 68%), 0 0.2rem 0.45rem rgb(0 0 0 / 24%);
  overflow-wrap: anywhere;
}
.heat-map-unit-band-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.65rem; }
.heat-map-unit-band-heading h4, .heat-map-unit-band-heading strong, .heat-map-unit-band-heading span { margin: 0; }
.heat-map-unit-band-heading h4 { flex: 1 0 100%; }
.heat-map-unit-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.45rem; margin: 0.6rem 0 0; }
.heat-map-unit-facts > div { display: block; min-width: 0; padding: 0.35rem; border: 1px solid currentcolor; border-radius: 0.35rem; background: rgb(255 255 255 / 14%); }
.heat-map-unit-facts dt { color: inherit; opacity: 0.82; }
.heat-map-unit-facts dd { margin: 0.1rem 0 0; font-weight: 850; overflow-wrap: anywhere; }
.heat-map-unit-warning { margin: 0.55rem 0 0; font-size: 0.84rem; font-weight: 800; }
.heat-map-unit-contributor { margin: 0.55rem 0 0; font-size: 0.86rem; }
.heat-map-unit-band--pending { opacity: 0.72; }
.set-piece-context-grid { display: grid; gap: 0.75rem; }
.set-piece-context-card { min-width: 0; padding: 0.85rem; border: 1px solid var(--line-soft); border-radius: 0.55rem; background: var(--surface-subtle); }
.set-piece-context-card h3 { margin: 0 0 0.25rem; }
.set-piece-context-facts { display: grid; gap: 0.5rem; margin: 0.65rem 0 0; }
.set-piece-context-facts div { min-width: 0; padding-top: 0.45rem; border-top: 1px solid var(--line-soft); }
.set-piece-context-facts dt { color: var(--muted); font-size: 0.78rem; font-weight: 850; text-transform: uppercase; }
.set-piece-context-facts dd { margin: 0.1rem 0 0; overflow-wrap: anywhere; font-weight: 850; }
.lineout-height-chart { display: block; width: 100%; max-width: 58rem; height: auto; min-height: 13rem; margin: 0.65rem auto 0; overflow: visible; }
.lineout-height-baseline { stroke: var(--line); stroke-width: 2; }
.lineout-height-column-home { fill: #b45309; filter: drop-shadow(0 0 0.3rem rgb(180 83 9 / 30%)); }
.lineout-height-column-away { fill: #7c3aed; filter: drop-shadow(0 0 0.3rem rgb(124 58 237 / 28%)); }
.lineout-height-value { fill: var(--muted); font-size: 9px; font-weight: 850; text-anchor: middle; }
.lineout-height-label { fill: var(--ink); font-size: 11px; font-weight: 900; text-anchor: middle; }
.lineout-height-role { fill: var(--muted); font-size: 9px; font-weight: 800; text-anchor: middle; }
.lineout-height-unavailable { fill: var(--muted); font-size: 9px; font-weight: 850; text-anchor: middle; }
.heat-map-kicking-profile {
  min-width: 0;
  padding: 0.7rem;
  border: 2px solid rgb(255 255 255 / 68%);
  border-radius: 0.58rem;
  background: rgb(3 29 22 / 88%);
  color: #fff;
  box-shadow: 0 0.2rem 0.45rem rgb(0 0 0 / 24%);
}
.heat-map-kicking-profile-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, 1.25fr); align-items: end; gap: 0.7rem; }
.heat-map-kicking-profile-heading h4, .heat-map-kicking-profile-heading p { margin: 0; }
.heat-map-kicking-profile-heading p { margin-top: 0.2rem; font-size: 0.86rem; }
.heat-map-kicking-controls { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr) auto; align-items: end; gap: 0.55rem; }
.heat-map-kicking-controls .field { min-width: 0; margin: 0; }
.heat-map-kicking-controls select { width: 100%; min-width: 0; }
.heat-map-kicking-profile-body { display: grid; grid-template-columns: 6rem minmax(0, 1fr); align-items: center; gap: 0.8rem; margin-top: 0.7rem; }
.heat-map-goalposts { position: relative; width: 5.5rem; height: 3.8rem; color: #fff; }
.heat-map-goalposts::before { content: ""; position: absolute; inset: 0.2rem 1.1rem; border-right: 0.22rem solid currentcolor; border-left: 0.22rem solid currentcolor; }
.heat-map-goalposts::after { content: ""; position: absolute; top: 2rem; right: 0.7rem; left: 0.7rem; border-top: 0.22rem solid currentcolor; }
.heat-map-kicking-bands { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.45rem; margin: 0; }
.heat-map-kicking-bands > div { min-width: 0; padding: 0.5rem; border: 2px solid rgb(255 255 255 / 60%); border-radius: 0.42rem; text-align: center; overflow-wrap: anywhere; }
.heat-map-kicking-bands dt { font-size: 0.78rem; font-weight: 800; }
.heat-map-kicking-bands dd { margin: 0.1rem 0 0; font-size: 1rem; font-weight: 950; }
.lineup-editor-grid { display: grid; gap: 0 1rem; }

.heat-map-cell--level-0 { background: #841f23; color: #fff; }
.heat-map-cell--level-1 { background: #9c2823; color: #fff; }
.heat-map-cell--level-2 { background: #ae3822; color: #fff; }
.heat-map-cell--level-3 { background: #c45b20; color: #000; }
.heat-map-cell--level-4 { background: #d9871e; color: #101610; }
.heat-map-cell--level-5 { background: #e5b92d; color: #101610; }
.heat-map-cell--level-6 { background: #cad332; color: #101610; }
.heat-map-cell--level-7 { background: #91cb36; color: #101610; }
.heat-map-cell--level-8 { background: #52bd42; color: #07120d; }
.heat-map-cell--level-9 { background: #25b653; color: #07120d; }
.heat-map-cell--level-10 { background: #00c853; color: #06110d; }
.heat-map-cell--neutral { border-color: var(--field-border); background: var(--panel-soft); color: var(--ink); }

.heat-map-row-1 { grid-row: 1; }
.heat-map-row-2 { grid-row: 2; }
.heat-map-row-3 { grid-row: 3; }
.heat-map-row-4 { grid-row: 4; }
.heat-map-row-5 { grid-row: 5; }
.heat-map-row-6 { grid-row: 6; }
.heat-map-row-7 { grid-row: 7; }
.heat-map-row-8 { grid-row: 8; }
.heat-map-row-9 { grid-row: 9; }
.heat-map-col-left { grid-column: 1 / 5; }
.heat-map-col-inner-left { grid-column: 3 / 7; }
.heat-map-col-centre { grid-column: 5 / 9; }
.heat-map-col-inner-right { grid-column: 7 / 11; }
.heat-map-col-right { grid-column: 9 / 13; }
.heat-map-col-touchline { grid-column: 1 / 4; }
.heat-map-col-line { grid-column: 4 / 8; }
.heat-map-col-receiver { grid-column: 8 / 12; }

.heat-map-slot-standard-1 { grid-area: 1 / 1 / 2 / 4; }
.heat-map-slot-standard-2 { grid-area: 1 / 4 / 2 / 7; }
.heat-map-slot-standard-3 { grid-area: 1 / 7 / 2 / 10; }
.heat-map-slot-standard-4 { grid-area: 2 / 2 / 3 / 5; }
.heat-map-slot-standard-5 { grid-area: 2 / 5 / 3 / 8; }
.heat-map-slot-standard-6 { grid-area: 3 / 1 / 4 / 4; }
.heat-map-slot-standard-8 { grid-area: 3 / 4 / 4 / 7; }
.heat-map-slot-standard-7 { grid-area: 3 / 7 / 4 / 10; }
.heat-map-slot-standard-9 { grid-area: 4 / 2 / 5 / 5; }
.heat-map-slot-standard-10 { grid-area: 5 / 5 / 6 / 8; }
.heat-map-slot-standard-12 { grid-area: 6 / 8 / 7 / 11; }
.heat-map-slot-standard-13 { grid-area: 7 / 11 / 8 / 14; }
.heat-map-slot-standard-11 { grid-area: 8 / 1 / 9 / 4; }
.heat-map-slot-standard-14 { grid-area: 8 / 14 / 9 / 17; }
.heat-map-slot-standard-15 { grid-area: 9 / 7 / 10 / 10; }

.heat-map-team--upper .heat-map-slot-standard-15 { grid-area: 1 / 7 / 2 / 10; }
.heat-map-team--upper .heat-map-slot-standard-11 { grid-area: 2 / 14 / 3 / 17; }
.heat-map-team--upper .heat-map-slot-standard-14 { grid-area: 2 / 1 / 3 / 4; }
.heat-map-team--upper .heat-map-slot-standard-13 { grid-area: 3 / 11 / 4 / 14; }
.heat-map-team--upper .heat-map-slot-standard-12 { grid-area: 4 / 8 / 5 / 11; }
.heat-map-team--upper .heat-map-slot-standard-10 { grid-area: 5 / 5 / 6 / 8; }
.heat-map-team--upper .heat-map-slot-standard-9 { grid-area: 6 / 2 / 7 / 5; }
.heat-map-team--upper .heat-map-slot-standard-6 { grid-area: 7 / 1 / 8 / 4; }
.heat-map-team--upper .heat-map-slot-standard-8 { grid-area: 7 / 4 / 8 / 7; }
.heat-map-team--upper .heat-map-slot-standard-7 { grid-area: 7 / 7 / 8 / 10; }
.heat-map-team--upper .heat-map-slot-standard-4 { grid-area: 8 / 5 / 9 / 8; }
.heat-map-team--upper .heat-map-slot-standard-5 { grid-area: 8 / 2 / 9 / 5; }
.heat-map-team--upper .heat-map-slot-standard-1 { grid-area: 9 / 7 / 10 / 10; }
.heat-map-team--upper .heat-map-slot-standard-2 { grid-area: 9 / 4 / 10 / 7; }
.heat-map-team--upper .heat-map-slot-standard-3 { grid-area: 9 / 1 / 10 / 4; }

.heat-map-slot-lineout-2 { grid-area: 1 / 1 / 2 / 5; }
.heat-map-slot-lineout-1 { grid-area: 1 / 5 / 2 / 9; }
.heat-map-slot-lineout-3 { grid-area: 1 / 9 / 2 / 13; }
.heat-map-slot-lineout-4 { grid-area: 1 / 13 / 2 / 17; }
.heat-map-slot-lineout-5 { grid-area: 1 / 17 / 2 / 21; }
.heat-map-slot-lineout-6 { grid-area: 1 / 21 / 2 / 25; }
.heat-map-slot-lineout-7 { grid-area: 1 / 25 / 2 / 29; }
.heat-map-slot-lineout-8 { grid-area: 1 / 29 / 2 / 33; }
.heat-map-slot-lineout-9 { grid-area: 2 / 9 / 3 / 15; }
.heat-map-slot-lineout-10 { grid-area: 3 / 14 / 4 / 20; }
.heat-map-slot-lineout-12 { grid-area: 4 / 19 / 5 / 25; }
.heat-map-slot-lineout-13 { grid-area: 5 / 24 / 6 / 30; }
.heat-map-slot-lineout-11 { grid-area: 4 / 2 / 5 / 8; }
.heat-map-slot-lineout-14 { grid-area: 6 / 29 / 7 / 35; }
.heat-map-slot-lineout-15 { grid-area: 7 / 15 / 8 / 21; }

.heat-map-team--upper .heat-map-slot-lineout-2 { grid-area: 7 / 1 / 8 / 5; }
.heat-map-team--upper .heat-map-slot-lineout-1 { grid-area: 7 / 5 / 8 / 9; }
.heat-map-team--upper .heat-map-slot-lineout-3 { grid-area: 7 / 9 / 8 / 13; }
.heat-map-team--upper .heat-map-slot-lineout-4 { grid-area: 7 / 13 / 8 / 17; }
.heat-map-team--upper .heat-map-slot-lineout-5 { grid-area: 7 / 17 / 8 / 21; }
.heat-map-team--upper .heat-map-slot-lineout-6 { grid-area: 7 / 21 / 8 / 25; }
.heat-map-team--upper .heat-map-slot-lineout-7 { grid-area: 7 / 25 / 8 / 29; }
.heat-map-team--upper .heat-map-slot-lineout-8 { grid-area: 7 / 29 / 8 / 33; }
.heat-map-team--upper .heat-map-slot-lineout-9 { grid-area: 6 / 9 / 7 / 15; }
.heat-map-team--upper .heat-map-slot-lineout-10 { grid-area: 5 / 14 / 6 / 20; }
.heat-map-team--upper .heat-map-slot-lineout-12 { grid-area: 4 / 19 / 5 / 25; }
.heat-map-team--upper .heat-map-slot-lineout-13 { grid-area: 3 / 24 / 4 / 30; }
.heat-map-team--upper .heat-map-slot-lineout-11 { grid-area: 2 / 29 / 3 / 35; }
.heat-map-team--upper .heat-map-slot-lineout-14 { grid-area: 4 / 2 / 5 / 8; }
.heat-map-team--upper .heat-map-slot-lineout-15 { grid-area: 1 / 15 / 2 / 21; }
.automation-club-card form { display: grid; gap: 0.8rem; }
.automation-fieldset { min-width: 0; margin: 0; padding: 0.75rem; border: 1px solid var(--line); border-radius: 0.55rem; }
.automation-fieldset legend { padding: 0 0.25rem; font-weight: 850; }
.automation-fieldset .field, .automation-fieldset .checkbox-field { margin: 0.75rem 0; }
.automation-event-list { display: grid; gap: 0.6rem; margin: 0.8rem 0 0; padding: 0; list-style: none; }
.automation-event-list li { display: grid; gap: 0.2rem; min-width: 0; padding-bottom: 0.6rem; border-bottom: 1px solid var(--line-soft); }
.automation-event-list small { color: var(--muted); overflow-wrap: anywhere; }
.automation-recent-card { margin-top: 1rem; }
.competition-edition-selector, .competition-events-card { margin-top: 1rem; }
.competition-admin-actions { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: 1rem; }
.competition-admin-actions form { margin: 0; }
.competition-draw-form { display: grid; gap: 0.7rem; width: min(100%, 34rem); padding: 0.75rem; border: 1px solid var(--line); border-radius: 0.65rem; background: var(--surface-subtle); }
.competition-draw-form .field { margin: 0; }
.competition-draw-form .muted { margin: 0.2rem 0 0; }
.competition-fixture-plan { display: grid; gap: 0.9rem; margin-bottom: 1rem; }
.competition-plan-round h3 { margin: 0; }
.competition-plan-fixtures { display: grid; gap: 0.55rem; margin: 0.7rem 0 0; padding: 0; list-style: none; }
.competition-plan-fixture { display: grid; gap: 0.2rem; min-width: 0; padding: 0.65rem; border: 1px solid var(--line-soft); border-radius: 0.55rem; background: var(--surface-subtle); }
.competition-plan-fixture span, .competition-plan-fixture small { overflow-wrap: anywhere; }
.competition-plan-fixture small { color: var(--muted); }
.competition-bracket { display: grid; gap: 1rem; }
.competition-round h3 { margin: 0; }
.competition-match-list { display: grid; gap: 0.75rem; margin: 0.8rem 0 0; padding: 0; list-style: none; }
.competition-match-card { display: grid; gap: 0.35rem; min-width: 0; padding: 0.75rem; border: 1px solid var(--line-soft); border-radius: 0.55rem; background: var(--surface-subtle); }
.competition-match-card p { margin: 0; }
.competition-matchup { font-weight: 850; }
.competition-match-lifecycle { display: grid; gap: 0.35rem; margin: 0.4rem 0; padding: 0.55rem; border: 1px solid var(--line); border-radius: 0.5rem; background: var(--surface); }
.competition-match-lifecycle div { display: grid; gap: 0.18rem; padding: 0; border: 0; }
.competition-match-lifecycle dd { display: grid; gap: 0.12rem; }
.competition-match-lifecycle small { color: var(--muted); }
.competition-result-form { display: grid; gap: 0.7rem; margin-top: 0.5rem; }
.competition-result-form .field { margin: 0; }

.roster-filters { margin-bottom: 1rem; }
.roster-filters fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.roster-filters legend { margin-bottom: 0.3rem; font-size: 1.3rem; font-weight: 800; }
.filter-panel { margin-bottom: 1rem; }
.filter-panel fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.filter-panel legend { margin-bottom: 0.3rem; font-size: 1.3rem; font-weight: 800; }
.filter-grid { display: grid; gap: 0 1rem; }
.form-actions { display: flex; flex-wrap: wrap; gap: 0.65rem; margin-top: 1rem; }
.roster-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0.5rem; }
.roster-heading h2, .roster-heading p { margin-bottom: 0.7rem; }
.player-list { display: grid; gap: 0.8rem; margin: 0; padding: 0; list-style: none; }
.player-card { display: grid; gap: 0.8rem; }
.player-card-heading { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 0.6rem 1rem; }
.player-card-heading h3 { margin: 0 0 0.3rem; }
.player-name { display: inline-flex; max-width: 100%; align-items: baseline; gap: 0.3em; }
.player-name > a, .player-name-text { min-width: 0; overflow-wrap: anywhere; }
.player-star { display: inline-grid; flex: 0 0 auto; place-items: center; color: #e2a812; font-size: 0.84em; line-height: 1; transform: translateY(-0.03em); }
.player-star-glyph { font-family: "Segoe UI Symbol", Georgia, serif; text-shadow: 0 1px 0 #765000, 0 0 0.28em rgb(226 168 18 / 42%); }
.player-card-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; margin: 0; }
.player-card-facts div, .attribute-list div { display: block; min-width: 0; padding: 0.45rem 0; }
.player-card-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.65rem; }
.player-detail-header .club-title-row { max-width: 100%; }
.player-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-bottom: 1rem; }
.player-summary .metric strong { overflow-wrap: anywhere; font-size: clamp(1.15rem, 5vw, 1.8rem); }
.player-detail-grid { display: grid; gap: 1rem; }
.attribute-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1rem; margin-bottom: 0; }
.attribute-list dt { overflow-wrap: anywhere; }
.attribute-list dd { font-size: 1.05rem; font-weight: 750; }
.attribute-list-compact { margin-top: 0.65rem; }
.attribute-bar-list { display: grid; gap: 0.72rem; margin-bottom: 0; }
.attribute-bar-list .attribute-bar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(4.5rem, auto); gap: 0.35rem 0.75rem; align-items: baseline; min-width: 0; padding: 0.5rem 0; border-bottom: 1px solid var(--line-soft); --attribute-bar-colour: #6d7b72; --attribute-bar-shadow: rgb(109 123 114 / 24%); }
.attribute-bar-list .attribute-bar dt { min-width: 0; overflow-wrap: anywhere; }
.attribute-bar-list .attribute-bar dd { min-width: 0; font-size: 1.02rem; font-weight: 800; }
.attribute-bar-value-row { display: flex; flex-wrap: wrap; gap: 0.25rem 0.45rem; justify-content: flex-end; }
.attribute-bar-detail { color: var(--muted); font-size: 0.86rem; font-weight: 700; }
.attribute-bar-track { display: block; grid-column: 1 / -1; width: 100%; height: 0.78rem; overflow: hidden; border: 0; border-radius: 999px; background: var(--panel-soft); box-shadow: inset 0 0 0 1px rgb(23 34 30 / 7%); }
.attribute-bar-progress { appearance: none; -webkit-appearance: none; accent-color: var(--attribute-bar-colour); }
.attribute-bar-progress::-webkit-progress-bar { border-radius: 999px; background: var(--panel-soft); }
.attribute-bar-progress::-webkit-progress-value { border-radius: 999px; background: var(--attribute-bar-colour); box-shadow: 0 0 0.45rem var(--attribute-bar-shadow); }
.attribute-bar-progress::-moz-progress-bar { border-radius: 999px; background: var(--attribute-bar-colour); box-shadow: 0 0 0.45rem var(--attribute-bar-shadow); }
.attribute-bar-blue { --attribute-bar-colour: #0d6efd; --attribute-bar-shadow: rgb(13 110 253 / 28%); }
.attribute-bar-green { --attribute-bar-colour: #198754; --attribute-bar-shadow: rgb(25 135 84 / 26%); }
.attribute-bar-gold { --attribute-bar-colour: #ffc107; --attribute-bar-shadow: rgb(255 193 7 / 34%); }
.attribute-bar-blue .attribute-bar-progress { accent-color: #0d6efd; }
.attribute-bar-green .attribute-bar-progress { accent-color: #198754; }
.attribute-bar-gold .attribute-bar-progress { accent-color: #ffc107; }
.attribute-bar-blue .attribute-bar-progress::-webkit-progress-value { background: #0d6efd; }
.attribute-bar-green .attribute-bar-progress::-webkit-progress-value { background: #198754; }
.attribute-bar-gold .attribute-bar-progress::-webkit-progress-value { background: #ffc107; }
.attribute-bar-blue .attribute-bar-progress::-moz-progress-bar { background: #0d6efd; }
.attribute-bar-green .attribute-bar-progress::-moz-progress-bar { background: #198754; }
.attribute-bar-gold .attribute-bar-progress::-moz-progress-bar { background: #ffc107; }
.player-settings-card { margin-top: 1rem; }
.player-settings-card form { max-width: 42rem; }

.game-plan-editor-card form { display: grid; gap: 1rem; }
.game-plan-editor-grid { display: grid; gap: 1rem; }
.game-plan-zone-basics { display: grid; gap: 0 0.85rem; }
.game-plan-checkbox-group,
.game-plan-weight-group {
  min-width: 0;
  margin: 1rem 0;
  padding: 0.85rem;
  border: 1px solid var(--line);
  border-radius: 0.55rem;
  background: var(--surface-subtle);
}
.game-plan-checkbox-group legend,
.game-plan-weight-group legend {
  padding: 0 0.2rem;
  font-weight: 850;
}
.game-plan-checkbox-group .checkbox-field { margin: 0.55rem 0; }
.game-plan-weight-group .field-hint { margin: 0.1rem 0 0.75rem; }
.game-plan-weight-grid { display: grid; gap: 0.7rem; }
.game-plan-weight-row {
  display: grid;
  gap: 0.35rem;
  min-width: 0;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid var(--line-soft);
}
.game-plan-weight-row:last-child { padding-bottom: 0; border-bottom: 0; }
.game-plan-weight-row label { font-weight: 750; }
.game-plan-weight-controls {
  display: grid;
  grid-template-columns: minmax(6rem, 1fr) minmax(4.5rem, 5.5rem) auto;
  gap: 0.45rem;
  align-items: center;
  min-width: 0;
}
.game-plan-weight-controls input[type="range"] {
  min-height: 2.25rem;
  padding: 0;
  accent-color: var(--brand);
}
.game-plan-weight-controls input[type="number"] {
  width: 100%;
  min-height: 2.25rem;
  padding: 0.35rem 0.45rem;
  border: 1px solid var(--field-border);
  border-radius: 0.35rem;
  background: var(--field-bg);
  color: var(--ink);
}
.game-plan-zone-card h3 { margin-top: 0.2rem; }

@media (min-width: 42rem) {
  .header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; }
  .nav-menu { display: none; }
  .desktop-navigation { display: flex; padding: 0; }
  .desktop-navigation .nav-group { align-self: stretch; }
  .desktop-navigation .nav-parent { height: 100%; }
  .desktop-navigation .nav-group-has-menu::after {
    content: "";
    position: absolute;
    z-index: 29;
    top: 100%;
    right: -0.8rem;
    left: -0.8rem;
    display: none;
    height: 0.85rem;
  }
  .desktop-navigation .nav-submenu {
    position: absolute;
    z-index: 30;
    top: calc(100% + 0.28rem);
    left: -0.65rem;
    visibility: hidden;
    padding: 0.45rem;
    border: 1px solid rgb(15 75 53 / 20%);
    border-radius: 0.62rem;
    background: var(--surface);
    box-shadow: 0 1rem 2.2rem rgb(10 33 24 / 24%);
    opacity: 0;
    pointer-events: none;
    transform: translateY(-0.18rem);
    transition: opacity 120ms ease, transform 120ms ease, visibility 120ms ease;
  }
  .desktop-navigation .nav-submenu::before {
    content: "";
    position: absolute;
    top: -0.36rem;
    left: 1.1rem;
    width: 0.8rem;
    aspect-ratio: 1;
    background: var(--surface);
    border-top: 1px solid var(--line);
    border-left: 1px solid var(--line);
    transform: rotate(45deg);
  }
  .desktop-navigation .nav-group:hover::after,
  .desktop-navigation .nav-group:focus-within::after {
    display: block;
  }
  .desktop-navigation .nav-group:hover .nav-submenu,
  .desktop-navigation .nav-group:focus-within .nav-submenu {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }
  .desktop-navigation .nav-submenu a {
    position: relative;
    z-index: 1;
    padding: 0.5rem 0.65rem;
    color: var(--ink);
    white-space: nowrap;
  }
  .desktop-navigation .nav-submenu a:hover,
  .desktop-navigation .nav-submenu a[aria-current="page"] {
    background: var(--panel-soft);
    color: var(--brand-dark);
  }
  .metric-grid { grid-template-columns: repeat(3, 1fr); }
  .promotion-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .club-performance-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .settings-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .position-button-groups, .player-matchup-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .player-comparison-sections {
    grid-template-areas:
      "profile profile"
      "physical technical";
  }
  .player-comparison-section-profile { grid-area: profile; }
  .player-comparison-section-profile .player-comparison-bars { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .player-comparison-section-physical-attributes { grid-area: physical; }
  .player-comparison-section-technical-skills { grid-area: technical; }
  .friendly-search-heading { grid-template-columns: minmax(0, 1fr) auto; align-items: start; }
  .friendly-search-actions { justify-content: flex-end; }
  .friendly-search-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .danger-zone { grid-column: 1 / -1; }
  dl div { grid-template-columns: minmax(7rem, 0.4fr) 1fr; align-items: baseline; }
  .filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lineup-editor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .springbok-lineup-row { grid-template-columns: minmax(7.5rem, 0.75fr) minmax(13rem, 1.25fr) minmax(10rem, 0.9fr) minmax(16rem, 1.6fr); }
  .springbok-bench-row { grid-template-columns: minmax(7.5rem, 0.75fr) minmax(13rem, 1.25fr) minmax(10rem, 0.9fr) minmax(10rem, 1fr); }
  .game-plan-zone-basics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .union-candidate-facts, .union-candidate-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .player-card-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .player-card-facts div, .attribute-list div { display: block; }
  .player-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (min-width: 64rem) {
  .card-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .friendly-search-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .promotion-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lineup-editor-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .game-plan-editor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .game-plan-editor-grid > .data-card:first-child { grid-column: 1 / -1; }
  .player-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 62rem) {
  .springbok-lineup-row, .springbok-bench-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .springbok-cover-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 44rem) {
  .player-comparison-bar-row { grid-template-columns: minmax(0, 1fr) minmax(4.5rem, auto); }
  .player-comparison-bar-row progress { grid-column: 1 / -1; grid-row: 2; }
  .player-comparison-unavailable { grid-column: 1 / -1; }
  .player-comparison-row { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .player-comparison-row-head { display: none; }
  .player-comparison-edge { padding-top: 0.15rem; }
  .lineout-height-chart { min-height: 11rem; }
  .springbok-lineup-row, .springbok-bench-row { grid-template-columns: minmax(0, 1fr); }
  .springbok-cover-grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 30rem) {
  .data-card > form .button, .settings-card > form .button, .refresh-row > form, .refresh-row > form .button { width: 100%; }
  .form-actions .button, .player-card-footer .button { width: 100%; }
  .attribute-bar-list .attribute-bar { grid-template-columns: minmax(0, 1fr); }
  .attribute-bar-value-row { justify-content: flex-start; }
  .heat-map-field { padding: 0.35rem; }
  .heat-map-formation { grid-template-rows: repeat(9, minmax(5.2rem, auto)); gap: 0.15rem; }
  .heat-map-field--standard .heat-map-formation {
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: repeat(9, minmax(4.45rem, auto));
  }
  .heat-map-field--lineout .heat-map-formation {
    grid-template-rows: repeat(7, minmax(3.8rem, auto));
    gap: 0.08rem;
  }
  .heat-map-cell { padding: 0.3rem 0.24rem 0.3rem 1.35rem; font-size: 0.68rem; }
  .heat-map-field--standard .heat-map-cell { min-height: 3.65rem; padding-left: 1.3rem; font-size: 0.64rem; }
  .heat-map-field--lineout .heat-map-cell {
    min-height: 3.35rem;
    padding: 0.86rem 0.06rem 0.14rem;
    font-size: 0.48rem;
    line-height: 1.08;
  }
  .heat-map-field--lineout .heat-map-cell-number {
    top: 0.08rem;
    left: 0.08rem;
    width: 0.66rem;
    font-size: 0.42rem;
  }
  .heat-map-cell-number { top: 0.22rem; left: 0.22rem; width: 0.95rem; font-size: 0.6rem; }
  .heat-map-unit-input:checked + .heat-map-unit-toggle::after { top: 0.14rem; right: 0.14rem; width: 0.9rem; font-size: 0.58rem; }
  .heat-map-unit-facts { grid-template-columns: minmax(0, 1fr); }
  .heat-map-unit-config .button { width: 100%; }
  .heat-map-unit-band { padding: 0.55rem; }
  .heat-map-kicking-profile { padding: 0.55rem; }
  .heat-map-kicking-profile-heading, .heat-map-kicking-controls, .heat-map-kicking-profile-body { grid-template-columns: minmax(0, 1fr); }
  .heat-map-kicking-controls .button { width: 100%; }
  .heat-map-goalposts { margin: 0 auto; }
  .heat-map-kicking-bands { gap: 0.25rem; }
  .heat-map-kicking-bands > div { padding: 0.38rem 0.18rem; }
  .heat-map-slot-standard-1 { grid-area: 1 / 1 / 2 / 5; }
  .heat-map-slot-standard-2 { grid-area: 1 / 5 / 2 / 9; }
  .heat-map-slot-standard-3 { grid-area: 1 / 9 / 2 / 13; }
  .heat-map-slot-standard-4 { grid-area: 2 / 2 / 3 / 6; }
  .heat-map-slot-standard-5 { grid-area: 2 / 6 / 3 / 10; }
  .heat-map-slot-standard-6 { grid-area: 3 / 1 / 4 / 5; }
  .heat-map-slot-standard-8 { grid-area: 3 / 5 / 4 / 9; }
  .heat-map-slot-standard-7 { grid-area: 3 / 9 / 4 / 13; }
  .heat-map-slot-standard-9 { grid-area: 4 / 1 / 5 / 5; }
  .heat-map-slot-standard-10 { grid-area: 5 / 3 / 6 / 7; }
  .heat-map-slot-standard-12 { grid-area: 6 / 6 / 7 / 10; }
  .heat-map-slot-standard-13 { grid-area: 7 / 8 / 8 / 12; }
  .heat-map-slot-standard-11 { grid-area: 8 / 1 / 9 / 5; }
  .heat-map-slot-standard-14 { grid-area: 8 / 9 / 9 / 13; }
  .heat-map-slot-standard-15 { grid-area: 9 / 5 / 10 / 9; }
  .heat-map-team--upper .heat-map-slot-standard-15 { grid-area: 1 / 5 / 2 / 9; }
  .heat-map-team--upper .heat-map-slot-standard-11 { grid-area: 2 / 9 / 3 / 13; }
  .heat-map-team--upper .heat-map-slot-standard-14 { grid-area: 2 / 1 / 3 / 5; }
  .heat-map-team--upper .heat-map-slot-standard-13 { grid-area: 3 / 8 / 4 / 12; }
  .heat-map-team--upper .heat-map-slot-standard-12 { grid-area: 4 / 6 / 5 / 10; }
  .heat-map-team--upper .heat-map-slot-standard-10 { grid-area: 5 / 3 / 6 / 7; }
  .heat-map-team--upper .heat-map-slot-standard-9 { grid-area: 6 / 1 / 7 / 5; }
  .heat-map-team--upper .heat-map-slot-standard-6 { grid-area: 7 / 1 / 8 / 5; }
  .heat-map-team--upper .heat-map-slot-standard-8 { grid-area: 7 / 5 / 8 / 9; }
  .heat-map-team--upper .heat-map-slot-standard-7 { grid-area: 7 / 9 / 8 / 13; }
  .heat-map-team--upper .heat-map-slot-standard-4 { grid-area: 8 / 6 / 9 / 10; }
  .heat-map-team--upper .heat-map-slot-standard-5 { grid-area: 8 / 2 / 9 / 6; }
  .heat-map-team--upper .heat-map-slot-standard-1 { grid-area: 9 / 9 / 10 / 13; }
  .heat-map-team--upper .heat-map-slot-standard-2 { grid-area: 9 / 5 / 10 / 9; }
  .heat-map-team--upper .heat-map-slot-standard-3 { grid-area: 9 / 1 / 10 / 5; }
  .heat-map-halfway { margin-right: -0.35rem; margin-left: -0.35rem; }
  .heat-map-legend-level { min-height: 1.9rem; }
  .heat-map-legend-level span:not(.visually-hidden) { writing-mode: vertical-rl; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
.leaderboard-tabs { display: flex; flex-wrap: wrap; gap: 0.65rem; margin: 1rem 0; }
.leaderboard-tabs a, .leaderboard-tabs span { border: 1px solid #c9d4ce; border-radius: 999px; padding: 0.45rem 0.8rem; text-decoration: none; }
.leaderboard-tabs a[aria-current="page"] { background: var(--brand); color: var(--brand-contrast); }
.leaderboard-tabs span[aria-disabled="true"] { color: var(--muted); background: var(--panel-soft); }
.global-club-list { display: grid; gap: 0.55rem; }
.global-club-row { display: grid; grid-template-columns: auto minmax(14rem, 1.05fr) minmax(24rem, 1.9fr); gap: 0.65rem 0.9rem; align-items: start; padding: 0.72rem 0.85rem; }
.global-club-heading { display: flex; min-width: 0; flex-wrap: wrap; gap: 0.45rem 0.75rem; align-items: center; justify-content: space-between; }
.global-club-title { flex: 1 1 11rem; }
.global-club-row h2 { margin: 0; font-size: 1.08rem; line-height: 1.2; overflow-wrap: anywhere; }
.global-club-row p { margin: 0.22rem 0 0; color: var(--muted); font-size: 0.86rem; line-height: 1.32; }
.global-club-actions { flex: 0 0 auto; gap: 0.35rem; margin: 0; }
.global-club-actions .button { min-height: 1.85rem; padding: 0.28rem 0.48rem; }
.global-club-metrics { display: grid; grid-template-columns: repeat(5, minmax(6.65rem, 1fr)); gap: 0.45rem; margin: 0; }
.global-club-metrics div { display: grid; grid-template-columns: minmax(0, 1fr); min-width: 0; align-content: center; gap: 0.12rem; min-height: 3rem; padding: 0.4rem 0.5rem; border: 1px solid var(--line-soft); border-radius: 0.45rem; background: var(--surface-subtle); }
.global-club-metrics dt { min-width: 0; color: var(--muted); font-size: 0.68rem; font-weight: 800; line-height: 1.15; text-transform: none; }
.global-club-metrics dd { min-width: 0; color: var(--ink); font-size: 0.98rem; font-weight: 850; line-height: 1.18; overflow-wrap: normal; white-space: nowrap; }
.global-rating-change { display: inline-block; margin-left: 0.35rem; padding: 0.04rem 0.28rem; border: 1px solid var(--line-soft); border-radius: 0.35rem; font-size: 0.68rem; font-weight: 850; line-height: 1.1; vertical-align: 0.08rem; white-space: nowrap; }
.global-rating-change-positive { border-color: var(--success-line); background: var(--success-bg); color: var(--success-ink); }
.global-rating-change-negative { border-color: var(--error-line); background: var(--error-bg); color: var(--error-ink); }
.global-rating-change-neutral { border-color: var(--warning-line); background: var(--warning-bg); color: var(--warning-ink); }
.global-rank { display: inline-grid; align-self: start; width: 2.45rem; min-width: 2.45rem; aspect-ratio: 1; place-items: center; border: 1px solid var(--brand); border-radius: 0.55rem; background: var(--brand); color: var(--brand-contrast); font-size: 1rem; font-weight: 950; line-height: 1; box-shadow: 0 0 0 0.16rem rgb(103 212 158 / 14%); }
.pagination { display: flex; justify-content: center; align-items: center; gap: 1rem; margin: 1.25rem 0; }
.metric-inline { font-size: 1.5rem; font-weight: 750; }

@media (max-width: 68rem) {
  .global-club-row { grid-template-columns: auto minmax(0, 1fr); align-items: start; }
  .global-club-metrics { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 42rem) {
  .global-club-row { grid-template-columns: minmax(0, 1fr); }
  .global-rank { width: auto; min-width: 3.2rem; min-height: 1.95rem; aspect-ratio: auto; }
  .global-club-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
