:root {
  --ink: #16201d;
  --muted: #5e6b65;
  --paper: #f7faf6;
  --surface: #ffffff;
  --line: #dce4df;
  --green: #2f7d5f;
  --green-dark: #1e5f48;
  --coral: #e96f4f;
  --gold: #d7a841;
  --blue: #315f8f;
  --aqua: #3b8f8c;
  --clay: #c86446;
  --sun: #f0c45a;
  --mist: #e9f3f7;
  --warm: #fff7e6;
  --shadow: 0 22px 70px rgba(35, 49, 43, 0.12);
  --font-sans: Aptos, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
}

* {
  box-sizing: border-box;
}

html {
  max-width: 100%;
  overflow-x: hidden;
  scrollbar-gutter: stable;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
  line-height: 1.5;
  max-width: 100%;
  overflow-x: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

button,
input,
select,
textarea {
  font: inherit;
}

strong {
  font-weight: 700;
}

.site-header {
  align-items: center;
  background: rgba(248, 250, 247, 0.94);
  border-bottom: 1px solid rgba(220, 228, 223, 0.75);
  display: flex;
  justify-content: center;
  left: 0;
  padding: 10px clamp(18px, 5vw, 64px);
  position: fixed;
  right: 0;
  top: 0;
  z-index: 10;
  backdrop-filter: blur(16px);
}

.site-header-inner {
  align-items: center;
  display: grid;
  flex: none;
  gap: 28px;
  grid-template-columns: minmax(96px, 1fr) auto minmax(96px, 1fr);
  margin: 0 auto;
  max-width: 1180px;
  min-height: 68px;
  width: 100%;
}

.brand {
  align-items: center;
  display: inline-flex;
  flex-direction: column;
  font-weight: 700;
  gap: 2px;
  justify-self: start;
  letter-spacing: 0;
  line-height: 1;
}

.brand-logo {
  border-radius: 6px;
  height: 38px;
  object-fit: contain;
  width: 38px;
}

.brand-wordmark {
  display: grid;
  font-size: 0.78rem;
  font-weight: 800;
  line-height: 0.9;
  text-align: center;
  text-transform: uppercase;
}

.nav-links {
  color: var(--muted);
  display: flex;
  font-size: 0.95rem;
  font-weight: 600;
  gap: 26px;
  grid-column: 2;
  justify-self: center;
}

.nav-links a {
  border: 1px solid transparent;
  border-radius: 8px;
  color: inherit;
  padding: 8px 10px;
}

.nav-links a.active,
.nav-links a[aria-current="page"] {
  background: var(--green);
  border-color: var(--green);
  color: #ffffff;
}

.account-menu-shell {
  justify-self: end;
  position: relative;
}

.header-actions {
  align-items: center;
  display: inline-flex;
  gap: 8px;
  grid-column: 3;
  justify-self: end;
  position: relative;
}

.mobile-menu-button {
  align-items: center;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  cursor: pointer;
  display: none;
  flex-direction: column;
  gap: 4px;
  height: 42px;
  justify-content: center;
  padding: 0;
  width: 42px;
}

.mobile-menu-button span {
  background: currentColor;
  border-radius: 999px;
  display: block;
  height: 2px;
  width: 18px;
}

.mobile-menu-button:hover,
.mobile-menu-button:focus-visible {
  background: #edf3ef;
}

#account-button {
  width: 100%;
}

.account-menu {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 16px 42px rgba(35, 49, 43, 0.16);
  min-width: 160px;
  padding: 6px;
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 20;
}

.account-menu button {
  background: transparent;
  border: 0;
  border-radius: 6px;
  color: var(--ink);
  cursor: pointer;
  display: block;
  font-weight: 700;
  min-height: 38px;
  padding: 0 10px;
  text-align: left;
  width: 100%;
}

.account-menu button:hover {
  background: #eef4f0;
}

.credits-shell {
  display: grid;
  gap: 18px;
  margin: 0 auto;
  max-width: 1180px;
  grid-template-columns: minmax(0, 0.9fr) minmax(280px, 1.1fr);
}

.credit-balance-panel,
.credit-purchase-panel {
  background:
    linear-gradient(135deg, rgba(47, 125, 95, 0.1), rgba(233, 111, 79, 0.08) 46%, rgba(255, 255, 255, 0) 78%),
    var(--surface);
  border: 1px solid rgba(47, 125, 95, 0.2);
  border-radius: 8px;
  box-shadow: 0 18px 48px rgba(35, 49, 43, 0.08);
  overflow: hidden;
  padding: 24px;
  position: relative;
}

.credit-balance-panel::before,
.credit-purchase-panel::before {
  background: linear-gradient(180deg, var(--green), var(--coral));
  content: "";
  inset: 0 auto 0 0;
  position: absolute;
  width: 5px;
}

.credit-balance-panel span {
  color: var(--green-dark);
  display: block;
  font-size: 0.78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.credit-balance-panel strong {
  display: block;
  font-size: clamp(2.5rem, 5vw, 3.6rem);
  line-height: 1;
  margin: 12px 0;
}

.credit-balance-panel p {
  color: var(--muted);
  margin: 0;
  max-width: 38rem;
}

.credit-purchase-panel h3 {
  font-size: 1.28rem;
  line-height: 1.2;
  margin: 0 0 16px;
}

.credit-preset-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.credit-preset-button {
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(47, 125, 95, 0.16);
  border-radius: 8px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
  color: var(--ink);
  cursor: pointer;
  font-size: 1.05rem;
  font-weight: 800;
  min-height: 64px;
}

.credit-preset-button:hover {
  border-color: var(--green);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9), 0 12px 30px rgba(35, 49, 43, 0.1);
  color: var(--green-dark);
}

.health-shell {
  display: grid;
  gap: 18px;
  margin: 0 auto;
  max-width: 1180px;
}

.health-panel {
  background:
    linear-gradient(135deg, rgba(47, 125, 95, 0.08), rgba(43, 103, 159, 0.06) 48%, rgba(255, 255, 255, 0) 82%),
    var(--surface);
  border: 1px solid rgba(47, 125, 95, 0.18);
  border-radius: 8px;
  box-shadow: 0 18px 48px rgba(35, 49, 43, 0.08);
  padding: 22px;
}

.health-panel .admin-panel-header p,
.restart-panel p {
  color: var(--muted);
  margin: 4px 0 0;
}

.health-status-pill {
  align-items: center;
  background: #e8f6ef;
  border: 1px solid rgba(47, 125, 95, 0.18);
  border-radius: 999px;
  color: var(--green-dark);
  display: inline-flex;
  font-size: 0.82rem;
  font-weight: 800;
  min-height: 34px;
  padding: 0 14px;
}

.health-status-pill.warning {
  background: #fff4de;
  border-color: #e3bc65;
  color: #8a5b00;
}

.health-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 16px;
}

.health-card {
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(43, 103, 159, 0.16);
  border-radius: 8px;
  min-height: 104px;
  padding: 14px;
}

.health-card span {
  color: var(--green-dark);
  display: block;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.health-card strong {
  display: block;
  font-size: 1.15rem;
  line-height: 1.2;
  margin-top: 10px;
  overflow-wrap: anywhere;
}

.health-card small {
  color: var(--muted);
  display: block;
  font-size: 0.82rem;
  line-height: 1.35;
  margin-top: 6px;
  overflow-wrap: anywhere;
}

.restart-panel {
  align-items: center;
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.nav-links a:hover {
  color: var(--ink);
}

.hero {
  margin: 0;
  min-height: 100vh;
  overflow: hidden;
  position: relative;
  width: 100%;
}

.hero-image {
  height: 100%;
  inset: 0;
  object-fit: cover;
  object-position: 74% center;
  position: absolute;
  width: 100%;
}

.hero-overlay {
  background:
    linear-gradient(90deg, rgba(248, 250, 247, 0.98) 0%, rgba(248, 250, 247, 0.88) 36%, rgba(248, 250, 247, 0.26) 66%, rgba(248, 250, 247, 0.04) 86%),
    linear-gradient(180deg, rgba(22, 32, 29, 0.02), rgba(22, 32, 29, 0.08));
  inset: 0;
  position: absolute;
}

.hero-content {
  margin: 0 auto;
  max-width: 1280px;
  padding: clamp(122px, 13vh, 160px) clamp(22px, 6vw, 72px) 68px;
  position: relative;
  transform: translateX(clamp(-300px, calc((100vw - 1280px) * -0.65), 0px));
  z-index: 1;
}

.eyebrow {
  color: var(--green-dark);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0;
  margin: 0 0 12px;
  text-transform: uppercase;
}

h1,
h2,
h3,
p {
  margin-top: 0;
}

h1 {
  font-size: clamp(3.4rem, 6.8vw, 6.4rem);
  letter-spacing: 0;
  line-height: 0.9;
  margin-bottom: 20px;
  max-width: 100%;
  overflow-wrap: anywhere;
}

.hero-copy {
  color: #34413d;
  font-size: clamp(1.1rem, 2vw, 1.35rem);
  max-width: 560px;
}

.auth-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 30px;
}

.hero-actions {
  align-items: end;
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(240px, 1fr) auto;
  margin-top: 24px;
  max-width: 1120px;
}

.hero-actions .primary-button {
  justify-self: end;
}

.primary-button,
.ghost-button,
.outline-button {
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  font-weight: 700;
  min-height: 46px;
  padding: 0 18px;
  transition: transform 160ms ease, box-shadow 160ms ease, background 160ms ease;
}

.primary-button {
  background: var(--green);
  box-shadow: 0 14px 32px rgba(47, 125, 95, 0.26);
  color: #fff;
}

.primary-button:hover {
  background: var(--green-dark);
  transform: translateY(-1px);
}

.primary-button:disabled,
.outline-button:disabled,
.ghost-button:disabled {
  cursor: wait;
  opacity: 0.65;
  transform: none;
}

.primary-button.dark {
  background: var(--ink);
  box-shadow: none;
}

.ghost-button {
  background: transparent;
  color: var(--ink);
}

.ghost-button:hover,
.outline-button:hover {
  background: #edf3ef;
}

.outline-button {
  background: transparent;
  border: 1px solid var(--line);
  color: var(--ink);
}

.outline-button.danger-button {
  border-color: rgba(190, 70, 48, 0.42);
  color: #a63a26;
}

.outline-button.danger-button:hover {
  background: #fff0ed;
}

.secondary-link {
  background: rgba(255, 255, 255, 0.82);
  color: var(--ink);
  display: inline-flex;
  font-weight: 700;
  min-height: 42px;
  padding: 0 18px;
  position: relative;
  width: fit-content;
}

.secondary-link::after {
  background: var(--coral);
  bottom: 7px;
  content: "";
  height: 2px;
  left: 18px;
  position: absolute;
  right: 18px;
}

.trust-strip {
  display: none;
}

.trust-strip div {
  background: rgba(255, 255, 255, 0.04);
  padding: 24px clamp(18px, 4vw, 52px);
}

.trust-strip strong,
.trust-strip span {
  display: block;
}

.trust-strip strong {
  font-size: 1.45rem;
}

.trust-strip span {
  color: rgba(255, 255, 255, 0.7);
}

.section {
  padding: 86px clamp(18px, 5vw, 64px);
}

.section-heading {
  align-items: end;
  display: flex;
  gap: 32px;
  justify-content: space-between;
  margin: 0 auto 32px;
  max-width: 1180px;
}

.section-heading h2 {
  font-size: clamp(2rem, 4vw, 3.3rem);
  letter-spacing: 0;
  line-height: 1.05;
  margin-bottom: 0;
  max-width: 760px;
}

.workspace-title-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.workspace-title-row h2,
.workspace-title-row h3 {
  margin-bottom: 0;
}

.workspace-title-row .light-badge {
  margin-top: 4px;
}

.feature-grid,
.tournament-list {
  display: grid;
  gap: 16px;
  margin: 0 auto;
  max-width: none;
}

.feature-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.feature-card,
.tournament-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 24px;
}

.feature-card {
  min-height: 228px;
}

.feature-icon {
  align-items: center;
  background: #edf6f0;
  border-radius: 8px;
  color: var(--green-dark);
  display: inline-flex;
  font-size: 0.82rem;
  font-weight: 700;
  height: 36px;
  justify-content: center;
  margin-bottom: 28px;
  width: 42px;
}

.feature-card h3,
.tournament-card h3 {
  font-size: 1.24rem;
  margin-bottom: 10px;
}

.feature-card p,
.tournament-card p,
.auth-copy {
  color: var(--muted);
  margin-bottom: 0;
}

.tournaments-section {
  background: transparent;
  min-height: 0;
  padding-top: 0;
}

.hero .tournaments-section {
  margin-top: 10px;
  max-width: 1120px;
  padding: 0;
}

.hero .search-field {
  background: rgba(255, 255, 255, 0.88);
  box-shadow: 0 18px 44px rgba(35, 49, 43, 0.08);
  min-width: 0;
  width: 100%;
}

.my-tournaments-section {
  background: #fbfdfb;
}

.hidden {
  display: none !important;
}

body.app-mode .hero,
body.app-mode .trust-strip,
body.app-mode #features,
body.app-mode #tournaments,
body.app-mode #pricing {
  display: none;
}

body.app-mode .nav-links a[href="#features"],
body.app-mode .nav-links a[href="#pricing"] {
  display: none;
}

body.app-mode main {
  padding-top: 74px;
}

body.app-mode .section {
  min-height: calc(100vh - 74px);
  padding-top: 42px;
  scroll-margin-top: 74px;
}

.my-tournaments-groups {
  display: grid;
  gap: 18px;
  margin: 0 auto;
  max-width: 1180px;
}

.my-tournament-group h3,
.my-tournament-group summary {
  color: var(--ink);
  cursor: pointer;
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 14px;
}

.my-tournament-list {
  display: grid;
  gap: 18px;
}

.my-tournament-card {
  background:
    linear-gradient(135deg, rgba(47, 125, 95, 0.1), rgba(233, 111, 79, 0.08) 46%, rgba(255, 255, 255, 0) 78%),
    var(--surface);
  border: 1px solid rgba(47, 125, 95, 0.2);
  border-radius: 8px;
  box-shadow: 0 18px 48px rgba(35, 49, 43, 0.08);
  display: grid;
  gap: 18px;
  overflow: hidden;
  padding: 24px;
  position: relative;
}

.my-tournament-card::before {
  background: linear-gradient(180deg, var(--green), var(--coral));
  content: "";
  inset: 0 auto 0 0;
  position: absolute;
  width: 5px;
}

.my-tournament-card-header {
  align-items: start;
  display: flex;
  gap: 16px;
  justify-content: space-between;
}

.my-tournament-title-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 4px;
}

.my-tournament-card h4 {
  font-size: 1.28rem;
  line-height: 1.2;
  margin: 0;
}

.tournament-type-pill {
  background: #eef5fb;
  border: 1px solid rgba(49, 95, 143, 0.2);
  border-radius: 999px;
  color: #23506f;
  flex: 0 0 auto;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1;
  padding: 6px 10px;
  text-transform: uppercase;
}

.tournament-type-pill-light {
  background: #fff3d6;
  border-color: rgba(215, 168, 65, 0.38);
  color: #7a4a14;
}

.tournament-type-pill-ladder {
  background: #e6f4ee;
  border-color: rgba(47, 125, 95, 0.26);
  color: #126348;
}

.tournament-type-pill-league {
  background: #f2edf8;
  border-color: rgba(103, 78, 142, 0.24);
  color: #5b4378;
}

.my-tournament-card p {
  color: var(--muted);
  margin-bottom: 0;
}

.role-badge {
  background: #e8f6ef;
  border-radius: 999px;
  color: var(--green-dark);
  flex: 0 0 auto;
  font-size: 0.78rem;
  font-weight: 700;
  padding: 7px 10px;
}

.organizers-panel {
  max-width: 560px;
}

.organizers-dialog .close-button {
  flex: 0 0 auto;
  position: static;
}

.organizers-form {
  align-items: end;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 18px;
}

.organizers-list {
  display: grid;
  gap: 10px;
  margin-top: 18px;
}

.organizer-row {
  align-items: center;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(47, 125, 95, 0.18);
  border-radius: 8px;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 10px 12px;
}

.organizer-row span {
  display: grid;
  gap: 3px;
  overflow-wrap: anywhere;
}

.organizer-row strong {
  color: var(--ink);
}

.organizer-row small {
  color: var(--muted);
  font-weight: 600;
}

.light-badge {
  background: #fff3d6;
  border: 1px solid rgba(215, 168, 65, 0.38);
  border-radius: 999px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.72);
  color: #7a4a14;
  flex: 0 0 auto;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0;
  padding: 5px 10px;
  text-transform: uppercase;
}

.tournament-details {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(180px, 1fr) minmax(240px, 1.5fr) minmax(120px, 0.7fr);
  margin: 0;
}

.tournament-details div {
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(47, 125, 95, 0.16);
  border-radius: 8px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
  padding: 14px;
}

.tournament-details .date-detail {
  background: #eff8f3;
  border-color: rgba(47, 125, 95, 0.25);
}

.tournament-details .location-detail {
  background: #eef5fb;
  border-color: rgba(49, 95, 143, 0.22);
}

.tournament-details .court-detail {
  background: #fff7e5;
  border-color: rgba(215, 168, 65, 0.28);
}

.tournament-details dt {
  color: var(--green-dark);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.tournament-details dd {
  color: var(--ink);
  font-size: 1.02rem;
  font-weight: 650;
  line-height: 1.4;
  margin: 5px 0 0;
}

.tournament-details small {
  color: var(--muted);
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
  margin-top: 4px;
}

.my-tournament-description {
  border-top: 1px solid var(--line);
  padding-top: 14px;
}

.my-tournament-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.my-tournament-actions .primary-button,
.my-tournament-actions .outline-button {
  min-width: 132px;
}

.my-tournament-actions .outline-button:disabled:not(.current-page-button) {
  background: #f4f7f5;
  color: var(--muted);
  cursor: default;
  opacity: 0.72;
}

.my-tournament-actions .current-page-button,
.my-tournament-actions .current-page-button:disabled {
  background: var(--green);
  border-color: var(--green);
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.28), 0 10px 24px rgba(47, 125, 95, 0.18);
  color: #fff;
  cursor: default;
  opacity: 1;
}

.my-matches-section {
  padding-top: 36px;
}

.my-matches-section .section-heading,
.my-leaderboards-section .section-heading,
.my-match-list {
  margin-left: auto;
  margin-right: auto;
  max-width: 1180px;
  width: 100%;
}

.my-match-list {
  display: grid;
  gap: 22px;
  margin-top: 26px;
}

.my-match-section-block {
  display: grid;
  gap: 14px;
}

