/* ADDED v2026-05-22.3946: Final player-facing UI/UX contract.
 * Scope: player-facing pages only. Admin pages use the separate admin contract.
 * Goals: neutral default sections, severity-only highlighting, mobile-first
 * cards/forms/tables, predictable spacing, readable touch targets, and stable
 * avatar/table behavior.
 */
:root {
    --player-page-max-width: 980px;
    --player-page-pad-inline: clamp(0.75rem, 2.4vw, 1.4rem);
    --player-page-pad-block: clamp(0.65rem, 1.8vw, 1.15rem);
    --player-gap-xs: 0.25rem;
    --player-gap-sm: 0.45rem;
    --player-gap-md: 0.75rem;
    --player-gap-lg: 1rem;
    --player-radius-sm: 0.45rem;
    --player-radius-md: 0.7rem;
    --player-radius-lg: 1rem;
    --player-border: #d0d7de;
    --player-border-soft: #e5e7eb;
    --player-bg: #f6f8fa;
    --player-surface: #ffffff;
    --player-surface-muted: #f8fafc;
    --player-text: #111827;
    --player-muted: #4b5563;
    --player-link: #0645d9;
    --player-focus-bg: #edf2f7;
    --player-focus-ring: rgba(37, 99, 235, 0.23);
    --player-error: #b42318;
    --player-error-bg: #fdecea;
    --player-warning: #b7791f;
    --player-warning-bg: #fff8db;
    --player-info: #2563eb;
    --player-info-bg: #eef7ff;
    --player-avatar-md: 88px;
    --player-avatar-sm: 72px;
}

body.app-player {
    background: var(--player-bg);
    color: var(--player-text);
    overflow-x: hidden;
}

body.app-player .mainbody {
    box-sizing: border-box;
    width: min(100%, var(--player-page-max-width));
    margin-inline: auto;
    padding: var(--player-page-pad-block) var(--player-page-pad-inline);
}

body.app-player .site-league-title,
body.app-player h1,
body.app-player h2,
body.app-player h3 {
    text-wrap: balance;
}

body.app-player a {
    color: var(--player-link);
    overflow-wrap: break-word;
}

body.app-player nav {
    box-sizing: border-box;
    max-width: var(--player-page-max-width);
    margin-inline: auto;
    padding-inline: var(--player-page-pad-inline);
}

body.app-player .nav-primary-row,
body.app-player .nav-secondary-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    align-items: center;
}

body.app-player .nav-link {
    display: inline-flex;
    align-items: center;
    min-height: 2.25rem;
    padding: 0.38rem 0.62rem;
    border-radius: 999px;
    line-height: 1.15;
    text-decoration: none;
}

body.app-player .nav-link:focus-visible,
body.app-player a:focus-visible,
body.app-player button:focus-visible,
body.app-player summary:focus-visible,
body.app-player input:focus-visible,
body.app-player select:focus-visible,
body.app-player textarea:focus-visible {
    outline: 3px solid var(--player-focus-ring);
    outline-offset: 2px;
}

body.app-player :where(.ui-player-page, .player-page-compact, .player-card, .ui-player-card, .ui-card, .profile-photo-card, .team-profile-member-card) {
    box-sizing: border-box;
}

body.app-player :where(.ui-player-card, .ui-card, .player-card, .profile-photo-card, .team-profile-member-card, .ui-report-card, .ui-panel) {
    background: var(--player-surface);
    border: 1px solid var(--player-border);
    border-radius: var(--player-radius-lg);
    box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
    padding: clamp(0.75rem, 2.2vw, 1rem);
}

body.app-player :where(.ui-card-grid, .ui-player-card-grid, .team-profile-member-grid, .player-card-grid) {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
    gap: var(--player-gap-md);
    align-items: stretch;
}

body.app-player :where(details, .ui-player-details-card, .ui-details-card, .stats-details, .team-profile-section, .player-about-details, .player-about-rule-details, .player-profile-details, .player-availability-details, .player-match-history-details, .player-subs-details, .approvals-exclusive-details) {
    box-sizing: border-box;
    margin-block: var(--player-gap-sm) !important;
    border: 1px solid var(--player-border) !important;
    border-left: 1px solid var(--player-border) !important;
    border-radius: var(--player-radius-md) !important;
    background: var(--player-surface) !important;
    overflow: clip;
}

body.app-player :where(details, .ui-player-details-card, .ui-details-card, .stats-details, .team-profile-section, .player-about-details, .player-about-rule-details, .player-profile-details, .player-availability-details, .player-match-history-details, .player-subs-details, .approvals-exclusive-details) > summary {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    min-height: 2.35rem;
    padding: 0.48rem 0.72rem !important;
    margin: 0 !important;
    border-left: 0 solid transparent !important;
    border-radius: var(--player-radius-md) var(--player-radius-md) 0 0 !important;
    background: var(--player-surface) !important;
    box-shadow: none !important;
    color: var(--player-text) !important;
    font-weight: 700;
    cursor: pointer;
    touch-action: manipulation;
}

body.app-player :where(details, .ui-player-details-card, .ui-details-card, .stats-details, .team-profile-section, .player-about-details, .player-about-rule-details, .player-profile-details, .player-availability-details, .player-match-history-details, .player-subs-details, .approvals-exclusive-details)[open] > summary {
    border-bottom: 1px solid var(--player-border-soft) !important;
}

body.app-player :where(details.has-error, details.admin-section-outline-error, .has-error) > summary {
    border-left: 0.34rem solid var(--player-error) !important;
    background: var(--player-error-bg) !important;
}
body.app-player :where(details.has-warning, details.admin-section-outline-warning, .has-warning) > summary {
    border-left: 0.34rem solid var(--player-warning) !important;
    background: var(--player-warning-bg) !important;
}
body.app-player :where(details.has-info, details.admin-section-outline-info, .has-info) > summary {
    border-left: 0.34rem solid var(--player-info) !important;
    background: var(--player-info-bg) !important;
}

body.app-player details > :not(summary) {
    margin-inline: 0;
}

body.app-player :where(input[type='text'], input[type='email'], input[type='tel'], input[type='number'], input[type='password'], input[type='search'], input[type='file'], select, textarea) {
    box-sizing: border-box;
    max-width: 100%;
    min-height: 2.35rem;
    border: 1px solid var(--player-border);
    border-radius: var(--player-radius-sm);
    background: var(--player-surface-muted);
    color: var(--player-text);
    padding: 0.4rem 0.55rem;
    font: inherit;
}

body.app-player :where(input[type='text'], input[type='email'], input[type='tel'], input[type='number'], input[type='password'], input[type='search'], input[type='file'], select, textarea):focus {
    background: var(--player-focus-bg);
}

body.app-player :where(button, input[type='submit'], input[type='button'], .button, .ui-button, .ui-link-button) {
    min-height: 2.35rem;
    border-radius: var(--player-radius-sm);
    touch-action: manipulation;
}

body.app-player :where(table, .ui-responsive-data-table) {
    border-collapse: collapse;
    max-width: 100%;
    table-layout: auto;
}

body.app-player :where(.ui-table-scroll, .ui-responsive-data-scroll, .ui-responsive-table-card, .table-scroll, .scroll-x) {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

body.app-player th {
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: manual;
}

body.app-player td {
    max-width: 26rem;
    overflow-wrap: break-word;
    word-break: normal;
    vertical-align: top;
}

body.app-player :where(.ui-responsive-data-display, .player-responsive-data-display) {
    max-width: 100%;
}

body.app-player .ui-responsive-data-card-list {
    display: none;
}

body.app-player :where(.profile-photo-frame, .profile-initials-avatar-profile, .profile-photo-image, .profile-photo-fallback-avatar) {
    box-sizing: border-box;
}

body.app-player :where(.team-profile-member-card, .profile-photo-card, .team-profile-member-photo-link) :where(.profile-photo-frame, .profile-initials-avatar-profile, .profile-photo-image, .profile-photo-fallback-avatar) {
    width: var(--player-avatar-md) !important;
    height: var(--player-avatar-md) !important;
    min-width: var(--player-avatar-md) !important;
    min-height: var(--player-avatar-md) !important;
    max-width: var(--player-avatar-md) !important;
    max-height: var(--player-avatar-md) !important;
    flex: 0 0 var(--player-avatar-md) !important;
    object-fit: cover;
}

body.app-player .profile-photo-editor #profile-photo-warning:empty,
body.app-player .profile-photo-editor .warning:empty {
    display: none !important;
}

@media (max-width: 720px) {
    body.app-player .mainbody {
        width: 100%;
        padding-inline: 0.65rem;
    }

    body.app-player :where(.ui-player-card, .ui-card, .player-card, .profile-photo-card, .team-profile-member-card, .ui-report-card, .ui-panel) {
        border-radius: var(--player-radius-md);
        padding: 0.72rem;
    }

    body.app-player :where(details, .ui-player-details-card, .ui-details-card, .stats-details, .team-profile-section, .player-about-details, .player-about-rule-details, .player-profile-details, .player-availability-details, .player-match-history-details, .player-subs-details, .approvals-exclusive-details) {
        margin-block: 0.38rem !important;
    }

    body.app-player .ui-responsive-data-table {
        min-width: 0;
        width: 100%;
    }

    body.app-player .ui-responsive-data-display.has-card-list .ui-responsive-data-table-wrap {
        display: none;
    }

    body.app-player .ui-responsive-data-display.has-card-list .ui-responsive-data-card-list {
        display: grid;
        gap: 0.55rem;
    }

    body.app-player .ui-responsive-data-card {
        border: 1px solid var(--player-border);
        border-radius: var(--player-radius-md);
        background: var(--player-surface);
        padding: 0.65rem;
    }

    body.app-player .ui-responsive-data-card-row {
        display: grid;
        grid-template-columns: minmax(7.25rem, 42%) 1fr;
        gap: 0.5rem;
        padding-block: 0.18rem;
        border-bottom: 1px solid var(--player-border-soft);
    }

    body.app-player .ui-responsive-data-card-row:last-child {
        border-bottom: 0;
    }

    body.app-player .ui-responsive-data-card-label {
        color: var(--player-muted);
        font-size: 0.9rem;
        font-weight: 700;
    }

    body.app-player .ui-responsive-data-card-value {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    body.app-player :where(.team-profile-member-card, .profile-photo-card, .team-profile-member-photo-link) :where(.profile-photo-frame, .profile-initials-avatar-profile, .profile-photo-image, .profile-photo-fallback-avatar) {
        width: var(--player-avatar-sm) !important;
        height: var(--player-avatar-sm) !important;
        min-width: var(--player-avatar-sm) !important;
        min-height: var(--player-avatar-sm) !important;
        max-width: var(--player-avatar-sm) !important;
        max-height: var(--player-avatar-sm) !important;
        flex-basis: var(--player-avatar-sm) !important;
    }
}

@media (max-width: 420px) {
    body.app-player .ui-responsive-data-card-row {
        grid-template-columns: 1fr;
        gap: 0.1rem;
    }

    body.app-player .nav-link {
        padding-inline: 0.52rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.app-player *,
    body.app-player *::before,
    body.app-player *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/** ADDED v2026-05-22.3949a: Player main nav links sit on dark header/nav surfaces and must stay white. */
body.app-player header nav a.nav-link,
body.app-player nav a.nav-link {
    color: var(--color-white) !important;
}

body.app-player header nav a.nav-link:visited,
body.app-player nav a.nav-link:visited {
    color: var(--color-white) !important;
}

body.app-player header nav a.nav-link:hover,
body.app-player nav a.nav-link:hover,
body.app-player header nav a.nav-link:focus-visible,
body.app-player nav a.nav-link:focus-visible {
    color: var(--color-accent) !important;
}

/* ADDED v2026-05-22.3951: admin/player normalization for roster/member data displays. */
:root {
    --ui-table-cell-pad-y: 0.42rem;
    --ui-table-cell-pad-x: 0.55rem;
    --ui-card-radius: 0.7rem;
}
body.app-admin .admin-table-scroll,
body.app-admin .ui-admin-table-scroll,
body.app-admin .ui-data-table-card {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}
body.app-admin table.ui-admin-table,
body.app-admin table.admin-table,
body.app-admin .ui-data-table-card table {
    width: max-content;
    min-width: 100%;
    max-width: none;
    border-collapse: collapse;
    table-layout: auto;
}
body.app-admin table.ui-admin-table th,
body.app-admin table.admin-table th,
body.app-admin table.ui-admin-table td,
body.app-admin table.admin-table td {
    padding: var(--ui-table-cell-pad-y) var(--ui-table-cell-pad-x);
    overflow-wrap: normal;
    word-break: normal;
    vertical-align: top;
}
body.app-player .ui-responsive-data-display,
body.app-player .player-card,
body.app-player .ui-player-card,
body.app-player details.ui-player-details-card {
    max-width: 100%;
    box-sizing: border-box;
}
body.app-player .ui-responsive-data-card,
body.app-player .team-roster-member-card {
    border: 1px solid var(--player-border-soft, #d9e6dc);
    border-radius: var(--ui-card-radius);
    background: var(--player-surface, #fff);
    padding: 0.65rem 0.75rem;
}
body.app-player .team-roster-member-card + .team-roster-member-card {
    margin-top: 0.45rem;
}
body.app-player details > summary {
    word-break: normal;
    overflow-wrap: break-word;
}
@media (max-width: 720px) {
    body.app-player .ui-responsive-data-table {
        display: none;
    }
    body.app-player .ui-responsive-data-cards {
        display: grid;
        gap: 0.55rem;
    }
}
@media (min-width: 721px) {
    body.app-player .ui-responsive-data-cards {
        display: none;
    }
}

/* ADDED v2026-05-22.3952: player-facing theme cleanup. */
body.app-player .ui-player-page,
body.player .ui-player-page {
    max-width: min(100%, 72rem);
    margin-inline: auto;
}

body.app-player .ui-responsive-data-display table,
body.player .ui-responsive-data-display table {
    border-collapse: separate;
    border-spacing: 0;
}

@media (max-width: 760px) {
    body.app-player .ui-responsive-data-display,
    body.player .ui-responsive-data-display {
        overflow-x: visible;
    }
}

/* ADDED v2026-05-22.3954: Player-release polish for normalized roster/substitute read models. */
body.app-player .player-normalized-roster-section .player-release-note {
    margin: 0.65rem 0 0.85rem;
    color: var(--player-muted);
}

body.app-player .player-roster-summary-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-block: 0.65rem 0.9rem;
}

body.app-player .player-roster-summary-strip > span {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    min-height: 2rem;
    padding: 0.28rem 0.55rem;
    border: 1px solid var(--player-border-soft);
    border-radius: 999px;
    background: var(--player-surface-muted);
    font-size: 0.94rem;
}

body.app-player .player-normalized-roster-group {
    margin-block: 0.75rem;
}

body.app-player .player-normalized-roster-group h4 {
    margin: 0 0 0.45rem;
    font-size: 1rem;
}

body.app-player .player-normalized-roster-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
    gap: 0.45rem;
}

body.app-player .player-normalized-roster-pill {
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
    min-width: 0;
    padding: 0.5rem 0.6rem;
    border: 1px solid var(--player-border-soft);
    border-radius: var(--player-radius-md);
    background: var(--player-surface-muted);
}

body.app-player .player-normalized-roster-name {
    font-weight: 700;
}

body.app-player .player-normalized-roster-meta {
    color: var(--player-muted);
    font-size: 0.88rem;
    overflow-wrap: anywhere;
}

body.app-player .match-layout-table {
    width: 100%;
}

body.app-player .matches-pool-table-wrap {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: var(--player-radius-md);
}


body.app-player .matches-table--current-player-pool td {
    background-color: #f7f7f7 !important; /** CHANGED v2026-06-06.7668: apply current-pool cue only to data cells so Pool header rows keep normal th styling. */
}

body.app-player .matches-table--current-player-pool tr.component-player-match-row--current-player-match td {
    background-color: #eeeeee !important; /** ADDED v2026-06-10.8253: logged-in player's own matches get a slightly darker grey than the current-pool cue. */
}

body.app-player .matches-table--current-player-pool td.pending-game-change-cell {
    background-color: #fef3c7 !important; /** CHANGED v2026-06-08.8033: unique pending amber avoids forfeit/void/single-player colour confusion. */
}

body.app-player .matches-table--current-player-pool td.pending-game-change-requires-my-approval {
    background-color: #fcd34d !important; /** CHANGED v2026-06-08.8033: clickable pending uses darker shade of pending amber. */
    box-shadow: inset 0 0 0 3px rgba(180, 83, 9, 0.50) !important;
}
body.app-player .matches-table-team-cell {
    min-width: 11rem;
}

body.app-player .input-score {
    min-width: 2.7rem;
    text-align: center;
}

@media (max-width: 640px) {
    body.app-player .player-roster-summary-strip {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.app-player .player-roster-summary-strip > span {
        justify-content: center;
        border-radius: var(--player-radius-md);
    }

    body.app-player .matches-table-game {
        min-width: 3.3rem;
    }

    body.app-player .team-profile-icon-link {
        min-width: 1.7rem;
        min-height: 1.7rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin-right: 0.25rem;
    }
}

/* ADDED v2026-05-22.3955: Player-facing release normalization pass. */
body.app-player {
    --player-release-gap-xs: 0.28rem;
    --player-release-gap-sm: 0.45rem;
    --player-release-gap-md: 0.7rem;
    --player-release-touch-min: 2.4rem;
    --player-release-table-cell-y: 0.42rem;
    --player-release-table-cell-x: 0.5rem;
}

body.app-player .mainbody {
    max-width: min(100%, 78rem);
}

body.app-player .player-page-container,
body.app-player .player-normalized-page,
body.app-player .player-team-profile-page {
    width: min(100%, 78rem);
    margin-inline: auto;
}

body.app-player .table-container,
body.app-player .stats-table-container,
body.app-player .matches-pool-table-wrap,
body.app-player .player-table-scroll {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

body.app-player table th,
body.app-player table td {
    padding-block: var(--player-release-table-cell-y);
    padding-inline: var(--player-release-table-cell-x);
    vertical-align: middle;
}

body.app-player .nav-link,
body.app-player button,
body.app-player input[type='submit'],
body.app-player input[type='button'],
body.app-player .team-profile-icon-link,
body.app-player .manage-match-link,
body.app-player .player-button,
body.app-player .ui-player-button {
    min-height: var(--player-release-touch-min);
}

body.app-player .team-player-list-normalized {
    display: inline-flex;
    flex-direction: column;
    gap: 0.12rem;
    min-width: 0;
}

body.app-player .team-player-list-inline {
    display: inline;
}

body.app-player .team-player-line-normalized {
    min-width: 0;
    overflow-wrap: normal;
    word-break: normal;
}

body.app-player .player-roster-sub-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 0.4rem;
    padding: 0.08rem 0.45rem;
    border: 1px solid var(--player-border-soft, #d9e6dc);
    border-radius: 999px;
    background: var(--player-surface-muted, #f7fbf8);
    color: var(--player-muted, #50675a);
    font-size: 0.78rem;
    font-weight: 700;
    white-space: nowrap;
}

body.app-player .player-normalized-roster-section {
    border-color: var(--player-border-soft, #d9e6dc);
}

body.app-player .player-normalized-roster-section .player-release-note {
    max-width: 68ch;
}

body.app-player .player-normalized-roster-list {
    align-items: stretch;
}

body.app-player .player-normalized-roster-pill a {
    min-height: 1.6rem;
}

@media (max-width: 760px) {
    body.app-player .mainbody {
        padding-inline: 0.45rem;
    }

    body.app-player h2,
    body.app-player .page-title {
        line-height: 1.18;
    }

    body.app-player table th,
    body.app-player table td {
        padding-block: 0.36rem;
        padding-inline: 0.38rem;
        font-size: 0.92rem;
    }

    body.app-player .team-player-list-normalized {
        gap: 0.05rem;
    }

    body.app-player .player-roster-sub-count {
        margin-left: 0;
        margin-top: 0.18rem;
        width: fit-content;
    }

    body.app-player .stats-team-cell,
    body.app-player .matches-table-team-cell,
    body.app-player .team-profile-linked-roster {
        min-width: 10.5rem;
    }
}


/* STEP3956: player mobile What's New release hotfix. Keep controls visible. */
body.app-player .swal2-popup.changelog-alert-popup {
  max-height: min(94dvh, 42rem) !important;
}

body.app-player .swal2-popup.changelog-alert-popup .changelog-alert-header {
  margin-block: 0 0.5rem !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

body.app-player .swal2-popup.changelog-alert-popup .changelog-alert-disable-row {
  margin: 0 !important;
  padding: 0 !important;
}

body.app-player .swal2-popup.changelog-alert-popup .changelog-alert-scroll {
  max-height: min(46dvh, 24rem) !important;
}

@media (max-width: 600px) {
  body.app-player .swal2-popup.changelog-alert-popup {
    width: calc(100vw - 1rem) !important;
    max-height: 94dvh !important;
    padding-block-start: 1.25rem !important;
    padding-block-end: 0.9rem !important;
  }

  body.app-player .swal2-popup.changelog-alert-popup .swal2-icon {
    margin-block-end: 0.45rem !important;
  }

  body.app-player .swal2-popup.changelog-alert-popup .changelog-alert-scroll {
    max-height: 42dvh !important;
  }

  body.app-player .swal2-popup.changelog-alert-popup .swal2-actions,
  body.app-player .swal2-popup.changelog-alert-popup .changelog-alert-actions {
    margin-block-start: 0.65rem !important;
  }
}


/* ADDED v2026-05-22.3958: Player-release hotfixes for mobile/nav/layout regressions. */
body.app-player nav {
    width: 100%;
    max-width: none;
}

body.app-player .nav-primary-row,
body.app-player .nav-secondary-row {
    width: min(100%, var(--player-page-max-width));
    margin-inline: auto;
}

@media (max-width: 760px) {
    body.app-player nav {
        padding-inline: 0.35rem;
    }

    body.app-player .nav-primary-row,
    body.app-player .nav-secondary-row {
        display: flex;
        flex-wrap: wrap;
        justify-content: stretch;
        gap: 0.3rem;
    }

    body.app-player .nav-primary-row .nav-link {
        flex: 1 1 calc(50% - 0.3rem);
        justify-content: center;
        text-align: center;
    }

    body.app-player .nav-secondary-row .nav-link {
        flex: 1 1 auto;
        justify-content: center;
        text-align: center;
    }
}

body.app-player .matches-table-team-cell {
    line-height: 1.15;
    vertical-align: middle;
}

body.app-player .matches-table-team-cell br {
    display: block;
    content: "";
    margin: 0;
    line-height: 0.15;
}

body.app-player .matches-team-profile-line,
body.app-player .matches-team-display {
    display: inline-flex;
    align-items: center;
    gap: 0.18rem;
    line-height: 1.15;
    margin: 0;
    padding: 0;
}

body.app-player .matches-table-team-cell .team-player-list {
    gap: 0;
    line-height: 1.12;
}

body.app-player .matches-table-team-cell .team-player-line {
    line-height: 1.12;
}

body.app-player .calendar-team-legend {
    gap: 0;
    padding-block: 0;
}

body.app-player .calendar-team-legend-line,
body.app-player .component-calendar-team-legend-row {
    display: grid;
    grid-template-columns: minmax(2rem, auto) minmax(8rem, 1fr) minmax(8rem, 1fr);
    align-items: center;
    column-gap: 0.45rem;
    row-gap: 0;
    line-height: 1.12;
    padding-block: 0;
    margin-block: 0;
}

body.app-player .calendar-team-legend-team-cell,
body.app-player .calendar-team-legend-player-cell {
    min-width: 0;
    line-height: 1.12;
}

body.app-player .calendar-team-legend-player {
    display: inline-flex;
    align-items: center;
    gap: 0.22rem;
    min-width: 0;
    line-height: 1.12;
}

@media (max-width: 560px) {
    body.app-player .calendar-team-legend-line,
    body.app-player .component-calendar-team-legend-row {
        grid-template-columns: minmax(2rem, auto) minmax(0, 1fr) minmax(0, 1fr);
        column-gap: 0.3rem;
        font-size: 0.92rem;
    }
}

body.app-player .explainstats {
    color: #fff !important;
}


/* ADDED v2026-05-22.3959: Player release hotfix for nav density, match team spacing, and team-icon alignment. */
body.app-player nav {
    width: 100%;
    max-width: none;
    padding-inline: clamp(0.35rem, 1.4vw, 0.9rem);
}
body.app-player nav .nav-primary-row,
body.app-player nav .nav-secondary-row,
body.app-player nav .nav-tertiary-row {
    width: 100%;
    justify-content: center;
    gap: 0.18rem 0.24rem;
}
body.app-player nav a.nav-link,
body.app-player .nav-link {
    min-height: 2rem;
    padding: 0.28rem 0.46rem;
    margin-inline: 0 !important;
}
body.app-player .app-link-group {
    gap: 0.24rem;
    margin-left: 0.2rem;
}
body.app-player .matches-table-team-cell {
    padding-top: 0.2rem !important;
    padding-bottom: 0.2rem !important;
    line-height: 1.12;
}
body.app-player .matches-team-stack {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.03rem;
    align-items: start;
    margin: 0;
    padding: 0;
}
body.app-player .matches-team-row {
    display: flex;
    align-items: center;
    gap: 0.24rem;
    min-height: 0;
    margin: 0;
    padding: 0;
    line-height: 1.12;
}
body.app-player .matches-team-row .handlematch {
    margin-left: auto;
    align-self: center;
}
body.app-player .matches-team-profile-line,
body.app-player .matches-team-display,
body.app-player .team-profile-name-with-icon,
body.app-player .team-profile-linked-team {
    display: inline-flex;
    align-items: center;
    gap: 0.08rem;
    line-height: 1.12;
    margin: 0;
    padding: 0;
}
body.app-player .matches-team-profile-line .team-profile-icon-link,
body.app-player .team-profile-name-with-icon .team-profile-icon-link,
body.app-player .team-profile-linked-team .team-profile-icon-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    float: none !important;
    align-self: center;
    line-height: 1;
    min-width: 0.9rem;
    margin: 0 0.12rem 0 0;
}
@media (max-width: 720px) {
    body.app-player nav {
        padding-inline: 0.25rem;
    }
    body.app-player nav .nav-primary-row,
    body.app-player nav .nav-secondary-row,
    body.app-player nav .nav-tertiary-row {
        justify-content: space-evenly;
        gap: 0.12rem 0.16rem;
    }
    body.app-player nav a.nav-link,
    body.app-player .nav-link {
        min-height: 1.9rem;
        padding: 0.24rem 0.34rem;
        font-size: 0.92rem;
    }
    body.app-player .matches-team-stack {
        gap: 0;
    }
}

/* ADDED v2026-05-22.3960: Player hotfix for compact nav, matches table width, team-icon alignment, and calendar legend grid alignment. */
body.app-player header nav,
body.app-player nav {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
    padding-inline: clamp(0.2rem, 0.8vw, 0.55rem) !important;
}
body.app-player header nav .nav-primary-row,
body.app-player header nav .nav-secondary-row,
body.app-player header nav .nav-tertiary-row,
body.app-player nav .nav-primary-row,
body.app-player nav .nav-secondary-row,
body.app-player nav .nav-tertiary-row {
    width: 100% !important;
    justify-content: center !important;
    gap: 0.08rem 0.12rem !important;
}
body.app-player header nav a.nav-link,
body.app-player nav a.nav-link,
body.app-player .nav-link {
    margin-inline: 0 !important;
    padding: 0.22rem 0.34rem !important;
    min-height: 1.85rem !important;
    line-height: 1.05 !important;
}
body.app-player .app-link-group {
    gap: 0.12rem !important;
    margin-left: 0.12rem !important;
}

body.app-player .matches-pool-table-wrap {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
body.app-player table.matches-table,
body.app-player .matches-table.match-layout-table {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
}
body.app-player .matches-table th.matches-table-team,
body.app-player .matches-table td.matches-table-team-cell {
    width: 46% !important;
    max-width: 46% !important;
    min-width: 0 !important;
    overflow-wrap: anywhere;
}
body.app-player .matches-table th.matches-table-game,
body.app-player .matches-table td.matches-table-game {
    width: 18% !important;
    max-width: 18% !important;
    min-width: 0 !important;
}
body.app-player .matches-pool-heading-cell {
    white-space: normal !important;
    line-height: 1.05 !important;
}
body.app-player .matches-pool-heading-label {
    white-space: nowrap;
}
body.app-player .matches-table input[type="text"],
body.app-player .matches-table input[type="number"],
body.app-player .matches-table select {
    max-width: 100%;
    box-sizing: border-box;
}
body.app-player .matches-team-stack {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    line-height: 1.05 !important;
}
body.app-player .matches-team-row {
    display: flex !important;
    align-items: flex-start !important;
    min-height: 0 !important;
    line-height: 1.05 !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.app-player .matches-team-row + .matches-team-row {
    margin-top: 0.08rem !important;
}
body.app-player .matches-team-profile-line,
body.app-player .matches-team-display,
body.app-player .team-profile-name-with-icon,
body.app-player .team-profile-linked-team {
    display: inline-flex !important;
    align-items: flex-start !important;
    gap: 0.1rem !important;
    line-height: 1.05 !important;
}
body.app-player .stats-team-cell .team-profile-name-with-icon {
    display: inline-grid !important;
    grid-template-columns: 1rem minmax(0, 1fr) !important;
    column-gap: 0.15rem !important;
    align-items: start !important;
}
body.app-player .team-profile-icon-link,
body.app-player .matches-team-profile-line .team-profile-icon-link,
body.app-player .team-profile-name-with-icon .team-profile-icon-link,
body.app-player .team-profile-linked-team .team-profile-icon-link,
body.app-player .calendar-team-legend .team-profile-icon-link {
    display: inline-flex !important;
    float: none !important;
    align-items: center !important;
    justify-content: center !important;
    width: 0.95rem !important;
    min-width: 0.95rem !important;
    max-width: 0.95rem !important;
    height: 1.05em !important;
    margin: 0 0.1rem 0 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    vertical-align: top !important;
}
body.app-player .team-player-list,
body.app-player .team-player-list-normalized {
    display: inline-flex !important;
    flex-direction: column !important;
    gap: 0 !important;
    min-width: 0 !important;
    line-height: 1.05 !important;
}
body.app-player .team-player-line {
    line-height: 1.05 !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.app-player .calendar-team-legend {
    display: grid !important;
    grid-template-columns: max-content minmax(7rem, max-content) minmax(7rem, max-content) !important;
    column-gap: 0.4rem !important;
    row-gap: 0 !important;
    align-items: center !important;
    max-width: 100% !important;
    margin: 0.15rem 0 0.35rem !important;
    padding: 0 !important;
}
body.app-player .calendar-team-legend-line,
body.app-player .component-calendar-team-legend-row {
    display: contents !important;
}
body.app-player .calendar-team-legend-team-cell,
body.app-player .calendar-team-legend-player-cell {
    display: flex !important;
    align-items: center !important;
    min-height: 1.15rem !important;
    line-height: 1.05 !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0 !important;
}
body.app-player .calendar-team-legend-player {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.18rem !important;
    min-width: 0 !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
}
body.app-player .calendar-team-legend-swatch {
    width: 0.95rem !important;
    min-width: 0.95rem !important;
    height: 0.72rem !important;
}
@media (max-width: 720px) {
    body.app-player header nav a.nav-link,
    body.app-player nav a.nav-link,
    body.app-player .nav-link {
        padding: 0.2rem 0.24rem !important;
        font-size: 0.88rem !important;
    }
    body.app-player .calendar-team-legend {
        grid-template-columns: max-content minmax(0, 1fr) minmax(0, 1fr) !important;
        column-gap: 0.28rem !important;
    }
}

/* ADDED v2026-05-22.3961: player release hotfix for urgent checkbox, nav density, matches layout, team-icon alignment, and calendar legend table. */
body.app-player .feedback-urgent-checkbox {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.35rem !important;
    line-height: 1.2 !important;
    white-space: normal !important;
}
body.app-player .feedback-urgent-checkbox input[type="checkbox"] {
    flex: 0 0 auto !important;
    margin: 0 !important;
}

body.app-player header nav,
body.app-player nav {
    width: 100% !important;
    max-width: none !important;
    padding-inline: 0.15rem !important;
}
body.app-player header nav .nav-primary-row,
body.app-player header nav .nav-secondary-row,
body.app-player header nav .nav-tertiary-row,
body.app-player nav .nav-primary-row,
body.app-player nav .nav-secondary-row,
body.app-player nav .nav-tertiary-row {
    width: 100% !important;
    justify-content: center !important;
    gap: 0.04rem 0.06rem !important;
}
body.app-player header nav a.nav-link,
body.app-player nav a.nav-link,
body.app-player .nav-link {
    margin: 0 !important;
    padding: 0.18rem 0.24rem !important;
    min-height: 1.7rem !important;
    line-height: 1.05 !important;
}
@media (max-width: 720px) {
    body.app-player header nav a.nav-link,
    body.app-player nav a.nav-link,
    body.app-player .nav-link {
        padding: 0.16rem 0.18rem !important;
        font-size: 0.86rem !important;
    }
}

body.app-player .matches-pool-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
}
body.app-player table.matches-table.match-layout-table,
body.app-player .matches-table.match-layout-table {
    width: 100% !important;
    min-width: 22rem !important;
    max-width: 100% !important;
    table-layout: fixed !important;
}
body.app-player .matches-table.match-layout-table th.matches-table-game,
body.app-player .matches-table.match-layout-table td.align-middle:not(.matches-table-team-cell) {
    width: 3.15rem !important;
    min-width: 3.15rem !important;
    max-width: 3.15rem !important;
    white-space: nowrap !important;
    text-align: center !important;
    padding-left: 0.12rem !important;
    padding-right: 0.12rem !important;
}
body.app-player .matches-table.match-layout-table th.matches-table-team,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    white-space: normal !important;
    overflow: hidden !important;
}
body.app-player .matches-table.match-layout-table .input-score,
body.app-player .matches-table.match-layout-table input.input-score,
body.app-player .matches-table.match-layout-table span.input-score {
    width: 2.35rem !important;
    min-width: 2.35rem !important;
    max-width: 2.35rem !important;
    box-sizing: border-box !important;
    text-align: center !important;
}
body.app-player .matches-team-stack {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.08rem !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.08 !important;
}
body.app-player .matches-team-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) max-content !important;
    align-items: center !important;
    column-gap: 0.25rem !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.08 !important;
}
body.app-player .matches-team-row-2 {
    grid-template-columns: minmax(0, 1fr) !important;
}
body.app-player .matches-team-main,
body.app-player .matches-team-profile-line,
body.app-player .team-profile-name-with-icon,
body.app-player .team-profile-linked-team {
    display: inline-grid !important;
    grid-template-columns: 1rem minmax(0, 1fr) !important;
    column-gap: 0.14rem !important;
    align-items: center !important;
    min-width: 0 !important;
    max-width: 100% !important;
    line-height: 1.08 !important;
}
body.app-player .matches-team-main > .team-profile-name-with-icon {
    display: grid !important;
}
body.app-player .team-profile-name-with-icon-inline .team-profile-inline-roster,
body.app-player .team-profile-name-with-icon-stacked .team-player-list,
body.app-player .team-profile-linked-roster {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
body.app-player .team-profile-icon-link,
body.app-player .matches-team-profile-line .team-profile-icon-link,
body.app-player .team-profile-name-with-icon .team-profile-icon-link,
body.app-player .team-profile-linked-team .team-profile-icon-link {
    display: inline-flex !important;
    float: none !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    width: 0.95rem !important;
    min-width: 0.95rem !important;
    max-width: 0.95rem !important;
    height: 1.05em !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    vertical-align: middle !important;
}
body.app-player .matches-manage-link,
body.app-player .matches-team-row .handlematch {
    justify-self: end !important;
    align-self: center !important;
    float: none !important;
    margin: 0 !important;
    padding-left: 0.2rem !important;
}
body.app-player .team-player-list,
body.app-player .team-player-list-normalized {
    display: inline-flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 0 !important;
    line-height: 1.08 !important;
}
body.app-player .team-player-line {
    line-height: 1.08 !important;
}

body.app-player table.calendar-team-legend-table,
body.app-player .calendar-team-legend-table {
    display: table !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    border-collapse: collapse !important;
    table-layout: auto !important;
    margin: 0.15rem 0 0.35rem !important;
    padding: 0 !important;
}
body.app-player .calendar-team-legend-table tr.calendar-team-legend-line {
    display: table-row !important;
}
body.app-player .calendar-team-legend-table td.calendar-team-legend-team-cell,
body.app-player .calendar-team-legend-table td.calendar-team-legend-player-cell {
    display: table-cell !important;
    vertical-align: middle !important;
    padding: 0 0.4rem 0.04rem 0 !important;
    line-height: 1.08 !important;
    white-space: nowrap !important;
}
body.app-player .calendar-team-legend-table td.calendar-team-legend-team-cell {
    width: 1rem !important;
    min-width: 1rem !important;
    max-width: 1rem !important;
    padding-right: 0.18rem !important;
}
body.app-player .calendar-team-legend-player {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.18rem !important;
    line-height: 1.08 !important;
    white-space: nowrap !important;
}
body.app-player .calendar-team-legend-swatch {
    flex: 0 0 auto !important;
    width: 0.95rem !important;
    min-width: 0.95rem !important;
    height: 0.72rem !important;
}
@media (max-width: 720px) {
    body.app-player .calendar-team-legend-table td.calendar-team-legend-player-cell {
        padding-right: 0.25rem !important;
    }
}

/* ADDED v2026-05-22.3962: Player hotfix rollback/override for feedback, matches, teams, calendar, and nav density. */
body.app-player .player-feedback-form-table td,
body.app-player .player-feedback-form-table .ui-player-form-control,
body.app-player .player-feedback-form-table .ui-form-control {
    width: 100% !important;
}
body.app-player .feedback-urgent-checkbox {
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr) !important;
    align-items: center !important;
    justify-content: start !important;
    column-gap: 0.45rem !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    text-align: left !important;
}
body.app-player .feedback-urgent-checkbox input[type="checkbox"] {
    grid-column: 1 !important;
    justify-self: start !important;
    margin: 0 !important;
}
body.app-player .feedback-urgent-checkbox span {
    grid-column: 2 !important;
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-align: left !important;
}
body.app-player header nav,
body.app-player nav {
    width: 100% !important;
    max-width: none !important;
}
body.app-player header nav :where(.nav-primary-row,.nav-secondary-row,.nav-tertiary-row),
body.app-player nav :where(.nav-primary-row,.nav-secondary-row,.nav-tertiary-row) {
    gap: 0.04rem 0.08rem !important;
}
body.app-player header nav a.nav-link,
body.app-player nav a.nav-link,
body.app-player .nav-link {
    padding: 0.2rem 0.28rem !important;
    margin: 0 !important;
}
body.app-player .matches-pool-table-wrap {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
}
body.app-player table.matches-table.match-layout-table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
}
body.app-player table.matches-table.match-layout-table col.matches-col-game {
    width: 3.65rem !important;
    min-width: 3.65rem !important;
}
body.app-player table.matches-table.match-layout-table col.matches-col-team {
    width: auto !important;
}
body.app-player .matches-table.match-layout-table th.matches-table-game,
body.app-player .matches-table.match-layout-table td.align-middle,
body.app-player .matches-table.match-layout-table td.pending-game-change-cell {
    width: 3.65rem !important;
    min-width: 3.65rem !important;
    max-width: 3.65rem !important;
    padding-left: 0.12rem !important;
    padding-right: 0.12rem !important;
    text-align: center !important;
    vertical-align: middle !important;
}
body.app-player .matches-table.match-layout-table th.matches-table-team,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    padding-top: 0.16rem !important;
    padding-bottom: 0.16rem !important;
    vertical-align: middle !important;
}
body.app-player .matches-table.match-layout-table .input-score,
body.app-player .matches-table.match-layout-table input.input-score,
body.app-player .matches-table.match-layout-table span.input-score {
    display: inline-block !important;
    width: 2.65rem !important;
    min-width: 2.65rem !important;
    max-width: 2.65rem !important;
    box-sizing: border-box !important;
    text-align: center !important;
}
body.app-player .matches-team-stack {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.05rem !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.1 !important;
}
body.app-player .matches-team-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) max-content !important;
    align-items: center !important;
    column-gap: 0.25rem !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.1 !important;
}
body.app-player .matches-team-row-2 {
    grid-template-columns: minmax(0, 1fr) !important;
}
body.app-player .matches-team-main,
body.app-player .matches-team-profile-line,
body.app-player .matches-team-display,
body.app-player .team-profile-name-with-icon,
body.app-player .team-profile-linked-team {
    display: inline-grid !important;
    grid-template-columns: 1rem minmax(0, max-content) !important;
    align-items: center !important;
    column-gap: 0.16rem !important;
    min-width: 0 !important;
    max-width: 100% !important;
    line-height: 1.1 !important;
    white-space: normal !important;
    overflow: visible !important;
}
body.app-player .matches-team-main > .team-profile-name-with-icon {
    display: inline-grid !important;
}
body.app-player .team-profile-name-with-icon-inline .team-profile-inline-roster,
body.app-player .team-profile-name-with-icon-normalized .team-player-list,
body.app-player .team-profile-name-with-icon-stacked .team-player-list,
body.app-player .team-profile-linked-roster {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
    text-overflow: clip !important;
}
body.app-player .team-profile-name-with-icon-inline .team-profile-inline-roster {
    white-space: normal !important;
}
body.app-player .team-player-list,
body.app-player .team-player-list-normalized {
    display: inline-flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 0 !important;
    line-height: 1.1 !important;
}
body.app-player .team-player-line,
body.app-player .team-player-line-normalized {
    line-height: 1.1 !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.app-player .team-profile-icon-link,
body.app-player .matches-team-profile-line .team-profile-icon-link,
body.app-player .team-profile-name-with-icon .team-profile-icon-link,
body.app-player .team-profile-linked-team .team-profile-icon-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    justify-self: center !important;
    width: 1rem !important;
    min-width: 1rem !important;
    max-width: 1rem !important;
    height: 1.1em !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
    vertical-align: middle !important;
}
body.app-player .matches-manage-link,
body.app-player .matches-team-row .handlematch {
    justify-self: end !important;
    align-self: center !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
}
body.app-player .stats-team-cell > .team-profile-name-with-icon,
body.app-player .stats-team-cell .team-profile-name-with-icon-normalized {
    display: inline-grid !important;
    grid-template-columns: 1rem minmax(0, 1fr) !important;
    align-items: center !important;
    column-gap: 0.18rem !important;
}
body.app-player table.calendar-team-legend-table,
body.app-player .calendar-team-legend-table,
body.app-player .calendar-team-legend-table tbody,
body.app-player .calendar-team-legend-table tr,
body.app-player .calendar-team-legend-table td {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background-image: none !important;
}
body.app-player .calendar-team-legend-table td.calendar-team-legend-team-cell,
body.app-player .calendar-team-legend-table td.calendar-team-legend-player-cell {
    border: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0.04rem !important;
}
@media (max-width: 720px) {
    body.app-player table.matches-table.match-layout-table col.matches-col-game {
        width: 3.45rem !important;
    }
    body.app-player .matches-table.match-layout-table th.matches-table-game,
    body.app-player .matches-table.match-layout-table td.align-middle,
    body.app-player .matches-table.match-layout-table td.pending-game-change-cell {
        width: 3.45rem !important;
        min-width: 3.45rem !important;
        max-width: 3.45rem !important;
    }
    body.app-player .matches-table.match-layout-table .input-score,
    body.app-player .matches-table.match-layout-table input.input-score,
    body.app-player .matches-table.match-layout-table span.input-score {
        width: 2.45rem !important;
        min-width: 2.45rem !important;
        max-width: 2.45rem !important;
    }
    body.app-player .feedback-urgent-checkbox span {
        font-size: 0.95rem !important;
    }
}

/* ADDED v2026-05-22.3963: player hotfix for feedback columns, match team wrapping, team-icon alignment, and compact calendar legend. */
body.app-player .player-feedback-form .ui-field-row,
body.app-player .player-feedback-form-table .ui-field-row {
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr) !important;
    align-items: center !important;
    column-gap: 0.65rem !important;
}
body.app-player .player-feedback-form .ui-field-label,
body.app-player .player-feedback-form-table .ui-field-label {
    white-space: nowrap !important;
}
body.app-player .player-feedback-form .ui-field-row-control,
body.app-player .player-feedback-form-table .ui-field-row-control {
    min-width: 0 !important;
    width: 100% !important;
}
body.app-player .feedback-urgent-checkbox {
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr) !important;
    justify-content: stretch !important;
    align-items: center !important;
    width: 100% !important;
    column-gap: 0.45rem !important;
}
body.app-player .feedback-urgent-checkbox input[type="checkbox"] {
    justify-self: start !important;
    align-self: center !important;
    margin: 0 !important;
}
body.app-player .feedback-urgent-checkbox span {
    min-width: 0 !important;
    width: 100% !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

body.app-player table.matches-table.match-layout-table {
    width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
}
body.app-player table.matches-table.match-layout-table col.matches-col-game {
    width: 4.25rem !important;
    min-width: 4.25rem !important;
}
body.app-player table.matches-table.match-layout-table col.matches-col-team {
    width: auto !important;
}
body.app-player .matches-table.match-layout-table th.matches-table-game,
body.app-player .matches-table.match-layout-table td.align-middle,
body.app-player .matches-table.match-layout-table td.pending-game-change-cell {
    width: 4.25rem !important;
    min-width: 4.25rem !important;
    max-width: 4.25rem !important;
    box-sizing: border-box !important;
    padding-inline: 0.18rem !important;
    text-align: center !important;
    vertical-align: middle !important;
}
body.app-player .matches-table.match-layout-table th.matches-table-team,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box !important;
    vertical-align: middle !important;
    padding-block: 0.16rem !important;
}
body.app-player .matches-table.match-layout-table .input-score,
body.app-player .matches-table.match-layout-table input.input-score,
body.app-player .matches-table.match-layout-table span.input-score {
    width: 2.9rem !important;
    min-width: 2.9rem !important;
    max-width: 2.9rem !important;
    box-sizing: border-box !important;
    text-align: center !important;
}
body.app-player .matches-team-stack {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.04rem !important;
    min-width: 0 !important;
    width: 100% !important;
    line-height: 1.15 !important;
}
body.app-player .matches-team-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) max-content !important;
    align-items: center !important;
    column-gap: 0.35rem !important;
    min-width: 0 !important;
    min-height: 0 !important;
    line-height: 1.15 !important;
}
body.app-player .matches-team-row-2 {
    grid-template-columns: minmax(0, 1fr) !important;
}
body.app-player .matches-team-main,
body.app-player .matches-team-profile-line,
body.app-player .matches-team-display,
body.app-player .team-profile-name-with-icon,
body.app-player .team-profile-name-with-icon-inline,
body.app-player .team-profile-name-with-icon-stacked,
body.app-player .team-profile-linked-team {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.25rem !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    line-height: 1.15 !important;
}
body.app-player .team-profile-inline-roster,
body.app-player .team-profile-linked-roster,
body.app-player .team-player-list,
body.app-player .team-player-list-normalized {
    display: inline-flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 0.18rem !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}
