/*
 * Shared full-width iOS list layer.
 *
 * This file is loaded after the product and live-event styles so every
 * screen consumes the same section, row, divider, and surface vocabulary.
 * Rounded controls, badges, avatars, sheets, and true modal surfaces keep
 * their own treatment; ordinary page content does not become a floating card.
 */

:root {
  --surface-page: #ffffff;
  --surface-secondary: #ffffff;
  --app-page-bg: #ffffff;
  --social-page: #ffffff;
  --leaderboard-page: #ffffff;
  --app-space-1: 4px;
  --app-space-2: 8px;
  --app-space-3: 12px;
  --app-space-4: 16px;
  --app-space-5: 20px;
  --app-space-6: 24px;
  --app-page-inset-start: max(16px, env(safe-area-inset-left));
  --app-page-inset-end: max(16px, env(safe-area-inset-right));
  --app-desktop-max-width: var(--app-max-width);
  --app-section-header-top: 24px;
  --app-section-header-bottom: 8px;
  --app-row-min-height: 72px;
  --app-row-detail-min-height: 76px;
  --app-row-padding-block: 14px;
  --app-row-icon-gap: 16px;
  --app-row-trailing-gap: 16px;
  --app-button-gap: 16px;
  --app-button-height: 54px;
  --app-multiline-gap: 4px;
  --app-section-gap: 24px;
  --app-row-divider: rgba(60, 60, 67, 0.16);
  --app-radius-surface: 0;
  --app-radius-group: 0;
  --radius-card: 0;
  --radius-large: 0;
  --shadow-card: none;
}

/*
 * Shared Event Manager form system.
 *
 * Every organizer form opts into the same primitives: the page owns the
 * width, sections provide rhythm and dividers, and controls are the only
 * rounded surfaces. The older form-specific classes remain as semantic
 * hooks for behavior and accessibility, but no longer define a second card
 * layout.
 */
.event-manager-form,
.event-manager-form-section {
  --event-form-inset: max(16px, env(safe-area-inset-left));
  --event-form-inset-end: max(16px, env(safe-area-inset-right));
  --event-form-divider: rgba(60, 60, 67, 0.16);
  --event-form-control-border: #bfc5c0;
}