.my-match-section-block > h3,
.my-match-section-block > summary {
  color: var(--ink);
  cursor: default;
  font-size: 1.25rem;
  font-weight: 800;
  line-height: 1.2;
  margin: 0;
}

.my-match-past-section > summary {
  cursor: pointer;
  border-radius: 6px;
  display: inline-flex;
  justify-self: start;
  padding: 2px 4px;
}

.my-match-past-section > summary:focus {
  outline: none;
}

.my-match-past-section > summary:focus-visible {
  box-shadow: 0 0 0 3px rgba(47, 125, 95, 0.22);
  color: var(--green-dark);
}

.my-match-section-list {
  display: grid;
  gap: 22px;
}

.my-match-card {
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(20, 37, 31, 0.12);
  border-radius: 8px;
  box-shadow: 0 18px 42px rgba(20, 37, 31, 0.1);
  overflow: hidden;
}

.my-match-card header {
  background: #f7faf8;
  border-bottom: 1px solid rgba(20, 37, 31, 0.1);
  padding: 18px 22px;
}

.my-match-card h3 {
  color: #31506f;
  font-size: 1.08rem;
  margin: 0;
}

.past-match-card {
  background: #f3f5f4;
  border-color: rgba(20, 37, 31, 0.08);
  box-shadow: none;
  color: #63706b;
}

.past-match-card header {
  background: #eef1ef;
  border-color: rgba(20, 37, 31, 0.08);
}

.past-match-card h3,
.past-match-card .my-match-matchup strong {
  color: #53605b;
}

.past-match-card .my-match-meta span,
.past-match-card .score-input {
  background: #e9eeeb;
  border-color: rgba(20, 37, 31, 0.1);
  color: #66736e;
}

.past-match-card .my-match-scoreboard {
  border-color: rgba(20, 37, 31, 0.08);
}

.past-match-card .my-match-status:not(.disputed) {
  color: #74807b;
}

.my-match-body {
  padding: 24px 22px;
  text-align: center;
}

.my-match-meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-bottom: 20px;
}

.my-match-meta span {
  background: #f4f5f4;
  border-radius: 999px;
  color: var(--ink);
  font-size: 0.86rem;
  padding: 10px 13px;
}

.my-match-scoreboard {
  border-top: 1px solid rgba(20, 37, 31, 0.1);
  column-gap: 10px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 48px 14px 48px minmax(0, 1fr);
  margin-top: 20px;
  row-gap: 10px;
  padding-top: 18px;
}

.my-match-matchup,
.my-match-score-list,
.my-match-score-row {
  display: contents;
}

.my-match-matchup strong {
  font-size: 1.2rem;
  min-width: 0;
}

.my-match-team-one {
  grid-column: 1 / 3;
  justify-self: end;
  text-align: right;
}

.my-match-team-two {
  grid-column: 4 / 6;
  justify-self: start;
  text-align: left;
}

.my-match-versus {
  color: var(--muted);
  grid-column: 3;
  font-weight: 800;
  justify-self: center;
}

.my-match-score-list {
  margin: 0;
}

.my-match-score-row {
  align-items: center;
}

.my-match-score-row > span {
  color: var(--muted);
  font-size: 0.86rem;
  justify-self: end;
}

.my-match-score-row > span:first-child {
  grid-column: 1;
}

.my-match-score-row > span:nth-child(3) {
  color: var(--muted);
  font-weight: 800;
  grid-column: 3;
  justify-self: center;
}

.my-match-score-row .score-input[data-match-score-team="1"] {
  grid-column: 2;
  justify-self: end;
}

.my-match-score-row .score-input[data-match-score-team="2"] {
  grid-column: 4;
  justify-self: start;
}

.my-match-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-top: 20px;
}

.my-match-status {
  color: var(--muted);
  font-size: 0.86rem;
  margin: 18px 0 0;
}

.my-match-status.disputed {
  color: #9b2f18;
  font-weight: 700;
}

.my-leaderboards-section {
  padding-top: 36px;
}

.my-leaderboards-shell {
  background:
    linear-gradient(135deg, rgba(47, 125, 95, 0.08), rgba(233, 111, 79, 0.06) 46%, rgba(255, 255, 255, 0) 78%),
    var(--surface);
  border: 1px solid rgba(47, 125, 95, 0.18);
  border-radius: 8px;
  box-shadow: 0 18px 48px rgba(35, 49, 43, 0.08);
  display: grid;
  gap: 18px;
  margin: 26px auto 0;
  max-width: 1180px;
  overflow: hidden;
  padding: 20px;
  position: relative;
  width: 100%;
}

.my-leaderboards-shell::before {
  background: linear-gradient(180deg, var(--green), var(--coral));
  content: "";
  inset: 0 auto 0 0;
  position: absolute;
  width: 5px;
}

.my-leaderboards-picker {
  max-width: 620px;
}

.my-leaderboard-summary {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.my-leaderboard-summary div {
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(47, 125, 95, 0.16);
  border-radius: 8px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
  padding: 14px 16px;
}

.my-leaderboard-summary div:nth-child(1) {
  background: #eff8f3;
  border-color: rgba(47, 125, 95, 0.25);
}

.my-leaderboard-summary div:nth-child(2) {
  background: #f7fbf8;
  border-color: rgba(47, 125, 95, 0.2);
}

.my-leaderboard-summary div:nth-child(3) {
  background: #eef5fb;
  border-color: rgba(49, 95, 143, 0.22);
}

.my-leaderboard-summary div:nth-child(4) {
  background: #fff7e5;
  border-color: rgba(215, 168, 65, 0.28);
}

.my-leaderboard-summary span {
  color: var(--green-dark);
  display: block;
  font-size: 0.76rem;
  font-weight: 800;
  text-transform: uppercase;
}

.my-leaderboard-summary strong {
  display: block;
  margin-top: 6px;
}

.data-tabs {
  background: #eaf3ef;
  border: 1px solid rgba(47, 125, 95, 0.18);
  border-radius: 8px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 5px;
}

.data-tab {
  background: transparent;
  border: 0;
  border-radius: 6px;
  color: var(--muted);
  cursor: pointer;
  font-weight: 800;
  min-height: 42px;
}

.data-tab.active {
  background: var(--green);
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.28), 0 10px 24px rgba(47, 125, 95, 0.18);
  color: #fff;
  cursor: default;
}

.my-leaderboard-ladder-notice {
  align-items: center;
  background: #eff8f3;
  border: 1px solid rgba(47, 125, 95, 0.24);
  border-radius: 8px;
  color: var(--ink);
  display: flex;
  gap: 16px;
  justify-content: center;
  padding: 18px 20px;
  text-align: center;
}

.my-leaderboard-ladder-notice.hidden {
  display: none;
}

.my-leaderboard-ladder-notice strong,
.my-leaderboard-ladder-notice span {
  display: block;
}

.my-leaderboard-ladder-notice strong {
  color: var(--green-dark);
  font-size: 0.82rem;
  letter-spacing: 0;
  text-transform: uppercase;
}

.my-leaderboard-ladder-notice span {
  display: block;
  font-size: 1.06rem;
  font-weight: 800;
  line-height: 1.4;
  margin-top: 7px;
}

.my-leaderboard-ladder-notice .compact-button {
  margin-left: 4px;
}

.my-leaderboard-panel {
  display: grid;
  gap: 18px;
}

.my-leaderboard-panel.hidden {
  display: none;
}

.faq-section {
  padding-top: 36px;
}

.faq-shell {
  display: grid;
  gap: 18px;
  margin: 26px auto 0;
  max-width: 980px;
  width: 100%;
}

.faq-search-field {
  margin: 0;
}

.faq-results-count {
  color: var(--muted);
  font-size: 0.94rem;
  font-weight: 700;
}

.faq-groups {
  display: grid;
  gap: 18px;
}

.faq-group {
  background: var(--surface);
  border: 1px solid rgba(47, 125, 95, 0.16);
  border-radius: 8px;
  box-shadow: 0 18px 48px rgba(35, 49, 43, 0.08);
  display: grid;
  gap: 10px;
  padding: 20px;
}

.faq-group h3 {
  color: var(--green-dark);
  font-size: 1.18rem;
  margin: 0 0 4px;
}

.faq-item {
  background: #fbfdfb;
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.faq-item summary {
  cursor: pointer;
  font-weight: 800;
  list-style: none;
  padding: 14px 16px;
}

.faq-item summary::-webkit-details-marker {
  display: none;
}

.faq-item summary::after {
  color: var(--green);
  content: "+";
  float: right;
  font-weight: 900;
}

.faq-item[open] summary::after {
  content: "-";
}

.faq-item div {
  border-top: 1px solid var(--line);
  color: var(--muted);
  padding: 0 16px 14px;
}

.faq-item p {
  margin: 12px 0 0;
}

.faq-intro {
  color: var(--muted);
  font-size: 1.02rem;
  line-height: 1.55;
  margin: 10px 0 0;
  max-width: 62ch;
}

.faq-jump-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
}

.faq-jump-nav a {
  background: #f3f8f5;
  border: 1px solid rgba(47, 125, 95, 0.18);
  border-radius: 999px;
  color: var(--green-dark);
  font-size: 0.86rem;
  font-weight: 800;
  padding: 7px 12px;
  text-decoration: none;
}

.faq-jump-nav a:hover,
.faq-jump-nav a:focus-visible {
  background: #e8f3ec;
  border-color: rgba(47, 125, 95, 0.34);
}

.faq-footer-note {
  color: var(--muted);
  font-size: 0.96rem;
  line-height: 1.55;
  margin: 4px 0 0;
}

.my-leaderboard-panel .category-data-panel > header,
.my-leaderboard-panel .leaderboard-group > h4 {
  padding: 22px 24px 0;
}

.my-leaderboard-panel .category-data-panel > header h3,
.my-leaderboard-panel .leaderboard-group > h4 {
  margin: 0;
}

.my-leaderboard-match {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, #f7fbf8 100%);
  border: 1px solid rgba(47, 125, 95, 0.18);
  box-shadow: 0 14px 34px rgba(35, 49, 43, 0.06);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  margin: 0 24px 14px;
  padding: 16px 18px 18px;
  position: relative;
}