body.app-player .team-profile-name-with-icon-stacked .team-player-list {
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 0 !important;
}
body.app-player .team-player-line,
body.app-player .team-player-line-normalized,
body.app-player .team-profile-inline-roster a,
body.app-player .team-player-list a,
body.app-player .matches-table-team-cell a {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    line-height: 1.15 !important;
}
body.app-player .team-profile-icon-link,
body.app-player .team-profile-name-with-icon .team-profile-icon-link,
body.app-player .team-profile-linked-team .team-profile-icon-link {
    flex: 0 0 1.15rem !important;
    width: 1.15rem !important;
    min-width: 1.15rem !important;
    height: 1.15rem !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    vertical-align: middle !important;
}
body.app-player .matches-manage-link,
body.app-player .matches-team-row .handlematch {
    justify-self: end !important;
    align-self: center !important;
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.app-player .matches-team-row { outline: 1px dotted rgba(0, 0, 255, 0.55) !important; }
body.app-player .matches-team-profile-line { outline: 1px dotted rgba(255, 128, 0, 0.75) !important; }
body.app-player .team-profile-inline-roster,
body.app-player .team-player-list { outline: 1px dotted rgba(128, 0, 128, 0.75) !important; }

body.app-player table.calendar-team-legend-table,
body.app-player .calendar-team-legend-table {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    width: auto !important;
    margin-block: 0.2rem !important;
}
body.app-player .calendar-team-legend-table tr.calendar-team-legend-line {
    line-height: 1.05 !important;
}
body.app-player .calendar-team-legend-table td.calendar-team-legend-team-cell,
body.app-player .calendar-team-legend-table td.calendar-team-legend-player-cell {
    border: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0.12rem !important;
    padding-right: 0.35rem !important;
    line-height: 1.05 !important;
    vertical-align: middle !important;
}
body.app-player .calendar-team-legend-player {
    line-height: 1.05 !important;
}
body.app-player .calendar-team-legend-swatch {
    width: 0.85rem !important;
    min-width: 0.85rem !important;
    height: 0.62rem !important;
}

@media (max-width: 720px) {
    body.app-player .player-feedback-form .ui-field-row,
    body.app-player .player-feedback-form-table .ui-field-row {
        grid-template-columns: max-content minmax(0, 1fr) !important;
    }
    body.app-player table.matches-table.match-layout-table col.matches-col-game {
        width: 4rem !important;
        min-width: 4rem !important;
    }
    body.app-player .matches-table.match-layout-table th.matches-table-game,
    body.app-player .matches-table.match-layout-table td.align-middle,
    body.app-player .matches-table.match-layout-table td.pending-game-change-cell {
        width: 4rem !important;
        min-width: 4rem !important;
        max-width: 4rem !important;
    }
    body.app-player .matches-table.match-layout-table .input-score,
    body.app-player .matches-table.match-layout-table input.input-score,
    body.app-player .matches-table.match-layout-table span.input-score {
        width: 2.75rem !important;
        min-width: 2.75rem !important;
        max-width: 2.75rem !important;
    }
}

/* ADDED v2026-05-22.3964: player-release hotfix for nav density, matches score/team layout, Teams icon alignment, compact calendar rows, and feedback form columns. */
body.app-player header nav,
body.app-player nav {
    width: 100% !important;
    max-width: none !important;
    padding-inline: 0.25rem !important;
}
body.app-player header nav :where(.nav-primary-row,.nav-secondary-row,.nav-tertiary-row),
body.app-player nav :where(.nav-primary-row,.nav-secondary-row,.nav-tertiary-row) {
    gap: 0.02rem 0.06rem !important;
    justify-content: flex-start !important;
}
body.app-player header nav a.nav-link,
body.app-player nav a.nav-link,
body.app-player .nav-link {
    min-height: 1.75rem !important;
    padding: 0.12rem 0.24rem !important;
    margin: 0 !important;
    border-radius: 0.45rem !important;
    line-height: 1.05 !important;
}

body.app-player table.matches-table.match-layout-table {
    width: 100% !important;
    table-layout: fixed !important;
}
body.app-player table.matches-table.match-layout-table col.matches-col-game {
    width: 3.1rem !important;
    min-width: 3.1rem !important;
    max-width: 3.1rem !important;
}
body.app-player table.matches-table.match-layout-table col.matches-col-team {
    width: auto !important;
}
body.app-player .matches-table.match-layout-table th.matches-table-game,
body.app-player .matches-table.match-layout-table td.align-middle,
body.app-player .matches-table.match-layout-table td.pending-game-change-cell {
    width: 3.1rem !important;
    min-width: 3.1rem !important;
    max-width: 3.1rem !important;
    padding-inline: 0.08rem !important;
    text-align: center !important;
    vertical-align: middle !important;
}
body.app-player .matches-table.match-layout-table .input-score,
body.app-player .matches-table.match-layout-table input.input-score,
body.app-player .matches-table.match-layout-table span.input-score {
    width: 2.15rem !important;
    min-width: 2.15rem !important;
    max-width: 2.15rem !important;
    padding-inline: 0.12rem !important;
    text-align: center !important;
}
body.app-player .matches-table.match-layout-table th.matches-table-team,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell {
    padding: 0.08rem 0.16rem !important;
    vertical-align: middle !important;
}
body.app-player .matches-team-stack {
    gap: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    line-height: 1.08 !important;
}
body.app-player .matches-team-row {
    grid-template-columns: minmax(0, 1fr) max-content !important;
    align-items: start !important;
    column-gap: 0.16rem !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    line-height: 1.08 !important;
}
body.app-player .matches-team-row + .matches-team-row {
    margin-top: 0.02rem !important;
}
body.app-player .matches-team-row-2 {
    grid-template-columns: minmax(0, 1fr) !important;
}
body.app-player .matches-team-main,
body.app-player .matches-team-profile-line,
body.app-player .team-profile-name-with-icon,
body.app-player .team-profile-name-with-icon-stacked,
body.app-player .team-profile-name-with-icon-normalized,
body.app-player .team-profile-linked-team {
    line-height: 1.08 !important;
}
body.app-player .matches-manage-link,
body.app-player .matches-team-row .handlematch {
    justify-self: end !important;
    align-self: start !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}
body.app-player .team-profile-icon-link,
body.app-player .team-profile-name-with-icon .team-profile-icon-link,
body.app-player .team-profile-linked-team .team-profile-icon-link {
    align-self: center !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
body.app-player .stats-team-cell {
    padding-block: 0.12rem !important;
}
body.app-player .stats-team-cell > .team-profile-name-with-icon,
body.app-player .stats-team-cell .team-profile-name-with-icon-normalized,
body.app-player .stats-team-cell .team-profile-name-with-icon-stacked {
    display: inline-grid !important;
    grid-template-columns: 1.15rem minmax(0, max-content) !important;
    column-gap: 0.18rem !important;
    align-items: center !important;
    line-height: 1.08 !important;
}
body.app-player .stats-team-cell .team-player-list,
body.app-player .stats-team-cell .team-player-list-normalized {
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 0 !important;
    line-height: 1.08 !important;
}
body.app-player .stats-team-cell .team-player-line,
body.app-player .stats-team-cell .team-player-line-normalized {
    line-height: 1.08 !important;
}

body.app-player table.calendar-team-legend-table,
body.app-player .calendar-team-legend-table {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    margin-block: 0.08rem !important;
}
body.app-player .calendar-team-legend-table tr.calendar-team-legend-line {
    line-height: 1 !important;
}
body.app-player .calendar-team-legend-table td.calendar-team-legend-team-cell,
body.app-player .calendar-team-legend-table td.calendar-team-legend-player-cell {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0.06rem !important;
    padding-right: 0.25rem !important;
    line-height: 1 !important;
    vertical-align: middle !important;
}
body.app-player .calendar-team-legend-player {
    line-height: 1 !important;
}

body.app-player .player-feedback-form-table {
    table-layout: auto !important;
    width: 100% !important;
}
body.app-player .player-feedback-form-table th:first-child,
body.app-player .player-feedback-form-table td:first-child {
    width: 1% !important;
    max-width: max-content !important;
    white-space: nowrap !important;
    padding-right: 0.45rem !important;
}
body.app-player .player-feedback-form-table th:nth-child(2),
body.app-player .player-feedback-form-table td:nth-child(2) {
    width: auto !important;
    min-width: 0 !important;
}
body.app-player .player-feedback-form-table :where(input[type='text'], select, textarea) {
    width: 100% !important;
}
body.app-player .feedback-urgent-checkbox {
    display: grid !important;
    grid-template-columns: max-content minmax(0, 1fr) !important;
    column-gap: 0.4rem !important;
    width: 100% !important;
    justify-content: stretch !important;
    align-items: center !important;
    text-align: left !important;
}
body.app-player .feedback-urgent-checkbox input[type='checkbox'] {
    justify-self: start !important;
    align-self: center !important;
    margin: 0 !important;
}
body.app-player .feedback-urgent-checkbox span {
    display: block !important;
    min-width: 0 !important;
    width: 100% !important;
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
}

/* Remove temporary Matches debug outlines from step 3963. */
body.app-player .matches-table-team-cell,
body.app-player .matches-team-stack,
body.app-player .matches-team-row,
body.app-player .matches-team-profile-line,
body.app-player .team-profile-inline-roster,
body.app-player .team-player-list {
    outline: 0 !important;
}

@media (max-width: 720px) {
    body.app-player header nav a.nav-link,
    body.app-player nav a.nav-link,
    body.app-player .nav-link {
        min-height: 1.7rem !important;
        padding: 0.1rem 0.22rem !important;
    }
    body.app-player table.matches-table.match-layout-table col.matches-col-game {
        width: 2.7rem !important;
        min-width: 2.7rem !important;
        max-width: 2.7rem !important;
    }
    body.app-player .matches-table.match-layout-table th.matches-table-game,
    body.app-player .matches-table.match-layout-table td.align-middle,
    body.app-player .matches-table.match-layout-table td.pending-game-change-cell {
        width: 2.7rem !important;
        min-width: 2.7rem !important;
        max-width: 2.7rem !important;
        padding-inline: 0.04rem !important;
    }
    body.app-player .matches-table.match-layout-table .input-score,
    body.app-player .matches-table.match-layout-table input.input-score,
    body.app-player .matches-table.match-layout-table span.input-score {
        width: 1.95rem !important;
        min-width: 1.95rem !important;
        max-width: 1.95rem !important;
        padding-inline: 0.08rem !important;
    }
    body.app-player .matches-table.match-layout-table th.matches-table-team,
    body.app-player .matches-table.match-layout-table td.matches-table-team-cell {
        padding: 0.05rem 0.1rem !important;
    }
    body.app-player .calendar-team-legend-table td.calendar-team-legend-team-cell,
    body.app-player .calendar-team-legend-table td.calendar-team-legend-player-cell {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        line-height: 0.98 !important;
    }
}

/* ADDED v2026-05-22.3965: player hotfix for denser mobile nav, compact matches/teams/calendar rows, and upper-right manage icon placement. */
body.app-player nav .nav-primary-row,
body.app-player nav .nav-secondary-row,
body.app-player nav .nav-tertiary-row,
body.app-player header nav .nav-primary-row,
body.app-player header nav .nav-secondary-row,
body.app-player header nav .nav-tertiary-row {
    gap: 0 !important;
    column-gap: 0 !important;
    row-gap: 0.05rem !important;
    justify-content: flex-start !important;
    align-items: center !important;
}
body.app-player nav a.nav-link,
body.app-player header nav a.nav-link,
body.app-player nav .nav-link,
body.app-player header nav .nav-link {
    padding: 0.06rem 0.14rem !important;
    margin: 0 !important;
    min-height: 0 !important;
    line-height: 1.15 !important;
}

body.app-player .matches-table.match-layout-table td.matches-table-team-cell {
    position: relative !important;
    padding: 0.02rem 1.25rem 0.02rem 0.06rem !important;
    vertical-align: top !important;
}
body.app-player .matches-table.match-layout-table .matches-team-stack,
body.app-player .matches-table.match-layout-table .matches-team-row,
body.app-player .matches-table.match-layout-table .matches-team-main,
body.app-player .matches-table.match-layout-table .matches-team-profile-line,
body.app-player .matches-table.match-layout-table .team-profile-name-with-icon,
body.app-player .matches-table.match-layout-table .team-profile-inline-roster {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.05 !important;
    min-height: 0 !important;
}
body.app-player .matches-table.match-layout-table .matches-team-row {
    display: block !important;
    width: 100% !important;
}
body.app-player .matches-table.match-layout-table .matches-manage-link,
body.app-player .matches-table.match-layout-table .handlematch.matches-manage-link {
    position: absolute !important;
    top: 0.04rem !important;
    right: 0.12rem !important;
    left: auto !important;
    display: inline-flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 1rem !important;
    height: 1rem !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    text-align: center !important;
}
body.app-player .matches-table.match-layout-table .team-profile-name-with-icon,
body.app-player .stats-team-cell > .team-profile-name-with-icon,
body.app-player .stats-team-cell .team-profile-name-with-icon-normalized,
body.app-player .stats-team-cell .team-profile-name-with-icon-stacked {
    display: inline-grid !important;
    grid-template-columns: 1rem minmax(0, auto) !important;
    column-gap: 0.12rem !important;
    align-items: center !important;
}
body.app-player .team-profile-icon-link {
    align-self: center !important;
    justify-self: center !important;
    line-height: 1 !important;
}
body.app-player .stats-team-cell {
    padding: 0.03rem 0.08rem !important;
    vertical-align: middle !important;
}
body.app-player .stats-team-cell .team-player-list,
body.app-player .stats-team-cell .team-player-list-normalized {
    gap: 0 !important;
    line-height: 1.05 !important;
}
body.app-player .stats-team-cell .team-player-line,
body.app-player .stats-team-cell .team-player-line-normalized {
    line-height: 1.05 !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.app-player .calendar-team-legend-table td.calendar-team-legend-team-cell,
body.app-player .calendar-team-legend-table td.calendar-team-legend-player-cell {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 0.96 !important;
}

@media (max-width: 720px) {
    body.app-player nav,
    body.app-player header nav {
        padding-inline: 0.08rem !important;
    }
    body.app-player nav a.nav-link,
    body.app-player header nav a.nav-link,
    body.app-player nav .nav-link,
    body.app-player header nav .nav-link {
        padding: 0.04rem 0.11rem !important;
        min-height: 0 !important;
        line-height: 1.12 !important;
    }
    body.app-player table.matches-table.match-layout-table col.matches-col-game {
        width: 2.35rem !important;
        min-width: 2.35rem !important;
        max-width: 2.35rem !important;
    }
    body.app-player .matches-table.match-layout-table th.matches-table-game,
    body.app-player .matches-table.match-layout-table td.align-middle,
    body.app-player .matches-table.match-layout-table td.pending-game-change-cell {
        width: 2.35rem !important;
        min-width: 2.35rem !important;
        max-width: 2.35rem !important;
        padding-inline: 0.02rem !important;
    }
    body.app-player .matches-table.match-layout-table .input-score,
    body.app-player .matches-table.match-layout-table input.input-score,
    body.app-player .matches-table.match-layout-table span.input-score {
        width: 1.7rem !important;
        min-width: 1.7rem !important;
        max-width: 1.7rem !important;
        padding-inline: 0.04rem !important;
    }
    body.app-player .matches-table.match-layout-table td.matches-table-team-cell {
        padding: 0.01rem 1.15rem 0.01rem 0.04rem !important;
    }
    body.app-player .stats-team-cell {
        padding: 0.02rem 0.05rem !important;
    }
    body.app-player .calendar-team-legend-table td.calendar-team-legend-team-cell,
    body.app-player .calendar-team-legend-table td.calendar-team-legend-player-cell {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        line-height: 0.94 !important;
    }
}

/* ADDED v2026-05-22.3966: player hotfix for desktop-density mobile nav and tighter Matches/Calendar vertical spacing. */
body.app-player header nav,
body.app-player nav {
    width: 100% !important;
    max-width: none !important;
    padding-inline: 0.05rem !important;
}
body.app-player header nav .nav-primary-row,
body.app-player header nav .nav-secondary-row,
body.app-player header nav .nav-tertiary-row,
body.app-player nav .nav-primary-row,
body.app-player nav .nav-secondary-row,
body.app-player nav .nav-tertiary-row {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-start !important;
    align-items: center !important;
    width: 100% !important;
    gap: 0.04rem 0.08rem !important;
    margin-top: 0.05rem !important;
}
body.app-player header nav .nav-secondary-row,
body.app-player nav .nav-secondary-row {
    margin-top: 0.08rem !important;
}
body.app-player header nav a.nav-link,
body.app-player nav a.nav-link,
body.app-player header nav .nav-link,
body.app-player nav .nav-link {
    box-sizing: border-box !important;
    flex: 0 1 auto !important;
    min-width: 0 !important;
    min-height: 1.35rem !important;
    padding: 0.04rem 0.12rem !important;
    margin: 0 !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
}
body.app-player .app-link-group,
body.app-player .app-link-group-nav {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.04rem !important;
    margin-left: 0.04rem !important;
    white-space: nowrap !important;
}
body.app-player .app-link-group .app-icon-link {
    padding-left: 0.08rem !important;
    padding-right: 0.08rem !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
body.app-player .matches-table.match-layout-table .matches-team-stack {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}
body.app-player .matches-table.match-layout-table .matches-team-row {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    line-height: 1 !important;
}
body.app-player .matches-table.match-layout-table .matches-team-row + .matches-team-row {
    margin-top: -0.08rem !important;
}
body.app-player .matches-table.match-layout-table .matches-team-main,
body.app-player .matches-table.match-layout-table .matches-team-profile-line,
body.app-player .matches-table.match-layout-table .team-profile-name-with-icon,
body.app-player .matches-table.match-layout-table .team-profile-inline-roster {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    line-height: 1 !important;
}
body.app-player .matches-table.match-layout-table .team-profile-name-with-icon {
    vertical-align: middle !important;
}
body.app-player .calendar-team-legend-table {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}
body.app-player .calendar-team-legend-table tr.calendar-team-legend-line {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0.9 !important;
}
body.app-player .calendar-team-legend-table td.calendar-team-legend-team-cell,
body.app-player .calendar-team-legend-table td.calendar-team-legend-player-cell {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 0.9 !important;
}
body.app-player .calendar-team-legend-player {
    line-height: 0.9 !important;
    min-height: 0 !important;
}
@media (max-width: 720px) {
    body.app-player header,
    body.app-player header nav,
    body.app-player nav {
        padding-inline: 0.03rem !important;
    }
    body.app-player header nav .nav-primary-row,
    body.app-player header nav .nav-secondary-row,
    body.app-player header nav .nav-tertiary-row,
    body.app-player nav .nav-primary-row,
    body.app-player nav .nav-secondary-row,
    body.app-player nav .nav-tertiary-row {
        gap: 0.02rem 0.06rem !important;
    }
    body.app-player header nav a.nav-link,
    body.app-player nav a.nav-link,
    body.app-player header nav .nav-link,
    body.app-player nav .nav-link {
        min-height: 1.2rem !important;
        padding: 0.02rem 0.08rem !important;
        font-size: 0.86rem !important;
        line-height: 1 !important;
    }
    body.app-player .app-link-group,
    body.app-player .app-link-group-nav {
        gap: 0.02rem !important;
        margin-left: 0.02rem !important;
    }
    body.app-player .app-link-group .app-icon-link {
        padding-left: 0.06rem !important;
        padding-right: 0.06rem !important;
    }
    body.app-player .matches-table.match-layout-table .matches-team-row + .matches-team-row {
        margin-top: -0.1rem !important;
    }
    body.app-player .calendar-team-legend-table td.calendar-team-legend-team-cell,
    body.app-player .calendar-team-legend-table td.calendar-team-legend-player-cell {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        line-height: 0.86 !important;
    }
    body.app-player .calendar-team-legend-player {
        line-height: 0.86 !important;
    }
}

/* ADDED v2026-05-22.3967: player hotfix for centered nav, compact match team rows, and compact calendar legend rows. */
body.app-player header nav .nav-primary-row,
body.app-player header nav .nav-secondary-row,
body.app-player header nav .nav-tertiary-row,
body.app-player nav .nav-primary-row,
body.app-player nav .nav-secondary-row,
body.app-player nav .nav-tertiary-row {
    justify-content: center !important;
    gap: 0.10rem 0.24rem !important;
}
body.app-player header nav a.nav-link,
body.app-player nav a.nav-link,
body.app-player header nav .nav-link,
body.app-player nav .nav-link {
    padding-left: 0.18rem !important;
    padding-right: 0.18rem !important;
}
body.app-player .matches-table.match-layout-table .matches-team-stack {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0.94 !important;
}
body.app-player .matches-table.match-layout-table .matches-team-row,
body.app-player .matches-table.match-layout-table .matches-team-main,
body.app-player .matches-table.match-layout-table .matches-team-profile-line,
body.app-player .matches-table.match-layout-table .team-profile-name-with-icon,
body.app-player .matches-table.match-layout-table .team-profile-inline-roster,
body.app-player .matches-table.match-layout-table .team-player-list,
body.app-player .matches-table.match-layout-table .team-player-line {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 0.94 !important;
    min-height: 0 !important;
}
body.app-player .matches-table.match-layout-table .matches-team-row + .matches-team-row {
    margin-top: -0.16rem !important;
}
body.app-player .calendar-team-legend-table,
body.app-player .calendar-team-legend-table tbody {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}
body.app-player .calendar-team-legend-table tr.calendar-team-legend-line {
    line-height: 0.78 !important;
}
body.app-player .calendar-team-legend-table td.calendar-team-legend-team-cell,
body.app-player .calendar-team-legend-table td.calendar-team-legend-player-cell {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 0.78 !important;
}
body.app-player .calendar-team-legend-player,
body.app-player .calendar-team-legend-player a {
    line-height: 0.78 !important;
    min-height: 0 !important;
}
@media (max-width: 720px) {
    body.app-player header nav .nav-primary-row,
    body.app-player header nav .nav-secondary-row,
    body.app-player header nav .nav-tertiary-row,
    body.app-player nav .nav-primary-row,
    body.app-player nav .nav-secondary-row,
    body.app-player nav .nav-tertiary-row {
        justify-content: center !important;
        gap: 0.06rem 0.18rem !important;
    }
    body.app-player header nav a.nav-link,
    body.app-player nav a.nav-link,
    body.app-player header nav .nav-link,
    body.app-player nav .nav-link {
        padding-left: 0.12rem !important;
        padding-right: 0.12rem !important;
    }
    body.app-player .matches-table.match-layout-table .matches-team-row + .matches-team-row {
        margin-top: -0.18rem !important;
    }
    body.app-player .calendar-team-legend-table tr.calendar-team-legend-line,
    body.app-player .calendar-team-legend-table td.calendar-team-legend-team-cell,
    body.app-player .calendar-team-legend-table td.calendar-team-legend-player-cell,
    body.app-player .calendar-team-legend-player,
    body.app-player .calendar-team-legend-player a {
        line-height: 0.74 !important;
    }
}


/* ADDED v2026-05-22.3968: structural compact-row overrides for the two stubborn player-release spacing bugs. */
body.app-player .matches-table.match-layout-table td.matches-table-team-cell {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1 !important;
    vertical-align: middle !important;
}
body.app-player .matches-table.match-layout-table .matches-team-mini,
body.app-player .matches-table.match-layout-table .matches-team-mini tbody,
body.app-player .matches-table.match-layout-table .matches-team-mini tr,
body.app-player .matches-table.match-layout-table .matches-team-mini td {
    border: 0 !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    margin: 0 !important;
    line-height: 1 !important;
}
body.app-player .matches-table.match-layout-table .matches-team-mini {
    width: 100% !important;
    table-layout: auto !important;
}
body.app-player .matches-table.match-layout-table .matches-team-mini td.matches-team-mini-name {
    padding: 0 !important;
    vertical-align: middle !important;
}
body.app-player .matches-table.match-layout-table .matches-team-mini td.matches-team-mini-action {
    padding: 0 0 0 0.25rem !important;
    vertical-align: top !important;
    text-align: right !important;
    width: 1% !important;
    white-space: nowrap !important;
}
body.app-player .matches-table.match-layout-table .matches-team-row + .matches-team-row {
    margin-top: 0 !important;
}
body.app-player .matches-table.match-layout-table .matches-team-profile-line,
body.app-player .matches-table.match-layout-table .matches-team-main,
body.app-player .matches-table.match-layout-table .team-profile-name-with-icon,
body.app-player .matches-table.match-layout-table .team-profile-inline-roster,
body.app-player .matches-table.match-layout-table .team-profile-linked-roster,
body.app-player .matches-table.match-layout-table .team-player-list,
body.app-player .matches-table.match-layout-table .team-player-line,
body.app-player .matches-table.match-layout-table .team-player-line a {
    line-height: 1 !important;
    min-height: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
body.app-player .calendar-team-legend-table,
body.app-player .calendar-team-legend-table tbody,
body.app-player .calendar-team-legend-table tr,
body.app-player .calendar-team-legend-table td {
    border: 0 !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    margin: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1 !important;
    min-height: 0 !important;
}
body.app-player .calendar-team-legend-table {
    margin-top: 0.1rem !important;
    margin-bottom: 0.2rem !important;
}
body.app-player .calendar-team-legend-table .calendar-team-legend-team-cell {
    padding-right: 0.18rem !important;
}
body.app-player .calendar-team-legend-table .calendar-team-legend-player-cell {
    padding-right: 0.32rem !important;
}
body.app-player .calendar-team-legend-table .calendar-team-legend-player-cell-2 {
    padding-right: 0 !important;
}
body.app-player .calendar-team-legend-player,
body.app-player .calendar-team-legend-player a,
body.app-player .calendar-team-legend-swatch,
body.app-player .calendar-team-legend-table .team-profile-icon-link {
    line-height: 1 !important;
    min-height: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
@media (max-width: 720px) {
    body.app-player .matches-table.match-layout-table .matches-team-mini,
    body.app-player .matches-table.match-layout-table .matches-team-mini tr,
    body.app-player .matches-table.match-layout-table .matches-team-mini td,
    body.app-player .calendar-team-legend-table,
    body.app-player .calendar-team-legend-table tr,
    body.app-player .calendar-team-legend-table td,
    body.app-player .calendar-team-legend-player,
    body.app-player .calendar-team-legend-player a {
        line-height: 0.95 !important;
    }
}

/* ADDED v2026-05-22.3969: hard structural fix for persistent Matches team gap and Calendar overflow. */
body.app-player .matches-table.match-layout-table td.matches-table-team-cell {
    position: relative !important;
    padding-top: 0.04rem !important;
    padding-bottom: 0.04rem !important;
    padding-left: 0.18rem !important;
    padding-right: 1.35rem !important;
    vertical-align: top !important;
}
body.app-player .matches-table.match-layout-table .matches-team-compact {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}
body.app-player .matches-table.match-layout-table .matches-team-lines,
body.app-player .matches-table.match-layout-table .matches-team-line,
body.app-player .matches-table.match-layout-table .matches-team-profile-line,
body.app-player .matches-table.match-layout-table .team-profile-name-with-icon,
body.app-player .matches-table.match-layout-table .team-profile-inline-roster {
    display: block !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}
body.app-player .matches-table.match-layout-table .matches-team-line + .matches-team-line {
    margin-top: 0.02rem !important;
}
body.app-player .matches-table.match-layout-table .team-profile-name-with-icon-inline {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.18rem !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    line-height: 1 !important;
}
body.app-player .matches-table.match-layout-table .team-profile-name-with-icon-inline .team-profile-icon-link,
body.app-player .matches-table.match-layout-table .team-profile-name-with-icon-inline a,
body.app-player .matches-table.match-layout-table .team-profile-inline-roster,
body.app-player .matches-table.match-layout-table .team-profile-inline-roster a,
body.app-player .matches-table.match-layout-table .team-pair-separator {
    line-height: 1 !important;
    min-height: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
body.app-player .matches-table.match-layout-table .matches-team-action,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell > .matches-team-compact > .matches-team-action {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    display: inline-flex !important;
    align-items: flex-start !important;
    justify-content: flex-end !important;
    width: 1.1rem !important;
    height: 1.1rem !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    text-align: right !important;
}

body.app-player .player-calendar-page .table-calendar,
body.app-player .calendar-container .table-calendar {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
}
body.app-player .player-calendar-page .table-calendar th.calendar-date-header,
body.app-player .player-calendar-page .table-calendar th:first-child,
body.app-player .player-calendar-page .table-calendar td.datepad,
body.app-player .player-calendar-page .table-calendar td.calendar-date-cell,
body.app-player .calendar-container .table-calendar th.calendar-date-header,
body.app-player .calendar-container .table-calendar th:first-child,
body.app-player .calendar-container .table-calendar td.datepad,
body.app-player .calendar-container .table-calendar td.calendar-date-cell {
    width: 3.15rem !important;
    min-width: 3.15rem !important;
    max-width: 3.15rem !important;
    padding-left: 0.08rem !important;
    padding-right: 0.08rem !important;
    white-space: normal !important; /* CHANGED v2026-06-08.8039: allow Calendar date stack to wrap onto weekday/month-day lines. */
}
body.app-player .player-calendar-page .table-calendar td.calendar-date-cell .calendar-date-stack,
body.app-player .calendar-container .table-calendar td.calendar-date-cell .calendar-date-stack {
    display: block !important;
    line-height: 1.08 !important;
    white-space: normal !important;
    text-align: left !important;
}
body.app-player .player-calendar-page .table-calendar td.calendar-date-cell .calendar-date-dow,
body.app-player .player-calendar-page .table-calendar td.calendar-date-cell .calendar-date-md,
body.app-player .calendar-container .table-calendar td.calendar-date-cell .calendar-date-dow,
body.app-player .calendar-container .table-calendar td.calendar-date-cell .calendar-date-md {
    display: block !important;
    white-space: nowrap !important;
}
body.app-player .player-calendar-page .table-calendar th:not(:first-child),
body.app-player .player-calendar-page .table-calendar td.calendar-clickable-cell,
body.app-player .calendar-container .table-calendar th:not(:first-child),
body.app-player .calendar-container .table-calendar td.calendar-clickable-cell {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow: hidden !important;
}
@media (max-width: 720px) {
    body.app-player .matches-table.match-layout-table .matches-team-line + .matches-team-line {
        margin-top: 0 !important;
    }
    body.app-player .player-calendar-page .table-calendar th.calendar-date-header,
    body.app-player .player-calendar-page .table-calendar th:first-child,
    body.app-player .player-calendar-page .table-calendar td.datepad,
    body.app-player .player-calendar-page .table-calendar td.calendar-date-cell,
    body.app-player .calendar-container .table-calendar th.calendar-date-header,
    body.app-player .calendar-container .table-calendar th:first-child,
    body.app-player .calendar-container .table-calendar td.datepad,
    body.app-player .calendar-container .table-calendar td.calendar-date-cell {
        width: 2.75rem !important;
        min-width: 2.75rem !important;
        max-width: 2.75rem !important;
        font-size: 1.25rem !important; /** CHANGED v2026-06-09.8204: match main header nav link size; remove remaining compact theme override. */
    }
    body.app-player .player-calendar-page .table-calendar th:not(:first-child),
    body.app-player .calendar-container .table-calendar th:not(:first-child) {
        font-size: 1.25rem !important; /** CHANGED v2026-06-09.8204: match main header nav link size; remove remaining compact theme override. */
    }
    body.app-player .player-calendar-page .table-calendar .calendar-clickable-cell > div,
    body.app-player .calendar-container .table-calendar .calendar-clickable-cell > div,
    body.app-player .player-calendar-page .table-calendar .calendar-clickable-cell > :where(.c0, .c1, .c2, .c3, .c4, .c5, .c6, .c7, .c8),
    body.app-player .calendar-container .table-calendar .calendar-clickable-cell > :where(.c0, .c1, .c2, .c3, .c4, .c5, .c6, .c7, .c8) {
        min-width: 0 !important;
        height: 0.38rem !important;
        min-height: 0.38rem !important;
    }
}

/* ADDED v2026-05-22.3970: explicit compact line break between teams on Matches. */
body.app-player .matches-table.match-layout-table .matches-team-break {
    display: block !important;
    height: 0.18rem !important;
    line-height: 0.18rem !important;
    margin: 0 !important;
    padding: 0 !important;
    content: "" !important;
}
@media (max-width: 720px) {
    body.app-player .matches-table.match-layout-table .matches-team-break {
        height: 0.16rem !important;
        line-height: 0.16rem !important;
    }
}

/* ADDED v2026-05-22.3971: player release normalization + Matches team-cell vertical centering. */
body.app-player .player-normalized-page,
body.app-player .player-normalized-section,
body.app-player .player-normalized-card,
body.app-player .player-normalized-form,
body.app-player .player-common-container,
body.app-player .component-player-surface {
    box-sizing: border-box;
    max-width: 100%;
}

body.app-player .matches-table.match-layout-table td.matches-table-team-cell {
    vertical-align: middle !important;
    padding-top: 0.02rem !important;
    padding-bottom: 0.02rem !important;
}

body.app-player .matches-table.match-layout-table .matches-team-compact {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    min-height: 1.7rem !important;
}

body.app-player .matches-table.match-layout-table .matches-team-lines {
    display: inline-block !important;
    vertical-align: middle !important;
    max-width: calc(100% - 1.35rem) !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.app-player .matches-table.match-layout-table .matches-team-line,
body.app-player .matches-table.match-layout-table .matches-team-profile-line,
body.app-player .matches-table.match-layout-table .team-profile-name-with-icon-inline,
body.app-player .matches-table.match-layout-table .team-profile-inline-roster {
    line-height: 1.05 !important;
}

body.app-player .matches-table.match-layout-table .matches-team-break {
    height: 0.12rem !important;
    line-height: 0.12rem !important;
}

body.app-player .matches-table.match-layout-table .matches-team-action {
    top: 0 !important;
    right: 0 !important;
}

body.app-player .component-player-table-scroll,
body.app-player .component-player-card-scroll {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

body.app-player .component-player-field-table {
    width: 100%;
    table-layout: auto;
}

body.app-player .component-player-field-label {
    width: 1%;
    white-space: nowrap;
}

body.app-player .component-player-field-value {
    width: auto;
}

@media (max-width: 720px) {
    body.app-player .matches-table.match-layout-table .matches-team-compact {
        min-height: 1.55rem !important;
    }
    body.app-player .matches-table.match-layout-table .matches-team-line,
    body.app-player .matches-table.match-layout-table .matches-team-profile-line,
    body.app-player .matches-table.match-layout-table .team-profile-name-with-icon-inline,
    body.app-player .matches-table.match-layout-table .team-profile-inline-roster {
        line-height: 1 !important;
    }
    body.app-player .matches-table.match-layout-table .matches-team-break {
        height: 0.1rem !important;
        line-height: 0.1rem !important;
    }
}

/* ADDED v2026-05-22.3974: Matches team names are vertically centered inside the team cell while Manage Match stays upper-right. */
body.app-player .matches-table.match-layout-table td.matches-table-team-cell {
    position: relative !important;
    vertical-align: middle !important;
    padding-top: 0.02rem !important;
    padding-bottom: 0.02rem !important;
    padding-left: 0.18rem !important;
    padding-right: 1.35rem !important;
}

body.app-player .matches-table.match-layout-table td.matches-table-team-cell > .matches-team-compact {
    position: static !important;
    display: block !important;
    width: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}

body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-team-lines {
    position: absolute !important;
    top: 50% !important;
    left: 0.18rem !important;
    right: 1.35rem !important;
    transform: translateY(-50%) !important;
    display: block !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}

body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-team-line,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-team-profile-line,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .team-profile-name-with-icon-inline,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .team-profile-inline-roster {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    line-height: 1.02 !important;
}

body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-team-break {
    display: block !important;
    height: 0.14rem !important;
    line-height: 0.14rem !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-team-action {
    position: absolute !important;
    top: 0.08rem !important;
    right: 0.12rem !important;
    transform: none !important;
    z-index: 2 !important;
}


/* ADDED v2026-05-22.3975: Matches remove explicit break spacing between teams; keep vertical centering. */
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-team-break {
    display: none !important;
    height: 0 !important;
    line-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-team-line + .matches-team-line {
    margin-top: 0.02rem !important;
}
@media (max-width: 720px) {
    body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-team-line + .matches-team-line {
        margin-top: 0 !important;
    }
}

/* ADDED v2026-05-22.3977: Player-first layout normalization and header/page-title gap removal.
 * Root public route adapters remain permanent; this pass only normalizes the
 * visible player shell and common component classes.
 */
body.app-player header {
    margin-bottom: 0 !important;
}

body.app-player .mainbody {
    padding-top: 0 !important;
}

body.app-player .mainbody > :where(h1, h2, h3, .page-title, .ui-page-header, .player-page-title):first-child,
body.app-player .mainbody > :where(.player-page-container, .ui-player-page, .player-normalized-page):first-child > :where(h1, h2, h3, .page-title, .ui-page-header, .player-page-title):first-child {
    margin-top: 0 !important;
}

body.app-player :where(.player-page-container, .ui-player-page, .player-normalized-page, .component-player-page, .player-common-container) {
    box-sizing: border-box;
    max-width: 100%;
}

body.app-player :where(.component-player-card, .component-player-surface, .component-player-report, .component-player-form, .component-player-table-shell) {
    box-sizing: border-box;
    max-width: 100%;
}

body.app-player :where(.component-player-table, .component-player-report-table) {
    width: 100%;
    max-width: 100%;
    border-collapse: collapse;
}

body.app-player :where(.component-player-table-scroll, .component-player-scroll-x, .component-player-report-scroll) {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

body.app-player :where(.component-player-field-table, .player-field-table) {
    width: 100%;
    table-layout: auto;
}

body.app-player :where(.component-player-field-label, .player-field-label) {
    width: 1%;
    white-space: nowrap;
}

body.app-player :where(.component-player-field-value, .player-field-value) {
    width: auto;
    min-width: 0;
}

/* Keep the current successful Matches rendering, while making the vertical
 * alignment explicit at the final override layer.
 */
body.app-player .matches-table.match-layout-table td.matches-table-team-cell {
    vertical-align: middle !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-team-lines {
    top: 50% !important;
    transform: translateY(-50%) !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-team-line + .matches-team-line {
    margin-top: 0 !important;
}

/* Calendar team legend compaction. The table layout is retained because it
 * fixed the player-1/player-2 alignment regression.
 */
body.app-player .calendar-team-legend-table,
body.app-player .calendar-team-legend-table tbody {
    border-spacing: 0 !important;
}
body.app-player .calendar-team-legend-table tr.calendar-team-legend-line {
    line-height: 1 !important;
}
body.app-player .calendar-team-legend-table td.calendar-team-legend-team-cell,
body.app-player .calendar-team-legend-table td.calendar-team-legend-player-cell {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1 !important;
}
body.app-player .calendar-team-legend-player,
body.app-player .calendar-team-legend-player a {
    line-height: 1 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}


/* ADDED v2026-05-22.3980: player-facing CSS/UI normalization milestone.
 * Named components override legacy mixed.css without removing it yet.
 */
body.app-player {
    --player-table-pad-y-compact: 0.18rem;
    --player-table-pad-x-compact: 0.32rem;
    --player-score-col-width: 3.15rem;
    --player-score-col-width-mobile: 2.55rem;
    --player-action-icon-size: 1.45rem;
}
body.app-player :where(.component-player-page, .ui-player-page, .player-normalized-page) {
    box-sizing: border-box;
    max-width: min(100%, 78rem);
    margin-inline: auto;
}
body.app-player :where(.component-player-card, .component-player-surface, .component-player-report, .component-player-form, .component-player-table-shell) {
    box-sizing: border-box;
    max-width: 100%;
}
body.app-player :where(.component-player-table, .component-player-report-table, .ui-player-table) {
    width: 100%;
    max-width: 100%;
    border-collapse: collapse;
}
body.app-player :where(.component-player-table-scroll, .component-player-scroll-x, .component-player-report-scroll, .ui-player-table-wrap) {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
body.app-player .ui-field-table--fit-label th:first-child,
body.app-player .ui-field-table--fit-label td:first-child,
body.app-player .component-player-field-label,
body.app-player .player-field-label {
    width: 1% !important;
    min-width: 0 !important;
    white-space: nowrap !important;
}
body.app-player .ui-field-table--fit-label th:nth-child(2),
body.app-player .ui-field-table--fit-label td:nth-child(2),
body.app-player .component-player-field-value,
body.app-player .player-field-value {
    width: auto !important;
    min-width: 0 !important;
}
body.app-player .component-player-table--matches,
body.app-player .matches-table.match-layout-table {
    table-layout: fixed !important;
    width: 100% !important;
    min-width: 0 !important;
}
body.app-player .matches-col-round { width: 2.6rem; }
body.app-player .matches-col-game { width: var(--player-score-col-width); }
body.app-player .matches-col-team { width: auto; }
body.app-player .matches-table th.matches-table-game,
body.app-player .matches-table td.game-cell,
body.app-player .matches-table td:has(.input-score) {
    width: var(--player-score-col-width);
    max-width: var(--player-score-col-width);
    min-width: var(--player-score-col-width);
    white-space: nowrap;
    text-align: center;
}
body.app-player .matches-table-team-cell {
    padding: var(--player-table-pad-y-compact) var(--player-table-pad-x-compact) !important;
    vertical-align: middle !important;
    min-width: 0 !important;
    max-width: none !important;
    line-height: 1.12 !important;
}
body.app-player .component-team-pair--matches,
body.app-player .matches-team-compact {
    min-height: 100%;
    height: 100%;
    align-items: center;
    padding: 0 !important;
    margin: 0 !important;
}
body.app-player .component-team-pair--matches .component-team-pair-lines {
    justify-content: center;
    gap: 0.04rem;
}
body.app-player .component-team-pair--matches .component-team-line,
body.app-player .component-team-pair--matches .matches-team-profile-line,
body.app-player .component-team-pair--matches .team-profile-name-with-icon,
body.app-player .matches-table-team-cell .team-profile-name-with-icon {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    gap: 0.12rem;
    line-height: 1.1;
    padding: 0 !important;
    margin: 0 !important;
}
body.app-player .component-team-pair--matches .team-profile-inline-roster {
    min-width: 0;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
}
body.app-player .component-team-pair--matches .component-team-pair-action {
    justify-self: end;
    align-self: start;
    padding: 0 !important;
    margin: 0 !important;
}
body.app-player .matches-manage-link,
body.app-player .matches-team-action {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: var(--player-action-icon-size);
    min-width: var(--player-action-icon-size);
    height: var(--player-action-icon-size);
    min-height: var(--player-action-icon-size);
    line-height: 1;
    margin: 0 !important;
    float: none !important;
}
body.app-player .team-profile-name-with-icon,
body.app-player .team-profile-name-with-icon-inline,
body.app-player .team-profile-name-with-icon-stacked {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.16rem;
    min-width: 0;
    line-height: 1.12;
}
body.app-player .team-profile-name-with-icon-stacked .team-player-list {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.02rem;
    min-width: 0;
}
body.app-player .team-profile-icon-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: var(--player-action-icon-size);
    min-width: var(--player-action-icon-size);
    height: var(--player-action-icon-size);
    min-height: var(--player-action-icon-size);
    line-height: 1 !important;
    margin: 0 0.12rem 0 0 !important;
    float: none !important;
    align-self: center !important;
}
body.app-player .component-player-table--calendar-legend,
body.app-player .calendar-team-legend-table {
    margin: 0.02rem 0 0.08rem !important;
    padding: 0 !important;
    line-height: 1 !important;
    width: auto;
    max-width: 100%;
}
body.app-player .component-player-table--calendar-legend tr,
body.app-player .calendar-team-legend-line.component-calendar-team-legend-row {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}
body.app-player .component-player-table--calendar-legend td,
body.app-player .calendar-team-legend-table td,
body.app-player .calendar-team-legend-team-cell,
body.app-player .calendar-team-legend-player-cell {
    border: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1 !important;
    vertical-align: middle !important;
    white-space: nowrap;
}
body.app-player .calendar-team-legend-team-cell { width: 1%; padding-right: 0.2rem !important; }
body.app-player .calendar-team-legend-player-cell-1 { padding-right: 0.34rem !important; }
body.app-player .calendar-team-legend-player,
body.app-player .calendar-team-legend-player a {
    display: inline-flex;
    align-items: center;
    gap: 0.18rem;
    line-height: 1 !important;
}
body.app-player .calendar-team-legend-swatch {
    flex: 0 0 auto;
}
@media (max-width: 720px) {
    body.app-player .matches-col-game { width: var(--player-score-col-width-mobile); }
    body.app-player .matches-table th.matches-table-game,
    body.app-player .matches-table td.game-cell,
    body.app-player .matches-table td:has(.input-score) {
        width: var(--player-score-col-width-mobile);
        max-width: var(--player-score-col-width-mobile);
        min-width: var(--player-score-col-width-mobile);
        padding-inline: 0.16rem !important;
    }
    body.app-player .input-score {
        width: 2.15rem !important;
        min-width: 2.15rem !important;
        max-width: 2.15rem !important;
        padding-inline: 0.12rem !important;
    }
    body.app-player .matches-table-team-cell {
        padding-block: 0.12rem !important;
        padding-inline: 0.22rem !important;
    }
    body.app-player .component-team-pair--matches .component-team-pair-lines {
        gap: 0.02rem;
    }
    body.app-player .calendar-team-legend-table td,
    body.app-player .calendar-team-legend-team-cell,
    body.app-player .calendar-team-legend-player-cell {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
        font-size: 0.92rem;
    }
    body.app-player .calendar-team-legend-player-cell-1 { padding-right: 0.24rem !important; }
}


/* ADDED v2026-05-22.3982: player-facing UI/UX normalization pass.
 * This layer intentionally uses named contracts rather than page-specific
 * descendant guesses, so mixed.css can be retired gradually without changing
 * visible behaviour all at once.
 */
body.app-player {
    --player-page-max-width: 78rem;
    --player-surface-gap: .55rem;
    --player-card-pad: .7rem;
    --player-table-pad-y: .24rem;
    --player-table-pad-x: .38rem;
    --player-form-label-width: 1%;
}
body.app-player .component-player-page-title,
body.app-player .page-title {
    margin-top: .22rem;
    margin-bottom: .22rem;
}
body.app-player .component-player-page-rule,
body.app-player .page-title-rule {
    margin-top: 0;
    margin-bottom: var(--player-surface-gap);
}
body.app-player .component-player-page-shell,
body.app-player .player-page-container,
body.app-player .ui-player-container {
    width: min(100%, var(--player-page-max-width));
    margin-inline: auto;
    margin-top: 0;
}
body.app-player :where(.component-player-card, .ui-player-card, .ui-player-section, .player-normalized-section) {
    padding: var(--player-card-pad);
}
body.app-player .component-player-table,
body.app-player .ui-player-table,
body.app-player .stats-table,
body.app-player .table-calendar {
    border-collapse: collapse;
    width: 100%;
    max-width: 100%;
}
body.app-player .component-player-table :where(th, td),
body.app-player .ui-player-table :where(th, td),
body.app-player .stats-table :where(th, td) {
    padding: var(--player-table-pad-y) var(--player-table-pad-x);
    line-height: 1.18;
    vertical-align: middle;
}
body.app-player .component-player-team-cell,
body.app-player .stats-team-cell,
body.app-player .matches-table-team-cell {
    min-width: 0;
    vertical-align: middle !important;
}
body.app-player .component-team-display,
body.app-player .team-profile-name-with-icon {
    gap: .18rem;
    align-items: center !important;
}
body.app-player .component-team-members--stacked,
body.app-player .team-player-list {
    gap: .02rem;
}
body.app-player .component-team-member,
body.app-player .team-player-line {
    margin: 0;
    padding: 0;
    line-height: 1.12;
}
body.app-player .component-player-match-team-cell .component-team-pair--matches {
    align-items: center;
    min-height: 100%;
}
body.app-player .component-player-score-cell,
body.app-player .matches-score-cell {
    width: var(--player-score-col-width);
    max-width: var(--player-score-col-width);
    min-width: var(--player-score-col-width);
    padding-inline: .15rem !important;
}
body.app-player .component-player-table--calendar,
body.app-player .table-calendar {
    table-layout: fixed;
    width: 100%;
}
body.app-player .component-player-calendar-hour-cell,
body.app-player .calendar-clickable-cell {
    padding: .06rem .04rem !important;
}
body.app-player .component-player-calendar-row > td {
    vertical-align: middle;
}
body.app-player .component-player-form-table--feedback th:first-child,
body.app-player .component-player-form-table--feedback td:first-child,
body.app-player .player-feedback-form-table th:first-child,
body.app-player .player-feedback-form-table td:first-child {
    width: var(--player-form-label-width) !important;
    white-space: nowrap !important;
}
body.app-player .component-player-form-table--feedback th:nth-child(2),
body.app-player .component-player-form-table--feedback td:nth-child(2),
body.app-player .player-feedback-form-table th:nth-child(2),
body.app-player .player-feedback-form-table td:nth-child(2) {
    width: auto !important;
}
body.app-player .component-player-roster-member {
    border: 1px solid rgba(0,0,0,.08);
    border-radius: .45rem;
    padding: .22rem .36rem;
    background: rgba(255,255,255,.72);
}
body.app-player .component-player-roster-role {
    font-size: .78rem;
    opacity: .72;
}
@media (max-width: 720px) {
    body.app-player {
        --player-surface-gap: .42rem;
        --player-card-pad: .55rem;
        --player-table-pad-y: .16rem;
        --player-table-pad-x: .24rem;
    }
    body.app-player .component-player-table :where(th, td),
    body.app-player .ui-player-table :where(th, td),
    body.app-player .stats-table :where(th, td) {
        padding: var(--player-table-pad-y) var(--player-table-pad-x);
    }
    body.app-player .component-player-score-cell,
    body.app-player .matches-score-cell {
        width: var(--player-score-col-width-mobile);
        max-width: var(--player-score-col-width-mobile);
        min-width: var(--player-score-col-width-mobile);
    }
    body.app-player .component-player-calendar-hour-cell,
    body.app-player .calendar-clickable-cell {
        padding: .04rem .025rem !important;
    }
}

/* ADDED v2026-05-22.3983: final player-facing CSS/UI/UX contract.
 * The goal is to make player-theme.css the player visual source of truth while
 * mixed.css remains compatibility only. These rules use component names rather
 * than page-specific descendant guesses.
 */
body.app-player {
    --ui-player-page-width: 78rem;
    --ui-player-gap: .5rem;
    --ui-player-gap-tight: .22rem;
    --ui-player-card-padding: .65rem;
    --ui-player-cell-y: .2rem;
    --ui-player-cell-x: .35rem;
    --ui-player-score-col: 3.1rem;
    --ui-player-score-col-mobile: 2.45rem;
}
body.app-player .mainbody {
    gap: 0;
}
body.app-player .component-player-page-shell,
body.app-player .player-normalized-page,
body.app-player .player-final-page,
body.app-player .player-page-container {
    width: min(100%, var(--ui-player-page-width));
    margin-inline: auto;
}
body.app-player .component-player-page-title,
body.app-player .page-title {
    margin-top: .12rem;
    margin-bottom: .12rem;
    line-height: 1.15;
}
body.app-player .component-player-page-rule,
body.app-player .page-title-rule {
    margin-top: 0;
    margin-bottom: .36rem;
}
body.app-player .component-player-card,
body.app-player .component-player-card-inline,
body.app-player .player-final-card,
body.app-player .ui-player-card,
body.app-player .divborder {
    border-radius: .7rem;
    padding: var(--ui-player-card-padding);
}
body.app-player .ui-table-final,
body.app-player .component-player-table,
body.app-player .stats-table {
    border-collapse: collapse;
    width: 100%;
    max-width: 100%;
}
body.app-player .ui-table-final th,
body.app-player .ui-table-final td,
body.app-player .component-player-table th,
body.app-player .component-player-table td,
body.app-player .stats-table th,
body.app-player .stats-table td {
    padding: var(--ui-player-cell-y) var(--ui-player-cell-x);
    line-height: 1.14;
    vertical-align: middle;
}
body.app-player .ui-score-entry-table {
    table-layout: fixed;
}
body.app-player .ui-score-entry-table .matches-col-game,
body.app-player .ui-score-entry-table .matches-table-game,
body.app-player .ui-score-entry-table .matches-score-cell,
body.app-player .ui-score-entry-table .component-player-score-cell {
    width: var(--ui-player-score-col);
    min-width: var(--ui-player-score-col);
    max-width: var(--ui-player-score-col);
}
body.app-player .ui-score-entry-table .matches-col-team,
body.app-player .ui-score-entry-table .matches-table-team,
body.app-player .ui-score-entry-table .matches-table-team-cell,
body.app-player .ui-score-entry-table .ui-team-cell-final {
    width: auto;
    min-width: 0;
}
body.app-player .ui-team-cell-final,
body.app-player .component-player-team-cell,
body.app-player .component-player-match-team-cell {
    padding-block: .12rem !important;
    vertical-align: middle !important;
}
body.app-player .component-team-pair--matches {
    min-height: 100%;
    align-items: center;
    grid-template-columns: minmax(0, 1fr) auto;
}
body.app-player .component-team-pair--matches .component-team-pair-lines {
    gap: .05rem;
    justify-content: center;
}
body.app-player .component-team-line,
body.app-player .matches-team-profile-line,
body.app-player .team-player-line,
body.app-player .component-team-member {
    line-height: 1.08;
    margin: 0;
    padding: 0;
}
body.app-player .team-profile-icon-link {
    line-height: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
}
body.app-player .component-team-pair-action,
body.app-player .matches-team-action {
    justify-self: end;
    align-self: start;
}
body.app-player .component-player-table--standings .component-player-team-cell,
body.app-player .component-player-table--standings .ui-team-cell-final,
body.app-player .stats-context-teams .component-player-team-cell {
    padding-block: .12rem !important;
}
body.app-player .component-player-table--calendar,
body.app-player .ui-calendar-table-final {
    table-layout: fixed;
    width: 100%;
}
body.app-player .component-player-calendar-row > td,
body.app-player .ui-calendar-row-final > td {
    padding-top: .04rem !important;
    padding-bottom: .04rem !important;
}
body.app-player .ui-calendar-hour-cell-final,
body.app-player .component-player-calendar-hour-cell,
body.app-player .calendar-clickable-cell {
    padding-inline: .025rem !important;
}
body.app-player .calendar-date-cell,
body.app-player .calendar-date-header {
    width: 3.6rem;
}
body.app-player .calendar-team-legend-table,
body.app-player .component-player-table--calendar-legend {
    border-collapse: collapse;
    border-spacing: 0;
}
body.app-player .calendar-team-legend-table td,
body.app-player .component-player-table--calendar-legend td {
    border: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1 !important;
}
body.app-player .ui-form-table-final th:first-child,
body.app-player .ui-form-table-final td:first-child {
    width: 1% !important;
    white-space: nowrap !important;
}
body.app-player .ui-form-table-final th:nth-child(2),
body.app-player .ui-form-table-final td:nth-child(2) {
    width: auto !important;
}
body.app-player .feedback-urgent-checkbox {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    justify-content: start;
    gap: .35rem;
    width: 100%;
}
body.app-player .feedback-urgent-checkbox span {
    white-space: nowrap;
}
body.app-player .ui-roster-badge {
    padding: .15rem .35rem;
    font-size: .78rem;
    border: 1px solid rgba(0,0,0,.12);
    background: rgba(255,255,255,.75);
}
@media (max-width: 720px) {
    body.app-player {
        --ui-player-gap: .36rem;
        --ui-player-card-padding: .5rem;
        --ui-player-cell-y: .12rem;
        --ui-player-cell-x: .22rem;
    }
    body.app-player nav .nav-primary-row,
    body.app-player nav .nav-secondary-row {
        justify-content: center;
        gap: .32rem;
    }
    body.app-player nav a {
        padding-inline: .18rem;
    }
    body.app-player .ui-score-entry-table .matches-col-game,
    body.app-player .ui-score-entry-table .matches-table-game,
    body.app-player .ui-score-entry-table .matches-score-cell,
    body.app-player .ui-score-entry-table .component-player-score-cell {
        width: var(--ui-player-score-col-mobile);
        min-width: var(--ui-player-score-col-mobile);
        max-width: var(--ui-player-score-col-mobile);
        padding-inline: .08rem !important;
    }
    body.app-player .input-score {
        width: 2.05rem !important;
        min-width: 2.05rem !important;
        max-width: 2.05rem !important;
        padding-inline: .1rem !important;
    }
    body.app-player .calendar-date-cell,
    body.app-player .calendar-date-header {
        width: 2.85rem;
    }
    body.app-player .component-player-calendar-row > td,
    body.app-player .ui-calendar-row-final > td {
        padding-top: .025rem !important;
        padding-bottom: .025rem !important;
    }
}

/* ADDED v2026-05-23.3986: Match winning score chips use the same rounded shape as score inputs.
 * The generic .win class previously only set background colour, which could
 * render the green winner highlight as a square block in the Matches table.
 */
body.app-player .matches-table.match-layout-table :where(input.input-score.win, span.input-score.win),
body.app-player .matches-table :where(input.input-score.win, span.input-score.win),
body.app-player :where(.match-container, .matches-container) :where(input.input-score.win, span.input-score.win) {
    border-radius: var(--player-score-chip-radius, 0.55rem) !important;
    background-clip: padding-box !important;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}

body.app-player .matches-table.match-layout-table span.input-score.win,
body.app-player .matches-table span.input-score.win {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* ADDED v2026-05-23.3988: Indent player profile details content from the card border.
 * The summary/header remains flush with the details border; the open content
 * gets a consistent interior gutter so My Profile form controls do not touch
 * the left edge on desktop or mobile.
 */
body.app-player details.player-profile-details > form,
body.app-player details.player-profile-details > .player-profile-content,
body.app-player details.player-profile-details > div:not(summary) {
    box-sizing: border-box;
    padding-inline: clamp(0.75rem, 2.4vw, 1rem) !important;
    padding-block: 0.7rem !important;
}

body.app-player details.player-profile-details > form > :first-child,
body.app-player details.player-profile-details > .player-profile-content > :first-child,
body.app-player details.player-profile-details > div:not(summary) > :first-child {
    margin-top: 0 !important;
}

body.app-player details.player-profile-details > form > :last-child,
body.app-player details.player-profile-details > .player-profile-content > :last-child,
body.app-player details.player-profile-details > div:not(summary) > :last-child {
    margin-bottom: 0 !important;
}

@media (max-width: 720px) {
    body.app-player details.player-profile-details > form,
    body.app-player details.player-profile-details > .player-profile-content,
    body.app-player details.player-profile-details > div:not(summary) {
        padding-inline: 0.65rem !important;
        padding-block: 0.6rem !important;
    }
}

/* ADDED v2026-05-23.3989: My Profile details class lives on the wrapper,
 * not the nested <details>, so target the actual generated structure. This
 * keeps the summary/header flush but gives the open form/content a reliable
 * interior gutter.
 */
body.app-player .ui-player-details-card.player-profile-details > details > form,
body.app-player .ui-player-details-card.player-profile-details > details > .player-profile-content,
body.app-player .ui-player-details-card.player-profile-details > details > div:not(summary) {
    box-sizing: border-box !important;
    padding-inline: clamp(0.9rem, 2.6vw, 1.15rem) !important;
    padding-block: 0.75rem !important;
}

body.app-player .ui-player-details-card.player-profile-details > details > form > :first-child,
body.app-player .ui-player-details-card.player-profile-details > details > .player-profile-content > :first-child,
body.app-player .ui-player-details-card.player-profile-details > details > div:not(summary) > :first-child {
    margin-top: 0 !important;
}

body.app-player .ui-player-details-card.player-profile-details > details > form > :last-child,
body.app-player .ui-player-details-card.player-profile-details > details > .player-profile-content > :last-child,
body.app-player .ui-player-details-card.player-profile-details > details > div:not(summary) > :last-child {
    margin-bottom: 0 !important;
}

@media (max-width: 720px) {
    body.app-player .ui-player-details-card.player-profile-details > details > form,
    body.app-player .ui-player-details-card.player-profile-details > details > .player-profile-content,
    body.app-player .ui-player-details-card.player-profile-details > details > div:not(summary) {
        padding-inline: 0.85rem !important;
        padding-block: 0.65rem !important;
    }
}

/* ADDED v2026-05-23.3990: Keep the player Calendar availability grid contained inside the page div.
 * The legacy calendar rules still include older max-content/min-width behaviour; this final
 * component-scoped rule gives the fixed calendar table an explicit colgroup contract and
 * prevents availability strips from forcing the table wider than its wrapper.
 */
body.app-player .component-player-calendar-scroll,
body.app-player .player-calendar-page .component-player-calendar-scroll,
body.app-player .calendar-container .component-player-calendar-scroll {
    box-sizing: border-box !important;
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    overflow-y: visible !important;
}

body.app-player .component-player-calendar-scroll > .table-calendar,
body.app-player .player-calendar-page .component-player-calendar-scroll > .table-calendar,
body.app-player .calendar-container .component-player-calendar-scroll > .table-calendar,
body.app-player .table-calendar.component-player-table--calendar {
    box-sizing: border-box !important;
    display: table !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
}

body.app-player .table-calendar col.calendar-col-date {
    width: 3.75rem !important;
}

body.app-player .table-calendar col.calendar-col-hour {
    width: auto !important;
}

body.app-player .table-calendar :where(th, td) {
    box-sizing: border-box !important;
}

body.app-player .table-calendar :where(th.calendar-date-header, th:first-child, td.datepad, td.calendar-date-cell) {
    width: 3.75rem !important;
    min-width: 0 !important;
    max-width: 3.75rem !important;
    padding-inline: 0.12rem !important;
    overflow: hidden !important;
    white-space: normal !important;
}

body.app-player .table-calendar :where(th:not(:first-child), td.calendar-clickable-cell, .component-player-calendar-hour-cell) {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding-inline: 0 !important;
    overflow: hidden !important;
}

body.app-player .table-calendar .calendar-clickable-cell > :where(div, .c0, .c1, .c2, .c3, .c4, .c5, .c6, .c7, .c8) {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow: hidden !important;
}

@media (max-width: 720px) {
    body.app-player .table-calendar col.calendar-col-date {
        width: 3.05rem !important;
    }
    body.app-player .table-calendar :where(th.calendar-date-header, th:first-child, td.datepad, td.calendar-date-cell) {
        width: 3.05rem !important;
        max-width: 3.05rem !important;
        font-size: 1.25rem !important; /** CHANGED v2026-06-09.8204: match main header nav link size; remove remaining compact theme override. */
        line-height: 1.02 !important;
    }
    body.app-player .table-calendar :where(th:not(:first-child), td.calendar-clickable-cell, .component-player-calendar-hour-cell) {
        font-size: 1.25rem !important; /** CHANGED v2026-06-09.8204: match main header nav link size; remove remaining compact theme override. */
    }
}


/* CHANGED v2026-05-30.6943: Team Profile mobile-table and Eligible Subs layout ownership moved to public/css/player/player-layout.css.
 * player-theme.css keeps tokens and legacy compatibility rules only; do not re-add
 * eligible-subs spacing or team-profile mobile-table geometry here.
 */

/* CHANGED v2026-05-23.4071: Align the desktop player shell.
 * The legacy body max-width and later player-page widening rules could leave
 * the header/nav and main content using different desktop widths, which made
 * centered nav look detached from content. Keep the top header and main body on
 * the same centered shell while preserving mobile full-width behaviour.
 */
body.app-player {
    max-width: none;
}

body.app-player > header,
body.app-player > main.mainbody {
    box-sizing: border-box;
    width: min(calc(100% - 2rem), var(--player-page-max-width));
    max-width: var(--player-page-max-width);
    margin-inline: auto;
}

body.app-player > main.mainbody {
    padding-inline: var(--player-page-pad-inline);
}

@media (max-width: 720px) {
    body.app-player > header,
    body.app-player > main.mainbody {
        width: 100%;
        max-width: 100%;
    }
}

/** ADDED v2026-05-23.4075
 *  Player theme ownership pass.
 *
 *  Purpose:
 *  - Keep current player-facing behavior while moving recent player-specific
 *    overrides into the player-only theme file instead of relying on broad
 *    legacy mixed.css tail rules.
 *  - Preserve the existing visual layout; this is ownership/consolidation, not
 *    a redesign.
 */
body.app-player .ui-responsive-data-display,
body.app-player .player-card,
body.app-player .ui-player-card,
body.app-player details.ui-player-details-card {
    max-width: 100%;
    box-sizing: border-box;
}

body.app-player .ui-responsive-data-card,
body.app-player .team-roster-member-card {
    border: 1px solid var(--player-border-soft, #d9e6dc);
    border-radius: var(--ui-card-radius, 0.7rem);
    background: var(--player-surface, #fff);
    padding: 0.65rem 0.75rem;
}

body.app-player .team-roster-member-card + .team-roster-member-card {
    margin-top: 0.45rem;
}

body.app-player details > summary {
    word-break: normal;
    overflow-wrap: break-word;
}

@media (max-width: 720px) {
    body.app-player .ui-responsive-data-table { display: none; }
    body.app-player .ui-responsive-data-cards { display: grid; gap: 0.55rem; }
}

@media (min-width: 721px) {
    body.app-player .ui-responsive-data-cards { display: none; }
}

body.app-player .ui-player-page,
body.player .ui-player-page {
    max-width: min(100%, 72rem);
    margin-inline: auto;
}

@media (max-width: 760px) {
    body.app-player .ui-responsive-data-display,
    body.player .ui-responsive-data-display { overflow-x: visible; }
}

body.app-player .ui-roster-member-card,
body.player .ui-roster-member-card {
    max-width: 100%;
    overflow-wrap: break-word;
}

.player-profile-team-link {
    display: inline-block;
    margin-left: 0.45rem;
    white-space: nowrap;
}

@media (max-width: 640px) {
    .players-container .stats-player-cell a.align-photo,
    .player-page-container .stats-context-players .stats-player-cell a.align-photo {
        display: inline-flex !important;
        align-items: center !important;
        column-gap: 0.45rem !important;
        row-gap: 0 !important;
        width: max-content !important;
        max-width: none !important;
    }

    .players-container .stats-player-cell a.align-photo .profile-photo-frame,
    .player-page-container .stats-context-players .stats-player-cell a.align-photo .profile-photo-frame,
    .players-container .stats-player-cell a.align-photo .profile-initials-avatar,
    .player-page-container .stats-context-players .stats-player-cell a.align-photo .profile-initials-avatar {
        flex: 0 0 auto !important;
        margin-right: 0 !important;
    }
}

body.app-player :where(details.ui-player-details-card, details.stats-details, details.player-details-card, details.player-about-details, details.player-about-rule-details, details.ui-expandable-section) > :where(div, p, ul, ol, section, .round-trend-insights, .ui-details-body):not(summary) {
    box-sizing: border-box;
    padding-inline: 0.72rem;
}

body.app-player :where(details.ui-player-details-card, details.stats-details, details.player-details-card, details.player-about-details, details.player-about-rule-details, details.ui-expandable-section) > .table-container:not(summary) {
    box-sizing: border-box;
    width: calc(100% - 1.44rem);
    margin-inline: 0.72rem;
}

body.app-player :where(.player-community-standard-card) > :where(p, ul, ol):not(.ui-card-title) {
    margin-inline: 0.72rem;
}

body.app-player :where(.player-community-standard-card) > :where(ul, ol):not(.ui-card-title) {
    padding-left: 1.65rem;
}

/* CHANGED v2026-05-30.6942: Player details-card, lazy/AJAX loading, and full-page AJAX panel layout ownership moved to public/css/player/player-layout.css.
 * player-theme.css keeps tokens and legacy compatibility rules only; do not re-add
 * details wrapper geometry, summary spacing, loading spinner layout, or player AJAX panel geometry here.
 */

/* ADDED v2026-05-25.4174: Make Matches winning-score highlight explicit for both
 * server-rendered scores and client-side autosave recalculation.
 */
body.app-player .matches-table.match-layout-table :where(input.input-score.score-win, span.input-score.score-win),
body.app-player .matches-table :where(input.input-score.score-win, span.input-score.score-win),
body.app-player :where(.match-container, .matches-container) :where(input.input-score.score-win, span.input-score.score-win) {
    background-color: var(--color-game-win-bg) !important;
    border-radius: var(--player-score-chip-radius, 0.55rem) !important;
    background-clip: padding-box !important;
}

/* ADDED v2026-06-01.7162: Forfeited game scores must remain blue even when the
 * saved forfeit score also has winner/loss score classes. This selector comes
 * after the generic winning-score highlight so forfeit status wins visually. */
body.app-player .matches-table.match-layout-table input.input-score.forfeit-score,
body.app-player .matches-table.match-layout-table span.input-score.forfeit-score,
body.app-player .matches-table input.input-score.forfeit-score,
body.app-player .matches-table span.input-score.forfeit-score,
body.app-player :where(.match-container, .matches-container) input.input-score.forfeit-score,
body.app-player :where(.match-container, .matches-container) span.input-score.forfeit-score {
    background-color: var(--player-score-status-forfeit-bg, var(--color-status-forfeit-bg)) !important;
    border-color: var(--color-pastel-blue) !important;
    background-clip: padding-box !important;
}

/* ADDED v2026-05-26.4229: compact My Profile subsections to match player details-card density. */
body.app-player .profile-portfolio-section {
    padding: 0.52rem 0.72rem !important;
    margin: 0 0 var(--player-gap-sm, 0.5rem) 0 !important;
    border-radius: var(--player-radius-md, 12px) !important;
}
body.app-player .profile-portfolio-section > h4:first-child {
    margin: 0 0 0.38rem 0 !important;
    padding: 0 !important;
    line-height: 1.25 !important;
}
body.app-player .profile-portfolio-section > :where(.login-field, .profile-login-field, .profile-phone-field, .profile-notifications-section, p, .single, .warning):first-child,
body.app-player .profile-portfolio-section > h4:first-child + :where(.login-field, .profile-login-field, .profile-phone-field, .profile-notifications-section, p, .single, .warning) {
    margin-top: 0 !important;
}
body.app-player .profile-portfolio-section :where(.login-field, .profile-login-field) {
    margin-block: 0.28rem !important;
}
body.app-player .profile-portfolio-section :where(p.single, p.warning, .single, .warning) {
    margin-block: 0.32rem !important;
}

/* ADDED v2026-05-26.4231: realtime Create/Change Password feedback in My Profile. */
.password-feedback {
    display: block;
    font-size: 0.92rem;
    line-height: 1.25;
    margin: 0.18rem 0 0.34rem 0;
}
.password-feedback-empty { color: var(--muted-text, #57606a); }
.password-feedback-weak,
.password-feedback-mismatch { color: var(--danger-text, #b42318); }
.password-feedback-okay { color: var(--warning-text, #8a5a00); }
.password-feedback-strong,
.password-feedback-match { color: var(--success-text, #116329); }
body.app-player .profile-portfolio-section-password .login-field {
    margin-bottom: 0.18rem !important;
}

/* ADDED v2026-05-26.4243: remove legacy heading/accent bands from SweetAlert content.
   SweetAlert titles and HTML content can contain h2/h3 elements while the page
   theme gives headings a left accent border. Alert modals are self-contained UI
   components, so neutralize heading accents and popup edge accents inside them. */
.swal2-container .swal2-popup,
.sweet-alert {
    border-left: 0 !important;
    border-inline-start: 0 !important;
}

.swal2-container .swal2-popup :where(.swal2-title, h1, h2, h3, h4, h5, h6),
.swal2-container .swal2-popup .swal2-html-container :where(h1, h2, h3, h4, h5, h6),
.swal2-container .swal2-popup .changelog-alert-html :where(h1, h2, h3, h4, h5, h6),
.sweet-alert :where(h1, h2, h3, h4, h5, h6) {
    border: 0 !important;
    border-left: 0 !important;
    border-inline-start: 0 !important;
    padding-left: 0 !important;
    padding-inline-start: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.swal2-container .swal2-popup :where(.swal2-title, h1, h2, h3, h4, h5, h6)::before,
.swal2-container .swal2-popup :where(.swal2-title, h1, h2, h3, h4, h5, h6)::after,
.sweet-alert :where(h1, h2, h3, h4, h5, h6)::before,
.sweet-alert :where(h1, h2, h3, h4, h5, h6)::after {
    content: none !important;
    display: none !important;
}


/* CHANGED v2026-05-30.6941: Mobile About/Stats/Feedback layout hardening moved to public/css/player/player-layout.css.
 * player-theme.css keeps tokens and legacy compatibility rules only; do not re-add
 * mobile round-trend typography, stats-detail spacing, or feedback checkbox geometry here.
 */

/* CHANGED v2026-05-30.6939: Match-row score/action layout hardening moved to public/css/player/player-layout.css.
 * player-theme.css keeps tokens and legacy compatibility rules only; do not re-add
 * score-cell geometry or match-row action positioning here.
 */


/** ADDED v2026-06-03.7292
 * Match About and Player Profile collapsed-section spacing to Team Profile.
 * About uses lazy wrapper elements around native details cards; Player Profile
 * uses direct details cards. Normalize both paths and remove legacy <br> gaps.
 */
body.app-player .player-about-page-shell :where(.player-lazy-details-wrapper.player-about-details, .about-whats-new-link-row),
body.app-player .player-profile-page :where(.player-profile-details, .player-match-history-details, .player-subs-details) {
    margin-block: 0.26rem !important;
}

body.app-player .player-about-page-shell .player-lazy-details-wrapper.player-about-details > details.player-lazy-details,
body.app-player .player-profile-page :where(.player-profile-details, .player-match-history-details, .player-subs-details) {
    margin-block: 0 !important;
}

body.app-player .player-about-page-shell :where(.player-lazy-details-wrapper.player-about-details, .about-whats-new-link-row) + br,
body.app-player .player-profile-page :where(.player-profile-details, .player-match-history-details, .player-subs-details, .profile-summary-wrap, .player-profile-summary-card) + br {
    display: none !important;
}

body.app-player .player-about-content-stack > :where(.player-lazy-details-wrapper.player-about-details, .about-whats-new-link-row),
body.app-player .player-profile-page > :where(.player-profile-details, .player-match-history-details, .player-subs-details) {
    margin-block: 0.26rem !important;
}

/** CHANGED v2026-06-03.7294
 *  Force About and Player Profile collapsed-section spacing to use the same
 *  compact density as Team Profile. Earlier rules missed the actual Player
 *  Profile page shell (`.player-players-page--profile`) and the About grid gap.
 */
body.app-player .player-about-page-shell .player-about-content-stack {
    gap: var(--player-section-gap, 0.32rem) !important;
    row-gap: var(--player-section-gap, 0.32rem) !important;
}

body.app-player .player-about-page-shell .player-about-content-stack > :where(.ui-component-player.ui-player-details-card[data-ui-details-wrapper="1"], .player-lazy-details-wrapper.player-about-details, .about-whats-new-link-row),
body.app-player .player-players-page--profile > :where(.ui-component-player.ui-player-details-card[data-ui-details-wrapper="1"], .profile-summary-wrap, .player-profile-summary-card),
body.app-player .player-players-page--profile :where(.player-profile-details, .player-match-history-details, .player-subs-details, .player-availability-details) {
    margin-top: var(--player-section-gap, 0.32rem) !important;
    margin-bottom: var(--player-section-gap, 0.32rem) !important;
}

body.app-player .player-about-page-shell .player-about-content-stack > :where(.ui-component-player.ui-player-details-card[data-ui-details-wrapper="1"], .player-lazy-details-wrapper.player-about-details) > :where(details, .player-lazy-details),
body.app-player .player-players-page--profile > .ui-component-player.ui-player-details-card[data-ui-details-wrapper="1"] > :where(details, .player-lazy-details) {
    margin: 0 !important;
}

body.app-player .player-players-page--profile > * + * {
    margin-top: var(--player-section-gap, 0.32rem) !important;
}

body.app-player .player-about-page-shell :where(.player-lazy-details-wrapper.player-about-details, .about-whats-new-link-row) + br,
body.app-player .player-players-page--profile :where(.profile-summary-wrap, .player-profile-summary-card, .player-profile-details, .player-match-history-details, .player-subs-details, .player-availability-details, .ui-component-player.ui-player-details-card[data-ui-details-wrapper="1"]) + br {
    display: none !important;
}


/** CHANGED v2026-06-03.7304: About/Profile spacing parity with Team Profile. */
body.app-player .player-about-page-shell,
body.app-player .player-players-page--profile {
    --player-profile-section-parity-gap: var(--player-section-gap, 0.32rem);
}
body.app-player .player-about-page-shell .player-about-content-stack,
body.app-player .player-players-page--profile {
    display: grid !important;
    row-gap: var(--player-profile-section-parity-gap) !important;
    gap: var(--player-profile-section-parity-gap) !important;
}
body.app-player .player-about-page-shell .player-about-content-stack > *,
body.app-player .player-about-page-shell .player-about-content-stack > :where(.ui-component-player, .ui-details-card, .ui-player-details-card, .player-lazy-details-wrapper, .player-about-details, .about-whats-new-link-row),
body.app-player .player-players-page--profile > *,
body.app-player .player-players-page--profile > :where(.ui-component-player, .ui-details-card, .ui-player-details-card, .profile-summary-wrap, .player-profile-summary-card, .player-profile-details, .player-match-history-details, .player-subs-details, .player-availability-details) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
body.app-player .player-about-page-shell .player-about-content-stack > :where(.ui-component-player, .ui-details-card, .ui-player-details-card, .player-lazy-details-wrapper) > :where(details, .player-lazy-details, .player-ajax-details, .ui-normalized-details),
body.app-player .player-players-page--profile > :where(.ui-component-player, .ui-details-card, .ui-player-details-card) > :where(details, .player-lazy-details, .player-ajax-details, .ui-normalized-details) {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
body.app-player .player-about-page-shell br,
body.app-player .player-players-page--profile br {
    display: none !important;
}

/** CHANGED v2026-06-08.8045
 *  Match the main Approvals/Friendlies/Admin attention pill with the standard
 *  pending-game score light-orange background.
 */
body.app-player nav .nav-link-attention {
    color: #000000 !important; /** CHANGED v2026-06-08.8046: make Approvals attention text black on light-orange pill. */
    background: #fef3c7 !important;
    border: 1px solid #fcd34d !important;
}
body.app-player nav .nav-link-attention .nav-approval-count {
    color: #000000 !important;
    background: #ffffff !important;
    border: 1px solid #fcd34d !important;
}

/** CHANGED v2026-06-08.8047
 *  Player-theme specificity for black attention-link foreground text.
 */
body.app-player nav a.nav-link.nav-link-attention,
body.app-player nav a.nav-link.nav-link-attention:link,
body.app-player nav a.nav-link.nav-link-attention:visited,
body.app-player nav a.nav-link.nav-link-attention:hover,
body.app-player nav a.nav-link.nav-link-attention:active,
body.app-player nav a.nav-link.nav-link-attention:focus,
body.player-surface nav a.nav-link.nav-link-attention,
body.player-surface nav a.nav-link.nav-link-attention:link,
body.player-surface nav a.nav-link.nav-link-attention:visited,
body.player-surface nav a.nav-link.nav-link-attention:hover,
body.player-surface nav a.nav-link.nav-link-attention:active,
body.player-surface nav a.nav-link.nav-link-attention:focus {
    color: #000000 !important;
}
body.app-player nav a.nav-link.nav-link-attention .nav-approval-count,
body.player-surface nav a.nav-link.nav-link-attention .nav-approval-count {
    color: #000000 !important;
}

/** CHANGED v2026-06-08.8048
 *  Dedicated Approvals attention-link foreground override.
 *  This targets the Approvals anchor class directly so inherited/header link
 *  color rules cannot keep the word "Approvals" white on the light-orange pill.
 */
header nav a.nav-link-approvals.nav-link-attention,
header nav a.nav-link-approvals.nav-link-attention:link,
header nav a.nav-link-approvals.nav-link-attention:visited,
header nav a.nav-link-approvals.nav-link-attention:hover,
header nav a.nav-link-approvals.nav-link-attention:active,
header nav a.nav-link-approvals.nav-link-attention:focus,
body.app-player header nav a.nav-link-approvals.nav-link-attention,
body.app-player header nav a.nav-link-approvals.nav-link-attention:link,
body.app-player header nav a.nav-link-approvals.nav-link-attention:visited,
body.app-player header nav a.nav-link-approvals.nav-link-attention:hover,
body.app-player header nav a.nav-link-approvals.nav-link-attention:active,
body.app-player header nav a.nav-link-approvals.nav-link-attention:focus,
body.player-surface header nav a.nav-link-approvals.nav-link-attention,
body.player-surface header nav a.nav-link-approvals.nav-link-attention:link,
body.player-surface header nav a.nav-link-approvals.nav-link-attention:visited,
body.player-surface header nav a.nav-link-approvals.nav-link-attention:hover,
body.player-surface header nav a.nav-link-approvals.nav-link-attention:active,
body.player-surface header nav a.nav-link-approvals.nav-link-attention:focus,
body.app-admin header nav a.nav-link-approvals.nav-link-attention,
body.app-admin header nav a.nav-link-approvals.nav-link-attention:link,
body.app-admin header nav a.nav-link-approvals.nav-link-attention:visited,
body.app-admin header nav a.nav-link-approvals.nav-link-attention:hover,
body.app-admin header nav a.nav-link-approvals.nav-link-attention:active,
body.app-admin header nav a.nav-link-approvals.nav-link-attention:focus,
body.admin-surface header nav a.nav-link-approvals.nav-link-attention,
body.admin-surface header nav a.nav-link-approvals.nav-link-attention:link,
body.admin-surface header nav a.nav-link-approvals.nav-link-attention:visited,
body.admin-surface header nav a.nav-link-approvals.nav-link-attention:hover,
body.admin-surface header nav a.nav-link-approvals.nav-link-attention:active,
body.admin-surface header nav a.nav-link-approvals.nav-link-attention:focus {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}
header nav a.nav-link-approvals.nav-link-attention .nav-approval-count {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
}

/** CHANGED v2026-06-08.8049
 *  Player-theme override: remove the pending approval corner-dot marker.
 */
body.app-player .pending-game-change-cell::after,
body.app-player .pending-game-change-cell.pending-game-change-forfeit::after,
body.app-player .pending-game-change-cell.pending-game-change-void::after,
body.app-player .pending-game-change-cell.pending-game-change-requires-my-approval::after,
body.app-player td.pending-game-change-requires-my-approval::after,
body.player-surface .pending-game-change-cell::after,
body.player-surface .pending-game-change-cell.pending-game-change-forfeit::after,
body.player-surface .pending-game-change-cell.pending-game-change-void::after,
body.player-surface .pending-game-change-cell.pending-game-change-requires-my-approval::after,
body.player-surface td.pending-game-change-requires-my-approval::after {
    content: none !important;
    display: none !important;
}

/** CHANGED v2026-06-08.8050
 *  Player-theme override: restore the circled dot only for actionable/clickable
 *  pending approval score cells.
 */
body.app-player .pending-game-change-cell.pending-game-change-requires-my-approval::after,
body.app-player td.pending-game-change-requires-my-approval::after,
body.player-surface .pending-game-change-cell.pending-game-change-requires-my-approval::after,
body.player-surface td.pending-game-change-requires-my-approval::after {
    content: "" !important;
    display: block !important;
    position: absolute;
    top: 0.2rem;
    right: 0.2rem;
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    background-color: #b45309;
    box-shadow: 0 0 0 1px var(--color-background, #ffffff), 0 0 0 2px #b45309;
    pointer-events: none;
}

/* CHANGED v2026-06-09.8200: Use one stacked, bold profile-link layout on admin and player header surfaces.
 * Admin nav normalization can otherwise treat .nav-link as a horizontal pill.
 */
body.app-admin header .nav-profile-corner .nav-profile-photo-link,
body.app-admin header .nav-profile-corner .nav-profile-photo-link:link,
body.app-admin header .nav-profile-corner .nav-profile-photo-link:visited,
body.app-admin header .nav-profile-corner .nav-profile-photo-link:hover,
body.app-admin header .nav-profile-corner .nav-profile-photo-link:active,
body.admin-surface header .nav-profile-corner .nav-profile-photo-link,
body.admin-surface header .nav-profile-corner .nav-profile-photo-link:link,
body.admin-surface header .nav-profile-corner .nav-profile-photo-link:visited,
body.admin-surface header .nav-profile-corner .nav-profile-photo-link:hover,
body.admin-surface header .nav-profile-corner .nav-profile-photo-link:active,
body.app-player header .nav-profile-corner .nav-profile-photo-link,
body.app-player header .nav-profile-corner .nav-profile-photo-link:link,
body.app-player header .nav-profile-corner .nav-profile-photo-link:visited,
body.app-player header .nav-profile-corner .nav-profile-photo-link:hover,
body.app-player header .nav-profile-corner .nav-profile-photo-link:active,
body.player-surface header .nav-profile-corner .nav-profile-photo-link,
body.player-surface header .nav-profile-corner .nav-profile-photo-link:link,
body.player-surface header .nav-profile-corner .nav-profile-photo-link:visited,
body.player-surface header .nav-profile-corner .nav-profile-photo-link:hover,
body.player-surface header .nav-profile-corner .nav-profile-photo-link:active {
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 0.12rem !important;
    padding: 0.1rem !important;
    min-height: 0 !important;
    border-radius: 0.45rem !important;
    line-height: 1 !important;
    color: #fff !important;
    font-weight: 700 !important;
    text-align: center !important;
    text-decoration: none !important;
}

body.app-admin header .nav-profile-corner .nav-profile-first-name,
body.admin-surface header .nav-profile-corner .nav-profile-first-name,
body.app-player header .nav-profile-corner .nav-profile-first-name,
body.player-surface header .nav-profile-corner .nav-profile-first-name {
    display: block !important;
    max-width: 4.5rem !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    color: #fff !important;
    font-size: 1.25rem !important; /** CHANGED v2026-06-09.8204: match main header nav link size; remove remaining compact theme override. */
    font-weight: 700 !important;
    line-height: 1.05 !important;
    text-align: center !important;
}

/* CHANGED v2026-06-09.8204: Force shared header profile-name typography parity after all legacy theme bundles. */
body.app-admin header .nav-profile-corner .nav-profile-photo-link .nav-profile-first-name,
body.admin-surface header .nav-profile-corner .nav-profile-photo-link .nav-profile-first-name,
body.app-player header .nav-profile-corner .nav-profile-photo-link .nav-profile-first-name,
body.player-surface header .nav-profile-corner .nav-profile-photo-link .nav-profile-first-name {
    font-size: 1.25rem !important;
    font-weight: 700 !important;
    line-height: 1.05 !important;
}

/** CHANGED v2026-06-09.8206
 *  Profile-link nav parity: the profile first-name label uses the same base
 *  text size/weight as the main header nav links. Keep the avatar stacked
 *  above the label without promoting the name to oversized display text.
 */
body.app-admin header .nav-profile-corner .nav-profile-photo-link .nav-profile-first-name,
body.admin-surface header .nav-profile-corner .nav-profile-photo-link .nav-profile-first-name,
body.app-player header .nav-profile-corner .nav-profile-photo-link .nav-profile-first-name,
body.player-surface header .nav-profile-corner .nav-profile-photo-link .nav-profile-first-name,
body.app-admin header .nav-profile-corner .nav-profile-first-name,
body.admin-surface header .nav-profile-corner .nav-profile-first-name,
body.app-player header .nav-profile-corner .nav-profile-first-name,
body.player-surface header .nav-profile-corner .nav-profile-first-name {
    color: var(--color-white) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
}
/* ADDED v2026-06-10.8268: Add mobile-only breathing room between the main-nav SMS/chat icon and Calendar icon.
 * Scope stays on the player main navigation app-link group so Pool-heading icons and desktop nav density are unchanged. */
@media (max-width: 720px) {
    body.app-player header nav .app-link-group-nav .js-sms-compose-link + .app-icon-link,
    body.app-player nav .app-link-group-nav .js-sms-compose-link + .app-icon-link {
        margin-left: 0.34rem !important;
    }
}

/* ADDED v2026-06-10.8275: Calendar availability shortcuts dropdown. */
.player-calendar-page .calendar-shortcuts-bar {
    box-sizing: border-box;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.36rem;
    max-width: 100%;
    margin: 0.18rem 0 0.42rem;
}

.player-calendar-page .calendar-shortcuts-label {
    font-weight: 600;
    line-height: 1.2;
}

.player-calendar-page .calendar-shortcut-select {
    min-width: min(100%, 12rem);
    max-width: 100%;
}

.player-calendar-page .calendar-shortcut-apply-button {
    white-space: nowrap;
}

@media (max-width: 720px) {
    .player-calendar-page .calendar-shortcuts-bar {
        align-items: stretch;
    }
    .player-calendar-page .calendar-shortcuts-label {
        width: 100%;
    }
    .player-calendar-page .calendar-shortcut-select {
        flex: 1 1 11rem;
    }
}

/* ADDED v2026-06-10.8286: Calendar team identity colours now support variable-size rosters. */
.calendar-player-color {
    --calendar-player-color: #cccccc;
}
.table-calendar .calendar-clickable-cell > .calendar-player-band {
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 100% !important;
    height: 0.48rem !important;
    min-height: 0.48rem !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    line-height: 1.1 !important;
    background-color: var(--color-white) !important;
}
.table-calendar .calendar-clickable-cell > .calendar-player-band.is-available,
.calendar-team-legend-swatch.calendar-player-color.is-available {
    background-color: var(--calendar-player-color) !important;
}
.calendar-overlap .calendar-player-band.is-available {
    filter: saturate(1.18) brightness(0.98) contrast(1.04);
    box-shadow: inset 0 0 0 1px var(--color-white);
    font-weight: 600;
}
.calendar-container .calendar-team-legend-players-cell {
    white-space: normal !important;
}
.calendar-container .calendar-team-legend-players-cell .calendar-team-legend-player {
    display: inline-flex !important;
    align-items: center !important;
    margin-right: 0.7rem !important;
    white-space: nowrap !important;
}



/* ADDED v2026-06-10.8289: Keep variable-size Calendar team legend in true table layout with vertically aligned roster columns. */
.calendar-team-legend.calendar-team-legend-table {
    display: table;
    border-collapse: collapse;
}
.calendar-team-legend-table .calendar-team-legend-line {
    display: table-row;
}
.calendar-team-legend-table .calendar-team-legend-team-cell,
.calendar-team-legend-table .calendar-team-legend-player-cell {
    display: table-cell;
    vertical-align: middle;
    white-space: nowrap;
}
.calendar-team-legend-table .calendar-team-legend-player-cell-empty {
    min-width: 8rem;
}


/* CHANGED v2026-06-10.8290: Calendar hour headers use left-aligned am/pm labels. */
.table-calendar th.calendar-hour-header {
    text-align: left !important;
    padding-left: 0.2rem !important;
    padding-right: 0 !important;
    white-space: nowrap !important;
}
.table-calendar th.calendar-hour-header .calendar-hour-header-label {
    display: inline-block !important;
    line-height: 1.1 !important;
}


/* ADDED v2026-06-10.8291: make Calendar 2+ overlap visible after variable team/player bands. */
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell.calendar-overlap {
    position: relative !important;
    background: var(--calendar-overlap-bg, #edf0f2) !important;
    background-color: var(--calendar-overlap-bg, #edf0f2) !important;
    box-shadow:
        inset 0 0 0 2px var(--calendar-overlap-outline, #4a4a4a),
        0 0 4px rgba(74, 74, 74, 0.35) !important;
}
.table-calendar .calendar-clickable-cell.calendar-overlap::after,
.table-calendar td.calendar-clickable-cell.calendar-overlap::after {
    content: "2+" !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute !important;
    top: 2px !important;
    left: 2px !important;
    z-index: 9 !important;
    min-width: 1.35rem !important;
    height: 1rem !important;
    padding: 0 0.25rem !important;
    border: 1px solid var(--calendar-overlap-outline, #4a4a4a) !important;
    border-radius: 999px !important;
    background: var(--color-white, #fff) !important;
    color: var(--color-text, #111) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    pointer-events: none !important;
}
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available) {
    background: transparent !important;
}
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available {
    filter: saturate(1.2) brightness(0.98) contrast(1.04);
    box-shadow: inset 0 0 0 1px var(--color-white, #fff);
}
@media (prefers-color-scheme: dark) {
    .table-calendar .calendar-clickable-cell.calendar-overlap,
    .table-calendar td.calendar-clickable-cell.calendar-overlap {
        background: var(--calendar-overlap-bg-dark, #2f3338) !important;
        background-color: var(--calendar-overlap-bg-dark, #2f3338) !important;
        box-shadow:
            inset 0 0 0 2px var(--calendar-overlap-outline-dark, #8f969e),
            0 0 4px rgba(143, 150, 158, 0.45) !important;
    }
    .table-calendar .calendar-clickable-cell.calendar-overlap::after,
    .table-calendar td.calendar-clickable-cell.calendar-overlap::after {
        border-color: var(--calendar-overlap-outline-dark, #8f969e) !important;
        background: #1f2328 !important;
        color: #f2f4f6 !important;
    }
}


/* ADDED v2026-06-10.8292: Calendar 2+ overlap uses a real DOM badge and strong visible cell treatment. */
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell.calendar-overlap {
    position: relative !important;
    background-color: #eef1f4 !important;
    outline: 2px solid #2f3a45 !important;
    outline-offset: -2px !important;
    box-shadow: inset 0 0 0 2px #2f3a45, 0 0 0 1px rgba(47, 58, 69, 0.25) !important;
}
.table-calendar .calendar-clickable-cell.calendar-overlap::after,
.table-calendar td.calendar-clickable-cell.calendar-overlap::after {
    content: none !important;
    display: none !important;
}
.table-calendar .calendar-clickable-cell > .calendar-overlap-badge,
.table-calendar td.calendar-clickable-cell > .calendar-overlap-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute !important;
    top: 2px !important;
    left: 2px !important;
    z-index: 30 !important;
    min-width: 1.45rem !important;
    height: 1.1rem !important;
    padding: 0 0.25rem !important;
    border: 1px solid #2f3a45 !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: #111111 !important;
    font-size: 0.72rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    pointer-events: none !important;
}
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available) {
    background-color: transparent !important;
}
@media (prefers-color-scheme: dark) {
    .table-calendar .calendar-clickable-cell.calendar-overlap,
    .table-calendar td.calendar-clickable-cell.calendar-overlap {
        background-color: #2f3338 !important;
        outline-color: #aeb4bb !important;
        box-shadow: inset 0 0 0 2px #aeb4bb, 0 0 0 1px rgba(174, 180, 187, 0.35) !important;
    }
    .table-calendar .calendar-clickable-cell > .calendar-overlap-badge,
    .table-calendar td.calendar-clickable-cell > .calendar-overlap-badge {
        border-color: #aeb4bb !important;
        background: #1f2328 !important;
        color: #f2f4f6 !important;
    }
}

/* CHANGED v2026-06-10.8293: Calendar overlap is a highlighted/clickable cell state; no literal 2+ badge. */
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell.calendar-overlap {
    position: relative !important;
    cursor: pointer !important;
    background: var(--calendar-overlap-bg, #edf0f2) !important;
    background-color: var(--calendar-overlap-bg, #edf0f2) !important;
    box-shadow: inset 0 0 0 2px var(--calendar-overlap-outline, #4a4a4a) !important;
}
.table-calendar .calendar-clickable-cell.calendar-overlap::after,
.table-calendar td.calendar-clickable-cell.calendar-overlap::after,
.table-calendar .calendar-clickable-cell > .calendar-overlap-badge,
.table-calendar td.calendar-clickable-cell > .calendar-overlap-badge {
    content: none !important;
    display: none !important;
}
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available) {
    background: transparent !important;
    background-color: transparent !important;
}
@media (prefers-color-scheme: dark) {
    .table-calendar .calendar-clickable-cell.calendar-overlap,
    .table-calendar td.calendar-clickable-cell.calendar-overlap {
        background: var(--calendar-overlap-bg-dark, #2f3338) !important;
        background-color: var(--calendar-overlap-bg-dark, #2f3338) !important;
        box-shadow: inset 0 0 0 2px var(--calendar-overlap-outline-dark, #8f969e) !important;
    }
}

/* CHANGED v2026-06-10.8294: Calendar overlap highlight must remain visible on desktop after variable player bands.
   Use a high-contrast selected-slot treatment without rendering a literal 2+ badge. */
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell.calendar-overlap,
.table-calendar .calendar-clickable-cell.calendar-overlap {
    position: relative !important;
    cursor: pointer !important;
    background: #fff3bf !important;
    background-color: #fff3bf !important;
    outline: 3px solid #2f3a45 !important;
    outline-offset: -3px !important;
    box-shadow:
        inset 0 0 0 2px #ffffff,
        inset 0 0 0 5px #2f3a45,
        0 0 0 1px rgba(47, 58, 69, 0.28) !important;
}
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap::before,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap::before,
.table-calendar td.calendar-clickable-cell.calendar-overlap::before,
.table-calendar .calendar-clickable-cell.calendar-overlap::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 24 !important;
    border: 3px solid #2f3a45 !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
}
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap::after,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap::after,
.table-calendar td.calendar-clickable-cell.calendar-overlap::after,
.table-calendar .calendar-clickable-cell.calendar-overlap::after,
body.app-player .table-calendar .calendar-clickable-cell > .calendar-overlap-badge,
body.app-player .table-calendar td.calendar-clickable-cell > .calendar-overlap-badge,
.table-calendar .calendar-clickable-cell > .calendar-overlap-badge,
.table-calendar td.calendar-clickable-cell > .calendar-overlap-badge {
    content: none !important;
    display: none !important;
}
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available) {
    background: rgba(255, 243, 191, 0.55) !important;
    background-color: rgba(255, 243, 191, 0.55) !important;
}
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available {
    filter: saturate(1.32) brightness(0.96) contrast(1.08);
}
@media (prefers-color-scheme: dark) {
    body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap,
    body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap,
    .table-calendar td.calendar-clickable-cell.calendar-overlap,
    .table-calendar .calendar-clickable-cell.calendar-overlap {
        background: #3b3420 !important;
        background-color: #3b3420 !important;
        outline-color: #f2c94c !important;
        box-shadow:
            inset 0 0 0 2px #1f2328,
            inset 0 0 0 5px #f2c94c,
            0 0 0 1px rgba(242, 201, 76, 0.35) !important;
    }
    body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap::before,
    body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap::before,
    .table-calendar td.calendar-clickable-cell.calendar-overlap::before,
    .table-calendar .calendar-clickable-cell.calendar-overlap::before {
        border-color: #f2c94c !important;
    }
    body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
    body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
    .table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
    .table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available) {
        background: rgba(59, 52, 32, 0.7) !important;
        background-color: rgba(59, 52, 32, 0.7) !important;
    }
}



/* CHANGED v2026-06-10.8295: Calendar overlap highlight targets a data attribute as well as the class so desktop and mobile render the same selected-slot state. */
.table-calendar td.calendar-clickable-cell.calendar-overlap,
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] {
    position: relative !important;
    cursor: pointer !important;
    background: #fff0a6 !important;
    background-color: #fff0a6 !important;
    outline: 3px solid #111827 !important;
    outline-offset: -3px !important;
    box-shadow:
        inset 0 0 0 2px #ffffff,
        inset 0 0 0 5px #111827,
        0 0 0 1px rgba(17, 24, 39, 0.35) !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap::before,
.table-calendar .calendar-clickable-cell.calendar-overlap::before,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 50 !important;
    border: 3px solid #111827 !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap::after,
.table-calendar .calendar-clickable-cell.calendar-overlap::after,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar .calendar-clickable-cell > .calendar-overlap-badge,
.table-calendar td.calendar-clickable-cell > .calendar-overlap-badge {
    content: none !important;
    display: none !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band:not(.is-available),
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band:not(.is-available) {
    background: rgba(255, 240, 166, 0.72) !important;
    background-color: rgba(255, 240, 166, 0.72) !important;
}
@media (prefers-color-scheme: dark) {
    .table-calendar td.calendar-clickable-cell.calendar-overlap,
    .table-calendar .calendar-clickable-cell.calendar-overlap,
    .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
    .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] {
        background: #3d3414 !important;
        background-color: #3d3414 !important;
        outline-color: #f2c94c !important;
        box-shadow:
            inset 0 0 0 2px #1f2328,
            inset 0 0 0 5px #f2c94c,
            0 0 0 1px rgba(242, 201, 76, 0.35) !important;
    }
    .table-calendar td.calendar-clickable-cell.calendar-overlap::before,
    .table-calendar .calendar-clickable-cell.calendar-overlap::before,
    .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
    .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before {
        border-color: #f2c94c !important;
    }
    .table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
    .table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
    .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band:not(.is-available),
    .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band:not(.is-available) {
        background: rgba(61, 52, 20, 0.74) !important;
        background-color: rgba(61, 52, 20, 0.74) !important;
    }
}


/* CHANGED v2026-06-10.8296: Calendar overlap highlight uses a non-text overlay so desktop rendering cannot lose the visible selected-slot state behind player colour bands. */
.table-calendar td.calendar-clickable-cell.calendar-overlap,
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] {
    position: relative !important;
    cursor: pointer !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-overlap-highlight,
.table-calendar .calendar-clickable-cell > .calendar-overlap-highlight {
    display: none !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-overlap-highlight,
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-overlap-highlight,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-overlap-highlight,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-overlap-highlight {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 100 !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
    border: 3px solid #111827 !important;
    background: rgba(255, 240, 166, 0.22) !important;
    box-shadow: inset 0 0 0 2px rgba(255,255,255,0.95) !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band,
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band {
    position: relative !important;
    z-index: 20 !important;
}
@media (prefers-color-scheme: dark) {
    .table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-overlap-highlight,
    .table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-overlap-highlight,
    .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-overlap-highlight,
    .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-overlap-highlight {
        border-color: #f2c94c !important;
        background: rgba(242, 201, 76, 0.18) !important;
        box-shadow: inset 0 0 0 2px rgba(31,35,40,0.95) !important;
    }
}

/* CHANGED v2026-06-10.8297: Restore 2+ Scheduler target and use a thin black selected-slot border. */
.table-calendar td.calendar-clickable-cell.calendar-overlap,
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] {
    position: relative !important;
    cursor: pointer !important;
    border: 1px solid #000 !important;
    outline: 1px solid #000 !important;
    outline-offset: -1px !important;
    box-shadow: inset 0 0 0 1px #000 !important;
    background: transparent !important;
    background-color: transparent !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap::before,
.table-calendar .calendar-clickable-cell.calendar-overlap::before,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar td.calendar-clickable-cell.calendar-overlap::after,
.table-calendar .calendar-clickable-cell.calendar-overlap::after,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::after {
    content: none !important;
    display: none !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-overlap-highlight,
.table-calendar .calendar-clickable-cell > .calendar-overlap-highlight {
    display: none !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band,
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band {
    position: relative !important;
    z-index: 20 !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge,
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute !important;
    top: 2px !important;
    right: 2px !important;
    left: auto !important;
    z-index: 250 !important;
    width: auto !important;
    min-width: 1.45rem !important;
    height: 1.1rem !important;
    padding: 0 0.25rem !important;
    border: 1px solid #000 !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: #000 !important;
    font-size: 0.72rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.25) !important;
    touch-action: manipulation !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge:hover,
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge:hover,
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge:focus-visible,
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge:focus-visible {
    outline: 2px solid #000 !important;
    outline-offset: 1px !important;
}
@media (max-width: 700px) {
    .table-calendar th.calendar-hour-header .calendar-hour-ampm {
        display: none !important;
    }
}


/* CHANGED v2026-06-10.8299: Make Calendar schedulable-cell border very thin and show the Scheduler clock glyph target. */
.table-calendar td.calendar-clickable-cell.calendar-overlap,
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] {
    border: 1px solid #000 !important;
    outline: 0 !important;
    box-shadow: none !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge,
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge {
    min-width: 1.15rem !important;
    width: 1.15rem !important;
    height: 1.15rem !important;
    padding: 0 !important;
    border: 1px solid #000 !important;
    border-radius: 999px !important;
    font-size: 0.72rem !important;
    line-height: 1 !important;
}


/* CHANGED v2026-06-10.8299: Mobile Calendar header/date sizing and thinner schedulable slot treatment. */
.table-calendar td.calendar-clickable-cell.calendar-overlap,
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] {
    position: relative !important;
    border-color: var(--color-table-border, #bdbdbd) !important;
    outline: 1px solid #000 !important;
    outline-offset: -1px !important;
    box-shadow: none !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap::before,
.table-calendar .calendar-clickable-cell.calendar-overlap::before,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before {
    content: none !important;
    display: none !important;
    border: 0 !important;
    box-shadow: none !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge,
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute !important;
    top: 1px !important;
    right: 1px !important;
    left: auto !important;
    z-index: 1000 !important;
    width: 1rem !important;
    min-width: 1rem !important;
    height: 1rem !important;
    min-height: 1rem !important;
    padding: 0 !important;
    border: 1px solid #000 !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: #000 !important;
    font-size: 0.68rem !important;
    line-height: 1 !important;
    text-align: center !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.25) !important;
    opacity: 1 !important;
    visibility: visible !important;
}
@media (max-width: 700px) {
    .table-calendar th.calendar-hour-header {
        text-align: center !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .table-calendar th.calendar-hour-header .calendar-hour-header-label {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
    }
    .table-calendar th.calendar-hour-header .calendar-hour-ampm {
        display: none !important;
    }
    body.app-player .player-calendar-page .table-calendar td.calendar-date-cell,
    body.app-player .calendar-container .table-calendar td.calendar-date-cell,
    body.app-player .player-calendar-page .table-calendar td.datepad,
    body.app-player .calendar-container .table-calendar td.datepad {
        font-size: 0.78rem !important;
        line-height: 1.02 !important;
        padding-left: 0.1rem !important;
        padding-right: 0.05rem !important;
    }
    body.app-player .player-calendar-page .table-calendar td.calendar-date-cell .calendar-date-stack,
    body.app-player .calendar-container .table-calendar td.calendar-date-cell .calendar-date-stack {
        line-height: 1.02 !important;
    }
}


/* CHANGED v2026-06-10.8300: Calendar overlap visual cleanup.
   Use a true thin inner line instead of stacked border/outline rules, keep
   the scheduler clock as a visible upper-right hit target when a match-specific
   scheduler badge exists, and make mobile hour/date labels fit. */
.table-calendar td.calendar-clickable-cell.calendar-overlap,
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] {
    position: relative !important;
    border-color: var(--color-table-border, #bdbdbd) !important;
    outline: 0 !important;
    box-shadow: inset 0 0 0 1px rgba(0,0,0,0.72) !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap::before,
.table-calendar .calendar-clickable-cell.calendar-overlap::before,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar td.calendar-clickable-cell.calendar-overlap::after,
.table-calendar .calendar-clickable-cell.calendar-overlap::after,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::after {
    content: none !important;
    display: none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge,
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute !important;
    top: 1px !important;
    right: 1px !important;
    left: auto !important;
    z-index: 2147483000 !important;
    width: 1rem !important;
    min-width: 1rem !important;
    height: 1rem !important;
    min-height: 1rem !important;
    padding: 0 !important;
    border: 1px solid #000 !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: #000 !important;
    font-size: 0.68rem !important;
    line-height: 1 !important;
    text-align: center !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.25) !important;
    touch-action: manipulation !important;
}
@media (max-width: 900px) {
    .table-calendar th.calendar-hour-header {
        text-align: center !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .table-calendar th.calendar-hour-header .calendar-hour-header-label,
    .table-calendar th.calendar-hour-header .calendar-hour-number {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    .table-calendar th.calendar-hour-header .calendar-hour-ampm {
        display: none !important;
    }
    .table-calendar td.calendar-date-cell,
    .table-calendar td.datepad {
        font-size: 0.72rem !important;
        line-height: 1.0 !important;
        padding-left: 0.05rem !important;
        padding-right: 0.05rem !important;
        white-space: normal !important;
    }
    .table-calendar td.calendar-date-cell .calendar-date-stack,
    .table-calendar td.datepad .calendar-date-stack,
    .table-calendar td.calendar-date-cell .calendar-date-dow,
    .table-calendar td.calendar-date-cell .calendar-date-md,
    .table-calendar td.datepad .calendar-date-dow,
    .table-calendar td.datepad .calendar-date-md {
        display: block !important;
        font-size: 0.72rem !important;
        line-height: 1.0 !important;
        white-space: normal !important;
    }
}


/* CHANGED v2026-06-10.8301: Calendar schedulable cells use one thin border only; disable legacy thick overlay/pseudo borders. */
.table-calendar td.calendar-clickable-cell.calendar-overlap,
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] {
    position: relative !important;
    border: 1px solid #000 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap::before,
.table-calendar .calendar-clickable-cell.calendar-overlap::before,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar td.calendar-clickable-cell.calendar-overlap::after,
.table-calendar .calendar-clickable-cell.calendar-overlap::after,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar td.calendar-clickable-cell > .calendar-overlap-highlight,
.table-calendar .calendar-clickable-cell > .calendar-overlap-highlight {
    content: none !important;
    display: none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge,
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute !important;
    top: 1px !important;
    right: 1px !important;
    left: auto !important;
    z-index: 2147483000 !important;
    width: 1rem !important;
    min-width: 1rem !important;
    height: 1rem !important;
    min-height: 1rem !important;
    padding: 0 !important;
    border: 1px solid #000 !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: #000 !important;
    font-size: 0.68rem !important;
    line-height: 1 !important;
    text-align: center !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.25) !important;
    touch-action: manipulation !important;
}
@media (max-width: 900px) {
    .table-calendar th.calendar-hour-header {
        text-align: center !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .table-calendar th.calendar-hour-header .calendar-hour-header-label,
    .table-calendar th.calendar-hour-header .calendar-hour-number {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    .table-calendar th.calendar-hour-header .calendar-hour-ampm {
        display: none !important;
    }
    .table-calendar td.calendar-date-cell,
    .table-calendar td.datepad {
        font-size: 0.72rem !important;
        line-height: 1 !important;
        padding-left: 0.05rem !important;
        padding-right: 0.05rem !important;
        white-space: normal !important;
    }
    .table-calendar td.calendar-date-cell .calendar-date-stack,
    .table-calendar td.datepad .calendar-date-stack,
    .table-calendar td.calendar-date-cell .calendar-date-dow,
    .table-calendar td.calendar-date-cell .calendar-date-md,
    .table-calendar td.datepad .calendar-date-dow,
    .table-calendar td.datepad .calendar-date-md {
        display: block !important;
        font-size: 0.72rem !important;
        line-height: 1 !important;
        white-space: normal !important;
    }
}

/* CHANGED v2026-06-10.8302: Calendar overlap cells use a child frame for a very thin visual border; TD borders/legacy overlays are neutralized. */
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar td.calendar-clickable-cell.calendar-overlap,
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] {
    position: relative !important;
    cursor: pointer !important;
    border: 1px solid var(--color-table-border, #bdbdbd) !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
}
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap::before,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap::before,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before,
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap::after,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap::after,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::after,
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar td.calendar-clickable-cell.calendar-overlap::before,
.table-calendar .calendar-clickable-cell.calendar-overlap::before,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar td.calendar-clickable-cell.calendar-overlap::after,
.table-calendar .calendar-clickable-cell.calendar-overlap::after,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar td.calendar-clickable-cell > .calendar-overlap-highlight,
.table-calendar .calendar-clickable-cell > .calendar-overlap-highlight {
    content: none !important;
    display: none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-overlap-frame,
.table-calendar .calendar-clickable-cell > .calendar-overlap-frame {
    display: none !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-overlap-frame,
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-overlap-frame,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-overlap-frame,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-overlap-frame {
    display: block !important;
    position: absolute !important;
    inset: 1px !important;
    z-index: 180 !important;
    pointer-events: none !important;
    box-sizing: border-box !important;
    border: 1px solid rgba(0,0,0,0.72) !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge,
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute !important;
    top: 2px !important;
    right: 2px !important;
    left: auto !important;
    z-index: 500 !important;
    width: 1rem !important;
    min-width: 1rem !important;
    height: 1rem !important;
    min-height: 1rem !important;
    padding: 0 !important;
    border: 1px solid rgba(0,0,0,0.75) !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: #000 !important;
    font-size: 0.66rem !important;
    line-height: 1 !important;
    text-align: center !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.20) !important;
    touch-action: manipulation !important;
}
@media (max-width: 900px) {
    .table-calendar th.calendar-hour-header {
        text-align: center !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .table-calendar th.calendar-hour-header .calendar-hour-header-label,
    .table-calendar th.calendar-hour-header .calendar-hour-number {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    .table-calendar th.calendar-hour-header .calendar-hour-ampm {
        display: none !important;
    }
    .table-calendar td.calendar-date-cell,
    .table-calendar td.datepad {
        font-size: 0.68rem !important;
        line-height: 0.98 !important;
        padding-left: 0.03rem !important;
        padding-right: 0.03rem !important;
        white-space: normal !important;
    }
    .table-calendar td.calendar-date-cell .calendar-date-stack,
    .table-calendar td.datepad .calendar-date-stack,
    .table-calendar td.calendar-date-cell .calendar-date-dow,
    .table-calendar td.calendar-date-cell .calendar-date-md,
    .table-calendar td.datepad .calendar-date-dow,
    .table-calendar td.datepad .calendar-date-md {
        display: block !important;
        font-size: 0.68rem !important;
        line-height: 0.98 !important;
        white-space: normal !important;
    }
}


/* CHANGED v2026-06-10.8303: final Calendar schedulable-slot visual reset.
   Draw only a sub-pixel inner frame, keep player colour bands flush, and keep
   the Scheduler clock as a top-right hit target when a badge exists. */
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar td.calendar-clickable-cell.calendar-overlap,
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] {
    position: relative !important;
    cursor: pointer !important;
    border: 1px solid var(--color-table-border, #bdbdbd) !important;
    outline: 0 !important;
    box-shadow: inset 0 0 0 0.5px rgba(0,0,0,0.88) !important;
    background: transparent !important;
    background-color: transparent !important;
}
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap::before,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap::before,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before,
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap::after,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap::after,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::after,
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar td.calendar-clickable-cell.calendar-overlap::before,
.table-calendar .calendar-clickable-cell.calendar-overlap::before,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar td.calendar-clickable-cell.calendar-overlap::after,
.table-calendar .calendar-clickable-cell.calendar-overlap::after,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar td.calendar-clickable-cell > .calendar-overlap-highlight,
.table-calendar .calendar-clickable-cell > .calendar-overlap-highlight,
.table-calendar td.calendar-clickable-cell > .calendar-overlap-frame,
.table-calendar .calendar-clickable-cell > .calendar-overlap-frame {
    content: none !important;
    display: none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band,
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band,
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band,
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band {
    position: relative !important;
    z-index: 20 !important;
    box-shadow: none !important;
    border: 0 !important;
}
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available,
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available,
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available {
    box-shadow: none !important;
    border: 0 !important;
    filter: saturate(1.08) brightness(0.99) contrast(1.02) !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge,
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute !important;
    top: 1px !important;
    right: 1px !important;
    left: auto !important;
    z-index: 2147483640 !important;
    width: 1rem !important;
    min-width: 1rem !important;
    height: 1rem !important;
    min-height: 1rem !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid rgba(0,0,0,0.75) !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: #000 !important;
    font-size: 0.66rem !important;
    line-height: 1 !important;
    text-align: center !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.2) !important;
    touch-action: manipulation !important;
}
@media (max-width: 900px) {
    .table-calendar th.calendar-hour-header {
        text-align: center !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .table-calendar th.calendar-hour-header .calendar-hour-header-label,
    .table-calendar th.calendar-hour-header .calendar-hour-number {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    .table-calendar th.calendar-hour-header .calendar-hour-ampm {
        display: none !important;
    }
    .table-calendar td.calendar-date-cell,
    .table-calendar td.datepad,
    .table-calendar td.calendar-date-cell .calendar-date-stack,
    .table-calendar td.datepad .calendar-date-stack,
    .table-calendar td.calendar-date-cell .calendar-date-dow,
    .table-calendar td.calendar-date-cell .calendar-date-md,
    .table-calendar td.datepad .calendar-date-dow,
    .table-calendar td.datepad .calendar-date-md {
        font-size: 0.68rem !important;
        line-height: 0.98 !important;
        white-space: normal !important;
    }
}


/* CHANGED v2026-06-10.8304: final Calendar scheduler-cell cleanup.
   Bordered cells must always have a Scheduler clock target; draw one thin border,
   keep adjacent selected cells flush, and prevent player bands from spilling or
   creating white inset gaps inside selected cells. */
.table-calendar {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}
.table-calendar td.calendar-clickable-cell {
    position: relative !important;
    padding: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar td.calendar-clickable-cell.calendar-overlap,
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] {
    position: relative !important;
    cursor: pointer !important;
    border: 1px solid rgba(0,0,0,0.72) !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
    overflow: hidden !important;
}
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap::before,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap::before,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before,
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap::after,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap::after,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::after,
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar td.calendar-clickable-cell.calendar-overlap::before,
.table-calendar .calendar-clickable-cell.calendar-overlap::before,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar td.calendar-clickable-cell.calendar-overlap::after,
.table-calendar .calendar-clickable-cell.calendar-overlap::after,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar td.calendar-clickable-cell > .calendar-overlap-highlight,
.table-calendar .calendar-clickable-cell > .calendar-overlap-highlight,
.table-calendar td.calendar-clickable-cell > .calendar-overlap-frame,
.table-calendar .calendar-clickable-cell > .calendar-overlap-frame {
    content: none !important;
    display: none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
body.app-player .table-calendar td.calendar-clickable-cell > .calendar-player-band,
body.app-player .table-calendar .calendar-clickable-cell > .calendar-player-band,
.table-calendar td.calendar-clickable-cell > .calendar-player-band,
.table-calendar .calendar-clickable-cell > .calendar-player-band {
    display: block !important;
    position: relative !important;
    z-index: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    background-clip: border-box !important;
}
body.app-player .table-calendar td.calendar-clickable-cell > .calendar-player-band.is-available,
body.app-player .table-calendar .calendar-clickable-cell > .calendar-player-band.is-available,
.table-calendar td.calendar-clickable-cell > .calendar-player-band.is-available,
.table-calendar .calendar-clickable-cell > .calendar-player-band.is-available,
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available,
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available,
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available {
    background-color: var(--calendar-player-color) !important;
    box-shadow: none !important;
    border: 0 !important;
    outline: 0 !important;
    filter: none !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge,
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute !important;
    top: 1px !important;
    right: 1px !important;
    left: auto !important;
    z-index: 10000 !important;
    width: 1rem !important;
    min-width: 1rem !important;
    height: 1rem !important;
    min-height: 1rem !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid rgba(0,0,0,0.75) !important;
    border-radius: 999px !important;
    background: #fff !important;
    color: #000 !important;
    font-size: 0.66rem !important;
    line-height: 1 !important;
    text-align: center !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    opacity: 1 !important;
    visibility: visible !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.18) !important;
    touch-action: manipulation !important;
}
@media (max-width: 900px) {
    .table-calendar th.calendar-hour-header {
        text-align: center !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .table-calendar th.calendar-hour-header .calendar-hour-header-label,
    .table-calendar th.calendar-hour-header .calendar-hour-number {
        display: block !important;
        width: 100% !important;
        text-align: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    .table-calendar th.calendar-hour-header .calendar-hour-ampm {
        display: none !important;
    }
    .table-calendar td.calendar-date-cell,
    .table-calendar td.datepad,
    .table-calendar td.calendar-date-cell .calendar-date-stack,
    .table-calendar td.datepad .calendar-date-stack,
    .table-calendar td.calendar-date-cell .calendar-date-dow,
    .table-calendar td.calendar-date-cell .calendar-date-md,
    .table-calendar td.datepad .calendar-date-dow,
    .table-calendar td.datepad .calendar-date-md {
        font-size: 0.68rem !important;
        line-height: 0.98 !important;
        white-space: normal !important;
    }
}



/* ADDED v8305: first-login welcome SweetAlert layout */
.player-welcome-alert-html {
  text-align: left;
}
.player-welcome-alert-html ul {
  margin: 0.75rem 0 0.75rem 1.25rem;
  padding: 0;
}
.player-welcome-alert-html li {
  margin: 0.25rem 0;
}
.player-welcome-links {
  margin: 0.85rem 0;
  font-weight: 700;
}
.player-welcome-check {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin: 0.6rem 0;
  text-align: left;
}
.player-welcome-check input {
  flex: 0 0 auto;
  margin-top: 0.2rem;
}
.swal2-popup.player-welcome-alert-popup .swal2-confirm:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}


/* CHANGED v2026-06-11.8310: Calendar schedulable-cell highlighting must not repaint unavailable player bands.
   Only actual .is-available bands use team colours; unavailable bands remain neutral so toggling the
   logged-in player cannot appear to change another player's availability. */
body.app-player .table-calendar td.calendar-clickable-cell > .calendar-player-band:not(.is-available),
body.app-player .table-calendar .calendar-clickable-cell > .calendar-player-band:not(.is-available),
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band:not(.is-available),
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band:not(.is-available),
.table-calendar td.calendar-clickable-cell > .calendar-player-band:not(.is-available),
.table-calendar .calendar-clickable-cell > .calendar-player-band:not(.is-available),
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band:not(.is-available),
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band:not(.is-available) {
    background: transparent !important;
    background-color: transparent !important;
    filter: none !important;
    box-shadow: none !important;
    border: 0 !important;
    outline: 0 !important;
}
body.app-player .table-calendar td.calendar-clickable-cell > .calendar-player-band.is-available,
body.app-player .table-calendar .calendar-clickable-cell > .calendar-player-band.is-available,
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available,
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available,
.table-calendar td.calendar-clickable-cell > .calendar-player-band.is-available,
.table-calendar .calendar-clickable-cell > .calendar-player-band.is-available,
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available {
    background: var(--calendar-player-color) !important;
    background-color: var(--calendar-player-color) !important;
    filter: none !important;
    box-shadow: none !important;
    border: 0 !important;
    outline: 0 !important;
}

/* CHANGED v2026-06-11.8311: Put Calendar schedulable outline on the actual table-cell border, not as an inset frame. */
.table-calendar {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
}
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar td.calendar-clickable-cell.calendar-overlap,
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] {
    position: relative !important;
    cursor: pointer !important;
    border: 1px solid #000 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
    overflow: hidden !important;
}
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap::before,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap::before,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before,
body.app-player .table-calendar td.calendar-clickable-cell.calendar-overlap::after,
body.app-player .table-calendar .calendar-clickable-cell.calendar-overlap::after,
body.app-player .table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::after,
body.app-player .table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar td.calendar-clickable-cell.calendar-overlap::before,
.table-calendar .calendar-clickable-cell.calendar-overlap::before,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::before,
.table-calendar td.calendar-clickable-cell.calendar-overlap::after,
.table-calendar .calendar-clickable-cell.calendar-overlap::after,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]::after,
.table-calendar td.calendar-clickable-cell > .calendar-overlap-highlight,
.table-calendar .calendar-clickable-cell > .calendar-overlap-highlight,
.table-calendar td.calendar-clickable-cell > .calendar-overlap-frame,
.table-calendar .calendar-clickable-cell > .calendar-overlap-frame {
    content: none !important;
    display: none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge,
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge {
    top: 1px !important;
    right: 1px !important;
    z-index: 10000 !important;
}



/* CHANGED v2026-06-11.8312: Put Calendar hover highlight on the table-cell border instead of using an inset outline. */
.table-calendar td.calendar-clickable-cell:hover,
.table-calendar .calendar-clickable-cell:hover {
    border: 1px solid #000 !important;
    outline: 0 !important;
    outline-offset: 0 !important;
    box-shadow: none !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap:hover,
.table-calendar .calendar-clickable-cell.calendar-overlap:hover,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]:hover,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]:hover {
    border: 1px solid #000 !important;
    outline: 0 !important;
    outline-offset: 0 !important;
    box-shadow: none !important;
}


/* CHANGED v2026-06-11.8313: Restore Calendar hover to a flush inset frame.
   The hover indicator no longer changes the actual table-cell border; it sits at the
   inside edge of the cell and touches the grid border instead of floating inward. */
.table-calendar td.calendar-clickable-cell:hover,
.table-calendar .calendar-clickable-cell:hover {
    border-color: var(--color-table-border, #bdbdbd) !important;
    outline: 0 !important;
    outline-offset: 0 !important;
    box-shadow: inset 0 0 0 1px #000 !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap:hover,
.table-calendar .calendar-clickable-cell.calendar-overlap:hover,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"]:hover,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"]:hover {
    border-color: #000 !important;
    outline: 0 !important;
    outline-offset: 0 !important;
    box-shadow: inset 0 0 0 1px #000 !important;
}

/* CHANGED v2026-06-11.8316: Calendar availability repaint is player-scoped; keep non-available bands neutral and clock-target cells consistent. */
.table-calendar td.calendar-clickable-cell,
.table-calendar .calendar-clickable-cell {
    position: relative !important;
    padding: 0 !important;
    overflow: hidden !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-player-band,
.table-calendar .calendar-clickable-cell > .calendar-player-band {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    transform: none !important;
    background-clip: border-box !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-player-band:not(.is-available),
.table-calendar .calendar-clickable-cell > .calendar-player-band:not(.is-available),
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band:not(.is-available),
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band:not(.is-available),
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band:not(.is-available) {
    background: transparent !important;
    background-color: transparent !important;
    filter: none !important;
    box-shadow: none !important;
    border: 0 !important;
    outline: 0 !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-player-band.is-available,
.table-calendar .calendar-clickable-cell > .calendar-player-band.is-available,
.table-calendar td.calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
.table-calendar .calendar-clickable-cell.calendar-overlap > .calendar-player-band.is-available,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available,
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] > .calendar-player-band.is-available {
    background: var(--calendar-player-color) !important;
    background-color: var(--calendar-player-color) !important;
    filter: none !important;
    box-shadow: none !important;
    border: 0 !important;
    outline: 0 !important;
}
.table-calendar td.calendar-clickable-cell.calendar-overlap,
.table-calendar .calendar-clickable-cell.calendar-overlap,
.table-calendar td.calendar-clickable-cell[data-calendar-overlap="1"],
.table-calendar .calendar-clickable-cell[data-calendar-overlap="1"] {
    cursor: pointer !important;
}
.table-calendar td.calendar-clickable-cell:not(:has(> .calendar-scheduler-badge)).calendar-overlap,
.table-calendar .calendar-clickable-cell:not(:has(> .calendar-scheduler-badge)).calendar-overlap,
.table-calendar td.calendar-clickable-cell:not(:has(> .calendar-scheduler-badge))[data-calendar-overlap="1"],
.table-calendar .calendar-clickable-cell:not(:has(> .calendar-scheduler-badge))[data-calendar-overlap="1"] {
    border-color: var(--color-table-border, #bdbdbd) !important;
    box-shadow: none !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge,
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: absolute !important;
    top: 1px !important;
    right: 1px !important;
    left: auto !important;
    z-index: 10000 !important;
    width: 1rem !important;
    min-width: 1rem !important;
    height: 1rem !important;
    min-height: 1rem !important;
    padding: 0 !important;
    margin: 0 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
}


/* v8328: hard-flatten selected Sysadmin form/table wrappers so forms do not render as extra parent containers */
body.app-admin details.admin-sysadmin-no-table-wrap > .admin-lazy-details-body > form.admin-form,
body.admin-surface details.admin-sysadmin-no-table-wrap > .admin-lazy-details-body > form.admin-form {
  display: contents !important;
}
body.app-admin details.admin-sysadmin-no-table-wrap :where(.ui-table-container, .table-container, .ui-admin-table-wrap, .ui-component-table-wrap),
body.admin-surface details.admin-sysadmin-no-table-wrap :where(.ui-table-container, .table-container, .ui-admin-table-wrap, .ui-component-table-wrap) {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
body.app-admin details.admin-sysadmin-no-table-wrap table,
body.admin-surface details.admin-sysadmin-no-table-wrap table {
  margin-top: 0 !important;
}

/** ADDED v2026-06-11.8329: opt-in Calendar scheduler-state diagnostics shown only when JS appends .calendar-debug-pill (?calendarDebug=1 or ?caldebug=1). */
.table-calendar td.calendar-clickable-cell > .calendar-debug-pill,
.table-calendar .calendar-clickable-cell > .calendar-debug-pill {
    position: absolute;
    left: 1px;
    bottom: 1px;
    z-index: 8;
    display: inline-flex;
    align-items: center;
    max-width: calc(100% - 2px);
    min-height: 12px;
    padding: 0 2px;
    border: 1px solid rgba(0, 0, 0, 0.45);
    border-radius: 2px;
    background: rgba(255, 255, 255, 0.88);
    color: #111;
    font-size: 9px;
    line-height: 1.1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
}


/** ADDED v2026-06-11.8330: opt-in floating Calendar scheduler diagnostics panel shown only when JS creates it for ?calendarDebug=1 or ?caldebug=1. */
.calendar-debug-panel {
    position: fixed;
    right: 0.75rem;
    bottom: 0.75rem;
    z-index: 9999;
    max-width: min(32rem, calc(100vw - 1.5rem));
    max-height: 45vh;
    overflow: auto;
    padding: 0.625rem;
    border: 1px solid #111;
    border-radius: 0.375rem;
    background: #fff;
    color: #111;
    box-shadow: 0 0.25rem 1rem rgba(0, 0, 0, 0.2);
    font-size: 0.75rem;
    line-height: 1.25;
}
.calendar-debug-panel pre {
    margin: 0.375rem 0;
    white-space: pre-wrap;
    word-break: break-word;
    font: inherit;
}
.calendar-debug-panel button {
    margin: 0;
    padding: 0.25rem 0.5rem;
    font-size: 0.75rem;
}

/* CHANGED v2026-06-11.8334: Render Calendar hover frame above player bars.
   The hover indicator is an overlay at the cell edge, above availability bands
   and below the Scheduler clock hit target. */
.table-calendar td.calendar-clickable-cell,
.table-calendar .calendar-clickable-cell {
    position: relative !important;
    isolation: isolate !important;
}
.table-calendar td.calendar-clickable-cell:hover::before,
.table-calendar .calendar-clickable-cell:hover::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    z-index: 9000 !important;
    box-sizing: border-box !important;
    border: 1px solid #000 !important;
    background: transparent !important;
    box-shadow: none !important;
    pointer-events: none !important;
}
.table-calendar td.calendar-clickable-cell:hover > .calendar-player-band,
.table-calendar .calendar-clickable-cell:hover > .calendar-player-band {
    position: relative !important;
    z-index: 20 !important;
}
.table-calendar td.calendar-clickable-cell:hover > .calendar-scheduler-badge,
.table-calendar .calendar-clickable-cell:hover > .calendar-scheduler-badge {
    z-index: 10000 !important;
}

/* v8335: keep Calendar Scheduler clock visible on mobile and desktop when JS/PHP resolves a schedulable slot. */
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge,
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge {
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    position: absolute !important;
    top: 1px !important;
    right: 1px !important;
    z-index: 10050 !important;
    pointer-events: auto !important;
}
.table-calendar td.calendar-clickable-cell > .calendar-scheduler-badge[hidden],
.table-calendar .calendar-clickable-cell > .calendar-scheduler-badge[hidden] {
    display: none !important;
}


/* ADDED v2026-06-15.8346: Green means unscheduled but ready because both teams have at least one shared availability slot. */
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-schedule-link--ready,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-schedule-link--ready {
    background: #eef8ee !important;
    border-color: #2f8f4f !important;
    color: #195c2e !important;
    box-shadow: 0 0 0 2px rgba(47, 143, 79, .18), 0 0 12px rgba(47, 143, 79, .38) !important;
    animation: none !important;
}

/* ADDED v2026-06-14.8338: Streamlined Scheduler state colours. Amber means scheduled; red means completed/historical. */
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-schedule-link--complete,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-schedule-link--complete {
    background: #ffecec !important;
    border-color: #b00020 !important;
    color: #7a0016 !important;
    box-shadow: 0 0 0 2px rgba(176, 0, 32, .20), 0 0 12px rgba(176, 0, 32, .35) !important;
    animation: none !important;
}
body.app-player .table-calendar .calendar-overlap--scheduled {
    background: #fff7d6 !important;
}
body.app-player .table-calendar .calendar-overlap--scheduled::before,
body.app-player .table-calendar .calendar-overlap--scheduled .calendar-overlap-frame {
    border-color: #c77800 !important;
    box-shadow: inset 0 0 0 1px #fff, 0 0 6px rgba(199, 120, 0, .45) !important;
}
body.app-player .match-scheduler-state-note {
    margin: .35rem 0 .65rem;
    padding: .45rem .6rem;
    border: 1px solid #d0d5dd;
    border-radius: .5rem;
    background: #f0f0f0;
    font-weight: 700;
    text-align: center;
}

body.app-player .match-scheduler-context-note {
    margin: .25rem 0 .5rem;
    font-weight: 700;
    text-align: center;
}

/** CHANGED v2026-06-15.8372
 * Universal collapsed-section affordance refinement.
 * Collapsed/expanded summaries use a filled light-grey background, not a
 * grey-outline-only treatment. The disclosure arrow is placed before the title
 * so the affordance appears consistently at the left edge of every section.
 */
:root {
  --app-collapsed-section-summary-bg: #eef0f2;
  --app-collapsed-section-summary-border: #d5d9df;
  --app-collapsed-section-summary-arrow: #4d5560;
}

body :where(details) > summary {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 0.5rem !important;
  box-sizing: border-box !important;
  width: 100% !important;
  min-height: 2.35rem !important;
  padding: 0.5rem 0.75rem !important;
  background-color: var(--app-collapsed-section-summary-bg) !important;
  background-image: none !important;
  border: 1px solid var(--app-collapsed-section-summary-border) !important;
  border-radius: 0.5rem !important;
  box-shadow: none !important;
  color: inherit !important;
  cursor: pointer !important;
  list-style: none !important;
}

body :where(details) > summary::-webkit-details-marker {
  display: none !important;
}

body :where(details) > summary::marker {
  content: "" !important;
}

body :where(details) > summary::before {
  content: "▾" !important;
  flex: 0 0 auto !important;
  color: var(--app-collapsed-section-summary-arrow) !important;
  font-size: 0.95em !important;
  line-height: 1 !important;
}

body :where(details[open]) > summary::before {
  content: "▴" !important;
}

body :where(details) > summary::after {
  content: none !important;
  display: none !important;
}



/** CHANGED v2026-06-15.8373
 *  Collapsed section affordance correction.
 *  - Remove extra visual parent-card treatment from player lazy details.
 *  - Give the actual collapsed summary a filled light grey background.
 *  - Keep the disclosure indicator on the left of the title.
 */
.ui-player-details-card.player-lazy-details-wrapper {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
}

.ui-player-normalized-details.player-lazy-details,
.team-profile-section.ui-player-normalized-details.player-lazy-details,
.team-profile-availability-details.ui-player-normalized-details.player-lazy-details {
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0.75rem 0 !important;
}

.ui-player-normalized-details.player-lazy-details > summary,
.team-profile-section.ui-player-normalized-details.player-lazy-details > summary,
.team-profile-availability-details.ui-player-normalized-details.player-lazy-details > summary,
main details:not([open]) > summary {
  background: #f1f3f5 !important;
  border: 1px solid #cfd6de !important;
  border-radius: 10px !important;
  box-shadow: none !important;
  color: inherit !important;
  cursor: pointer;
  display: flex !important;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 0.85rem !important;
}

.ui-player-normalized-details.player-lazy-details > summary::-webkit-details-marker,
.team-profile-section.ui-player-normalized-details.player-lazy-details > summary::-webkit-details-marker,
.team-profile-availability-details.ui-player-normalized-details.player-lazy-details > summary::-webkit-details-marker,
main details > summary::-webkit-details-marker {
  display: none;
}

.ui-player-normalized-details.player-lazy-details > summary::before,
.team-profile-section.ui-player-normalized-details.player-lazy-details > summary::before,
.team-profile-availability-details.ui-player-normalized-details.player-lazy-details > summary::before,
main details:not([open]) > summary::before {
  content: '▾';
  display: inline-block;
  flex: 0 0 auto;
  font-size: 0.75em;
  line-height: 1;
  margin-right: 0.2rem;
}

.ui-player-normalized-details.player-lazy-details[open] > summary::before,
.team-profile-section.ui-player-normalized-details.player-lazy-details[open] > summary::before,
.team-profile-availability-details.ui-player-normalized-details.player-lazy-details[open] > summary::before,
main details[open] > summary::before {
  content: '▴';
}

.ui-player-normalized-details.player-lazy-details > summary::after,
.team-profile-section.ui-player-normalized-details.player-lazy-details > summary::after,
.team-profile-availability-details.ui-player-normalized-details.player-lazy-details > summary::after,
main details > summary::after {
  content: none !important;
  display: none !important;
}


/* CHANGED v2026-06-16.8475: Scheduler clock state halos use one tight icon-sized format so no square/air gap appears between the clock glyph and halo. */
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-schedule-link--set,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-schedule-link--set,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-schedule-link--ready,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-schedule-link--ready,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-schedule-link--complete,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-schedule-link--complete {
    --scheduler-clock-halo-size: 1.18rem;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: var(--scheduler-clock-halo-size) !important;
    min-width: var(--scheduler-clock-halo-size) !important;
    max-width: var(--scheduler-clock-halo-size) !important;
    height: var(--scheduler-clock-halo-size) !important;
    min-height: var(--scheduler-clock-halo-size) !important;
    max-height: var(--scheduler-clock-halo-size) !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    box-sizing: border-box !important;
    font-size: 1rem !important;
    line-height: 1 !important;
    overflow: visible !important;
    text-decoration: none !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-schedule-link--set,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-schedule-link--set {
    color: var(--color-status-warning-text, #8a4b00) !important;
    box-shadow: 0 0 0 2px rgba(199, 120, 0, .34), 0 0 8px rgba(255, 193, 7, .34) !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-schedule-link--ready,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-schedule-link--ready {
    color: #195c2e !important;
    box-shadow: 0 0 0 2px rgba(47, 143, 79, .34), 0 0 8px rgba(47, 143, 79, .34) !important;
    animation: none !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-schedule-link--complete,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-schedule-link--complete {
    color: #7a0016 !important;
    box-shadow: 0 0 0 2px rgba(176, 0, 32, .34), 0 0 8px rgba(176, 0, 32, .34) !important;
    animation: none !important;
}
@keyframes matchSchedulerClockPulseGlow {
    0% { box-shadow: 0 0 0 2px rgba(199, 120, 0, .30), 0 0 7px rgba(255, 193, 7, .28); }
    50% { box-shadow: 0 0 0 2px rgba(199, 120, 0, .44), 0 0 14px rgba(255, 193, 7, .52); }
    100% { box-shadow: 0 0 0 2px rgba(199, 120, 0, .30), 0 0 7px rgba(255, 193, 7, .28); }
}

/** ADDED v2026-06-18.8961
 * Pool heading keeps only the mobile chat shortcut, with spacing after Pool X.
 * Match chat shortcuts render inline beside the opposing team instead of in the
 * absolute-positioned match action rail.
 */
.matches-pool-heading-cell .app-link-group-pool {
    margin-left: .45rem !important;
    vertical-align: middle !important;
}
.matches-pool-heading-cell .app-link-group-pool .matches-pool-chat-link {
    margin-left: .15rem !important;
}
body.app-player .matches-table.match-layout-table .matches-inline-chat-link {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    margin-left: .35rem !important;
    vertical-align: middle !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 .12rem !important;
    line-height: 1 !important;
    text-decoration: none !important;
}
@media screen and (max-width: 768px) {
    .matches-pool-heading-cell .app-link-group-pool .matches-pool-chat-link.mobileonly,
    body.app-player .matches-table.match-layout-table .matches-inline-chat-link.mobileonly {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
}
@media screen and (min-width: 769px) {
    .matches-pool-heading-cell .app-link-group-pool .matches-pool-chat-link.mobileonly,
    body.app-player .matches-table.match-layout-table .matches-inline-chat-link.mobileonly {
        display: none !important;
    }
}


/** ADDED v2026-06-18.8963
 * Keep the match chat icon horizontally attached to Player 2's name instead of
 * wrapping onto its own line.
 */
body.app-player .matches-table.match-layout-table .matches-team-player2-with-chat {
    display: inline-flex !important;
    align-items: baseline !important;
    gap: .35rem !important;
    white-space: nowrap !important;
    vertical-align: baseline !important;
}
body.app-player .matches-table.match-layout-table .matches-team-player2-with-chat .matches-inline-chat-link {
    flex: 0 0 auto !important;
    margin-left: 0 !important;
}

/** ADDED v2026-06-18.8965
 * Prevent individual player names from wrapping when the mobile chat shortcut is
 * appended after Player 2. The icon may wrap if needed, but the name itself
 * stays intact.
 */
body.app-player .matches-table.match-layout-table .matches-team-player2-with-chat > a,
body.app-player .matches-table.match-layout-table .matches-team-player2-with-chat .player-link,
body.app-player .matches-table.match-layout-table .matches-team-player2-with-chat .component-player-link {
    white-space: nowrap !important;
    flex: 0 0 auto !important;
    min-width: max-content !important;
}

/** ADDED v2026-06-18.8966
 * Keep the full opposing team and mobile chat shortcut together on one line
 * where space allows. This is limited to match rows that append the chat icon.
 */
body.app-player .matches-table.match-layout-table .component-team-members--with-chat {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    align-items: baseline !important;
    white-space: nowrap !important;
    max-width: none !important;
}
body.app-player .matches-table.match-layout-table .component-team-members--with-chat > a,
body.app-player .matches-table.match-layout-table .component-team-members--with-chat .team-pair-separator,
body.app-player .matches-table.match-layout-table .component-team-members--with-chat .matches-team-player2-with-chat,
body.app-player .matches-table.match-layout-table .component-team-members--with-chat .matches-team-player2-with-chat > a,
body.app-player .matches-table.match-layout-table .component-team-members--with-chat .matches-inline-chat-link {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
}

/* ADDED v2026-06-19.8991: Matches Calendar link sits to the left of team names. */
body.app-player .component-team-pair--matches.component-team-pair--has-leading {
    grid-template-columns: auto minmax(0, 1fr) auto;
    column-gap: 0.28rem;
}
body.app-player .component-team-pair--matches .component-team-pair-leading {
    align-self: center;
    justify-self: start;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
body.app-player .component-team-pair--matches .component-team-pair-leading .matches-calendar-schedule-link {
    margin: 0 !important;
}


/* ADDED v2026-06-19.8992: Scheduler Calendar link sits immediately left of the team summary. */
.match-scheduler-summary-row {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}
.match-scheduler-calendar-context-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    text-decoration: none;
}
.match-scheduler-summary-teams {
    display: inline;
}


/* ADDED v2026-06-19.8995: Calendar match-summary icon opens a SweetAlert and must not show an underline/hover artifact below the icon. */
.calendar-match-context-link,
.calendar-match-context-link:hover,
.calendar-match-context-link:focus,
.calendar-match-context-link:active {
    text-decoration: none !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
    outline-offset: 2px;
}


/* ADDED v2026-06-19.8996: Challenge history tables remain compact on player/admin review pages. */
.match-outcome-challenge-history-card {
    margin-top: 1rem;
}
.match-outcome-challenge-history-table th,
.match-outcome-challenge-history-table td {
    vertical-align: top;
}
.match-outcome-admin-challenge-row--resolved {
    opacity: 0.92;
}

/* CHANGED v2026-06-21.9199: Simple Challenge Mode match-cell action anchor. The
   team cell owns relative positioning; the hamburger is a small absolute button
   and no stretched action rail/pseudo-overlay may cross team names. */
body.app-player .matches-table.match-layout-table td.matches-table-team-cell,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell {
    position: relative !important;
    overflow: visible !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .component-team-pair--matches,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .component-team-pair--matches {
    position: static !important;
    min-height: 0 !important;
    height: auto !important;
    align-items: flex-start !important;
    padding-right: calc(var(--player-action-icon-size, 1.7rem) + .55rem) !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .component-team-pair--matches .component-team-pair-action,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .component-team-pair--matches .component-team-pair-action {
    position: static !important;
    display: inline !important;
    inset: auto !important;
    transform: none !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-team-actions--menu,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-team-actions--menu {
    position: static !important;
    display: inline !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-action-menu,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-action-menu {
    position: absolute !important;
    top: .22rem !important;
    right: .22rem !important;
    z-index: 40 !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-action-menu::before,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-action-menu::after,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-action-menu::before,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-action-menu::after,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-team-actions--menu::before,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-team-actions--menu::after,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-team-actions--menu::before,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-team-actions--menu::after {
    content: none !important;
    display: none !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-action-menu-toggle,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-action-menu-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: var(--player-action-icon-size, 1.7rem) !important;
    min-width: var(--player-action-icon-size, 1.7rem) !important;
    height: var(--player-action-icon-size, 1.7rem) !important;
    min-height: var(--player-action-icon-size, 1.7rem) !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid rgba(0,0,0,.22) !important;
    border-radius: .2rem !important;
    background: #fff !important;
    box-shadow: none !important;
    text-decoration: none !important;
    list-style: none !important;
    line-height: 1 !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-action-menu-panel,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-action-menu-panel {
    position: absolute !important;
    top: calc(100% + .18rem) !important;
    right: 0 !important;
    min-width: max-content !important;
    width: max-content !important;
    padding: .35rem !important;
    border: 1px solid rgba(0,0,0,.18) !important;
    border-radius: .5rem !important;
    background: #fff !important;
    box-shadow: 0 .35rem 1rem rgba(0,0,0,.18) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: .12rem !important;
}
@media (hover: hover) and (pointer: fine) {
    body.app-player .matches-table.match-layout-table .matches-action-menu .matches-action-menu-item--match-chat,
    body.app-player .matches-table.match-layout-table .matches-action-menu .mobileonly {
        display: none !important;
    }
}


/* ADDED v2026-06-21.9200: Challenge Mode direct hamburger overlay.
   The action menu is emitted directly in the team cell, not through the older
   component-team-pair action rail. This prevents display:contents/action-rail
   rules from hiding the hamburger or drawing a horizontal guide through names. */
body.app-player .matches-table.match-layout-table td.matches-table-team-cell > .matches-team-actions--absolute,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell > .matches-team-actions--absolute {
    position: absolute !important;
    top: .22rem !important;
    right: .22rem !important;
    z-index: 60 !important;
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell > .matches-team-actions--absolute .matches-action-menu,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell > .matches-team-actions--absolute .matches-action-menu {
    position: static !important;
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell > .matches-team-actions--absolute::before,
body.app-player .matches-table.match-layout-table td.matches-table-team-cell > .matches-team-actions--absolute::after,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell > .matches-team-actions--absolute::before,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell > .matches-team-actions--absolute::after {
    content: none !important;
    display: none !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell > .matches-team-actions--absolute .matches-action-menu-toggle,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell > .matches-team-actions--absolute .matches-action-menu-toggle {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: var(--player-action-icon-size, 1.7rem) !important;
    min-width: var(--player-action-icon-size, 1.7rem) !important;
    height: var(--player-action-icon-size, 1.7rem) !important;
    min-height: var(--player-action-icon-size, 1.7rem) !important;
    line-height: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid rgba(0,0,0,.25) !important;
    border-radius: .2rem !important;
    background: #fff !important;
    color: #111 !important;
    text-decoration: none !important;
    cursor: pointer !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell > .matches-team-actions--absolute .matches-action-menu-panel,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell > .matches-team-actions--absolute .matches-action-menu-panel {
    position: absolute !important;
    top: calc(var(--player-action-icon-size, 1.7rem) + .35rem) !important;
    right: 0 !important;
    z-index: 80 !important;
    width: max-content !important;
    min-width: max-content !important;
    max-width: 14rem !important;
    overflow: visible !important;
}
body.app-player .matches-table.match-layout-table td.matches-table-team-cell > .matches-team-actions--absolute .matches-action-menu-item,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell > .matches-team-actions--absolute .matches-action-menu-item {
    position: static !important;
    display: flex !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    align-items: center !important;
    gap: .4rem !important;
    white-space: nowrap !important;
}

/* ADDED v2026-06-21.9201: Repair Challenge Mode match-cell hamburger rendering.
   Hide the native details marker/down arrow, center the three-line icon, keep
   menu rows inside the dropdown, and hide Match Chat on desktop while keeping
   it available for mobile layouts. */
.matches-table.match-layout-table .matches-action-menu-toggle,
.matches-table.match-layout-table .matches-action-menu-toggle.matches-team-action {
    list-style: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    text-align: center !important;
    overflow: hidden !important;
}
.matches-table.match-layout-table .matches-action-menu-toggle::-webkit-details-marker,
.matches-table.match-layout-table .matches-action-menu-toggle::marker {
    display: none !important;
    content: "" !important;
}
.matches-table.match-layout-table .matches-action-menu-toggle::before,
.matches-table.match-layout-table .matches-action-menu-toggle::after {
    content: none !important;
    display: none !important;
}
.matches-table.match-layout-table .matches-action-menu-toggle .matches-action-menu-toggle-lines,
.matches-table.match-layout-table .matches-action-menu-toggle > span {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    line-height: 1 !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: center !important;
    transform: none !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-action-menu-item,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-link.matches-action-menu-item,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-schedule-link.matches-action-menu-item,
.matches-table.match-layout-table .matches-action-menu-panel .matches-manage-link.matches-action-menu-item,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-manage-link.matches-action-menu-item {
    position: static !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    float: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: .38rem .55rem !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: inherit !important;
    text-align: left !important;
    white-space: nowrap !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-text {
    white-space: nowrap !important;
}
@media (hover: hover) and (pointer: fine), (min-width: 769px) {
    .matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item--match-chat,
    .matches-table.match-layout-table .matches-action-menu-panel .mobileonly,
    .matches-table.match-layout-table .matches-action-menu-panel a.mobileonly {
        display: none !important;
    }
}
@media (hover: none), (pointer: coarse), (max-width: 768px) {
    .matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item--match-chat,
    .matches-table.match-layout-table .matches-action-menu-panel .mobileonly,
    .matches-table.match-layout-table .matches-action-menu-panel a.mobileonly {
        display: flex !important;
    }
}


/* PATCH 9202 - Match Menu Responsive Chat and Cross-Pool Score Display
   Keep Match Chat mobile-only; keep Calendar aligned as a normal dropdown row. */
.matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item--calendar,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-schedule-link.matches-action-menu-item {
    position: static !important;
    inset: auto !important;
    float: none !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: .45rem !important;
    padding: .38rem .5rem !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    white-space: nowrap !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
}
.matches-table.match-layout-table .matches-action-menu-panel {
    width: max-content !important;
    min-width: 8.25rem !important;
    max-width: 12rem !important;
    overflow: visible !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item--match-chat.mobileonly,
.matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item--match-chat.mobile-only,
.matches-table.match-layout-table .matches-action-menu-panel a.mobileonly,
.matches-table.match-layout-table .matches-action-menu-panel a.mobile-only {
    display: none !important;
}
@media (hover: none), (pointer: coarse), (max-width: 720px) {
    .matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item--match-chat.mobileonly,
    .matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item--match-chat.mobile-only,
    .matches-table.match-layout-table .matches-action-menu-panel a.mobileonly,
    .matches-table.match-layout-table .matches-action-menu-panel a.mobile-only {
        display: flex !important;
    }
}

/* PATCH 9203 - Match menu responsive chat and Calendar row final repair */
.matches-table.match-layout-table .matches-action-menu-panel > a,
.matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item,
.matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item--calendar,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-action-menu-item--calendar {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    float: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: .45rem !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: .38rem .45rem !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    line-height: 1.2 !important;
    text-align: left !important;
    white-space: nowrap !important;
    text-decoration: none !important;
}
.matches-table.match-layout-table .matches-action-menu-panel [data-mobile-only-match-chat='1'],
.matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item--match-chat,
.matches-table.match-layout-table .matches-action-menu-panel .mobileonly,
.matches-table.match-layout-table .matches-action-menu-panel .mobile-only { display: none !important; }
@media (hover: none), (pointer: coarse), (max-width: 720px) {
    .matches-table.match-layout-table .matches-action-menu-panel [data-mobile-only-match-chat='1'],
    .matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item--match-chat.mobileonly,
    .matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item--match-chat.mobile-only,
    .matches-table.match-layout-table .matches-action-menu-panel .mobileonly,
    .matches-table.match-layout-table .matches-action-menu-panel .mobile-only { display: flex !important; }
}

/* ADDED v2026-06-21.9205: Hide mobile-only Match Chat on desktop/pointer layouts. */
@media (hover: hover) and (pointer: fine), (min-width: 769px) {
  body.app-player .matches-table.match-layout-table .matches-action-menu-item--match-chat,
  body.app-player .matches-table.match-layout-table [data-mobile-only-match-chat="1"] { display: none !important; }
}


/* ADDED v2026-06-21.9206: Match menu body-layer overlay and mobile-only chat guard. */
.matches-table.match-layout-table td.matches-table-team-cell,
.matches-table.match-layout-table td.component-player-match-team-cell,
.matches-table.match-layout-table .component-team-pair,
.matches-table.match-layout-table .component-team-pair--matches,
.matches-table.match-layout-table .matches-team-actions--absolute {
    overflow: visible !important;
}
.matches-table.match-layout-table .matches-action-menu {
    position: relative !important;
    z-index: 5000 !important;
}
.matches-table.match-layout-table .matches-action-menu-panel {
    position: fixed !important;
    z-index: 2147483000 !important;
    min-width: 8.75rem !important;
    width: max-content !important;
    max-width: min(14rem, calc(100vw - 16px)) !important;
    overflow: visible !important;
    display: none !important;
}
.matches-table.match-layout-table .matches-action-menu[open] .matches-action-menu-panel {
    display: flex !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item--match-chat,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-action-menu-item--match-chat,
.matches-table.match-layout-table .matches-action-menu-panel .mobileonly,
.matches-table.match-layout-table .matches-action-menu-panel .mobile-only {
    display: none !important;
}
@media (max-width: 767.98px), (hover: none) and (pointer: coarse) {
    .matches-table.match-layout-table .matches-action-menu-panel .matches-action-menu-item--match-chat,
    .matches-table.match-layout-table .matches-action-menu-panel a.matches-action-menu-item--match-chat,
    .matches-table.match-layout-table .matches-action-menu-panel .mobileonly,
    .matches-table.match-layout-table .matches-action-menu-panel .mobile-only {
        display: flex !important;
    }
}


/* PATCH 9209 - Schedule Summary link, status Calendar icons, and score-entry repair */
.matches-pool-schedule-swal-link,
.matches-pool-schedule-swal-link:hover,
.matches-pool-schedule-swal-link:focus,
.matches-pool-schedule-swal-link:active {
    text-decoration: none !important;
}
.matches-pool-schedule-swal-link .matches-pool-schedule-icon {
    text-decoration: none !important;
}

.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-calendar-menu-link {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: .45rem !important;
    padding: .38rem .45rem !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    width: auto !important;
    height: auto !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 1.35rem !important;
    height: 1.35rem !important;
    border-radius: 999px !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-status--unscheduled .matches-action-menu-icon {
    box-shadow: none !important;
    background: transparent !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-status--ready .matches-action-menu-icon {
    box-shadow: 0 0 0 2px rgba(46, 160, 67, .45) !important;
    background: rgba(46, 160, 67, .12) !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-status--set .matches-action-menu-icon {
    box-shadow: 0 0 0 2px rgba(218, 147, 22, .55) !important;
    background: transparent !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-status--complete .matches-action-menu-icon {
    box-shadow: 0 0 0 2px rgba(220, 38, 38, .55) !important;
    background: transparent !important;
}

/* PATCH 9210 - Challenge Mode Calendar menu icon/text cleanup */
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-calendar-menu-link,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link:link,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link:visited,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link:hover,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link:focus,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link:active {
    box-shadow: none !important;
    outline: none !important;
    border: 0 !important;
    background: transparent !important;
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    font-weight: 400 !important;
    text-decoration: none !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-text {
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    font-weight: 400 !important;
    text-decoration: none !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-icon {
    outline: none !important;
    border: 0 !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--unscheduled .matches-action-menu-icon {
    box-shadow: none !important;
    background: transparent !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--ready .matches-action-menu-icon {
    box-shadow: 0 0 0 2px rgba(46, 160, 67, .45) !important;
    background: rgba(46, 160, 67, .12) !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--set .matches-action-menu-icon {
    box-shadow: 0 0 0 2px rgba(218, 147, 22, .55) !important;
    background: transparent !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete .matches-action-menu-icon {
    box-shadow: 0 0 0 2px rgba(220, 38, 38, .55) !important;
    background: transparent !important;
}


/* PATCH 9211 - Calendar menu row styling cleanup
   The Calendar menu item carries match schedule status classes so the icon can
   show a tight status halo. Those same classes must not style the whole menu
   link, because the broader scheduler-link halo/text colour creates an extra
   outline around the icon and highlights the Calendar text. */
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-calendar-menu-link,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-schedule-link--ready,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-schedule-link--set,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-schedule-link--complete,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-calendar-menu-link.matches-schedule-link--ready,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-calendar-menu-link.matches-schedule-link--set,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-calendar-menu-link.matches-schedule-link--complete {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    padding: .38rem .55rem !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: .35rem !important;
    outline: none !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    font-weight: 400 !important;
    text-decoration: none !important;
    line-height: 1.2 !important;
    overflow: visible !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-text,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-calendar-menu-link .matches-action-menu-text {
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    font-weight: 400 !important;
    text-decoration: none !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-icon,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-calendar-menu-link .matches-action-menu-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 1.25rem !important;
    min-width: 1.25rem !important;
    max-width: 1.25rem !important;
    height: 1.25rem !important;
    min-height: 1.25rem !important;
    max-height: 1.25rem !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    outline: none !important;
    border-radius: 999px !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    color: inherit !important;
    -webkit-text-fill-color: currentColor !important;
    line-height: 1 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--unscheduled .matches-action-menu-icon {
    box-shadow: none !important;
    background: transparent !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--ready .matches-action-menu-icon {
    box-shadow: 0 0 0 2px rgba(46, 160, 67, .45) !important;
    background: transparent !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--set .matches-action-menu-icon {
    box-shadow: 0 0 0 2px rgba(218, 147, 22, .55) !important;
    background: transparent !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete .matches-action-menu-icon {
    box-shadow: 0 0 0 2px rgba(220, 38, 38, .55) !important;
    background: transparent !important;
}

/* ADDED v2026-06-22.9216: Challenge Mode locked outcome status highlighting. */
.matches-table.match-layout-table td.challenge-outcome-cell,
.matches-table.match-layout-table td.challenge-outcome-locked,
.player-matches-page td.challenge-outcome-cell,
.player-matches-page td.challenge-outcome-locked {
    position: relative;
}

.matches-table.match-layout-table .challenge-outcome-locked.input-score,
.matches-table.match-layout-table span.challenge-outcome-locked.input-score,
.player-matches-page .challenge-outcome-locked.input-score,
.player-matches-page span.challenge-outcome-locked.input-score {
    border-width: 2px;
    border-style: solid;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.55);
    cursor: help;
}

.matches-table.match-layout-table .challenge-outcome-challengeable.input-score,
.matches-table.match-layout-table td.challenge-outcome-challengeable .challenge-outcome-locked.input-score,
.player-matches-page .challenge-outcome-challengeable.input-score,
.player-matches-page td.challenge-outcome-challengeable .challenge-outcome-locked.input-score {
    border-color: #c7811d;
    background-image: linear-gradient(0deg, rgba(255, 193, 7, .20), rgba(255, 193, 7, .20));
}

.matches-table.match-layout-table .challenge-outcome-challenged.input-score,
.matches-table.match-layout-table td.challenge-outcome-challenged .challenge-outcome-locked.input-score,
.player-matches-page .challenge-outcome-challenged.input-score,
.player-matches-page td.challenge-outcome-challenged .challenge-outcome-locked.input-score {
    border-color: #b42318;
    background-image: linear-gradient(0deg, rgba(244, 67, 54, .16), rgba(244, 67, 54, .16));
}

.matches-table.match-layout-table .challenge-outcome-confirmed.input-score,
.matches-table.match-layout-table .challenge-outcome-final.input-score,
.matches-table.match-layout-table td.challenge-outcome-confirmed .challenge-outcome-locked.input-score,
.matches-table.match-layout-table td.challenge-outcome-final .challenge-outcome-locked.input-score,
.player-matches-page .challenge-outcome-confirmed.input-score,
.player-matches-page .challenge-outcome-final.input-score,
.player-matches-page td.challenge-outcome-confirmed .challenge-outcome-locked.input-score,
.player-matches-page td.challenge-outcome-final .challenge-outcome-locked.input-score {
    border-color: #667085;
    background-image: linear-gradient(0deg, rgba(102,112,133,.14), rgba(102,112,133,.14));
}

.matches-table.match-layout-table .challenge-outcome-locked.input-score.score-win,
.matches-table.match-layout-table .challenge-outcome-locked.input-score.win,
.player-matches-page .challenge-outcome-locked.input-score.score-win,
.player-matches-page .challenge-outcome-locked.input-score.win {
    background-color: var(--player-score-win-bg, #bdf8cd);
}

/* ADDED v2026-06-22.9218: Move Challenge Mode locked outcome status highlight from score pill/input to the table cell. */
.matches-table.match-layout-table td.challenge-outcome-cell,
.matches-table.match-layout-table td.challenge-outcome-locked,
.player-matches-page td.challenge-outcome-cell,
.player-matches-page td.challenge-outcome-locked {
    position: relative;
}

.matches-table.match-layout-table td.challenge-outcome-locked,
.player-matches-page td.challenge-outcome-locked {
    box-shadow: inset 0 0 0 2px rgba(102, 112, 133, .55);
    background-image: linear-gradient(0deg, rgba(102, 112, 133, .08), rgba(102, 112, 133, .08));
}

.matches-table.match-layout-table td.challenge-outcome-challengeable,
.player-matches-page td.challenge-outcome-challengeable {
    box-shadow: inset 0 0 0 2px rgba(199, 129, 29, .80);
    background-image: linear-gradient(0deg, rgba(255, 193, 7, .14), rgba(255, 193, 7, .14));
}

.matches-table.match-layout-table td.challenge-outcome-challenged,
.player-matches-page td.challenge-outcome-challenged {
    box-shadow: inset 0 0 0 2px rgba(180, 35, 24, .85);
    background-image: linear-gradient(0deg, rgba(244, 67, 54, .12), rgba(244, 67, 54, .12));
}

.matches-table.match-layout-table td.challenge-outcome-confirmed,
.matches-table.match-layout-table td.challenge-outcome-final,
.player-matches-page td.challenge-outcome-confirmed,
.player-matches-page td.challenge-outcome-final {
    box-shadow: inset 0 0 0 2px rgba(102, 112, 133, .65);
    background-image: linear-gradient(0deg, rgba(102, 112, 133, .10), rgba(102, 112, 133, .10));
}

.matches-table.match-layout-table .challenge-outcome-locked.input-score,
.matches-table.match-layout-table span.challenge-outcome-locked.input-score,
.player-matches-page .challenge-outcome-locked.input-score,
.player-matches-page span.challenge-outcome-locked.input-score {
    border-color: #c9ced6;
    border-width: 1px;
    box-shadow: none;
    background-image: none;
}

.matches-table.match-layout-table td.challenge-outcome-challengeable .challenge-outcome-locked.input-score,
.matches-table.match-layout-table td.challenge-outcome-challenged .challenge-outcome-locked.input-score,
.matches-table.match-layout-table td.challenge-outcome-confirmed .challenge-outcome-locked.input-score,
.matches-table.match-layout-table td.challenge-outcome-final .challenge-outcome-locked.input-score,
.player-matches-page td.challenge-outcome-challengeable .challenge-outcome-locked.input-score,
.player-matches-page td.challenge-outcome-challenged .challenge-outcome-locked.input-score,
.player-matches-page td.challenge-outcome-confirmed .challenge-outcome-locked.input-score,
.player-matches-page td.challenge-outcome-final .challenge-outcome-locked.input-score {
    border-color: #c9ced6;
    background-image: none;
}

.matches-table.match-layout-table .challenge-outcome-locked.input-score.score-win,
.matches-table.match-layout-table .challenge-outcome-locked.input-score.win,
.player-matches-page .challenge-outcome-locked.input-score.score-win,
.player-matches-page .challenge-outcome-locked.input-score.win {
    background-color: var(--player-score-win-bg, #bdf8cd);
}


/* PATCH 9222 - Consolidated post-9218 UI/readback implementation repair */
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link,
.matches-table.match-layout-table .matches-action-menu-panel a.matches-calendar-menu-link,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link:link,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link:visited,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link:hover,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link:focus,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link:active {
  color: inherit !important;
  font-weight: 400 !important;
  text-decoration: none !important;
  background: transparent !important;
  outline: 0 !important;
  box-shadow: none !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-text {
  color: inherit !important;
  font-weight: 400 !important;
  text-decoration: none !important;
  background: transparent !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-icon,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-icon *,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-icon::before,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-icon::after {
  outline: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
.matches-table.match-layout-table td.challenge-outcome-challengeable,
.matches-table.match-layout-table td.challenge-outcome-cell.challenge-outcome-challengeable,
.player-matches-page td.challenge-outcome-challengeable,
.player-matches-page td.challenge-outcome-cell.challenge-outcome-challengeable {
  border-color: rgba(214, 160, 48, .35) !important;
  box-shadow: none !important;
  outline: 0 !important;
  background-color: transparent !important;
}
.matches-table.match-layout-table .input-score.score-loss,
.matches-table.match-layout-table .input-score.loss,
.matches-table.match-layout-table .challenge-outcome-locked.input-score.score-loss,
.matches-table.match-layout-table .challenge-outcome-locked.input-score.loss,
.player-matches-page .input-score.score-loss,
.player-matches-page .input-score.loss,
.player-matches-page .challenge-outcome-locked.input-score.score-loss,
.player-matches-page .challenge-outcome-locked.input-score.loss {
  background: #fff !important;
  background-color: #fff !important;
  border-color: #c9d0d8 !important;
  color: inherit !important;
  box-shadow: none !important;
}
.challenge-event-modal .swal2-html-container { text-align: left !important; }
.challenge-event-review-note {
  background: #fff8d8;
  border: 1px solid #e4c96a;
  border-radius: 8px;
  padding: .75rem .9rem;
  margin: 0 0 1rem;
  color: #333;
}
.challenge-event-result-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border: 1px solid #d7dde5;
  border-radius: 8px;
  padding: .7rem .8rem;
  margin: .55rem 0;
  background: #fff;
}
.challenge-event-result-main { display: flex; flex-direction: column; gap: .25rem; }
.challenge-event-result-score { font-size: 1.05rem; }
.challenge-event-result-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  padding: .45rem .7rem;
  background: #255bb7;
  color: #fff !important;
  text-decoration: none !important;
  white-space: nowrap;
}
.challenge-event-result-button:hover, .challenge-event-result-button:focus { background: #17438d; }


/* PATCH 9224 - Posted result readback and calendar menu style enforcement */
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link,
.player-matches-page .matches-action-menu-panel a.matches-calendar-menu-link,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link:link,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link:visited,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link:hover,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link:focus,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link:active {
  color: var(--player-text-color, #1f2937) !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  font-weight: 400 !important;
  text-decoration: none !important;
}
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-text {
  color: var(--player-text-color, #1f2937) !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
  font-weight: 400 !important;
  text-decoration: none !important;
}
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-icon,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-icon *,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-icon::before,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link .matches-action-menu-icon::after {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link.matches-schedule-link--ready,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link.matches-schedule-link--set,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link.matches-schedule-link--complete {
  color: var(--player-text-color, #1f2937) !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* ADDED v2026-06-22.9226: Challenge Event modal winner/loser metadata. */
.challenge-event-result-teams{display:flex;flex-direction:column;gap:2px;margin-top:4px;font-size:.9em;color:#555;}
.challenge-event-result-score{display:block;margin-top:4px;}

/* PATCH 9227: compact Challenge Event score table */
.challenge-event-score-table {
  width: 100%;
  border-collapse: collapse;
  margin: .75rem 0 1rem;
}
.challenge-event-score-table th,
.challenge-event-score-table td {
  border: 1px solid #d5dbe5;
  padding: .45rem .55rem;
  text-align: center;
  vertical-align: middle;
}
.challenge-event-score-table th:first-child,
.challenge-event-score-table td:first-child,
.challenge-event-score-table .challenge-event-score-team-col {
  text-align: left;
  width: 42%;
}
.challenge-event-result-button--small {
  display: inline-block;
  margin-top: .25rem;
  padding: .2rem .45rem;
  font-size: .78rem;
  line-height: 1.2;
}

/* PATCH 9232 - Challenge Modal Menu Z-Index and PROD Refresh Table UI */
body.app-player .matches-table.match-layout-table td.matches-table-team-cell,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell,
.player-matches-page .matches-table.match-layout-table td.matches-table-team-cell,
.player-matches-page .matches-table.match-layout-table td.component-player-match-team-cell {
  overflow: visible !important;
}

body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-action-menu,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-action-menu,
.player-matches-page .matches-table.match-layout-table td.matches-table-team-cell .matches-action-menu,
.player-matches-page .matches-table.match-layout-table td.component-player-match-team-cell .matches-action-menu,
.matches-action-menu {
  position: relative !important;
  z-index: 1 !important;
}

body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-action-menu[open],
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-action-menu[open],
.player-matches-page .matches-table.match-layout-table td.matches-table-team-cell .matches-action-menu[open],
.player-matches-page .matches-table.match-layout-table td.component-player-match-team-cell .matches-action-menu[open],
.matches-action-menu[open] {
  z-index: 30000 !important;
}

body.app-player .matches-table.match-layout-table td.matches-table-team-cell:has(.matches-action-menu[open]),
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell:has(.matches-action-menu[open]),
.player-matches-page .matches-table.match-layout-table td.matches-table-team-cell:has(.matches-action-menu[open]),
.player-matches-page .matches-table.match-layout-table td.component-player-match-team-cell:has(.matches-action-menu[open]) {
  position: relative !important;
  z-index: 29999 !important;
}

body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-action-menu-panel,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-action-menu-panel,
.player-matches-page .matches-table.match-layout-table td.matches-table-team-cell .matches-action-menu-panel,
.player-matches-page .matches-table.match-layout-table td.component-player-match-team-cell .matches-action-menu-panel,
.matches-action-menu-panel,
.match-action-dropdown,
.match-row-menu-panel,
.match-menu-content {
  position: absolute !important;
  z-index: 30001 !important;
  overflow: visible !important;
}

body.app-player .matches-table.match-layout-table td.matches-table-team-cell .matches-action-menu > summary,
body.app-player .matches-table.match-layout-table td.component-player-match-team-cell .matches-action-menu > summary,
.player-matches-page .matches-table.match-layout-table td.matches-table-team-cell .matches-action-menu > summary,
.player-matches-page .matches-table.match-layout-table td.component-player-match-team-cell .matches-action-menu > summary,
.matches-action-menu > summary {
  position: relative !important;
  z-index: 1 !important;
}

.challenge-event-score-table th.challenge-event-team-cell,
.challenge-event-score-table .challenge-event-team-cell,
.challenge-event-score-table tbody th,
.challenge-event-score-table tbody td:first-child {
  font-weight: 400 !important;
}

.challenge-event-score-table .challenge-event-team-cell {
  line-height: 1.22 !important;
  white-space: normal !important;
}

.admin-database-tools.admin-tool-page #database-tools-refresh-test,
.admin-database-tools.admin-tool-page details#database-tools-refresh-test {
  max-width: 100% !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

.admin-database-tools.admin-tool-page details#database-tools-refresh-test > .live-prod-refresh-table-container,
.admin-database-tools.admin-tool-page details#database-tools-refresh-test > .database-tools-table-container.live-prod-refresh-table-container,
.admin-database-tools.admin-tool-page .live-prod-refresh-table-container {
  width: calc(100% - 1.1rem) !important;
  max-width: calc(100% - 1.1rem) !important;
  margin: .4rem .55rem !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
  box-sizing: border-box !important;
}

.admin-database-tools.admin-tool-page table.live-prod-refresh-table,
.admin-database-tools.admin-tool-page table.prod-refresh-sql-table,
.admin-database-tools.admin-tool-page .live-prod-refresh-table-container > table {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  table-layout: fixed !important;
  border-collapse: collapse !important;
  box-sizing: border-box !important;
}

.admin-database-tools.admin-tool-page table.live-prod-refresh-table th,
.admin-database-tools.admin-tool-page table.live-prod-refresh-table td,
.admin-database-tools.admin-tool-page table.prod-refresh-sql-table th,
.admin-database-tools.admin-tool-page table.prod-refresh-sql-table td {
  box-sizing: border-box !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: break-word !important;
}

.admin-database-tools.admin-tool-page table.live-prod-refresh-table th:first-child,
.admin-database-tools.admin-tool-page table.live-prod-refresh-table td:first-child,
.admin-database-tools.admin-tool-page table.prod-refresh-sql-table th:first-child,
.admin-database-tools.admin-tool-page table.prod-refresh-sql-table td:first-child,
.admin-database-tools.admin-tool-page table.live-prod-refresh-table .database-tools-col-setting,
.admin-database-tools.admin-tool-page table.prod-refresh-sql-table .database-tools-col-setting {
  width: 28% !important;
}

.admin-database-tools.admin-tool-page table.live-prod-refresh-table th:last-child,
.admin-database-tools.admin-tool-page table.live-prod-refresh-table td:last-child,
.admin-database-tools.admin-tool-page table.prod-refresh-sql-table th:last-child,
.admin-database-tools.admin-tool-page table.prod-refresh-sql-table td:last-child,
.admin-database-tools.admin-tool-page table.live-prod-refresh-table .database-tools-col-value,
.admin-database-tools.admin-tool-page table.prod-refresh-sql-table .database-tools-col-value {
  width: 72% !important;
}

/* PATCH 9235: place the Challenge Event modal close X in the upper-left corner. */
.swal2-popup.challenge-event-modal .swal2-close,
.swal2-popup.challenge-event-modal .challenge-event-modal-close,
.swal2-popup.challenge-event-modal .app-swal-left-close {
  left: .65rem !important;
  right: auto !important;
  top: .55rem !important;
  z-index: 20 !important;
}

.swal2-popup.challenge-event-modal .swal2-title {
  padding-left: 2.75rem !important;
  padding-right: 2.25rem !important;
}

/* PATCH 9237 - Challenge Mode scheduled/complete menu rows open Scheduler directly. */
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon {
    border-radius: .28rem !important;
    min-width: 1.55rem !important;
    width: 1.55rem !important;
    height: 1.35rem !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--set .matches-action-menu-icon {
    box-shadow: 0 0 0 2px rgba(218, 147, 22, .65) !important;
    background: rgba(218, 147, 22, .16) !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--complete .matches-action-menu-icon {
    box-shadow: 0 0 0 2px rgba(220, 38, 38, .65) !important;
    background: rgba(220, 38, 38, .16) !important;
}



/* PATCH 9238 - SweetAlert and Scheduler menu status layering repair. */
.swal2-container {
    z-index: 2147483600 !important;
}
.swal2-container .swal2-popup {
    z-index: 2147483601 !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon {
    border-radius: .14rem !important;
    min-width: 1.8rem !important;
    width: 1.8rem !important;
    max-width: 1.8rem !important;
    height: 1.45rem !important;
    min-height: 1.45rem !important;
    max-height: 1.45rem !important;
    box-shadow: none !important;
    background-clip: padding-box !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--set .matches-action-menu-icon,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--set .matches-action-menu-icon {
    border: 2px solid rgba(218, 147, 22, .8) !important;
    background: transparent !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--complete .matches-action-menu-icon,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--complete .matches-action-menu-icon {
    border: 2px solid rgba(220, 38, 38, .8) !important;
    background: transparent !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link:not(.matches-calendar-menu-link--scheduler).matches-calendar-status--ready .matches-action-menu-icon,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link:not(.matches-calendar-menu-link--scheduler).matches-calendar-status--ready .matches-action-menu-icon {
    border-radius: 999px !important;
    box-shadow: 0 0 0 2px rgba(46, 160, 67, .45) !important;
    border: 0 !important;
}

/* PATCH 9243 - Scheduler menu icon uses a rectangular outline with no tinted fill. */
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon,
body.app-player .matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon {
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 1.55rem !important;
    min-width: 1.55rem !important;
    max-width: 1.55rem !important;
    height: 1.35rem !important;
    min-height: 1.35rem !important;
    max-height: 1.35rem !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    overflow: visible !important;
    isolation: isolate !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon::after,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon::after,
body.app-player .matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon::after {
    content: '' !important;
    position: absolute !important;
    left: -.18rem !important;
    right: -.18rem !important;
    top: -.12rem !important;
    bottom: -.12rem !important;
    border: 0 !important;
    border-radius: .18rem !important;
    box-shadow: none !important;
    pointer-events: none !important;
    z-index: -1 !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--set .matches-action-menu-icon,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--set .matches-action-menu-icon,
body.app-player .matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--set .matches-action-menu-icon,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--complete .matches-action-menu-icon,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--complete .matches-action-menu-icon,
body.app-player .matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--complete .matches-action-menu-icon {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--set .matches-action-menu-icon::after,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--set .matches-action-menu-icon::after,
body.app-player .matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--set .matches-action-menu-icon::after {
    border: 2px solid rgba(218, 147, 22, .85) !important;
    background: transparent !important;
}
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--complete .matches-action-menu-icon::after,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--complete .matches-action-menu-icon::after,
body.app-player .matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler.matches-calendar-status--complete .matches-action-menu-icon::after {
    border: 2px solid rgba(220, 38, 38, .85) !important;
    background: transparent !important;
}

/* PATCH 9246: stack Challenge Event submit/cancel controls. */
.match-outcome-challenge-form .match-outcome-challenge-actions {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: .65rem !important;
}

.match-outcome-challenge-form .match-outcome-challenge-actions > button,
.match-outcome-challenge-form .match-outcome-challenge-actions > .match-outcome-challenge-cancel-button {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  text-align: center !important;
  margin: 0 !important;
}

.match-outcome-challenge-form .match-outcome-challenge-cancel-button {
  text-decoration: none !important;
}

/* PATCH 9248: Challenge Event posted-results table borders and disabled game challenge buttons. */
.challenge-event-score-table,
.challenge-event-score-table th,
.challenge-event-score-table td {
  border: 1px solid #aeb8c6 !important;
}
.challenge-event-result-button--disabled,
.challenge-event-result-button--disabled:hover,
.challenge-event-result-button--disabled:focus {
  background: #9aa3af !important;
  color: #ffffff !important;
  cursor: not-allowed !important;
  opacity: .72 !important;
  text-decoration: none !important;
}


/* PATCH 9254: Challenges nav pill contrast. */
header nav a.nav-link-challenges-attention,
header nav a.nav-link-challenges-attention:link,
header nav a.nav-link-challenges-attention:visited,
header nav a.nav-link-challenges-attention:hover,
header nav a.nav-link-challenges-attention:active,
header nav a.nav-link-challenges-attention:focus,
body.app-admin header nav a.nav-link-challenges-attention,
body.admin-surface header nav a.nav-link-challenges-attention,
nav a.nav-link-challenges-attention,
nav a.nav-link-challenges-attention:link,
nav a.nav-link-challenges-attention:visited,
nav a.nav-link-challenges-attention:hover,
nav a.nav-link-challenges-attention:active,
nav a.nav-link-challenges-attention:focus {
    color: #000000 !important;
}
header nav a.nav-link-challenges-attention .nav-approval-count,
body.app-admin header nav a.nav-link-challenges-attention .nav-approval-count,
body.admin-surface header nav a.nav-link-challenges-attention .nav-approval-count,
nav a.nav-link-challenges-attention .nav-approval-count {
    color: #000000 !important;
}
.match-outcome-challenge-support-section > summary {
    cursor: pointer;
    font-size: 1.1rem;
    padding: .35rem 0;
}
.match-outcome-challenge-support-content {
    margin-top: .85rem;
}


/* PATCH 9255 - Challenges table column focus and horizontal scrolling */
.match-outcome-challenge-primary-list {
  max-width: 100%;
  overflow: hidden;
}
.match-outcome-challenge-table-container {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
}
.match-outcome-challenge-admin-table {
  width: 100%;
  min-width: 68rem;
  max-width: none;
  table-layout: auto;
  border-collapse: collapse;
}
.match-outcome-challenge-admin-table th,
.match-outcome-challenge-admin-table td {
  vertical-align: top;
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: normal;
}
.match-outcome-challenge-admin-table th:nth-child(1),
.match-outcome-challenge-admin-table td:nth-child(1) { min-width: 6rem; }
.match-outcome-challenge-admin-table th:nth-child(2),
.match-outcome-challenge-admin-table td:nth-child(2) { min-width: 7rem; }
.match-outcome-challenge-admin-table th:nth-child(4),
.match-outcome-challenge-admin-table td:nth-child(4) { min-width: 11rem; }
.match-outcome-challenge-admin-table th:nth-child(5),
.match-outcome-challenge-admin-table td:nth-child(5) { min-width: 10rem; }
.match-outcome-challenge-admin-table th:nth-child(9),
.match-outcome-challenge-admin-table td:nth-child(9) { min-width: 16rem; }


/* PATCH 9256 - Challenges table action layout and scroll container repair */
.match-outcome-challenge-table-scroll {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto !important;
  overflow-y: visible;
  -webkit-overflow-scrolling: touch;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
  margin: 0 !important;
}
.match-outcome-challenge-admin-table {
  min-width: 56rem;
}
.match-outcome-challenge-admin-table th:nth-child(8),
.match-outcome-challenge-admin-table td:nth-child(8) {
  min-width: 18rem;
}
.match-outcome-challenge-action-form input[type="text"] {
  width: 100%;
  box-sizing: border-box;
  margin-bottom: .4rem;
}
.match-outcome-challenge-action-buttons {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  gap: .35rem;
  align-items: center;
}
.match-outcome-challenge-action-buttons button {
  width: auto !important;
  min-width: 5.25rem;
  flex: 1 1 0;
  margin: 0 !important;
  padding: .45rem .6rem !important;
  white-space: nowrap;
}


/* PATCH 9257 - Resolve Challenge workflow, active-challenge outline only, and nav contrast */
header nav a.nav-link-challenges-attention,
header nav a.nav-link-challenges-attention:link,
header nav a.nav-link-challenges-attention:visited,
header nav a.nav-link-challenges-attention:hover,
header nav a.nav-link-challenges-attention:focus {
  color: #000 !important;
  background: #fff2a8 !important;
  border-color: #f3c942 !important;
}
header nav a.nav-link-challenges-attention .nav-approval-count {
  color: #000 !important;
  background: #fff !important;
  border-color: #f3c942 !important;
}
.matches-table.match-layout-table td.challenge-outcome-cell,
.matches-table.match-layout-table td.challenge-outcome-locked,
.matches-table.match-layout-table td.challenge-outcome-challengeable,
.matches-table.match-layout-table td.challenge-outcome-confirmed,
.matches-table.match-layout-table td.challenge-outcome-final,
.player-matches-page td.challenge-outcome-cell,
.player-matches-page td.challenge-outcome-locked,
.player-matches-page td.challenge-outcome-challengeable,
.player-matches-page td.challenge-outcome-confirmed,
.player-matches-page td.challenge-outcome-final {
  background-image: none !important;
  box-shadow: none !important;
}
.matches-table.match-layout-table td.challenge-outcome-challenged,
.player-matches-page td.challenge-outcome-challenged {
  background-image: none !important;
  box-shadow: inset 0 0 0 2px #b45309 !important;
}
.matches-table.match-layout-table .challenge-outcome-challengeable.input-score,
.matches-table.match-layout-table .challenge-outcome-challenged.input-score,
.matches-table.match-layout-table .challenge-outcome-confirmed.input-score,
.matches-table.match-layout-table .challenge-outcome-final.input-score,
.player-matches-page .challenge-outcome-challengeable.input-score,
.player-matches-page .challenge-outcome-challenged.input-score,
.player-matches-page .challenge-outcome-confirmed.input-score,
.player-matches-page .challenge-outcome-final.input-score {
  background-image: none !important;
}
.match-outcome-challenge-resolve-form {
  min-width: 24rem;
}
.match-outcome-challenge-resolve-grid {
  display: flex;
  flex-wrap: nowrap;
  gap: .35rem;
  align-items: center;
  margin-bottom: .35rem;
}
.match-outcome-challenge-resolve-grid select {
  flex: 1 1 14rem;
  min-width: 12rem;
}
.match-outcome-challenge-score-inputs {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: .2rem;
  white-space: nowrap;
}
.match-outcome-challenge-score-inputs input[type='number'] {
  width: 4.5rem;
  min-width: 4.5rem;
}
.match-outcome-challenge-action-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  align-items: center;
}
.match-outcome-challenge-action-buttons button {
  flex: 1 1 7rem;
  white-space: nowrap;
}


/* PATCH 9258 - Remove residual score/event cell fills; keep active-challenge outline only */
.matches-table.match-layout-table td.challenge-outcome-cell,
.matches-table.match-layout-table td.challenge-outcome-locked,
.matches-table.match-layout-table td.challenge-outcome-challengeable,
.matches-table.match-layout-table td.challenge-outcome-confirmed,
.matches-table.match-layout-table td.challenge-outcome-final,
.player-matches-page td.challenge-outcome-cell,
.player-matches-page td.challenge-outcome-locked,
.player-matches-page td.challenge-outcome-challengeable,
.player-matches-page td.challenge-outcome-confirmed,
.player-matches-page td.challenge-outcome-final {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}
.matches-table.match-layout-table td.challenge-outcome-challenged,
.player-matches-page td.challenge-outcome-challenged {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: inset 0 0 0 2px #b45309 !important;
}
.matches-table.match-layout-table .challenge-outcome-challengeable.input-score,
.matches-table.match-layout-table .challenge-outcome-challenged.input-score,
.matches-table.match-layout-table .challenge-outcome-confirmed.input-score,
.matches-table.match-layout-table .challenge-outcome-final.input-score,
.player-matches-page .challenge-outcome-challengeable.input-score,
.player-matches-page .challenge-outcome-challenged.input-score,
.player-matches-page .challenge-outcome-confirmed.input-score,
.player-matches-page .challenge-outcome-final.input-score {
  background-image: none !important;
}


/* PATCH 9259 - Remove higher-specificity challengeable cell background fill */
.matches-table.match-layout-table td.challenge-outcome-cell.challenge-outcome-challengeable,
.matches-table.match-layout-table td.challenge-outcome-cell.challenge-outcome-locked,
.matches-table.match-layout-table td.challenge-outcome-cell.challenge-outcome-confirmed,
.matches-table.match-layout-table td.challenge-outcome-cell.challenge-outcome-final,
.player-matches-page td.challenge-outcome-cell.challenge-outcome-challengeable,
.player-matches-page td.challenge-outcome-cell.challenge-outcome-locked,
.player-matches-page td.challenge-outcome-cell.challenge-outcome-confirmed,
.player-matches-page td.challenge-outcome-cell.challenge-outcome-final {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}
.matches-table.match-layout-table td.challenge-outcome-cell.challenge-outcome-challenged,
.player-matches-page td.challenge-outcome-cell.challenge-outcome-challenged {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: inset 0 0 0 2px #b45309 !important;
}


/* PATCH 9260 - Use player-row grey background for posted score/event game cells */
.matches-table.match-layout-table td.challenge-outcome-cell,
.matches-table.match-layout-table td.challenge-outcome-locked,
.matches-table.match-layout-table td.challenge-outcome-challengeable,
.matches-table.match-layout-table td.challenge-outcome-confirmed,
.matches-table.match-layout-table td.challenge-outcome-final,
.player-matches-page td.challenge-outcome-cell,
.player-matches-page td.challenge-outcome-locked,
.player-matches-page td.challenge-outcome-challengeable,
.player-matches-page td.challenge-outcome-confirmed,
.player-matches-page td.challenge-outcome-final {
  background: #f2f2f2 !important;
  background-color: #f2f2f2 !important;
  background-image: none !important;
  box-shadow: none !important;
}
.matches-table.match-layout-table td.challenge-outcome-cell.challenge-outcome-challenged,
.matches-table.match-layout-table td.challenge-outcome-challenged,
.player-matches-page td.challenge-outcome-cell.challenge-outcome-challenged,
.player-matches-page td.challenge-outcome-challenged {
  background: #f2f2f2 !important;
  background-color: #f2f2f2 !important;
  background-image: none !important;
  box-shadow: inset 0 0 0 2px #b45309 !important;
}

/* PATCH 9261 - Force posted score/event game columns to player-row grey background */
body.app-player .matches-table.match-layout-table td.component-player-score-cell.challenge-score-existing-cell,
body.app-player .matches-table.match-layout-table td.matches-score-cell.challenge-score-existing-cell,
body.app-player .matches-table.match-layout-table td.challenge-score-render-cell.challenge-score-existing-cell,
.player-matches-page .matches-table.match-layout-table td.component-player-score-cell.challenge-score-existing-cell,
.player-matches-page .matches-table.match-layout-table td.matches-score-cell.challenge-score-existing-cell,
.player-matches-page .matches-table.match-layout-table td.challenge-score-render-cell.challenge-score-existing-cell {
  background: #f2f2f2 !important;
  background-color: #f2f2f2 !important;
  background-image: none !important;
}
body.app-player .matches-table.match-layout-table td.component-player-score-cell.challenge-score-existing-cell.challenge-outcome-challenged,
body.app-player .matches-table.match-layout-table td.matches-score-cell.challenge-score-existing-cell.challenge-outcome-challenged,
body.app-player .matches-table.match-layout-table td.challenge-score-render-cell.challenge-score-existing-cell.challenge-outcome-challenged,
.player-matches-page .matches-table.match-layout-table td.component-player-score-cell.challenge-score-existing-cell.challenge-outcome-challenged,
.player-matches-page .matches-table.match-layout-table td.matches-score-cell.challenge-score-existing-cell.challenge-outcome-challenged,
.player-matches-page .matches-table.match-layout-table td.challenge-score-render-cell.challenge-score-existing-cell.challenge-outcome-challenged {
  background: #f2f2f2 !important;
  background-color: #f2f2f2 !important;
  background-image: none !important;
  box-shadow: inset 0 0 0 2px #b45309 !important;
}



/* PATCH 9262 - Score/event game cells follow their row background */
body.app-player .matches-table.match-layout-table.matches-table--current-player-pool td.component-player-score-cell.challenge-score-existing-cell,
body.app-player .matches-table.match-layout-table.matches-table--current-player-pool td.matches-score-cell.challenge-score-existing-cell,
body.app-player .matches-table.match-layout-table.matches-table--current-player-pool td.challenge-score-render-cell.challenge-score-existing-cell,
.player-matches-page .matches-table.match-layout-table.matches-table--current-player-pool td.component-player-score-cell.challenge-score-existing-cell,
.player-matches-page .matches-table.match-layout-table.matches-table--current-player-pool td.matches-score-cell.challenge-score-existing-cell,
.player-matches-page .matches-table.match-layout-table.matches-table--current-player-pool td.challenge-score-render-cell.challenge-score-existing-cell {
  background: #f7f7f7 !important;
  background-color: #f7f7f7 !important;
  background-image: none !important;
}

body.app-player .matches-table.match-layout-table.matches-table--current-player-pool tr.component-player-match-row--current-player-match td.component-player-score-cell.challenge-score-existing-cell,
body.app-player .matches-table.match-layout-table.matches-table--current-player-pool tr.component-player-match-row--current-player-match td.matches-score-cell.challenge-score-existing-cell,
body.app-player .matches-table.match-layout-table.matches-table--current-player-pool tr.component-player-match-row--current-player-match td.challenge-score-render-cell.challenge-score-existing-cell,
.player-matches-page .matches-table.match-layout-table.matches-table--current-player-pool tr.component-player-match-row--current-player-match td.component-player-score-cell.challenge-score-existing-cell,
.player-matches-page .matches-table.match-layout-table.matches-table--current-player-pool tr.component-player-match-row--current-player-match td.matches-score-cell.challenge-score-existing-cell,
.player-matches-page .matches-table.match-layout-table.matches-table--current-player-pool tr.component-player-match-row--current-player-match td.challenge-score-render-cell.challenge-score-existing-cell {
  background: #eeeeee !important;
  background-color: #eeeeee !important;
  background-image: none !important;
}

body.app-player .matches-table.match-layout-table:not(.matches-table--current-player-pool) td.component-player-score-cell.challenge-score-existing-cell,
body.app-player .matches-table.match-layout-table:not(.matches-table--current-player-pool) td.matches-score-cell.challenge-score-existing-cell,
body.app-player .matches-table.match-layout-table:not(.matches-table--current-player-pool) td.challenge-score-render-cell.challenge-score-existing-cell,
.player-matches-page .matches-table.match-layout-table:not(.matches-table--current-player-pool) td.component-player-score-cell.challenge-score-existing-cell,
.player-matches-page .matches-table.match-layout-table:not(.matches-table--current-player-pool) td.matches-score-cell.challenge-score-existing-cell,
.player-matches-page .matches-table.match-layout-table:not(.matches-table--current-player-pool) td.challenge-score-render-cell.challenge-score-existing-cell {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
}

body.app-player .matches-table.match-layout-table td.component-player-score-cell.challenge-score-existing-cell.challenge-outcome-challenged,
body.app-player .matches-table.match-layout-table td.matches-score-cell.challenge-score-existing-cell.challenge-outcome-challenged,
body.app-player .matches-table.match-layout-table td.challenge-score-render-cell.challenge-score-existing-cell.challenge-outcome-challenged,
.player-matches-page .matches-table.match-layout-table td.component-player-score-cell.challenge-score-existing-cell.challenge-outcome-challenged,
.player-matches-page .matches-table.match-layout-table td.matches-score-cell.challenge-score-existing-cell.challenge-outcome-challenged,
.player-matches-page .matches-table.match-layout-table td.challenge-score-render-cell.challenge-score-existing-cell.challenge-outcome-challenged {
  box-shadow: inset 0 0 0 2px #b45309 !important;
}


/* PATCH 9263 - Matches/challenges cleanup and inline resolution controls. */
.matches-table.match-layout-table td.component-player-score-cell,
.matches-table.match-layout-table td.matches-score-cell,
.matches-table.match-layout-table td.challenge-score-render-cell,
.player-matches-page .matches-table.match-layout-table td.component-player-score-cell,
.player-matches-page .matches-table.match-layout-table td.matches-score-cell,
.player-matches-page .matches-table.match-layout-table td.challenge-score-render-cell {
  border: 1px solid rgba(0,0,0,.16) !important;
}
.match-outcome-challenge-action-buttons {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: .35rem !important;
  align-items: stretch !important;
}
.match-outcome-challenge-action-buttons button {
  flex: 1 1 0 !important;
  min-width: 5.25rem !important;
  margin: 0 !important;
  white-space: nowrap !important;
}
.match-outcome-challenge-score-inputs input.match-outcome-challenge-score-locked,
.match-outcome-challenge-score-inputs input:disabled {
  opacity: .78;
  cursor: not-allowed;
}


/* PATCH 9268 - Compact Challenges nav pill for mobile and shared header layouts. */
body.app-admin header nav a.nav-link-challenges-attention,
body.admin-surface header nav a.nav-link-challenges-attention,
body.app-player header nav a.nav-link-challenges-attention,
body.player-surface header nav a.nav-link-challenges-attention,
header nav a.nav-link-challenges-attention,
nav a.nav-link-challenges-attention {
  min-height: 1.65rem !important;
  padding: 0.14rem 0.38rem !important;
  column-gap: 0.2rem !important;
  line-height: 1.05 !important;
}
body.app-admin header nav a.nav-link-challenges-attention .nav-approval-count,
body.admin-surface header nav a.nav-link-challenges-attention .nav-approval-count,
body.app-player header nav a.nav-link-challenges-attention .nav-approval-count,
body.player-surface header nav a.nav-link-challenges-attention .nav-approval-count,
header nav a.nav-link-challenges-attention .nav-approval-count,
nav a.nav-link-challenges-attention .nav-approval-count {
  min-width: 1.05rem !important;
  height: 1.05rem !important;
  padding: 0 0.16rem !important;
  margin-left: 0.08rem !important;
  font-size: 0.78em !important;
}
@media (max-width: 560px) {
  body.app-admin header nav .nav-primary-row,
  body.admin-surface header nav .nav-primary-row,
  body.app-player header nav .nav-primary-row,
  body.player-surface header nav .nav-primary-row {
    column-gap: 0.55rem !important;
  }
  body.app-admin header nav a.nav-link-challenges-attention,
  body.admin-surface header nav a.nav-link-challenges-attention,
  body.app-player header nav a.nav-link-challenges-attention,
  body.player-surface header nav a.nav-link-challenges-attention,
  header nav a.nav-link-challenges-attention,
  nav a.nav-link-challenges-attention {
    padding: 0.12rem 0.32rem !important;
    font-size: 0.94em !important;
  }
}

/** ADDED v9516
 * Approval Mode score winner display hardening.
 * Some pending/readonly score paths apply cell-level approval backgrounds after
 * the generic .score-win rule. Keep the numeric winning score chip green for
 * all Matches score markup variants without changing score data or workflow
 * behavior.
 */
.matches-table.match-layout-table td.matches-score-cell input.input-score.win,
.matches-table.match-layout-table td.matches-score-cell input.input-score.score-win,
.matches-table.match-layout-table td.matches-score-cell span.input-score.win,
.matches-table.match-layout-table td.matches-score-cell span.input-score.score-win,
.matches-table.match-layout-table td.pending-game-change-cell input.input-score.win,
.matches-table.match-layout-table td.pending-game-change-cell input.input-score.score-win,
.matches-table.match-layout-table td.pending-game-change-cell span.input-score.win,
.matches-table.match-layout-table td.pending-game-change-cell span.input-score.score-win,
.matches-table.match-layout-table td.pending-game-change-cell input.input-score.pending-game-score-winner,
.matches-table.match-layout-table td.pending-game-change-cell span.input-score.pending-game-score-winner,
.player-matches-page td.matches-score-cell input.input-score.win,
.player-matches-page td.matches-score-cell input.input-score.score-win,
.player-matches-page td.matches-score-cell span.input-score.win,
.player-matches-page td.matches-score-cell span.input-score.score-win,
.player-matches-page td.pending-game-change-cell input.input-score.win,
.player-matches-page td.pending-game-change-cell input.input-score.score-win,
.player-matches-page td.pending-game-change-cell span.input-score.win,
.player-matches-page td.pending-game-change-cell span.input-score.score-win,
.player-matches-page td.pending-game-change-cell input.input-score.pending-game-score-winner,
.player-matches-page td.pending-game-change-cell span.input-score.pending-game-score-winner,
body.app-player .matches-table.match-layout-table td.matches-score-cell input.input-score.win,
body.app-player .matches-table.match-layout-table td.matches-score-cell input.input-score.score-win,
body.app-player .matches-table.match-layout-table td.matches-score-cell span.input-score.win,
body.app-player .matches-table.match-layout-table td.matches-score-cell span.input-score.score-win,
body.app-player .matches-table.match-layout-table td.pending-game-change-cell input.input-score.win,
body.app-player .matches-table.match-layout-table td.pending-game-change-cell input.input-score.score-win,
body.app-player .matches-table.match-layout-table td.pending-game-change-cell span.input-score.win,
body.app-player .matches-table.match-layout-table td.pending-game-change-cell span.input-score.score-win,
body.app-player .matches-table.match-layout-table td.pending-game-change-cell input.input-score.pending-game-score-winner,
body.app-player .matches-table.match-layout-table td.pending-game-change-cell span.input-score.pending-game-score-winner,
body.app-player .player-matches-page td.matches-score-cell input.input-score.win,
body.app-player .player-matches-page td.matches-score-cell input.input-score.score-win,
body.app-player .player-matches-page td.matches-score-cell span.input-score.win,
body.app-player .player-matches-page td.matches-score-cell span.input-score.score-win,
body.app-player .player-matches-page td.pending-game-change-cell input.input-score.win,
body.app-player .player-matches-page td.pending-game-change-cell input.input-score.score-win,
body.app-player .player-matches-page td.pending-game-change-cell span.input-score.win,
body.app-player .player-matches-page td.pending-game-change-cell span.input-score.score-win,
body.app-player .player-matches-page td.pending-game-change-cell input.input-score.pending-game-score-winner,
body.app-player .player-matches-page td.pending-game-change-cell span.input-score.pending-game-score-winner {
    background-color: var(--color-game-win-bg, #d1fae5) !important;
    background: var(--color-game-win-bg, #d1fae5) !important;
    color: var(--color-text, #111827) !important;
    -webkit-text-fill-color: var(--color-text, #111827) !important;
    border-color: var(--color-border, #cbd5e1) !important;
    border-radius: var(--player-score-radius, var(--player-score-badge-radius, 0.55rem)) !important;
    background-clip: padding-box !important;
    opacity: 1 !important;
}


/** ADDED v9518
 * Approval Mode winner-chip final guard.
 * Some PROD/theme bundles can apply pending-cell score backgrounds after the normal win selectors. The rendered data-score-highlight marker is display-only and keeps every numeric winner visibly green.
 */
.matches-table.match-layout-table td.matches-score-cell .input-score[data-score-highlight="winner"],
.matches-table.match-layout-table td.pending-game-change-cell .input-score[data-score-highlight="winner"],
.player-matches-page td.matches-score-cell .input-score[data-score-highlight="winner"],
.player-matches-page td.pending-game-change-cell .input-score[data-score-highlight="winner"],
body.app-player .matches-table.match-layout-table td.matches-score-cell .input-score[data-score-highlight="winner"],
body.app-player .matches-table.match-layout-table td.pending-game-change-cell .input-score[data-score-highlight="winner"],
body.app-player .player-matches-page td.matches-score-cell .input-score[data-score-highlight="winner"],
body.app-player .player-matches-page td.pending-game-change-cell .input-score[data-score-highlight="winner"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background-color: #d1fae5 !important;
    background: #d1fae5 !important;
    color: #111827 !important;
    -webkit-text-fill-color: #111827 !important;
    border-color: #cbd5e1 !important;
    border-radius: 0.55rem !important;
    background-clip: padding-box !important;
    opacity: 1 !important;
}


/* ADDED v2026-06-25.9701: Force every availability Calendar date cell to render weekday and month/day on separate lines. */
.table-calendar td.datepad .calendar-date-stack,
.table-calendar td.calendar-date-cell .calendar-date-stack {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    white-space: normal !important;
    line-height: 1.05 !important;
}
.table-calendar td.datepad .calendar-date-dow,
.table-calendar td.datepad .calendar-date-md,
.table-calendar td.calendar-date-cell .calendar-date-dow,
.table-calendar td.calendar-date-cell .calendar-date-md {
    display: block !important;
    width: 100% !important;
    white-space: nowrap !important;
    line-height: 1.05 !important;
    text-align: center !important;
}
.friendlies-mobile-chat-row {
    margin: .35rem 0 .2rem !important;
}
.friendlies-sms-chat-link {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}


/* PATCH 9779: remove residual orange/red Schedule menu icon outline and keep label neutral. */
.matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon,
.matches-action-menu-panel a.matches-calendar-menu-link--scheduler .matches-action-menu-icon,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon,
body.app-player .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon {
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
.matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon::before,
.matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon::after,
.matches-action-menu-panel a.matches-calendar-menu-link--scheduler .matches-action-menu-icon::before,
.matches-action-menu-panel a.matches-calendar-menu-link--scheduler .matches-action-menu-icon::after,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon::before,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon::after,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon::before,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon::after,
body.app-player .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon::before,
body.app-player .matches-action-menu-panel .matches-calendar-menu-link--scheduler .matches-action-menu-icon::after {
    content: none !important;
    display: none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

/* PATCH 10072: Challenge Event disabled state and void pill parity. */
.swal2-popup.challenge-event-modal .challenge-event-score-table .challenge-event-result-button--disabled,
.swal2-container .challenge-event-score-table .challenge-event-result-button--disabled {
    opacity: .55 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    filter: grayscale(.15) !important;
}
.swal2-popup.challenge-event-modal .challenge-event-score-table .challenge-event-status-cell .challenge-event-status-badge.void,
.swal2-popup.challenge-event-modal .challenge-event-score-table span.challenge-event-status-badge.void,
.swal2-container .challenge-event-score-table .challenge-event-status-cell .challenge-event-status-badge.void,
.swal2-container .challenge-event-score-table span.challenge-event-status-badge.void {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 4.25rem !important;
    width: auto !important;
    height: 2.05rem !important;
    min-height: 2.05rem !important;
    padding: 0 .95rem !important;
    border-radius: 9999px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    box-sizing: border-box !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    text-decoration: none !important;
    text-shadow: none !important;
}


/* ADDED v2026-07-01.10200: Team Profile roster initials/avatar size parity.
 * DisplayPlayerPhoto('profile-card') returns profile-initials-avatar-card when a
 * player has no photo, while uploaded photos render inside profile-photo-frame.
 * Scope the card fallback into the same 88/72px roster-avatar contract so
 * initials and photos occupy the same visual box.
 */
body.app-player :where(.team-profile-member-card, .profile-photo-card, .team-profile-member-photo-link)
:where(.profile-initials-avatar-card) {
    width: var(--player-avatar-md, 88px) !important;
    height: var(--player-avatar-md, 88px) !important;
    min-width: var(--player-avatar-md, 88px) !important;
    min-height: var(--player-avatar-md, 88px) !important;
    max-width: var(--player-avatar-md, 88px) !important;
    max-height: var(--player-avatar-md, 88px) !important;
    flex: 0 0 var(--player-avatar-md, 88px) !important;
    font-size: 1.75rem !important;
    line-height: 1 !important;
    object-fit: cover;
}

@media (max-width: 520px) {
    body.app-player :where(.team-profile-member-card, .profile-photo-card, .team-profile-member-photo-link)
    :where(.profile-initials-avatar-card) {
        width: var(--player-avatar-sm, 72px) !important;
        height: var(--player-avatar-sm, 72px) !important;
        min-width: var(--player-avatar-sm, 72px) !important;
        min-height: var(--player-avatar-sm, 72px) !important;
        max-width: var(--player-avatar-sm, 72px) !important;
        max-height: var(--player-avatar-sm, 72px) !important;
        flex-basis: var(--player-avatar-sm, 72px) !important;
        font-size: 1.55rem !important;
    }
}


/* ADDED v2026-07-01.10201: Mobile Team Profile initials avatar parity.
 * v10200 fixed desktop, but mobile theme rules normalize .profile-photo-frame,
 * .profile-initials-avatar-profile, .profile-photo-image, and
 * .profile-photo-fallback-avatar only. Add .profile-initials-avatar-card to the
 * same mobile contract and keep uploaded photos/initials aligned.
 */
@media (max-width: 720px) {
    body.app-player :where(.team-profile-member-card, .profile-photo-card, .team-profile-member-photo-link)
    :where(.profile-initials-avatar-card) {
        width: var(--player-avatar-sm, 72px) !important;
        height: var(--player-avatar-sm, 72px) !important;
        min-width: var(--player-avatar-sm, 72px) !important;
        min-height: var(--player-avatar-sm, 72px) !important;
        max-width: var(--player-avatar-sm, 72px) !important;
        max-height: var(--player-avatar-sm, 72px) !important;
        inline-size: var(--player-avatar-sm, 72px) !important;
        block-size: var(--player-avatar-sm, 72px) !important;
        flex: 0 0 var(--player-avatar-sm, 72px) !important;
        aspect-ratio: 1 / 1 !important;
        border-radius: 50% !important;
        box-sizing: border-box !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        align-self: center !important;
        font-size: 1.55rem !important;
        line-height: 1 !important;
        overflow: hidden !important;
    }

    body.app-player :where(.team-profile-member-card, .profile-photo-card, .team-profile-member-photo-link)
    :where(.profile-photo-frame, .profile-initials-avatar-profile, .profile-photo-image, .profile-photo-fallback-avatar, .profile-initials-avatar-card) {
        width: var(--player-avatar-sm, 72px) !important;
        height: var(--player-avatar-sm, 72px) !important;
        min-width: var(--player-avatar-sm, 72px) !important;
        min-height: var(--player-avatar-sm, 72px) !important;
        max-width: var(--player-avatar-sm, 72px) !important;
        max-height: var(--player-avatar-sm, 72px) !important;
        flex-basis: var(--player-avatar-sm, 72px) !important;
    }
}


/* ADDED v2026-07-01.10203: Advanced Stats horizontal scroll/parity after DUPR column.
 * The DUPR column extends the Advanced Stats table. Keep Teams/Players tables
 * horizontally scrollable instead of clipping the final advanced columns.
 */
.stats-table-container,
.component-player-stats-table-wrap,
.ui-player-table-wrap.component-player-table-scroll {
    overflow-x: auto !important;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
}

.stats-table-container .stats-table,
.component-player-stats-table-wrap .stats-table,
.component-player-table--stats {
    width: max-content;
    min-width: 100%;
}

.stats-table-container .stats-dupr-rating-stat,
.component-player-stats-table-wrap .stats-dupr-rating-stat {
    white-space: nowrap;
    min-width: 4.75rem;
}


/* ADDED v2026-07-01.10204: Players Advanced Stats scroll containment.
 * v10203 made generic stats wrappers scrollable, but the Players page can still
 * clip the expanded table when a parent layout expands to table width or hides
 * overflow. This patch constrains the Players table's ancestors and the emitted
 * DisplayStatsHeader wrapper so the final DUPR column is reachable by horizontal
 * scrolling inside the table area.
 */
body.app-player .player-players-page,
body.app-player .player-players-page--list,
body.app-player .players-page,
body.app-player .player-page,
body.app-player main.player-page,
body.app-player .player-layout-page,
body.app-player .player-content,
body.app-player .page-content,
body.app-player .content,
body.app-player .main-content {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: visible;
}

body.app-player .stats-table-container.stats-context-players,
body.app-player .component-player-stats-table-wrap.stats-context-players,
body.app-player .ui-player-table-wrap.stats-context-players,
body.app-player [data-stats-context="players"] {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
    box-sizing: border-box !important;
    position: relative;
    contain: inline-size;
}

body.app-player .stats-table-container.stats-context-players > table,
body.app-player .component-player-stats-table-wrap.stats-context-players > table,
body.app-player .ui-player-table-wrap.stats-context-players > table,
body.app-player [data-stats-context="players"] > table,
body.app-player .stats-context-players table.component-player-table--stats {
    width: max-content !important;
    min-width: 100% !important;
    table-layout: auto !important;
}

body.app-player .stats-context-players th,
body.app-player .stats-context-players td {
    white-space: nowrap;
}

body.app-player .stats-context-players .stats-player-cell {
    position: sticky;
    left: 0;
    z-index: 2;
    background: inherit;
}


/* ADDED v2026-07-01.10205: Deployment Upload 3x3 progress phase grid. */
.admin-deployment-upload-progress-grid {
    display: grid;
    grid-template-columns: max-content minmax(4rem, max-content) minmax(12rem, 1fr);
    align-items: center;
    column-gap: .5rem;
    row-gap: .35rem;
    max-width: 36rem;
}

.admin-deployment-upload-progress-label {
    font-weight: 600;
}

.admin-deployment-upload-progress-percent {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.admin-deployment-upload-progress-bar-cell progress {
    width: 100%;
    height: .85rem;
}


/** ADDED v10464
 *  Theme-level fallback: forfeit state wins over normal loss styling. */
body.app-player .matches-table.match-layout-table td.matches-score-cell input.input-score.forfeit-score,
body.app-player .matches-table.match-layout-table td.matches-score-cell span.input-score.forfeit-score,
body.app-player .player-matches-page td.matches-score-cell input.input-score.forfeit-score,
body.app-player .player-matches-page td.matches-score-cell span.input-score.forfeit-score {
    background-color: var(--player-score-status-forfeit-bg, var(--color-status-forfeit-bg, #bae1ff)) !important;
    background: var(--player-score-status-forfeit-bg, var(--color-status-forfeit-bg, #bae1ff)) !important;
    border-color: var(--color-pastel-blue, #bae1ff) !important;
    background-clip: padding-box !important;
}

/** ADDED v10466: Challenge-locked pending forfeit loss chips must use the standard forfeit blue.
 *  This targets the actual rendered score-chip contract observed in TEST:
 *  data-pending-status="forfeit" + data-score-outcome="loss".
 */
body.app-player .matches-table.match-layout-table span.input-score.player-score-badge[data-pending-status="forfeit"][data-score-outcome="loss"],
body.app-player .matches-table span.input-score.player-score-badge[data-pending-status="forfeit"][data-score-outcome="loss"],
body.app-player :where(.match-container, .matches-container) span.input-score.player-score-badge[data-pending-status="forfeit"][data-score-outcome="loss"],
span.input-score.player-score-badge[data-pending-status="forfeit"][data-score-outcome="loss"] {
    background-color: var(--player-score-status-forfeit-bg, var(--color-status-forfeit-bg)) !important;
    border-color: var(--color-pastel-blue) !important;
    background-clip: padding-box !important;
}



/* PATCH 10720 - definitive match hamburger Schedule layout and completed halo cleanup.
   Earlier theme-layer rules reintroduced a scheduler rectangle around the Schedule icon.
   The hamburger row now uses one fixed two-column grid, and the completed state is shown
   only by the explicit nested circular halo. */
body.app-player .matches-action-menu-panel,
body.app-player .matches-action-menu[open] .matches-action-menu-panel,
.player-matches-page .matches-action-menu-panel,
.matches-table.match-layout-table .matches-action-menu-panel {
    --match-menu-icon-col-width: 1.65rem !important;
}
body.app-player .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link),
body.app-player .matches-action-menu[open] .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link),
.player-matches-page .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link),
.matches-table.match-layout-table .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) {
    display: grid !important;
    grid-template-columns: var(--match-menu-icon-col-width) max-content !important;
    align-items: center !important;
    justify-content: start !important;
    justify-items: start !important;
    column-gap: .55rem !important;
    min-height: 2.25rem !important;
    padding: .42rem .75rem .42rem .65rem !important;
    line-height: 1.2 !important;
    text-align: left !important;
}
body.app-player .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > :is(.matches-action-menu-icon, .matches-calendar-state-icon, .matches-scouting-state-icon),
body.app-player .matches-action-menu[open] .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > :is(.matches-action-menu-icon, .matches-calendar-state-icon, .matches-scouting-state-icon),
.player-matches-page .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > :is(.matches-action-menu-icon, .matches-calendar-state-icon, .matches-scouting-state-icon),
.matches-table.match-layout-table .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > :is(.matches-action-menu-icon, .matches-calendar-state-icon, .matches-scouting-state-icon) {
    grid-column: 1 !important;
    grid-row: 1 !important;
    justify-self: center !important;
    align-self: center !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 1.25rem !important;
    min-width: 1.25rem !important;
    max-width: 1.25rem !important;
    height: 1.25rem !important;
    min-height: 1.25rem !important;
    max-height: 1.25rem !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
    position: relative !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border-radius: 999px !important;
    overflow: visible !important;
}
body.app-player .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > .matches-action-menu-text,
body.app-player .matches-action-menu[open] .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > .matches-action-menu-text,
.player-matches-page .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > .matches-action-menu-text,
.matches-table.match-layout-table .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > .matches-action-menu-text {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: start !important;
    align-self: center !important;
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
    text-align: left !important;
    white-space: nowrap !important;
}
body.app-player .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete {
    color: var(--player-text-color, #1f2937) !important;
    -webkit-text-fill-color: currentColor !important;
    background: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    text-decoration: none !important;
}
body.app-player .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-action-menu-icon,
body.app-player .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-calendar-state-icon,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-action-menu-icon,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-calendar-state-icon,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-action-menu-icon,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-calendar-state-icon {
    color: var(--player-text-color, #1f2937) !important;
    background: transparent !important;
    background-color: transparent !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    border-radius: 999px !important;
}
body.app-player .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-action-menu-icon::before,
body.app-player .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-action-menu-icon::after,
body.app-player .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-calendar-state-icon::before,
body.app-player .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-calendar-state-icon::after,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-action-menu-icon::before,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-action-menu-icon::after,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-calendar-state-icon::before,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-calendar-state-icon::after,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-action-menu-icon::before,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-action-menu-icon::after,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-calendar-state-icon::before,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete > .matches-calendar-state-icon::after {
    content: none !important;
    display: none !important;
    border: 0 !important;
    outline: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}
body.app-player .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete .matches-calendar-halo-ring,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete .matches-calendar-halo-ring,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link.matches-calendar-status--complete .matches-calendar-halo-ring {
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 1.55rem !important;
    height: 1.55rem !important;
    transform: translate(-50%, -50%) !important;
    border: 2px solid rgba(220, 38, 38, .98) !important;
    border-radius: 999px !important;
    background: transparent !important;
    box-shadow: none !important;
    pointer-events: none !important;
    z-index: 0 !important;
}
body.app-player .matches-action-menu-panel .matches-calendar-menu-link .app-svg-icon,
body.app-player .matches-action-menu-panel .matches-calendar-menu-link svg,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link .app-svg-icon,
.player-matches-page .matches-action-menu-panel .matches-calendar-menu-link svg,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .app-svg-icon,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link svg {
    position: relative !important;
    z-index: 1 !important;
    display: block !important;
    width: 1em !important;
    height: 1em !important;
}

/* PATCH 10721 - hard stop for Schedule row legacy rectangle and alignment.
   Schedule now renders through .matches-menu-icon-cell, not old scheduler icon classes. */
body.app-player .matches-action-menu-panel,
body.app-player .matches-action-menu[open] .matches-action-menu-panel,
.player-matches-page .matches-action-menu-panel,
.matches-table.match-layout-table .matches-action-menu-panel {
  --match-menu-icon-col-width: 1.85rem !important;
}
body.app-player .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link),
body.app-player .matches-action-menu[open] .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link),
.player-matches-page .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link),
.matches-table.match-layout-table .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) {
  display: grid !important;
  grid-template-columns: var(--match-menu-icon-col-width) max-content !important;
  grid-auto-flow: column !important;
  align-items: center !important;
  justify-content: start !important;
  justify-items: start !important;
  column-gap: .55rem !important;
  min-height: 2.25rem !important;
  padding: .42rem .75rem .42rem .65rem !important;
  text-align: left !important;
  white-space: nowrap !important;
}
body.app-player .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > :is(.matches-menu-icon-cell, .matches-action-menu-icon, .matches-calendar-state-icon, .matches-scouting-state-icon),
body.app-player .matches-action-menu[open] .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > :is(.matches-menu-icon-cell, .matches-action-menu-icon, .matches-calendar-state-icon, .matches-scouting-state-icon),
.player-matches-page .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > :is(.matches-menu-icon-cell, .matches-action-menu-icon, .matches-calendar-state-icon, .matches-scouting-state-icon),
.matches-table.match-layout-table .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > :is(.matches-menu-icon-cell, .matches-action-menu-icon, .matches-calendar-state-icon, .matches-scouting-state-icon) {
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-self: center !important;
  align-self: center !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1.32rem !important;
  min-width: 1.32rem !important;
  max-width: 1.32rem !important;
  height: 1.32rem !important;
  min-height: 1.32rem !important;
  max-height: 1.32rem !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border-radius: 999px !important;
  position: relative !important;
  overflow: visible !important;
  line-height: 1 !important;
}
body.app-player .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > .matches-action-menu-text,
body.app-player .matches-action-menu[open] .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > .matches-action-menu-text,
.player-matches-page .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > .matches-action-menu-text,
.matches-table.match-layout-table .matches-action-menu-panel :is(a, button, .matches-action-menu-item, .matches-calendar-menu-link) > .matches-action-menu-text {
  grid-column: 2 !important;
  grid-row: 1 !important;
  justify-self: start !important;
  align-self: center !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  transform: none !important;
  text-indent: 0 !important;
  line-height: 1.2 !important;
  text-align: left !important;
  white-space: nowrap !important;
  width: auto !important;
  min-width: 0 !important;
}
.matches-action-menu-panel .matches-calendar-menu-link .matches-menu-icon-cell::before,
.matches-action-menu-panel .matches-calendar-menu-link .matches-menu-icon-cell::after,
.matches-action-menu[open] .matches-calendar-menu-link .matches-menu-icon-cell::before,
.matches-action-menu[open] .matches-calendar-menu-link .matches-menu-icon-cell::after,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-menu-icon-cell::before,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-menu-icon-cell::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.matches-action-menu-panel .matches-calendar-menu-link .matches-menu-icon-cell,
.matches-action-menu[open] .matches-calendar-menu-link .matches-menu-icon-cell,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-menu-icon-cell {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
.matches-action-menu-panel .matches-calendar-menu-link .matches-menu-icon-cell .matches-calendar-halo-ring,
.matches-action-menu[open] .matches-calendar-menu-link .matches-menu-icon-cell .matches-calendar-halo-ring,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-menu-icon-cell .matches-calendar-halo-ring {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 1.55rem !important;
  height: 1.55rem !important;
  transform: translate(-50%, -50%) !important;
  border: 2px solid currentColor !important;
  border-radius: 999px !important;
  background: transparent !important;
  box-shadow: none !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
.matches-action-menu-panel .matches-calendar-menu-link .matches-menu-icon-cell .matches-calendar-svg-glyph,
.matches-action-menu[open] .matches-calendar-menu-link .matches-menu-icon-cell .matches-calendar-svg-glyph,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-menu-icon-cell .matches-calendar-svg-glyph,
.matches-action-menu-panel .matches-calendar-menu-link .matches-menu-icon-cell svg,
.matches-action-menu[open] .matches-calendar-menu-link .matches-menu-icon-cell svg,
.matches-table.match-layout-table .matches-action-menu-panel .matches-calendar-menu-link .matches-menu-icon-cell svg {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  width: 1em !important;
  height: 1em !important;
}

/* PATCH 10722 - dedicated hamburger Schedule row: no legacy calendar rectangle, fixed icon/text alignment. */
body.app-player .matches-action-menu-panel .matches-schedule-menu-link,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link {
  display: grid !important;
  grid-template-columns: 1.85rem max-content !important;
  grid-auto-flow: column !important;
  align-items: center !important;
  justify-content: start !important;
  justify-items: start !important;
  column-gap: .55rem !important;
  min-height: 2.25rem !important;
  padding: .42rem .75rem .42rem .65rem !important;
  margin: 0 !important;
  text-align: left !important;
  white-space: nowrap !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
}
body.app-player .matches-action-menu-panel .matches-schedule-menu-link::before,
body.app-player .matches-action-menu-panel .matches-schedule-menu-link::after,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link::before,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link::after,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link::before,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link::after,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link::before,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link::after {
  content: none !important;
  display: none !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
body.app-player .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell {
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-self: center !important;
  align-self: center !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1.45rem !important;
  min-width: 1.45rem !important;
  max-width: 1.45rem !important;
  height: 1.45rem !important;
  min-height: 1.45rem !important;
  max-height: 1.45rem !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
  overflow: visible !important;
  color: var(--player-text-color, #1f2937) !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  border-radius: 999px !important;
  line-height: 1 !important;
}
body.app-player .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::before,
body.app-player .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::after,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::before,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::after,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::before,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::after,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::before,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::after {
  content: none !important;
  display: none !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}
body.app-player .matches-action-menu-panel .matches-schedule-menu-link > .matches-action-menu-text,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link > .matches-action-menu-text,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link > .matches-action-menu-text,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link > .matches-action-menu-text {
  grid-column: 2 !important;
  grid-row: 1 !important;
  justify-self: start !important;
  align-self: center !important;
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.2 !important;
  text-align: left !important;
  white-space: nowrap !important;
  transform: none !important;
}
body.app-player .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-halo-ring,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-halo-ring,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-halo-ring,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-halo-ring {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 1.55rem !important;
  height: 1.55rem !important;
  transform: translate(-50%, -50%) !important;
  border-radius: 999px !important;
  background: transparent !important;
  box-shadow: none !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
body.app-player .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-svg-glyph,
body.app-player .matches-action-menu-panel .matches-schedule-menu-link svg,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-svg-glyph,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link svg,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-svg-glyph,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link svg {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  width: 1em !important;
  height: 1em !important;
  max-width: 1em !important;
  max-height: 1em !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* PATCH 10722 - Schedule menu isolation and icon/text alignment.
   The Schedule hamburger row must not inherit legacy Calendar/Scheduler status
   classes because those classes draw an offset calendar rectangle in addition
   to the intended circular halo. */
body.app-player .matches-action-menu-panel .matches-schedule-menu-link,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link,
.matches-action-menu-panel .matches-schedule-menu-link {
  display: grid !important;
  grid-template-columns: 1.85rem max-content !important;
  grid-auto-flow: column !important;
  column-gap: .55rem !important;
  align-items: center !important;
  justify-content: start !important;
  justify-items: start !important;
  min-height: 2.25rem !important;
  padding: .42rem .75rem .42rem .65rem !important;
  margin: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  text-decoration: none !important;
  text-align: left !important;
  white-space: nowrap !important;
}
body.app-player .matches-action-menu-panel .matches-schedule-menu-link::before,
body.app-player .matches-action-menu-panel .matches-schedule-menu-link::after,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link::before,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link::after,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link::before,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link::after,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link::before,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link::after,
.matches-action-menu-panel .matches-schedule-menu-link::before,
.matches-action-menu-panel .matches-schedule-menu-link::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
body.app-player .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell,
.matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell {
  grid-column: 1 !important;
  grid-row: 1 !important;
  justify-self: center !important;
  align-self: center !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 1.45rem !important;
  min-width: 1.45rem !important;
  max-width: 1.45rem !important;
  height: 1.45rem !important;
  min-height: 1.45rem !important;
  max-height: 1.45rem !important;
  margin: 0 !important;
  padding: 0 !important;
  position: relative !important;
  overflow: visible !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  border-radius: 999px !important;
  line-height: 1 !important;
  transform: none !important;
}
body.app-player .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::before,
body.app-player .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::after,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::before,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::after,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::before,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::after,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::before,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::after,
.matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::before,
.matches-action-menu-panel .matches-schedule-menu-link > .matches-menu-icon-cell::after {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
body.app-player .matches-action-menu-panel .matches-schedule-menu-link > .matches-action-menu-text,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link > .matches-action-menu-text,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link > .matches-action-menu-text,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link > .matches-action-menu-text,
.matches-action-menu-panel .matches-schedule-menu-link > .matches-action-menu-text {
  grid-column: 2 !important;
  grid-row: 1 !important;
  justify-self: start !important;
  align-self: center !important;
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.2 !important;
  text-align: left !important;
  white-space: nowrap !important;
  transform: none !important;
  text-indent: 0 !important;
}
body.app-player .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-halo-ring,
body.app-player .matches-action-menu[open] .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-halo-ring,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-halo-ring,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-halo-ring,
.matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-halo-ring {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 1.55rem !important;
  height: 1.55rem !important;
  transform: translate(-50%, -50%) !important;
  border-width: 2px !important;
  border-style: solid !important;
  border-radius: 999px !important;
  background: transparent !important;
  box-shadow: none !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
body.app-player .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-svg-glyph,
body.app-player .matches-action-menu-panel .matches-schedule-menu-link svg,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-svg-glyph,
.player-matches-page .matches-action-menu-panel .matches-schedule-menu-link svg,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link .matches-calendar-svg-glyph,
.matches-table.match-layout-table .matches-action-menu-panel .matches-schedule-menu-link svg,
.matches-action-menu-panel .matches-schedule-menu-link svg {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  width: 1em !important;
  height: 1em !important;
  max-width: 1em !important;
  max-height: 1em !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* ADDED v10726: compact inline Challenge Event modal summary table and remove redundant Details label. */
.swal2-popup.challenge-event-modal .challenge-event-score-table,
.swal2-container .challenge-event-score-table {
    width: auto;
    max-width: 100%;
    margin: .45rem auto .75rem;
    font-size: .86rem;
    table-layout: auto;
}
.swal2-popup.challenge-event-modal .challenge-event-score-table th,
.swal2-popup.challenge-event-modal .challenge-event-score-table td,
.swal2-container .challenge-event-score-table th,
.swal2-container .challenge-event-score-table td {
    padding: .28rem .38rem;
    line-height: 1.18;
}
.swal2-popup.challenge-event-modal .challenge-event-score-table th:first-child,
.swal2-popup.challenge-event-modal .challenge-event-score-table td:first-child,
.swal2-popup.challenge-event-modal .challenge-event-score-table .challenge-event-score-team-col,
.swal2-container .challenge-event-score-table th:first-child,
.swal2-container .challenge-event-score-table td:first-child,
.swal2-container .challenge-event-score-table .challenge-event-score-team-col {
    width: auto;
    min-width: 8.5rem;
    max-width: 12.5rem;
}
.swal2-popup.challenge-event-modal .challenge-event-result-button--small,
.swal2-container .challenge-event-result-button--small {
    margin-top: .18rem;
    padding: .16rem .34rem;
    font-size: .72rem;
    min-height: 1.55rem;
}
.swal2-popup.challenge-event-modal .challenge-event-field-label--details-10726,
.swal2-container .challenge-event-field-label--details-10726 {
    margin-top: .55rem;
}
.swal2-popup.challenge-event-modal .challenge-event-field-label--details-10726 textarea,
.swal2-container .challenge-event-field-label--details-10726 textarea {
    margin-top: 0;
}
@media (max-width: 640px) {
    .swal2-popup.challenge-event-modal .challenge-event-score-table,
    .swal2-container .challenge-event-score-table {
        font-size: .8rem;
    }
    .swal2-popup.challenge-event-modal .challenge-event-score-table th,
    .swal2-popup.challenge-event-modal .challenge-event-score-table td,
    .swal2-container .challenge-event-score-table th,
    .swal2-container .challenge-event-score-table td {
        padding: .22rem .28rem;
    }
    .swal2-popup.challenge-event-modal .challenge-event-score-table th:first-child,
    .swal2-popup.challenge-event-modal .challenge-event-score-table td:first-child,
    .swal2-popup.challenge-event-modal .challenge-event-score-table .challenge-event-score-team-col,
    .swal2-container .challenge-event-score-table th:first-child,
    .swal2-container .challenge-event-score-table td:first-child,
    .swal2-container .challenge-event-score-table .challenge-event-score-team-col {
        min-width: 6.75rem;
        max-width: 9.25rem;
    }
}

/* ADDED v10729: compact inline Challenge Event checkbox selector. */
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-posted-results-title {
    margin: 0 0 0.35rem 0;
    font-size: 1.05rem;
    line-height: 1.2;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-score-table--checkselect,
.swal2-container .challenge-event-score-table--checkselect {
    width: auto !important;
    max-width: 100% !important;
    margin: 0 auto 0.75rem auto !important;
    font-size: 0.9rem !important;
    table-layout: auto !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-score-table--checkselect th,
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-score-table--checkselect td,
.swal2-container .challenge-event-score-table--checkselect th,
.swal2-container .challenge-event-score-table--checkselect td {
    padding: 0.28rem 0.42rem !important;
    line-height: 1.15 !important;
    text-align: center !important;
    vertical-align: middle !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-score-table--checkselect th:first-child,
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-score-table--checkselect td:first-child,
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-score-table--checkselect .challenge-event-team-cell,
.swal2-container .challenge-event-score-table--checkselect th:first-child,
.swal2-container .challenge-event-score-table--checkselect td:first-child,
.swal2-container .challenge-event-score-table--checkselect .challenge-event-team-cell {
    width: auto !important;
    min-width: 7.5rem !important;
    max-width: 12rem !important;
    text-align: left !important;
    white-space: normal !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-select-row-label,
.swal2-container .challenge-event-select-row-label {
    font-weight: 600 !important;
    color: var(--color-text-muted, #4b5563) !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-select-check-cell,
.swal2-container .challenge-event-select-check-cell {
    background: var(--color-surface-muted, #f5f7fa) !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-game-check-label,
.swal2-container .challenge-event-game-check-label {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 1.7rem !important;
    height: 1.7rem !important;
    margin: 0 !important;
    cursor: pointer !important;
    position: relative !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-game-check-label input,
.swal2-container .challenge-event-game-check-label input {
    position: absolute !important;
    opacity: 0 !important;
    width: 1px !important;
    height: 1px !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-checkmark,
.swal2-container .challenge-event-checkmark {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 1.35rem !important;
    height: 1.35rem !important;
    border: 2px solid var(--color-border-strong, #94a3b8) !important;
    border-radius: 999px !important;
    color: transparent !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    background: var(--color-white, #fff) !important;
    box-sizing: border-box !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-game-check-label input:checked + .challenge-event-checkmark,
.swal2-container .challenge-event-game-check-label input:checked + .challenge-event-checkmark {
    color: var(--color-white, #fff) !important;
    background: var(--color-action-primary, #1f58a8) !important;
    border-color: var(--color-action-primary, #1f58a8) !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-game-check-label input:disabled + .challenge-event-checkmark,
.swal2-container .challenge-event-game-check-label input:disabled + .challenge-event-checkmark {
    opacity: 0.38 !important;
    cursor: not-allowed !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-inline-submit,
.swal2-container .challenge-event-inline-submit {
    margin-top: 0.25rem !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-reason-row[hidden],
.swal2-container .challenge-event-reason-row[hidden] {
    display: none !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-field-label--details-10726 textarea,
.swal2-container .challenge-event-field-label--details-10726 textarea {
    min-height: 5.5rem !important;
}


/* ADDED v10732: Hard-stop Challenge Event game selector wrapping inside SweetAlert. */
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-score-table--checkselect .challenge-event-game-select-th,
.swal2-container .challenge-event-score-table--checkselect .challenge-event-game-select-th {
    min-width: 5.6rem !important;
    width: 5.6rem !important;
    max-width: 5.6rem !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-score-table--checkselect .challenge-event-game-select-th .challenge-event-game-check-label,
.swal2-container .challenge-event-score-table--checkselect .challenge-event-game-select-th .challenge-event-game-check-label {
    display: inline-grid !important;
    grid-template-columns: auto 1.18rem !important;
    column-gap: 0.3rem !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 4.1rem !important;
    width: 4.1rem !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-score-table--checkselect .challenge-event-game-label,
.swal2-container .challenge-event-score-table--checkselect .challenge-event-game-label {
    display: inline-block !important;
    min-width: 1.6rem !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    text-align: right !important;
    letter-spacing: 0 !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-score-table--checkselect .challenge-event-checkmark,
.swal2-container .challenge-event-score-table--checkselect .challenge-event-checkmark {
    display: inline-flex !important;
    flex: 0 0 1.18rem !important;
}

/* ADDED v10733: Challenge Event header selectors use compact G1/G2/G3 labels and square checkboxes. */
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-score-table--checkselect .challenge-event-game-label,
.swal2-container .challenge-event-score-table--checkselect .challenge-event-game-label {
    min-width: 1.35rem !important;
    text-align: right !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-score-table--checkselect .challenge-event-game-select-th .challenge-event-game-check-label,
.swal2-container .challenge-event-score-table--checkselect .challenge-event-game-select-th .challenge-event-game-check-label {
    grid-template-columns: auto 1.18rem !important;
    min-width: 3.35rem !important;
    width: 3.35rem !important;
    white-space: nowrap !important;
}
.swal2-popup.challenge-event-modal--compact-10729 .challenge-event-score-table--checkselect .challenge-event-checkmark,
.swal2-container .challenge-event-score-table--checkselect .challenge-event-checkmark {
    border-radius: 0.22rem !important;
}


/* ADDED v11012: shared visible footer rules and compact player footer spacing. */
.app-page-footer {
  display: block;
  width: 100%;
  margin-top: 0.75rem;
  margin-bottom: 0;
  padding: 0;
  text-align: center;
}
.app-page-footer-rule {
  display: block !important;
  width: 100%;
  margin: 0.45rem 0;
  border: 0;
  border-top: 1px solid currentColor;
  opacity: 0.28;
}
.app-page-footer-text { margin: 0; padding: 0; }
body.app-player .app-page-footer,
body.player-surface .app-page-footer { margin-top: 0.35rem; }
body.app-player main.mainbody,
body.player-surface main.mainbody { padding-bottom: 0.35rem !important; }

/** ADDED v11038: Final theme-layer authority for Matches pool rounded corners. */
body.app-player .matches-pool-table-wrap.ui-player-table-wrap > table.matches-table {
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: var(--player-radius-md, 0.75rem) !important;
    overflow: hidden;
}
body.app-player .matches-pool-table-wrap.ui-player-table-wrap > table.matches-table > thead:first-child > tr:first-child > th:first-child { border-top-left-radius: var(--player-radius-md, 0.75rem) !important; }
body.app-player .matches-pool-table-wrap.ui-player-table-wrap > table.matches-table > thead:first-child > tr:first-child > th:last-child { border-top-right-radius: var(--player-radius-md, 0.75rem) !important; }
body.app-player .matches-pool-table-wrap.ui-player-table-wrap > table.matches-table > tbody:last-child > tr:last-child > td:first-child { border-bottom-left-radius: var(--player-radius-md, 0.75rem) !important; }
body.app-player .matches-pool-table-wrap.ui-player-table-wrap > table.matches-table > tbody:last-child > tr:last-child > td:last-child { border-bottom-right-radius: var(--player-radius-md, 0.75rem) !important; }
@media (min-width: 761px) { body.app-player .matches-pool-table-wrap.ui-player-table-wrap { overflow: hidden !important; } }