/* Event Manager form primitives apply inside the mobile viewport and the
   contained desktop phone canvas alike. */
  .organizer-setup-screen :is(
    .event-manager-form,
    .event-manager-form-section,
    .event-details-form,
    .competition-form,
    .team-management-form,
    .pairing-details-form,
    .betting-game-form,
    .event-form
  ) {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin-inline: 0;
  }

  .organizer-setup-screen :is(
    .organizer-focused-content,
    .setup-page__content,
    .competition-page__content,
    .team-focused-content,
    .pairing-focused-content
  ):has(.event-manager-form) {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-right: 0;
    padding-left: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .event-manager-form {
    display: grid;
    gap: 0;
    padding: 0;
  }

  .event-manager-form-section,
  .event-manager-form :is(
    .setup-group,
    .field-sheet-fields,
    .competition-basics-group,
    .format-decision-list,
    .competition-alerts-group,
    .team-selection-group,
    .team-selection-options,
    .pairing-schedule-group,
    .pairing-assignment-list,
    .tee-sheet-settings-group,
    .betting-form-fields,
    .event-details-group
  ) {
    overflow: visible;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .event-manager-form > .event-manager-form-section + .event-manager-form-section,
  .event-manager-form-section > .event-manager-form-section + .event-manager-form-section {
    margin-top: var(--app-section-gap);
  }

  .event-manager-form-section > .competition-details-section__note,
  .event-manager-form-section > .pairing-details-section__note,
  .event-manager-form-section > .competition-section-help {
    margin: 0;
    padding: 0 var(--event-form-inset-end) var(--app-space-2) var(--event-form-inset);
    color: var(--app-secondary-label);
    font-size: 12px;
    line-height: 17px;
  }

  .event-manager-form :is(
    .field-sheet-field--stacked,
    .field-sheet-field--row,
    .setup-field-row,
    .setup-switch-row,
    .competition-field-row,
    .competition-toggle-row,
    .competition-order-row,
    .betting-field-row,
    .betting-toggle-row,
    .tee-sheet-settings-row
  ),
  .event-manager-form-section :is(
    .field-sheet-field--stacked,
    .field-sheet-field--row,
    .setup-field-row,
    .setup-switch-row,
    .competition-field-row,
    .competition-toggle-row,
    .competition-order-row,
    .betting-field-row,
    .betting-toggle-row,
    .tee-sheet-settings-row
  ) {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    min-height: var(--app-row-min-height);
    padding: var(--app-row-padding-block) var(--event-form-inset-end) var(--app-row-padding-block) var(--event-form-inset);
    border: 0;
    border-top: 1px solid var(--event-form-divider);
    border-radius: 0;
    background: transparent;
  }

  .event-manager-form :is(
    .field-sheet-field--stacked,
    .field-sheet-field--row,
    .setup-field-row,
    .setup-switch-row,
    .competition-field-row,
    .competition-toggle-row,
    .competition-order-row,
    .betting-field-row,
    .betting-toggle-row,
    .tee-sheet-settings-row
  ):first-child,
  .event-manager-form-section :is(
    .field-sheet-field--stacked,
    .field-sheet-field--row,
    .setup-field-row,
    .setup-switch-row,
    .competition-field-row,
    .competition-toggle-row,
    .competition-order-row,
    .betting-field-row,
    .betting-toggle-row,
    .tee-sheet-settings-row
  ):first-child {
    border-top: 0;
  }

  .event-manager-form :is(
    input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not(.event-form-control),
    select:not(.event-form-control),
    textarea
  ) {
    box-sizing: border-box;
    max-width: 100%;
    min-height: 44px;
    padding: 10px 12px;
    border: 1px solid var(--event-form-control-border);
    border-radius: 10px;
    background: #fff;
    color: var(--app-label);
    font: 500 16px/22px var(--font-ui);
  }

  .event-manager-form :is(
    input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not(.event-form-control),
    select:not(.event-form-control),
    textarea
  ):focus {
    border-color: var(--app-primary);
    outline: 3px solid color-mix(in srgb, var(--app-primary) 18%, transparent);
    outline-offset: 0;
  }

  .event-manager-form :is(.field-sheet-field--stacked, .field-sheet-field--row) > label,
  .event-manager-form :is(.setup-field-row, .competition-field-row, .betting-field-row) > label,
  .event-manager-form :is(.field-sheet-field--stacked, .field-sheet-field--row) > span > label {
    color: var(--app-label);
    font-size: 15px;
    line-height: 20px;
    font-weight: 650;
  }

  .event-manager-form :is(.field-sheet-field, .setup-field-row, .competition-field-row, .betting-field-row) small,
  .event-manager-form :is(.field-sheet-field, .setup-field-row, .competition-field-row, .betting-field-row) .event-details-hint {
    margin-top: var(--app-multiline-gap);
    color: var(--app-secondary-label);
    font-size: 12px;
    line-height: 17px;
  }

  /* Invite by Email uses a section label, full-width textarea, and helper in
     one predictable vertical stack. */
  .event-manager-form .field-email-invite-field {
    display: grid;
    gap: 0;
    margin-top: var(--app-section-gap);
    padding: 0;
    border: 0;
  }

  .event-manager-form .field-email-invite-field > label {
    margin: 0;
    padding: 0 var(--event-form-inset-end) var(--app-space-2) var(--event-form-inset);
    color: var(--app-primary);
    font-size: 12px;
    line-height: 17px;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  .event-manager-form .field-email-invite-field > textarea {
    width: calc(100% - var(--event-form-inset) - var(--event-form-inset-end));
    min-height: 124px;
    margin: 0 var(--event-form-inset-end) 0 var(--event-form-inset);
    resize: vertical;
  }

  .event-manager-form .field-email-invite-field > small {
    margin: var(--app-space-2) var(--event-form-inset-end) 0 var(--event-form-inset);
  }

  .event-manager-form :is(.field-capacity-note, .field-registration-state, .field-account-confirmation) {
    display: flex;
    width: 100%;
    min-height: var(--app-row-min-height);
    box-sizing: border-box;
    align-items: center;
    justify-content: space-between;
    gap: var(--app-space-3);
    margin: 0;
    padding: var(--app-row-padding-block) var(--event-form-inset-end) var(--app-row-padding-block) var(--event-form-inset);
    border: 0;
    border-top: 1px solid var(--event-form-divider);
    border-bottom: 1px solid var(--event-form-divider);
    border-radius: 0;
    background: transparent;
  }

  .event-manager-form :is(.field-registration-state, .field-account-confirmation) {
    margin-bottom: var(--app-section-gap);
  }

  .event-manager-form :is(.format-decision-list, .team-selection-options, .pairing-assignment-list) {
    width: 100%;
    border: 0;
    border-top: 1px solid var(--event-form-divider);
  }

  .event-manager-form :is(.format-decision-card, .team-player-option, .pairing-assignment-row) {
    width: 100%;
    min-height: var(--app-row-detail-min-height);
    box-sizing: border-box;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .event-manager-form :is(.format-decision-card, .team-player-option, .pairing-assignment-row) + :is(.format-decision-card, .team-player-option, .pairing-assignment-row) {
    border-top: 1px solid var(--event-form-divider);
  }

  .event-manager-form :is(.team-player-option, .pairing-assignment-row) {
    padding-right: var(--event-form-inset-end);
    padding-left: var(--event-form-inset);
  }

  .event-manager-form :is(.pairing-schedule-group, .tee-sheet-settings-group) {
    border: 0;
    border-top: 1px solid var(--event-form-divider);
    border-bottom: 1px solid var(--event-form-divider);
    border-radius: 0;
  }

  .event-manager-form :is(.pairing-schedule-row, .tee-sheet-settings-row) {
    min-height: var(--app-row-min-height);
    padding-right: var(--event-form-inset-end);
    padding-left: var(--event-form-inset);
    border-radius: 0;
  }

  .event-manager-form :is(.pairing-schedule-row, .tee-sheet-settings-row) + :is(.pairing-schedule-row, .tee-sheet-settings-row) {
    border-top: 1px solid var(--event-form-divider);
  }

  .event-manager-form :is(.pairing-player-search, .team-player-search, .field-player-search__input) {
    width: calc(100% - var(--event-form-inset) - var(--event-form-inset-end));
    min-height: 44px;
    margin: var(--app-space-3) var(--event-form-inset-end) var(--app-space-2) var(--event-form-inset);
    box-sizing: border-box;
    border: 1px solid var(--event-form-control-border);
    border-radius: 10px;
    background: #fff;
  }

  .event-manager-form :is(.field-player-search__input, .pairing-player-search, .team-player-search) input {
    min-height: 42px;
    border: 0;
    border-radius: 10px;
    background: transparent;
  }

  .event-manager-form :is(.competition-name-field, .format-summary) {
    width: 100%;
    box-sizing: border-box;
    padding: var(--app-row-padding-block) var(--event-form-inset-end) var(--app-row-padding-block) var(--event-form-inset);
    border: 0;
    border-top: 1px solid var(--event-form-divider);
    border-radius: 0;
    background: transparent;
  }

  .event-manager-form :is(.competition-name-field, .format-summary):first-child {
    border-top: 0;
  }

  .event-manager-form :is(.round-form__actions, .team-form-actions, .event-setting-actions, .betting-game-actions) {
    display: grid;
    gap: var(--app-button-gap);
    width: 100%;
    margin-top: var(--app-button-gap);
    padding: 0;
  }

  .event-manager-form > :is(
    .ios-primary-button,
    .event-setting-submit,
    .competition-form-submit,
    .pairing-form-submit,
    .betting-game-submit,
    .team-form-submit,
    .field-secondary-button,
    .pairing-remove-button
  ),
  .event-manager-form .round-form__actions > .ios-primary-button,
  .event-manager-form .team-form-actions > .ios-primary-button {
    width: calc(100% - var(--event-form-inset) - var(--event-form-inset-end));
    min-width: 0;
    min-height: var(--app-button-height);
    margin: var(--app-button-gap) var(--event-form-inset-end) 0 var(--event-form-inset);
    border-radius: 12px;
  }

  .event-manager-form :is(.round-form__actions, .team-form-actions) > :is(.ios-primary-button, .team-form-submit) {
    margin-top: 0;
  }

  .event-manager-form :is(.form-error, .ios-form-error, .field-sheet-error, .competition-form-error, .pairing-form-error) {
    width: calc(100% - var(--event-form-inset) - var(--event-form-inset-end));
    box-sizing: border-box;
    margin: 0 var(--event-form-inset-end) var(--app-space-3) var(--event-form-inset);
    padding: var(--app-space-3) 0;
    border: 0;
    border-top: 2px solid var(--app-danger, #b42318);
    border-bottom: 1px solid var(--event-form-divider);
    border-radius: 0;
  }

  .event-manager-form :is(.format-builder__helper, .format-builder__error, .team-section-help, .pairing-details-section__note) {
    margin: var(--app-space-2) var(--event-form-inset-end) 0 var(--event-form-inset);
  }

  .event-manager-form .format-builder__handicap {
    width: 100%;
    min-height: var(--app-row-detail-min-height);
    margin: var(--app-section-gap) 0 0;
    padding: var(--app-row-padding-block) var(--event-form-inset-end) var(--app-row-padding-block) var(--event-form-inset);
    box-sizing: border-box;
    border: 0;
    border-top: 1px solid var(--event-form-divider);
    border-bottom: 1px solid var(--event-form-divider);
    border-radius: 0;
    background: transparent;
  }

  .event-manager-form :is(.pairing-summary, .format-summary, .betting-game-ruleline) {
    width: 100%;
    box-sizing: border-box;
    margin: var(--app-section-gap) 0 0;
    padding: var(--app-row-padding-block) var(--event-form-inset-end) var(--app-row-padding-block) var(--event-form-inset);
    border: 0;
    border-top: 1px solid var(--event-form-divider);
    border-bottom: 1px solid var(--event-form-divider);
    border-radius: 0;
    background: transparent;
  }

  .event-manager-form .pairing-summary {
    grid-template-columns: 40px minmax(0, 1fr);
  }

  .event-manager-form .pairing-live-lock {
    margin: var(--app-space-3) var(--event-form-inset-end) 0 var(--event-form-inset);
    padding: var(--app-space-3) 0;
    border: 0;
    border-top: 1px solid var(--event-form-divider);
    border-bottom: 1px solid var(--event-form-divider);
    border-radius: 0;
    background: transparent;
  }

  .organizer-setup-screen .event-manager-form :is(.ios-switch-row, .event-setting-choice) {
    width: 100%;
    min-height: var(--app-row-detail-min-height);
    padding-right: var(--event-form-inset-end);
    padding-left: var(--event-form-inset);
    border-radius: 0;
  }

  .organizer-setup-screen .event-manager-form .event-setting-choice-list {
    width: 100%;
    border: 0;
  }

  .organizer-setup-screen .event-manager-form .event-setting-submit {
    width: calc(100% - var(--event-form-inset) - var(--event-form-inset-end));
    margin-right: var(--event-form-inset-end);
    margin-left: var(--event-form-inset);
  }

  /* Player-add screens are simple forms, not bordered list cards. Keep the
     controls defined, but let the page breathe between them. */
  .organizer-setup-screen .organizer-focused-content--players .event-setting-page__group {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .organizer-setup-screen .organizer-focused-content--players .event-setting-page__intro {
    padding-right: var(--event-form-inset-end);
    padding-left: var(--event-form-inset);
  }

  .organizer-setup-screen .organizer-focused-content--players .field-add-self {
    box-sizing: border-box;
    width: 100%;
    min-height: 72px;
    margin: 0;
    padding: 12px var(--event-form-inset-end) 12px var(--event-form-inset);
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .organizer-setup-screen .organizer-focused-content--players .field-sheet-fields {
    display: grid;
    gap: var(--app-space-5);
    width: 100%;
    box-sizing: border-box;
    padding: 0 var(--event-form-inset-end) 0 var(--event-form-inset);
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .organizer-setup-screen .organizer-focused-content--players .event-manager-form .field-sheet-field--stacked {
    min-height: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .organizer-setup-screen .organizer-focused-content--players .event-manager-form .field-sheet-field--stacked > label {
    margin: 0 0 var(--app-space-2);
  }

  .organizer-setup-screen .organizer-focused-content--players .field-capacity-note {
    min-height: 56px;
    padding: var(--app-space-3) var(--event-form-inset-end) var(--app-space-3) var(--event-form-inset);
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .organizer-setup-screen .organizer-focused-content--players .field-email-invite-field {
    margin-top: var(--app-space-6);
  }

  .organizer-setup-screen .organizer-focused-content--players .field-player-search__input {
    border-radius: 10px;
  }

  .organizer-setup-screen .organizer-focused-content--players .field-player-search__input input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]) {
    min-height: 42px;
    padding: 10px 0;
    border: 0;
    outline: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }

  .organizer-setup-screen .organizer-focused-content--players .field-player-search__input input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):focus {
    border: 0;
    outline: 0;
    box-shadow: none;
  }

  .organizer-setup-screen .organizer-focused-content--players .field-player-search__input:focus-within {
    border-color: var(--app-primary);
    outline: 0;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--app-primary) 18%, transparent);
  }

  .organizer-setup-screen .organizer-focused-content--players .field-player-search__input {
    margin-top: var(--app-space-4);
    margin-bottom: 0;
  }

  .organizer-setup-screen .organizer-focused-content--players .player-account-status {
    margin-top: var(--app-space-2);
    margin-right: var(--event-form-inset-end);
    margin-left: var(--event-form-inset);
  }

  .organizer-setup-screen .organizer-focused-content--players .event-manager-form :is(
    input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]),
    select,
    textarea
  ):focus {
    outline: 0;
  }
/* Keep the app canvas white across every page-level shell. */
html,
body,
.app-frame,
.ios-app-shell {
  background-color: #ffffff;
}

.ios-screen.app-main:not(.landing-main),
.ios-screen.app-main.auth-main,
.ios-screen.app-main.performance-history-main,
.marketing-landing {
  background-color: #ffffff;
}

.ios-screen.app-main:not(.landing-main):not(.leaderboard-main) {
  background-color: #ffffff;
}

/* Shared list surfaces */
.ios-inset-group,
.setup-group,
.organizer-card-list,
.menu-index-list,
.invitations-list,
.organizer-scorecard-list,
.profile-details-group,
.profile-settings-group,
.event-settings-group,
.player-management-group,
.competition-group,
.team-group,
.pairing-group,
.betting-game-group,
.field-access__list,
.field-attention__list,
.player-list-card,
.team-selection-group,
.pairing-schedule-group,
.pairing-assignment-list,
.pairing-player-section,
.competition-details-section,
.competition-basics-group,
.format-decision-card,
.primary-card,
.content-group,
.surface-card {
  overflow: visible;
  border-top: 1px solid var(--app-row-divider);
  border-right: 0;
  border-bottom: 1px solid var(--app-row-divider);
  border-left: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.ios-inset-group > .ios-list-row,
.ios-inset-group > .ios-list-form,
.ios-inset-group > li,
.setup-group > *,
.event-settings-group > *,
.player-management-group > *,
.competition-group > *,
.team-group > *,
.pairing-group > *,
.betting-game-group > *,
.organizer-card-list > *,
.menu-index-list > *,
.invitations-list > *,
.organizer-scorecard-list > *,
.field-access__list > *,
.field-attention__list > *,
.player-list-card > *,
.team-selection-group > *,
.pairing-schedule-group > *,
.pairing-assignment-list > *,
.pairing-player-section > * {
  border-radius: 0;
  box-shadow: none;
}

.ios-inset-group > .ios-list-row,
.ios-inset-group > .ios-list-form,
.ios-inset-group > li,
.setup-group > *,
.event-settings-group > *,
.player-management-group > *,
.competition-group > *,
.team-group > *,
.pairing-group > *,
.betting-game-group > *,
.organizer-card-list > *,
.menu-index-list > *,
.invitations-list > *,
.organizer-scorecard-list > *,
.field-access__list > *,
.field-attention__list > *,
.player-list-card > *,
.team-selection-group > *,
.pairing-schedule-group > *,
.pairing-assignment-list > *,
.pairing-player-section > * {
  background: transparent;
}

.ios-list-row,
.ios-switch-row,
.setup-disclosure__summary,
.event-setting-editor__summary,
.competition-editor__summary,
.player-editor__summary,
.team-editor__summary,
.pairing-editor__summary,
.betting-game-editor__summary,
.action-row,
.player-row,
.organizer-menu-row,
.menu-index-row,
.event-host-row,
.profile-detail-row,
.profile-account-status-row {
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.ios-list-row + .ios-list-row::before,
.ios-inset-group > .ios-list-form + .ios-list-form::before,
.ios-inset-group > .ios-list-row + .ios-list-form::before,
.ios-inset-group > .ios-list-form + .ios-list-row::before {
  background: var(--app-row-divider);
}

/* Events: one continuous list with a single overflow-action control. */
.organizer-events-page .events-list {
  gap: 0;
  overflow: visible;
  border-top: 1px solid var(--app-row-divider);
  border-bottom: 1px solid var(--app-row-divider);
  background: transparent;
}

.organizer-events-page .event-list-card,
.organizer-events-page .event-list-card:first-child,
.organizer-events-page .event-list-card + .event-list-card {
  min-height: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.organizer-events-page .event-list-card + .event-list-card {
  border-top: 1px solid var(--app-row-divider);
}

.organizer-events-page .event-list-card--managed {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 44px;
}

.organizer-events-page .event-card-summary {
  min-width: 0;
  min-height: 86px;
  grid-template-columns: 8px minmax(0, 1fr);
  gap: 12px;
  padding: 13px var(--app-page-inset-end) 13px var(--app-page-inset-start);
}

.organizer-events-page .event-card-summary--with-logo {
  grid-template-columns: 40px minmax(0, 1fr);
}

.organizer-events-page .event-card-title {
  margin-bottom: 2px;
  padding-bottom: 0;
  border-bottom: 0;
}

.organizer-events-page .event-card-menu {
  position: relative;
  z-index: 1;
  display: grid;
  min-height: 86px;
  place-items: center;
}

.organizer-events-page .event-card-menu[open] {
  z-index: 60;
}

.organizer-events-page .event-card-menu__trigger {
  display: grid;
  width: 44px;
  height: 44px;
  min-height: 44px;
  place-items: center;
  padding: 0;
  border: 0;
  color: var(--app-secondary-label);
  background: transparent;
}

.organizer-events-page .event-card-menu[open] .event-card-menu__trigger {
  color: var(--app-primary);
}

.organizer-events-page .event-card-menu__popover {
  top: calc(50% + 18px);
}

.organizer-events-page .event-list-card--player {
  min-height: 86px;
  grid-template-columns: 8px minmax(0, 1fr) 14px;
  gap: 12px;
  padding: 13px var(--app-page-inset-end) 13px var(--app-page-inset-start);
}

.organizer-events-page .event-list-card--player.event-list-card--with-logo {
  grid-template-columns: 40px minmax(0, 1fr) 14px;
}

.organizer-events-page .event-card-summary__chevron,
.organizer-events-page .event-card-disclosure {
  color: var(--app-tertiary-label);
}

/* Live organizer dashboard: summary, attention, and operations are separate
   page sections, not nested cards. */
.organizer-home-main .organizer-dashboard-grid {
  gap: 0;
  margin-top: 0;
}

.organizer-home-main .organizer-management-sections {
  gap: 0;
}

/* Live Event is the canonical Event Show section label. */
.organizer-section-subheader {
  box-sizing: border-box;
  display: flex;
  width: 100%;
  height: 46px;
  max-width: none;
  min-height: 46px;
  align-items: center;
  justify-self: stretch;
  gap: 6px;
  margin: 0;
  padding: 8px var(--app-page-inset-end) 8px var(--app-page-inset-start);
  border-top: 1px solid var(--app-row-divider);
  border-bottom: 1px solid var(--app-row-divider);
  background: #f2f3f1;
  color: var(--app-primary);
  font-family: var(--font-ui);
  font-size: 13px;
  line-height: 18px;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.organizer-section-subheader > :is(h2, h3, h4) {
  margin: 0;
  color: inherit;
  font: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
}

.organizer-section-subheader + :is(.menu-index-list, .invitations-list),
.organizer-section-subheader + input[type="hidden"] + .event-setting-choice {
  border-top: 0;
}

.organizer-setup-screen .event-settings-page.event-settings-expanded,
.organizer-setup-screen .event-settings-expanded-page,
.organizer-setup-screen .event-settings-expanded .event-settings-expanded-form,
.organizer-setup-screen .event-settings-expanded__section {
  gap: 0;
  margin: 0;
}

.organizer-setup-screen .event-settings-expanded-form .event-manager-form-section >
  .event-manager-form-section + .event-manager-form-section {
  margin-top: 0;
}

.organizer-setup-screen .event-settings-expanded__section > .organizer-section-subheader +
  :is(.event-setting-page, .event-hosts, turbo-frame) :is(.event-setting-page__group, .event-host-list) {
  border-top: 0;
}

.organizer-setup-screen .event-host-invite-form {
  box-sizing: border-box;
  display: grid;
  width: 100%;
  min-height: 68px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--app-space-2);
  padding: var(--app-space-3) var(--app-page-inset-end) var(--app-space-3) var(--app-page-inset-start);
  border-top: 1px solid var(--app-row-divider);
}

.organizer-setup-screen .event-host-invite-form__input {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 var(--app-space-3);
  border: 1px solid var(--event-form-control-border, #bfc5c0);
  border-radius: 10px;
  background: #fff;
  color: var(--app-label);
  font: 500 16px/22px var(--font-ui);
  text-align: left;
}

.organizer-setup-screen .event-host-invite-form__input:focus {
  border-color: var(--app-primary);
  outline: 3px solid color-mix(in srgb, var(--app-primary) 18%, transparent);
  outline-offset: 0;
}

.organizer-setup-screen .event-host-invite-form__submit {
  width: auto;
  min-width: 64px;
  height: 44px;
}

.performance-history-content {
  padding-top: 0;
}

.performance-history-page .event-list-card--managed {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(78px, auto);
}

.performance-history-page .events-list {
  border-top: 0;
  border-bottom: 1px solid var(--app-row-divider);
}

.performance-history-page .event-list-card,
.performance-history-page .event-list-card:first-child,
.performance-history-page .event-list-card + .event-list-card {
  border: 0;
  border-radius: 0;
}

.performance-history-page .event-list-card + .event-list-card {
  border-top: 1px solid var(--app-row-divider);
}

.performance-history-page,
.performance-history-page .performance-history-content,
.performance-history-page .performance-history-events,
.performance-history-page .performance-history-entry {
  background: #fff;
}

.performance-history-page .event-card-summary {
  grid-template-columns: minmax(0, 1fr);
}

.organizer-home-main .organizer-progress,
.organizer-home-main .organizer-leaderboard-hero,
.organizer-home-main .organizer-quick-actions__panel {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.organizer-home-main .organizer-progress {
  padding: 0 var(--app-page-inset-end) var(--app-space-4) var(--app-page-inset-start);
}

.organizer-home-main .organizer-live-summary {
  padding: 0;
}

.organizer-home-main .organizer-progress .organizer-section-subheader {
  width: calc(100% + var(--app-page-inset-start) + var(--app-page-inset-end));
  margin: 0 calc(-1 * var(--app-page-inset-start));
}

.organizer-home-main .organizer-live-summary--live > .organizer-live-summary__header > h2 {
  margin-top: var(--app-space-3);
}

.organizer-home-main .organizer-live-summary__progress {
  margin-top: var(--app-space-2);
}

.organizer-home-main .organizer-live-summary__actions {
  gap: 8px;
  margin-top: var(--app-space-2);
}

.organizer-home-main .organizer-live-attention__group,
.organizer-home-main .organizer-setup-alerts__group {
  margin-right: calc(-1 * max(16px, env(safe-area-inset-right)));
  margin-left: calc(-1 * max(16px, env(safe-area-inset-left)));
  padding-right: max(16px, env(safe-area-inset-right));
  padding-left: max(16px, env(safe-area-inset-left));
  overflow: visible;
  border-top: 1px solid #dfc98d;
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
  border-radius: 0;
  background: #fffaf0;
  box-shadow: none;
}

.organizer-home-main .organizer-live-attention__row,
.organizer-home-main .organizer-setup-alerts__row {
  padding-right: 0;
  padding-left: 0;
  border-radius: 0;
}

.organizer-home-main .organizer-live-attention__row + .organizer-live-attention__row,
.organizer-home-main .organizer-setup-alerts__row + .organizer-setup-alerts__row {
  border-top-color: #eadcb7;
}

.organizer-home-main .organizer-planner-menu,
.organizer-home-main .organizer-live-activity__group,
.organizer-home-main .organizer-sharing__group {
  overflow: visible;
  border-top: 1px solid var(--app-row-divider);
  border-right: 0;
  border-bottom: 1px solid var(--app-row-divider);
  border-left: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.organizer-setup-screen .event-sharing-page .organizer-sharing__delivery-group {
  border: 0;
}

.organizer-setup-screen .event-sharing-page .organizer-sharing__delivery-body {
  padding: 0 var(--app-page-inset-end) var(--app-space-6) var(--app-page-inset-start);
  border-top: 0;
  background: transparent;
}

.organizer-home-main .organizer-menu-row,
.organizer-home-main .organizer-live-activity__row,
.organizer-home-main .organizer-sharing__row {
  padding-right: var(--app-page-inset-end);
  padding-left: var(--app-page-inset-start);
  border-radius: 0;
  background: transparent;
}

/* Share actions use the same row and icon rhythm as the dashboard sections
   around them while keeping their copy-specific trailing controls. */
.organizer-home-main .organizer-sharing__row {
  min-height: var(--app-row-min-height);
  grid-template-columns: 38px minmax(0, 1fr) auto;
  column-gap: var(--app-row-icon-gap);
  padding-top: var(--app-row-padding-block);
  padding-bottom: var(--app-row-padding-block);
}

.organizer-home-main .organizer-sharing__icon {
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: #f0f2ed;
  font-size: 16px;
}

.organizer-home-main .organizer-sharing__copy small {
  display: none;
}

.organizer-home-main .organizer-sharing__action {
  display: grid;
  min-width: 16px;
  padding: 0;
  place-items: center;
  color: var(--app-secondary-label);
  font-size: 16px;
}

.organizer-home-main .organizer-sharing__action > span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Keep Event Manager rows aligned even when their legacy selectors are not
   part of the generic list-row primitive. Their trailing controls must use
   the same readable inset as every other navigation row. */
.organizer-status-option,
.event-setting-sheet .organizer-status-option,
.organizer-sharing__row,
.competition-index-add,
.tee-sheet-more__row,
.tee-sheet-utilities .tee-sheet-index-action {
  padding-right: var(--app-page-inset-end);
  padding-left: var(--app-page-inset-start);
}

/* Normalize non-card content blocks that predate the shared row primitive.
   These are full-width surfaces too: their copy, status, and action content
   must not sit on the canvas edge. */
.competition-overview-summary,
.competition-overview-row,
.competition-name-field,
.event-logo-field,
.field-sheet-error,
.app-empty-state--inline,
.pairing-details-section__note,
.pairing-question-row,
.pairing-selection-status,
.pairing-summary,
.team-builder,
.team-section-help,
.team-selection-status,
.competition-section-help,
.player-section-help,
.event-setting-help,
.betting-section-help {
  padding-right: var(--app-page-inset-end);
  padding-left: var(--app-page-inset-start);
}

.pairing-details-section__note,
.pairing-selection-status,
.team-section-help,
.team-selection-status,
.competition-section-help,
.player-section-help,
.event-setting-help,
.betting-section-help {
  margin-right: 0;
  margin-left: 0;
}

/* Focused pairing pages have a more specific legacy card layer. Override its
   old 12–14px insets so prompts, notes, and selection status align with the
   same 16px content edge as the assignment rows. */
.pairing-focused-screen .pairing-schedule-group > .pairing-details-section__note,
.pairing-focused-screen .pairing-player-section .pairing-question-row,
.pairing-focused-screen .pairing-player-section .pairing-selection-status {
  padding-right: var(--event-form-inset-end);
  padding-left: var(--event-form-inset);
  margin-right: 0;
  margin-left: 0;
}

/* Live boards and score entry use the same continuous list surface. */
.leaderboard-main :is(.live-scoring, .live-leaderboard-carousel, .live-leaderboard-stack) {
  margin-top: 0;
  margin-right: 0;
  margin-left: 0;
}

.leaderboard-main :is(.live-score-panel, .live-board, .leaderboard-card, .score-entry-card) {
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.leaderboard-main :is(.live-board__identity, .live-board__table, .live-board__result, .score-entry-row) {
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.leaderboard-main .live-board__identity {
  padding-right: var(--app-page-inset-end);
  padding-left: var(--app-page-inset-start);
  border-top: 1px solid var(--app-row-divider);
}

.leaderboard-main .live-score-panel {
  border-top: 1px solid var(--app-row-divider);
  border-bottom: 1px solid var(--app-row-divider);
}

/* The scoring panel follows the match context as one continuous workflow.
   Let the panel own their shared boundary so a margin or adjacent border does
   not create a stranded line above the hole navigator. */
.leaderboard-main .match-play-board__context--with-scoring {
  border-bottom: 0;
}

.leaderboard-main .live-hole-bar,
.leaderboard-main .live-round-summary,
.leaderboard-main .quick-score-summary {
  border-radius: 0;
  box-shadow: none;
}

/* Focused management screens keep section titles and touch targets but lose
   the card-within-card treatment. */
.organizer-setup-screen :is(
  .setup-group,
  .event-details-group,
  .player-management-group,
  .competition-group,
  .team-group,
  .pairing-group,
  .event-settings-group,
  .betting-game-group,
  .field-access__list,
  .field-attention__list,
  .field-roster-group,
  .player-list-card,
  .team-selection-group,
  .pairing-schedule-group,
  .pairing-assignment-list,
  .pairing-player-section
) {
  border-radius: 0;
  box-shadow: none;
}

.organizer-setup-screen :is(
  .field-roster-group,
  .pairing-schedule-group,
  .pairing-player-section
) {
  border-top: 1px solid var(--app-row-divider);
  border-right: 0;
  border-bottom: 1px solid var(--app-row-divider);
  border-left: 0;
  background: transparent;
}

.organizer-setup-screen :is(.pairing-assignment-row, .team-player-option, .format-decision-card) {
  border-radius: 0;
  box-shadow: none;
}

/* Other primary lists share the same edge-to-edge boundary. */
.menu-index-list,
.invitations-list,
.organizer-scorecard-list,
.performance-history-list,
.player-scorecard-list,
.round-history__list,
.events-list {
  border-radius: 0;
  box-shadow: none;
}

.menu-index-list,
.invitations-list,
.organizer-scorecard-list,
.performance-history-list,
.player-scorecard-list {
  border-top: 1px solid var(--app-row-divider);
  border-right: 0;
  border-bottom: 1px solid var(--app-row-divider);
  border-left: 0;
  background: transparent;
}

.menu-index-row,
.invitation-card,
.organizer-scorecard-row,
.performance-history-row,
.player-scorecard-row {
  border-radius: 0;
  background: transparent;
}

.invitation-card + .invitation-card,
.organizer-scorecard-row + .organizer-scorecard-row,
.performance-history-row + .performance-history-row {
  border-top-color: var(--app-row-divider);
}

/* Preserve the phone-first content rhythm while removing only the outer
   page gutters from full-width section backgrounds. */
.organizer-home-main .organizer-events-section-heading,
.organizer-home-main .organizer-live-summary__header {
  max-width: 100%;
}

@media (max-width: 360px) {
  .organizer-events-page .event-card-summary {
    padding-top: 12px;
    padding-bottom: 12px;
  }

  .organizer-events-page .event-card-menu,
  .organizer-events-page .event-list-card--player {
    min-height: 82px;
  }
}

/*
 * Full-width list primitive.
 *
 * The page owns the screen width. Sections own their backgrounds and
 * dividers, while rows own the readable 16pt content inset. This prevents
 * the old card gutter from surviving after card borders are removed.
 */
.edge-full-width-section {
  width: 100%;
  max-width: none;
  margin-inline: 0;
}

.edge-full-width-row {
  width: 100%;
  min-width: 0;
  padding-inline: var(--app-page-inset-start) var(--app-page-inset-end);
}

/* The phone canvas is the page surface. Do not let the old 430px preview
   shell survive when the web view is wider than the mobile breakpoint. */
.web-stage {
  justify-content: flex-start;
  background: #ffffff;
}

.ios-app-shell {
  width: 100%;
  max-width: none;
  box-shadow: none;
}

.ios-tab-bar.bottom-nav {
  right: 0;
  left: 0;
  width: 100%;
  max-width: none;
  transform: none;
}

.broadcast-player-shell {
  right: 0;
  left: 0;
  width: 100%;
  max-width: none;
  bottom: calc(var(--tab-height, var(--bottom-nav-height)) + env(safe-area-inset-bottom) + var(--app-space-2));
  transform: none;
}

.broadcast-player.social-broadcast {
  box-sizing: border-box;
  width: auto;
  max-width: none;
  overflow: hidden;
  margin-right: max(var(--app-space-2), env(safe-area-inset-right));
  margin-left: max(var(--app-space-2), env(safe-area-inset-left));
  padding-right: var(--app-page-inset-end);
  padding-left: var(--app-page-inset-start);
  border: 1px solid var(--app-row-divider);
  border-radius: var(--app-radius-compact);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

.broadcast-player.social-broadcast .broadcast-player-chirp {
  background: transparent;
}

.broadcast-player.social-broadcast .broadcast-player-chirp.is-reviewing {
  background: #fff;
}

.broadcast-player-shell .broadcast-player.social-broadcast:has(.broadcast-player-chirp) {
  width: calc(100% - max(var(--app-space-2), env(safe-area-inset-left)) - max(var(--app-space-2), env(safe-area-inset-right)));
  transition: width 240ms cubic-bezier(0.22, 1, 0.36, 1);
}

.broadcast-player-shell.is-compact .broadcast-player.social-broadcast:has(.broadcast-player-chirp) {
  width: 123px;
  margin-right: auto;
  margin-left: max(var(--app-space-2), env(safe-area-inset-left));
}

/* Keep the inset audio card white above the navigation chrome. */
.broadcast-player-shell:is(.is-active, .is-playing, .has-new-alert) .broadcast-player.social-broadcast,
.broadcast-player-shell .broadcast-player.social-broadcast {
  background: #ffffff;
}

/* Keep the Event Manager masthead intact while the long Tee Sheet scrolls.
   The native shell already treats this as a sticky navigation surface; the
   contained desktop phone should preserve the same behavior. */
.organizer-setup-screen .setup-page__masthead {
  position: sticky;
  z-index: 30;
  top: 0;
}

.organizer-dashboard-masthead .organizer-dashboard-header--with-event-home {
  grid-template-columns: 44px minmax(0, 1fr) 44px;
}

.organizer-dashboard-header--with-event-home :is(
  .organizer-masthead-back,
  .organizer-masthead-event-home
) {
  color: #fff;
}

.organizer-masthead-event-home {
  justify-self: end;
}

/* Events keeps its list surfaces edge-to-edge, but controls and section
   headings need one readable page inset. Do not stack this on the old main
   padding or the search field becomes double-inset. */
.ios-screen.app-main.organizer-events-main,
.organizer-events-page .organizer-events-content {
  padding-right: 0;
  padding-left: 0;
}

.organizer-events-page .events-search-form {
  margin-right: var(--app-page-inset-end);
  margin-left: var(--app-page-inset-start);
}

/* These rules apply inside both the mobile viewport and the contained
   desktop phone canvas. */
  .web-stage {
    justify-content: flex-start;
    background: #ffffff;
  }

  .ios-app-shell {
    width: 100%;
    max-width: none;
  }

  .ios-screen.app-main {
    width: 100%;
    max-width: none;
    margin-inline: 0;
    padding-right: 0;
    padding-left: 0;
  }

  .ios-screen.app-main :is(
    .ios-navigation-bar,
    .ios-large-title-header,
    .event-header,
    .organizer-events-masthead,
    .organizer-dashboard-masthead,
    .performance-history-masthead,
    .setup-page__masthead
  ) {
    width: 100%;
    max-width: none;
    margin-right: 0;
    margin-left: 0;
  }

  .ios-screen.app-main :is(
    .organizer-focused-content,
    .organizer-focused-content.setup-page__content,
    .setup-page__content,
    .field-management-screen,
    .organizer-events-sections,
    .organizer-dashboard-grid,
    .organizer-management-sections,
    .player-roster,
    .field-access,
    .field-attention
  ) {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  .ios-screen.app-main :is(
    .ios-inset-group,
    .setup-group,
    .organizer-card-list,
    .menu-index-list,
    .invitations-list,
    .organizer-scorecard-list,
    .profile-details-group,
    .profile-settings-group,
    .event-settings-group,
    .player-management-group,
    .competition-group,
    .team-group,
    .pairing-group,
    .betting-game-group,
    .field-access__list,
    .field-attention__list,
    .player-list-card,
    .tee-sheet-list,
    .team-selection-group,
    .pairing-schedule-group,
    .pairing-assignment-list,
    .pairing-player-section,
    .competition-details-section,
    .competition-basics-group,
    .format-decision-card,
    .primary-card,
    .content-group,
    .surface-card,
    .events-list,
    .performance-history-list,
    .player-scorecard-list,
    .round-history__list
  ) {
    width: 100%;
    max-width: none;
    margin-inline: 0;
  }

  .ios-screen.app-main :is(
    .edge-full-width-row,
    .ios-list-row,
    .ios-list-form,
    .ios-switch-row,
    .setup-disclosure__summary,
    .event-setting-editor__summary,
    .competition-editor__summary,
    .player-editor__summary,
    .team-editor__summary,
    .pairing-editor__summary,
    .betting-game-editor__summary,
    .action-row,
    .player-row,
    .organizer-menu-row,
    .organizer-live-attention__row,
    .organizer-setup-alerts__row,
    .organizer-live-activity__row,
    .menu-index-row,
    .event-host-row,
    .field-access__row,
    .field-attention__row,
    .competition-index-row,
    .tee-sheet-row,
    .pairing-schedule-row,
    .pairing-assignment-row,
    .team-player-option,
    .event-setting-field-row,
    .event-details-row,
    .setup-field-row,
    .setup-switch-row,
    .tee-sheet-settings-row,
    .field-sheet-field--row,
    .invitation-card,
    .organizer-scorecard-row,
    .performance-history-row,
    .player-scorecard-row,
    .profile-detail-row,
    .profile-account-status-row
  ) {
    width: 100%;
    min-width: 0;
    min-height: var(--app-row-min-height);
    padding-top: var(--app-row-padding-block);
    padding-right: var(--app-page-inset-end);
    padding-bottom: var(--app-row-padding-block);
    padding-left: var(--app-page-inset-start);
  }

  /* One rhythm for equivalent list rows. Content can grow beyond the
     minimum when a title or subtitle wraps. */
  .ios-screen.app-main :is(
    .ios-list-row,
    .ios-list-form,
    .ios-switch-row,
    .setup-disclosure__summary,
    .event-setting-editor__summary,
    .competition-editor__summary,
    .player-editor__summary,
    .team-editor__summary,
    .pairing-editor__summary,
    .betting-game-editor__summary,
    .action-row,
    .player-row,
    .organizer-menu-row,
    .organizer-live-attention__row,
    .organizer-setup-alerts__row,
    .organizer-live-activity__row,
    .menu-index-row,
    .event-host-row,
    .field-access__row,
    .field-attention__row,
    .competition-index-row,
    .tee-sheet-row,
    .pairing-schedule-row,
    .pairing-assignment-row,
    .team-player-option,
    .event-setting-field-row,
    .setup-field-row,
    .setup-switch-row,
    .tee-sheet-settings-row,
    .field-sheet-field--row,
    .invitation-card,
    .organizer-scorecard-row,
    .performance-history-row,
    .player-scorecard-row,
    .profile-detail-row,
    .profile-account-status-row
  ) {
    column-gap: var(--app-row-icon-gap);
  }

  .ios-screen.app-main :is(
    .organizer-focused-content,
    .organizer-focused-content.setup-page__content,
    .surface-card,
    .primary-card,
    .content-group,
    .player-management-group
  ) {
    padding-right: 0;
    padding-left: 0;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    box-shadow: none;
  }

  .organizer-events-page .event-card-summary,
  .organizer-events-page .event-list-card--player {
    width: 100%;
    padding-right: max(16px, env(safe-area-inset-right));
    padding-left: max(16px, env(safe-area-inset-left));
  }

  .organizer-events-page .event-card-menu {
    width: 44px;
    min-width: 44px;
  }

  .organizer-home-main .organizer-live-attention__group,
  .organizer-home-main .organizer-setup-alerts__group {
    width: 100%;
    margin-right: 0;
    margin-left: 0;
    padding-right: 0;
    padding-left: 0;
  }

  .organizer-home-main :is(
    .organizer-live-attention__row,
    .organizer-setup-alerts__row,
    .organizer-menu-row,
    .organizer-live-activity__row
  ) {
    padding-right: max(16px, env(safe-area-inset-right));
    padding-left: max(16px, env(safe-area-inset-left));
  }

  .organizer-home-main :is(
    .organizer-events-section-heading,
    .organizer-live-activity__heading
  ) {
    padding-right: max(16px, env(safe-area-inset-right));
    padding-left: max(16px, env(safe-area-inset-left));
  }

/* Invitations is a full-width inbox, not an inset card stack. The section
   band and list own the page width; rows and controls supply their own single
   readable inset. */
.ios-screen.app-main.invitations-main .invitations-content {
  gap: var(--app-section-gap);
  padding: 0 0 var(--app-space-6);
}

.ios-screen.app-main:is(.invitations-main, .notifications-main)
  :is(.invitations-content, .notifications-content):has(> .inbox-empty-state) {
  gap: var(--app-section-gap);
  padding: 0 0 var(--app-space-6);
}

.ios-screen.app-main:is(.invitations-main, .notifications-main)
  .inbox-empty-state.app-empty-state--compact {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 34px var(--app-page-inset-end) 26px var(--app-page-inset-start);
}

.ios-screen.app-main:is(.invitations-main, .notifications-main)
  .inbox-empty-state.app-empty-state--compact .app-empty-state__actions {
  margin-top: 18px;
  margin-left: 0;
}

.ios-screen.app-main:is(.invitations-main, .notifications-main)
  .inbox-empty-state .app-empty-state__primary {
  font-size: 18px;
  line-height: 22px;
}

.ios-screen.app-main.invitations-main .invitations-section {
  gap: 0;
}

.ios-screen.app-main.invitations-main .invitations-section > .organizer-section-subheader {
  width: 100%;
  margin: 0;
}

.ios-screen.app-main.invitations-main .invitations-list > .invitation-card {
  display: block;
  min-height: 0;
  padding: 0;
}

.ios-screen.app-main.invitations-main .invitation-card__body {
  column-gap: var(--app-space-3);
  padding: var(--app-space-4) var(--app-page-inset-end) var(--app-space-3) var(--app-page-inset-start);
}

.ios-screen.app-main.invitations-main .invitation-card__role {
  font-size: 12px;
  line-height: 17px;
  letter-spacing: 0.1em;
}

.ios-screen.app-main.invitations-main .invitation-card__copy h3 {
  font-size: 18px;
  line-height: 23px;
}

.ios-screen.app-main.invitations-main .invitation-card__actions {
  gap: var(--app-space-2);
  padding: 0 var(--app-page-inset-end) var(--app-space-4) var(--app-page-inset-start);
  border-top: 0;
}

.ios-screen.app-main.invitations-main .invitation-card__actions form + form {
  border-left: 0;
}

.ios-screen.app-main.invitations-main .invitation-action {
  box-sizing: border-box;
  min-height: 44px;
  border: 1px solid var(--app-primary);
  border-radius: 8px;
  font-family: var(--font-display);
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
}

.ios-screen.app-main.invitations-main .invitation-action--secondary {
  background: #fff;
  color: var(--app-primary);
}

.ios-screen.app-main.invitations-main .invitation-action--primary:disabled {
  border-color: var(--app-row-divider);
}

.organizer-scorecards-page .organizer-scorecards-filter {
  margin-right: var(--app-page-inset-end);
  margin-left: var(--app-page-inset-start);
}

.organizer-scorecards-page .setup-page__content {
  padding-top: 0;
}

.organizer-scorecard-detail-page .organizer-scorecard-detail-summary {
  padding-right: var(--app-page-inset-end);
  padding-left: var(--app-page-inset-start);
}

  .organizer-setup-screen :is(
    .field-access__list,
    .field-roster-group,
    .field-attention__list,
    .player-list-card,
    .competition-group,
    .tee-sheet-list,
    .pairing-schedule-group,
    .pairing-player-section,
    .pairing-assignment-list
  ) {
    width: 100%;
    max-width: none;
    border-right: 0;
    border-left: 0;
    border-radius: 0;
    box-shadow: none;
  }

  /* These surfaces carry legacy borders from the card layout. Remove only
     their side edges so their rows can occupy the complete phone width. */
  .organizer-setup-screen .tee-sheet-index .tee-sheet-list,
  .organizer-setup-screen .competition-group {
    border-right: 0;
    border-left: 0;
  }

  .organizer-setup-screen .field-roster-group > .player-roster-search {
    width: 100%;
    padding-right: max(16px, env(safe-area-inset-right));
    padding-left: max(16px, env(safe-area-inset-left));
  }

  .organizer-setup-screen :is(.field-empty-state, .player-pagination) {
    width: 100%;
    padding-right: max(16px, env(safe-area-inset-right));
    padding-left: max(16px, env(safe-area-inset-left));
  }

  .organizer-setup-screen :is(.field-access__list, .field-roster-group, .field-attention__list) {
    background: transparent;
  }

  /* Shared setup-page spacing. The subheader and content are adjacent
     sections, so the content does not add a second unexplained top gap. */
  .event-setup-subheader {
    margin: 0;
    padding: var(--app-space-4) var(--app-page-inset-end) var(--app-space-4) var(--app-page-inset-start);
  }

  .event-setup-subheader + .setup-page__content {
    padding-top: 0;
  }

  .organizer-setup-screen .organizer-focused-content--broadcast.setup-page__content {
    padding-top: 0;
  }

  .organizer-setup-screen .setup-stack {
    gap: var(--app-section-gap);
  }

  .organizer-setup-screen .profile-settings-stack > .device-voice-settings:not([hidden]) {
    margin-bottom: calc(-1 * var(--app-section-gap));
  }

  .organizer-setup-screen .setup-stack.event-settings-expanded-page {
    gap: 0;
  }

  .organizer-setup-screen .event-setting-page__form {
    gap: var(--app-button-gap);
  }

  .organizer-setup-screen .event-setting-page__group {
    overflow: visible;
  }

  .organizer-setup-screen .event-setting-choice-list {
    margin: 0;
  }

  .organizer-setup-screen .event-setting-choice {
    min-height: var(--app-row-detail-min-height);
    align-items: center;
    column-gap: var(--app-row-icon-gap);
    padding: var(--app-row-padding-block) var(--app-page-inset-end) var(--app-row-padding-block) var(--app-page-inset-start);
  }

  .organizer-setup-screen .event-setting-choice__label {
    min-height: 44px;
    align-items: center;
    column-gap: var(--app-row-icon-gap);
    padding: 0;
  }

  .organizer-setup-screen .event-setting-choice--voice {
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: var(--app-row-trailing-gap);
  }

  .organizer-setup-screen .event-setting-choice:has(> input[type="checkbox"]) {
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: start;
  }

  .organizer-setup-screen .event-setting-choice:has(> input[type="checkbox"]) > input[type="checkbox"] {
    margin-top: 2px;
  }

  .organizer-setup-screen .event-setting-choice strong,
  .organizer-setup-screen .event-setting-choice small {
    line-height: 20px;
  }

  .organizer-setup-screen .event-setting-choice small {
    margin-top: var(--app-multiline-gap);
    line-height: 17px;
  }

  .organizer-setup-screen .event-setting-preview-button {
    min-width: 0;
    min-height: 44px;
    align-self: center;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
  }

  .organizer-setup-screen .event-setting-preview-button.is-playing {
    border-color: transparent;
    background: transparent;
  }

  .organizer-setup-screen .event-setting-choice--purchase {
    min-height: var(--app-row-detail-min-height);
    align-items: start;
    padding-block: var(--app-space-4);
  }

  .organizer-setup-screen .event-setting-choice__purchase-icon {
    width: 32px;
    height: 32px;
    margin-top: 2px;
  }

  .organizer-setup-screen .event-setting-choice--purchase .event-setting-preview-button {
    align-self: start;
    margin-top: 0;
  }

  .organizer-setup-screen .event-setting-credit {
    margin: 0;
  }

  .organizer-setup-screen .event-setting-credit__summary {
    min-height: var(--app-row-detail-min-height);
    padding: var(--app-row-padding-block) var(--app-page-inset-end) var(--app-row-padding-block) var(--app-page-inset-start);
    column-gap: var(--app-row-icon-gap);
  }

  .organizer-setup-screen .event-setting-credit__actions {
    padding-inline: var(--app-page-inset-start) var(--app-page-inset-end);
  }

  .organizer-setup-screen .event-setting-choice--purchase > .event-setting-credit__actions {
    padding-inline: 0;
  }

  .organizer-setup-screen .event-setting-submit {
    width: auto;
    min-height: var(--app-button-height);
    margin: 0 var(--app-page-inset-end) 0 var(--app-page-inset-start);
    padding-inline: var(--app-space-4);
  }

  .organizer-setup-screen .event-settings-expanded__submit {
    margin-top: var(--app-section-gap);
  }

  .organizer-setup-screen .event-settings-expanded-page > form:has(.event-setting-test-button) {
    margin-top: var(--app-section-gap);
  }

  .organizer-setup-screen .event-setting-page__form.event-settings-expanded-form {
    gap: 0;
  }

  .organizer-setup-screen .event-settings-expanded-form .event-setting-submit {
    margin-top: var(--app-section-gap);
  }

  .organizer-setup-screen .event-details-form .event-details-submit {
    width: calc(100% - var(--app-page-inset-start) - var(--app-page-inset-end));
    margin-right: var(--app-page-inset-end);
    margin-left: var(--app-page-inset-start);
  }

  .organizer-setup-screen .event-setting-test-button {
    min-height: var(--app-row-min-height);
    margin: 0;
    padding-inline: var(--app-page-inset-start) var(--app-page-inset-end);
    border-top: 1px solid var(--app-row-divider);
    border-bottom: 1px solid var(--app-row-divider);
    border-radius: 0;
    justify-content: flex-start;
  }

  .organizer-setup-screen .event-setting-footnote {
    margin: 0;
    padding: var(--app-space-4) var(--app-page-inset-end) var(--app-space-4) var(--app-page-inset-start);
  }
/* Final normalization for legacy focused-editor selectors that were
   declared later in ios.css. Their semantic rows stay intact; only the
   obsolete card surface is removed. */
  .pairing-focused-screen .event-manager-form :is(
    .pairing-player-section,
    .pairing-schedule-group,
    .pairing-assignment-list,
    .pairing-summary
  ) {
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .pairing-focused-screen .event-manager-form .pairing-assignment-list {
    gap: 0;
  }

  .pairing-focused-screen .event-manager-form .pairing-assignment-row {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .pairing-focused-screen .event-manager-form .pairing-assignment-row + .pairing-assignment-row {
    border-top: 1px solid var(--app-row-divider);
  }

  /* A round summary is status content, not a second form card. Keep its
     icon badge, but let the summary share the section's full-width rhythm. */
  .round-details-page .event-manager-form .round-summary-card {
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: var(--app-row-padding-block) var(--event-form-inset-end) var(--app-row-padding-block) var(--event-form-inset);
    border: 0;
    border-top: 1px solid var(--event-form-divider);
    border-bottom: 1px solid var(--event-form-divider);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
/* Keep the live-event status prominent without letting the summary dominate
   the organizer home screen. These are shared dashboard primitives, so the
   compact rhythm applies consistently across the live event view. */
.organizer-home-main .organizer-live-summary__header h2 {
  font-size: 26px;
  line-height: 30px;
}

.organizer-home-main .organizer-live-summary__header p:last-child {
  margin-top: 2px;
  font-size: 13px;
  line-height: 18px;
}

.organizer-home-main .organizer-live-action {
  min-height: 44px;
  padding-top: 6px;
  padding-bottom: 6px;
  font-size: 18px;
  line-height: 24px;
}

/* The live-summary action pair is the visual standard for Event Manager
   primary and secondary actions. Keep the existing semantic hooks in the
   views while giving links, buttons, and submit inputs one hierarchy. */
.organizer-setup-screen :is(
  .ios-primary-button,
  .ios-secondary-button,
  .ios-button--primary,
  .event-setting-action-button,
  .field-secondary-button,
  .event-setting-test-button
),
.organizer-setup-screen .event-setting-actions .event-setting-secondary-button {
  box-sizing: border-box;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 6px 12px;
  border: 1px solid var(--app-primary);
  border-radius: 8px;
  font-family: var(--font-display);
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
}

.organizer-setup-screen :is(
  .ios-primary-button,
  .ios-button--primary,
  .event-setting-action-button--primary
) {
  background: var(--app-primary);
  color: #fff;
  font-size: 18px;
  line-height: 22px;
}

.organizer-setup-screen :is(
  .ios-secondary-button,
  .field-secondary-button,
  .event-setting-test-button,
  .event-setting-actions .event-setting-secondary-button
) {
  background: #fff;
  color: var(--app-primary);
}

.organizer-setup-screen .event-setting-test-button {
  border: 0;
  font-size: 18px;
  line-height: 24px;
}

.organizer-setup-screen .event-setting-page:not(.event-settings-expanded-page):has(> form.button_to > .event-setting-test-button) {
  gap: var(--app-space-2);
}

.organizer-setup-screen #scoring-link-delivery .event-setting-actions--delivery .event-setting-secondary-button {
  border-color: var(--app-primary);
  background: #fff;
  color: var(--app-primary);
}

/* Private scoring-link delivery follows the same flat focused-editor model as
   Edit Tee Time: visible section bands, page-owned rows, and rounded surfaces
   only for the actions that submit the form. */
.organizer-setup-screen .event-sharing-page .organizer-sharing__delivery-panel {
  display: grid;
  width: 100%;
  min-width: 0;
  padding-bottom: calc(var(--app-space-6) + var(--app-fixed-chrome-clearance, 0px));
}

.organizer-setup-screen #scoring-link-delivery :is(
  .scoring-link-delivery-section,
  .scheduled-delivery-list
) {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.organizer-setup-screen #scoring-link-delivery > .scheduled-delivery-list + .event-setting-delivery-form {
  margin-top: var(--app-section-gap);
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-recipient-list {
  width: 100%;
  border-bottom: 1px solid var(--app-row-divider);
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-recipient-row {
  box-sizing: border-box;
  display: grid;
  width: 100%;
  min-height: var(--app-row-min-height);
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--app-row-trailing-gap);
  padding: var(--app-row-padding-block) var(--app-page-inset-end) var(--app-row-padding-block) var(--app-page-inset-start);
  color: var(--app-label);
  text-decoration: none;
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-recipient-row + .scoring-link-recipient-row {
  border-top: 1px solid var(--app-row-divider);
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-recipient-copy,
.organizer-setup-screen #scoring-link-delivery .scoring-link-recipient-copy :is(strong, small) {
  display: block;
  min-width: 0;
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-recipient-copy strong {
  color: var(--app-label);
  font-family: var(--font-ui);
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-recipient-copy small {
  margin-top: 2px;
  color: var(--app-secondary-label);
  font-size: 12px;
  line-height: 17px;
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-recipient-value {
  color: var(--app-secondary-label);
  font-family: var(--font-ui);
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
  text-align: right;
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-recipient-action {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  gap: var(--app-space-2);
  color: var(--app-primary);
  font-family: var(--font-ui);
  font-size: 14px;
  line-height: 20px;
  font-weight: 600;
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-recipient-action i {
  color: var(--app-tertiary-label);
  font-size: 12px;
}

.organizer-setup-screen #scoring-link-delivery .event-setting-actions--delivery {
  box-sizing: border-box;
  width: calc(100% - var(--app-page-inset-start) - var(--app-page-inset-end));
  margin: var(--app-space-4) var(--app-page-inset-end) 0 var(--app-page-inset-start);
  padding: 0;
  gap: 0;
}

.organizer-setup-screen #scoring-link-delivery .event-setting-actions--delivery .event-setting-action-button {
  min-height: var(--app-button-height);
  border-radius: 12px;
}

.organizer-setup-screen #scoring-link-delivery :is(
  .event-setting-actions--send-now,
  .event-setting-actions--schedule
) {
  margin-bottom: var(--app-space-6);
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-schedule-row {
  box-sizing: border-box;
  display: grid;
  width: 100%;
  min-height: var(--app-row-min-height);
  grid-template-columns: minmax(0, 1fr) minmax(184px, 58%);
  align-items: center;
  gap: var(--app-space-3);
  padding: var(--app-row-padding-block) var(--app-page-inset-end) var(--app-row-padding-block) var(--app-page-inset-start);
  border-bottom: 1px solid var(--app-row-divider);
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-schedule-row > span,
.organizer-setup-screen #scoring-link-delivery .scoring-link-schedule-row :is(strong, small) {
  display: block;
  min-width: 0;
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-schedule-row strong {
  color: var(--app-label);
  font-family: var(--font-ui);
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-schedule-row small {
  margin-top: 2px;
  color: var(--app-secondary-label);
  font-size: 11px;
  line-height: 16px;
}

.organizer-setup-screen #scoring-link-delivery .scoring-link-schedule-row .event-setting-delivery-input {
  --event-date-value-justify: flex-end;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--app-label);
  font: 500 15px/20px var(--font-ui);
  text-align: right;
  color-scheme: light;
}

.organizer-setup-screen #scoring-link-delivery .scheduled-delivery-list__help {
  margin: 0;
  padding: var(--app-space-3) var(--app-page-inset-end) var(--app-space-2) var(--app-page-inset-start);
  color: var(--app-secondary-label);
  font-size: 12px;
  line-height: 17px;
}

.organizer-setup-screen #scoring-link-delivery .scheduled-delivery-row {
  box-sizing: border-box;
  display: grid;
  width: 100%;
  min-height: var(--app-row-min-height);
  grid-template-columns: minmax(0, 1fr) 44px;
  align-items: center;
  gap: var(--app-space-1);
  margin: 0;
  padding: var(--app-space-2) var(--app-space-2) var(--app-space-2) var(--app-page-inset-start);
  border-top: 1px solid var(--app-row-divider);
  border-bottom: 0;
}

.organizer-setup-screen #scoring-link-delivery .scheduled-delivery-row:last-child {
  border-bottom: 1px solid var(--app-row-divider);
}

.organizer-setup-screen #scoring-link-delivery .scheduled-delivery-row__form {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: var(--app-space-2);
}

.organizer-setup-screen #scoring-link-delivery .scheduled-delivery-row__error {
  grid-column: 1 / -1;
  margin: 0;
}

.organizer-setup-screen #scoring-link-delivery .scheduled-delivery-row__input {
  --event-date-value-justify: flex-start;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--app-label);
  font: 500 15px/20px var(--font-ui);
  color-scheme: light;
}

.organizer-setup-screen #scoring-link-delivery .scheduled-delivery-row__update,
.organizer-setup-screen #scoring-link-delivery .scheduled-delivery-row__cancel {
  display: grid;
  min-width: 44px;
  min-height: 44px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--app-primary);
  font: 600 14px/20px var(--font-ui);
}

.organizer-setup-screen #scoring-link-delivery .scheduled-delivery-row > form.button_to {
  margin: 0;
}

.organizer-setup-screen #scoring-link-delivery .scheduled-delivery-row__cancel {
  color: var(--app-secondary-label);
}

.organizer-setup-screen .event-manager-form > :is(
  .ios-primary-button,
  .event-setting-action-button--primary
) + :is(
  .ios-secondary-button,
  .field-secondary-button,
  .event-setting-actions .event-setting-secondary-button
) {
  margin-top: 0;
}

.organizer-setup-screen .event-setting-page > form.button_to > .event-setting-test-button {
  width: calc(100% - var(--app-page-inset-start) - var(--app-page-inset-end));
  margin-right: var(--app-page-inset-end);
  margin-left: var(--app-page-inset-start);
}

.organizer-setup-screen .event-manager-dismiss-action {
  display: inline-flex;
  width: calc(100% - var(--event-form-inset) - var(--event-form-inset-end));
  min-height: 44px;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  margin: 0 var(--event-form-inset-end) 0 var(--event-form-inset);
  padding: 6px 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--app-secondary-label);
  font-family: var(--font-display);
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
}

.organizer-setup-screen .event-manager-cancel-action {
  display: inline-flex;
  width: calc(100% - var(--event-form-inset) - var(--event-form-inset-end));
  min-height: var(--app-button-height);
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  margin: var(--app-space-1) var(--event-form-inset-end) 0 var(--event-form-inset);
  padding: 6px 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--app-secondary-label);
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 22px;
  font-weight: 600;
  text-align: center;
  text-decoration: none;
}

.organizer-setup-screen :is(input, button)[type="submit"] + .event-manager-cancel-action {
  margin-top: calc(-1 * var(--app-space-2));
}

.event-manager-form :is(.round-form__actions, .team-form-actions) > .event-manager-cancel-action {
  margin-top: 0;
}

/* Edit Player keeps the form primary; roster utilities live with each player
   on the Players index. */
.ios-screen.app-main .organizer-setup-screen .player-edit-page {
  display: grid;
  gap: 0;
  padding-bottom: var(--app-space-6);
}

.ios-screen.app-main .organizer-setup-screen .player-edit-page .player-management-form {
  display: grid;
  gap: 0;
}

.ios-screen.app-main .organizer-setup-screen .player-edit-primary-actions {
  display: grid;
  gap: var(--app-space-1);
  padding: var(--app-space-4) var(--event-form-inset-end) 0 var(--event-form-inset);
}

.ios-screen.app-main .organizer-setup-screen .player-edit-primary-actions > :is(.ios-primary-button, .event-manager-dismiss-action, .event-manager-cancel-action) {
  width: 100%;
  margin: 0;
}

.ios-screen.app-main .organizer-setup-screen .field-roster-group .player-row {
  grid-template-columns: 32px minmax(0, 1fr) auto;
  gap: var(--app-space-2);
  padding: 0 var(--app-space-2) 0 var(--app-page-inset-start);
}

.ios-screen.app-main .organizer-setup-screen .team-group .team-row {
  grid-template-columns: 32px minmax(0, 1fr) auto;
  gap: var(--app-space-2);
  padding: 0 var(--app-space-2) 0 var(--app-page-inset-start);
}

.ios-screen.app-main .organizer-setup-screen .player-row__edit-link {
  display: grid;
  min-width: 0;
  align-self: stretch;
  grid-column: 1 / 3;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: var(--app-space-2);
  border-radius: 8px;
  color: inherit;
  text-decoration: none;
}

.organizer-setup-screen .team-edit-row + .team-edit-row {
  border-top: 1px solid var(--app-row-divider);
}

.ios-screen.app-main .organizer-setup-screen .player-row__actions {
  display: flex;
  align-items: center;
  gap: 0;
}

.ios-screen.app-main .organizer-setup-screen .player-row__action-form {
  display: flex;
  margin: 0;
}

.ios-screen.app-main .organizer-setup-screen .player-row__action {
  appearance: none;
  display: grid;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--app-secondary-label);
  font-size: 15px;
  line-height: 1;
  text-decoration: none;
}

.ios-screen.app-main .organizer-setup-screen .player-row__action--delete {
  color: var(--app-danger);
  opacity: 0.72;
}

.ios-screen.app-main.organizer-home-main .organizer-live-attention__row {
  min-height: 64px;
  padding-top: 10px;
  padding-bottom: 10px;
}

.organizer-setup-screen .field-section-heading__count {
  display: inline-grid;
  min-width: 18px;
  height: 18px;
  place-items: center;
  padding: 0 5px;
  border-radius: 999px;
  background: #f3e8cf;
  color: #76520a;
  font-size: 10px;
  line-height: 18px;
  font-weight: 800;
  letter-spacing: 0;
}

/* Action-bearing subheaders keep their controls inside the shared band. */
.organizer-setup-screen :is(
  .tee-sheet-section__header,
  .team-section__header,
  .competition-section__header,
  .competition-manager-section__heading:has(.competition-manager-section__add)
).organizer-section-subheader {
  height: 46px;
  min-height: 46px;
  min-width: 0;
  justify-content: space-between;
  gap: 12px;
  padding-top: 0;
  padding-bottom: 0;
}

.organizer-setup-screen :is(
  .tee-sheet-section__header > h2,
  .team-section__header > h2,
  .competition-section__header > h2
) {
  width: auto;
  flex: 1 1 auto;
  margin: 0;
}

.ios-screen.app-main .organizer-setup-screen :is(.tee-sheet-section__header, .team-section__header) > .event-manager-add-row {
  width: auto;
  min-height: 44px;
  flex: 0 0 auto;
  margin: 0;
  padding: 8px 0 8px 8px;
}

.ios-screen.app-main .organizer-setup-screen .competition-section__header > .event-manager-add-row {
  width: auto;
  min-height: 44px;
  flex: 0 0 auto;
  margin: 0;
  padding: 8px 0 8px 8px;
}

.organizer-setup-screen .competition-section__header > form.button_to {
  display: flex;
  margin: 0;
}

.organizer-setup-screen :is(
  .competition-section__header,
  .competition-manager-section__heading,
  .tee-sheet-section__header
) {
  padding-inline: var(--app-page-inset-start);
}

.organizer-setup-screen .tee-sheet-section__actions {
  display: flex;
  align-items: center;
  gap: var(--app-space-2);
  margin-left: auto;
}

.organizer-setup-screen .tee-sheet-section__actions > form {
  display: flex;
  margin: 0;
}

.organizer-setup-screen .tee-sheet-index {
  gap: 0;
}

.organizer-setup-screen .organizer-focused-content--pairings.setup-page__content {
  padding-top: 0;
}

.ios-screen.app-main .organizer-setup-screen .tee-sheet-section__actions .tee-sheet-button {
  box-sizing: border-box;
  display: inline-flex;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--app-primary);
}

.ios-screen.app-main .organizer-setup-screen .tee-sheet-section__actions .tee-sheet-button i,
.ios-screen.app-main .organizer-setup-screen .tee-sheet-section__header .tee-sheet-section__action .event-setting-editor__icon {
  display: grid;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  place-items: center;
  border-radius: 50%;
  background: var(--app-primary);
  color: #fff;
  font-size: 10px;
  line-height: 1;
}

.ios-screen.app-main .organizer-setup-screen :is(
  .tee-sheet-section__actions .tee-sheet-button,
  .team-section__actions .team-auto-assign-action
) .fa-shuffle::before {
  display: block;
  transform: translate(0.5px, 0.5px);
}

.ios-screen.app-main .organizer-setup-screen .tee-sheet-section__actions .tee-sheet-button--disabled,
.ios-screen.app-main .organizer-setup-screen .tee-sheet-section__header .event-manager-add-row[disabled] {
  cursor: not-allowed;
  opacity: 0.45;
}

.ios-screen.app-main .organizer-setup-screen .tee-sheet-add-action[disabled] {
  cursor: not-allowed;
  opacity: 0.45;
}

.ios-screen.app-main .organizer-setup-screen .tee-sheet-section__actions > .event-manager-add-row {
  box-sizing: border-box;
  display: inline-flex;
  width: 44px;
  min-width: 44px;
  height: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

.ios-screen.app-main .organizer-setup-screen .tee-sheet-section__header .event-manager-add-row .event-setting-editor__copy,
.ios-screen.app-main .organizer-setup-screen .tee-sheet-section__header .event-manager-add-row .event-setting-editor__chevron {
  display: none;
}

.organizer-setup-screen .tee-sheet-section .tee-sheet-lock-note {
  box-sizing: border-box;
  display: flex;
  min-height: 32px;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 6px var(--app-page-inset-start);
  border-bottom: 1px solid var(--app-row-divider);
}

.organizer-setup-screen .tee-sheet-section .tee-sheet-lock-note i {
  flex: 0 0 16px;
  margin: 0;
  text-align: center;
}

.organizer-setup-screen .tee-sheet-attention + .tee-sheet-section > .tee-sheet-section__header {
  border-top: 0;
}

.organizer-setup-screen .tee-sheet-utilities > .tee-sheet-index-action-form:last-child {
  border-bottom: 1px solid var(--app-row-divider);
}

.organizer-setup-screen .tee-sheet-index .tee-sheet-row {
  box-sizing: border-box;
  height: 72px;
  min-height: 72px;
}

.organizer-setup-screen .competition-section__header + .competition-group > .competition-index-row:first-of-type {
  border-top: 0;
}

/* A section boundary should have one owner.  The gray header already draws
   the separator above its collection, so the collection must not add a
   second top rule.  Likewise, a list's bottom rule is the separator into the
   next section header. */
.organizer-setup-screen .organizer-section-subheader + :is(
  .event-settings-group,
  .field-access__list,
  .field-attention__list,
  .field-roster-group,
  .player-list-card,
  .organizer-scorecard-list,
  .organizer-scorecard-detail-list,
  .event-details-group,
  .event-setting-choice,
  .competition-group,
  .tee-sheet-list,
  .setup-group,
  .competition-manager-group,
  .pairing-schedule-group,
  .pairing-assignment-list,
  .round-summary-card,
  .team-group,
  .betting-game-group
) {
  border-top: 0;
}

.organizer-setup-screen :is(
  .event-settings-group,
  .field-access__list,
  .field-attention__list,
  .field-roster-group,
  .player-list-card,
  .event-details-group,
  .competition-group,
  .tee-sheet-list,
  .setup-group,
  .competition-manager-group,
  .pairing-schedule-group,
  .pairing-assignment-list,
  .team-group,
  .betting-game-group
) + .organizer-section-subheader {
  border-top: 0;
}

/* Field and Event Details wrap each list and heading in sibling sections, so
   normalize that outer transition as well. */
.organizer-setup-screen .field-management-screen > section + section .organizer-section-subheader,
.organizer-setup-screen .event-details-section + .event-details-section > .organizer-section-subheader {
  border-top: 0;
}

/* The profile form begins directly below the masthead, which already owns
   the boundary above the first settings band. */
.organizer-setup-screen .profile-settings-form >
  .profile-settings-section:first-of-type > .organizer-section-subheader {
  border-top: 0;
}

/* The Settings band follows the tee-time list directly; the index's general
   workflow spacing should not create a blank strip between these peer rows. */
.organizer-setup-screen .tee-sheet-index > .tee-sheet-section + .tee-sheet-section {
  margin-top: 0;
}

.organizer-setup-screen :is(
  .field-access,
  .field-attention,
  .player-roster
) {
  gap: 0;
}

.organizer-setup-screen:has(.field-management-screen) .setup-page__content {
  padding-top: 0;
}

.organizer-setup-screen .field-management-screen {
  gap: 0;
}

/* Button-to-form rows do not match the adjacent-link selector, so keep the
   destructive action separated from the preceding More item. */
.organizer-home-main .organizer-menu-row-form {
  margin: 0;
  border-top: 1px solid var(--app-row-divider);
}

.organizer-home-main .organizer-section-subheader + :is(
  .organizer-setup-alerts__group,
  .organizer-live-attention__group,
  .organizer-planner-menu,
  .organizer-live-activity__group
) {
  border-top: 0;
}

/* Adjacent Event Manager sections already meet at the previous list's
   bottom rule. Let that divider own the boundary instead of drawing a second
   rule on the following section heading. */
.organizer-home-main .organizer-management-section + .organizer-management-section > .organizer-section-subheader {
  border-top: 0;
}

.organizer-home-main .organizer-live-attention__group {
  border-bottom: 0;
}

/* Keep the Events index section bands in the same gray, uppercase rhythm as
   Event Manager subheaders. */
.organizer-events-page .organizer-events-sections {
  gap: 0;
}

.organizer-events-page .organizer-events-section-heading {
  height: 46px;
  min-height: 46px;
  padding: 0 var(--app-page-inset-end) 0 var(--app-page-inset-start);
  border-radius: 0;
}

.organizer-events-page .organizer-events-section-heading + .events-list {
  border-top: 0;
}

.organizer-events-page .events-section + .events-section .organizer-events-section-heading {
  border-top: 0;
}

/* Accessibility-only headings stay hidden beside the visible shared headers. */
.organizer-setup-screen .event-manager-form-section > :is(
  h2,
  legend
).sr-only {
  width: 1px;
  max-width: none;
  margin: -1px;
  padding: 0;
  border: 0;
  background: transparent;
}

/* Event Manager collections use the same full-width divider treatment. */
.organizer-setup-screen :is(
  .competition-manager-section,
  .competition-alerts-section
) {
  gap: 0;
}

/* A manager header owns the boundary into its list.  Keep the empty Wagers
   collection from drawing a second rule (or reserving a blank bordered
   surface) when no wagers have been configured yet. */
.organizer-setup-screen .competition-manager-section__heading + .event-settings-group {
  border-top: 0;
}

.organizer-setup-screen .competition-manager-section > .event-settings-group:not(:has(*)) {
  display: none;
  border: 0;
}

.organizer-setup-screen .competition-overview {
  gap: 0;
}

.organizer-setup-screen .competition-manager-section__add {
  display: inline-flex;
  width: 44px;
  height: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 0;
  color: var(--app-primary);
  font-size: 16px;
  line-height: 1;
  text-decoration: none;
}

.organizer-setup-screen .competition-manager-section__heading > form.button_to {
  display: flex;
  margin: 0;
}

.organizer-setup-screen button.competition-manager-section__add {
  appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  font: inherit;
  cursor: pointer;
}

.organizer-setup-screen .competition-manager-section__add i {
  color: currentColor;
  font-size: 20px;
  font-weight: 600;
}

.organizer-setup-screen :is(
  .competition-overview-settings-heading + .competition-manager-group,
  .competition-manager-section__heading + .event-settings-group
) {
  border-top: 0;
}

/* Adjacent full-width groups already share the previous group's bottom rule;
   avoid drawing a second line at the Rounds/Wagers section boundary. */
.organizer-setup-screen .competition-overview :is(
  .competition-manager-group + .competition-manager-section,
  .competition-manager-section + .competition-manager-section
) > .competition-manager-section__heading {
  border-top: 0;
}

/* The page header hands directly into the first Event Manager section. */
.organizer-setup-screen :is(
  .setup-page__content,
  .competition-details-page__content,
  .organizer-focused-content
):has(.event-manager-form, .competition-manager-section, .field-management-screen) {
  padding-top: 0;
}

.organizer-setup-screen .event-manager-form > .event-manager-form-section + .event-manager-form-section,
.organizer-setup-screen .event-manager-form-section > .event-manager-form-section + .event-manager-form-section {
  margin-top: 0;
}

/* Add rows sit beneath their collection as quiet trailing actions. */
.ios-screen.app-main .organizer-setup-screen .event-manager-add-row {
  box-sizing: border-box;
  display: flex;
  width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: flex-end;
  gap: var(--app-space-2);
  padding: 8px var(--app-page-inset-end) 8px var(--app-page-inset-start);
  border: 0;
  background: transparent;
}

.ios-screen.app-main .organizer-setup-screen .event-manager-add-row :is(.event-setting-editor__icon, .competition-editor__position--add) {
  display: grid;
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  place-items: center;
  background: transparent;
  color: var(--app-secondary-label);
  border-radius: 0;
  font-size: 13px;
  font-weight: 500;
}

.ios-screen.app-main .organizer-setup-screen .event-manager-add-row :is(.event-setting-editor__copy, .competition-editor__copy) {
  flex: 0 0 auto;
}

.ios-screen.app-main .organizer-setup-screen .event-manager-add-row :is(.event-setting-editor__copy, .competition-editor__copy) strong {
  color: var(--app-primary);
}

.ios-screen.app-main .organizer-setup-screen .event-manager-add-row :is(.event-setting-editor__chevron, .competition-editor__chevron) {
  display: none;
}

.organizer-setup-screen .team-index {
  display: grid;
  gap: 0;
}

.organizer-setup-screen .organizer-focused-content--teams.setup-page__content,
.organizer-setup-screen .teams-setup {
  padding-top: 0;
  gap: 0;
}

.organizer-setup-screen .team-section__header + .team-index > .team-group {
  border-top: 0;
}

.organizer-setup-screen .team-section__actions {
  display: flex;
  align-items: center;
  gap: var(--app-space-2);
  margin-left: auto;
}

.organizer-setup-screen .team-section__actions > .teams-auto-assign-form {
  display: flex;
  margin: 0;
}

.organizer-setup-screen .team-section__actions > .team-section__action,
.organizer-setup-screen .team-section__actions > .teams-auto-assign-form > .team-section__action {
  box-sizing: border-box;
  display: inline-flex;
  width: 44px;
  height: 44px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--app-primary);
}

.organizer-setup-screen .team-section__actions .event-setting-editor__icon,
.organizer-setup-screen .team-section__actions .team-auto-assign-action i {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border-radius: 50%;
  background: var(--app-primary);
  color: #fff;
  font-size: 10px;
  line-height: 1;
}

/* The shared add-row rules intentionally make collection actions roomy. In
   this compact header, both actions are icon-only controls instead. */
.ios-screen.app-main .organizer-setup-screen .team-section__actions > .team-section__action,
.ios-screen.app-main .organizer-setup-screen .team-section__actions > .teams-auto-assign-form > .team-section__action {
  width: 44px;
  height: 44px;
  min-width: 44px;
  min-height: 44px;
  flex: 0 0 44px;
  padding: 0;
}

.ios-screen.app-main .organizer-setup-screen .team-section__actions .event-setting-editor__icon,
.ios-screen.app-main .organizer-setup-screen .team-section__actions .team-auto-assign-action i {
  width: 20px;
  height: 20px;
  flex: 0 0 20px;
  background: var(--app-primary);
  color: #fff;
  border-radius: 50%;
}

.organizer-setup-screen .team-auto-assign-options {
  overflow: hidden;
  border: 1px solid var(--border-strong);
  border-radius: 12px;
  background: #fff;
}

.organizer-setup-screen .team-auto-assign-options > form {
  margin: 0;
}

.organizer-setup-screen .team-auto-assign-options > form + form {
  border-top: 1px solid var(--app-separator);
}

.organizer-setup-screen .team-auto-assign-choice {
  display: flex;
  width: 100%;
  min-height: 72px;
  box-sizing: border-box;
  align-items: center;
  padding: 12px 14px;
  border: 0;
  background: #fff;
  color: var(--app-label);
  text-align: left;
}

.organizer-setup-screen .team-auto-assign-choice span,
.organizer-setup-screen .team-auto-assign-choice strong,
.organizer-setup-screen .team-auto-assign-choice small {
  display: block;
  min-width: 0;
}

.organizer-setup-screen .team-auto-assign-choice strong {
  color: var(--app-primary);
  font-family: var(--font-display);
  font-size: 17px;
  line-height: 21px;
}

.organizer-setup-screen .team-auto-assign-choice small {
  margin-top: 2px;
  color: var(--app-secondary-label);
  font-size: 12px;
  line-height: 17px;
}

.organizer-setup-screen .team-auto-assign-choice:disabled {
  background: var(--app-secondary-control-bg);
  color: var(--app-tertiary-label);
  cursor: not-allowed;
}

.organizer-setup-screen .team-auto-assign-choice:disabled strong,
.organizer-setup-screen .team-auto-assign-choice:disabled small {
  color: var(--app-tertiary-label);
}

/* Keep the choice sheet as one simple surface: a title row followed by two
   full-width actions, without a second card nested inside the dialog. */
.organizer-setup-screen .team-auto-assign-sheet .field-sheet__surface {
  width: calc(100% - 32px);
  max-width: 360px;
  padding: 0;
  border-radius: 16px;
  background: #fff;
}

.organizer-setup-screen .team-auto-assign-sheet .field-sheet__header {
  min-height: 48px;
  padding: 0 8px 8px 16px;
}

.organizer-setup-screen .team-auto-assign-sheet .field-sheet__header h2 {
  font-size: 20px;
  line-height: 24px;
}

.organizer-setup-screen .team-auto-assign-sheet .field-sheet__close {
  background: transparent;
  font-size: 20px;
}

.organizer-setup-screen .team-auto-assign-sheet .field-sheet__body {
  gap: 0;
}

.organizer-setup-screen .team-auto-assign-sheet .team-auto-assign-options {
  overflow: visible;
  border: 0;
  border-top: 1px solid var(--app-separator);
  border-radius: 0;
  background: transparent;
}

.organizer-setup-screen .team-auto-assign-sheet .team-auto-assign-choice {
  min-height: 64px;
  padding: 10px 16px;
  background: transparent;
}

.organizer-setup-screen .team-auto-assign-sheet .team-auto-assign-choice strong {
  font-family: var(--font-ui);
  font-size: 16px;
  line-height: 20px;
  font-weight: 650;
}

.organizer-setup-screen .team-auto-assign-sheet .team-auto-assign-choice small {
  margin-top: 1px;
  font-size: 12px;
  line-height: 16px;
}

.organizer-setup-screen .team-auto-assign-sheet .team-auto-assign-choice:disabled {
  background: transparent;
}

.organizer-setup-screen.competition-wagers-page .event-settings-page {
  gap: 0;
}

.organizer-setup-screen .tee-sheet-section > .event-manager-add-row {
  margin-top: -6px;
}

/* The competitions index already has its title in the masthead. Keep the
   creation action quiet and discoverable at the trailing edge of the list. */
.organizer-setup-screen .competition-group {
  border-top: 0;
}

.organizer-setup-screen .organizer-focused-content--competitions.setup-page__content,
.organizer-setup-screen .competition-setup {
  padding-top: 0;
  gap: 0;
}

.ios-screen.app-main .organizer-setup-screen .competition-index-row,
.ios-screen.app-main .organizer-setup-screen .competition-index-row__link {
  box-sizing: border-box;
  min-height: var(--app-row-min-height);
}

.ios-screen.app-main .organizer-setup-screen .competition-index-row {
  padding-top: 0;
  padding-bottom: 0;
}

.ios-screen.app-main .organizer-setup-screen .competition-index-row__link {
  padding-top: 8px;
  padding-bottom: 8px;
}

.ios-screen.app-main .organizer-setup-screen .competition-index-row .competition-editor__position {
  font-size: 18px;
  line-height: 24px;
}

.ios-screen.app-main .organizer-setup-screen .competition-index-row > .competition-editor__drag-handle {
  min-height: var(--app-row-min-height);
}

.organizer-setup-screen .competition-index-add {
  display: flex;
  min-height: 44px;
  align-items: center;
  justify-content: flex-end;
  gap: var(--app-space-2);
  padding: 8px max(16px, env(safe-area-inset-right)) 8px max(16px, env(safe-area-inset-left));
  border: 0;
  background: transparent;
}

.organizer-setup-screen .competition-index-add .competition-editor__position--add {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  background: transparent;
  color: var(--app-secondary-label);
  border-radius: 0;
  font-size: 13px;
  font-weight: 500;
}

/* Choice-based forms use the same full-width iOS list treatment as the rest
   of Event Manager at every viewport. This is intentionally shared so
   Competition Details, team setup, pairings, and settings sheets cannot fall
   back to nested cards when their individual form styles change. */
  .organizer-setup-screen .competition-details-form {
    gap: 0;
  }

  .organizer-setup-screen .event-details-form {
    gap: 0;
  }

  .organizer-setup-screen .event-details-form .event-details-submit {
    margin-top: var(--app-button-gap);
  }

  .organizer-setup-screen .competition-details-form .format-builder__question + .format-builder__question {
    margin-top: 0;
  }

  .organizer-setup-screen .event-manager-form :is(
    .competition-basics-group,
    .format-choice-list,
    .format-decision-list,
    .event-setting-choice-list,
    .team-selection-options,
    .pairing-assignment-list
  ) {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    overflow: visible;
    border: 0;
    border-top: 1px solid var(--event-form-divider);
    border-bottom: 1px solid var(--event-form-divider);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .organizer-setup-screen .competition-details-form .format-decision-card {
    width: 100%;
    min-height: var(--app-row-detail-min-height);
    box-sizing: border-box;
    margin: 0;
    padding: var(--app-row-padding-block) var(--event-form-inset-end) var(--app-row-padding-block) var(--event-form-inset);
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .organizer-setup-screen .competition-details-form .format-decision-card + .format-decision-card {
    border-top: 1px solid var(--event-form-divider);
  }

  .organizer-setup-screen :is(.competition-details-form, .round-form) .format-builder__handicap {
    margin-top: 0;
    /* The scoring list already owns the boundary above this control. */
    border-top: 0;
  }

  /* Focused editors use the same page-owned surface as the other Event
     Manager forms. Their older selectors added a second card and a top gap
     after the shared form layer had already removed both. */
  .organizer-setup-screen :is(.team-focused-content, .pairing-focused-content) {
    padding-top: 0;
    padding-right: 0;
    padding-left: 0;
  }

  .organizer-setup-screen :is(
    .team-focused-content .team-management-form,
    .pairing-focused-screen .pairing-details-form,
    .round-details-page .round-form,
    .wager-details-page .betting-game-form
  ) {
    gap: 0;
  }

  .organizer-setup-screen.wager-details-page .betting-game-form {
    margin-top: 0;
  }

  .organizer-setup-screen.wager-details-page .betting-form-fields >
  .betting-choice-group + .betting-choice-group {
    border-top: 0;
  }

  .organizer-setup-screen.wager-details-page .betting-form-fields >
  [data-betting-game-form-target] > .betting-field-row:first-child {
    border-top: 0;
  }

  .organizer-setup-screen.wager-details-page .betting-money-control input {
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .organizer-setup-screen .team-focused-content .team-form-section,
  .organizer-setup-screen.pairing-focused-screen .pairing-player-section {
    width: 100%;
    max-width: none;
    margin: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  /* Player selection is content, not a viewport-sized card. Let the list
     grow naturally so shorter and longer rosters share the same rhythm. */
  .organizer-setup-screen .event-manager-form :is(
    .team-selection-options,
    .pairing-assignment-list,
    .pairing-player-options
  ) {
    height: auto;
    max-height: none;
    overflow: visible;
  }

  .organizer-setup-screen .team-focused-content .team-selection-options,
  .organizer-setup-screen.pairing-focused-screen .pairing-assignment-list {
    width: 100%;
    margin: 0;
    border: 0;
    border-top: 1px solid var(--event-form-divider);
    border-bottom: 1px solid var(--event-form-divider);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .organizer-setup-screen.pairing-focused-screen .pairing-schedule-group {
    width: 100%;
    margin: 0;
    border: 0;
    border-top: 1px solid var(--event-form-divider);
    border-bottom: 1px solid var(--event-form-divider);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .organizer-setup-screen.pairing-focused-screen .pairing-question-row {
    padding-right: var(--event-form-inset-end);
    padding-left: var(--event-form-inset);
  }

  /* The same flat treatment applies to the remaining form fieldsets and
     alert groups, including their hidden legends and conditional rows. */
  .organizer-setup-screen .event-manager-form :is(
    .betting-form-fields,
    .competition-alerts-group
  ) {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    overflow: visible;
    border: 0;
    border-top: 1px solid var(--event-form-divider);
    border-bottom: 1px solid var(--event-form-divider);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  /* Event Details is a data-entry form, not a compact two-column settings
     list. Give each field a full-width Facebook-style form row while keeping
     the page-owned section bands and dividers. */
  .organizer-setup-screen .event-details-section {
    width: 100%;
    margin: 0;
    padding: 0;
    gap: 0;
  }

  .organizer-setup-screen .event-details-group {
    width: 100%;
    margin: 0;
    overflow: visible;
    border: 0;
    border-bottom: 1px solid var(--event-form-divider);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .organizer-setup-screen :is(
    .event-details-group > .setup-field-row,
    .profile-settings-group .profile-visible-field
  ) {
    display: grid;
    width: 100%;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
    gap: var(--app-space-1);
    box-sizing: border-box;
    margin: 0;
    padding: var(--app-space-2) var(--event-form-inset-end) var(--app-space-2) var(--event-form-inset);
    border: 0;
    border-top: 0;
    border-radius: 0;
    background: transparent;
  }

  .profile-page #profile-password-setting > .setup-disclosure__body {
    padding-right: 0;
    padding-left: 0;
  }

  .profile-page #profile-password-setting .profile-setting-note {
    margin-top: var(--app-space-1);
    padding-right: var(--event-form-inset-end);
    padding-left: var(--event-form-inset);
  }

  /* Form section titles own the rule into their collection.  The collection
     primitives also carry a top rule by default so they can stand alone;
     when a title sits directly above one, remove that second rule. */
  .organizer-setup-screen .event-manager-form :is(
    .event-manager-form-section,
    .competition-details-section,
    .pairing-details-section
  ) {
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  .organizer-setup-screen .event-manager-form-section > .organizer-section-subheader + :is(
    .competition-basics-group,
    .format-choice-list,
    .format-decision-list,
    .format-segmented,
    .event-settings-group,
    .event-details-group,
    .setup-group,
    .field-sheet-fields,
    .team-selection-options,
    .pairing-assignment-list,
    .pairing-schedule-group,
    .tee-sheet-settings-group,
    .betting-form-fields,
    .competition-alerts-group
  ) {
    border-top: 0;
  }

  .pairing-focused-screen .pairing-player-section .pairing-assignment-list {
    border-top: 0;
    border-bottom: 0;
  }

  /* A following form title is the same boundary as the preceding list's
     bottom rule.  This covers both top-level sections and the nested format
     questions used by Competition Details and Round Details. */
  .organizer-setup-screen .event-manager-form >
    .event-manager-form-section + .event-manager-form-section > .organizer-section-subheader,
  .organizer-setup-screen .event-manager-form-section >
    .event-manager-form-section + .event-manager-form-section > .organizer-section-subheader,
  .organizer-setup-screen .format-builder__question +
    .format-builder__question > .organizer-section-subheader {
    border-top: 0;
  }

  .organizer-setup-screen .event-settings-expanded-form .event-manager-form-section >
    .event-manager-form-section + .event-manager-form-section > .organizer-section-subheader {
    border-top: 1px solid var(--event-form-divider);
  }

  /* The Basics group owns the boundary above the first format question. */
  .organizer-setup-screen .competition-details-section +
    .competition-details-section .format-builder__question:first-of-type > .organizer-section-subheader {
    border-top: 0;
  }

  .organizer-setup-screen :is(
    .event-details-group > .setup-field-row.setup-field-row--prominent,
    .profile-settings-group .profile-visible-field.setup-field-row--prominent
  ) {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--app-space-1);
  }

  .organizer-setup-screen .event-details-group > .setup-field-row:first-child {
    border-top: 0;
  }

  .organizer-setup-screen :is(
    .event-details-group > .setup-field-row,
    .profile-settings-group .profile-visible-field
  ) > :is(label, .relative),
  .organizer-setup-screen .event-details-group > .setup-field-row > .relative > .relative {
    width: 100%;
    min-width: 0;
  }

  .organizer-setup-screen :is(
    .event-details-group > .setup-field-row,
    .profile-settings-group .profile-visible-field
  ) :is(label, strong) {
    color: var(--app-label);
    font-family: var(--font-ui);
    font-size: 15px;
    line-height: 20px;
    font-weight: 650;
  }

  .organizer-setup-screen :is(
    .event-details-group > .setup-field-row,
    .profile-settings-group .profile-visible-field
  ) .setup-field-control:not(.event-form-control) {
    width: 100%;
    min-height: 52px !important;
    padding: 13px 12px !important;
    border: 1px solid var(--event-form-control-border);
    border-radius: 10px;
    background: #fff;
    color: var(--app-label);
    font: 400 16px/22px var(--font-ui);
    font-weight: 400 !important;
    text-align: left;
  }

  .organizer-setup-screen :is(
    .event-details-group > .setup-field-row,
    .profile-settings-group .profile-visible-field
  ) .setup-field-control:not(.event-form-control):focus,
  .organizer-setup-screen :is(
    .event-details-group > .setup-field-row,
    .profile-settings-group .profile-visible-field
  ) .setup-field-control:not(.event-form-control):focus-visible {
    border-color: var(--app-primary);
    outline: 3px solid color-mix(in srgb, var(--app-primary) 18%, transparent);
    outline-offset: 0;
  }

  .organizer-setup-screen .profile-settings-group
    #profile-handicap-setting .setup-field-control[readonly] {
    border-color: var(--app-separator);
    background: var(--app-secondary-control-bg);
    color: var(--app-secondary-label);
    -webkit-text-fill-color: var(--app-secondary-label);
    caret-color: transparent;
    cursor: not-allowed;
  }

  .organizer-setup-screen .profile-settings-group
    #profile-handicap-setting .setup-field-control[readonly]:is(:focus, :focus-visible) {
    border-color: var(--app-separator);
    outline: 0;
  }

  .organizer-setup-screen .event-details-group > .setup-field-row .event-details-hint {
    grid-column: auto;
    margin: 4px 0 0;
    color: var(--app-secondary-label);
    font-size: 12px;
    line-height: 17px;
  }

  .organizer-setup-screen .event-details-group > .event-logo-field,
  .organizer-setup-screen .event-details-group > .setup-switch-row {
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    border-radius: 0;
    background: transparent;
  }

  .organizer-setup-screen .event-details-group > .event-logo-field {
    min-height: 72px;
    padding: var(--app-space-2) var(--event-form-inset-end) var(--app-space-2) var(--event-form-inset);
    border: 0;
    border-top: 0;
  }

  .organizer-setup-screen .event-details-group > .setup-switch-row {
    min-height: 72px;
    padding: var(--app-space-2) var(--event-form-inset-end) var(--app-space-2) var(--event-form-inset);
    border: 0;
    border-top: 0;
  }

  .organizer-setup-screen .event-details-group > .setup-switch-row:first-child {
    border-top: 0;
  }

  .organizer-setup-screen.event-create-page
    [aria-labelledby="event-schedule-heading"] .event-details-group > .setup-field-row:last-child {
    padding-bottom: var(--app-space-4);
  }

  .organizer-setup-screen.event-create-page .event-details-group > .setup-switch-row strong {
    font-size: 18px;
    line-height: 23px;
  }

  .organizer-setup-screen .event-details-form .event-details-submit {
    width: calc(100% - var(--event-form-inset) - var(--event-form-inset-end));
    margin-right: var(--event-form-inset-end);
    margin-left: var(--event-form-inset);
  }

  /* New Event stays one Rails form while presenting its decisions as three
     focused, reversible steps. */
  .organizer-setup-screen.event-create-page--new .event-create-wizard__progress {
    padding: var(--app-space-4) var(--app-page-inset-end) var(--app-space-3) var(--app-page-inset-start);
    border-bottom: 1px solid var(--app-row-divider);
    background: #fff;
  }

  .organizer-setup-screen.event-create-page--new .event-create-wizard__progress ol {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .organizer-setup-screen.event-create-page--new .event-create-wizard__indicator {
    position: relative;
    display: grid;
    min-width: 0;
    justify-items: center;
    gap: var(--app-space-1);
    color: var(--app-secondary-label);
  }

  .organizer-setup-screen.event-create-page--new .event-create-wizard__indicator:not(:last-child)::after {
    position: absolute;
    z-index: 0;
    top: 13px;
    left: calc(50% + 18px);
    width: calc(100% - 36px);
    height: 2px;
    background: var(--app-row-divider);
    content: "";
  }

  .organizer-setup-screen.event-create-page--new .event-create-wizard__indicator.is-complete::after {
    background: var(--app-primary);
  }

  .organizer-setup-screen.event-create-page--new .event-create-wizard__number {
    position: relative;
    z-index: 1;
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
    border: 1px solid var(--app-row-divider);
    border-radius: 50%;
    background: #fff;
    color: inherit;
    font: 700 13px/1 var(--font-ui);
  }

  .organizer-setup-screen.event-create-page--new :is(
    .event-create-wizard__indicator.is-current,
    .event-create-wizard__indicator.is-complete
  ) .event-create-wizard__number {
    border-color: var(--app-primary);
    background: var(--app-primary);
    color: #fff;
  }

  .organizer-setup-screen.event-create-page--new .event-create-wizard__indicator.is-current {
    color: var(--app-primary);
  }

  .organizer-setup-screen.event-create-page--new .event-create-wizard__label {
    overflow: hidden;
    max-width: 100%;
    font: 700 12px/17px var(--font-ui);
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .organizer-setup-screen.event-create-page--new .event-create-wizard__step {
    display: grid;
    gap: 0;
    min-width: 0;
    outline: 0;
  }

  .organizer-setup-screen.event-create-page--new .event-create-wizard__step[hidden] {
    display: none;
  }

  .organizer-setup-screen.event-create-page--new .event-create-wizard__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--app-space-2);
    padding: var(--app-space-4) var(--app-page-inset-end) var(--app-space-6) var(--app-page-inset-start);
  }

  .organizer-setup-screen.event-create-page--new .event-create-wizard__actions--single {
    grid-template-columns: minmax(0, 1fr);
  }

  .organizer-setup-screen.event-create-page--new .event-create-wizard__actions > :is(
    .ios-primary-button,
    .ios-secondary-button,
    .event-details-submit
  ) {
    width: 100%;
    min-height: 50px;
    margin: 0;
    font-size: 18px;
    line-height: 22px;
  }

/* Keep the app in a contained phone-like canvas on desktop, while preserving
   the mobile edge-to-edge row treatment inside that canvas. */
/* A landscape tablet can have a visually wide canvas while reporting fewer
   than 768 CSS pixels (for example, on a high-density display).  Switch back
   to the contained phone canvas before controls and copy stretch into an
   unreadable full-width layout. */
@media (min-width: 600px) {
  .web-stage {
    justify-content: center;
    background: #dededb;
  }

  .ios-app-shell {
    width: min(100%, var(--app-desktop-max-width));
    max-width: none;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08), 0 18px 55px rgba(0, 0, 0, 0.18);
  }

  .ios-screen.app-main {
    padding-right: 0;
    padding-left: 0;
  }

  .ios-tab-bar.bottom-nav {
    right: auto;
    left: 50%;
    width: min(100%, var(--app-desktop-max-width));
    max-width: none;
    transform: translateX(-50%);
  }

  .broadcast-player-shell {
    right: auto;
    left: 50%;
    width: min(100%, var(--app-desktop-max-width));
    max-width: none;
    transform: translateX(-50%);
  }
}

/*
 * Compact live scoring surface.
 *
 * The live board is the primary screen on an iPhone. Keep its chrome in one
 * rhythm: a short event header, a short competition context row, one inline
 * score control, then the standings list. The existing mobile primitives
 * remain available to the marketing preview and multi-player entry flow.
 */
.leaderboard-main {
  --live-masthead-height: calc(max(16px, env(safe-area-inset-top)) + 48px);
  padding-bottom: calc(var(--broadcast-height) + var(--tab-height) + env(safe-area-inset-bottom));
}

.has-broadcast-player .ios-screen.app-main.leaderboard-main {
  padding-bottom: calc(var(--broadcast-height) + var(--tab-height) + env(safe-area-inset-bottom) + var(--app-space-4));
}

.leaderboard-main .live-event-header {
  height: 56px;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  grid-template-rows: 29px 18px;
  column-gap: 8px;
  padding-right: var(--app-page-inset-end);
  padding-left: var(--app-page-inset-start);
}

.leaderboard-main .live-event-header__logo {
  width: var(--app-masthead-logo-size);
  height: var(--app-masthead-logo-size);
}

.leaderboard-main .live-event-header__title {
  font-size: var(--app-masthead-title-size);
  line-height: var(--app-masthead-title-line-height);
}

.leaderboard-main .live-event-header__meta {
  font-size: 13px;
  line-height: 17px;
}

.leaderboard-main .leaderboard-manager-masthead {
  box-sizing: border-box;
  height: var(--app-top-masthead-height);
  min-height: var(--app-top-masthead-height);
  max-height: var(--app-top-masthead-height);
  padding-top: max(16px, env(safe-area-inset-top));
  padding-bottom: 8px;
}

.leaderboard-main .leaderboard-manager-masthead .organizer-dashboard-header {
  grid-template-columns: 44px minmax(0, 1fr);
  column-gap: 8px;
}

.leaderboard-main .leaderboard-manager-masthead .organizer-masthead-back {
  width: 44px;
  height: 44px;
  font-size: 18px;
}

.leaderboard-main .leaderboard-manager-masthead .organizer-events-brand__logo {
  justify-self: center;
}

.leaderboard-main .leaderboard-manager-masthead .organizer-dashboard-title {
  font-size: var(--app-masthead-title-size);
  line-height: var(--app-masthead-title-line-height);
}

.leaderboard-main .leaderboard-manager-masthead .organizer-dashboard-meta {
  margin-top: 2px;
  font-size: 13px;
  line-height: 17px;
}

.leaderboard-main .live-board__identity {
  height: auto;
  min-height: 80px;
  padding-top: 14px;
  padding-bottom: 14px;
  border-top: 0;
  border-bottom: 1px solid var(--app-row-divider);
  background: var(--social-white);
}

.leaderboard-main .live-board__name {
  font-family: var(--font-display);
  font-size: 24px;
  line-height: 32px;
  font-weight: 600;
  letter-spacing: 0.01em;
}

.leaderboard-main .live-board__meta {
  margin-top: 0;
  font-size: 12px;
  line-height: 17px;
  font-weight: 500;
}

.leaderboard-main .live-score-panel--single {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: var(--app-page-inset-start) 40px 8px minmax(0, 1fr) 8px 40px 8px 40px var(--app-page-inset-end);
  grid-template-rows: 60px 56px;
  align-items: center;
  padding: 0;
  border-top: 0;
  border-bottom: 1px solid var(--app-row-divider);
  background: #faf9f6;
}

/* Single-player scoring removes the generic panel border so it can share the
   hole-row grid. Match-play still needs a visible boundary below its context. */
.leaderboard-main .match-play-board__context--with-scoring ~ .leaderboard-scoring-panel .live-score-panel--single {
  border-top: 1px solid var(--app-row-divider);
}

/* Match play gives the active scorer a dedicated row. The hole context stays
   focused on navigation, while the player's name travels with their control. */
.leaderboard-main .match-play-board__context--with-scoring ~ .leaderboard-scoring-panel .live-score-panel--single {
  grid-template-columns: var(--app-page-inset-start) 40px 8px minmax(0, 1fr) 8px 40px 8px 40px var(--app-page-inset-end);
  grid-template-rows: 60px 56px;
}

.leaderboard-main .match-play-board__context--with-scoring ~ .leaderboard-scoring-panel .live-score-panel--single .live-hole-bar__nav:not(.live-hole-bar__nav--right) {
  grid-column: 2;
  grid-row: 1;
}

.leaderboard-main .match-play-board__context--with-scoring ~ .leaderboard-scoring-panel .live-score-panel--single .live-hole-bar__copy {
  grid-column: 4;
  grid-row: 1;
}

.leaderboard-main .match-play-board__context--with-scoring ~ .leaderboard-scoring-panel .live-score-panel--single .live-hole-bar__scorecard {
  grid-column: 6;
  grid-row: 1;
}

.leaderboard-main .match-play-board__context--with-scoring ~ .leaderboard-scoring-panel .live-score-panel--single .live-hole-bar__nav--right {
  grid-column: 8;
  grid-row: 1;
}

.leaderboard-main .match-play-board__context--with-scoring ~ .leaderboard-scoring-panel .live-score-panel--single .live-score-target {
  display: flex;
  grid-column: 1 / -1;
  grid-row: 2;
  box-sizing: border-box;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 var(--app-page-inset-end) 0 var(--app-page-inset-start);
}

.leaderboard-main .match-play-board__context--with-scoring ~ .leaderboard-scoring-panel .live-score-panel--single .live-score-target__name {
  position: static;
  width: auto;
  height: auto;
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  clip: auto;
  clip-path: none;
  white-space: nowrap;
}

.leaderboard-main .match-play-board__context--with-scoring ~ .leaderboard-scoring-panel .live-score-panel--single .live-stepper {
  flex: 0 0 154px;
}

/* Keep the hole navigator in the same quiet header band as the match column
   labels, while leaving each player's score row on the white list surface. */
.leaderboard-main .match-play-board__context--with-scoring ~ .leaderboard-scoring-panel .live-score-panel {
  background: #faf9f6;
}

.leaderboard-main .match-play-board__context--with-scoring ~ .leaderboard-scoring-panel .live-score-panel .live-hole-bar {
  background: #faf9f6;
}

.leaderboard-main .match-play-board__context--with-scoring ~ .leaderboard-scoring-panel .live-score-target {
  background: var(--social-white);
}

.leaderboard-main .live-score-panel--single > .live-hole-bar,
.leaderboard-main .live-score-panel--single > .live-score-targets {
  display: contents;
}

.leaderboard-main .live-score-panel--single .live-hole-bar__nav:not(.live-hole-bar__nav--right) {
  grid-column: 2;
  grid-row: 1;
}

.leaderboard-main .live-score-panel--single .live-hole-bar__copy {
  grid-column: 4;
  grid-row: 1;
  min-width: 0;
}

.leaderboard-main .live-score-panel--single .live-score-target {
  display: flex;
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: stretch;
  box-sizing: border-box;
  min-width: 0;
  min-height: 44px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 var(--app-page-inset-end) 0 var(--app-page-inset-start);
  border-top: 1px solid var(--app-row-divider);
  background: var(--social-white);
}

.leaderboard-main .live-score-panel--single .live-score-target__name {
  position: static;
  width: auto;
  height: auto;
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
  clip: auto;
  clip-path: none;
  white-space: nowrap;
}

.leaderboard-main .live-score-panel--single .live-stepper {
  flex: 0 0 154px;
}

.leaderboard-main .live-score-panel--single .live-hole-bar__scorecard {
  grid-column: 6;
  grid-row: 1;
}

.leaderboard-main .live-score-panel--single .live-hole-bar__nav--right {
  grid-column: 8;
  grid-row: 1;
}

.leaderboard-main .live-score-panel--single .live-score-target:not(:last-child)::after {
  display: block;
}

.leaderboard-main .live-score-panel--single .live-round-waiting {
  grid-column: 1 / -1;
  grid-row: 3;
  width: 100%;
  min-height: 45px;
  border-top: 1px solid var(--app-row-divider);
}

.leaderboard-main .live-board {
  display: flex;
  min-height: max(360px, calc(100dvh - var(--broadcast-height) - var(--tab-height) - var(--live-masthead-height)));
  flex-direction: column;
}

.leaderboard-main:has(.round-history) .live-board {
  min-height: 0;
}

.leaderboard-main .round-history {
  margin-top: 20px;
  border-top: 0;
}

.leaderboard-main .round-history__heading {
  display: flex;
  min-height: 34px;
  box-sizing: border-box;
  align-items: center;
  padding: 0 var(--app-page-inset-end) 0 var(--app-page-inset-start);
  border-bottom: 1px solid var(--app-row-divider);
  background: transparent;
  color: var(--app-primary);
  font-family: var(--font-display);
  font-size: 16px;
  line-height: 20px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.leaderboard-main .round-history__heading::-webkit-details-marker {
  display: none;
}

.leaderboard-main .round-history__heading:focus-visible {
  outline: 2px solid var(--app-primary);
  outline-offset: -2px;
}

.leaderboard-main .round-history__section-chevron {
  margin-left: auto;
  color: #939a95;
  font-size: 13px;
  transition: transform 180ms ease;
}

.leaderboard-main .round-history[open] .round-history__section-chevron {
  transform: rotate(180deg);
}

.leaderboard-main .round-history__summary {
  min-height: 72px;
  grid-template-columns: 28px minmax(0, 1fr) auto 16px;
  gap: 10px;
  padding: 12px var(--app-page-inset-end) 12px var(--app-page-inset-start);
  background: var(--social-white);
  border-bottom: 1px solid var(--app-row-divider);
}

.leaderboard-main .round-history__status {
  width: 28px;
  height: 28px;
  font-size: 11px;
}

.leaderboard-main .round-history__copy strong {
  font-size: 18px;
  line-height: 24px;
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.01em;
}

.leaderboard-main .round-history__copy small,
.leaderboard-main .round-history__final {
  font-size: 13px;
  line-height: 18px;
}

.leaderboard-main .live-board__table {
  display: flex;
  min-height: 0;
  flex: 1 1 auto;
  flex-direction: column;
}

.leaderboard-main .live-board__rows {
  min-height: 0;
  flex: 1 1 auto;
  background: var(--social-white);
}

.leaderboard-main .live-board__columns {
  height: 32px;
  min-height: 32px;
  padding-right: var(--app-page-inset-end);
  padding-left: var(--app-page-inset-start);
}

.leaderboard-main .live-board__result--current {
  background: rgba(0, 67, 35, 0.055);
}

.leaderboard-main .live-board__row--current {
  background: transparent;
}

/* A collapsed field has a real table footer. Keep Show All attached to the
   last visible row instead of stretching the row body to the viewport. */
.leaderboard-main .live-board:has(.leaderboard-show-all) {
  min-height: 0;
}

.leaderboard-main .live-board:has(.leaderboard-show-all) .live-board__table,
.leaderboard-main .live-board:has(.leaderboard-show-all) .live-board__rows {
  flex: 0 0 auto;
}

.leaderboard-main .leaderboard-show-all {
  min-height: 40px;
  border-top: 1px solid var(--app-row-divider);
  background: transparent;
}

.leaderboard-main .live-board__show-all {
  min-height: 40px;
  justify-content: center;
  padding-right: var(--app-page-inset-end);
  padding-left: var(--app-page-inset-start);
  color: var(--app-primary);
  font-family: var(--font-ui);
  font-size: 12px;
  line-height: 16px;
  font-weight: 700;
  text-align: center;
}

/* The live leaderboard is one shared card system for every scoring format.
   Score entry remains a separate task card, while the competition identity,
   format-specific columns, results, and footer stay inside the same board. */
.leaderboard-main {
  --leaderboard-card-inset-start: max(14px, env(safe-area-inset-left));
  --leaderboard-card-inset-end: max(14px, env(safe-area-inset-right));
  --leaderboard-card-radius: var(--app-radius-control);
  --leaderboard-page: #f4f4f4;
}

.ios-screen.app-main.leaderboard-main {
  background-color: var(--leaderboard-page);
  background-image:
    radial-gradient(circle at calc(100% + 56px) -48px,
      transparent 0 88px,
      rgba(114, 207, 124, 0.07) 89px 126px,
      transparent 127px 158px,
      rgba(255, 255, 255, 0.03) 159px 194px,
      transparent 195px),
    radial-gradient(circle,
      transparent 0 82px,
      rgba(72, 72, 72, 0.075) 83px 85px,
      transparent 86px 118px,
      rgba(118, 118, 118, 0.055) 119px 121px,
      transparent 122px),
    radial-gradient(circle,
      transparent 0 102px,
      rgba(72, 72, 72, 0.065) 103px 105px,
      transparent 106px 138px,
      rgba(118, 118, 118, 0.05) 139px 141px,
      transparent 142px),
    linear-gradient(to bottom,
      var(--template-green-deep) 0 124px,
      var(--leaderboard-page) 124px 100%);
  background-position: 0 0, -132px 72px, calc(100% + 158px) 338px, 0 0;
  background-size: 100% 124px, 320px 560px, 370px 650px, 100% 100%;
  background-repeat: no-repeat, repeat-y, repeat-y, no-repeat;
}

.leaderboard-main :is(.live-leaderboard-carousel, .live-leaderboard-stack) {
  box-sizing: border-box;
  margin: 14px var(--leaderboard-card-inset-end) 0 var(--leaderboard-card-inset-start);
}

.leaderboard-main .leaderboard-scoring-panel {
  margin: 0 0 16px;
}

.leaderboard-main .live-scoring {
  margin: 0;
}

.leaderboard-main .live-score-panel,
.leaderboard-main :is(.leaderboard-carousel-slide, .live-leaderboard-stack) > .live-board {
  box-sizing: border-box;
  overflow: hidden;
  border: 1px solid var(--border-control);
  border-radius: var(--leaderboard-card-radius);
  background: var(--social-white);
  box-shadow: none;
}

.leaderboard-main .live-score-panel--single {
  grid-template-rows: 60px 56px auto;
  border: 1px solid var(--border-control);
  background: var(--social-white);
}

.leaderboard-main .live-score-panel--single .live-round-summary {
  grid-column: 1 / -1;
  grid-row: 3;
  width: 100%;
}

.leaderboard-main :is(.leaderboard-carousel-slide, .live-leaderboard-stack) > .live-board {
  display: block;
  min-height: 0;
}

.leaderboard-main :is(.leaderboard-carousel-slide, .live-leaderboard-stack) > .live-board .live-board__identity,
.leaderboard-main :is(.leaderboard-carousel-slide, .live-leaderboard-stack) > .live-board .live-board__table,
.leaderboard-main :is(.leaderboard-carousel-slide, .live-leaderboard-stack) > .live-board .live-board__result {
  background: var(--social-white);
}

.leaderboard-main :is(.leaderboard-carousel-slide, .live-leaderboard-stack) > .live-board .live-board__table,
.leaderboard-main :is(.leaderboard-carousel-slide, .live-leaderboard-stack) > .live-board .live-board__rows {
  display: block;
  min-height: 0;
  flex: 0 0 auto;
}

.leaderboard-main :is(.leaderboard-carousel-slide, .live-leaderboard-stack) > .live-board .live-board__columns {
  background: #f7f7f4;
}

.leaderboard-main .live-board__identity > :is(.live-board__name-block, .live-board-switcher) {
  min-width: 0;
  flex: 1 1 auto;
}

.leaderboard-main .live-board-switcher__summary {
  height: auto;
  min-height: 52px;
}

.leaderboard-main .live-board__meta {
  overflow: visible;
  text-overflow: clip;
  text-wrap: balance;
  white-space: normal;
}

.leaderboard-main .live-board__meta-item {
  display: inline-block;
  white-space: nowrap;
}

.leaderboard-main .live-board__identity > .live-board__stake--button {
  margin-left: 10px;
}

.leaderboard-main .leaderboard-show-all {
  min-height: 47px;
  background: #fbfcfa;
}

.leaderboard-main .live-board__show-all {
  min-height: 47px;
  font-size: 13px;
}

/* Tee-time interval is a short setting, so keep it in the utility row rather
   than sending the organizer into a separate sheet. The form submits when the
   value is changed and keeps the row's existing Event Manager rhythm. */
.tee-sheet-settings-inline-form {
  --event-form-inset: max(16px, env(safe-area-inset-left));
  --event-form-inset-end: max(16px, env(safe-area-inset-right));
  --event-form-control-border: #bfc5c0;
  box-sizing: border-box;
  display: grid;
  width: 100%;
  min-width: 0;
  min-height: 64px;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 10px var(--event-form-inset-end) 10px var(--event-form-inset);
  border: 0;
  background: transparent;
}

.tee-sheet-settings-inline-form__icon {
  display: grid;
  width: 32px;
  height: 32px;
  place-items: center;
  color: var(--app-primary);
  font-size: 18px;
}

.tee-sheet-settings-inline-form__copy {
  display: grid;
  min-width: 0;
  gap: 1px;
  color: var(--app-label);
  cursor: text;
}

.tee-sheet-settings-inline-form__copy strong {
  overflow: hidden;
  color: var(--app-primary);
  font-family: var(--font-display);
  font-size: 16px;
  line-height: 21px;
  font-weight: 600;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tee-sheet-settings-inline-form__copy small {
  overflow: hidden;
  color: var(--app-secondary-label);
  font-size: 12px;
  line-height: 17px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tee-sheet-settings-inline-form__control {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--app-secondary-label);
  font-size: 13px;
  line-height: 18px;
  white-space: nowrap;
}

.tee-sheet-settings-inline-form__control input {
  box-sizing: border-box;
  width: 58px;
  min-height: 44px;
  padding: 8px;
  border: 1px solid var(--event-form-control-border);
  border-radius: 10px;
  background: #fff;
  color: var(--app-label);
  font: 600 16px/22px var(--font-ui);
  text-align: center;
}

.tee-sheet-settings-inline-form__control input:focus {
  border-color: var(--app-primary);
  outline: 3px solid color-mix(in srgb, var(--app-primary) 18%, transparent);
  outline-offset: 0;
}

.tee-sheet-settings-inline-form__control input:disabled {
  background: var(--app-surface);
  color: var(--app-secondary-label);
  opacity: 0.7;
}

.tee-sheet-settings-inline-form__error {
  grid-column: 2 / -1;
  color: var(--app-danger, #b42318);
  font-size: 12px;
  line-height: 17px;
}

@media (max-width: 374px) {
  .leaderboard-main .live-score-panel--single {
    grid-template-columns: var(--app-page-inset-start) 36px 5px minmax(0, 1fr) 5px 36px 5px 36px var(--app-page-inset-end);
  }

  .leaderboard-main .live-score-panel--single .live-stepper {
    flex-basis: 124px;
    width: 124px;
    grid-template-columns: 40px 44px 40px;
  }

  .leaderboard-main .live-score-panel--single .live-stepper__button,
  .leaderboard-main .live-score-panel--single .live-hole-bar__scorecard,
  .leaderboard-main .live-score-panel--single .live-hole-bar__nav--right {
    width: 36px;
  }
}

/* Team search is one control: the label supplies the rounded field and the
   input stays borderless inside it. This comes after the shared form rules so
   the generic input treatment cannot create a second nested field. */
.team-focused-screen .team-focused-content .team-player-search {
  box-sizing: border-box;
  display: flex;
  width: calc(100% - var(--event-form-inset) - var(--event-form-inset-end));
  min-height: 54px;
  align-items: center;
  gap: 8px;
  margin: var(--app-space-3) var(--event-form-inset-end) var(--app-space-2) var(--event-form-inset);
  padding: 8px 12px;
  border: 1px solid var(--event-form-control-border);
  border-radius: 10px;
  background: #fff;
  color: var(--app-secondary-label);
}

.team-focused-screen .team-focused-content .team-player-search input {
  width: 100%;
  min-width: 0;
  min-height: 36px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0;
  background: transparent !important;
  color: var(--app-label);
  font: 500 14px/20px var(--font-ui) !important;
}

/* Edit Tee Time is a focused settings editor. Keep schedule values as row
   controls, use a single search field surface, and reserve strong selection
   styling for the check indicators instead of drawing cards inside the page. */
.organizer-setup-screen.pairing-focused-screen .pairing-details-form .pairing-schedule-row {
  min-height: 60px;
  grid-template-columns: minmax(0, 1fr) auto 14px;
  padding: 8px var(--event-form-inset-end) 8px var(--event-form-inset);
}

.organizer-setup-screen.pairing-focused-screen .pairing-details-form .pairing-schedule-row :is(input, select) {
  width: auto;
  min-width: 112px;
  min-height: 44px;
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--app-label);
  font: 500 16px/22px var(--font-ui);
  text-align: right;
  text-align-last: right;
}

.organizer-setup-screen.pairing-focused-screen .pairing-player-section .pairing-question-row {
  min-height: 0;
  align-items: flex-start;
  margin: 0;
  padding: 12px var(--event-form-inset-end) 10px var(--event-form-inset);
  border: 0;
  background: transparent;
}

.organizer-setup-screen.pairing-focused-screen .pairing-player-section .pairing-question-row strong {
  color: var(--app-label);
  font-family: var(--font-ui);
  font-size: 15px;
  line-height: 20px;
  font-weight: 600;
}

.organizer-setup-screen.pairing-focused-screen .pairing-player-section .pairing-question-row small {
  margin-top: 2px;
  font-size: 12px;
  line-height: 17px;
}

.organizer-setup-screen.pairing-focused-screen .pairing-player-section .pairing-question-row > b {
  padding-top: 1px;
  font-size: 12px;
  line-height: 20px;
  font-weight: 600;
}

.organizer-setup-screen.pairing-focused-screen .pairing-player-section .pairing-player-search {
  box-sizing: border-box;
  width: calc(100% - var(--event-form-inset) - var(--event-form-inset-end));
  min-height: 46px;
  margin: 0 var(--event-form-inset-end) 12px var(--event-form-inset);
  padding: 0 12px;
  border: 1px solid var(--event-form-control-border);
  border-radius: 10px;
  background: #fff;
}

.organizer-setup-screen.pairing-focused-screen .pairing-player-section .pairing-player-search input {
  width: 100%;
  min-width: 0;
  min-height: 44px !important;
  margin: 0;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--app-label);
  font: 500 15px/20px var(--font-ui) !important;
}

.organizer-setup-screen.pairing-focused-screen .pairing-assignment-row:has(.pairing-assignment-row__input:checked) {
  border-color: transparent;
  background: color-mix(in srgb, var(--app-primary) 5%, transparent);
  box-shadow: none;
}

.organizer-setup-screen.pairing-focused-screen :is(
  .pairing-assignment-row--unavailable,
  .pairing-assignment-row--capacity-disabled
) {
  opacity: .62;
}

.organizer-setup-screen.pairing-focused-screen .pairing-details-form .pairing-form-submit {
  margin-top: 24px;
}

.organizer-setup-screen.pairing-focused-screen .pairing-details-form .pairing-remove-button {
  width: fit-content;
  min-height: 44px;
  margin: 6px auto 24px;
  padding: 0 12px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--app-danger);
}

/* Standalone form fields reuse the member-search control rather than creating
   another input shape. Add `event-form-control` to new Event Manager inputs. */
.organizer-setup-screen .event-manager-form .event-form-fields {
  display: grid;
  gap: 14px;
  padding-top: var(--app-space-3);
}

.organizer-setup-screen .event-manager-form .event-form-field {
  display: grid;
  gap: 7px;
}

.organizer-setup-screen .event-manager-form .event-form-field--flush {
  grid-template-columns: minmax(0, 1fr);
  align-items: stretch;
}

.organizer-setup-screen .event-manager-form .event-form-field > label {
  padding-right: var(--event-form-inset-end);
  padding-left: var(--event-form-inset);
  color: var(--app-label);
  font-size: 15px;
  line-height: 20px;
  font-weight: 650;
}

.organizer-setup-screen .event-manager-form .event-form-field--flush > label {
  padding-right: 0;
  padding-left: 0;
}

.organizer-setup-screen .event-manager-form .event-form-field > small {
  padding-right: var(--event-form-inset-end);
  padding-left: var(--event-form-inset);
  color: var(--app-secondary-label);
  font-size: 12px;
  line-height: 17px;
}

.organizer-setup-screen .event-manager-form :is(input, select).event-form-control {
  width: calc(100% - var(--event-form-inset) - var(--event-form-inset-end));
  min-height: 56px;
  margin-right: var(--event-form-inset-end);
  margin-left: var(--event-form-inset);
  padding: 0 12px;
  border: 1px solid var(--event-form-control-border);
  border-radius: 10px;
  background: #fff;
  color: var(--app-label);
  font: 500 16px/22px var(--font-ui);
  text-align: left;
}

/* WebKit gives native date controls an intrinsic inline width. Keep that
   internal width from pushing shared Event Manager controls past the phone
   viewport, regardless of which form section renders them. */
.organizer-setup-screen .event-manager-form :is(
  input[type="date"],
  input[type="datetime-local"]
) {
  display: block;
  height: 44px;
  min-height: 44px;
  min-width: 0;
  min-inline-size: 0;
  max-width: 100%;
  max-inline-size: 100%;
  padding-block: 0;
  overflow: hidden;
  appearance: none;
  -webkit-appearance: none;
}

.organizer-setup-screen .event-manager-form :is(
  input.event-form-control[type="date"],
  input.event-form-control[type="datetime-local"]
) {
  --event-date-value-justify: flex-start;
  height: 56px;
  min-height: 56px;
}

.organizer-setup-screen .event-manager-form :is(
  input[type="date"],
  input[type="datetime-local"]
)::-webkit-date-and-time-value {
  display: flex;
  width: 100%;
  height: 100%;
  min-width: 0;
  align-items: center;
  justify-content: var(--event-date-value-justify);
  margin: 0;
  padding: 0;
  text-align: inherit;
}

.organizer-setup-screen .event-manager-form select.event-form-control {
  height: 56px;
}

.organizer-setup-screen .event-manager-form input.event-form-control::placeholder {
  color: var(--app-secondary-label);
  opacity: 1;
}

.organizer-setup-screen .event-manager-form :is(input, select).event-form-control:disabled {
  background: var(--app-surface);
  color: var(--app-secondary-label);
  opacity: 0.7;
}

.organizer-setup-screen .event-manager-form :is(input, select).event-form-control.event-form-control--flush {
  width: 100%;
  margin-right: 0;
  margin-left: 0;
}

.organizer-setup-screen .event-manager-form .field-player-search__input.event-form-control {
  min-height: 56px;
  padding: 6px 11px;
}

.organizer-setup-screen .event-manager-form .field-player-search__input.event-form-control input {
  min-height: 42px;
  padding: 0;
  border: 0;
  outline: 0;
  background: transparent;
}

.organizer-setup-screen .event-manager-form .event-form-control:focus,
.organizer-setup-screen .event-manager-form .event-form-control:focus-within {
  border-color: var(--app-primary);
  outline: 0;
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--app-primary) 18%, transparent);
}

/* The scoring-link actions leave open space between sections, so Schedule
   needs to retain its own top boundary instead of borrowing the row above. */
.organizer-setup-screen #scoring-link-delivery
  .scoring-link-delivery-section + .scoring-link-delivery-section >
  #scoring-link-schedule-heading.organizer-section-subheader {
  border-top: 1px solid var(--app-row-divider);
}

/* Primary organizer rows share one label class across dashboard and child pages. */
.ios-screen.app-main.organizer-home-main .organizer-menu-row__label,
.ios-screen.app-main .organizer-setup-screen .organizer-menu-row__label {
  font-family: var(--font-display);
  font-size: 18px;
  line-height: 23px;
  font-weight: 600;
}

@media (max-width: 600px) {
  .organizer-home-main .organizer-menu-row__value {
    font-size: 15px;
    line-height: 20px;
  }
}