.my-leaderboard-match.played {
  background: linear-gradient(180deg, #ffffff 0%, #eff8f3 100%);
}

.my-leaderboard-match.disputed {
  border-color: #e8a58d;
}

.my-leaderboard-match-status {
  background: #eef7f3;
  border: 1px solid rgba(47, 125, 95, 0.18);
  border-radius: 999px;
  color: var(--green-dark);
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1;
  padding: 7px 10px;
  position: absolute;
  right: 12px;
  top: 12px;
}

.my-leaderboard-match.disputed .my-leaderboard-match-status {
  background: #fff1ea;
  border-color: #e8a58d;
  color: #a74623;
}

.my-leaderboard-match-meta {
  align-items: center;
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.84rem;
  gap: 10px;
  justify-content: center;
}

.my-leaderboard-match-meta span {
  background: rgba(47, 125, 95, 0.07);
  border-radius: 999px;
  padding: 5px 9px;
}

.my-leaderboard-match .leaderboard-matchup {
  align-items: center;
  display: grid;
  gap: 8px 12px;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  justify-items: center;
  text-align: center;
}

.my-leaderboard-match .leaderboard-matchup strong:first-child {
  justify-self: end;
}

.my-leaderboard-match .leaderboard-matchup strong:last-child {
  justify-self: start;
}

.my-leaderboard-match-result {
  align-items: center;
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.84rem;
  gap: 10px;
  justify-content: center;
  text-align: center;
}

.my-leaderboard-match-result strong {
  background: #eef7f3;
  border: 1px solid rgba(47, 125, 95, 0.16);
  border-radius: 999px;
  color: var(--green-dark);
  min-width: 82px;
  padding: 5px 12px;
}

.create-tournament-section {
  background: #eef4f0;
}

.create-tournament-section.edit-mode .section-heading {
  display: none;
}

.signup-fees-panel {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(47, 125, 95, 0.18);
  border-radius: 8px;
  display: grid;
  gap: 18px;
  padding: 16px;
}

.signup-fees-panel.hidden,
.signup-fees-panel[hidden] {
  display: none !important;
}

.discount-code-editor {
  display: grid;
  gap: 12px;
}

.discount-code-header {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.discount-code-header span {
  color: var(--green-dark);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.discount-code-list {
  display: grid;
  gap: 10px;
}

.discount-code-row {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(120px, 1fr) minmax(90px, 0.6fr) minmax(140px, 0.85fr) minmax(100px, 0.6fr) minmax(70px, 0.45fr) auto;
}

.discount-code-row-expired {
  background: #fff4f1;
  border-radius: 8px;
  padding: 8px;
}

.discount-code-expired-note {
  color: #b42318;
  display: block;
  font-weight: 600;
  margin-top: 6px;
}

.public-discount-code-row {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin-top: 4px;
}

.public-fee-discount-row {
  align-items: center;
  color: var(--muted);
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.public-fee-discount-row .text-button {
  flex: 0 0 auto;
  font-size: 0.85rem;
  padding: 0;
}

.public-payment-summary .compact-form-field {
  margin: 0;
}

.public-payment-summary [data-public-payment-message]:not(.visible) {
  display: none;
  margin: 0;
}

.public-payment-summary .auth-message.visible {
  font-size: 0.9rem;
  margin-top: 8px;
  padding: 8px 10px;
}

.compact-empty-state {
  padding: 14px;
}

.edit-tournament-pane {
  align-items: start;
  border-bottom: 1px solid rgba(47, 125, 95, 0.18);
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(0, 1fr) auto;
  margin: 0 auto 24px;
  max-width: 1180px;
  padding-bottom: 24px;
}

.edit-tournament-pane.hidden {
  display: none;
}

.edit-tournament-copy h3 {
  color: var(--ink);
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1;
  margin: 0;
}

.edit-tournament-copy p:last-child {
  color: var(--muted);
  font-size: 1.04rem;
  margin: 12px 0 0;
  max-width: 640px;
}

.edit-tournament-pane-actions {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 10px;
  justify-content: flex-end;
}

.edit-tournament-pane-actions .primary-button,
.edit-tournament-pane-actions .outline-button {
  min-width: 142px;
  padding-inline: 24px;
  width: 100%;
}

.edit-tournament-delete-message {
  grid-column: 1 / -1;
  margin: -6px 0 0;
}

.edit-tournament-metrics {
  display: grid;
  gap: 12px;
  grid-column: 1 / -1;
  grid-template-columns: minmax(180px, 0.85fr) minmax(280px, 1.52fr) minmax(150px, 0.55fr) minmax(150px, 0.72fr);
}

.edit-tournament-metrics > div,
.edit-tournament-metric-button,
.edit-tournament-metric-link {
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid rgba(47, 125, 95, 0.16);
  border-radius: 8px;
  color: inherit;
  font: inherit;
  text-align: left;
  padding: 16px 18px;
}

.edit-tournament-metrics span,
.edit-tournament-metrics small {
  display: block;
}

.edit-tournament-metrics span {
  color: var(--ink);
  font-size: 1.22rem;
  font-weight: 700;
  line-height: 1.15;
  overflow-wrap: anywhere;
  white-space: pre-line;
}

.edit-tournament-metrics small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin-bottom: 9px;
  text-transform: uppercase;
}

.edit-tournament-metric-button,
.edit-tournament-metric-link {
  cursor: pointer;
  text-decoration: none;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.edit-tournament-metric-button:hover,
.edit-tournament-metric-button:focus-visible,
.edit-tournament-metric-link:hover,
.edit-tournament-metric-link:focus-visible {
  border-color: rgba(47, 125, 95, 0.45);
  box-shadow: 0 14px 28px rgba(47, 125, 95, 0.12);
  outline: 0;
  transform: translateY(-1px);
}

.edit-tournament-metric-button span,
.edit-tournament-metric-link span {
  color: var(--green-dark);
}

.edit-tournament-public-metric {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto 1fr;
}

.edit-tournament-public-metric small {
  grid-column: 1;
}

.edit-tournament-public-link-row {
  align-items: center;
  display: flex;
  gap: 12px;
  min-width: 0;
}

.edit-tournament-public-link-row a {
  min-width: 0;
  text-decoration: none;
}

.edit-tournament-public-link-row span {
  color: var(--green-dark);
  font-size: 0.95rem;
  line-height: 1.2;
}

#edit-tournament-public-qr {
  align-self: stretch;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  flex: 0 0 auto;
  grid-column: 2;
  grid-row: 1 / -1;
  height: 100%;
  max-height: 100px;
  min-height: 88px;
  object-fit: contain;
  padding: 5px;
  width: auto;
}

.edit-tournament-metric-button.compact-metric {
  align-content: start;
  display: grid;
  gap: 8px;
  padding-inline: 14px;
}

.edit-tournament-metric-button.compact-metric small {
  margin-bottom: 0;
}

.edit-tournament-metric-button.ladder-action-metric {
  align-content: center;
  background: var(--green);
  border-color: var(--green);
  box-shadow: 0 16px 34px rgba(47, 125, 95, 0.18);
  color: #fff;
  justify-items: start;
  min-height: 108px;
}

.edit-tournament-metric-button.ladder-action-metric small,
.edit-tournament-metric-button.ladder-action-metric span {
  color: #fff;
}

.edit-tournament-metric-button.ladder-action-metric small {
  opacity: 0.86;
}

.edit-tournament-metric-button.ladder-action-metric span {
  align-items: center;
  display: inline-flex;
  gap: 8px;
}

.edit-tournament-metric-button.ladder-action-metric span::after {
  content: ">";
  font-size: 1.05rem;
  line-height: 1;
}

.edit-tournament-metric-button.ladder-action-metric:hover,
.edit-tournament-metric-button.ladder-action-metric:focus-visible {
  background: var(--green-dark);
  border-color: var(--green-dark);
  box-shadow: 0 18px 38px rgba(47, 125, 95, 0.24);
}

.edit-tournament-participants-metric {
  align-content: start;
  display: grid;
  gap: 10px;
}

.participant-summary-row {
  align-items: center;
  display: grid;
  gap: 4px 8px;
  grid-template-columns: 26px auto minmax(0, 1fr);
}

.participant-summary-row svg {
  fill: none;
  grid-row: 1;
  height: 20px;
  stroke: var(--green-dark);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
  width: 20px;
}

.participant-summary-row span {
  color: var(--green-dark);
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.participant-summary-row strong {
  color: var(--ink);
  font-size: 0.82rem;
  line-height: 1.15;
}

.edit-tournament-metric-link.disabled {
  cursor: default;
  opacity: 0.65;
  pointer-events: none;
}

.create-tournament-form {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 22px;
  margin: 0 auto;
  max-width: 1180px;
  padding: 24px;
}

.create-tournament-form.wizard-mode {
  background:
    linear-gradient(135deg, rgba(47, 125, 95, 0.08), rgba(243, 181, 71, 0.09) 48%, rgba(46, 101, 148, 0.08)),
    var(--surface);
  box-shadow: 0 24px 70px rgba(27, 42, 38, 0.12);
  gap: 18px;
  max-width: 700px;
  padding: 28px;
}

.tournament-wizard-header {
  align-items: start;
  border-bottom: 1px solid rgba(47, 125, 95, 0.18);
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding-bottom: 18px;
}

.tournament-wizard-header h3 {
  font-size: 1.55rem;
  letter-spacing: 0;
  line-height: 1.1;
  margin: 6px 0 8px;
}

.tournament-wizard-header p:last-child {
  color: var(--muted);
  margin: 0;
}

.wizard-help-button {
  align-items: center;
  background: #f7faf8;
  border: 1px solid rgba(47, 125, 95, 0.24);
  border-radius: 999px;
  color: var(--green-dark);
  cursor: pointer;
  display: inline-flex;
  font-weight: 900;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.wizard-help-button:hover,
.wizard-help-button:focus-visible {
  background: #eaf4ef;
  border-color: var(--green);
  outline: 0;
}

.wizard-help-panel {
  max-width: 540px;
}

.wizard-help-copy {
  color: var(--muted);
  margin: -4px 0 14px;
}

.wizard-help-list {
  display: grid;
  gap: 10px;
}

.wizard-help-item {
  background: #fbfdfb;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px 14px;
}

.wizard-help-item strong {
  color: var(--green-dark);
  display: block;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  margin-bottom: 5px;
  text-transform: uppercase;
}

.wizard-help-item p {
  color: var(--ink);
  margin: 0;
}

.create-tournament-form.wizard-mode .form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.tournament-main-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tournament-main-grid > .form-field:not(.wide-field),
.tournament-main-grid > .signup-fees-panel {
  grid-column: span 1;
}

.tournament-main-grid > .wide-field {
  grid-column: 1 / -1;
}

.create-tournament-form.wizard-mode .wizard-step-item:not(.wizard-active) {
  display: none !important;
}

.create-tournament-form.wizard-mode .form-field > span::after {
  color: var(--coral);
  content: "";
  font-weight: 800;
  margin-left: 4px;
}

.create-tournament-form.wizard-mode .form-field.wizard-required > span::after {
  content: "*";
}

.create-tournament-form.wizard-mode .map-picker.wizard-active #tournament-map {
  height: 280px;
}

.wizard-actions {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.wizard-actions .primary-button,
.wizard-actions .outline-button {
  width: 100%;
}

.create-tournament-form.light-tournament-mode .light-hidden {
  display: none !important;
}

.create-tournament-form.light-tournament-mode .qr-panel {
  display: none !important;
}

.create-tournament-form.ladder-tournament-mode #court-name-editor {
  display: none !important;
}

.category-form.light-category-mode .light-category-hidden {
  display: none !important;
}

.category-form:not(.ladder-category-mode) .ladder-category-only {
  display: none !important;
}

.category-form.light-schedule-mode .schedule-date-time-field {
  display: none !important;
}

.wide-field {
  grid-column: 1 / -1;
}

.form-field textarea {
  background: #fbfdfb;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  min-height: 112px;
  outline: 0;
  padding: 12px;
  resize: vertical;
  width: 100%;
}

.form-field textarea:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(47, 125, 95, 0.14);
}

.inline-control-action {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.inline-control-action .compact-button {
  align-self: stretch;
}

.map-picker {
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

#tournament-map {
  background: #eef4f0;
  height: 380px;
  width: 100%;
}

.map-help {
  align-items: center;
  background: #f7faf8;
  display: grid;
  gap: 4px;
  padding: 14px;
}

.map-help strong {
  color: var(--ink);
}

.map-help span,
.map-help small {
  color: var(--muted);
}

.qr-panel {
  align-items: center;
  background: #f7faf8;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: flex;
  gap: 20px;
  justify-content: space-between;
  padding: 18px;
}

.qr-panel strong {
  display: block;
  overflow-wrap: anywhere;
}

.qr-panel img {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  height: 132px;
  padding: 8px;
  width: 132px;
}

.form-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  justify-content: space-between;
}

.category-form > .form-actions {
  padding: 0 28px 28px;
}

.form-actions > .auth-message {
  flex-basis: 100%;
}

.form-actions > .primary-button,
.form-actions > .outline-button {
  min-width: 150px;
  width: auto;
}

.form-actions > .primary-button {
  margin-left: auto;
}

.categories-section {
  background:
    linear-gradient(180deg, rgba(47, 125, 95, 0.08), rgba(248, 250, 247, 0) 280px),
    #fbfdfb;
}

.category-page-shell {
  margin: 0 auto 26px;
  max-width: 1180px;
}

.category-hero {
  align-items: start;
  border-bottom: 1px solid rgba(47, 125, 95, 0.18);
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding-bottom: 24px;
}

.category-hero-copy h2 {
  font-size: clamp(2.4rem, 5vw, 4.3rem);
  letter-spacing: 0;
  line-height: 0.98;
  margin: 0;
}

.category-hero-copy p:last-child {
  color: var(--muted);
  font-size: 1.04rem;
  margin: 14px 0 0;
  max-width: 640px;
}

.category-hero-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
  max-width: 520px;
}

.category-metrics {
  display: grid;
  gap: 12px;
  grid-column: 1 / -1;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.category-metrics div {
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid rgba(47, 125, 95, 0.16);
  border-radius: 8px;
  padding: 16px 18px;
}

.category-metrics div.metric-warning {
  background: rgba(255, 244, 199, 0.86);
  border-color: rgba(226, 164, 41, 0.42);
}

.category-metrics div.metric-warning small {
  color: #9a5a00;
}

.category-metrics div[data-open-credits] {
  cursor: pointer;
}

.category-metrics div[data-open-credits]:hover {
  border-color: rgba(47, 125, 95, 0.42);
  box-shadow: 0 12px 28px rgba(47, 125, 95, 0.12);
}

.category-metrics div[data-open-credits]:focus-visible {
  outline: 3px solid rgba(47, 125, 95, 0.28);
  outline-offset: 3px;
}

.category-metrics span,
.category-metrics small {
  display: block;
}

.category-metrics span {
  color: var(--ink);
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1;
}

#category-tournament-metric {
  font-size: 1.18rem;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.category-metrics small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin-top: 6px;
  text-transform: uppercase;
}

.category-workspace {
  display: grid;
  gap: 22px;
  margin: 0 auto;
  max-width: 1180px;
}

.category-list-grid {
  display: grid;
  gap: 14px;
}

.category-view-toolbar {
  display: flex;
  justify-content: flex-end;
}

.category-view-toolbar.hidden {
  display: none;
}

.focused-category-list {
  grid-template-columns: minmax(0, 1fr);
}

.category-empty-state {
  align-items: center;
  background:
    linear-gradient(135deg, rgba(47, 125, 95, 0.08), rgba(215, 168, 65, 0.09)),
    var(--surface);
  border: 1px dashed rgba(47, 125, 95, 0.34);
  border-radius: 8px;
  display: flex;
  gap: 20px;
  justify-content: space-between;
  min-height: 170px;
  padding: 28px;
}

.category-empty-state h3 {
  font-size: clamp(1.5rem, 3vw, 2.2rem);
  line-height: 1.05;
  margin: 0;
}

.category-empty-state p:not(.eyebrow) {
  color: var(--muted);
  margin: 10px 0 0;
  max-width: 520px;
}

.category-card {
  background:
    linear-gradient(135deg, rgba(49, 95, 143, 0.09), rgba(215, 168, 65, 0.09) 48%, rgba(255, 255, 255, 0) 78%),
    var(--surface);
  border: 1px solid rgba(47, 125, 95, 0.2);
  border-radius: 8px;
  box-shadow: 0 18px 48px rgba(35, 49, 43, 0.08);
  display: grid;
  gap: 18px;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  padding: 24px;
  position: relative;
}

.category-card::before {
  background: linear-gradient(180deg, var(--blue), var(--gold));
  content: "";
  inset: 0 auto 0 0;
  position: absolute;
  width: 5px;
}

.category-card-header {
  align-items: start;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(220px, 1fr) minmax(220px, auto) auto;
}

.category-card-header > div {
  min-width: 0;
}

.category-title-block {
  align-items: start;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.category-title-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.participant-category-badge {
  background: #fff7df;
  color: #6a4b07;
  justify-self: start;
}

.card-actions {
  align-items: center;
  display: flex;
  gap: 10px;
}

.category-card h4 {
  color: var(--ink);
  font-size: 1.28rem;
  line-height: 1.2;
  margin: 0 0 4px;
}

.category-public-link-row {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-self: center;
  margin: 0;
  min-width: 0;
}

.category-public-link {
  color: var(--blue);
  font-size: 0.84rem;
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.category-public-link:hover {
  text-decoration: underline;
}

.category-public-link.unavailable {
  color: var(--muted);
  font-size: 0.84rem;
  font-weight: 700;
  margin: 0 0 6px;
}

.icon-button {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--green-dark);
  cursor: pointer;
  display: inline-flex;
  flex: 0 0 auto;
  height: 32px;
  justify-content: center;
  padding: 0;
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
  width: 32px;
}

.icon-button:hover,
.icon-button.copied {
  background: #edf3ef;
  border-color: rgba(47, 125, 95, 0.35);
  color: var(--green);
}

.icon-button svg {
  fill: none;
  height: 17px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
  width: 17px;
}

.category-card p {
  color: var(--muted);
  margin: 0;
}

.category-details {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(180px, 1fr) minmax(220px, 1.4fr) minmax(140px, 0.8fr);
  margin: 0;
}

.category-details.ladder-category-details {
  grid-template-columns: minmax(120px, 0.55fr) minmax(180px, 0.9fr) minmax(280px, 1.5fr) minmax(170px, 0.8fr);
}

.category-details div {
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(47, 125, 95, 0.16);
  border-radius: 8px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
  padding: 14px;
}

.category-details .date-detail {
  background: #eff8f3;
  border-color: rgba(47, 125, 95, 0.25);
}

.category-details .event-detail {
  background: #eef5fb;
  border-color: rgba(49, 95, 143, 0.22);
}

.category-details .public-link-detail {
  overflow: hidden;
}

.public-link-detail-row {
  align-items: center;
  display: flex;
  gap: 8px;
  min-width: 0;
}

.category-details .public-link-detail a {
  color: var(--blue);
  display: block;
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.3;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.public-link-detail-row a {
  min-width: 0;
}

.category-details .public-link-detail a:hover {
  text-decoration: underline;
}

.category-details .team-detail {
  background: #fff7e5;
  border-color: rgba(215, 168, 65, 0.28);
}

.category-details .ladder-availability-tile,
.category-details .ladder-rules-tile {
  cursor: pointer;
  display: block;
  min-width: 0;
  text-align: left;
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.category-details .ladder-availability-tile:hover,
.category-details .ladder-availability-tile:focus-visible,
.category-details .ladder-rules-tile:hover,
.category-details .ladder-rules-tile:focus-visible {
  background: #e8f5ef;
  border-color: rgba(47, 125, 95, 0.45);
  box-shadow: 0 10px 22px rgba(35, 49, 43, 0.08);
  outline: none;
  transform: translateY(-1px);
}

.category-details .ladder-rules-tile {
  background: #fff7e5;
  border-color: rgba(215, 168, 65, 0.28);
}

.category-details .ladder-challenge-info-tile {
  align-content: start;
  background: #fff1bf;
  border-color: rgba(215, 168, 65, 0.48);
  display: grid;
  gap: 10px;
  min-height: 96px;
}

.category-details .ladder-challenge-info-tile dd {
  max-width: 36rem;
}

.category-details .incoming-challenge-tile {
  background: #fff1bf;
  border-color: rgba(215, 168, 65, 0.62);
  box-shadow: 0 12px 28px rgba(215, 168, 65, 0.18);
  cursor: pointer;
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.category-details .incoming-challenge-tile:hover,
.category-details .incoming-challenge-tile:focus-visible {
  background: #ffe8a3;
  border-color: rgba(215, 168, 65, 0.86);
  box-shadow: 0 16px 34px rgba(215, 168, 65, 0.24);
  outline: none;
  transform: translateY(-1px);
}

.category-details .ladder-availability-tile small,
.category-details .ladder-rules-tile small,
.category-details .incoming-challenge-tile small,
.category-details .ladder-challenge-info-tile small {
  color: var(--muted);
  display: block;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
  margin-top: 4px;
}

.ladder-rules-dialog-panel {
  max-width: 620px;
}

.ladder-rules-list {
  display: grid;
  gap: 10px;
  margin: 0;
}

.ladder-rules-list div {
  background: #fbfdfb;
  border: 1px solid rgba(47, 125, 95, 0.16);
  border-radius: 8px;
  padding: 12px 14px;
}

.ladder-rules-list dt {
  color: var(--green-dark);
  font-size: 0.76rem;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.ladder-rules-list dd {
  color: var(--ink);
  font-weight: 750;
  margin: 5px 0 0;
}

.ladder-response-countdown-row {
  color: var(--muted);
  display: inline-flex;
  font-size: 0.82rem;
  font-weight: 650;
  gap: 4px;
  line-height: 1.2;
  margin-left: auto;
}

.ladder-response-countdown-row strong {
  color: #8a5a00;
  font-weight: 850;
}

.ladder-response-countdown-row strong.expired {
  color: #b43a2a;
}

.challenge-contact-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 2px;
}

.challenge-respond-button {
  min-height: 34px;
}

.contact-icon-link {
  align-items: center;
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid rgba(47, 125, 95, 0.24);
  border-radius: 8px;
  color: var(--green-dark);
  display: inline-flex;
  height: 34px;
  justify-content: center;
  text-decoration: none;
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
  width: 34px;
}

.contact-icon-link:hover,
.contact-icon-link:focus-visible {
  background: #ffffff;
  border-color: rgba(47, 125, 95, 0.5);
  box-shadow: 0 8px 18px rgba(35, 49, 43, 0.12);
  outline: none;
  transform: translateY(-1px);
}

.contact-icon-link.disabled {
  cursor: not-allowed;
  opacity: 0.45;
  pointer-events: none;
}

.contact-icon-link svg {
  fill: none;
  height: 19px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.5;
  width: 19px;
}

.contact-icon-link .filled-icon {
  fill: currentColor;
  stroke: none;
}

.category-details dt {
  color: var(--green-dark);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.category-details dd {
  color: var(--ink);
  font-size: 1.02rem;
  font-weight: 650;
  line-height: 1.4;
  margin: 5px 0 0;
}

.category-stats {
  border-top: 1px solid var(--line);
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-weight: 700;
  gap: 12px;
  padding-top: 14px;
}

.ladder-availability-panel {
  max-width: 720px;
}

.ladder-challenge-panel {
  max-width: 760px;
}

.incoming-challenge-panel {
  max-width: 680px;
}

.ladder-availability-list {
  display: grid;
  gap: 10px;
  margin: 16px 0;
}

.ladder-availability-actions {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  margin-top: 16px;
}

.ladder-availability-actions > .outline-button,
.ladder-availability-action-group > button {
  min-width: 132px;
  width: auto;
}

.ladder-availability-action-group {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.ladder-challenge-actions {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 16px;
}

.ladder-challenge-actions > button {
  min-width: 132px;
  width: auto;
}

.ladder-proposal-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr;
  margin: 16px 0;
}

.incoming-challenge-options {
  display: grid;
  gap: 10px;
  margin: 18px 0;
}

.incoming-challenge-option {
  align-items: center;
  background: #fff;
  border: 1px solid rgba(215, 168, 65, 0.45);
  border-radius: 8px;
  color: var(--ink);
  cursor: pointer;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  min-height: 54px;
  padding: 10px 14px;
  text-align: left;
  transition: background 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.incoming-challenge-option:hover,
.incoming-challenge-option:focus-visible {
  background: #fff8e2;
  border-color: rgba(215, 168, 65, 0.82);
  box-shadow: 0 10px 24px rgba(215, 168, 65, 0.14);
  outline: none;
}

.incoming-challenge-option span {
  color: var(--green-dark);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.incoming-challenge-option strong {
  font-size: 1rem;
}

.ladder-availability-row {
  align-items: end;
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(160px, 1fr) minmax(110px, 0.6fr) minmax(110px, 0.6fr) auto;
  padding: 12px;
}

.seeding-action-row {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.seeding-action-row strong {
  color: var(--muted);
  font-size: 0.95rem;
}

.seeding-action-row strong.applied {
  color: var(--green-dark);
}

.team-seed-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
}

.team-seed-list {
  display: grid;
  gap: 8px;
  max-height: min(520px, 58vh);
  overflow: auto;
}

.team-seed-row {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  cursor: grab;
  display: grid;
  gap: 12px;
  grid-template-columns: 44px minmax(0, 1fr);
  padding: 10px 12px;
}

.team-seed-row:active {
  cursor: grabbing;
}

.team-seed-row b {
  align-items: center;
  background: #e8f4ee;
  border-radius: 7px;
  color: var(--green-dark);
  display: inline-flex;
  font-size: 0.88rem;
  height: 32px;
  justify-content: center;
}

.category-form {
  background:
    linear-gradient(135deg, rgba(47, 125, 95, 0.08), rgba(243, 181, 71, 0.08) 48%, rgba(49, 95, 143, 0.08)),
    var(--surface);
  border: 1px solid rgba(49, 95, 143, 0.18);
  border-radius: 8px;
  box-shadow: 0 22px 54px rgba(35, 49, 43, 0.1);
  display: grid;
  gap: 0;
  max-width: none;
  overflow: hidden;
  padding: 0;
}

.category-form.hidden {
  display: none;
}

.schedule-panel,
.category-data-panel {
  background: var(--surface);
  border: 1px solid rgba(49, 95, 143, 0.18);
  border-radius: 8px;
  box-shadow: 0 22px 54px rgba(35, 49, 43, 0.1);
  display: grid;
  gap: 18px;
  overflow: hidden;
}

.schedule-panel.hidden,
.category-data-panel.hidden {
  display: none;
}

.schedule-panel .category-form-header,
.category-data-panel .category-form-header {
  margin: 0;
  padding: 22px 24px;
}

.schedule-table-wrap {
  overflow-x: hidden;
}

.court-name-editor {
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 14px;
  padding: 16px;
}

.court-name-editor-header span {
  color: var(--green-dark);
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.court-name-editor-header small {
  color: var(--muted);
  display: block;
  margin-top: 4px;
}

.court-name-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.schedule-actions {
  display: flex;
  justify-content: flex-end;
  padding: 0 24px 20px;
}

.schedule-table {
  border-collapse: collapse;
  table-layout: fixed;
  width: 100%;
}

.schedule-table th:nth-child(1),
.schedule-table td:nth-child(1) {
  width: 10%;
}

.schedule-table th:nth-child(2),
.schedule-table td:nth-child(2),
.schedule-table th:nth-child(3),
.schedule-table td:nth-child(3) {
  width: 6%;
}

.schedule-table th:nth-child(4),
.schedule-table td:nth-child(4),
.schedule-table th:nth-child(5),
.schedule-table td:nth-child(5) {
  width: 9%;
}

.schedule-table th:nth-child(6),
.schedule-table td:nth-child(6) {
  width: 28%;
}

.schedule-table th:nth-child(6) {
  text-align: center;
}

.schedule-table th:nth-child(7),
.schedule-table td:nth-child(7) {
  width: 21%;
}

.schedule-table th:nth-child(8),
.schedule-table td:nth-child(8) {
  width: 11%;
}

.schedule-table td:nth-child(8) {
  text-align: right;
}

.schedule-table td:nth-child(8) .compact-button {
  min-width: 62px;
  padding-inline: 10px;
}

.schedule-row-actions {
  align-items: center;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.schedule-time-cell {
  align-items: flex-start;
  display: grid;
  gap: 6px;
}

.schedule-date-time-cell {
  display: grid;
  gap: 4px;
}

.schedule-mobile-time {
  display: none;
}

.schedule-panel.wide-score .schedule-table th:nth-child(1),
.schedule-panel.wide-score .schedule-table td:nth-child(1) {
  width: 10%;
}

.schedule-panel.wide-score .schedule-table th:nth-child(2),
.schedule-panel.wide-score .schedule-table td:nth-child(2),
.schedule-panel.wide-score .schedule-table th:nth-child(3),
.schedule-panel.wide-score .schedule-table td:nth-child(3) {
  width: 6%;
}

.schedule-panel.wide-score .schedule-table th:nth-child(4),
.schedule-panel.wide-score .schedule-table td:nth-child(4),
.schedule-panel.wide-score .schedule-table th:nth-child(5),
.schedule-panel.wide-score .schedule-table td:nth-child(5) {
  width: 9%;
}

.schedule-panel.wide-score .schedule-table th:nth-child(6),
.schedule-panel.wide-score .schedule-table td:nth-child(6) {
  width: 25%;
}

.schedule-panel.wide-score .schedule-table th:nth-child(7),
.schedule-panel.wide-score .schedule-table td:nth-child(7) {
  width: 24%;
}

.schedule-panel.wide-score .schedule-table th:nth-child(8),
.schedule-panel.wide-score .schedule-table td:nth-child(8) {
  width: 11%;
}

.schedule-panel.wide-score .score-matrix {
  column-gap: 8px;
  grid-template-columns: repeat(var(--score-games), minmax(44px, 1fr));
}

.schedule-panel.wide-score .score-input {
  width: 100%;
}

.schedule-panel.light-schedule-view .schedule-table th:nth-child(1),
.schedule-panel.light-schedule-view .schedule-table td:nth-child(1),
.schedule-panel.light-schedule-view .schedule-table th:nth-child(2),
.schedule-panel.light-schedule-view .schedule-table td:nth-child(2),
.schedule-panel.light-schedule-view .schedule-table th:nth-child(5),
.schedule-panel.light-schedule-view .schedule-table td:nth-child(5) {
  display: none;
}

.schedule-panel.light-schedule-view .schedule-table th:nth-child(3),
.schedule-panel.light-schedule-view .schedule-table td:nth-child(3) {
  width: 12%;
}

.schedule-panel.light-schedule-view .schedule-table th:nth-child(4),
.schedule-panel.light-schedule-view .schedule-table td:nth-child(4) {
  width: 12%;
}

.schedule-panel.light-schedule-view .schedule-table th:nth-child(6),
.schedule-panel.light-schedule-view .schedule-table td:nth-child(6) {
  width: 43%;
}

.schedule-panel.light-schedule-view .schedule-table th:nth-child(7),
.schedule-panel.light-schedule-view .schedule-table td:nth-child(7) {
  width: 20%;
}

.schedule-panel.light-schedule-view .schedule-table th:nth-child(8),
.schedule-panel.light-schedule-view .schedule-table td:nth-child(8) {
  width: 9%;
}

.schedule-panel.ladder-schedule-view .schedule-table th:nth-child(1),
.schedule-panel.ladder-schedule-view .schedule-table td:nth-child(1) {
  text-align: center;
  width: 120px;
}

.schedule-panel.ladder-schedule-view .schedule-table th:nth-child(2),
.schedule-panel.ladder-schedule-view .schedule-table td:nth-child(2) {
  width: auto;
}

.schedule-panel.ladder-schedule-view .schedule-table td:nth-child(2) {
  font-weight: 700;
}

.schedule-panel.ladder-schedule-view .schedule-table {
  min-width: 980px;
}

.schedule-panel.ladder-schedule-view .schedule-table th:nth-child(n+3),
.schedule-panel.ladder-schedule-view .schedule-table td:nth-child(n+3) {
  text-align: center;
  width: 8%;
}

.schedule-panel.ladder-schedule-view .schedule-table th:nth-child(9),
.schedule-panel.ladder-schedule-view .schedule-table td:nth-child(9) {
  width: 150px;
}

.compact-reason {
  color: var(--muted);
  display: inline-block;
  font-size: 0.82rem;
  line-height: 1.25;
  max-width: 150px;
}

.leaderboard-table {
  border-collapse: separate;
  border-spacing: 0;
  min-width: 920px;
  width: 100%;
}

.leaderboard-table.ladder-challenge-table {
  min-width: 980px;
}

.ladder-challenge-table th:nth-child(1),
.ladder-challenge-table td:nth-child(1) {
  white-space: nowrap;
  width: 260px;
}

.ladder-challenge-table th:nth-child(2),
.ladder-challenge-table td:nth-child(2) {
  width: auto;
}

.ladder-challenge-table th:nth-child(3),
.ladder-challenge-table td:nth-child(3) {
  text-align: right;
  width: 140px;
}

.ladder-challenge-table .leaderboard-matchup {
  gap: 6px 8px;
}

.public-leaderboard-table {
  min-width: 0;
  table-layout: fixed;
}

.public-leaderboard-table th:first-child,
.public-leaderboard-table td:first-child {
  width: 40%;
}

.public-leaderboard-table th:not(:first-child),
.public-leaderboard-table td:not(:first-child) {
  font-variant-numeric: tabular-nums;
  padding-inline: 4px;
  text-align: right;
  white-space: nowrap;
  width: 10%;
}

.public-leaderboard-table th,
.public-leaderboard-table td {
  padding-inline: 6px;
}

.leaderboard-name-cell {
  align-items: center;
  display: inline-flex;
  gap: 10px;
  min-width: 0;
}

.leaderboard-place {
  color: #0d604a;
  flex: 0 0 auto;
  font-size: 0.84rem;
  font-weight: 800;
  line-height: 1;
  min-width: 1.4em;
}

.public-leaderboard-legend {
  color: #53655f;
  font-size: 0.78rem;
  line-height: 1.4;
  margin: 10px 12px 0;
}

.final-standings-table {
  min-width: 0;
}

.final-standings-table th:first-child,
.final-standings-table td:first-child {
  width: 120px;
}

.schedule-table th,
.schedule-table td,
.leaderboard-table th,
.leaderboard-table td {
  border-bottom: 1px solid var(--line);
  padding: 12px 14px;
  text-align: left;
  vertical-align: top;
}

.schedule-table td,
.leaderboard-table td {
  color: #24312d;
  font-size: 0.94rem;
  font-weight: 400;
  line-height: 1.45;
}

.schedule-table td {
  color: #26342f;
  font-family: "Segoe UI Variable Text", "Segoe UI", var(--font-sans);
  font-size: 0.91rem;
  font-weight: 450;
  line-height: 1.42;
}

.schedule-table tr.schedule-time-group-start td {
  background: #f1f8f5;
  border-top: 3px solid #2f7d5f;
  padding-top: 16px;
}

.schedule-panel .schedule-table tbody tr:nth-child(odd) td {
  background: #fff;
}

.schedule-panel .schedule-table tbody tr:nth-child(even) td {
  background: #f7f8f7;
}

.schedule-table tr.schedule-match-disputed td {
  background: #fff7ed;
}

.schedule-table tr.schedule-time-group-start td:nth-child(1),
.schedule-table tr.schedule-time-group-start td:nth-child(2) {
  color: #153f30;
  font-weight: 700;
}

.schedule-table td:nth-child(1),
.schedule-table td:nth-child(2),
.schedule-table td:nth-child(3),
.schedule-table td:nth-child(4),
.schedule-table td:nth-child(5) {
  color: #33443e;
  font-feature-settings: "tnum";
  font-size: 0.88rem;
  font-variant-numeric: tabular-nums;
  font-weight: 520;
}

.schedule-table td:nth-child(2),
.schedule-table td:nth-child(3) {
  color: #1d2a26;
  font-weight: 560;
}

.schedule-table td strong,
.leaderboard-table td strong {
  color: var(--ink);
  font-weight: 600;
}

.schedule-table td strong {
  font-weight: 660;
}

.schedule-panel .schedule-table td[data-move-match] {
  cursor: pointer;
}

.schedule-panel .schedule-table td[data-move-match]:hover,
.schedule-panel .schedule-table td[data-move-match]:focus-visible {
  background: #eef9f4;
  outline: 2px solid rgba(47, 125, 95, 0.18);
  outline-offset: -2px;
}

.seed-number {
  display: inline;
  margin-right: 0.35rem;
  color: var(--green-dark);
  font-size: 0.78rem;
  font-weight: 800;
  white-space: nowrap;
}

.seeded-team-name {
  min-width: 0;
}

.leaderboard-matchup .seed-number,
.leaderboard-matchup .seeded-team-name {
  display: inline;
  letter-spacing: 0;
  text-transform: none;
}

.leaderboard-matchup .seeded-team-name {
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
}

.schedule-table th,
.leaderboard-table th {
  background: #eef5fb;
  border-bottom-color: rgba(49, 95, 143, 0.18);
  color: var(--green-dark);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.groups-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  padding: 0 24px 24px;
}

.group-card {
  background: linear-gradient(180deg, #ffffff 0%, #eff8f3 100%);
  border: 1px solid rgba(47, 125, 95, 0.22);
  border-radius: 8px;
  box-shadow: 0 14px 34px rgba(35, 49, 43, 0.06);
  padding: 18px;
}

.group-card h4,
.leaderboard-group h4 {
  color: var(--ink);
  font-size: 1.08rem;
  margin: 0 0 12px;
}

.leaderboard-group h4 {
  padding-left: 14px;
}

.group-card ul {
  display: grid;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.group-card li {
  background: rgba(255, 255, 255, 0.86);
  border: 1px solid var(--line);
  border-radius: 8px;
  font-weight: 650;
  padding: 10px 12px;
}

.leaderboard-list {
  display: grid;
  gap: 18px;
  padding: 0 24px 24px;
}

.leaderboard-group {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(49, 95, 143, 0.16);
  border-radius: 8px;
  box-shadow: 0 14px 34px rgba(35, 49, 43, 0.05);
  display: grid;
  gap: 10px;
  overflow: hidden;
}

.leaderboard-matchup {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
}

.leaderboard-matchup span {
  color: var(--muted);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.rank-movement {
  align-items: center;
  display: inline-flex;
  gap: 4px;
  white-space: nowrap;
}

.rank-movement-icon {
  fill: none;
  height: 15px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 3;
  width: 15px;
}

.rank-movement-up {
  color: #1f7a4d;
}

.rank-movement-down {
  color: #a33a22;
}

.rank-movement-same {
  color: #48677c;
}

.ladder-position-change-cell {
  min-width: 44px;
  text-align: center;
  white-space: nowrap;
}

.ladder-position-change {
  align-items: center;
  display: inline-flex;
  font-size: 0.88rem;
  font-weight: 800;
  gap: 2px;
  justify-content: center;
  min-width: 2rem;
}

.ladder-position-change .rank-movement-icon {
  height: 14px;
  width: 14px;
}

.ladder-position-up {
  color: #1f7a4d;
}

.ladder-position-down {
  color: #a33a22;
}

.ladder-position-same {
  color: #48677c;
}

.leaderboard-adjustment {
  color: var(--blue);
  font-size: 0.82em;
  font-weight: 700;
  white-space: nowrap;
}

.matchup-stack {
  align-items: center;
  display: grid;
  gap: 4px;
  grid-auto-rows: min-content;
  justify-items: center;
  margin: 0 auto;
  max-width: 420px;
  text-align: center;
}

.matchup-stack strong {
  align-items: center;
  display: flex;
  gap: 0.4rem;
  justify-content: center;
  min-height: 34px;
  line-height: 1.22;
  max-width: 100%;
}

.matchup-stack .versus {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.1;
  text-align: center;
  text-transform: uppercase;
}

.match-dispute-indicator {
  background: #fff0e8;
  border: 1px solid rgba(155, 47, 24, 0.28);
  border-radius: 999px;
  color: #9b2f18;
  font-size: 0.72rem;
  font-weight: 800;
  line-height: 1;
  margin-top: 4px;
  padding: 5px 8px;
  text-transform: uppercase;
}

.score-grid,
.score-matrix {
  display: grid;
}

.score-team-row {
  align-items: center;
  display: flex;
  gap: 12px;
}

.score-header-label {
  color: var(--muted);
  display: block;
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-align: center;
  text-transform: uppercase;
}

.score-matrix {
  column-gap: 12px;
  display: grid;
  grid-template-columns: repeat(var(--score-games), 52px);
  grid-template-rows: 34px 14px 34px;
  row-gap: 4px;
}

.score-team-row {
  min-height: 34px;
}

.score-vs-spacer {
  min-height: 14px;
}

.score-input {
  appearance: textfield;
  border: 1px solid var(--line);
  border-radius: 6px;
  grid-column: var(--score-col);
  min-height: 34px;
  padding: 4px 6px;
  text-align: center;
  width: 52px;
}

.score-input::-webkit-inner-spin-button,
.score-input::-webkit-outer-spin-button {
  appearance: none;
  margin: 0;
}

.score-input[readonly] {
  background: #f4f7f5;
  color: var(--muted);
}

.score-input[data-score-team="1"] {
  grid-row: 1;
}

.score-input[data-score-team="2"] {
  grid-row: 3;
}

.slot-dialog {
  background: transparent;
  border: 0;
  max-width: min(1040px, calc(100vw - 32px));
  padding: 0;
  width: 100%;
}

.slot-dialog::backdrop {
  background: rgba(18, 30, 26, 0.34);
}

.slot-dialog-panel {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 26px 70px rgba(18, 30, 26, 0.24);
  max-height: min(760px, calc(100vh - 48px));
  overflow: hidden;
}

.slot-dialog-panel .partner-dialog-header {
  padding: 26px 28px 18px;
}

.slot-grid-wrap {
  max-height: 560px;
  overflow: auto;
  padding: 0 28px 26px;
}

.slot-grid {
  border-collapse: collapse;
  width: 100%;
}

.slot-grid th,
.slot-grid td {
  border-bottom: 1px solid var(--line);
  padding: 11px 12px;
  text-align: left;
}

.slot-grid th {
  background: #f7faf8;
  color: var(--green-dark);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  position: sticky;
  text-transform: uppercase;
  top: 0;
  z-index: 1;
}

.slot-grid td {
  color: #24312d;
  font-family: "Helvetica Neue", Arial, var(--font-sans);
  font-size: 0.94rem;
}

.slot-grid th:nth-child(n+3),
.slot-grid td:nth-child(n+3) {
  text-align: center;
}

.slot-unavailable {
  color: var(--muted);
}

.category-form-header {
  align-items: start;
  border-bottom: 1px solid rgba(47, 125, 95, 0.18);
  display: grid;
  gap: 8px;
  padding: 24px 28px;
}

.category-form-header h3 {
  color: var(--ink);
  font-size: 1.55rem;
  letter-spacing: 0;
  line-height: 1.1;
  margin: 4px 0 8px;
}

.schedule-panel-header {
  align-items: center;
  grid-template-columns: minmax(0, 1fr) auto;
}

.schedule-panel-header h3 {
  margin-bottom: 4px;
}

.schedule-category-switcher {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.schedule-category-switcher.hidden {
  display: none;
}

.schedule-category-tab {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  color: var(--ink);
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 800;
  min-height: 36px;
  padding: 0 14px;
}

.schedule-category-tab.active {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
}

.schedule-category-tab:disabled {
  background: #f4f7f5;
  color: var(--muted);
  cursor: default;
  opacity: 0.7;
}

.schedule-jump-button {
  height: 38px;
  width: 38px;
}

.category-wizard-step {
  color: var(--green-dark);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  margin: 0;
  text-transform: uppercase;
}

.category-wizard-copy {
  color: var(--muted);
  margin: 0;
}

.step-tabs {
  display: flex;
  gap: 4px;
}

.step-tab {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 6px;
  cursor: pointer;
  font-weight: 700;
  min-height: 34px;
  padding: 0 12px;
}

.step-tab.active {
  background: var(--green);
  border-color: var(--green);
  color: #fff;
  cursor: default;
}

.category-step {
  display: none;
  gap: 14px;
}

.category-step.active {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 24px 28px;
}

.category-step > .form-field,
.category-step > .toggle-row,
.category-step > .court-selector {
  grid-column: 1 / -1;
}

.category-step > .form-grid {
  grid-column: span 1;
}

.ladder-rules-panel {
  background: linear-gradient(135deg, #f7fbf8 0%, #fff9ef 100%);
  border: 1px solid var(--line);
  border-left: 4px solid var(--green);
  border-radius: 8px;
  display: grid;
  gap: 14px;
  grid-column: 1 / -1;
  padding: 18px;
}

.ladder-rules-panel h4 {
  font-size: 18px;
  margin: 4px 0 0;
}

.ladder-settings-grid {
  align-items: end;
}

.ladder-rules-panel .toggle-row {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 12px;
}

.ladder-rules-panel .ladder-rematch-toggle {
  min-height: 46px;
}

.schedule-wizard-panel {
  display: none;
  gap: 16px;
  grid-column: 1 / -1;
}

.schedule-wizard-panel.active {
  display: grid;
}

.schedule-group-arrangement {
  display: grid;
  gap: 14px;
  overflow-x: auto;
}

.schedule-group-board {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(var(--group-count), minmax(180px, 1fr));
  min-width: min(100%, calc(var(--group-count) * 180px));
}

.schedule-group-column {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  min-width: 0;
  padding: 12px;
}

.schedule-group-column-header {
  align-items: center;
  color: var(--green);
  display: flex;
  font-size: 0.78rem;
  font-weight: 800;
  justify-content: space-between;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.schedule-group-team-list {
  display: grid;
  gap: 8px;
  min-height: 52px;
}

.schedule-group-team-row {
  align-items: center;
  background: #f8fbf8;
  border: 1px solid rgba(45, 74, 64, 0.14);
  border-radius: 8px;
  cursor: grab;
  display: grid;
  gap: 10px;
  grid-template-columns: 28px minmax(0, 1fr);
  min-height: 44px;
  padding: 8px 10px;
}

.schedule-group-team-row:active {
  cursor: grabbing;
}

.schedule-group-team-row.dragging {
  opacity: 0.62;
}

.schedule-group-team-row b {
  color: var(--green);
  font-size: 0.8rem;
}

.schedule-group-team-row span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.category-wizard-actions {
  grid-column: 1 / -1;
}

.toggle-row {
  align-items: center;
  display: flex;
  gap: 10px;
}

.toggle-row input,
.court-selector input {
  accent-color: var(--green);
}

.knockout-randomize-field .toggle-row {
  justify-content: flex-start;
  width: fit-content;
}

.knockout-randomize-field input[type="checkbox"] {
  height: 18px;
  min-height: 18px;
  padding: 0;
  width: 18px;
}

.court-selector {
  border: 0;
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
}

.court-selector legend {
  font-weight: 700;
  margin-bottom: 8px;
}

.participants-section {
  background:
    linear-gradient(180deg, rgba(49, 95, 143, 0.08), rgba(248, 250, 247, 0) 280px),
    #fbfdfb;
}

.tournament-admin-section {
  background:
    linear-gradient(180deg, rgba(47, 125, 95, 0.08), rgba(248, 250, 247, 0) 280px),
    #fbfdfb;
}

.tournament-admin-shell {
  display: grid;
  gap: 22px;
  margin: 0 auto;
  max-width: 1180px;
}

.admin-page-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.admin-summary-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.admin-summary-grid > div {
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid rgba(47, 125, 95, 0.16);
  border-radius: 8px;
  padding: 16px 18px;
}

.admin-summary-grid small,
.admin-panel-header h3 {
  color: var(--green-dark);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.admin-summary-grid span {
  color: var(--ink);
  display: block;
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1.15;
  margin-top: 8px;
}

.admin-summary-grid strong {
  color: var(--muted);
  display: block;
  font-size: 0.82rem;
  margin-top: 4px;
}

.admin-content-grid {
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1fr);
}

.admin-panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 14px;
  padding: 16px;
}

.admin-panel-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.admin-panel-header h3 {
  margin: 0;
}

.admin-table-frame {
  border: 1px solid var(--line);
  border-radius: 8px;
  max-height: 75vh;
  overflow: auto;
}

.admin-participants-table {
  border-collapse: collapse;
  min-width: 920px;
  width: 100%;
}

.admin-participants-table th,
.admin-participants-table td {
  border-bottom: 1px solid var(--line);
  padding: 11px 12px;
  text-align: left;
  vertical-align: top;
}

.admin-participants-table th {
  background: #f7faf8;
  color: var(--green-dark);
  font-size: 0.76rem;
  position: sticky;
  text-transform: uppercase;
  top: 0;
  z-index: 1;
}

.admin-participants-table td:nth-child(1),
.admin-participants-table td:nth-child(6),
.admin-participants-table td:nth-child(7),
.admin-participants-table td:nth-child(8) {
  text-align: right;
  white-space: nowrap;
}

.admin-category-count {
  align-items: center;
  display: flex;
  gap: 8px;
}

.admin-participants-table strong,
.admin-participants-table small {
  display: block;
}

.admin-participants-table small {
  color: var(--muted);
  line-height: 1.35;
}

.admin-row-toggle {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 6px;
  color: var(--green-dark);
  cursor: pointer;
  display: inline-flex;
  height: 24px;
  justify-content: center;
  padding: 0;
  width: 24px;
}

.admin-row-toggle::before {
  border-bottom: 5px solid transparent;
  border-left: 6px solid currentColor;
  border-top: 5px solid transparent;
  content: "";
  transition: transform 150ms ease;
}

.admin-row-toggle[aria-expanded="true"]::before {
  transform: rotate(90deg);
}

.admin-row-toggle:hover,
.admin-row-toggle:focus-visible {
  background: #eef4f0;
  outline: 0;
}

.admin-category-detail-row.hidden {
  display: none;
}

.admin-category-detail-row td {
  background: #f8fbfa;
}

.admin-category-detail {
  display: grid;
  gap: 8px;
}

.admin-category-detail strong {
  color: var(--green-dark);
  font-size: 0.78rem;
  text-transform: uppercase;
}

.admin-category-detail div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.admin-category-detail span {
  background: #eef7f2;
  border: 1px solid #c8ded3;
  border-radius: 999px;
  color: var(--green-dark);
  font-size: 0.82rem;
  font-weight: 700;
  padding: 5px 9px;
}

.admin-financial-list {
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
}

.admin-financial-list > div {
  align-items: start;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 12px 14px;
}

.admin-financial-list > div:last-child {
  border-bottom: 0;
}

.admin-financial-list small {
  color: var(--muted);
  display: block;
  font-size: 0.82rem;
  line-height: 1.35;
  margin-top: 3px;
}

.admin-financial-list b {
  color: var(--ink);
  white-space: nowrap;
}

.admin-financial-list .highlight {
  background: #eef9f4;
}

.admin-financial-list .highlight b,
.admin-financial-list .highlight strong {
  color: var(--green-dark);
}

.admin-financial-repeat-panel {
  gap: 16px;
}

.admin-financial-disclaimer {
  border-top: 1px solid var(--line);
  color: var(--ink);
  display: grid;
  gap: 8px;
  padding-top: 16px;
}

.admin-financial-disclaimer p {
  margin: 0;
}

.admin-financial-disclaimer ul {
  display: grid;
  gap: 8px;
  margin: 4px 0 0 22px;
  padding: 0;
}

.admin-financial-disclaimer-actions {
  align-items: center;
  display: flex;
  gap: 14px;
  justify-content: flex-end;
  margin-top: 8px;
}

.payout-request-reason {
  color: var(--muted);
  font-size: 0.88rem;
  line-height: 1.35;
  max-width: 460px;
  text-align: right;
}

.payout-request-reason.visible {
  color: var(--clay);
}

.participants-page-shell {
  margin: 0 auto 24px;
  max-width: 1180px;
}

.participants-hero {
  align-items: start;
  border-bottom: 1px solid rgba(49, 95, 143, 0.18);
  display: grid;
  gap: 22px;
  grid-template-columns: minmax(0, 1fr) auto;
  padding-bottom: 24px;
}

.participants-actions {
  align-items: center;
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  gap: 10px;
  justify-content: flex-end;
  max-width: 420px;
  width: min(420px, 100%);
}

.participants-actions .primary-button,
.participants-actions .outline-button {
  width: 100%;
}

.participants-hero h2 {
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  line-height: 0.98;
  margin: 0;
}

.participants-hero p:not(.eyebrow) {
  color: var(--muted);
  font-size: 1.04rem;
  margin: 12px 0 0;
}

.participant-metrics {
  display: grid;
  gap: 12px;
  grid-column: 1 / -1;
  grid-template-columns: 1fr 1fr minmax(220px, 1.5fr);
}

.participants-category-context {
  grid-column: 1 / -1;
}

.participant-category-card {
  box-shadow: 0 12px 34px rgba(35, 49, 43, 0.07);
}

.participant-category-card .my-tournament-actions {
  justify-content: flex-start;
}

.participant-category-card .current-page-button,
.participant-category-card .current-page-button:disabled {
  background: #fbfdfb;
  border-color: var(--line);
  box-shadow: none;
  color: var(--muted);
}

.participant-category-card .participant-card-add-action {
  margin-left: auto;
  min-width: 150px;
}

.participant-metrics div {
  background: rgba(255, 255, 255, 0.84);
  border: 1px solid rgba(49, 95, 143, 0.16);
  border-radius: 8px;
  padding: 16px 18px;
}

.participant-metrics span,
.participant-metrics small {
  display: block;
}

.participant-metrics span {
  color: var(--ink);
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.participant-metrics small {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  margin-top: 6px;
  text-transform: uppercase;
}

.participant-search-row {
  align-items: center;
  display: block;
  gap: 12px;
  margin: 0 auto 20px;
  max-width: 1180px;
}

.participant-search-row.light-participant-actions {
  display: none;
}

.participant-search-row.light-participant-actions .participant-search {
  display: none;
}

.participant-search {
  display: block;
}

.ladder-invite-panel {
  background: linear-gradient(135deg, rgba(236, 247, 242, 0.96), rgba(255, 249, 236, 0.88));
  border: 1px solid #bed9cf;
  border-left: 4px solid var(--green);
  border-radius: 8px;
  box-shadow: 0 18px 44px rgba(35, 49, 43, 0.08);
  display: grid;
  gap: 14px;
  margin: 0 auto 20px;
  max-width: 1180px;
  padding: 18px;
}

.ladder-invite-panel h3 {
  font-size: 1.1rem;
  margin: 4px 0 0;
}

.ladder-invite-row {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) auto;
}

.ladder-invite-list {
  display: grid;
  gap: 8px;
}

.ladder-invite-item {
  align-items: center;
  background: rgba(255, 255, 255, 0.74);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(0, 1fr) auto auto;
  padding: 10px 12px;
}

.ladder-invite-item strong {
  overflow-wrap: anywhere;
}

.ladder-invite-item small {
  color: var(--muted);
}

.participant-dialog-search {
  margin: 0;
  max-width: none;
}

.light-participant-fields {
  display: grid;
  gap: 14px;
}

.light-participant-fields label {
  display: grid;
  gap: 6px;
}

.light-participant-fields span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
}

.light-participant-fields input {
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  color: var(--ink);
  font: inherit;
  padding: 12px 14px;
}

.participant-search input {
  background: #fff;
  border: 1px solid #cdd7d2;
  border-radius: 999px;
  color: var(--ink);
  min-height: 46px;
  padding: 0 20px;
  width: 100%;
}

.participant-table-wrap {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  box-shadow: 0 22px 54px rgba(35, 49, 43, 0.08);
  margin: 0 auto;
  max-width: 1180px;
  overflow-x: auto;
}

.participant-table {
  border-collapse: collapse;
  min-width: 960px;
  width: 100%;
}

.participant-table.light-participant-table {
  min-width: 520px;
}

.participant-table.ladder-participant-table {
  min-width: 680px;
}

.participant-table.light-participant-table th:last-child,
.participant-table.light-participant-table td.participant-row-actions {
  min-width: 64px;
  width: 64px;
}

.light-participant-inline-input {
  background: #fff;
  border: 1px solid var(--line-strong);
  border-radius: 8px;
  color: var(--ink);
  font: inherit;
  min-height: 40px;
  padding: 8px 10px;
  width: 100%;
}

.participant-table th,
.participant-table td {
  border-bottom: 1px solid var(--line);
  padding: 14px 16px;
  text-align: left;
  vertical-align: middle;
}

.participant-table th {
  background: #f7faf8;
  color: var(--green-dark);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.participant-table tr:last-child td {
  border-bottom: 0;
}

.participant-table th:last-child,
.participant-table td.participant-row-actions {
  padding-left: 8px;
  text-align: right;
  width: 48px;
}

.participant-table.singles-participant-table th:nth-child(7) {
  display: none;
}

.remove-participant-button {
  align-items: center;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--green-dark);
  cursor: pointer;
  display: inline-flex;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 700;
  height: 30px;
  justify-content: center;
  line-height: 1;
  width: 30px;
}

.remove-participant-button:hover,
.remove-participant-button:focus-visible {
  background: #fff1ed;
  border-color: rgba(233, 111, 79, 0.45);
  color: var(--coral);
  outline: none;
}

.public-signup-section {
  background: linear-gradient(135deg, #f7faf6 0%, #eef6f3 42%, #fff7e7 100%);
  min-height: 100vh;
  padding: 120px clamp(18px, 5vw, 64px) 72px;
}

.public-signup-shell {
  display: grid;
  gap: 18px;
  margin: 0 auto;
  max-width: 1180px;
  width: 100%;
}

.public-signup-header {
  align-items: end;
  display: flex;
  gap: 24px;
  justify-content: space-between;
}

.public-signup-header-actions,
.public-category-card-actions {
  align-items: center;
  display: flex;
  gap: 8px;
}

.public-signup-header-actions {
  justify-content: flex-end;
}

.public-settings-button {
  align-items: center;
  display: inline-flex;
  flex: 0 0 auto;
  gap: 8px;
  justify-content: center;
}

.public-settings-button svg {
  fill: none;
  height: 18px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
  width: 18px;
}

.public-tournament-settings-button {
  min-height: 46px;
}

.public-category-settings-button {
  min-height: 34px;
  padding: 8px 10px;
}

.public-category-settings-button svg {
  height: 15px;
  width: 15px;
}

.public-signup-header h2 {
  font-size: clamp(2.2rem, 4vw, 4rem);
  letter-spacing: 0;
  line-height: 1;
  margin-bottom: 10px;
  overflow-wrap: anywhere;
}

.public-signup-header p:not(.eyebrow) {
  color: var(--muted);
  margin: 0;
  overflow-wrap: anywhere;
}

.public-signup-details,
.public-signup-category-meta {
  display: grid;
  gap: 12px;
}

.public-signup-details {
  grid-template-columns: minmax(180px, 0.7fr) minmax(320px, 1.65fr) minmax(330px, 1.35fr);
}

.public-signup-details div,
.public-signup-category-meta div {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  min-width: 0;
  padding: 16px;
}

.public-signup-details div:nth-child(1),
.public-signup-category-meta div:nth-child(1) {
  background: #eef9f4;
  border-color: #c8e4d8;
}

.public-signup-details div:nth-child(2),
.public-signup-category-meta div:nth-child(2) {
  background: #eef6ff;
  border-color: #c7daf1;
}

.public-signup-details div:nth-child(3),
.public-signup-category-meta div:nth-child(3) {
  background: #fff7e5;
  border-color: #efd9a9;
}

.public-signup-details span,
.public-signup-category-meta span {
  color: var(--green-dark);
  display: block;
  font-size: 0.74rem;
  font-weight: 700;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.public-signup-details strong,
.public-signup-details .map-link,
.public-signup-category-meta strong {
  display: block;
  overflow-wrap: anywhere;
}

.public-signup-details > div:first-child strong {
  max-width: 13rem;
}

.map-link {
  color: var(--ink);
  font-weight: 700;
  text-decoration: underline;
  text-decoration-color: rgba(47, 125, 95, 0.35);
  text-underline-offset: 3px;
}

.map-link:hover {
  color: var(--green-dark);
}

.public-signup-details small,
.public-signup-category-meta small {
  color: var(--muted);
}

.public-payment-summary button {
  margin-top: 0;
}

.public-payment-summary {
  align-items: end;
  display: flex;
  gap: 12px 16px;
  justify-content: space-between;
}

.public-payment-summary-content {
  display: grid;
  flex: 1 1 180px;
  gap: 2px;
  min-width: 0;
}

.public-payment-summary-actions {
  flex: 0 0 auto;
}

.public-payment-summary-content .fee-row {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.public-payment-summary-content .fee-total {
  font-size: 0.9rem;
  margin-top: 2px;
}

.public-payment-summary-content .fee-row small {
  min-width: 0;
}

.public-payment-summary-content .fee-row .compact-button {
  flex: 0 0 auto;
}

.public-payment-summary .fee-status {
  display: inline-block;
  margin-top: 4px;
}

.public-payment-summary-content > span,
.public-payment-summary-content > strong,
.public-payment-summary-content > small,
.public-payment-summary-content .fee-total,
.public-payment-summary-content .fee-status {
  grid-column: 1;
}

.public-payment-summary-actions .compact-button {
  margin-top: 0;
}

.category-warning {
  background: #fff7e5;
  border: 1px solid #efd9a9;
  border-radius: 8px;
  color: #6d4d00;
  font-weight: 700;
  padding: 12px 14px;
}

.public-signup-category-grid {
  display: grid;
  gap: 18px;
}

.public-signup-category-card {
  background:
    linear-gradient(135deg, rgba(47, 125, 95, 0.1), rgba(233, 111, 79, 0.08) 46%, rgba(255, 255, 255, 0) 78%),
    var(--surface);
  border: 1px solid rgba(47, 125, 95, 0.2);
  border-radius: 8px;
  box-shadow: 0 18px 48px rgba(35, 49, 43, 0.08);
  display: grid;
  gap: 18px;
  min-width: 0;
  padding: 24px;
  position: relative;
}

.public-signup-category-card::before {
  background: linear-gradient(180deg, var(--green), var(--coral));
  border-radius: 8px 0 0 8px;
  content: "";
  inset: 0 auto 0 0;
  position: absolute;
  width: 5px;
}

.public-signup-category-card header {
  align-items: start;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 1fr);
}

.public-signup-category-card .public-category-card-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
  grid-column: 1;
  grid-row: 1;
  justify-self: end;
}

.public-signup-category-card header > div:first-child {
  grid-column: 1;
  grid-row: 1;
  justify-self: start;
  max-width: min(42%, 480px);
  min-width: 0;
}

.public-signup-category-card h3 {
  font-size: 1.35rem;
  margin-bottom: 4px;
  overflow-wrap: anywhere;
}

.category-title-link-row {
  align-items: center;
  display: inline-flex;
  gap: 8px;
  grid-column: 1;
  grid-row: 1;
  justify-self: center;
  min-width: 0;
}

.category-title-link-copy {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.category-title-link-copy small {
  color: var(--green-dark);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1;
  text-transform: uppercase;
}

.category-title-link-copy a {
  color: var(--green-dark);
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.2;
  max-width: min(460px, 60vw);
  overflow-wrap: anywhere;
  text-decoration: none;
}

.category-title-link-copy a:hover {
  text-decoration: underline;
}

.category-title-link-actions {
  display: inline-flex;
  gap: 6px;
}

.category-title-link-actions .icon-button {
  height: 32px;
  width: 32px;
}

.category-title-link-actions svg {
  fill: none;
  height: 15px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
  width: 15px;
}

.public-signup-category-card p {
  color: var(--muted);
  margin: 0;
  overflow-wrap: anywhere;
}

.public-signup-category-meta {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-signup-partner {
  background: #eef7f2;
  border: 1px solid #c8ded3;
  border-radius: 8px;
  display: grid;
  gap: 2px;
  padding: 12px 14px;
}

.public-signup-partner:not(form) {
  align-items: center;
  grid-template-columns: minmax(0, 1fr) auto;
}

.public-signup-partner strong,
.public-signup-partner small {
  display: block;
}

.public-signup-partner span,
.public-signup-partner small {
  color: var(--muted);
  font-size: 0.78rem;
}

.public-signup-partner .public-partner-entry {
  align-items: center;
  display: flex;
  gap: 10px;
  margin-top: 8px;
}

.public-signup-partner .public-partner-entry input {
  flex: 0 1 420px;
  max-width: 100%;
}

.public-signup-partner .public-partner-entry .compact-button {
  flex: 0 0 auto;
  width: auto;
}

.public-category-section {
  background: linear-gradient(135deg, #f7faf6 0%, #eef6f3 42%, #fff7e7 100%);
  min-height: 100vh;
  padding: 120px clamp(18px, 5vw, 64px) 72px;
}

.public-category-shell {
  display: grid;
  gap: 18px;
  margin: 0 auto;
  max-width: 1180px;
  width: 100%;
}

.public-category-header {
  align-items: end;
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 470px);
}

.public-category-header h2 {
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1;
  margin-bottom: 12px;
}

.public-category-header p:not(.eyebrow) {
  color: var(--muted);
  margin: 0;
}

.public-category-switcher {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.public-category-switcher span,
.public-info-grid span,
.public-team-grid span {
  color: var(--green-dark);
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
}

.public-category-switcher select {
  background: linear-gradient(180deg, #fff 0%, #f8fbfa 100%);
  border: 1px solid var(--line);
  border-radius: 8px;
  min-height: 46px;
  padding: 0 12px;
  width: 100%;
}

.public-category-card {
  background: linear-gradient(135deg, #ffffff 0%, #fff8ea 48%, #edf7f4 100%);
  border: 1px solid #cdded7;
  border-left: 4px solid var(--aqua);
  border-radius: 8px;
  box-shadow: 0 24px 58px rgba(27, 53, 47, 0.1);
  display: grid;
  gap: 16px;
  padding: 20px;
}

.public-info-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.public-info-grid div {
  background: linear-gradient(180deg, #fff 0%, #fbfdfc 100%);
  border: 1px solid #ccdcd6;
  border-radius: 8px;
  display: grid;
  gap: 4px;
  padding: 14px;
}

.public-info-grid div:nth-child(1) {
  background: linear-gradient(180deg, #ffffff 0%, #eff8f4 100%);
  border-color: #b8d8c9;
}

.public-info-grid div:nth-child(2) {
  background: linear-gradient(180deg, #ffffff 0%, #eef5fb 100%);
  border-color: #bbd3ea;
}

.public-info-grid div:nth-child(3) {
  background: linear-gradient(180deg, #ffffff 0%, #fff6dd 100%);
  border-color: #ecd08a;
}

.public-info-grid div:nth-child(4) {
  background: linear-gradient(180deg, #ffffff 0%, #f7efed 100%);
  border-color: #e3c2b9;
}

.public-info-grid strong {
  font-size: 1.05rem;
}

.public-info-grid small,
.public-team-grid small {
  color: var(--muted);
}

.public-tabs {
  background: rgba(232, 242, 238, 0.9);
  border: 1px solid #cadbd5;
  border-radius: 8px;
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 4px;
}

.public-tab {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 6px;
  color: var(--muted);
  cursor: pointer;
  display: inline-flex;
  gap: 8px;
  font-weight: 700;
  justify-content: center;
  min-height: 42px;
}

.public-tab.active {
  background: var(--green);
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.28), 0 8px 20px rgba(47, 125, 95, 0.18);
  color: #fff;
  cursor: default;
}

.public-tab.hidden {
  display: none;
}

.public-tab-refresh-glyph {
  display: none;
  line-height: 0;
}

.public-tab.active .public-tab-refresh-glyph {
  display: inline-flex;
}

.public-tab-refresh-glyph svg {
  fill: none;
  height: 16px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
  width: 16px;
}

.public-tabs.refreshing .public-tab.active .public-tab-refresh-glyph svg {
  animation: public-refresh-spin 700ms linear infinite;
}

.public-tab-panel {
  display: none;
}

@keyframes public-refresh-spin {
  to {
    transform: rotate(360deg);
  }
}

.public-tab-panel.active {
  display: grid;
  gap: 18px;
}

.public-tab-panel .empty-state {
  background: rgba(255, 255, 255, 0.7);
  border-style: dashed;
  box-shadow: none;
}

.public-team-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-team-grid article {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 5px;
  padding: 14px;
}

.public-light-player-grid article {
  align-content: center;
  min-height: 58px;
}

.public-schedule-table .leaderboard-matchup {
  justify-content: flex-start;
}

.public-schedule-table {
  min-width: 1040px;
}

.public-schedule-table tr.public-match-unplayed td {
  background: #fffdf7;
}

.public-schedule-table tr.public-match-played td {
  background: #eef7fb;
  color: #526a72;
}

.public-schedule-table tr.public-match-played .leaderboard-matchup strong {
  color: #294b58;
}

.public-match-score {
  color: var(--blue);
  font-weight: 800;
  text-align: center;
}

.public-match-score-inline {
  display: none;
}

.public-schedule-table th:nth-child(5),
.public-schedule-table td:nth-child(5) {
  min-width: 360px;
  width: 42%;
}

.public-light-schedule-table {
  min-width: 980px;
}

.public-light-schedule-table th:nth-child(1),
.public-light-schedule-table td:nth-child(1),
.public-light-schedule-table th:nth-child(2),
.public-light-schedule-table td:nth-child(2) {
  width: 12%;
}

.public-light-schedule-table th:nth-child(3),
.public-light-schedule-table td:nth-child(3) {
  min-width: 560px;
  width: 60%;
}

.public-light-schedule-table th:nth-child(4),
.public-light-schedule-table td:nth-child(4) {
  width: 16%;
}

.public-light-schedule-table .leaderboard-matchup {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 24px minmax(0, 1fr);
  text-align: center;
  width: 100%;
}

.public-light-schedule-table .leaderboard-matchup span {
  text-align: center;
}

.public-light-schedule-table .leaderboard-matchup strong:first-child {
  text-align: right;
}

.public-light-schedule-table .leaderboard-matchup strong:last-child {
  text-align: left;
}

.public-schedule-table .leaderboard-matchup strong {
  white-space: nowrap;
}

.table-link {
  color: var(--ink);
  font-weight: 700;
}

.partner-chip {
  background: #eff8f3;
  border: 1px solid rgba(47, 125, 95, 0.2);
  border-radius: 999px;
  color: var(--green-dark);
  display: inline-flex;
  font-weight: 700;
  padding: 7px 12px;
}

.partner-dialog {
  background: transparent;
  border: 0;
  max-width: min(680px, calc(100vw - 32px));
  padding: 0;
  width: 100%;
}

.partner-dialog.is-open {
  display: block;
  left: 50%;
  position: fixed;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 1000;
}

body.modal-open::after {
  background: rgba(22, 32, 29, 0.48);
  content: "";
  inset: 0;
  position: fixed;
  z-index: 999;
}

.save-confirm-dialog {
  max-width: min(460px, calc(100vw - 32px));
}

.score-picker-dialog {
  max-width: min(460px, calc(100vw - 24px));
}

.next-round-dialog {
  max-width: min(760px, calc(100vw - 32px));
}

.next-round-dialog-panel {
  gap: 16px;
  max-height: min(90vh, 860px);
  overflow: auto;
}

.next-round-dialog-header {
  align-items: start;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
}

.next-round-help-button {
  align-items: center;
  aspect-ratio: 1;
  background: #f5fbf8;
  border: 1px solid rgba(47, 125, 95, 0.28);
  border-radius: 999px;
  color: var(--green-dark);
  cursor: pointer;
  display: inline-flex;
  font-size: 1rem;
  font-weight: 900;
  justify-content: center;
  min-height: 36px;
  padding: 0;
  width: 36px;
}

.next-round-help-button:hover,
.next-round-help-button:focus-visible {
  background: #e5f4ed;
  outline: 2px solid rgba(47, 125, 95, 0.18);
}

.next-round-dialog .close-button,
.next-round-help-panel .close-button {
  position: static;
}

.next-round-settings,
.next-round-help-copy {
  display: grid;
  gap: 14px;
}

.next-round-qualifiers {
  border: 1px solid rgba(47, 125, 95, 0.18);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  padding: 14px;
}

.next-round-qualifiers-header {
  align-items: end;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.next-round-qualifiers-header h4 {
  font-size: 1.15rem;
  margin: 2px 0 0;
}

.next-round-qualifiers-header span {
  color: var(--green-dark);
  font-size: 0.82rem;
  font-weight: 900;
  text-transform: uppercase;
}

.next-round-groups {
  display: grid;
  gap: 12px;
  max-height: min(42vh, 420px);
  overflow-y: auto;
  padding-right: 4px;
}

.next-round-group-card {
  background: #fbfdfb;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 8px;
  padding: 12px;
}

.next-round-group-title {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.next-round-group-title h5 {
  color: var(--green-dark);
  font-size: 0.9rem;
  letter-spacing: 0;
  margin: 0;
  text-transform: uppercase;
}

.next-round-group-title span {
  color: var(--muted);
  font-size: 0.82rem;
}

.next-round-table-wrap {
  overflow-x: auto;
}

.next-round-standings-table {
  border-collapse: collapse;
  font-size: 0.88rem;
  min-width: 560px;
  width: 100%;
}

.next-round-standings-table th,
.next-round-standings-table td {
  border-bottom: 1px solid rgba(47, 125, 95, 0.14);
  padding: 8px 7px;
  text-align: center;
}

.next-round-standings-table th:nth-child(2),
.next-round-standings-table td:nth-child(2) {
  text-align: left;
  width: 52%;
}

.next-round-standings-table th {
  color: var(--green-dark);
  font-size: 0.72rem;
  text-transform: uppercase;
}

.next-round-standings-table tbody tr:last-child td {
  border-bottom: 0;
}

.next-round-standings-table input {
  accent-color: var(--green);
  height: 16px;
  width: 16px;
}

.next-round-standings-table td:nth-child(2) span {
  color: var(--green-dark);
  display: inline-block;
  font-weight: 900;
  min-width: 22px;
}

.next-round-warning {
  background: #fff8e5;
  border: 1px solid rgba(196, 128, 0, 0.22);
  border-left: 4px solid #c48000;
  border-radius: 8px;
  color: #4a3510;
  font-weight: 800;
  margin: 0;
  padding: 12px 14px;
}

.next-round-help-panel {
  background: #fbfdfb;
  border: 1px solid rgba(47, 125, 95, 0.24);
  border-radius: 8px;
  box-shadow: 0 18px 40px rgba(22, 32, 29, 0.16);
  display: grid;
  gap: 16px;
  padding: 18px;
}

.next-round-help-panel.hidden {
  display: none;
}

.next-round-help-copy p {
  color: var(--muted);
  margin: 0;
}

.next-round-help-copy strong {
  color: var(--ink);
}

.score-picker-panel {
  max-height: min(720px, calc(100vh - 32px));
  overflow: hidden;
}

.score-picker-grid {
  display: grid;
  gap: 6px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  max-height: min(58vh, 360px);
  overflow: auto;
  padding-right: 2px;
}

.score-picker-button {
  align-items: center;
  aspect-ratio: auto;
  background: #fbfdfb;
  border: 1px solid rgba(47, 125, 95, 0.22);
  border-radius: 8px;
  color: var(--ink);
  cursor: pointer;
  display: inline-flex;
  font-variant-numeric: tabular-nums;
  font-size: 0.88rem;
  font-weight: 800;
  justify-content: center;
  min-height: 38px;
  padding: 0;
}

.score-picker-button:hover,
.score-picker-button:focus-visible {
  background: #eaf5ef;
  border-color: rgba(47, 125, 95, 0.5);
  outline: 2px solid rgba(47, 125, 95, 0.18);
}

.partner-dialog::backdrop {
  background: rgba(22, 32, 29, 0.48);
  backdrop-filter: blur(6px);
}

.partner-dialog-panel {
  background: var(--surface);
  border: 1px solid rgba(47, 125, 95, 0.16);
  border-radius: 8px;
  box-shadow: var(--shadow);
  display: grid;
  gap: 18px;
  padding: 22px;
}

.partner-dialog-header {
  align-items: start;
  border-bottom: 1px solid var(--line);
  display: flex;
  gap: 18px;
  justify-content: space-between;
  padding-bottom: 16px;
}

.partner-dialog-header h3 {
  font-size: 1.6rem;
  line-height: 1.1;
  margin: 0;
}

.partner-dialog-header p:not(.eyebrow) {
  color: var(--muted);
  margin: 8px 0 0;
}

.partner-listbox {
  display: grid;
  gap: 10px;
  max-height: min(460px, 62vh);
  overflow: auto;
}

.partner-listbox button {
  background: #fbfdfb;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  cursor: pointer;
  display: grid;
  gap: 4px;
  padding: 14px 16px;
  text-align: left;
}

.partner-listbox button:hover {
  background: #eef7f2;
  border-color: rgba(47, 125, 95, 0.28);
}

.partner-listbox span {
  color: var(--muted);
}

.compact-button {
  min-height: 34px;
  padding: 6px 12px;
}

.tournaments-heading {
  align-items: center;
}

.search-field {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 4px;
  min-width: min(420px, 100%);
  padding: 10px 14px;
}

.search-field span {
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
}

.search-field input {
  background: transparent;
  border: 0;
  color: var(--ink);
  min-height: 28px;
  outline: 0;
  width: 100%;
}

.tournament-list {
  align-items: stretch;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  justify-content: start;
  margin-top: 18px;
}

.tournament-card {
  background:
    linear-gradient(145deg, rgba(49, 95, 143, 0.08), rgba(233, 111, 79, 0.08) 48%, rgba(255, 255, 255, 0) 86%),
    var(--surface);
  border-color: rgba(47, 125, 95, 0.18);
  box-shadow: 0 20px 56px rgba(35, 49, 43, 0.09);
  display: grid;
  gap: 18px;
  min-height: 222px;
  position: relative;
}

.tournament-card::before {
  background: linear-gradient(180deg, var(--green), var(--coral));
  border-radius: 8px 0 0 8px;
  content: "";
  inset: 0 auto 0 0;
  position: absolute;
  width: 5px;
}

.tournament-card header {
  display: flex;
  gap: 14px;
  justify-content: space-between;
}

.tournament-card h3 {
  font-size: clamp(1.25rem, 1.6vw, 1.45rem);
  margin-bottom: 4px;
}

.tag {
  align-self: start;
  background: var(--ink);
  border-radius: 999px;
  color: #fff;
  flex: 0 0 auto;
  font-size: 0.76rem;
  font-weight: 700;
  padding: 6px 10px;
}

.tag.basketball {
  background: var(--coral);
}

.tag.tennis {
  background: var(--blue);
}

.tag.soccer {
  background: var(--green);
}

.tag.volleyball {
  background: var(--gold);
  color: var(--ink);
}

.meta-row {
  color: var(--muted);
  display: flex;
  flex-wrap: wrap;
  font-size: 0.92rem;
  gap: 10px;
}

.category-summary {
  color: #26332f;
  font-size: 0.96rem;
  font-weight: 650;
  line-height: 1.4;
}

.card-footer {
  align-items: center;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  margin-top: auto;
  padding-top: 16px;
}

.status {
  color: var(--green-dark);
  font-weight: 700;
}

.text-button {
  background: transparent;
  border: 0;
  color: var(--ink);
  cursor: pointer;
  font-weight: 700;
  padding: 0;
}

.signup-card-button {
  background: var(--green);
  border-radius: 8px;
  color: #fff;
  min-height: 38px;
  padding: 0 14px;
}

.signup-card-button:hover {
  background: var(--green-dark);
}

.empty-state {
  background: var(--surface);
  border: 1px dashed #b8c8bf;
  border-radius: 8px;
  color: var(--muted);
  grid-column: 1 / -1;
  padding: 34px;
  text-align: center;
}

.closing-band {
  background: #f7efe7;
  padding: 64px clamp(18px, 5vw, 64px);
}

.closing-band-inner {
  align-items: center;
  display: flex;
  gap: 28px;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 1180px;
  width: 100%;
}

.closing-band h2 {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.05;
  margin-bottom: 0;
}

.auth-dialog {
  background: transparent;
  border: 0;
  max-width: min(820px, calc(100vw - 32px));
  padding: 0;
  width: 100%;
}

.auth-dialog::backdrop {
  background: rgba(22, 32, 29, 0.48);
  backdrop-filter: blur(6px);
}

.auth-panel {
  background: var(--surface);
  border-radius: 8px;
  box-shadow: var(--shadow);
  max-height: min(86vh, 820px);
  overflow: auto;
  padding: 28px;
  position: relative;
}

.auth-panel h2 {
  font-size: 2rem;
  line-height: 1.1;
  margin-bottom: 14px;
}

.meta-dialog {
  max-width: min(1120px, calc(100vw - 28px));
}

.meta-dialog .auth-panel {
  background:
    linear-gradient(135deg, rgba(47, 125, 95, 0.08), rgba(233, 111, 79, 0.05) 46%, rgba(255, 255, 255, 0) 78%),
    var(--surface);
  padding: 30px;
}

.meta-dialog h2 {
  margin-bottom: 10px;
}

.meta-tabs {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 12px 0 16px;
}

.meta-panel {
  display: none;
}

.meta-panel.active {
  display: grid;
  gap: 14px;
}

.meta-panel-header {
  align-items: end;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
}

.payment-instructions-panel {
  display: grid;
  gap: 14px;
}

.payment-instructions-text {
  color: var(--ink);
  line-height: 1.55;
  margin: 0;
  max-width: 62ch;
  white-space: pre-wrap;
}

.tournament-type-dialog {
  max-width: min(820px, calc(100vw - 32px));
}

.tournament-type-panel {
  display: grid;
  gap: 18px;
}

.tournament-type-options {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tournament-type-option {
  background: #fbf9f3;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  cursor: pointer;
  display: grid;
  gap: 10px;
  min-height: 148px;
  padding: 18px;
  text-align: left;
}

.tournament-type-option:hover,
.tournament-type-option:focus-visible {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(44, 132, 98, 0.16);
  outline: none;
}

.tournament-type-option.upcoming {
  background: #f5f7f6;
  color: #6e7a75;
  cursor: not-allowed;
  opacity: 0.82;
}

.tournament-type-option.upcoming:hover,
.tournament-type-option.upcoming:focus-visible {
  border-color: var(--line);
  box-shadow: none;
}

.tournament-type-option strong {
  font-size: 1.08rem;
}

.tournament-type-option small {
  color: var(--muted);
  line-height: 1.45;
}

.modal-actions {
  display: flex;
  justify-content: flex-end;
}

#public-signup-dialog-actions {
  margin-top: 18px;
}

.close-button {
  background: #eef4f0;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  height: 34px;
  position: absolute;
  right: 16px;
  top: 16px;
  width: 34px;
}

.auth-tabs {
  background: #eef4f0;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  margin: 24px 0;
  padding: 4px;
}

.auth-tabs.hidden {
  display: none;
}

.profile-tabs {
  display: inline-flex;
  width: fit-content;
}

.profile-tabs .auth-tab {
  min-width: 124px;
  padding: 0 28px;
}

.auth-tab {
  background: transparent;
  border: 0;
  border-radius: 6px;
  color: var(--muted);
  cursor: pointer;
  font-weight: 700;
  min-height: 42px;
}

.auth-tab.active {
  background: var(--green);
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.28), 0 8px 20px rgba(47, 125, 95, 0.18);
  color: #fff;
  cursor: default;
}

.auth-form {
  display: none;
}

.auth-form.active {
  display: grid;
  gap: 16px;
}

.public-signup-form {
  display: grid;
  gap: 16px;
}

.profile-panel {
  max-height: min(88vh, 860px);
}

.profile-rating-list {
  display: grid;
  gap: 12px;
}

.profile-rating-row {
  align-items: end;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr 1fr minmax(100px, 0.55fr) minmax(120px, 0.75fr) auto;
  padding: 12px;
}

.profile-rating-row .icon-button {
  align-self: end;
}

.profile-financial-form .form-grid {
  align-items: end;
}

.profile-financial-copy {
  color: var(--muted);
  font-size: 0.94rem;
  line-height: 1.45;
  margin: 0;
}

.profile-financial-form .form-field.hidden {
  display: none;
}

.compact-search {
  margin: 0 0 16px;
}

.meta-dialog .compact-search {
  background: rgba(255, 255, 255, 0.78);
  border-color: rgba(47, 125, 95, 0.18);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.86);
  margin: 0;
}

.superuser-users-table-wrap {
  background: rgba(255, 255, 255, 0.82);
  border: 1px solid rgba(47, 125, 95, 0.16);
  border-radius: 8px;
  box-shadow: 0 14px 34px rgba(35, 49, 43, 0.06);
  max-height: min(58vh, 560px);
  overflow: auto;
}

.superuser-users-table {
  border-collapse: separate;
  border-spacing: 0;
  min-width: 720px;
  width: 100%;
}

.meta-users-table {
  table-layout: fixed;
  min-width: 860px;
}

.meta-users-table th:nth-child(1),
.meta-users-table td:nth-child(1) {
  width: 44px;
}

.meta-users-table th:nth-child(2),
.meta-users-table td:nth-child(2) {
  width: 28%;
}

.meta-users-table th:nth-child(3),
.meta-users-table td:nth-child(3) {
  width: 14%;
}

.meta-users-table th:nth-child(4),
.meta-users-table td:nth-child(4) {
  width: 33%;
}

.meta-users-table th:nth-child(5),
.meta-users-table td:nth-child(5) {
  width: 20%;
}

.meta-users-table td {
  overflow-wrap: anywhere;
}

.meta-users-table .text-button {
  color: var(--ink);
  font-size: 1rem;
  line-height: 1.25;
  max-width: 100%;
  text-align: left;
  white-space: normal;
}

.meta-pricing-panel .admin-panel-header {
  align-items: end;
  gap: 16px;
}

.meta-pricing-panel p {
  color: var(--muted);
  margin: 4px 0 0;
}

.meta-pricing-table {
  min-width: 900px;
  table-layout: fixed;
}

.meta-tournaments-table {
  min-width: 1050px;
}

.meta-pricing-table th:nth-child(1),
.meta-pricing-table td:nth-child(1) {
  width: 28%;
}

.meta-pricing-table th:nth-child(2),
.meta-pricing-table td:nth-child(2) {
  width: 20%;
}

.meta-pricing-table th:nth-child(3),
.meta-pricing-table td:nth-child(3),
.meta-pricing-table th:nth-child(4),
.meta-pricing-table td:nth-child(4),
.meta-pricing-table th:nth-child(5),
.meta-pricing-table td:nth-child(5) {
  width: 14%;
}

.meta-pricing-table th:nth-child(6),
.meta-pricing-table td:nth-child(6) {
  text-align: center;
  width: 10%;
}

.meta-pricing-table small {
  color: var(--muted);
  display: block;
  font-size: 0.78rem;
  margin-top: 4px;
}

.meta-price-input {
  background: #fbfdfb;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  min-height: 32px;
  outline: 0;
  padding: 5px 8px;
  text-align: right;
  width: 100%;
}

.meta-price-input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(47, 125, 95, 0.14);
}

.meta-pricing-table input[type="checkbox"] {
  accent-color: var(--green);
  height: 16px;
  width: 16px;
}

.meta-muted,
.meta-phone,
.meta-email,
.meta-city {
  color: #34443f;
  font-size: 0.92rem;
}

.meta-user-expand-cell {
  text-align: center;
}

.meta-user-expand-button {
  height: 30px;
  min-height: 30px;
  width: 30px;
}

.meta-user-expand-button svg {
  fill: none;
  height: 16px;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.5;
  transition: transform 160ms ease;
  width: 16px;
}

.meta-user-main-row.expanded .meta-user-expand-button svg {
  transform: rotate(90deg);
}

.meta-user-detail-row {
  display: none;
}

.meta-user-detail-row.expanded {
  display: table-row;
}

.meta-user-detail-row td {
  padding-top: 0;
}

.meta-user-detail-grid {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(47, 125, 95, 0.14);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 9px 12px;
}

.meta-user-detail-grid span {
  color: var(--muted);
  display: block;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.meta-user-detail-grid strong {
  color: var(--ink);
  display: block;
  font-size: 0.92rem;
  font-weight: 650;
  margin-top: 2px;
  overflow-wrap: anywhere;
}

.meta-role-pill {
  background: #e8f6ef;
  border: 1px solid rgba(47, 125, 95, 0.18);
  border-radius: 999px;
  color: var(--green-dark);
  display: inline-flex;
  font-size: 0.76rem;
  font-weight: 800;
  line-height: 1;
  margin: 2px 6px 2px 0;
  padding: 6px 9px;
}

.superuser-users-table th,
.superuser-users-table td {
  border-bottom: 1px solid var(--line);
  padding: 9px 12px;
  text-align: left;
  vertical-align: middle;
}

.superuser-users-table th {
  background: #eef5fb;
  border-bottom-color: rgba(49, 95, 143, 0.18);
  color: var(--green-dark);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  padding-bottom: 10px;
  padding-top: 10px;
  position: sticky;
  top: 0;
  text-transform: uppercase;
  z-index: 1;
}

.superuser-users-table tbody tr:nth-child(odd) td {
  background: rgba(255, 255, 255, 0.72);
}

.superuser-users-table tbody tr:nth-child(even) td {
  background: rgba(239, 248, 243, 0.48);
}

.superuser-users-table tbody tr:hover td {
  background: #fff7e5;
}

.superuser-users-table tr:last-child td {
  border-bottom: 0;
}

.auth-inline-action {
  min-height: auto;
  padding: 2px 0;
  text-align: center;
}

.form-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tournament-main-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.create-tournament-form.wizard-mode .tournament-main-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-field {
  display: grid;
  gap: 6px;
}

.form-field > span:not(.password-input),
.role-fieldset legend {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
}

.form-field input,
.form-field select {
  background: #fbfdfb;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  min-height: 46px;
  outline: 0;
  padding: 0 12px;
  width: 100%;
}

.form-field input:focus,
.form-field select:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(47, 125, 95, 0.14);
}

.role-fieldset {
  border: 0;
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
}

.role-choice {
  align-items: start;
  background: #fbfdfb;
  border: 1px solid var(--line);
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  gap: 12px;
  padding: 14px;
}

.role-choice input {
  accent-color: var(--green);
  margin-top: 4px;
}

.role-choice span {
  display: grid;
  gap: 2px;
}

.role-choice small,
.ratings-note {
  color: var(--muted);
}

.ratings-note {
  background: #f7efe7;
  border-radius: 8px;
  font-weight: 700;
  padding: 12px 14px;
}

.rating-system-panel {
  display: grid;
  gap: 14px;
  grid-column: 1 / -1;
}

.rating-system-panel.hidden,
.custom-rating-panel.hidden,
.rating-band-guide.hidden {
  display: none;
}

.rating-registration-note {
  align-items: center;
  color: var(--muted);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  color: var(--muted);
  line-height: 1.35;
}

.rating-registration-note.hidden {
  display: none;
}

.rating-registration-switch {
  align-items: center;
  cursor: pointer;
  display: inline-flex;
  gap: 8px;
  white-space: nowrap;
}

.rating-registration-switch input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.rating-registration-switch span {
  background: #dce7e1;
  border-radius: 999px;
  display: inline-flex;
  height: 24px;
  padding: 3px;
  transition: background 0.18s ease;
  width: 44px;
}

.rating-registration-switch span::before {
  background: #fff;
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(35, 49, 43, 0.2);
  content: "";
  height: 18px;
  transition: transform 0.18s ease;
  width: 18px;
}

.rating-registration-switch input:checked + span {
  background: var(--green);
}

.rating-registration-switch input:checked + span::before {
  transform: translateX(20px);
}

.rating-registration-switch input:focus-visible + span {
  box-shadow: 0 0 0 3px rgba(47, 125, 95, 0.18);
}

.rating-registration-switch strong {
  color: var(--green-dark);
  font-size: 0.82rem;
}

.rating-band-guide {
  background: #f8fbfa;
  border: 1px solid #cadbd5;
  border-radius: 8px;
  display: grid;
  gap: 10px;
  padding: 12px;
}

.rating-range-panel {
  display: grid;
  gap: 12px;
  grid-column: 1 / -1;
  padding: 4px 0 0;
}

.rating-range-panel.hidden {
  display: none;
}

.rating-range-summary {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rating-range-field {
  align-items: center;
  background: #fbfdfc;
  border: 1px solid #d8e5df;
  border-radius: 8px;
  column-gap: 10px;
  display: grid;
  grid-template-columns: 42px minmax(72px, 1fr);
  padding: 9px 10px;
}

.rating-range-summary span {
  color: var(--green-dark);
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.rating-range-summary strong {
  font-size: 1.25rem;
}

.rating-range-summary small {
  color: var(--muted);
  grid-column: 2;
  line-height: 1.35;
}

.rating-range-summary input {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  cursor: text;
  font: inherit;
  height: 42px;
  margin: 0;
  min-width: 0;
  outline: 0;
  padding: 0 12px;
  pointer-events: auto;
  width: 100%;
}

.rating-range-summary input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(47, 125, 95, 0.14);
}

.rating-slider {
  --rating-min: 0%;
  --rating-max: 100%;
  height: 34px;
  position: relative;
}

.rating-slider::before,
.rating-slider::after {
  border-radius: 999px;
  content: "";
  height: 8px;
  left: 0;
  position: absolute;
  right: 0;
  top: 13px;
}

.rating-slider::before {
  background: #dce7e1;
}

.rating-slider::after {
  background: linear-gradient(90deg, var(--aqua), var(--gold));
  left: var(--rating-min);
  right: calc(100% - var(--rating-max));
}

.rating-slider input[type="range"] {
  appearance: none;
  background: transparent;
  height: 34px;
  left: 0;
  margin: 0;
  pointer-events: none;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: 2;
}

.rating-slider input[type="range"]::-webkit-slider-thumb {
  appearance: none;
  background: #fff;
  border: 3px solid var(--green);
  border-radius: 999px;
  box-shadow: 0 5px 14px rgba(35, 49, 43, 0.18);
  cursor: pointer;
  height: 24px;
  pointer-events: auto;
  width: 24px;
}

.rating-slider input[type="range"]::-moz-range-thumb {
  background: #fff;
  border: 3px solid var(--green);
  border-radius: 999px;
  box-shadow: 0 5px 14px rgba(35, 49, 43, 0.18);
  cursor: pointer;
  height: 18px;
  pointer-events: auto;
  width: 18px;
}

.rating-slider input[type="range"]::-webkit-slider-runnable-track {
  background: transparent;
}

.rating-slider input[type="range"]::-moz-range-track {
  background: transparent;
}

.rating-number-fields {
  margin-top: 0;
}

.rating-guide-header {
  align-items: center;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}

.rating-guide-header span {
  color: var(--green-dark);
  font-weight: 700;
}

.rating-band-guide p {
  color: var(--muted);
  margin: 0;
}

.rating-band-list {
  display: grid;
  gap: 8px;
}

.rating-band-list div {
  align-items: start;
  border-top: 1px solid rgba(38, 75, 64, 0.12);
  display: grid;
  gap: 4px;
  grid-template-columns: 90px minmax(0, 1fr);
  padding-top: 8px;
}

.rating-band-list span {
  font-weight: 700;
}

.rating-band-list small {
  color: var(--muted);
  grid-column: 2;
}

.custom-rating-panel {
  display: grid;
  gap: 12px;
}

.custom-rating-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.custom-rating-header span {
  color: var(--green-dark);
  font-size: 0.76rem;
  font-weight: 700;
  text-transform: uppercase;
}

.custom-rating-bands {
  display: grid;
  gap: 8px;
}

.custom-rating-band-row {
  display: grid;
  gap: 8px;
  grid-template-columns: 86px 86px minmax(160px, 1fr) 38px;
}

.custom-rating-band-row input {
  background: #fbfdfb;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  height: 36px;
  min-width: 0;
  outline: 0;
  padding: 7px 8px;
}

.custom-rating-band-row input:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(47, 125, 95, 0.14);
}

.auth-message {
  display: none;
  margin-top: 18px;
}

.auth-message.visible {
  background: #edf6f0;
  border: 1px solid #bad8ca;
  border-radius: 8px;
  box-sizing: border-box;
  color: var(--green-dark);
  display: block;
  font-weight: 700;
  padding: 14px;
}

.auth-message.error {
  background: #fff3ef;
  border-color: #f1b9a8;
  color: #9a3e25;
}

#participants-message {
  margin-left: auto;
  margin-right: auto;
  max-width: 1180px;
}

.reset-link-panel {
  background: #fbfdfb;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  gap: 10px;
  margin-top: 14px;
  padding: 14px;
}

.reset-link-panel.hidden {
  display: none;
}

.reset-link-panel span {
  color: var(--muted);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
}

.reset-link-panel a {
  color: var(--green-dark);
  font-weight: 700;
  overflow-wrap: anywhere;
  text-decoration: underline;
}

.full-width {
  width: 100%;
}

.password-input {
  display: grid;
  position: relative;
}

.password-input input {
  padding-right: 50px;
}

.password-toggle {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  height: 38px;
  justify-content: center;
  padding: 0;
  position: absolute;
  right: 5px;
  top: 4px;
  width: 42px;
}

.password-toggle::before {
  border: 2px solid var(--muted);
  border-radius: 60% 40% 60% 40%;
  content: "";
  height: 12px;
  transform: rotate(45deg);
  width: 20px;
}

.password-toggle::after {
  background: var(--muted);
  border-radius: 50%;
  content: "";
  height: 6px;
  position: absolute;
  width: 6px;
}

.password-toggle.is-visible::before {
  border-color: var(--green-dark);
}

.password-toggle.is-visible::after {
  background: var(--green-dark);
}

.password-toggle:hover,
.password-toggle:focus-visible {
  background: #edf3ef;
}

.sr-only {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

@media (max-width: 1120px) {
  .tournament-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .score-picker-dialog {
    max-width: calc(100vw - 16px);
  }

  .score-picker-panel {
    gap: 14px;
    padding: 16px;
  }

  .score-picker-grid {
    gap: 5px;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    max-height: min(58vh, 340px);
  }

  .score-picker-button {
    border-radius: 6px;
    font-size: 0.82rem;
    min-height: 34px;
  }

  .inline-control-action {
    grid-template-columns: 1fr;
  }

  .health-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .restart-panel {
    align-items: stretch;
    display: grid;
  }

  .site-header {
    position: absolute;
  }

  .site-header-inner {
    gap: 14px;
    grid-template-columns: auto minmax(0, 1fr) auto;
  }

  .header-actions {
    gap: 6px;
  }

  .mobile-menu-button {
    display: inline-flex;
  }

  .nav-links {
    display: none;
  }

  .nav-links.mobile-open {
    align-items: stretch;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 18px 48px rgba(35, 49, 43, 0.16);
    display: grid;
    gap: 0;
    grid-column: 1 / -1;
    justify-self: stretch;
    left: 18px;
    padding: 6px;
    position: absolute;
    right: 18px;
    top: calc(100% + 8px);
    z-index: 30;
  }

  .nav-links.mobile-open a {
    border-radius: 6px;
    color: var(--ink);
    min-height: 42px;
    padding: 10px 12px;
  }

  .nav-links.mobile-open a:hover {
    background: #edf3ef;
  }

  .hero {
    min-height: 760px;
  }

  .hero-overlay {
    background:
      linear-gradient(180deg, rgba(248, 250, 247, 0.98) 0%, rgba(248, 250, 247, 0.84) 52%, rgba(248, 250, 247, 0.16) 100%);
  }

  .hero-content {
    padding: 128px 28px 72px;
    transform: none;
  }

  .hero-content h1 {
    font-size: clamp(3rem, 12vw, 4.2rem);
    line-height: 0.95;
  }

  .hero-actions {
    grid-template-columns: 1fr;
    max-width: 100%;
  }

  .hero-actions .primary-button {
    justify-self: start;
  }

  .hero .tournaments-section {
    max-width: 100%;
  }

  .trust-strip,
  .feature-grid,
  .tournament-list,
  .tournament-type-options,
  .category-list-grid,
  .credits-shell,
  .health-grid {
    grid-template-columns: 1fr;
  }

  .trust-strip {
    margin-top: 0;
    max-width: 100%;
  }

  .tournament-card:first-child {
    grid-column: auto;
  }

  .edit-tournament-pane,
  .category-hero,
  .category-step.active {
    grid-template-columns: 1fr;
  }

  .edit-tournament-pane-actions,
  .category-hero-actions,
  .category-empty-state {
    align-items: stretch;
    flex-direction: column;
  }

  .edit-tournament-metrics,
  .category-metrics,
  .admin-summary-grid,
  .admin-content-grid {
    grid-template-columns: 1fr;
  }

  .category-step > .form-grid {
    grid-column: 1 / -1;
  }

  .participants-hero,
  .participant-metrics,
  .my-leaderboard-summary {
    grid-template-columns: 1fr;
  }

  .my-leaderboard-ladder-notice {
    align-items: stretch;
    flex-direction: column;
  }

  .participants-actions {
    align-items: stretch;
    grid-template-columns: 1fr;
    max-width: 100%;
  }

  .participant-search-row {
    align-items: stretch;
  }

  .participant-category-card .participant-card-add-action {
    margin-left: 0;
    width: 100%;
  }

  .discount-code-row {
    align-items: stretch;
    grid-template-columns: 1fr;
  }

  .section-heading,
  .public-signup-header,
  .closing-band-inner {
    align-items: stretch;
    flex-direction: column;
  }

  .public-signup-section {
    padding: 96px 18px 48px;
  }

  .public-signup-header {
    gap: 14px;
  }

  .public-signup-header h2 {
    font-size: clamp(2.15rem, 9vw, 3rem);
    line-height: 1.04;
  }

  .public-signup-header-actions {
    align-items: stretch;
    justify-content: flex-start;
  }

  .public-signup-header-actions .outline-button {
    width: auto;
  }

  .public-signup-details,
  .public-signup-category-meta {
    grid-template-columns: 1fr;
  }

  .public-signup-details div,
  .public-signup-category-meta div {
    padding: 14px;
  }

  .public-payment-summary {
    align-items: stretch;
    flex-direction: column;
  }

  .public-payment-summary-actions,
  .public-payment-summary-actions .compact-button {
    width: 100%;
  }

  .public-signup-category-card {
    gap: 16px;
    padding: 20px 18px 20px 22px;
  }

  .public-signup-category-card header {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  .public-signup-category-card header > div:first-child {
    grid-column: 1;
    grid-row: auto;
    max-width: 100%;
  }

  .public-signup-category-card header > .category-title-link-row {
    grid-column: 1;
    grid-row: auto;
    justify-self: stretch;
  }

  .public-signup-category-card .public-category-card-actions {
    align-self: start;
    grid-column: 1;
    grid-row: auto;
    justify-self: start;
    justify-content: flex-start;
    width: fit-content;
  }

  .public-category-settings-button span {
    display: none;
  }

  .category-title-link-row {
    align-items: flex-start;
    flex-direction: column;
  }

  .category-title-link-copy a {
    max-width: calc(100vw - 88px);
  }

  .tournament-details,
  .category-details {
    grid-template-columns: 1fr;
  }

  .category-card .category-details {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .category-card .category-card-header {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .category-card .category-title-block {
    grid-column: 1;
  }

  .category-card .category-public-link-row {
    grid-column: 1 / -1;
    justify-self: stretch;
    max-width: 100%;
    width: 100%;
  }

  .category-card .category-public-link {
    min-width: 0;
  }

  .category-card .category-card-header > .role-badge {
    grid-column: 2;
    grid-row: 1;
  }

  .category-card .category-details div {
    min-width: 0;
    padding: 10px 12px;
  }

  .category-card .category-details dd {
    font-size: 0.96rem;
    overflow-wrap: anywhere;
  }

  .category-card .category-details .public-link-detail {
    grid-column: 1 / -1;
  }

  .category-card .category-details .date-detail {
    grid-column: 1;
    order: 1;
  }

  .category-card .category-details .team-detail {
    grid-column: 2;
    order: 2;
  }

  .category-card .category-details .event-detail {
    grid-column: 1 / -1;
    order: 3;
  }

  .ladder-availability-row {
    grid-template-columns: 1fr;
  }

  .ladder-availability-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .ladder-availability-action-group {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .ladder-availability-actions > .outline-button,
  .ladder-availability-action-group > button {
    width: 100%;
  }

  .ladder-challenge-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .ladder-challenge-actions > button {
    width: 100%;
  }

  .ladder-proposal-grid {
    grid-template-columns: 1fr;
  }

  .category-card .category-details .event-detail dd {
    font-size: 0.92rem;
    line-height: 1.35;
  }

  .public-category-section {
    padding: 96px 18px 48px;
  }

  .category-data-panel .leaderboard-list {
    gap: 0;
    padding: 0 12px 16px;
  }

  .category-data-panel .leaderboard-list .leaderboard-group {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    gap: 0;
    overflow: visible;
  }

  .category-data-panel .leaderboard-list .leaderboard-group > h4 {
    padding: 0 0 10px;
  }

  .public-category-header {
    align-items: stretch;
    grid-template-columns: 1fr;
  }

  .public-category-header h2 {
    font-size: 2.4rem;
  }

  .public-category-header p:not(.eyebrow) {
    overflow-wrap: break-word;
  }

  .public-info-grid,
  .public-team-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .public-tabs {
    grid-template-columns: 1fr;
  }

  .schedule-panel .category-form-header {
    padding: 18px;
  }

  .schedule-panel .schedule-table,
  .schedule-panel .schedule-table thead,
  .schedule-panel .schedule-table tbody,
  .schedule-panel .schedule-table tr,
  .schedule-panel .schedule-table td {
    display: block;
    min-width: 0;
    width: 100%;
  }

  .schedule-panel .schedule-table thead {
    display: none;
  }

  .schedule-panel .schedule-table {
    border-collapse: separate;
    border-spacing: 0 14px;
  }

  .schedule-panel .schedule-table tbody {
    display: grid;
    gap: 14px;
    padding: 0 14px 16px;
  }

  .schedule-panel .schedule-table tr {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 10px 26px rgba(35, 49, 43, 0.08);
    display: grid;
    gap: 10px 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    overflow: hidden;
    padding: 14px;
  }

  .schedule-panel .schedule-table tbody tr:nth-child(odd) td,
  .schedule-panel .schedule-table tbody tr:nth-child(even) td,
  .schedule-panel .schedule-table tr.schedule-match-disputed td {
    background: transparent;
  }

  .schedule-panel .schedule-table tr.schedule-time-group-start {
    border-top: 4px solid var(--green);
  }

  .schedule-panel .schedule-table tr.schedule-match-disputed {
    background: #fff7ed;
  }

  .schedule-panel .schedule-table th,
  .schedule-panel .schedule-table td,
  .schedule-panel .schedule-table tr.schedule-time-group-start td {
    background: transparent;
    border: 0;
    padding: 0;
    width: auto !important;
  }

  .schedule-panel .schedule-table td::before {
    color: var(--green-dark);
    content: attr(data-label);
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.04em;
    margin-bottom: 3px;
    text-transform: uppercase;
  }

  .schedule-panel .schedule-table td:nth-child(1),
  .schedule-panel .schedule-table td:nth-child(2),
  .schedule-panel .schedule-table td:nth-child(3),
  .schedule-panel .schedule-table td:nth-child(4),
  .schedule-panel .schedule-table td:nth-child(5) {
    color: #1d2a26;
    font-size: 0.92rem;
    font-weight: 650;
  }

  .schedule-panel .schedule-table td:nth-child(1),
  .schedule-panel .schedule-table td:nth-child(3),
  .schedule-panel .schedule-table td:nth-child(4),
  .schedule-panel .schedule-table td:nth-child(5) {
    border: 1px solid rgba(47, 125, 95, 0.14);
    border-radius: 8px;
    padding: 10px 12px;
    text-align: center;
  }

  .schedule-panel .schedule-table td:nth-child(1)[data-move-match] {
    cursor: pointer;
  }

  .schedule-panel .schedule-table td:nth-child(1)[data-move-match]:hover,
  .schedule-panel .schedule-table td:nth-child(1)[data-move-match]:focus-visible {
    background: #eef9f4;
    border-color: rgba(47, 125, 95, 0.34);
    box-shadow: 0 0 0 3px rgba(47, 125, 95, 0.1);
    outline: none;
  }

  .schedule-panel .schedule-table td:nth-child(1)::before,
  .schedule-panel .schedule-table td:nth-child(3)::before,
  .schedule-panel .schedule-table td:nth-child(4)::before,
  .schedule-panel .schedule-table td:nth-child(5)::before {
    text-align: center;
  }

  .schedule-panel .schedule-table td:nth-child(2) {
    display: none;
  }

  .schedule-panel.ladder-schedule-view .schedule-table td:nth-child(2) {
    display: block;
  }

  .schedule-panel.light-schedule-view .schedule-table td:nth-child(1) {
    display: none;
  }

  .schedule-panel .schedule-mobile-time {
    color: var(--muted);
    display: inline;
    font-size: 0.88rem;
    font-weight: 700;
  }

  .schedule-panel .schedule-date-time-cell {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: center;
  }

  .schedule-panel .schedule-table td:nth-child(6),
  .schedule-panel .schedule-table td:nth-child(7),
  .schedule-panel .schedule-table td:nth-child(8) {
    grid-column: 1 / -1;
  }

  .schedule-panel .schedule-table td:nth-child(6)::before,
  .schedule-panel .schedule-table td:nth-child(8)::before {
    content: none;
  }

  .schedule-panel .matchup-stack {
    border-top: 1px solid rgba(45, 74, 64, 0.12);
    justify-items: center;
    max-width: none;
    padding-top: 12px;
  }

  .schedule-panel .score-grid {
    border-top: 1px solid rgba(45, 74, 64, 0.12);
    justify-items: center;
    padding-top: 12px;
  }

  .schedule-panel .score-matrix {
    column-gap: 10px;
    grid-template-columns: repeat(var(--score-games), minmax(56px, 68px));
    row-gap: 6px;
  }

  .schedule-panel .score-input {
    background: #fff;
    border-radius: 8px;
    min-height: 40px;
    width: 100%;
  }

  .schedule-panel .schedule-row-actions {
    border-top: 1px solid rgba(45, 74, 64, 0.12);
    justify-content: stretch;
    padding-top: 10px;
  }

  .schedule-panel .schedule-row-actions .compact-button {
    background: #fff;
    min-height: 44px;
    width: 100%;
  }

  .profile-rating-row {
    grid-template-columns: 1fr;
  }

  .public-schedule-table,
  .public-schedule-table thead,
  .public-schedule-table tbody,
  .public-schedule-table tr,
  .public-schedule-table td {
    display: block;
    min-width: 0;
    width: 100%;
  }

  .public-schedule-table {
    border-collapse: separate;
    border-spacing: 0 16px;
  }

  .public-schedule-table thead {
    display: none;
  }

  .public-schedule-table tr {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    box-shadow: 0 10px 24px rgba(35, 49, 43, 0.06);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 12px;
    overflow: hidden;
    padding: 10px 12px;
  }

  .public-schedule-table tr.public-match-unplayed {
    background: #fffdf7;
    border-color: #e4c772;
    box-shadow: 0 14px 28px rgba(126, 87, 28, 0.12);
  }

  .public-schedule-table tr.public-match-played {
    background: #eef7fb;
    border-color: #b8d8e2;
    box-shadow: 0 8px 18px rgba(49, 95, 143, 0.06);
  }

  .public-schedule-table tr:last-child {
    margin-bottom: 0;
  }

  .public-schedule-table tr.schedule-time-group-start td {
    border-top: 0;
    padding: 0;
  }

  .public-schedule-table tr.schedule-time-group-start,
  .public-schedule-table tr.schedule-time-group-start td {
    background: inherit;
  }

  .public-schedule-table tr.schedule-time-group-start td:nth-child(1),
  .public-schedule-table tr.schedule-time-group-start td:nth-child(2),
  .public-schedule-table tr.schedule-time-group-start td:nth-child(3),
  .public-schedule-table tr.schedule-time-group-start td:nth-child(4),
  .public-schedule-table tr.schedule-time-group-start td:nth-child(5),
  .public-schedule-table tr.schedule-time-group-start td:nth-child(6) {
    color: #33443e;
    font-weight: 520;
  }

  .public-schedule-table td {
    align-items: start;
    border-bottom: 0;
    background: transparent;
    display: grid;
    gap: 3px;
    grid-template-columns: 1fr;
    padding: 0;
    text-align: left;
  }

  .public-schedule-table tr.public-match-played td {
    color: #526a72;
  }

  .public-schedule-table tr.public-match-unplayed td {
    color: var(--ink);
  }

  .public-schedule-table td::before {
    color: var(--green-dark);
    content: attr(data-label);
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
  }

  .public-schedule-table .public-match-date::before,
  .public-schedule-table .public-match-time::before,
  .public-schedule-table .public-match-court::before,
  .public-schedule-table .public-match-round::before,
  .public-schedule-table td[data-label="Score"]::before {
    content: none;
  }

  .public-schedule-table .public-match-matchup {
    border-top: 1px solid rgba(45, 74, 64, 0.16);
    display: grid;
    gap: 6px;
    grid-column: 1 / -1;
    grid-row: 2;
    padding-top: 9px;
  }

  .public-schedule-table tr.schedule-time-group-start .public-match-matchup {
    border-top: 1px solid rgba(45, 74, 64, 0.16);
    padding-top: 9px;
  }

  .public-schedule-table tr.public-match-unplayed .public-match-matchup {
    background: rgba(255, 248, 226, 0.8);
  }

  .public-schedule-table tr.public-match-played .public-match-matchup {
    background: rgba(218, 238, 246, 0.75);
  }

  .public-schedule-table .public-match-date,
  .public-schedule-table .public-match-time,
  .public-schedule-table .public-match-court,
  .public-schedule-table .public-match-round,
  .public-schedule-table td[data-label="Score"] {
    padding-bottom: 9px;
  }

  .public-schedule-table tr.schedule-time-group-start .public-match-date,
  .public-schedule-table tr.schedule-time-group-start .public-match-time,
  .public-schedule-table tr.schedule-time-group-start .public-match-court,
  .public-schedule-table tr.schedule-time-group-start .public-match-round,
  .public-schedule-table tr.schedule-time-group-start td[data-label="Score"] {
    padding-bottom: 9px;
  }

  .public-schedule-table .public-match-date,
  .public-schedule-table .public-match-time,
  .public-schedule-table .public-match-court,
  .public-schedule-table .public-match-round {
    align-items: center;
    display: flex;
    min-width: 0;
    white-space: nowrap;
  }

  .public-schedule-table .public-match-matchup::before {
    content: none;
  }

  .public-schedule-table th:nth-child(5),
  .public-schedule-table td:nth-child(5) {
    min-width: 0;
    width: 100%;
  }

  .public-light-schedule-table th,
  .public-light-schedule-table td,
  .public-light-schedule-table th:nth-child(3),
  .public-light-schedule-table td:nth-child(3) {
    min-width: 0;
    width: 100%;
  }

  .public-schedule-table .leaderboard-matchup {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: center;
    text-align: center;
  }

  .public-schedule-table .leaderboard-matchup span {
    font-size: 0.68rem;
  }

  .public-schedule-table .leaderboard-matchup strong {
    white-space: normal;
  }

  .public-schedule-table tr.public-light-match-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .public-schedule-table tr.public-light-match-row .public-match-round {
    justify-self: end;
    justify-content: flex-end;
    text-align: right;
  }

  .public-schedule-table tr.public-light-match-row .public-match-matchup {
    grid-column: 1 / -1;
    padding-bottom: 8px;
    width: 100%;
  }

  .public-schedule-table tr.public-light-match-row .leaderboard-matchup {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr);
    line-height: 1.35;
    width: 100%;
  }

  .public-schedule-table tr.public-light-match-row .leaderboard-matchup span {
    text-align: center;
  }

  .public-schedule-table tr.public-light-match-row .leaderboard-matchup strong {
    overflow-wrap: anywhere;
  }

  .public-schedule-table tr.public-light-match-row .leaderboard-matchup strong:first-child {
    text-align: right;
  }

  .public-schedule-table tr.public-light-match-row .leaderboard-matchup strong:last-child {
    text-align: left;
  }

  .public-schedule-table td[data-label="Score"] {
    display: none;
  }

  .public-schedule-table .public-match-score-inline {
    align-items: center;
    color: var(--blue);
    display: grid;
    font-size: 0.78rem;
    grid-template-columns: minmax(0, 1fr) 28px minmax(0, 1fr);
    font-weight: 800;
    line-height: 1;
    margin: 0 auto;
    width: 100%;
  }

  .public-schedule-table .public-match-score-inline span {
    padding: 0 3px;
  }

  .public-schedule-table .public-match-score-inline .score-side-left {
    text-align: right;
  }

  .public-schedule-table .public-match-score-inline .score-separator {
    text-align: center;
  }

  .public-schedule-table .public-match-score-inline .score-side-right {
    text-align: left;
  }

}

@media (max-width: 520px) {
  .ghost-button {
    padding-inline: 10px;
  }

  .hero {
    min-height: 720px;
  }

  .hero-content {
    padding-inline: 22px;
  }

  .hero-content h1 {
    font-size: clamp(2.55rem, 11.5vw, 3.4rem);
  }

  .hero-actions,
  .auth-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .data-tabs {
    grid-template-columns: 1fr;
  }

  .my-leaderboard-match {
    margin-inline: 14px;
  }

  .primary-button,
  .outline-button {
    width: 100%;
  }

  .form-actions > .primary-button,
  .form-actions > .outline-button {
    width: auto;
  }

  .my-tournament-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .tournament-main-grid > .form-field:not(.wide-field),
  .tournament-main-grid > .signup-fees-panel,
  .tournament-main-grid > .tournament-name-field,
  .tournament-main-grid > .tournament-feature-field,
  .tournament-main-grid > .wide-field,
  .create-tournament-form.wizard-mode .tournament-main-grid > .form-field,
  .create-tournament-form.wizard-mode .tournament-main-grid > .wide-field {
    grid-column: 1 / -1;
  }

  .create-tournament-form.wizard-mode .tournament-main-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .rating-band-list div,
  .rating-range-summary,
  .custom-rating-band-row {
    grid-template-columns: 1fr;
  }

  .section {
    padding-block: 62px;
  }

  .tournament-card header,
  .card-footer,
  .my-tournament-card-header,
  .card-actions {
    align-items: start;
    flex-direction: column;
  }

  .category-public-link-row {
    justify-self: start;
  }

  .public-info-grid,
  .public-signup-category-meta,
  .public-team-grid {
    grid-template-columns: 1fr;
  }

  .category-card .category-details {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .category-card .category-details .event-detail,
  .category-card .category-details .public-link-detail {
    grid-column: 1 / -1;
  }

  .public-signup-category-card header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    padding-right: 0;
  }

  .public-signup-category-card .public-category-card-actions {
    justify-content: flex-start;
    justify-self: start;
    position: static;
    width: fit-content;
  }

  .public-signup-category-card header {
    grid-template-columns: 1fr;
  }

  .public-category-card {
    padding: 14px;
  }

  .public-schedule-table td {
    grid-template-columns: 1fr;
  }

  .public-schedule-table tr {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .public-schedule-table tr.public-light-match-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }

  .public-signup-partner .public-partner-entry {
    align-items: stretch;
    flex-direction: column;
  }

  .public-signup-partner .public-partner-entry input,
  .public-signup-partner .public-partner-entry .compact-button {
    flex-basis: auto;
    width: 100%;
  }

  .partner-dialog-header {
    align-items: stretch;
    flex-direction: column;
  }
}
