:root {
  color-scheme: light;
  --navy: #0F2A44;
  --ink: #0F2A44;
  --muted: #52657A;
  --soft: #65788B;
  --line: #DFE7ED;
  --canvas: #F6F8FA;
  --surface: #fff;
  --green: #2E7D32;
  --green-dark: #25652A;
  --green-soft: #EAF4EB;
  --mint: #A7D3A6;
  --sky: #E6F2FF;
  --amber: #8b5f14;
  --amber-soft: #fcf5e8;
  --blue: #375d84;
  --blue-soft: var(--sky);
  --danger: #a54039;
  --accent: var(--green);
  --radius: 8px;
  --border-field: #9aa8b5;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body[data-page="overview"] #ranking-replay,
body[data-page="overview"] #players,
body[data-page="overview"] #setup,
body[data-page="ranking-replay"] #overview,
body[data-page="ranking-replay"] #players,
body[data-page="ranking-replay"] #setup,
body[data-page="players"] #overview,
body[data-page="players"] #ranking-replay,
body[data-page="players"] #setup,
body[data-page="setup"] #overview,
body[data-page="setup"] #players,
body[data-page="setup"] #ranking-replay { display: none; }
.header-setup-cog {
  min-width: 2.75rem;
  min-height: 2.75rem;
  width: 2.75rem;
  height: 2.75rem;
  flex-shrink: 0;
  color: var(--muted);
}
.header-setup-cog:hover { color: var(--ink); }
.header-setup-cog.is-active {
  border-color: #b9d4bf;
  background: var(--green-soft);
  color: var(--green);
}
.setup-users-lead { margin: 0 0 20px; max-width: 40rem; }
.users-create-form { margin-bottom: 24px; }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}
.players-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  margin-bottom: 16px;
}
.players-search {
  flex: 1 1 200px;
  min-width: 180px;
  min-height: 2.75rem;
  padding: 8px 12px;
  border: 1px solid var(--border-field);
  border-radius: 8px;
  font-size: 0.93rem;
}
.players-table input[type="text"],
.players-table input[type="date"] {
  width: 100%;
  max-width: 14rem;
  padding: 4px 8px;
  font: inherit;
}
.players-table .linked-events-cell {
  font-size: 0.875rem;
  color: var(--muted);
  max-width: 12rem;
}
.skip-link { position: fixed; z-index: 10; top: 8px; left: 8px; padding: 10px 14px; transform: translateY(-150%); border-radius: 6px; background: var(--navy); color: white; font-size: 0.93rem; font-weight: 700; }
.skip-link:focus { transform: translateY(0); }
html { font-size: 15px; }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  color: var(--ink);
  background: var(--canvas);
  font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  line-height: 1.55;
}
button, input, select, textarea { font: inherit; }
.muted,
.field-help,
.section-heading p,
.page-description,
.route-meta,
.route-reason,
.result-set-meta,
.result-set-status-help,
.review-note,
.notice p,
.page-footer,
.topbar-status,
.upload-actions p,
.review-panel-heading p,
.candidate-preview-heading p,
.review-participant-heading p,
.identity-review-note,
.identity-match-summary,
.ranking-points-summary {
  color: var(--muted);
  font-size: 0.93rem;
}
button { cursor: pointer; }
.app-shell { min-height: 100vh; display: flex; flex-direction: column; background: var(--canvas); }
body:not([data-authenticated="true"]) .app-shell { display: none; }
body:not([data-authenticated="true"]) .skip-link { display: none; }
.mock-login[hidden] { display: none; }
.database-startup-overlay {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgb(15 42 68 / 42%);
  backdrop-filter: blur(2px);
}
.database-startup-overlay[hidden] { display: none !important; }
.database-startup-card {
  width: min(100%, 420px);
  padding: 28px;
  border-radius: 16px;
  background: white;
  border: 1px solid var(--line);
  box-shadow: 0 18px 54px rgb(15 42 68 / 14%);
  text-align: center;
  color: var(--navy);
}
.database-startup-spinner {
  display: inline-block;
  width: 32px;
  height: 32px;
  margin-bottom: 12px;
  border: 3px solid var(--line);
  border-top-color: var(--green);
  border-radius: 50%;
  animation: database-spin 0.9s linear infinite;
}
@keyframes database-spin { to { transform: rotate(360deg); } }
.auth-gate { min-height: 100vh; background: var(--canvas); }
.auth-gate-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, 520px);
  min-height: 100vh;
}
.auth-gate-hero {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(28px, 5vw, 56px);
  color: #f4f8fb;
  background:
    radial-gradient(ellipse 80% 60% at 12% 8%, rgb(167 211 166 / 22%), transparent 58%),
    radial-gradient(ellipse 70% 55% at 88% 22%, rgb(46 125 50 / 18%), transparent 52%),
    linear-gradient(155deg, #0a2238 0%, var(--navy) 42%, #123d52 72%, #1a4d3f 100%);
  overflow: hidden;
}
.auth-gate-hero-bg {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.auth-gate-hero-art {
  position: absolute;
  right: -6%;
  top: 4%;
  width: min(92%, 520px);
  height: auto;
  opacity: 0.95;
}
.auth-gate-hero-copy {
  position: relative;
  z-index: 1;
  max-width: 28rem;
}
.auth-gate-hero-eyebrow {
  margin: 0 0 6px;
  color: var(--mint);
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.auth-gate-hero-title {
  margin: 0 0 14px;
  font-size: clamp(1.65rem, 3vw, 2.15rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.15;
}
.auth-gate-hero-lead {
  margin: 0 0 22px;
  color: rgb(230 242 255 / 88%);
  font-size: 1rem;
  line-height: 1.6;
  max-width: 32rem;
}
.auth-gate-hero-points {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 10px;
  color: rgb(230 242 255 / 78%);
  font-size: 0.9rem;
  line-height: 1.45;
}
.auth-gate-hero-points li {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.auth-gate-hero-points li::before {
  content: "";
  width: 7px;
  height: 7px;
  margin-top: 0.45em;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--mint);
  box-shadow: 0 0 0 3px rgb(46 125 50 / 35%);
}
.auth-gate-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 22px;
  padding: clamp(24px, 4vw, 48px);
  background: var(--canvas);
}
.auth-gate-brand { align-self: flex-start; }
.auth-gate-card {
  width: 100%;
  padding: clamp(24px, 3vw, 36px);
  border: 1px solid var(--line);
  border-radius: 18px;
  background: var(--surface);
  box-shadow: 0 18px 54px rgb(15 42 68 / 8%);
}
.auth-gate-card h1 { margin: 0 0 10px; color: var(--navy); font-size: 1.65rem; }
.auth-gate-lead { margin: 0 0 20px; color: var(--muted); line-height: 1.55; }
.auth-gate-dev-note {
  margin: -8px 0 18px;
  padding: 10px 12px;
  border: 1px solid #c5d9e8;
  border-radius: 10px;
  background: var(--sky);
  color: var(--navy);
  font-size: 0.87rem;
  line-height: 1.45;
}
.auth-gate-form { display: grid; gap: 14px; }
.auth-gate-form .field { margin: 0; }
.auth-gate-submit { width: 100%; margin-top: 4px; }
.org-choice-fieldset {
  margin: 0;
  padding: 0;
  border: 0;
}
.org-choice-fieldset legend {
  margin-bottom: 12px;
  padding: 0;
  color: var(--navy);
  font-size: 0.93rem;
  font-weight: 700;
}
.org-choice-list { display: grid; gap: 10px; }
.org-choice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.org-choice:hover { border-color: #c5d9e8; background: var(--sky); }
.org-choice:has(input:checked) {
  border-color: #9bc4a3;
  background: var(--green-soft);
  box-shadow: 0 0 0 1px rgb(46 125 50 / 12%);
}
.org-choice input { margin-top: 4px; accent-color: var(--green); }
.org-choice-text { display: grid; gap: 2px; color: var(--navy); }
.org-choice-text strong { font-size: 0.95rem; }
.org-choice-text small { color: var(--muted); font-size: 0.82rem; font-weight: 400; line-height: 1.4; }
.auth-gate-foot {
  margin: 0;
  color: var(--soft);
  font-size: 0.875rem;
  line-height: 1.45;
  max-width: 28rem;
}
.mock-login-card { width: min(100%, 520px); }
.text-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: 6px 10px;
  border: 0;
  border-radius: 6px;
  color: var(--green);
  background: transparent;
  font: inherit;
  font-size: 0.93rem;
  font-weight: 700;
  text-decoration: underline;
  cursor: pointer;
}
.text-button:hover { color: var(--green-dark); }
.site-header {
  position: sticky; top: 0; z-index: 4;
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px;
  padding: 14px 32px; border-bottom: 1px solid var(--line); background: var(--surface);
}
.brand { display: flex; gap: 11px; align-items: center; color: inherit; text-decoration: none; }
.brand-mark { display: block; width: 40px; height: 40px; flex: 0 0 auto; overflow: visible; }
.brand strong, .brand small { display: block; }
.brand strong { font-size: 1.05rem; font-weight: 700; letter-spacing: -.02em; color: var(--navy); }
.brand small { margin-top: 1px; color: var(--muted); font-size: 0.8rem; }
.top-nav { display: flex; justify-content: center; gap: 6px; flex-wrap: wrap; }
.top-nav-link {
  min-height: 44px; display: inline-flex; align-items: center; padding: 0 16px; border-radius: 999px;
  color: var(--muted); font-weight: 600; font-size: 0.93rem; text-decoration: none;
}
.top-nav-link:hover { background: var(--sky); color: var(--navy); }
.top-nav-link.active { background: var(--green-soft); color: var(--green); }
.site-header-status { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; color: var(--muted); font-size: 0.8rem; }
.site-header-status .text-button + .text-button { margin-left: 4px; }
.site-header-status[hidden] { display: none; }
.status-dot { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: #318264; }
.main-content { flex: 1; min-width: 0; max-width: 1180px; width: 100%; margin: 0 auto; padding: 28px 32px 0; }
.page-intro { margin-bottom: 22px; }
.page-intro h1 { margin-bottom: 6px; }
.eyebrow { margin: 0 0 8px; color: var(--soft); font-size: 0.8rem; font-weight: 700; letter-spacing: .12em; }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: 1.85rem; font-weight: 700; letter-spacing: -.03em; color: var(--navy); }
h2 { font-size: 1.15rem; font-weight: 700; color: var(--navy); }
h3 { font-size: 1.05rem; font-weight: 700; }
.page-description { margin: 0; max-width: 36rem; }
.overview-layout {
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
}
.overview-workspace {
  display: grid;
  grid-template-columns: minmax(300px, 380px) minmax(0, 1fr);
  gap: 24px 32px;
  align-items: stretch;
}
.overview-upload-column {
  display: grid;
  gap: 12px;
  min-width: 0;
  position: sticky;
  top: 5.5rem;
  align-self: start;
}
.overview-list-column {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  min-height: 280px;
}
.overview-uploads-table { flex: 0 0 auto; }
.overview-list-column .result-set-details-host {
  flex: 1 1 auto;
  margin-top: 4px;
  min-width: 0;
}
.overview-list-column .result-set-detail-panel {
  max-height: none;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}
.overview-list-column .result-set-card {
  min-width: 0;
  max-width: 100%;
}
.overview-uploads-empty {
  margin: 0;
  padding: 28px 20px;
  border: 1px dashed var(--line);
  border-radius: 10px;
  background: #fafcfd;
  text-align: center;
}
.overview-uploads-empty h3 { margin-bottom: 6px; font-size: 1rem; }
.overview-uploads-empty p { margin: 0; }
.rankings-page-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: 28px;
  align-items: start;
}
.page-intro-compact { margin-bottom: 20px; }
.rankings-rail {
  position: sticky; top: 88px; padding: 18px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface);
}
.rankings-rail-title { margin: 0 0 4px; font-size: 1rem; }
.rankings-rail-sub { margin: 0 0 14px; color: var(--muted); font-size: 0.93rem; }
.rankings-rail-nav {
  display: grid;
  gap: 16px;
  max-height: min(70vh, 36rem);
  overflow-y: auto;
  padding-right: 4px;
}
.rankings-rail-group { display: grid; gap: 8px; }
.rankings-rail-group-title {
  margin: 0;
  padding: 0 2px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.rankings-rail-group-list { display: grid; gap: 8px; }
.rankings-rail-empty { margin: 0; color: var(--muted); font-size: 0.93rem; }
.rankings-rail-item {
  display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%;
  min-height: 44px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff;
  color: var(--navy); font-weight: 600; font-size: 0.93rem; text-align: left;
}
.rankings-rail-item-text { display: grid; gap: 2px; min-width: 0; }
.rankings-rail-item-label { line-height: 1.35; }
.rankings-rail-item-meta {
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 500;
  line-height: 1.35;
}
.rankings-rail-item-meta.is-ready { color: #2f6b3b; }
.rankings-rail-item:hover { border-color: #c5d9e8; background: var(--sky); }
.rankings-rail-item.is-active { border-color: #b9d4bf; background: var(--green-soft); color: var(--green); }
.rankings-rail-chevron { color: var(--muted); font-size: 1.1rem; line-height: 1; }
.rankings-rail-item.is-active .rankings-rail-chevron { color: var(--green); }
.upload-form { display: grid; gap: 16px; margin-bottom: 0; }
.upload-panel {
  position: relative;
  width: 100%;
  max-width: none;
  margin-bottom: 0;
  padding: 20px 22px 22px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: 0 6px 24px rgb(15 42 68 / 5%);
}
.upload-panel.is-uploading .upload-form {
  pointer-events: none;
  opacity: 0.55;
}
.upload-panel-busy {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 12px;
  padding: 24px;
  border-radius: 12px;
  background: rgb(255 255 255 / 88%);
  text-align: center;
}
.upload-panel-busy[hidden] {
  display: none;
}
.upload-panel-spinner {
  display: inline-block;
  width: 32px;
  height: 32px;
  border: 3px solid var(--line);
  border-top-color: var(--green);
  border-radius: 50%;
  animation: database-spin 0.9s linear infinite;
}
.upload-panel-busy-text {
  margin: 0;
  max-width: 16rem;
  color: var(--navy);
  font-size: 0.93rem;
  font-weight: 600;
  line-height: 1.45;
}
.upload-panel-heading {
  margin: 0 0 16px;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--navy);
}
.upload-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(10rem, 11.5rem) minmax(0, 1fr);
  gap: 14px 16px;
  align-items: end;
}
.upload-form-note { margin: 0; max-width: none; }
.field-date input[type="date"] {
  display: block;
  width: 100%;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid #dce3dd;
  border-radius: 6px;
  background: white;
  color: var(--ink);
  font-weight: 400;
  font-family: inherit;
  color-scheme: light;
}
.intake-segmented {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f3f7fa;
}
.intake-segment {
  display: inline-flex;
  cursor: pointer;
}
.intake-segment input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.intake-segment span {
  display: block;
  padding: 8px 14px;
  border-radius: 6px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--muted);
  transition: background 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
}
.intake-segment input:checked + span {
  background: white;
  color: var(--navy);
  box-shadow: 0 1px 3px rgb(15 42 68 / 10%);
}
.intake-segment input:focus-visible + span {
  outline: 2px solid #7eb8e8;
  outline-offset: 1px;
}
.upload-form-footer {
  display: flex;
  justify-content: flex-end;
  padding-top: 4px;
}
#upload-button {
  min-width: 7.75rem;
}
.upload-feedback {
  margin: 10px 0 0;
  padding: 10px 12px;
  border-radius: 8px;
  font-size: 0.93rem;
  line-height: 1.45;
}
.upload-feedback--success {
  border: 1px solid #b9d4bf;
  background: var(--green-soft);
  color: #2d5a3a;
}
.result-set-section { width: 100%; min-width: 0; }
.result-set-scheme { margin: 0 0 10px; color: var(--muted); font-size: 0.9rem; font-weight: 600; }
.upload-intake-mode { border: 0; padding: 0; margin: 0; display: grid; gap: 8px; }
.upload-intake-mode .radio-inline { display: flex; align-items: center; gap: 8px; font-size: 0.95rem; }
.scorecard-bundle-summary { display: grid; gap: 12px; margin: 16px 0; min-width: 0; max-width: 100%; }
.scorecard-bundle-summary h4 { margin: 0; font-size: 1rem; }
.scorecard-points-panel,
.scorecard-compile-panel,
.scorecard-senior-points-preview,
.scorecard-compile-host {
  min-width: 0;
  max-width: 100%;
}
.workbench-table-scroll {
  overflow-x: auto;
  max-width: 100%;
  min-width: 0;
  margin-top: 4px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fff;
  -webkit-overflow-scrolling: touch;
}
.workbench-table-scroll .candidate-table {
  margin: 0;
  width: max-content;
  min-width: 100%;
}
.workbench-table-scroll .candidate-table th:last-child,
.workbench-table-scroll .candidate-table td:last-child {
  width: auto;
  text-align: inherit;
}
.workbench-table-scroll .candidate-table .cell-numeric {
  text-align: right;
}
.senior-rankings-baseline-section,
.senior-rankings-demo-section { display: grid; gap: 12px; margin-top: 20px; }
.senior-demo-embedded { margin-top: 8px; padding-top: 16px; border-top: 1px solid var(--border, #d8e0ea); }
.senior-demo-subtitle { margin: 0 0 8px; font-size: 1.05rem; }
.upload-metadata { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.upload-dropzone {
  display: grid; justify-items: center; gap: 8px; padding: 32px 24px; text-align: center;
  border: 2px dashed #c5d4dc; border-radius: 12px; background: #fafcfd; transition: border-color .15s ease, background .15s ease;
}
.upload-dropzone.is-dragover { border-color: var(--green); background: var(--green-soft); }
.upload-dropzone-icon {
  width: 48px; height: 48px; display: grid; place-items: center; border-radius: 50%;
  background: var(--sky); color: var(--navy); font-size: 1.35rem; font-weight: 700;
}
.upload-dropzone-title { margin: 0; font-weight: 600; color: var(--navy); }
.upload-dropzone-hint { margin: 0; color: var(--muted); font-size: 0.87rem; }
.upload-dropzone-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.upload-file-name { margin: 0; color: var(--green); font-size: 0.87rem; font-weight: 600; }
.recent-uploads-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.recent-uploads-heading h2 { margin: 0; }
.uploads-table-wrap { border: 1px solid var(--line); border-radius: 10px; background: var(--surface); overflow: hidden; }
.uploads-table { width: 100%; border-collapse: collapse; font-size: 0.93rem; }
.uploads-table th { padding: 11px 14px; background: #f3f7fa; color: var(--muted); font-size: 0.875rem; font-weight: 600; text-align: left; }
.uploads-table td { padding: 12px 14px; border-top: 1px solid var(--line); vertical-align: middle; }
.uploads-table-row { cursor: pointer; }
.uploads-table-row:hover td { background: #f8fbfd; }
.uploads-table-row.is-selected td { background: var(--sky); }
.uploads-table-actions { text-align: right; width: 88px; }
.status-pill { display: inline-flex; padding: 4px 10px; border-radius: 999px; font-size: 0.8rem; font-weight: 600; }
.status-pill-ready { background: var(--green-soft); color: #257050; }
.status-pill-published { background: #dce8f6; color: #1e4a7a; }
.status-pill-review { background: #f3ebe0; color: #8b5f14; }
.result-set-details-host { margin-top: 16px; }
.result-set-detail-panel { margin-top: 0; padding: 16px 18px; }
.result-set-header { align-items: flex-start; }
.result-set-header-aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  flex-shrink: 0;
}
.result-set-recheck { font-size: 0.85rem; }
.event-wizard-progress-prominent {
  margin: 0 0 14px;
  padding: 10px 12px;
  border-radius: 8px;
  background: var(--sky);
  color: var(--navy);
  font-weight: 600;
  font-size: 0.95rem;
}
.event-review-panel--wizard {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.event-review-panel--wizard .review-panel-heading h4 { font-size: 1.1rem; }
.event-routing-block { display: grid; gap: 12px; }
.event-rules-details { margin-top: 4px; color: var(--muted); font-size: 0.88rem; }
.event-rules-details > summary { cursor: pointer; font-weight: 600; color: var(--soft); }
.upload-workbook-issues {
  margin-top: 14px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #fafcfd;
  font-size: 0.9rem;
}
.upload-workbook-issues > summary { cursor: pointer; font-weight: 600; color: var(--muted); }
.upload-workbook-issues-body { margin-top: 10px; display: grid; gap: 8px; }
.upload-workbook-issue { margin: 0; line-height: 1.45; }
.upload-tab-unsupported { margin-left: 6px; font-size: 0.8rem; color: var(--muted); font-weight: 500; }
.event-wizard-summary-count { margin: 0 0 10px; color: var(--muted); }
.upload-test-setup { margin: 12px 0 18px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 9px; background: #fbfcfb; }
.upload-test-setup > summary { color: var(--green); cursor: pointer; font-weight: 700; }
.event-setup-wizard { margin-top: 16px; padding: 18px; border: 1px solid #d7e2da; border-radius: 10px; background: #fff; }
.event-wizard-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 12px; }
.event-wizard-heading h4, .event-wizard-heading p { margin: 0; }
.event-wizard-progress { color: var(--muted); font-size: .9rem; }
.event-wizard-step[hidden], .event-wizard-summary[hidden] { display: none; }
.event-wizard-step-label { color: var(--muted); font-weight: 600; }
.event-calculation-fixed { margin: 0 0 8px; color: var(--navy); font-weight: 700; }
.event-wizard-navigation { display: flex; justify-content: space-between; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.event-wizard-navigation [hidden] { display: none; }
.event-wizard-summary { padding: 12px 0 2px; }
.event-wizard-summary h5, .unsupported-event-summary h5 { margin: 0 0 8px; color: var(--navy); font-size: 1rem; }
.event-summary-list { margin: 12px 0; }
.event-summary-list h6 { margin: 0 0 6px; }
.event-summary-item { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 0; padding: 6px 0; border-bottom: 1px solid var(--line); }
.unsupported-event-summary { margin-top: 16px; padding: 14px; border: 1px solid #eadfce; border-radius: 8px; background: #fbf8f3; }
.excluded-event-summary { margin-top: 16px; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #f8faf9; }
.excluded-event-summary h5 { margin: 0 0 8px; color: var(--navy); font-size: 1rem; }
.excluded-event-summary > p { margin: 0 0 10px; color: var(--muted); }
.unsupported-event-summary > p { margin: 0 0 10px; color: var(--muted); }
.unsupported-event-item { padding: 10px 0; border-top: 1px solid #eadfce; }
.unsupported-event-item p { margin: 4px 0; }
.unsupported-event-item details { margin-top: 5px; color: var(--muted); font-size: .88rem; }
.unsupported-event-item details > summary { cursor: pointer; }
.tournament-ranking-after { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
.tournament-ranking-after h4 { margin: 0 0 6px; font-size: 1rem; }
.tournament-ranking-after .route-meta { margin: 0 0 12px; }
.result-set-section { margin-top: 0; padding-top: 0; border-top: 0; }
.scheme-page-intro { margin-bottom: 12px; }
.scheme-toolbar { justify-content: flex-end; margin-bottom: 14px; }
.button {
  display: inline-flex;
  min-height: 44px;
  justify-content: center;
  align-items: center;
  gap: 7px;
  padding: 0 16px;
  border: 1px solid transparent;
  border-radius: var(--radius);
  font-size: 0.93rem;
  font-weight: 600;
  transition: background .15s ease, border-color .15s ease;
}
.button:focus-visible, .text-button:focus-visible, .setup-tab:focus-visible, .rankings-view-tab:focus-visible, .icon-button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #79b79a; outline-offset: 2px; }
.button:active { transform: translateY(1px); }
.button-primary { background: var(--green); color: white; }
.button-primary:hover { background: var(--green-dark); }
.button-secondary { border-color: var(--border-field); background: white; color: #425048; }
.button-secondary:hover { border-color: #7a8f99; background: #f9fbf9; }
.notice { display: flex; gap: 11px; align-items: flex-start; padding: 13px 15px; border: 1px solid #d9e8de; border-radius: 8px; background: #f0f7f2; }
.notice-icon { width: 17px; height: 17px; flex: 0 0 auto; display: grid; place-items: center; margin-top: 1px; border-radius: 50%; background: var(--mint); color: var(--navy); font-size: 0.93rem; font-weight: 700; }
.notice p { margin: 0; color: #597066; font-size: 0.93rem; line-height: 1.55; }
.notice strong { color: #2f5d47; }
.scheme-section { padding-top: 8px; }
.section-heading { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 14px; }
.section-heading-actions { display: flex; align-items: center; gap: 9px; }
.section-heading h2 { margin: 0 0 4px; letter-spacing: -.02em; }
.section-heading p { margin: 0; }
.count-pill { padding: 5px 9px; border: 1px solid var(--line); border-radius: 20px; background: white; color: #58655d; font-size: 0.93rem; font-weight: 600; }
.scheme-list { display: grid; gap: 10px; }
.scheme-card { display: grid; grid-template-columns: minmax(190px, 1.25fr) minmax(125px, .8fr) minmax(160px, 1fr) minmax(130px, .8fr) auto; gap: 14px; align-items: center; padding: 17px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); box-shadow: 0 2px 6px rgb(21 40 28 / 2%); }
.scheme-title-row { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-bottom: 5px; }
.scheme-title { margin: 0; font-weight: 700; letter-spacing: -.015em; }
.scheme-subtitle { color: #68756d; font-size: 0.93rem; }
.scheme-engine { display: flex; align-items: center; gap: 7px; color: #5f6d65; font-size: 0.93rem; }
.engine-mark { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 7px; background: #edf4ef; color: var(--green); font-size: 12px; }
.scheme-meta-label { display: block; margin-bottom: 5px; color: #69766f; font-size: 0.875rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.category-list { display: flex; flex-wrap: wrap; gap: 4px; }
.category-chip { padding: 4px 6px; border-radius: 4px; background: #f3f5f2; color: #59665e; font-size: 0.82rem; font-weight: 600; }
.scheme-date { color: #5e6a62; font-size: 0.93rem; line-height: 1.6; }
.status-badge { display: inline-flex; align-items: center; gap: 5px; padding: 6px 10px; border-radius: 5px; font-size: 0.82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.status-badge::before { width: 5px; height: 5px; border-radius: 50%; background: currentColor; content: ''; }
.status-badge.active { background: var(--green-soft); color: #257050; }
.status-badge.draft { background: var(--amber-soft); color: var(--amber); }
.status-badge.retired { background: #f1f2f1; color: #68736d; }
.scheme-actions { display: grid; justify-items: end; gap: 5px; }
.end-date-control { display: grid; justify-items: end; gap: 7px; }
.end-date-form { display: grid; justify-items: end; gap: 7px; }
.end-date-form input { width: 145px; min-height: 2.75rem; padding: 8px 10px; border: 1px solid var(--border-field); border-radius: 6px; background: white; color: var(--ink); font-size: 0.93rem; }
.end-date-actions { display: flex; gap: 10px; }
.empty-state { display: grid; justify-items: center; padding: 47px 20px 51px; border: 1px dashed #d5ded6; border-radius: 9px; background: rgb(255 255 255 / 55%); text-align: center; }
.empty-icon { width: 43px; height: 43px; display: grid; place-items: center; margin-bottom: 13px; border-radius: 14px; background: var(--green-soft); color: var(--green); font-size: 24px; }
.empty-state h3 { margin-bottom: 6px; font-size: 1rem; letter-spacing: -.02em; }
.empty-state p { max-width: 300px; margin-bottom: 16px; color: var(--muted); font-size: 0.93rem; line-height: 1.5; }
.page-footer { display: flex; justify-content: space-between; gap: 12px; margin-top: 50px; padding: 15px 0 21px; border-top: 1px solid var(--line); color: #657169; font-size: 0.93rem; }
.editor-panel { margin: 19px 0 4px; padding: 20px; border: 1px solid #dbe4dc; border-radius: 10px; background: white; box-shadow: 0 8px 25px rgb(24 40 29 / 5%); }
.editor-heading { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; }
.editor-heading .eyebrow { margin-bottom: 4px; }
.editor-heading h2 { margin: 0; font-size: 17px; letter-spacing: -.03em; }
.icon-button { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 7px; background: white; color: #69756d; font-size: 20px; line-height: 1; }
.icon-button:hover { background: #f6f8f5; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 15px; }
.field { display: block; color: #45534b; font-size: 0.93rem; font-weight: 600; }
.field-wide { grid-column: 1 / -1; }
.junior-season-fields { margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 9px; }
.junior-season-fields legend { padding: 0 6px; color: var(--ink); font-size: 0.93rem; font-weight: 700; }
.required { margin-left: 0.2em; color: var(--danger); font-weight: 600; white-space: nowrap; }
.field input, .field select, .field textarea {
  display: block;
  width: 100%;
  min-height: 2.75rem;
  margin-top: 6px;
  padding: 8px 12px;
  border: 1px solid var(--border-field);
  border-radius: 6px;
  background: white;
  color: var(--ink);
  font-weight: 400;
  font-size: 0.93rem;
}
.field small { display: block; margin-top: 6px; font-weight: 400; color: var(--muted); font-size: 0.875rem; line-height: 1.45; }
.rankings-as-of.field {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-weight: 600;
}
.rankings-as-of.field input[type="date"] {
  display: inline-block;
  width: auto;
  min-width: 11rem;
  margin-top: 0;
  margin-left: 0;
}
.field textarea { resize: vertical; line-height: 1.5; }
.field input::placeholder, .field textarea::placeholder { color: #657169; }
.field-help { font-weight: 400; line-height: 1.5; }
.form-error, .load-error { margin: 13px 0 0; padding: 10px 12px; border: 1px solid #f1d3d0; border-radius: 6px; background: #fdf2f1; color: #8c3732; font-size: 0.93rem; line-height: 1.5; }
.editor-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 18px; padding-top: 15px; border-top: 1px solid #eff1ef; }
.toast { position: fixed; right: 24px; bottom: 22px; z-index: 5; max-width: min(420px, calc(100vw - 32px)); padding: 12px 16px; border: 1px solid #c7ded0; border-radius: 8px; background: #f1f8f3; box-shadow: 0 9px 30px rgb(14 38 23 / 13%); color: #285a41; font-size: 0.93rem; font-weight: 600; }
.toast.toast-error { border-color: #e8b4b4; background: #fdf2f2; color: #9b2c2c; }
.upload-metadata { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px 12px; }
.upload-metadata .field-help { grid-column: 1 / -1; }
.upload-field { display: grid; flex: 1; gap: 9px; color: #45534b; font-size: 0.93rem; font-weight: 700; }
.upload-field input { min-height: 38px; max-width: 100%; color: var(--ink); font-size: 0.93rem; font-weight: 400; }
.upload-field input::file-selector-button { min-height: 2.75rem; margin-right: 10px; padding: 0 14px; border: 1px solid var(--border-field); border-radius: 6px; background: #f8faf8; color: #425048; font: inherit; cursor: pointer; }
.upload-actions { display: grid; justify-items: end; gap: 8px; }
.upload-actions p { margin: 0; color: #506057; font-size: 0.93rem; }
.result-set-list { display: grid; gap: 11px; margin-top: 14px; }
.result-set-card { padding: 17px; border: 1px solid var(--line); border-radius: 9px; background: white; }
.result-set-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.result-set-name { margin: 0 0 4px; overflow-wrap: anywhere; font-size: 1.05rem; }
.result-set-meta, .result-set-hash { margin: 0; color: #58655d; font-size: 0.93rem; overflow-wrap: anywhere; }
.result-set-hash { margin-top: 9px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.result-set-status-help { margin: 9px 0 3px; color: #58655d; font-size: 0.93rem; line-height: 1.5; }
.discovered-events { display: grid; gap: 7px; margin-top: 15px; }
.discovered-event { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 11px; border: 1px solid var(--border-field); border-radius: 7px; background: #fbfcfb; }
.discovered-event strong, .discovered-event small { display: block; }
.discovered-event strong { font-size: 0.95rem; }
.discovered-event small { margin-top: 3px; color: #58655d; font-size: 0.93rem; }
.event-support { flex: 0 0 auto; font-size: 0.93rem; font-weight: 700; }
.event-support.supported { color: #226847; }
.event-support.unsupported { color: #775412; }
.event-diagnostic { grid-column: 1 / -1; margin: 0; color: #5d4947; font-size: 0.93rem; }
.review-note { margin: 12px 0 0; color: #58655d; font-size: 0.93rem; line-height: 1.5; }
.discovered-event-entry { display: grid; gap: 7px; }
.event-row-controls { display: flex; align-items: center; gap: 12px; }
.event-review-panel { padding: 17px; border: 1px solid #dce6de; border-radius: 8px; background: #fff; }
.review-panel-heading, .candidate-preview-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.review-panel-heading h4, .candidate-preview-heading h4 { margin: 0 0 5px; font-size: 1rem; }
.review-panel-heading p, .candidate-preview-heading p { margin: 0; color: var(--muted); font-size: 0.93rem; line-height: 1.5; }
.review-loading { margin: 0; color: var(--muted); font-size: 0.93rem; }
.workbench-spinner {
  display: inline-block;
  width: 32px;
  height: 32px;
  border: 3px solid var(--line);
  border-top-color: var(--green);
  border-radius: 50%;
  animation: database-spin 0.9s linear infinite;
}
.workbench-loading {
  display: grid;
  justify-items: center;
  gap: 12px;
  padding: 28px 20px;
  text-align: center;
}
.workbench-loading-text {
  margin: 0;
  max-width: 18rem;
  color: var(--navy);
  font-size: 0.93rem;
  font-weight: 600;
  line-height: 1.45;
}
.workbench-host-busy {
  position: relative;
}
.workbench-host-busy > .workbench-busy-overlay {
  position: absolute;
  inset: 0;
  z-index: 3;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 12px;
  padding: 20px;
  border-radius: inherit;
  background: rgb(255 255 255 / 88%);
  text-align: center;
}
.workbench-host-busy > .workbench-busy-overlay[hidden] {
  display: none !important;
}
.event-review-panel.workbench-host-busy,
.result-set-card.workbench-host-busy {
  min-height: 7.5rem;
}
.event-review-form { display: grid; gap: 16px; margin-top: 17px; }
.event-assignment { display: grid; grid-template-columns: minmax(200px, .7fr) minmax(240px, 1fr); gap: 10px 15px; align-items: start; padding: 14px; border: 1px solid #e5ebe6; border-radius: 8px; background: #fafcfb; }
.event-assignment > .field-help { margin: 4px 0 0; }
.ranking-list-picker { grid-column: 1 / -1; min-width: 0; margin: 0; padding: 11px 12px; border: 1px solid #e5ebe6; border-radius: 7px; background: white; }
.ranking-list-picker legend { padding: 0 5px; color: var(--ink); font-size: 0.93rem; font-weight: 700; }
.ranking-list-picker > .field-help { margin: 0 0 9px; }
.ranking-list-choices {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11.25rem, 1fr));
  gap: 8px;
}
.ranking-list-choice {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  min-height: 2.75rem;
  padding: 8px 12px;
  border: 1px solid var(--border-field);
  border-radius: 6px;
  background: #fbfcfb;
  color: #34443a;
  font-size: 0.93rem;
  line-height: 1.25;
  cursor: pointer;
}
.ranking-list-choice:has(input:checked) {
  border-color: #9bc4a8;
  background: #f4faf6;
}
.ranking-list-choice:has(input:focus-visible) {
  outline: 2px solid var(--green);
  outline-offset: 2px;
}
.ranking-list-choice input {
  flex: 0 0 auto;
  width: 1.125rem;
  height: 1.125rem;
  margin: 0;
  accent-color: var(--green);
}
.ranking-list-choice span {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
}
.review-event-fields { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.review-event-fields input, .bulk-category-control select { width: 100%; min-height: 2.75rem; padding: 8px 12px; border: 1px solid #9aa8b5; border-radius: 8px; background: white; color: var(--ink); font-size: 0.93rem; font-weight: 400; }
.review-participant-heading h5, .scheme-preview h5 { margin: 0 0 6px; font-size: 1rem; }
.review-participant-heading p { margin: 0; color: var(--muted); font-size: 0.9rem; }
.identity-match-summary { margin: 4px 0 0; color: var(--muted); font-size: 0.9rem; }
.player-link-instructions { margin: 0 0 12px; max-width: 40rem; }
.identity-review-section { margin-top: 16px; }
.identity-review-section-priority {
  padding: 14px 16px;
  border: 1px solid #e0cfa0;
  border-radius: 10px;
  background: #fffdf8;
}
.identity-review-section-title {
  margin: 0 0 10px;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--navy);
}
.identity-bucket-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin: 0 0 6px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f7f9fb;
  color: var(--navy);
  font-size: 0.95rem;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
  min-height: 2.75rem;
}
.identity-bucket-toggle:hover { background: #eef3f7; }
.identity-bucket-toggle:focus-visible {
  outline: 2px solid var(--green);
  outline-offset: 2px;
}
.identity-bucket-chevron {
  flex-shrink: 0;
  width: 1.25rem;
  font-size: 0.85rem;
  color: var(--muted);
}
.identity-bucket-toggle-title { flex: 1; min-width: 0; }
.identity-bucket-count {
  flex-shrink: 0;
  min-width: 1.75rem;
  padding: 2px 8px;
  border-radius: 999px;
  background: #e8eef3;
  color: var(--navy);
  font-size: 0.85rem;
  font-weight: 700;
  text-align: center;
}
.identity-bucket-hint {
  margin: 0 0 10px 2.35rem;
  max-width: 42rem;
  font-size: 0.9rem;
  color: var(--muted);
  line-height: 1.45;
}
.identity-review-section-priority .identity-bucket-toggle {
  border-color: #e0cfa0;
  background: #fffdf8;
}
.identity-bucket-panel { margin-bottom: 8px; }
.identity-bucket-panel[hidden] { display: none; }
.player-link-register-picker {
  margin-top: 10px;
  padding: 10px 12px;
  border: 1px dashed var(--line);
  border-radius: 8px;
  background: #fafbfc;
}
.player-link-register-picker > summary {
  cursor: pointer;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--navy);
  min-height: 2.75rem;
  display: flex;
  align-items: center;
}
.identity-bucket-lead { margin: 0 0 10px; max-width: 40rem; }
.bulk-category-control { display: flex; align-items: flex-end; gap: 9px; max-width: 460px; }
.bulk-category-control .field { flex: 1; }
.participant-review-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: min(28rem, 70vh);
  overflow: auto;
  padding: 2px;
}
.player-link-row {
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
.player-link-row--compact { padding: 10px 12px; }
.player-link-row-head { margin: 0 0 12px; }
.player-link-name {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--navy);
  line-height: 1.35;
}
.player-link-meta {
  margin: 4px 0 0;
  font-size: 0.88rem;
  color: var(--muted);
  line-height: 1.4;
}
.player-link-fields {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
  gap: 12px 16px;
}
.player-link-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ink);
}
.player-link-field select {
  width: 100%;
  min-height: 2.75rem;
  padding: 8px 12px;
  border: 1px solid #9aa8b5;
  border-radius: 8px;
  background: #fff;
  color: var(--ink);
  font-size: 0.93rem;
  font-weight: 400;
}
.player-link-club-status {
  margin: 0;
  grid-column: 1 / -1;
  font-size: 0.88rem;
  color: var(--muted);
}
.player-link-register-note {
  display: block;
  margin-top: 4px;
  font-size: 0.93rem;
  font-weight: 400;
  color: var(--ink);
}
.player-link-field .player-link-register-note { margin-top: 6px; }
.player-link-row--compact .player-link-fields { grid-template-columns: 1fr; }
.player-link-row--compact .player-link-row-head { margin-bottom: 8px; }
.review-confirmation {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  color: var(--ink);
  font-size: 0.93rem;
  line-height: 1.5;
}
.review-confirmation input { margin: 1px 0 0; accent-color: var(--green); }
.review-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.event-review-saved-banner {
  margin: 0 0 16px;
  padding: 14px 16px;
  border: 1px solid #2f6f4a;
  border-radius: 10px;
  background: #eef8f1;
  color: var(--ink);
}
.event-review-saved-title {
  margin: 0 0 6px;
  font-size: 1.05rem;
  font-weight: 600;
  color: #1a5c38;
}
.event-review-saved-lead,
.event-review-saved-banner > p:not(.event-review-saved-title) {
  margin: 0;
  font-size: 0.93rem;
  line-height: 1.5;
}
.event-review-saved .review-actions { margin-top: 16px; }
.candidate-preview { display: grid; gap: 15px; }
.upload-ranking-next-steps,
.upload-wizard-ranking-next-steps {
  display: grid;
  gap: 12px;
  margin-top: 8px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #f8fbf9;
}
.upload-ranking-next-steps h5,
.upload-wizard-ranking-next-steps h5 { margin: 0; font-size: 1rem; }
.upload-ranking-next-steps-list { display: grid; gap: 12px; }
.upload-ranking-next-step-card {
  padding: 12px 14px;
  border: 1px solid var(--border-field);
  border-radius: 8px;
  background: #fff;
}
.upload-ranking-next-step-title { margin: 0 0 10px; font-size: 0.93rem; }
.upload-ranking-next-step-actions { flex-wrap: wrap; }
.event-wizard-summary .upload-wizard-ranking-next-steps { margin-top: 16px; }
.candidate-warning { margin: 0; padding: 10px 12px; border: 1px solid #eadfbe; border-radius: 6px; background: #fcf8ec; color: #705d2b; font-size: 0.93rem; line-height: 1.5; }
.scheme-preview { padding-top: 13px; border-top: 1px solid #edf0ed; }
.scheme-preview > h5 { font-size: 0.93rem; }
.route-reason, .route-meta { margin: 5px 0 9px; line-height: 1.5; }
.route-meta { margin-top: 9px; }
.candidate-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 0.93rem; }
.candidate-table caption { padding: 0 0 8px; color: var(--ink); font-weight: 700; text-align: left; }
.candidate-table th { padding: 10px 12px; background: #f5f7f4; color: #526057; font-size: 0.8rem; font-weight: 600; }
.candidate-table td { padding: 10px 12px; border-top: 1px solid #edf0ed; vertical-align: top; }
.candidate-table td:last-child, .candidate-table th:last-child { width: 100px; text-align: right; }
.ranking-table td.ranking-change-cell, .ranking-table th:last-child { text-align: right; }
.ranking-expand-col { width: 34px; padding-left: 4px !important; padding-right: 4px !important; text-align: center; }
.ranking-expand-button { width: 2.75rem; height: 2.75rem; min-height: 2.75rem; min-width: 2.75rem; padding: 0; border: 1px solid var(--border-field); border-radius: 6px; background: #fff; color: var(--ink); font-size: 0.93rem; line-height: 1; cursor: pointer; }
.ranking-expand-button:hover { background: #f5f7f4; }
.ranking-standing-detail.hidden { display: none; }
.ranking-standing-detail-cell { padding: 0 8px 10px 42px !important; background: #fafbfa; border-top: none !important; }
.ranking-points-breakdown { display: grid; gap: 8px; padding: 8px 0 4px; }
.ranking-points-summary { margin: 0; color: var(--muted); font-size: 0.93rem; line-height: 1.45; }
.ranking-event-breakdown { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ranking-event-breakdown-item { display: grid; gap: 3px; padding: 8px 10px; border: 1px solid #edf0ed; border-radius: 8px; background: #fff; }
.ranking-event-breakdown-item strong { font-size: 0.93rem; font-weight: 650; }
.ranking-event-breakdown-item small { color: var(--muted); font-size: 0.82rem; line-height: 1.45; }
.ranking-event-badge { display: inline-block; width: fit-content; padding: 2px 6px; border-radius: 999px; font-size: 0.82rem; font-weight: 700; letter-spacing: 0.02em; text-transform: uppercase; }
.ranking-event-badge-counted { background: #e8f3ea; color: #2f6b3b; }
.ranking-event-badge-discarded { background: #f3f0e8; color: #6a5d45; }
.rankings-active-heading {
  margin: 0 0 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.rankings-active-list-title { margin: 0 0 4px; font-size: 1.25rem; color: var(--navy); }
.rankings-active-list-hint { margin: 0; max-width: 42rem; }
.rankings-list-empty-state {
  margin-top: 16px;
  padding: 22px 20px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface);
  max-width: 36rem;
}
.rankings-list-empty-title { margin: 0 0 8px; font-size: 1.05rem; }
.rankings-list-empty-message { margin: 0 0 16px; color: var(--muted); font-size: 0.93rem; line-height: 1.5; }
.rankings-workspace { display: grid; gap: 16px; margin-top: 8px; }
.rankings-list-nav { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
.rankings-list-nav .rankings-list-picker { font-size: 0.93rem; }
.rankings-list-nav select { min-width: min(100%, 320px); min-height: 2.75rem; border-color: var(--border-field); }
.result-set-header { flex-wrap: wrap; }
.result-set-card-actions { display: flex; gap: 8px; align-items: center; }
.legacy-replay-details { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--line); }
.legacy-replay-details summary { cursor: pointer; font-weight: 600; color: var(--muted); }
.rankings-season-banner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid var(--border-field);
  border-radius: 10px;
  background: var(--surface-muted, #f6f7f9);
  margin-bottom: 14px;
}
.rankings-season-banner-text { margin: 0; font-size: 0.93rem; color: var(--muted); }
.rankings-season-banner-link { font-size: 0.93rem; font-weight: 600; }
.rankings-as-of input[type="date"] { margin-left: 8px; }

.upload-engine-filter { margin: 0.5rem 0 0.75rem; }
.upload-engine-tabs { margin: 0; }
.upload-filter-empty { margin: 0.75rem 0; }

.rankings-view-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  width: 100%;
}
.rankings-view-tab {
  font: inherit;
  font-size: 0.93rem;
  font-weight: 600;
  min-height: 2.75rem;
  padding: 8px 14px;
  border: 1px solid var(--border-field);
  border-radius: 6px;
  background: var(--surface, #fff);
  color: var(--ink);
  cursor: pointer;
}
.rankings-view-tab.is-selected,
.rankings-view-tab[aria-selected="true"] {
  background: var(--accent-muted, #e8f0fe);
  border-color: var(--accent, #2b6cb0);
  color: var(--accent, #2b6cb0);
}
.rankings-view-status { margin: 0; width: 100%; font-size: 0.93rem; color: var(--muted); }
.rankings-toolbar-meta { display: grid; gap: 4px; width: 100%; flex: 1 1 100%; }
.rankings-baseline-chip { margin: 0; font-size: 0.93rem; color: var(--muted); }
.linked-events-cell { max-width: 16rem; font-size: 0.93rem; line-height: 1.35; vertical-align: top; }
.linked-events-summary { margin: 0; }
.linked-events-summary summary {
  cursor: pointer;
  color: var(--ink);
  font-weight: 500;
  list-style: none;
}
.linked-events-summary summary::-webkit-details-marker { display: none; }
.linked-events-list {
  margin: 6px 0 0;
  padding-left: 1.1rem;
  color: var(--muted);
  font-size: 0.875rem;
}
.rankings-baseline-chip-link { font-weight: 600; }
.rankings-mode-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
  width: 100%;
}
.rankings-mode-controls[hidden] { display: none !important; }
.rankings-timeline { margin: 0; width: 100%; font-size: 0.93rem; }
.rankings-timeline-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  width: 100%;
  padding: 8px 0 4px;
}
.rankings-timeline-node {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 8px 12px;
  border: 1px solid var(--border-field);
  border-radius: 6px;
  font-size: 0.875rem;
  min-width: 72px;
  min-height: 2.75rem;
}
.rankings-timeline-node.is-active {
  border-color: var(--accent, #2b6cb0);
  background: var(--accent-muted, #e8f0fe);
}
.rankings-timeline-node-label { font-weight: 600; }
.rankings-timeline-node-date { color: var(--text-muted, #4a5568); }
.rankings-as-of input.rankings-as-of-active {
  outline: 2px solid var(--accent, #2b6cb0);
  outline-offset: 1px;
}
.rankings-fingerprint-status.is-stale { color: var(--danger, #c53030); font-weight: 600; }
.rankings-fingerprint-status.is-fresh { color: var(--text-muted, #4a5568); }
.rankings-as-of-footer { margin: 0 0 8px; }
.setup-toolbar-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.crud-pager-host { margin-top: 10px; }
.crud-pager { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.crud-pager-meta { font-size: 0.93rem; color: var(--muted); }
.setup-club-aliases-field { margin-top: 12px; border: 1px solid var(--line, #e2e8f0); border-radius: 8px; padding: 12px 14px; }
.setup-club-aliases-field .field-help { margin: 4px 0 10px; }
.setup-club-alias-list { margin: 0 0 10px; padding-left: 1.1rem; font-size: 0.93rem; list-style: disc; }
.setup-club-alias-empty { list-style: none; margin-left: -1.1rem; color: var(--muted); font-size: 0.93rem; }
.setup-club-alias-item { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 4px; }
.setup-club-add-alias { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 6px; }
.setup-club-retired td { color: var(--text-muted, #4a5568); }
.setup-list-retired td { color: var(--text-muted, #4a5568); }
.setup-list-actions { white-space: nowrap; }
.players-history-dialog { max-width: 520px; border: 1px solid var(--line); border-radius: 10px; padding: 16px 18px; }
.players-history-list { margin: 12px 0 16px; padding-left: 1.1rem; display: grid; gap: 10px; }
.players-history-item { display: grid; gap: 4px; }
.button-small { min-height: 2.75rem; font-size: 0.875rem; padding: 6px 12px; }
.rankings-tab-panels { display: grid; gap: 14px; }
.rankings-tab-panel { display: grid; gap: 12px; }
.rankings-list-toolbar {
  display: grid;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fafcfb;
}
.rankings-list-toolbar .rankings-view-tabs { width: 100%; }
.rankings-season-picker { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); }
.rankings-season-picker select { min-height: 2.75rem; border: 1px solid var(--border-field); border-radius: 7px; background: white; padding: 8px 12px; color: var(--ink); font-size: 0.93rem; }
.rankings-table-host {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fff;
}
.ranking-table { width: 100%; border-collapse: collapse; }
.ranking-table caption {
  padding: 12px 14px 10px;
  text-align: left;
  font-size: 0.93rem;
  font-weight: 700;
  color: var(--navy);
  border-bottom: 1px solid var(--line);
  caption-side: top;
}
.ranking-table thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #f4f7f5;
  font-size: 0.93rem;
}
.ranking-table tbody tr.ranking-standing-row:nth-child(4n+1) { background: #fbfcfb; }
.ranking-table tbody td { padding-top: 10px; padding-bottom: 10px; font-size: 0.93rem; }
.candidate-table td small { display: block; margin-top: 4px; color: var(--muted); font-size: 0.87rem; line-height: 1.45; }
.excluded-participants { margin-top: 10px; color: #5c5140; font-size: 0.93rem; }
.excluded-participants summary { cursor: pointer; font-weight: 700; }
.excluded-participants ul { display: grid; gap: 5px; margin: 8px 0 0; padding-left: 18px; color: #62594c; line-height: 1.45; }

@media (max-width: 950px) {
  .main-content { padding: 22px 20px 0; }
  .rankings-page-layout { grid-template-columns: 1fr; }
  .overview-workspace { grid-template-columns: 1fr; }
  .overview-upload-column { position: static; }
  .overview-list-column { min-height: 0; }
  .rankings-rail { position: static; order: -1; }
  .scheme-card { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; }
  .scheme-card > :first-child { grid-column: 1; grid-row: 1; }
  .scheme-engine-block { grid-column: 2; grid-row: 1; }
  .scheme-categories-block { grid-column: 1 / span 2; grid-row: 2; }
  .scheme-actions { grid-column: 3; grid-row: 1 / span 2; }
  .scheme-date-block { display: none; }
}
.replay-section { margin-top: 32px; }
.setup-section { max-width: 1180px; margin: 28px auto 0; }
.setup-tabs { display: flex; gap: 8px; border-bottom: 1px solid var(--line); margin: 24px 0; }
.setup-tab { appearance: none; border: 0; border-bottom: 3px solid transparent; background: transparent; color: var(--muted); font: inherit; font-size: 0.93rem; font-weight: 650; min-height: 2.75rem; padding: 12px 16px; cursor: pointer; }
.setup-tab.active { color: var(--navy); border-bottom-color: var(--green); }
.setup-section button:focus-visible { outline: 3px solid #79b79a; outline-offset: 2px; }
.setup-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 20px 0 16px; }
.setup-toolbar h2 { margin: 0 0 4px; }
.setup-toolbar .field-help { margin: 0; max-width: 760px; }
.setup-table-wrap { margin-top: 18px; }
.setup-table th, .setup-table td { vertical-align: middle; }
.setup-list-name { font-weight: 650; }
.setup-scheme-links { color: var(--muted); max-width: 28rem; }
.setup-editor { margin: 20px 0; padding: 22px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); box-shadow: 0 8px 28px rgb(15 42 68 / 6%); }
.setup-editor h3 { margin: 0 0 16px; }
.setup-form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.setup-form-grid small { display: block; color: var(--muted); font-size: 0.875rem; margin-top: 5px; }
.setup-form-grid input, .setup-form-grid select, .setup-scheme-form input[name="displayName"] { display: block; width: 100%; margin-top: 6px; padding: 10px 12px; border: 1px solid #bdc9d3; border-radius: 7px; font: inherit; background: #fff; color: var(--ink); }
.setup-engine-options { margin: 20px 0 0; padding: 14px 16px 16px; border: 1px solid var(--line); border-radius: 9px; }
.setup-engine-options legend { padding: 0 6px; font-weight: 650; }
.setup-engine-options > div { display: flex; flex-wrap: wrap; gap: 12px 22px; }
.setup-engine-option, .setup-switch { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); }
.setup-engine-option small { color: var(--muted); }
.setup-form-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.setup-scheme-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.setup-scheme-card { padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.setup-scheme-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.setup-scheme-heading h3 { margin: 0; font-size: 18px; }
.setup-scheme-form > .field { display: block; }
.setup-scheme-form .field input { display: block; }
.setup-scheme-form > .field + .setup-switch { margin-top: 12px; }
.setup-scheme-card .setup-form-actions { justify-content: flex-start; margin-top: 14px; }
.setup-rule-note { max-width: 850px; padding: 16px 18px; margin-top: 22px; border-left: 4px solid #c58a25; background: var(--amber-soft); color: #604510; line-height: 1.5; }
@media (max-width: 760px) {
  .setup-toolbar { align-items: flex-start; flex-direction: column; }
  .setup-form-grid, .setup-scheme-cards { grid-template-columns: 1fr; }
  .setup-table { min-width: 690px; }
}
.replay-panel, .replay-session-card { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.replay-panel { display: grid; gap: 18px; }
.replay-choice-group { min-width: 0; border: 1px solid var(--line); border-radius: 10px; padding: 14px; }
.replay-choice-group legend { padding: 0 6px; font-size: 0.93rem; font-weight: 700; }
.replay-choice-list { display: grid; gap: 8px; }
.replay-scheme-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(210px, 0.8fr); align-items: center; gap: 12px; padding: 8px 10px; background: #f7f8f6; border-radius: 8px; }
.replay-engine-name { font-size: 0.93rem; font-weight: 650; }
.replay-version-label { display: grid; gap: 4px; color: var(--muted); font-size: 0.93rem; }
.replay-version-label select { min-height: 2.75rem; border: 1px solid var(--border-field); border-radius: 7px; background: white; padding: 8px 12px; color: var(--ink); font-size: 0.93rem; }
.replay-order-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; padding: 10px; background: #f7f8f6; border-radius: 8px; }
.replay-upload-settings { display: grid; gap: 10px; min-width: 0; }
.replay-upload-engines { display: grid; gap: 5px; padding-left: 25px; }
.replay-upload-engine-list { display: flex; flex-wrap: wrap; gap: 7px 16px; }
.replay-upload-engine { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 0.93rem; cursor: pointer; }
.replay-upload-engine input { accent-color: var(--accent); }
.replay-choice { display: flex; align-items: flex-start; gap: 9px; font-size: 0.93rem; line-height: 1.45; cursor: pointer; }
.replay-choice input { margin-top: 3px; accent-color: var(--accent); }
.replay-order-actions { display: flex; gap: 5px; }
.replay-move { width: 2.75rem; height: 2.75rem; min-height: 2.75rem; min-width: 2.75rem; }
.replay-history { display: grid; gap: 14px; margin-top: 16px; }
.export-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 14px; }
.replay-session-card h3 { margin: 0 0 5px; font-size: 16px; }
.replay-scheme-result { border-top: 1px solid var(--line); margin-top: 15px; padding-top: 12px; }
.replay-scheme-result h4 { margin: 0 0 9px; font-size: 14px; }
.replay-scheme-result details { border: 1px solid var(--line); border-radius: 9px; padding: 11px; margin-top: 8px; }
.replay-scheme-result summary { cursor: pointer; font-size: 0.93rem; font-weight: 650; }
.replay-lists { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; margin-top: 14px; overflow-x: auto; }
.replay-ranking-list h5 { margin: 0 0 7px; font-size: 0.93rem; }
.replay-ranking-list table { width: 100%; border-collapse: collapse; font-size: 0.93rem; }
.replay-ranking-list caption { padding-bottom: 7px; color: var(--ink); font-size: 0.93rem; font-weight: 700; text-align: left; }
.replay-ranking-list th, .replay-ranking-list td { border-bottom: 1px solid var(--line); padding: 6px 5px; text-align: left; }
.replay-diagnostics { margin: 10px 0; padding-left: 20px; color: var(--muted); font-size: 0.875rem; }
.replay-evidence-contributions, .replay-evidence-sources { margin: 8px 0; padding-left: 20px; }
.replay-evidence-contributions > li { margin: 6px 0; }
.replay-evidence-sources { color: var(--muted); font-size: 0.875rem; }
.replay-evidence-provenance { display: block; margin-top: 3px; overflow-wrap: anywhere; }
.replay-assumptions { color: var(--muted); font-size: 0.93rem; margin: 10px 0 0; }

@media (max-width: 900px) {
  .auth-gate-layout { grid-template-columns: 1fr; }
  .auth-gate-hero {
    min-height: auto;
    padding: 28px 24px 32px;
  }
  .auth-gate-hero-art {
    right: -18%;
    top: -8%;
    width: min(78%, 380px);
    opacity: 0.55;
  }
  .auth-gate-hero-points { display: none; }
  .auth-gate-hero-lead { margin-bottom: 0; font-size: 0.93rem; }
  .auth-gate-panel { padding-top: 8px; }
}

@media (max-width: 800px) {
  .site-header { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto auto; padding: 12px 16px; gap: 8px; }
  .brand { grid-column: 1; }
  .site-header-status { grid-column: 1; grid-row: 2; justify-content: flex-start; flex-wrap: wrap; font-size: 0.75rem; }
  .top-nav { grid-column: 1; grid-row: 3; justify-content: flex-start; overflow-x: auto; }
  .main-content { padding: 18px 16px 0; }
  h1 { font-size: 1.45rem; }
  .upload-metadata { grid-template-columns: 1fr; }
  .scheme-card { grid-template-columns: minmax(0, 1fr) auto; gap: 12px 8px; padding: 13px; }
  .scheme-card > :first-child { grid-column: 1; grid-row: 1; }
  .scheme-engine-block { grid-column: 1; grid-row: 2; }
  .scheme-categories-block { grid-column: 1; grid-row: 3; }
  .scheme-date-block { display: block; grid-column: 1; grid-row: 4; }
  .scheme-actions { grid-column: 2; grid-row: 1 / span 5; align-self: center; }
  .form-grid { grid-template-columns: 1fr; gap: 11px; }
  .field-wide { grid-column: auto; }
  .editor-panel { padding: 15px; }
  .page-footer { flex-direction: column; margin-top: 35px; }
  .upload-form-footer { flex-direction: column; align-items: stretch; }
  .upload-form-footer .button { width: 100%; }
  .discovered-event { align-items: flex-start; flex-direction: column; }
  .event-review-panel { padding: 13px; }
  .review-event-fields { grid-template-columns: 1fr; }
  .player-link-fields { grid-template-columns: 1fr; }
  .event-assignment { grid-template-columns: 1fr; }
  .ranking-list-picker { grid-column: auto; }
  .ranking-list-choices { grid-template-columns: repeat(auto-fill, minmax(min(100%, 11.25rem), 1fr)); }
  .participant-review-list { max-height: 310px; }
  .candidate-table th, .candidate-table td { padding: 6px 4px; }
  .replay-panel, .replay-session-card { padding: 13px; }
  .replay-lists { grid-template-columns: 1fr; }
  .replay-scheme-row { grid-template-columns: 1fr; }
  .replay-order-row { grid-template-columns: minmax(0, 1fr) auto; }
  .replay-upload-engines { padding-left: 24px; }
  .replay-ranking-list { overflow-x: auto; }
  .replay-ranking-list table { min-width: 540px; }
}

@media (max-width: 560px) {
  .section-heading { align-items: flex-start; }
  .section-heading-actions { align-items: flex-end; flex-direction: column; }
}

.senior-demo-panel { display: flex; flex-direction: column; gap: 14px; }
.senior-demo-title { margin: 0; font-size: 1.15rem; color: var(--navy); }
.senior-demo-checks { display: flex; flex-wrap: wrap; gap: 8px; }
.senior-demo-chip { font-size: 0.85rem; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line); background: var(--canvas); }
.senior-demo-chip.is-ok { background: var(--green-soft); border-color: #b9d9bb; color: var(--green-dark); }
.senior-demo-chip.is-warn { background: var(--amber-soft); border-color: #e8d4a8; color: var(--amber); }
.senior-demo-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 0.85rem; color: var(--muted); }
.senior-demo-flow-step { padding: 4px 8px; background: var(--sky); border-radius: var(--radius); color: var(--blue); }
.senior-demo-flow-arrow { color: var(--soft); }
.senior-demo-tabs { display: flex; gap: 8px; }
.senior-demo-tab { border: 1px solid var(--line); background: var(--surface); padding: 6px 12px; border-radius: var(--radius); cursor: pointer; font: inherit; color: var(--ink); }
.senior-demo-tab.is-selected { border-color: var(--green); background: var(--green-soft); }
.senior-demo-table { font-size: 0.85rem; }
.senior-demo-table th { white-space: nowrap; }
.senior-demo-table th:nth-child(1),
.senior-demo-table td:nth-child(1) {
  min-width: 9rem;
  max-width: 14rem;
  white-space: normal;
  overflow-wrap: anywhere;
}
.cell-numeric { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.senior-demo-table th:nth-child(1),
.senior-demo-table td:nth-child(1),
.senior-demo-table th:nth-child(n+4):nth-child(-n+8),
.senior-demo-table td:nth-child(n+4):nth-child(-n+8) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.senior-demo-match-table th:nth-child(3),
.senior-demo-match-table td:nth-child(3),
.senior-demo-match-table th:nth-child(5),
.senior-demo-match-table td:nth-child(5) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.senior-opening-baseline-table th:nth-child(1),
.senior-opening-baseline-table td:nth-child(1),
.senior-opening-baseline-table th:nth-child(4),
.senior-opening-baseline-table td:nth-child(4) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.ranking-table thead th:nth-child(2),
.ranking-table tbody td:nth-child(2),
.ranking-table thead th:nth-child(n+5):not(:last-child),
.ranking-table tbody td:nth-child(n+5):not(.ranking-change-cell):not(:last-child) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.baseline-import-preview-table th:nth-child(4),
.baseline-import-preview-table td:nth-child(4) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.scorecard-compile-preview .candidate-table th:nth-child(1),
.scorecard-compile-preview .candidate-table td:nth-child(1) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.replay-ranking-list th:nth-child(1),
.replay-ranking-list td:nth-child(1),
.replay-ranking-list th:nth-child(3),
.replay-ranking-list td:nth-child(3) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.senior-demo-row-warn td { background: var(--amber-soft); }
.senior-demo-row-error td { background: #fdecea; }
.senior-demo-exceptions summary { cursor: pointer; font-weight: 600; }
.senior-demo-exception-list { margin: 8px 0 0; padding-left: 1.2rem; }
.senior-demo-sources summary { cursor: pointer; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
